diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..1ed453a371 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.{js,json,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9853ef9579..13f6ca8a31 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -37,7 +37,7 @@ updates: open-pull-requests-limit: 5 target-branch: "develop" - package-ecosystem: npm - directory: "/logger-helper" + directory: "/common" schedule: interval: weekly open-pull-requests-limit: 5 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ef7d272ca6..ce25b353e6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,10 +22,6 @@ jobs: npm install npm run build popd - pushd logger-helper - npm install - npm run build - popd pushd logger-service npm install npm run build @@ -53,7 +49,7 @@ jobs: pushd interfaces npm run lint popd - pushd logger-helper + pushd common npm run lint popd pushd logger-service diff --git a/.gitignore b/.gitignore index 0492b71a6b..27a112cf8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,33 +1,18 @@ -authentication-service/node_modules/ -guardian-service/node_modules/ -guardian-service/dist/ -ipfs-client/node_modules/ -ipfs-client/dist/ -logger-service/node_modules/ -logger-service/dist/ -logger-helper/node_modules/ -logger-helper/dist/ -ui-service/node_modules/ -ui-service/dist/ -mrv-sender/node_modules/ -mrv-sender/dist/ +node_modules/ +dist/ .vscode/ -vc/node_modules/ -vc/dist/ -vc-modules/node_modules/ -vc-modules/dist/ +.vs/ config.keys -interfaces/dist/ -interfaces/node_modules/ www-data/ -ui-service/.vs/ /test_results/ -/api-tests/node_modules/ -/api-docs/node_modules/ -/auth-service/dist/ -/auth-service/node_modules/ /guardian-service/config.json -/threads-test/node_modules/ -api-docs/dist/ .env tsconfig.tsbuildinfo +.yarn/* +!.yarn/patches +!.yarn/releases +!.yarn/plugins +!.yarn/sdks +!.yarn/versions +.pnp.* +node_modules diff --git a/.yarn/plugins/@yarnpkg/plugin-typescript.cjs b/.yarn/plugins/@yarnpkg/plugin-typescript.cjs new file mode 100644 index 0000000000..5c1859e0b9 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-typescript.cjs @@ -0,0 +1,9 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-typescript", +factory: function (require) { +var plugin=(()=>{var Ft=Object.create,H=Object.defineProperty,Bt=Object.defineProperties,Kt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,$t=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable;var Re=(e,t,r)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u=(e,t)=>{for(var r in t||(t={}))ne.call(t,r)&&Re(e,r,t[r]);if(Q)for(var r of Q(t))De.call(t,r)&&Re(e,r,t[r]);return e},g=(e,t)=>Bt(e,zt(t)),Lt=e=>H(e,"__esModule",{value:!0});var R=(e,t)=>{var r={};for(var s in e)ne.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&Q)for(var s of Q(e))t.indexOf(s)<0&&De.call(e,s)&&(r[s]=e[s]);return r};var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vt=(e,t)=>{for(var r in t)H(e,r,{get:t[r],enumerable:!0})},Qt=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Gt(t))!ne.call(e,s)&&s!=="default"&&H(e,s,{get:()=>t[s],enumerable:!(r=Kt(t,s))||r.enumerable});return e},C=e=>Qt(Lt(H(e!=null?Ft($t(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var xe=I(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});function _(e){let t=[...e.caches],r=t.shift();return r===void 0?ve():{get(s,n,a={miss:()=>Promise.resolve()}){return r.get(s,n,a).catch(()=>_({caches:t}).get(s,n,a))},set(s,n){return r.set(s,n).catch(()=>_({caches:t}).set(s,n))},delete(s){return r.delete(s).catch(()=>_({caches:t}).delete(s))},clear(){return r.clear().catch(()=>_({caches:t}).clear())}}}function ve(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(n=>Promise.all([n,r.miss(n)])).then(([n])=>n)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}J.createFallbackableCache=_;J.createNullCache=ve});var Ee=I(($s,qe)=>{qe.exports=xe()});var Te=I(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});function Jt(e={serializable:!0}){let t={};return{get(r,s,n={miss:()=>Promise.resolve()}){let a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);let o=s(),d=n&&n.miss||(()=>Promise.resolve());return o.then(y=>d(y)).then(()=>o)},set(r,s){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}ae.createInMemoryCache=Jt});var we=I((Vs,Me)=>{Me.exports=Te()});var Ce=I(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});function Xt(e,t,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===oe.WithinHeaders?s:{}},queryParameters(){return e===oe.WithinQueryParameters?s:{}}}}function Yt(e){let t=0,r=()=>(t++,new Promise(s=>{setTimeout(()=>{s(e(r))},Math.min(100*t,1e3))}));return e(r)}function ke(e,t=(r,s)=>Promise.resolve()){return Object.assign(e,{wait(r){return ke(e.then(s=>Promise.all([t(s,r),s])).then(s=>s[1]))}})}function Zt(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),s=e[t];e[t]=e[r],e[r]=s}return e}function er(e,t){return Object.keys(t!==void 0?t:{}).forEach(r=>{e[r]=t[r](e)}),e}function tr(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var rr="4.2.0",sr=e=>()=>e.transporter.requester.destroy(),oe={WithinQueryParameters:0,WithinHeaders:1};M.AuthMode=oe;M.addMethods=er;M.createAuth=Xt;M.createRetryablePromise=Yt;M.createWaitablePromise=ke;M.destroy=sr;M.encode=tr;M.shuffle=Zt;M.version=rr});var F=I((Js,Ue)=>{Ue.exports=Ce()});var Ne=I(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});var nr={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};ie.MethodEnum=nr});var B=I((Ys,We)=>{We.exports=Ne()});var Ze=I(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});var He=B();function ce(e,t){let r=e||{},s=r.data||{};return Object.keys(r).forEach(n=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(n)===-1&&(s[n]=r[n])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var X={Read:1,Write:2,Any:3},U={Up:1,Down:2,Timeouted:3},_e=2*60*1e3;function ue(e,t=U.Up){return g(u({},e),{status:t,lastUpdate:Date.now()})}function Fe(e){return e.status===U.Up||Date.now()-e.lastUpdate>_e}function Be(e){return e.status===U.Timeouted&&Date.now()-e.lastUpdate<=_e}function le(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||X.Any}}function ar(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(ue(r))))).then(r=>{let s=r.filter(d=>Fe(d)),n=r.filter(d=>Be(d)),a=[...s,...n],o=a.length>0?a.map(d=>le(d)):t;return{getTimeout(d,y){return(n.length===0&&d===0?1:n.length+3+d)*y},statelessHosts:o}})}var or=({isTimedOut:e,status:t})=>!e&&~~t==0,ir=e=>{let t=e.status;return e.isTimedOut||or(e)||~~(t/100)!=2&&~~(t/100)!=4},cr=({status:e})=>~~(e/100)==2,ur=(e,t)=>ir(e)?t.onRetry(e):cr(e)?t.onSucess(e):t.onFail(e);function Qe(e,t,r,s){let n=[],a=$e(r,s),o=Le(e,s),d=r.method,y=r.method!==He.MethodEnum.Get?{}:u(u({},r.data),s.data),b=u(u(u({"x-algolia-agent":e.userAgent.value},e.queryParameters),y),s.queryParameters),f=0,p=(h,S)=>{let O=h.pop();if(O===void 0)throw Ve(de(n));let P={data:a,headers:o,method:d,url:Ge(O,r.path,b),connectTimeout:S(f,e.timeouts.connect),responseTimeout:S(f,s.timeout)},x=j=>{let T={request:P,response:j,host:O,triesLeft:h.length};return n.push(T),T},v={onSucess:j=>Ke(j),onRetry(j){let T=x(j);return j.isTimedOut&&f++,Promise.all([e.logger.info("Retryable failure",pe(T)),e.hostsCache.set(O,ue(O,j.isTimedOut?U.Timeouted:U.Down))]).then(()=>p(h,S))},onFail(j){throw x(j),ze(j,de(n))}};return e.requester.send(P).then(j=>ur(j,v))};return ar(e.hostsCache,t).then(h=>p([...h.statelessHosts].reverse(),h.getTimeout))}function lr(e){let{hostsCache:t,logger:r,requester:s,requestsCache:n,responsesCache:a,timeouts:o,userAgent:d,hosts:y,queryParameters:b,headers:f}=e,p={hostsCache:t,logger:r,requester:s,requestsCache:n,responsesCache:a,timeouts:o,userAgent:d,headers:f,queryParameters:b,hosts:y.map(h=>le(h)),read(h,S){let O=ce(S,p.timeouts.read),P=()=>Qe(p,p.hosts.filter(j=>(j.accept&X.Read)!=0),h,O);if((O.cacheable!==void 0?O.cacheable:h.cacheable)!==!0)return P();let v={request:h,mappedRequestOptions:O,transporter:{queryParameters:p.queryParameters,headers:p.headers}};return p.responsesCache.get(v,()=>p.requestsCache.get(v,()=>p.requestsCache.set(v,P()).then(j=>Promise.all([p.requestsCache.delete(v),j]),j=>Promise.all([p.requestsCache.delete(v),Promise.reject(j)])).then(([j,T])=>T)),{miss:j=>p.responsesCache.set(v,j)})},write(h,S){return Qe(p,p.hosts.filter(O=>(O.accept&X.Write)!=0),h,ce(S,p.timeouts.write))}};return p}function dr(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let s=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(s)===-1&&(t.value=`${t.value}${s}`),t}};return t}function Ke(e){try{return JSON.parse(e.content)}catch(t){throw Je(t.message,e)}}function ze({content:e,status:t},r){let s=e;try{s=JSON.parse(e).message}catch(n){}return Xe(s,t,r)}function pr(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Ge(e,t,r){let s=Ye(r),n=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return s.length&&(n+=`?${s}`),n}function Ye(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>pr("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function $e(e,t){if(e.method===He.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:u(u({},e.data),t.data);return JSON.stringify(r)}function Le(e,t){let r=u(u({},e.headers),t.headers),s={};return Object.keys(r).forEach(n=>{let a=r[n];s[n.toLowerCase()]=a}),s}function de(e){return e.map(t=>pe(t))}function pe(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return g(u({},e),{request:g(u({},e.request),{headers:u(u({},e.request.headers),t)})})}function Xe(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Je(e,t){return{name:"DeserializationError",message:e,response:t}}function Ve(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}A.CallEnum=X;A.HostStatusEnum=U;A.createApiError=Xe;A.createDeserializationError=Je;A.createMappedRequestOptions=ce;A.createRetryError=Ve;A.createStatefulHost=ue;A.createStatelessHost=le;A.createTransporter=lr;A.createUserAgent=dr;A.deserializeFailure=ze;A.deserializeSuccess=Ke;A.isStatefulHostTimeouted=Be;A.isStatefulHostUp=Fe;A.serializeData=$e;A.serializeHeaders=Le;A.serializeQueryParameters=Ye;A.serializeUrl=Ge;A.stackFrameWithoutCredentials=pe;A.stackTraceWithoutCredentials=de});var K=I((en,et)=>{et.exports=Ze()});var tt=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});var N=F(),mr=K(),z=B(),hr=e=>{let t=e.region||"us",r=N.createAuth(N.AuthMode.WithinHeaders,e.appId,e.apiKey),s=mr.createTransporter(g(u({hosts:[{url:`analytics.${t}.algolia.com`}]},e),{headers:u(g(u({},r.headers()),{"content-type":"application/json"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)})),n=e.appId;return N.addMethods({appId:n,transporter:s},e.methods)},yr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Post,path:"2/abtests",data:t},r),gr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Delete,path:N.encode("2/abtests/%s",t)},r),fr=e=>(t,r)=>e.transporter.read({method:z.MethodEnum.Get,path:N.encode("2/abtests/%s",t)},r),br=e=>t=>e.transporter.read({method:z.MethodEnum.Get,path:"2/abtests"},t),Pr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Post,path:N.encode("2/abtests/%s/stop",t)},r);w.addABTest=yr;w.createAnalyticsClient=hr;w.deleteABTest=gr;w.getABTest=fr;w.getABTests=br;w.stopABTest=Pr});var st=I((rn,rt)=>{rt.exports=tt()});var at=I(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});var me=F(),jr=K(),nt=B(),Or=e=>{let t=e.region||"us",r=me.createAuth(me.AuthMode.WithinHeaders,e.appId,e.apiKey),s=jr.createTransporter(g(u({hosts:[{url:`recommendation.${t}.algolia.com`}]},e),{headers:u(g(u({},r.headers()),{"content-type":"application/json"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)}));return me.addMethods({appId:e.appId,transporter:s},e.methods)},Ir=e=>t=>e.transporter.read({method:nt.MethodEnum.Get,path:"1/strategies/personalization"},t),Ar=e=>(t,r)=>e.transporter.write({method:nt.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);G.createRecommendationClient=Or;G.getPersonalizationStrategy=Ir;G.setPersonalizationStrategy=Ar});var it=I((nn,ot)=>{ot.exports=at()});var jt=I(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var l=F(),q=K(),m=B(),Sr=require("crypto");function Y(e){let t=r=>e.request(r).then(s=>{if(e.batch!==void 0&&e.batch(s.hits),!e.shouldStop(s))return s.cursor?t({cursor:s.cursor}):t({page:(r.page||0)+1})});return t({})}var Dr=e=>{let t=e.appId,r=l.createAuth(e.authMode!==void 0?e.authMode:l.AuthMode.WithinHeaders,t,e.apiKey),s=q.createTransporter(g(u({hosts:[{url:`${t}-dsn.algolia.net`,accept:q.CallEnum.Read},{url:`${t}.algolia.net`,accept:q.CallEnum.Write}].concat(l.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}]))},e),{headers:u(g(u({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)})),n={transporter:s,appId:t,addAlgoliaAgent(a,o){s.userAgent.add({segment:a,version:o})},clearCache(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(()=>{})}};return l.addMethods(n,e.methods)};function ct(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function ut(){return{name:"ObjectNotFoundError",message:"Object not found."}}function lt(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Rr=e=>(t,r)=>{let d=r||{},{queryParameters:s}=d,n=R(d,["queryParameters"]),a=u({acl:t},s!==void 0?{queryParameters:s}:{}),o=(y,b)=>l.createRetryablePromise(f=>$(e)(y.key,b).catch(p=>{if(p.status!==404)throw p;return f()}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:"1/keys",data:a},n),o)},vr=e=>(t,r,s)=>{let n=q.createMappedRequestOptions(s);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:m.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},n)},xr=e=>(t,r,s)=>e.transporter.write({method:m.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},s),Z=e=>(t,r,s)=>{let n=(a,o)=>L(e)(t,{methods:{waitTask:D}}).waitTask(a.taskID,o);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},s),n)},qr=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Rules]})),Er=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Settings]})),Tr=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Synonyms]})),Mr=e=>(t,r)=>{let s=(n,a)=>l.createRetryablePromise(o=>$(e)(t,a).then(o).catch(d=>{if(d.status!==404)throw d}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/keys/%s",t)},r),s)},wr=()=>(e,t)=>{let r=q.serializeQueryParameters(t),s=Sr.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(s+r).toString("base64")},$=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/keys/%s",t)},r),kr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/logs"},t),Cr=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,s=t.match(r);if(s===null)throw lt();return parseInt(s[1],10)-Math.round(new Date().getTime()/1e3)},Ur=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping/top"},t),Nr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/clusters/mapping/%s",t)},r),Wr=e=>t=>{let n=t||{},{retrieveMappings:r}=n,s=R(n,["retrieveMappings"]);return r===!0&&(s.getClusters=!0),e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping/pending"},s)},L=e=>(t,r={})=>{let s={transporter:e.transporter,appId:e.appId,indexName:t};return l.addMethods(s,r.methods)},Hr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/keys"},t),_r=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters"},t),Fr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/indexes"},t),Br=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping"},t),Kr=e=>(t,r,s)=>{let n=(a,o)=>L(e)(t,{methods:{waitTask:D}}).waitTask(a.taskID,o);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},s),n)},zr=e=>(t,r)=>{let s=(n,a)=>Promise.all(Object.keys(n.taskID).map(o=>L(e)(o,{methods:{waitTask:D}}).waitTask(n.taskID[o],a)));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),s)},Gr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),$r=e=>(t,r)=>{let s=t.map(n=>g(u({},n),{params:q.serializeQueryParameters(n.params||{})}));return e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:s},cacheable:!0},r)},Lr=e=>(t,r)=>Promise.all(t.map(s=>{let d=s.params,{facetName:n,facetQuery:a}=d,o=R(d,["facetName","facetQuery"]);return L(e)(s.indexName,{methods:{searchForFacetValues:dt}}).searchForFacetValues(n,a,u(u({},r),o))})),Vr=e=>(t,r)=>{let s=q.createMappedRequestOptions(r);return s.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:m.MethodEnum.Delete,path:"1/clusters/mapping"},s)},Qr=e=>(t,r)=>{let s=(n,a)=>l.createRetryablePromise(o=>$(e)(t,a).catch(d=>{if(d.status!==404)throw d;return o()}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/keys/%s/restore",t)},r),s)},Jr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Xr=e=>(t,r)=>{let s=Object.assign({},r),f=r||{},{queryParameters:n}=f,a=R(f,["queryParameters"]),o=n?{queryParameters:n}:{},d=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],y=p=>Object.keys(s).filter(h=>d.indexOf(h)!==-1).every(h=>p[h]===s[h]),b=(p,h)=>l.createRetryablePromise(S=>$(e)(t,h).then(O=>y(O)?Promise.resolve():S()));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Put,path:l.encode("1/keys/%s",t),data:o},a),b)},pt=e=>(t,r)=>{let s=(n,a)=>D(e)(n.taskID,a);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),s)},Yr=e=>t=>Y(g(u({},t),{shouldStop:r=>r.cursor===void 0,request:r=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/browse",e.indexName),data:r},t)})),Zr=e=>t=>{let r=u({hitsPerPage:1e3},t);return Y(g(u({},r),{shouldStop:s=>s.hits.lengthg(u({},n),{hits:n.hits.map(a=>(delete a._highlightResult,a))}))}}))},es=e=>t=>{let r=u({hitsPerPage:1e3},t);return Y(g(u({},r),{shouldStop:s=>s.hits.lengthg(u({},n),{hits:n.hits.map(a=>(delete a._highlightResult,a))}))}}))},te=e=>(t,r,s)=>{let y=s||{},{batchSize:n}=y,a=R(y,["batchSize"]),o={taskIDs:[],objectIDs:[]},d=(b=0)=>{let f=[],p;for(p=b;p({action:r,body:h})),a).then(h=>(o.objectIDs=o.objectIDs.concat(h.objectIDs),o.taskIDs.push(h.taskID),p++,d(p)))};return l.createWaitablePromise(d(),(b,f)=>Promise.all(b.taskIDs.map(p=>D(e)(p,f))))},ts=e=>t=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/clear",e.indexName)},t),(r,s)=>D(e)(r.taskID,s)),rs=e=>t=>{let a=t||{},{forwardToReplicas:r}=a,s=R(a,["forwardToReplicas"]),n=q.createMappedRequestOptions(s);return r&&(n.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/clear",e.indexName)},n),(o,d)=>D(e)(o.taskID,d))},ss=e=>t=>{let a=t||{},{forwardToReplicas:r}=a,s=R(a,["forwardToReplicas"]),n=q.createMappedRequestOptions(s);return r&&(n.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/clear",e.indexName)},n),(o,d)=>D(e)(o.taskID,d))},ns=e=>(t,r)=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(s,n)=>D(e)(s.taskID,n)),as=e=>t=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s",e.indexName)},t),(r,s)=>D(e)(r.taskID,s)),os=e=>(t,r)=>l.createWaitablePromise(yt(e)([t],r).then(s=>({taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),yt=e=>(t,r)=>{let s=t.map(n=>({objectID:n}));return te(e)(s,k.DeleteObject,r)},is=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s/rules/%s",e.indexName,t)},a),(d,y)=>D(e)(d.taskID,y))},cs=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},a),(d,y)=>D(e)(d.taskID,y))},us=e=>t=>gt(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),ls=e=>(t,r)=>{let y=r||{},{query:s,paginate:n}=y,a=R(y,["query","paginate"]),o=0,d=()=>ft(e)(s||"",g(u({},a),{page:o})).then(b=>{for(let[f,p]of Object.entries(b.hits))if(t(p))return{object:p,position:parseInt(f,10),page:o};if(o++,n===!1||o>=b.nbPages)throw ut();return d()});return d()},ds=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/%s",e.indexName,t)},r),ps=()=>(e,t)=>{for(let[r,s]of Object.entries(e.hits))if(s.objectID===t)return parseInt(r,10);return-1},ms=e=>(t,r)=>{let o=r||{},{attributesToRetrieve:s}=o,n=R(o,["attributesToRetrieve"]),a=t.map(d=>u({indexName:e.indexName,objectID:d},s?{attributesToRetrieve:s}:{}));return e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:a}},n)},hs=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),gt=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),ys=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),bt=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),gs=e=>(t,r)=>l.createWaitablePromise(Pt(e)([t],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),Pt=e=>(t,r)=>{let o=r||{},{createIfNotExists:s}=o,n=R(o,["createIfNotExists"]),a=s?k.PartialUpdateObject:k.PartialUpdateObjectNoCreate;return te(e)(t,a,n)},fs=e=>(t,r)=>{let O=r||{},{safe:s,autoGenerateObjectIDIfNotExist:n,batchSize:a}=O,o=R(O,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),d=(P,x,v,j)=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",P),data:{operation:v,destination:x}},j),(T,V)=>D(e)(T.taskID,V)),y=Math.random().toString(36).substring(7),b=`${e.indexName}_tmp_${y}`,f=he({appId:e.appId,transporter:e.transporter,indexName:b}),p=[],h=d(e.indexName,b,"copy",g(u({},o),{scope:["settings","synonyms","rules"]}));p.push(h);let S=(s?h.wait(o):h).then(()=>{let P=f(t,g(u({},o),{autoGenerateObjectIDIfNotExist:n,batchSize:a}));return p.push(P),s?P.wait(o):P}).then(()=>{let P=d(b,e.indexName,"move",o);return p.push(P),s?P.wait(o):P}).then(()=>Promise.all(p)).then(([P,x,v])=>({objectIDs:x.objectIDs,taskIDs:[P.taskID,...x.taskIDs,v.taskID]}));return l.createWaitablePromise(S,(P,x)=>Promise.all(p.map(v=>v.wait(x))))},bs=e=>(t,r)=>ye(e)(t,g(u({},r),{clearExistingRules:!0})),Ps=e=>(t,r)=>ge(e)(t,g(u({},r),{replaceExistingSynonyms:!0})),js=e=>(t,r)=>l.createWaitablePromise(he(e)([t],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),he=e=>(t,r)=>{let o=r||{},{autoGenerateObjectIDIfNotExist:s}=o,n=R(o,["autoGenerateObjectIDIfNotExist"]),a=s?k.AddObject:k.UpdateObject;if(a===k.UpdateObject){for(let d of t)if(d.objectID===void 0)return l.createWaitablePromise(Promise.reject(ct()))}return te(e)(t,a,n)},Os=e=>(t,r)=>ye(e)([t],r),ye=e=>(t,r)=>{let d=r||{},{forwardToReplicas:s,clearExistingRules:n}=d,a=R(d,["forwardToReplicas","clearExistingRules"]),o=q.createMappedRequestOptions(a);return s&&(o.queryParameters.forwardToReplicas=1),n&&(o.queryParameters.clearExistingRules=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/batch",e.indexName),data:t},o),(y,b)=>D(e)(y.taskID,b))},Is=e=>(t,r)=>ge(e)([t],r),ge=e=>(t,r)=>{let d=r||{},{forwardToReplicas:s,replaceExistingSynonyms:n}=d,a=R(d,["forwardToReplicas","replaceExistingSynonyms"]),o=q.createMappedRequestOptions(a);return s&&(o.queryParameters.forwardToReplicas=1),n&&(o.queryParameters.replaceExistingSynonyms=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},o),(y,b)=>D(e)(y.taskID,b))},ft=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),dt=e=>(t,r,s)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},s),mt=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),ht=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),As=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Put,path:l.encode("1/indexes/%s/settings",e.indexName),data:t},a),(d,y)=>D(e)(d.taskID,y))},D=e=>(t,r)=>l.createRetryablePromise(s=>bt(e)(t,r).then(n=>n.status!=="published"?s():void 0)),Ss={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},k={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},ee={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ds={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Rs={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};i.ApiKeyACLEnum=Ss;i.BatchActionEnum=k;i.ScopeEnum=ee;i.StrategyEnum=Ds;i.SynonymEnum=Rs;i.addApiKey=Rr;i.assignUserID=vr;i.assignUserIDs=xr;i.batch=pt;i.browseObjects=Yr;i.browseRules=Zr;i.browseSynonyms=es;i.chunkedBatch=te;i.clearObjects=ts;i.clearRules=rs;i.clearSynonyms=ss;i.copyIndex=Z;i.copyRules=qr;i.copySettings=Er;i.copySynonyms=Tr;i.createBrowsablePromise=Y;i.createMissingObjectIDError=ct;i.createObjectNotFoundError=ut;i.createSearchClient=Dr;i.createValidUntilNotFoundError=lt;i.deleteApiKey=Mr;i.deleteBy=ns;i.deleteIndex=as;i.deleteObject=os;i.deleteObjects=yt;i.deleteRule=is;i.deleteSynonym=cs;i.exists=us;i.findObject=ls;i.generateSecuredApiKey=wr;i.getApiKey=$;i.getLogs=kr;i.getObject=ds;i.getObjectPosition=ps;i.getObjects=ms;i.getRule=hs;i.getSecuredApiKeyRemainingValidity=Cr;i.getSettings=gt;i.getSynonym=ys;i.getTask=bt;i.getTopUserIDs=Ur;i.getUserID=Nr;i.hasPendingMappings=Wr;i.initIndex=L;i.listApiKeys=Hr;i.listClusters=_r;i.listIndices=Fr;i.listUserIDs=Br;i.moveIndex=Kr;i.multipleBatch=zr;i.multipleGetObjects=Gr;i.multipleQueries=$r;i.multipleSearchForFacetValues=Lr;i.partialUpdateObject=gs;i.partialUpdateObjects=Pt;i.removeUserID=Vr;i.replaceAllObjects=fs;i.replaceAllRules=bs;i.replaceAllSynonyms=Ps;i.restoreApiKey=Qr;i.saveObject=js;i.saveObjects=he;i.saveRule=Os;i.saveRules=ye;i.saveSynonym=Is;i.saveSynonyms=ge;i.search=ft;i.searchForFacetValues=dt;i.searchRules=mt;i.searchSynonyms=ht;i.searchUserIDs=Jr;i.setSettings=As;i.updateApiKey=Xr;i.waitTask=D});var It=I((on,Ot)=>{Ot.exports=jt()});var At=I(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});function vs(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var xs={Debug:1,Info:2,Error:3};re.LogLevelEnum=xs;re.createNullLogger=vs});var Dt=I((un,St)=>{St.exports=At()});var xt=I(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});var Rt=require("http"),vt=require("https"),qs=require("url");function Es(){let e={keepAlive:!0},t=new Rt.Agent(e),r=new vt.Agent(e);return{send(s){return new Promise(n=>{let a=qs.parse(s.url),o=a.query===null?a.pathname:`${a.pathname}?${a.query}`,d=u({agent:a.protocol==="https:"?r:t,hostname:a.hostname,path:o,method:s.method,headers:s.headers},a.port!==void 0?{port:a.port||""}:{}),y=(a.protocol==="https:"?vt:Rt).request(d,h=>{let S="";h.on("data",O=>S+=O),h.on("end",()=>{clearTimeout(f),clearTimeout(p),n({status:h.statusCode||0,content:S,isTimedOut:!1})})}),b=(h,S)=>setTimeout(()=>{y.abort(),n({status:0,content:S,isTimedOut:!0})},h*1e3),f=b(s.connectTimeout,"Connection timeout"),p;y.on("error",h=>{clearTimeout(f),clearTimeout(p),n({status:0,content:h.message,isTimedOut:!1})}),y.once("response",()=>{clearTimeout(f),p=b(s.responseTimeout,"Socket timeout")}),s.data!==void 0&&y.write(s.data),y.end()})},destroy(){return t.destroy(),r.destroy(),Promise.resolve()}}}fe.createNodeHttpRequester=Es});var Et=I((dn,qt)=>{qt.exports=xt()});var kt=I((pn,Tt)=>{"use strict";var Mt=Ee(),Ts=we(),W=st(),be=F(),Pe=it(),c=It(),Ms=Dt(),ws=Et(),ks=K();function wt(e,t,r){let s={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:ws.createNodeHttpRequester(),logger:Ms.createNullLogger(),responsesCache:Mt.createNullCache(),requestsCache:Mt.createNullCache(),hostsCache:Ts.createInMemoryCache(),userAgent:ks.createUserAgent(be.version).add({segment:"Node.js",version:process.versions.node})};return c.createSearchClient(g(u(u({},s),r),{methods:{search:c.multipleQueries,searchForFacetValues:c.multipleSearchForFacetValues,multipleBatch:c.multipleBatch,multipleGetObjects:c.multipleGetObjects,multipleQueries:c.multipleQueries,copyIndex:c.copyIndex,copySettings:c.copySettings,copyRules:c.copyRules,copySynonyms:c.copySynonyms,moveIndex:c.moveIndex,listIndices:c.listIndices,getLogs:c.getLogs,listClusters:c.listClusters,multipleSearchForFacetValues:c.multipleSearchForFacetValues,getApiKey:c.getApiKey,addApiKey:c.addApiKey,listApiKeys:c.listApiKeys,updateApiKey:c.updateApiKey,deleteApiKey:c.deleteApiKey,restoreApiKey:c.restoreApiKey,assignUserID:c.assignUserID,assignUserIDs:c.assignUserIDs,getUserID:c.getUserID,searchUserIDs:c.searchUserIDs,listUserIDs:c.listUserIDs,getTopUserIDs:c.getTopUserIDs,removeUserID:c.removeUserID,hasPendingMappings:c.hasPendingMappings,generateSecuredApiKey:c.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:c.getSecuredApiKeyRemainingValidity,destroy:be.destroy,initIndex:n=>a=>c.initIndex(n)(a,{methods:{batch:c.batch,delete:c.deleteIndex,getObject:c.getObject,getObjects:c.getObjects,saveObject:c.saveObject,saveObjects:c.saveObjects,search:c.search,searchForFacetValues:c.searchForFacetValues,waitTask:c.waitTask,setSettings:c.setSettings,getSettings:c.getSettings,partialUpdateObject:c.partialUpdateObject,partialUpdateObjects:c.partialUpdateObjects,deleteObject:c.deleteObject,deleteObjects:c.deleteObjects,deleteBy:c.deleteBy,clearObjects:c.clearObjects,browseObjects:c.browseObjects,getObjectPosition:c.getObjectPosition,findObject:c.findObject,exists:c.exists,saveSynonym:c.saveSynonym,saveSynonyms:c.saveSynonyms,getSynonym:c.getSynonym,searchSynonyms:c.searchSynonyms,browseSynonyms:c.browseSynonyms,deleteSynonym:c.deleteSynonym,clearSynonyms:c.clearSynonyms,replaceAllObjects:c.replaceAllObjects,replaceAllSynonyms:c.replaceAllSynonyms,searchRules:c.searchRules,getRule:c.getRule,deleteRule:c.deleteRule,saveRule:c.saveRule,saveRules:c.saveRules,replaceAllRules:c.replaceAllRules,browseRules:c.browseRules,clearRules:c.clearRules}}),initAnalytics:()=>n=>W.createAnalyticsClient(g(u(u({},s),n),{methods:{addABTest:W.addABTest,getABTest:W.getABTest,getABTests:W.getABTests,stopABTest:W.stopABTest,deleteABTest:W.deleteABTest}})),initRecommendation:()=>n=>Pe.createRecommendationClient(g(u(u({},s),n),{methods:{getPersonalizationStrategy:Pe.getPersonalizationStrategy,setPersonalizationStrategy:Pe.setPersonalizationStrategy}}))}}))}wt.version=be.version;Tt.exports=wt});var Ut=I((mn,je)=>{var Ct=kt();je.exports=Ct;je.exports.default=Ct});var Ws={};Vt(Ws,{default:()=>Ks});var Oe=C(require("@yarnpkg/core")),E=C(require("@yarnpkg/core")),Ie=C(require("@yarnpkg/plugin-essentials")),Ht=C(require("semver"));var se=C(require("@yarnpkg/core")),Nt=C(Ut()),Cs="e8e1bd300d860104bb8c58453ffa1eb4",Us="OFCNCOG2CU",Wt=async(e,t)=>{var a;let r=se.structUtils.stringifyIdent(e),n=Ns(t).initIndex("npm-search");try{return((a=(await n.getObject(r,{attributesToRetrieve:["types"]})).types)==null?void 0:a.ts)==="definitely-typed"}catch(o){return!1}},Ns=e=>(0,Nt.default)(Us,Cs,{requester:{async send(r){try{let s=await se.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var _t=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,Hs=async(e,t,r,s)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n,o=a.makeResolver(),d={project:n,resolver:o,report:new E.ThrowReport};if(!await Wt(r,a))return;let b=_t(r),f=E.structUtils.parseRange(r.range).selector;if(!E.semverUtils.validRange(f)){let P=await o.getCandidates(r,new Map,d);f=E.structUtils.parseRange(P[0].reference).selector}let p=Ht.default.coerce(f);if(p===null)return;let h=`${Ie.suggestUtils.Modifier.CARET}${p.major}`,S=E.structUtils.makeDescriptor(E.structUtils.makeIdent("types",b),h),O=E.miscUtils.mapAndFind(n.workspaces,P=>{var T,V;let x=(T=P.manifest.dependencies.get(r.identHash))==null?void 0:T.descriptorHash,v=(V=P.manifest.devDependencies.get(r.identHash))==null?void 0:V.descriptorHash;if(x!==r.descriptorHash&&v!==r.descriptorHash)return E.miscUtils.mapAndFind.skip;let j=[];for(let Ae of Oe.Manifest.allDependencies){let Se=P.manifest[Ae].get(S.identHash);typeof Se!="undefined"&&j.push([Ae,Se])}return j.length===0?E.miscUtils.mapAndFind.skip:j});if(typeof O!="undefined")for(let[P,x]of O)e.manifest[P].set(x.identHash,x);else{try{if((await o.getCandidates(S,new Map,d)).length===0)return}catch{return}e.manifest[Ie.suggestUtils.Target.DEVELOPMENT].set(S.identHash,S)}},_s=async(e,t,r)=>{if(r.scope==="types")return;let s=_t(r),n=E.structUtils.makeIdent("types",s);for(let a of Oe.Manifest.allDependencies)typeof e.manifest[a].get(n.identHash)!="undefined"&&e.manifest[a].delete(n.identHash)},Fs=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},Bs={hooks:{afterWorkspaceDependencyAddition:Hs,afterWorkspaceDependencyRemoval:_s,beforeWorkspacePacking:Fs}},Ks=Bs;return Ws;})(); +return plugin; +} +}; diff --git a/.yarn/plugins/@yarnpkg/plugin-version.cjs b/.yarn/plugins/@yarnpkg/plugin-version.cjs new file mode 100644 index 0000000000..87de4f440a --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-version.cjs @@ -0,0 +1,550 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-version", +factory: function (require) { +var plugin=(()=>{var ZB=Object.create,zy=Object.defineProperty,$B=Object.defineProperties,eU=Object.getOwnPropertyDescriptor,tU=Object.getOwnPropertyDescriptors,nU=Object.getOwnPropertyNames,uS=Object.getOwnPropertySymbols,rU=Object.getPrototypeOf,oS=Object.prototype.hasOwnProperty,iU=Object.prototype.propertyIsEnumerable;var lS=(i,o,f)=>o in i?zy(i,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):i[o]=f,E0=(i,o)=>{for(var f in o||(o={}))oS.call(o,f)&&lS(i,f,o[f]);if(uS)for(var f of uS(o))iU.call(o,f)&&lS(i,f,o[f]);return i},Gf=(i,o)=>$B(i,tU(o)),uU=i=>zy(i,"__esModule",{value:!0});var ce=(i,o)=>()=>(o||i((o={exports:{}}).exports,o),o.exports),sS=(i,o)=>{for(var f in o)zy(i,f,{get:o[f],enumerable:!0})},oU=(i,o,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of nU(o))!oS.call(i,p)&&p!=="default"&&zy(i,p,{get:()=>o[p],enumerable:!(f=eU(o,p))||f.enumerable});return i},Mi=i=>oU(uU(zy(i!=null?ZB(rU(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var eD=ce((F$,aS)=>{function lU(i,o){for(var f=-1,p=i==null?0:i.length,E=Array(p);++f{function sU(){this.__data__=[],this.size=0}fS.exports=sU});var tD=ce((P$,dS)=>{function aU(i,o){return i===o||i!==i&&o!==o}dS.exports=aU});var qy=ce((I$,pS)=>{var fU=tD();function cU(i,o){for(var f=i.length;f--;)if(fU(i[f][0],o))return f;return-1}pS.exports=cU});var vS=ce((B$,hS)=>{var dU=qy(),pU=Array.prototype,hU=pU.splice;function vU(i){var o=this.__data__,f=dU(o,i);if(f<0)return!1;var p=o.length-1;return f==p?o.pop():hU.call(o,f,1),--this.size,!0}hS.exports=vU});var yS=ce((U$,mS)=>{var mU=qy();function yU(i){var o=this.__data__,f=mU(o,i);return f<0?void 0:o[f][1]}mS.exports=yU});var _S=ce((j$,gS)=>{var gU=qy();function _U(i){return gU(this.__data__,i)>-1}gS.exports=_U});var DS=ce((z$,ES)=>{var EU=qy();function DU(i,o){var f=this.__data__,p=EU(f,i);return p<0?(++this.size,f.push([i,o])):f[p][1]=o,this}ES.exports=DU});var Hy=ce((q$,wS)=>{var wU=cS(),SU=vS(),TU=yS(),CU=_S(),xU=DS();function jv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var AU=Hy();function RU(){this.__data__=new AU,this.size=0}SS.exports=RU});var xS=ce((W$,CS)=>{function OU(i){var o=this.__data__,f=o.delete(i);return this.size=o.size,f}CS.exports=OU});var RS=ce((V$,AS)=>{function kU(i){return this.__data__.get(i)}AS.exports=kU});var kS=ce((G$,OS)=>{function MU(i){return this.__data__.has(i)}OS.exports=MU});var nD=ce((Y$,MS)=>{var NU=typeof global=="object"&&global&&global.Object===Object&&global;MS.exports=NU});var Yf=ce((K$,NS)=>{var LU=nD(),FU=typeof self=="object"&&self&&self.Object===Object&&self,bU=LU||FU||Function("return this")();NS.exports=bU});var zv=ce((X$,LS)=>{var PU=Yf(),IU=PU.Symbol;LS.exports=IU});var BS=ce((Q$,bS)=>{var PS=zv(),IS=Object.prototype,BU=IS.hasOwnProperty,UU=IS.toString,Wy=PS?PS.toStringTag:void 0;function jU(i){var o=BU.call(i,Wy),f=i[Wy];try{i[Wy]=void 0;var p=!0}catch(t){}var E=UU.call(i);return p&&(o?i[Wy]=f:delete i[Wy]),E}bS.exports=jU});var jS=ce((J$,US)=>{var zU=Object.prototype,qU=zU.toString;function HU(i){return qU.call(i)}US.exports=HU});var Qp=ce((Z$,zS)=>{var qS=zv(),WU=BS(),VU=jS(),GU="[object Null]",YU="[object Undefined]",HS=qS?qS.toStringTag:void 0;function KU(i){return i==null?i===void 0?YU:GU:HS&&HS in Object(i)?WU(i):VU(i)}zS.exports=KU});var qv=ce(($$,WS)=>{function XU(i){var o=typeof i;return i!=null&&(o=="object"||o=="function")}WS.exports=XU});var rD=ce((eee,VS)=>{var QU=Qp(),JU=qv(),ZU="[object AsyncFunction]",$U="[object Function]",ej="[object GeneratorFunction]",tj="[object Proxy]";function nj(i){if(!JU(i))return!1;var o=QU(i);return o==$U||o==ej||o==ZU||o==tj}VS.exports=nj});var YS=ce((tee,GS)=>{var rj=Yf(),ij=rj["__core-js_shared__"];GS.exports=ij});var QS=ce((nee,KS)=>{var iD=YS(),XS=function(){var i=/[^.]+$/.exec(iD&&iD.keys&&iD.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function uj(i){return!!XS&&XS in i}KS.exports=uj});var uD=ce((ree,JS)=>{var oj=Function.prototype,lj=oj.toString;function sj(i){if(i!=null){try{return lj.call(i)}catch(o){}try{return i+""}catch(o){}}return""}JS.exports=sj});var $S=ce((iee,ZS)=>{var aj=rD(),fj=QS(),cj=qv(),dj=uD(),pj=/[\\^$.*+?()[\]{}|]/g,hj=/^\[object .+?Constructor\]$/,vj=Function.prototype,mj=Object.prototype,yj=vj.toString,gj=mj.hasOwnProperty,_j=RegExp("^"+yj.call(gj).replace(pj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ej(i){if(!cj(i)||fj(i))return!1;var o=aj(i)?_j:hj;return o.test(dj(i))}ZS.exports=Ej});var tT=ce((uee,eT)=>{function Dj(i,o){return i==null?void 0:i[o]}eT.exports=Dj});var sd=ce((oee,nT)=>{var wj=$S(),Sj=tT();function Tj(i,o){var f=Sj(i,o);return wj(f)?f:void 0}nT.exports=Tj});var L_=ce((lee,rT)=>{var Cj=sd(),xj=Yf(),Aj=Cj(xj,"Map");rT.exports=Aj});var Vy=ce((see,iT)=>{var Rj=sd(),Oj=Rj(Object,"create");iT.exports=Oj});var lT=ce((aee,uT)=>{var oT=Vy();function kj(){this.__data__=oT?oT(null):{},this.size=0}uT.exports=kj});var aT=ce((fee,sT)=>{function Mj(i){var o=this.has(i)&&delete this.__data__[i];return this.size-=o?1:0,o}sT.exports=Mj});var cT=ce((cee,fT)=>{var Nj=Vy(),Lj="__lodash_hash_undefined__",Fj=Object.prototype,bj=Fj.hasOwnProperty;function Pj(i){var o=this.__data__;if(Nj){var f=o[i];return f===Lj?void 0:f}return bj.call(o,i)?o[i]:void 0}fT.exports=Pj});var pT=ce((dee,dT)=>{var Ij=Vy(),Bj=Object.prototype,Uj=Bj.hasOwnProperty;function jj(i){var o=this.__data__;return Ij?o[i]!==void 0:Uj.call(o,i)}dT.exports=jj});var vT=ce((pee,hT)=>{var zj=Vy(),qj="__lodash_hash_undefined__";function Hj(i,o){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=zj&&o===void 0?qj:o,this}hT.exports=Hj});var yT=ce((hee,mT)=>{var Wj=lT(),Vj=aT(),Gj=cT(),Yj=pT(),Kj=vT();function Hv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var _T=yT(),Xj=Hy(),Qj=L_();function Jj(){this.size=0,this.__data__={hash:new _T,map:new(Qj||Xj),string:new _T}}gT.exports=Jj});var wT=ce((mee,DT)=>{function Zj(i){var o=typeof i;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?i!=="__proto__":i===null}DT.exports=Zj});var Gy=ce((yee,ST)=>{var $j=wT();function ez(i,o){var f=i.__data__;return $j(o)?f[typeof o=="string"?"string":"hash"]:f.map}ST.exports=ez});var CT=ce((gee,TT)=>{var tz=Gy();function nz(i){var o=tz(this,i).delete(i);return this.size-=o?1:0,o}TT.exports=nz});var AT=ce((_ee,xT)=>{var rz=Gy();function iz(i){return rz(this,i).get(i)}xT.exports=iz});var OT=ce((Eee,RT)=>{var uz=Gy();function oz(i){return uz(this,i).has(i)}RT.exports=oz});var MT=ce((Dee,kT)=>{var lz=Gy();function sz(i,o){var f=lz(this,i),p=f.size;return f.set(i,o),this.size+=f.size==p?0:1,this}kT.exports=sz});var oD=ce((wee,NT)=>{var az=ET(),fz=CT(),cz=AT(),dz=OT(),pz=MT();function Wv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var hz=Hy(),vz=L_(),mz=oD(),yz=200;function gz(i,o){var f=this.__data__;if(f instanceof hz){var p=f.__data__;if(!vz||p.length{var _z=Hy(),Ez=TS(),Dz=xS(),wz=RS(),Sz=kS(),Tz=FT();function Vv(i){var o=this.__data__=new _z(i);this.size=o.size}Vv.prototype.clear=Ez;Vv.prototype.delete=Dz;Vv.prototype.get=wz;Vv.prototype.has=Sz;Vv.prototype.set=Tz;bT.exports=Vv});var BT=ce((Cee,IT)=>{function Cz(i,o){for(var f=-1,p=i==null?0:i.length;++f{var xz=sd(),Az=function(){try{var i=xz(Object,"defineProperty");return i({},"",{}),i}catch(o){}}();UT.exports=Az});var sD=ce((Aee,jT)=>{var zT=lD();function Rz(i,o,f){o=="__proto__"&&zT?zT(i,o,{configurable:!0,enumerable:!0,value:f,writable:!0}):i[o]=f}jT.exports=Rz});var aD=ce((Ree,qT)=>{var Oz=sD(),kz=tD(),Mz=Object.prototype,Nz=Mz.hasOwnProperty;function Lz(i,o,f){var p=i[o];(!(Nz.call(i,o)&&kz(p,f))||f===void 0&&!(o in i))&&Oz(i,o,f)}qT.exports=Lz});var Gv=ce((Oee,HT)=>{var Fz=aD(),bz=sD();function Pz(i,o,f,p){var E=!f;f||(f={});for(var t=-1,k=o.length;++t{function Iz(i,o){for(var f=-1,p=Array(i);++f{function Bz(i){return i!=null&&typeof i=="object"}GT.exports=Bz});var KT=ce((Nee,YT)=>{var Uz=Qp(),jz=ad(),zz="[object Arguments]";function qz(i){return jz(i)&&Uz(i)==zz}YT.exports=qz});var fD=ce((Lee,XT)=>{var QT=KT(),Hz=ad(),JT=Object.prototype,Wz=JT.hasOwnProperty,Vz=JT.propertyIsEnumerable,Gz=QT(function(){return arguments}())?QT:function(i){return Hz(i)&&Wz.call(i,"callee")&&!Vz.call(i,"callee")};XT.exports=Gz});var fd=ce((Fee,ZT)=>{var Yz=Array.isArray;ZT.exports=Yz});var eC=ce((bee,$T)=>{function Kz(){return!1}$T.exports=Kz});var cD=ce((Yy,Yv)=>{var Xz=Yf(),Qz=eC(),tC=typeof Yy=="object"&&Yy&&!Yy.nodeType&&Yy,nC=tC&&typeof Yv=="object"&&Yv&&!Yv.nodeType&&Yv,Jz=nC&&nC.exports===tC,rC=Jz?Xz.Buffer:void 0,Zz=rC?rC.isBuffer:void 0,$z=Zz||Qz;Yv.exports=$z});var uC=ce((Pee,iC)=>{var eq=9007199254740991,tq=/^(?:0|[1-9]\d*)$/;function nq(i,o){var f=typeof i;return o=o==null?eq:o,!!o&&(f=="number"||f!="symbol"&&tq.test(i))&&i>-1&&i%1==0&&i{var rq=9007199254740991;function iq(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=rq}oC.exports=iq});var sC=ce((Bee,lC)=>{var uq=Qp(),oq=dD(),lq=ad(),sq="[object Arguments]",aq="[object Array]",fq="[object Boolean]",cq="[object Date]",dq="[object Error]",pq="[object Function]",hq="[object Map]",vq="[object Number]",mq="[object Object]",yq="[object RegExp]",gq="[object Set]",_q="[object String]",Eq="[object WeakMap]",Dq="[object ArrayBuffer]",wq="[object DataView]",Sq="[object Float32Array]",Tq="[object Float64Array]",Cq="[object Int8Array]",xq="[object Int16Array]",Aq="[object Int32Array]",Rq="[object Uint8Array]",Oq="[object Uint8ClampedArray]",kq="[object Uint16Array]",Mq="[object Uint32Array]",o0={};o0[Sq]=o0[Tq]=o0[Cq]=o0[xq]=o0[Aq]=o0[Rq]=o0[Oq]=o0[kq]=o0[Mq]=!0;o0[sq]=o0[aq]=o0[Dq]=o0[fq]=o0[wq]=o0[cq]=o0[dq]=o0[pq]=o0[hq]=o0[vq]=o0[mq]=o0[yq]=o0[gq]=o0[_q]=o0[Eq]=!1;function Nq(i){return lq(i)&&oq(i.length)&&!!o0[uq(i)]}lC.exports=Nq});var F_=ce((Uee,aC)=>{function Lq(i){return function(o){return i(o)}}aC.exports=Lq});var b_=ce((Ky,Kv)=>{var Fq=nD(),fC=typeof Ky=="object"&&Ky&&!Ky.nodeType&&Ky,Xy=fC&&typeof Kv=="object"&&Kv&&!Kv.nodeType&&Kv,bq=Xy&&Xy.exports===fC,pD=bq&&Fq.process,Pq=function(){try{var i=Xy&&Xy.require&&Xy.require("util").types;return i||pD&&pD.binding&&pD.binding("util")}catch(o){}}();Kv.exports=Pq});var hC=ce((jee,cC)=>{var Iq=sC(),Bq=F_(),dC=b_(),pC=dC&&dC.isTypedArray,Uq=pC?Bq(pC):Iq;cC.exports=Uq});var hD=ce((zee,vC)=>{var jq=VT(),zq=fD(),qq=fd(),Hq=cD(),Wq=uC(),Vq=hC(),Gq=Object.prototype,Yq=Gq.hasOwnProperty;function Kq(i,o){var f=qq(i),p=!f&&zq(i),E=!f&&!p&&Hq(i),t=!f&&!p&&!E&&Vq(i),k=f||p||E||t,L=k?jq(i.length,String):[],N=L.length;for(var C in i)(o||Yq.call(i,C))&&!(k&&(C=="length"||E&&(C=="offset"||C=="parent")||t&&(C=="buffer"||C=="byteLength"||C=="byteOffset")||Wq(C,N)))&&L.push(C);return L}vC.exports=Kq});var P_=ce((qee,mC)=>{var Xq=Object.prototype;function Qq(i){var o=i&&i.constructor,f=typeof o=="function"&&o.prototype||Xq;return i===f}mC.exports=Qq});var vD=ce((Hee,yC)=>{function Jq(i,o){return function(f){return i(o(f))}}yC.exports=Jq});var _C=ce((Wee,gC)=>{var Zq=vD(),$q=Zq(Object.keys,Object);gC.exports=$q});var DC=ce((Vee,EC)=>{var eH=P_(),tH=_C(),nH=Object.prototype,rH=nH.hasOwnProperty;function iH(i){if(!eH(i))return tH(i);var o=[];for(var f in Object(i))rH.call(i,f)&&f!="constructor"&&o.push(f);return o}EC.exports=iH});var mD=ce((Gee,wC)=>{var uH=rD(),oH=dD();function lH(i){return i!=null&&oH(i.length)&&!uH(i)}wC.exports=lH});var I_=ce((Yee,SC)=>{var sH=hD(),aH=DC(),fH=mD();function cH(i){return fH(i)?sH(i):aH(i)}SC.exports=cH});var CC=ce((Kee,TC)=>{var dH=Gv(),pH=I_();function hH(i,o){return i&&dH(o,pH(o),i)}TC.exports=hH});var AC=ce((Xee,xC)=>{function vH(i){var o=[];if(i!=null)for(var f in Object(i))o.push(f);return o}xC.exports=vH});var OC=ce((Qee,RC)=>{var mH=qv(),yH=P_(),gH=AC(),_H=Object.prototype,EH=_H.hasOwnProperty;function DH(i){if(!mH(i))return gH(i);var o=yH(i),f=[];for(var p in i)p=="constructor"&&(o||!EH.call(i,p))||f.push(p);return f}RC.exports=DH});var B_=ce((Jee,kC)=>{var wH=hD(),SH=OC(),TH=mD();function CH(i){return TH(i)?wH(i,!0):SH(i)}kC.exports=CH});var NC=ce((Zee,MC)=>{var xH=Gv(),AH=B_();function RH(i,o){return i&&xH(o,AH(o),i)}MC.exports=RH});var IC=ce((Qy,Xv)=>{var OH=Yf(),LC=typeof Qy=="object"&&Qy&&!Qy.nodeType&&Qy,FC=LC&&typeof Xv=="object"&&Xv&&!Xv.nodeType&&Xv,kH=FC&&FC.exports===LC,bC=kH?OH.Buffer:void 0,PC=bC?bC.allocUnsafe:void 0;function MH(i,o){if(o)return i.slice();var f=i.length,p=PC?PC(f):new i.constructor(f);return i.copy(p),p}Xv.exports=MH});var UC=ce(($ee,BC)=>{function NH(i,o){var f=-1,p=i.length;for(o||(o=Array(p));++f{function LH(i,o){for(var f=-1,p=i==null?0:i.length,E=0,t=[];++f{function FH(){return[]}qC.exports=FH});var U_=ce((nte,HC)=>{var bH=zC(),PH=yD(),IH=Object.prototype,BH=IH.propertyIsEnumerable,WC=Object.getOwnPropertySymbols,UH=WC?function(i){return i==null?[]:(i=Object(i),bH(WC(i),function(o){return BH.call(i,o)}))}:PH;HC.exports=UH});var GC=ce((rte,VC)=>{var jH=Gv(),zH=U_();function qH(i,o){return jH(i,zH(i),o)}VC.exports=qH});var j_=ce((ite,YC)=>{function HH(i,o){for(var f=-1,p=o.length,E=i.length;++f{var WH=vD(),VH=WH(Object.getPrototypeOf,Object);KC.exports=VH});var gD=ce((ote,XC)=>{var GH=j_(),YH=z_(),KH=U_(),XH=yD(),QH=Object.getOwnPropertySymbols,JH=QH?function(i){for(var o=[];i;)GH(o,KH(i)),i=YH(i);return o}:XH;XC.exports=JH});var JC=ce((lte,QC)=>{var ZH=Gv(),$H=gD();function eW(i,o){return ZH(i,$H(i),o)}QC.exports=eW});var _D=ce((ste,ZC)=>{var tW=j_(),nW=fd();function rW(i,o,f){var p=o(i);return nW(i)?p:tW(p,f(i))}ZC.exports=rW});var e6=ce((ate,$C)=>{var iW=_D(),uW=U_(),oW=I_();function lW(i){return iW(i,oW,uW)}$C.exports=lW});var ED=ce((fte,t6)=>{var sW=_D(),aW=gD(),fW=B_();function cW(i){return sW(i,fW,aW)}t6.exports=cW});var r6=ce((cte,n6)=>{var dW=sd(),pW=Yf(),hW=dW(pW,"DataView");n6.exports=hW});var u6=ce((dte,i6)=>{var vW=sd(),mW=Yf(),yW=vW(mW,"Promise");i6.exports=yW});var l6=ce((pte,o6)=>{var gW=sd(),_W=Yf(),EW=gW(_W,"Set");o6.exports=EW});var a6=ce((hte,s6)=>{var DW=sd(),wW=Yf(),SW=DW(wW,"WeakMap");s6.exports=SW});var q_=ce((vte,f6)=>{var DD=r6(),wD=L_(),SD=u6(),TD=l6(),CD=a6(),c6=Qp(),Qv=uD(),d6="[object Map]",TW="[object Object]",p6="[object Promise]",h6="[object Set]",v6="[object WeakMap]",m6="[object DataView]",CW=Qv(DD),xW=Qv(wD),AW=Qv(SD),RW=Qv(TD),OW=Qv(CD),Jp=c6;(DD&&Jp(new DD(new ArrayBuffer(1)))!=m6||wD&&Jp(new wD)!=d6||SD&&Jp(SD.resolve())!=p6||TD&&Jp(new TD)!=h6||CD&&Jp(new CD)!=v6)&&(Jp=function(i){var o=c6(i),f=o==TW?i.constructor:void 0,p=f?Qv(f):"";if(p)switch(p){case CW:return m6;case xW:return d6;case AW:return p6;case RW:return h6;case OW:return v6}return o});f6.exports=Jp});var g6=ce((mte,y6)=>{var kW=Object.prototype,MW=kW.hasOwnProperty;function NW(i){var o=i.length,f=new i.constructor(o);return o&&typeof i[0]=="string"&&MW.call(i,"index")&&(f.index=i.index,f.input=i.input),f}y6.exports=NW});var E6=ce((yte,_6)=>{var LW=Yf(),FW=LW.Uint8Array;_6.exports=FW});var H_=ce((gte,D6)=>{var w6=E6();function bW(i){var o=new i.constructor(i.byteLength);return new w6(o).set(new w6(i)),o}D6.exports=bW});var T6=ce((_te,S6)=>{var PW=H_();function IW(i,o){var f=o?PW(i.buffer):i.buffer;return new i.constructor(f,i.byteOffset,i.byteLength)}S6.exports=IW});var x6=ce((Ete,C6)=>{var BW=/\w*$/;function UW(i){var o=new i.constructor(i.source,BW.exec(i));return o.lastIndex=i.lastIndex,o}C6.exports=UW});var M6=ce((Dte,A6)=>{var R6=zv(),O6=R6?R6.prototype:void 0,k6=O6?O6.valueOf:void 0;function jW(i){return k6?Object(k6.call(i)):{}}A6.exports=jW});var L6=ce((wte,N6)=>{var zW=H_();function qW(i,o){var f=o?zW(i.buffer):i.buffer;return new i.constructor(f,i.byteOffset,i.length)}N6.exports=qW});var b6=ce((Ste,F6)=>{var HW=H_(),WW=T6(),VW=x6(),GW=M6(),YW=L6(),KW="[object Boolean]",XW="[object Date]",QW="[object Map]",JW="[object Number]",ZW="[object RegExp]",$W="[object Set]",eV="[object String]",tV="[object Symbol]",nV="[object ArrayBuffer]",rV="[object DataView]",iV="[object Float32Array]",uV="[object Float64Array]",oV="[object Int8Array]",lV="[object Int16Array]",sV="[object Int32Array]",aV="[object Uint8Array]",fV="[object Uint8ClampedArray]",cV="[object Uint16Array]",dV="[object Uint32Array]";function pV(i,o,f){var p=i.constructor;switch(o){case nV:return HW(i);case KW:case XW:return new p(+i);case rV:return WW(i,f);case iV:case uV:case oV:case lV:case sV:case aV:case fV:case cV:case dV:return YW(i,f);case QW:return new p;case JW:case eV:return new p(i);case ZW:return VW(i);case $W:return new p;case tV:return GW(i)}}F6.exports=pV});var B6=ce((Tte,P6)=>{var hV=qv(),I6=Object.create,vV=function(){function i(){}return function(o){if(!hV(o))return{};if(I6)return I6(o);i.prototype=o;var f=new i;return i.prototype=void 0,f}}();P6.exports=vV});var j6=ce((Cte,U6)=>{var mV=B6(),yV=z_(),gV=P_();function _V(i){return typeof i.constructor=="function"&&!gV(i)?mV(yV(i)):{}}U6.exports=_V});var q6=ce((xte,z6)=>{var EV=q_(),DV=ad(),wV="[object Map]";function SV(i){return DV(i)&&EV(i)==wV}z6.exports=SV});var G6=ce((Ate,H6)=>{var TV=q6(),CV=F_(),W6=b_(),V6=W6&&W6.isMap,xV=V6?CV(V6):TV;H6.exports=xV});var K6=ce((Rte,Y6)=>{var AV=q_(),RV=ad(),OV="[object Set]";function kV(i){return RV(i)&&AV(i)==OV}Y6.exports=kV});var Z6=ce((Ote,X6)=>{var MV=K6(),NV=F_(),Q6=b_(),J6=Q6&&Q6.isSet,LV=J6?NV(J6):MV;X6.exports=LV});var rx=ce((kte,$6)=>{var FV=PT(),bV=BT(),PV=aD(),IV=CC(),BV=NC(),UV=IC(),jV=UC(),zV=GC(),qV=JC(),HV=e6(),WV=ED(),VV=q_(),GV=g6(),YV=b6(),KV=j6(),XV=fd(),QV=cD(),JV=G6(),ZV=qv(),$V=Z6(),eG=I_(),tG=B_(),nG=1,rG=2,iG=4,ex="[object Arguments]",uG="[object Array]",oG="[object Boolean]",lG="[object Date]",sG="[object Error]",tx="[object Function]",aG="[object GeneratorFunction]",fG="[object Map]",cG="[object Number]",nx="[object Object]",dG="[object RegExp]",pG="[object Set]",hG="[object String]",vG="[object Symbol]",mG="[object WeakMap]",yG="[object ArrayBuffer]",gG="[object DataView]",_G="[object Float32Array]",EG="[object Float64Array]",DG="[object Int8Array]",wG="[object Int16Array]",SG="[object Int32Array]",TG="[object Uint8Array]",CG="[object Uint8ClampedArray]",xG="[object Uint16Array]",AG="[object Uint32Array]",Wu={};Wu[ex]=Wu[uG]=Wu[yG]=Wu[gG]=Wu[oG]=Wu[lG]=Wu[_G]=Wu[EG]=Wu[DG]=Wu[wG]=Wu[SG]=Wu[fG]=Wu[cG]=Wu[nx]=Wu[dG]=Wu[pG]=Wu[hG]=Wu[vG]=Wu[TG]=Wu[CG]=Wu[xG]=Wu[AG]=!0;Wu[sG]=Wu[tx]=Wu[mG]=!1;function W_(i,o,f,p,E,t){var k,L=o&nG,N=o&rG,C=o&iG;if(f&&(k=E?f(i,p,E,t):f(i)),k!==void 0)return k;if(!ZV(i))return i;var U=XV(i);if(U){if(k=GV(i),!L)return jV(i,k)}else{var q=VV(i),W=q==tx||q==aG;if(QV(i))return UV(i,L);if(q==nx||q==ex||W&&!E){if(k=N||W?{}:KV(i),!L)return N?qV(i,BV(k,i)):zV(i,IV(k,i))}else{if(!Wu[q])return E?i:{};k=YV(i,q,L)}}t||(t=new FV);var ne=t.get(i);if(ne)return ne;t.set(i,k),$V(i)?i.forEach(function(Se){k.add(W_(Se,o,f,Se,i,t))}):JV(i)&&i.forEach(function(Se,he){k.set(he,W_(Se,o,f,he,i,t))});var m=C?N?WV:HV:N?tG:eG,we=U?void 0:m(i);return bV(we||i,function(Se,he){we&&(he=Se,Se=i[he]),PV(k,he,W_(Se,o,f,he,i,t))}),k}$6.exports=W_});var V_=ce((Mte,ix)=>{var RG=Qp(),OG=ad(),kG="[object Symbol]";function MG(i){return typeof i=="symbol"||OG(i)&&RG(i)==kG}ix.exports=MG});var ox=ce((Nte,ux)=>{var NG=fd(),LG=V_(),FG=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bG=/^\w*$/;function PG(i,o){if(NG(i))return!1;var f=typeof i;return f=="number"||f=="symbol"||f=="boolean"||i==null||LG(i)?!0:bG.test(i)||!FG.test(i)||o!=null&&i in Object(o)}ux.exports=PG});var ax=ce((Lte,lx)=>{var sx=oD(),IG="Expected a function";function xD(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(IG);var f=function(){var p=arguments,E=o?o.apply(this,p):p[0],t=f.cache;if(t.has(E))return t.get(E);var k=i.apply(this,p);return f.cache=t.set(E,k)||t,k};return f.cache=new(xD.Cache||sx),f}xD.Cache=sx;lx.exports=xD});var cx=ce((Fte,fx)=>{var BG=ax(),UG=500;function jG(i){var o=BG(i,function(p){return f.size===UG&&f.clear(),p}),f=o.cache;return o}fx.exports=jG});var px=ce((bte,dx)=>{var zG=cx(),qG=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,HG=/\\(\\)?/g,WG=zG(function(i){var o=[];return i.charCodeAt(0)===46&&o.push(""),i.replace(qG,function(f,p,E,t){o.push(E?t.replace(HG,"$1"):p||f)}),o});dx.exports=WG});var _x=ce((Pte,hx)=>{var vx=zv(),VG=eD(),GG=fd(),YG=V_(),KG=1/0,mx=vx?vx.prototype:void 0,yx=mx?mx.toString:void 0;function gx(i){if(typeof i=="string")return i;if(GG(i))return VG(i,gx)+"";if(YG(i))return yx?yx.call(i):"";var o=i+"";return o=="0"&&1/i==-KG?"-0":o}hx.exports=gx});var Dx=ce((Ite,Ex)=>{var XG=_x();function QG(i){return i==null?"":XG(i)}Ex.exports=QG});var G_=ce((Bte,wx)=>{var JG=fd(),ZG=ox(),$G=px(),eY=Dx();function tY(i,o){return JG(i)?i:ZG(i,o)?[i]:$G(eY(i))}wx.exports=tY});var Tx=ce((Ute,Sx)=>{function nY(i){var o=i==null?0:i.length;return o?i[o-1]:void 0}Sx.exports=nY});var AD=ce((jte,Cx)=>{var rY=V_(),iY=1/0;function uY(i){if(typeof i=="string"||rY(i))return i;var o=i+"";return o=="0"&&1/i==-iY?"-0":o}Cx.exports=uY});var Ax=ce((zte,xx)=>{var oY=G_(),lY=AD();function sY(i,o){o=oY(o,i);for(var f=0,p=o.length;i!=null&&f{function aY(i,o,f){var p=-1,E=i.length;o<0&&(o=-o>E?0:E+o),f=f>E?E:f,f<0&&(f+=E),E=o>f?0:f-o>>>0,o>>>=0;for(var t=Array(E);++p{var fY=Ax(),cY=Ox();function dY(i,o){return o.length<2?i:fY(i,cY(o,0,-1))}kx.exports=dY});var Lx=ce((Wte,Nx)=>{var pY=G_(),hY=Tx(),vY=Mx(),mY=AD();function yY(i,o){return o=pY(o,i),i=vY(i,o),i==null||delete i[mY(hY(o))]}Nx.exports=yY});var Px=ce((Vte,Fx)=>{var gY=Qp(),_Y=z_(),EY=ad(),DY="[object Object]",wY=Function.prototype,SY=Object.prototype,bx=wY.toString,TY=SY.hasOwnProperty,CY=bx.call(Object);function xY(i){if(!EY(i)||gY(i)!=DY)return!1;var o=_Y(i);if(o===null)return!0;var f=TY.call(o,"constructor")&&o.constructor;return typeof f=="function"&&f instanceof f&&bx.call(f)==CY}Fx.exports=xY});var Bx=ce((Gte,Ix)=>{var AY=Px();function RY(i){return AY(i)?void 0:i}Ix.exports=RY});var qx=ce((Yte,Ux)=>{var jx=zv(),OY=fD(),kY=fd(),zx=jx?jx.isConcatSpreadable:void 0;function MY(i){return kY(i)||OY(i)||!!(zx&&i&&i[zx])}Ux.exports=MY});var Vx=ce((Kte,Hx)=>{var NY=j_(),LY=qx();function Wx(i,o,f,p,E){var t=-1,k=i.length;for(f||(f=LY),E||(E=[]);++t0&&f(L)?o>1?Wx(L,o-1,f,p,E):NY(E,L):p||(E[E.length]=L)}return E}Hx.exports=Wx});var Yx=ce((Xte,Gx)=>{var FY=Vx();function bY(i){var o=i==null?0:i.length;return o?FY(i,1):[]}Gx.exports=bY});var Xx=ce((Qte,Kx)=>{function PY(i,o,f){switch(f.length){case 0:return i.call(o);case 1:return i.call(o,f[0]);case 2:return i.call(o,f[0],f[1]);case 3:return i.call(o,f[0],f[1],f[2])}return i.apply(o,f)}Kx.exports=PY});var Zx=ce((Jte,Qx)=>{var IY=Xx(),Jx=Math.max;function BY(i,o,f){return o=Jx(o===void 0?i.length-1:o,0),function(){for(var p=arguments,E=-1,t=Jx(p.length-o,0),k=Array(t);++E{function UY(i){return function(){return i}}$x.exports=UY});var n5=ce(($te,t5)=>{function jY(i){return i}t5.exports=jY});var u5=ce((ene,r5)=>{var zY=e5(),i5=lD(),qY=n5(),HY=i5?function(i,o){return i5(i,"toString",{configurable:!0,enumerable:!1,value:zY(o),writable:!0})}:qY;r5.exports=HY});var l5=ce((tne,o5)=>{var WY=800,VY=16,GY=Date.now;function YY(i){var o=0,f=0;return function(){var p=GY(),E=VY-(p-f);if(f=p,E>0){if(++o>=WY)return arguments[0]}else o=0;return i.apply(void 0,arguments)}}o5.exports=YY});var a5=ce((nne,s5)=>{var KY=u5(),XY=l5(),QY=XY(KY);s5.exports=QY});var c5=ce((rne,f5)=>{var JY=Yx(),ZY=Zx(),$Y=a5();function eK(i){return $Y(ZY(i,void 0,JY),i+"")}f5.exports=eK});var p5=ce((ine,d5)=>{var tK=eD(),nK=rx(),rK=Lx(),iK=G_(),uK=Gv(),oK=Bx(),lK=c5(),sK=ED(),aK=1,fK=2,cK=4,dK=lK(function(i,o){var f={};if(i==null)return f;var p=!1;o=tK(o,function(t){return t=iK(t,i),p||(p=t.length>1),t}),uK(i,sK(i),f),p&&(f=nK(f,aK|fK|cK,oK));for(var E=o.length;E--;)rK(f,o[E]);return f});d5.exports=dK});var eg=ce((vne,y5)=>{"use strict";var g5=Object.getOwnPropertySymbols,_K=Object.prototype.hasOwnProperty,EK=Object.prototype.propertyIsEnumerable;function DK(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function wK(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var o={},f=0;f<10;f++)o["_"+String.fromCharCode(f)]=f;var p=Object.getOwnPropertyNames(o).map(function(t){return o[t]});if(p.join("")!=="0123456789")return!1;var E={};return"abcdefghijklmnopqrst".split("").forEach(function(t){E[t]=t}),Object.keys(Object.assign({},E)).join("")==="abcdefghijklmnopqrst"}catch(t){return!1}}y5.exports=wK()?Object.assign:function(i,o){for(var f,p=DK(i),E,t=1;t{"use strict";var LD=eg(),Kf=typeof Symbol=="function"&&Symbol.for,tg=Kf?Symbol.for("react.element"):60103,SK=Kf?Symbol.for("react.portal"):60106,TK=Kf?Symbol.for("react.fragment"):60107,CK=Kf?Symbol.for("react.strict_mode"):60108,xK=Kf?Symbol.for("react.profiler"):60114,AK=Kf?Symbol.for("react.provider"):60109,RK=Kf?Symbol.for("react.context"):60110,OK=Kf?Symbol.for("react.forward_ref"):60112,kK=Kf?Symbol.for("react.suspense"):60113,MK=Kf?Symbol.for("react.memo"):60115,NK=Kf?Symbol.for("react.lazy"):60116,_5=typeof Symbol=="function"&&Symbol.iterator;function ng(i){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+i,f=1;fJ_.length&&J_.push(i)}function BD(i,o,f,p){var E=typeof i;(E==="undefined"||E==="boolean")&&(i=null);var t=!1;if(i===null)t=!0;else switch(E){case"string":case"number":t=!0;break;case"object":switch(i.$$typeof){case tg:case SK:t=!0}}if(t)return f(p,i,o===""?"."+UD(i,0):o),1;if(t=0,o=o===""?".":o+":",Array.isArray(i))for(var k=0;k{"use strict";var BK="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";M5.exports=BK});var HD=ce((gne,L5)=>{"use strict";var qD=function(){};process.env.NODE_ENV!=="production"&&(F5=N5(),Z_={},b5=Function.call.bind(Object.prototype.hasOwnProperty),qD=function(i){var o="Warning: "+i;typeof console!="undefined"&&console.error(o);try{throw new Error(o)}catch(f){}});var F5,Z_,b5;function P5(i,o,f,p,E){if(process.env.NODE_ENV!=="production"){for(var t in i)if(b5(i,t)){var k;try{if(typeof i[t]!="function"){var L=Error((p||"React class")+": "+f+" type `"+t+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[t]+"`.");throw L.name="Invariant Violation",L}k=i[t](o,t,p,f,null,F5)}catch(C){k=C}if(k&&!(k instanceof Error)&&qD((p||"React class")+": type specification of "+f+" `"+t+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof k+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),k instanceof Error&&!(k.message in Z_)){Z_[k.message]=!0;var N=E?E():"";qD("Failed "+f+" type: "+k.message+(N!=null?N:""))}}}}P5.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(Z_={})};L5.exports=P5});var I5=ce(pu=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";var i=eg(),o=HD(),f="16.13.1",p=typeof Symbol=="function"&&Symbol.for,E=p?Symbol.for("react.element"):60103,t=p?Symbol.for("react.portal"):60106,k=p?Symbol.for("react.fragment"):60107,L=p?Symbol.for("react.strict_mode"):60108,N=p?Symbol.for("react.profiler"):60114,C=p?Symbol.for("react.provider"):60109,U=p?Symbol.for("react.context"):60110,q=p?Symbol.for("react.concurrent_mode"):60111,W=p?Symbol.for("react.forward_ref"):60112,ne=p?Symbol.for("react.suspense"):60113,m=p?Symbol.for("react.suspense_list"):60120,we=p?Symbol.for("react.memo"):60115,Se=p?Symbol.for("react.lazy"):60116,he=p?Symbol.for("react.block"):60121,ge=p?Symbol.for("react.fundamental"):60117,ze=p?Symbol.for("react.responder"):60118,pe=p?Symbol.for("react.scope"):60119,Oe=typeof Symbol=="function"&&Symbol.iterator,le="@@iterator";function Ue(X){if(X===null||typeof X!="object")return null;var _e=Oe&&X[Oe]||X[le];return typeof _e=="function"?_e:null}var Ge={current:null},rt={suspense:null},wt={current:null},xt=/^(.*)[\\\/]/;function $e(X,_e,Ne){var Me="";if(_e){var dt=_e.fileName,Hn=dt.replace(xt,"");if(/^index\./.test(Hn)){var Dn=dt.match(xt);if(Dn){var or=Dn[1];if(or){var mi=or.replace(xt,"");Hn=mi+"/"+Hn}}}Me=" (at "+Hn+":"+_e.lineNumber+")"}else Ne&&(Me=" (created by "+Ne+")");return` + in `+(X||"Unknown")+Me}var ft=1;function Ke(X){return X._status===ft?X._result:null}function jt(X,_e,Ne){var Me=_e.displayName||_e.name||"";return X.displayName||(Me!==""?Ne+"("+Me+")":Ne)}function $t(X){if(X==null)return null;if(typeof X.tag=="number"&&ct("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof X=="function")return X.displayName||X.name||null;if(typeof X=="string")return X;switch(X){case k:return"Fragment";case t:return"Portal";case N:return"Profiler";case L:return"StrictMode";case ne:return"Suspense";case m:return"SuspenseList"}if(typeof X=="object")switch(X.$$typeof){case U:return"Context.Consumer";case C:return"Context.Provider";case W:return jt(X,X.render,"ForwardRef");case we:return $t(X.type);case he:return $t(X.render);case Se:{var _e=X,Ne=Ke(_e);if(Ne)return $t(Ne);break}}return null}var at={},Q=null;function ae(X){Q=X}at.getCurrentStack=null,at.getStackAddendum=function(){var X="";if(Q){var _e=$t(Q.type),Ne=Q._owner;X+=$e(_e,Q._source,Ne&&$t(Ne.type))}var Me=at.getCurrentStack;return Me&&(X+=Me()||""),X};var Ce={current:!1},ue={ReactCurrentDispatcher:Ge,ReactCurrentBatchConfig:rt,ReactCurrentOwner:wt,IsSomeRendererActing:Ce,assign:i};i(ue,{ReactDebugCurrentFrame:at,ReactComponentTreeHook:{}});function je(X){{for(var _e=arguments.length,Ne=new Array(_e>1?_e-1:0),Me=1;Me<_e;Me++)Ne[Me-1]=arguments[Me];At("warn",X,Ne)}}function ct(X){{for(var _e=arguments.length,Ne=new Array(_e>1?_e-1:0),Me=1;Me<_e;Me++)Ne[Me-1]=arguments[Me];At("error",X,Ne)}}function At(X,_e,Ne){{var Me=Ne.length>0&&typeof Ne[Ne.length-1]=="string"&&Ne[Ne.length-1].indexOf(` + in`)===0;if(!Me){var dt=ue.ReactDebugCurrentFrame,Hn=dt.getStackAddendum();Hn!==""&&(_e+="%s",Ne=Ne.concat([Hn]))}var Dn=Ne.map(function(Su){return""+Su});Dn.unshift("Warning: "+_e),Function.prototype.apply.call(console[X],console,Dn);try{var or=0,mi="Warning: "+_e.replace(/%s/g,function(){return Ne[or++]});throw new Error(mi)}catch(Su){}}}var en={};function ln(X,_e){{var Ne=X.constructor,Me=Ne&&(Ne.displayName||Ne.name)||"ReactClass",dt=Me+"."+_e;if(en[dt])return;ct("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",_e,Me),en[dt]=!0}}var An={isMounted:function(X){return!1},enqueueForceUpdate:function(X,_e,Ne){ln(X,"forceUpdate")},enqueueReplaceState:function(X,_e,Ne,Me){ln(X,"replaceState")},enqueueSetState:function(X,_e,Ne,Me){ln(X,"setState")}},nr={};Object.freeze(nr);function un(X,_e,Ne){this.props=X,this.context=_e,this.refs=nr,this.updater=Ne||An}un.prototype.isReactComponent={},un.prototype.setState=function(X,_e){if(!(typeof X=="object"||typeof X=="function"||X==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,X,_e,"setState")},un.prototype.forceUpdate=function(X){this.updater.enqueueForceUpdate(this,X,"forceUpdate")};{var Wt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},vr=function(X,_e){Object.defineProperty(un.prototype,X,{get:function(){je("%s(...) is deprecated in plain JavaScript React classes. %s",_e[0],_e[1])}})};for(var w in Wt)Wt.hasOwnProperty(w)&&vr(w,Wt[w])}function Ut(){}Ut.prototype=un.prototype;function Vn(X,_e,Ne){this.props=X,this.context=_e,this.refs=nr,this.updater=Ne||An}var fr=Vn.prototype=new Ut;fr.constructor=Vn,i(fr,un.prototype),fr.isPureReactComponent=!0;function Fr(){var X={current:null};return Object.seal(X),X}var ur=Object.prototype.hasOwnProperty,br={key:!0,ref:!0,__self:!0,__source:!0},Kt,vu,a0;a0={};function So(X){if(ur.call(X,"ref")){var _e=Object.getOwnPropertyDescriptor(X,"ref").get;if(_e&&_e.isReactWarning)return!1}return X.ref!==void 0}function Go(X){if(ur.call(X,"key")){var _e=Object.getOwnPropertyDescriptor(X,"key").get;if(_e&&_e.isReactWarning)return!1}return X.key!==void 0}function Os(X,_e){var Ne=function(){Kt||(Kt=!0,ct("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",_e))};Ne.isReactWarning=!0,Object.defineProperty(X,"key",{get:Ne,configurable:!0})}function Yo(X,_e){var Ne=function(){vu||(vu=!0,ct("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",_e))};Ne.isReactWarning=!0,Object.defineProperty(X,"ref",{get:Ne,configurable:!0})}function Ko(X){if(typeof X.ref=="string"&&wt.current&&X.__self&&wt.current.stateNode!==X.__self){var _e=$t(wt.current.type);a0[_e]||(ct('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',$t(wt.current.type),X.ref),a0[_e]=!0)}}var qt=function(X,_e,Ne,Me,dt,Hn,Dn){var or={$$typeof:E,type:X,key:_e,ref:Ne,props:Dn,_owner:Hn};return or._store={},Object.defineProperty(or._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(or,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Me}),Object.defineProperty(or,"_source",{configurable:!1,enumerable:!1,writable:!1,value:dt}),Object.freeze&&(Object.freeze(or.props),Object.freeze(or)),or};function _i(X,_e,Ne){var Me,dt={},Hn=null,Dn=null,or=null,mi=null;if(_e!=null){So(_e)&&(Dn=_e.ref,Ko(_e)),Go(_e)&&(Hn=""+_e.key),or=_e.__self===void 0?null:_e.__self,mi=_e.__source===void 0?null:_e.__source;for(Me in _e)ur.call(_e,Me)&&!br.hasOwnProperty(Me)&&(dt[Me]=_e[Me])}var Su=arguments.length-2;if(Su===1)dt.children=Ne;else if(Su>1){for(var bu=Array(Su),Pu=0;Pu1){for(var mu=Array(Pu),yi=0;yi is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Provider},set:function(Dn){Ne.Provider=Dn}},_currentValue:{get:function(){return Ne._currentValue},set:function(Dn){Ne._currentValue=Dn}},_currentValue2:{get:function(){return Ne._currentValue2},set:function(Dn){Ne._currentValue2=Dn}},_threadCount:{get:function(){return Ne._threadCount},set:function(Dn){Ne._threadCount=Dn}},Consumer:{get:function(){return Me||(Me=!0,ct("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Consumer}}}),Ne.Consumer=Hn}return Ne._currentRenderer=null,Ne._currentRenderer2=null,Ne}function Ht(X){var _e={$$typeof:Se,_ctor:X,_status:-1,_result:null};{var Ne,Me;Object.defineProperties(_e,{defaultProps:{configurable:!0,get:function(){return Ne},set:function(dt){ct("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Ne=dt,Object.defineProperty(_e,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return Me},set:function(dt){ct("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Me=dt,Object.defineProperty(_e,"propTypes",{enumerable:!0})}}})}return _e}function Du(X){return X!=null&&X.$$typeof===we?ct("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof X!="function"?ct("forwardRef requires a render function but was given %s.",X===null?"null":typeof X):X.length!==0&&X.length!==2&&ct("forwardRef render functions accept exactly two parameters: props and ref. %s",X.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),X!=null&&(X.defaultProps!=null||X.propTypes!=null)&&ct("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:W,render:X}}function Yi(X){return typeof X=="string"||typeof X=="function"||X===k||X===q||X===N||X===L||X===ne||X===m||typeof X=="object"&&X!==null&&(X.$$typeof===Se||X.$$typeof===we||X.$$typeof===C||X.$$typeof===U||X.$$typeof===W||X.$$typeof===ge||X.$$typeof===ze||X.$$typeof===pe||X.$$typeof===he)}function Y0(X,_e){return Yi(X)||ct("memo: The first argument must be a component. Instead received: %s",X===null?"null":typeof X),{$$typeof:we,type:X,compare:_e===void 0?null:_e}}function Ui(){var X=Ge.current;if(X===null)throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.`);return X}function Wl(X,_e){var Ne=Ui();if(_e!==void 0&&ct("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",_e,typeof _e=="number"&&Array.isArray(arguments[2])?` + +Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks`:""),X._context!==void 0){var Me=X._context;Me.Consumer===X?ct("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):Me.Provider===X&&ct("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Ne.useContext(X,_e)}function xo(X){var _e=Ui();return _e.useState(X)}function ni(X,_e,Ne){var Me=Ui();return Me.useReducer(X,_e,Ne)}function oo(X){var _e=Ui();return _e.useRef(X)}function Vl(X,_e){var Ne=Ui();return Ne.useEffect(X,_e)}function Ao(X,_e){var Ne=Ui();return Ne.useLayoutEffect(X,_e)}function Ms(X,_e){var Ne=Ui();return Ne.useCallback(X,_e)}function Xn(X,_e){var Ne=Ui();return Ne.useMemo(X,_e)}function Qo(X,_e,Ne){var Me=Ui();return Me.useImperativeHandle(X,_e,Ne)}function lo(X,_e){{var Ne=Ui();return Ne.useDebugValue(X,_e)}}var b0;b0=!1;function yl(){if(wt.current){var X=$t(wt.current.type);if(X)return` + +Check the render method of \``+X+"`."}return""}function Ro(X){if(X!==void 0){var _e=X.fileName.replace(/^.*[\\\/]/,""),Ne=X.lineNumber;return` + +Check your code at `+_e+":"+Ne+"."}return""}function Et(X){return X!=null?Ro(X.__source):""}var Pt={};function Bn(X){var _e=yl();if(!_e){var Ne=typeof X=="string"?X:X.displayName||X.name;Ne&&(_e=` + +Check the top-level render call using <`+Ne+">.")}return _e}function Ir(X,_e){if(!(!X._store||X._store.validated||X.key!=null)){X._store.validated=!0;var Ne=Bn(_e);if(!Pt[Ne]){Pt[Ne]=!0;var Me="";X&&X._owner&&X._owner!==wt.current&&(Me=" It was passed a child from "+$t(X._owner.type)+"."),ae(X),ct('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',Ne,Me),ae(null)}}}function ji(X,_e){if(typeof X=="object"){if(Array.isArray(X))for(var Ne=0;Ne",dt=" Did you accidentally export a JSX literal instead of a component?"):Dn=typeof X,ct("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Dn,dt)}var or=_i.apply(this,arguments);if(or==null)return or;if(Me)for(var mi=2;mi{"use strict";process.env.NODE_ENV==="production"?WD.exports=k5():WD.exports=I5()});var B5=ce((nm,rg)=>{(function(){var i,o="4.17.21",f=200,p="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",E="Expected a function",t="Invalid `variable` option passed into `_.template`",k="__lodash_hash_undefined__",L=500,N="__lodash_placeholder__",C=1,U=2,q=4,W=1,ne=2,m=1,we=2,Se=4,he=8,ge=16,ze=32,pe=64,Oe=128,le=256,Ue=512,Ge=30,rt="...",wt=800,xt=16,$e=1,ft=2,Ke=3,jt=1/0,$t=9007199254740991,at=17976931348623157e292,Q=0/0,ae=4294967295,Ce=ae-1,ue=ae>>>1,je=[["ary",Oe],["bind",m],["bindKey",we],["curry",he],["curryRight",ge],["flip",Ue],["partial",ze],["partialRight",pe],["rearg",le]],ct="[object Arguments]",At="[object Array]",en="[object AsyncFunction]",ln="[object Boolean]",An="[object Date]",nr="[object DOMException]",un="[object Error]",Wt="[object Function]",vr="[object GeneratorFunction]",w="[object Map]",Ut="[object Number]",Vn="[object Null]",fr="[object Object]",Fr="[object Promise]",ur="[object Proxy]",br="[object RegExp]",Kt="[object Set]",vu="[object String]",a0="[object Symbol]",So="[object Undefined]",Go="[object WeakMap]",Os="[object WeakSet]",Yo="[object ArrayBuffer]",Ko="[object DataView]",qt="[object Float32Array]",_i="[object Float64Array]",eu="[object Int8Array]",ai="[object Int16Array]",mr="[object Int32Array]",Xo="[object Uint8Array]",W0="[object Uint8ClampedArray]",Lu="[object Uint16Array]",V0="[object Uint32Array]",Hr=/\b__p \+= '';/g,To=/\b(__p \+=) '' \+/g,Co=/(__e\(.*?\)|\b__t\)) \+\n'';/g,L0=/&(?:amp|lt|gt|quot|#39);/g,tu=/[&<>"']/g,Si=RegExp(L0.source),ks=RegExp(tu.source),Hl=/<%-([\s\S]+?)%>/g,F0=/<%([\s\S]+?)%>/g,f0=/<%=([\s\S]+?)%>/g,Pr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ei=/^\w*$/,G0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fi=/[\\^$.*+?()[\]{}|]/g,Zt=RegExp(fi.source),Ln=/^\s+/,Di=/\s/,ci=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ht=/\{\n\/\* \[wrapped with (.+)\] \*/,Du=/,? & /,Yi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Y0=/[()=,{}\[\]\/\s]/,Ui=/\\(\\)?/g,Wl=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xo=/\w*$/,ni=/^[-+]0x[0-9a-f]+$/i,oo=/^0b[01]+$/i,Vl=/^\[object .+?Constructor\]$/,Ao=/^0o[0-7]+$/i,Ms=/^(?:0|[1-9]\d*)$/,Xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qo=/($^)/,lo=/['\n\r\u2028\u2029\\]/g,b0="\\ud800-\\udfff",yl="\\u0300-\\u036f",Ro="\\ufe20-\\ufe2f",Et="\\u20d0-\\u20ff",Pt=yl+Ro+Et,Bn="\\u2700-\\u27bf",Ir="a-z\\xdf-\\xf6\\xf8-\\xff",ji="\\xac\\xb1\\xd7\\xf7",Wr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",wu="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ti="A-Z\\xc0-\\xd6\\xd8-\\xde",d0="\\ufe0e\\ufe0f",as=ji+Wr+wu+c0,St="['\u2019]",so="["+b0+"]",Jo="["+as+"]",Gl="["+Pt+"]",Fu="\\d+",fs="["+Bn+"]",P0="["+Ir+"]",X="[^"+b0+as+Fu+Bn+Ir+Ti+"]",_e="\\ud83c[\\udffb-\\udfff]",Ne="(?:"+Gl+"|"+_e+")",Me="[^"+b0+"]",dt="(?:\\ud83c[\\udde6-\\uddff]){2}",Hn="[\\ud800-\\udbff][\\udc00-\\udfff]",Dn="["+Ti+"]",or="\\u200d",mi="(?:"+P0+"|"+X+")",Su="(?:"+Dn+"|"+X+")",bu="(?:"+St+"(?:d|ll|m|re|s|t|ve))?",Pu="(?:"+St+"(?:D|LL|M|RE|S|T|VE))?",mu=Ne+"?",yi="["+d0+"]?",Oo="(?:"+or+"(?:"+[Me,dt,Hn].join("|")+")"+yi+mu+")*",Tu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ao="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Iu=yi+mu+Oo,Oa="(?:"+[fs,dt,Hn].join("|")+")"+Iu,p0="(?:"+[Me+Gl+"?",Gl,dt,Hn,so].join("|")+")",Zs=RegExp(St,"g"),K0=RegExp(Gl,"g"),$s=RegExp(_e+"(?="+_e+")|"+p0+Iu,"g"),ka=RegExp([Dn+"?"+P0+"+"+bu+"(?="+[Jo,Dn,"$"].join("|")+")",Su+"+"+Pu+"(?="+[Jo,Dn+mi,"$"].join("|")+")",Dn+"?"+mi+"+"+bu,Dn+"+"+Pu,ao,Tu,Fu,Oa].join("|"),"g"),cs=RegExp("["+or+b0+Pt+d0+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Gn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ic=-1,ri={};ri[qt]=ri[_i]=ri[eu]=ri[ai]=ri[mr]=ri[Xo]=ri[W0]=ri[Lu]=ri[V0]=!0,ri[ct]=ri[At]=ri[Yo]=ri[ln]=ri[Ko]=ri[An]=ri[un]=ri[Wt]=ri[w]=ri[Ut]=ri[fr]=ri[br]=ri[Kt]=ri[vu]=ri[Go]=!1;var Gr={};Gr[ct]=Gr[At]=Gr[Yo]=Gr[Ko]=Gr[ln]=Gr[An]=Gr[qt]=Gr[_i]=Gr[eu]=Gr[ai]=Gr[mr]=Gr[w]=Gr[Ut]=Gr[fr]=Gr[br]=Gr[Kt]=Gr[vu]=Gr[a0]=Gr[Xo]=Gr[W0]=Gr[Lu]=Gr[V0]=!0,Gr[un]=Gr[Wt]=Gr[Go]=!1;var Yl={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},ea={"&":"&","<":"<",">":">",'"':""","'":"'"},lf={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ns={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ma=parseFloat,Ls=parseInt,h0=typeof global=="object"&&global&&global.Object===Object&&global,Fs=typeof self=="object"&&self&&self.Object===Object&&self,Ni=h0||Fs||Function("return this")(),B=typeof nm=="object"&&nm&&!nm.nodeType&&nm,z=B&&typeof rg=="object"&&rg&&!rg.nodeType&&rg,G=z&&z.exports===B,$=G&&h0.process,De=function(){try{var Te=z&&z.require&&z.require("util").types;return Te||$&&$.binding&&$.binding("util")}catch(et){}}(),me=De&&De.isArrayBuffer,xe=De&&De.isDate,Z=De&&De.isMap,ke=De&&De.isRegExp,Xe=De&&De.isSet,ht=De&&De.isTypedArray;function ie(Te,et,Ve){switch(Ve.length){case 0:return Te.call(et);case 1:return Te.call(et,Ve[0]);case 2:return Te.call(et,Ve[0],Ve[1]);case 3:return Te.call(et,Ve[0],Ve[1],Ve[2])}return Te.apply(et,Ve)}function qe(Te,et,Ve,Gt){for(var Yt=-1,sr=Te==null?0:Te.length;++Yt-1}function tn(Te,et,Ve){for(var Gt=-1,Yt=Te==null?0:Te.length;++Gt-1;);return Ve}function gl(Te,et){for(var Ve=Te.length;Ve--&&_t(et,Te[Ve],0)>-1;);return Ve}function af(Te,et){for(var Ve=Te.length,Gt=0;Ve--;)Te[Ve]===et&&++Gt;return Gt}var Mo=Yn(Yl),ds=Yn(ea);function bs(Te){return"\\"+Ns[Te]}function No(Te,et){return Te==null?i:Te[et]}function Lo(Te){return cs.test(Te)}function ps(Te){return w0.test(Te)}function Vu(Te){for(var et,Ve=[];!(et=Te.next()).done;)Ve.push(et.value);return Ve}function yu(Te){var et=-1,Ve=Array(Te.size);return Te.forEach(function(Gt,Yt){Ve[++et]=[Yt,Gt]}),Ve}function pi(Te,et){return function(Ve){return Te(et(Ve))}}function T0(Te,et){for(var Ve=-1,Gt=Te.length,Yt=0,sr=[];++Ve-1}function ia(d,v){var x=this.__data__,b=Ql(x,d);return b<0?(++this.size,x.push([d,v])):x[b][1]=v,this}to.prototype.clear=Na,to.prototype.delete=pf,to.prototype.get=uc,to.prototype.has=ms,to.prototype.set=ia;function B0(d){var v=-1,x=d==null?0:d.length;for(this.clear();++v=v?d:v)),d}function U0(d,v,x,b,H,ee){var de,ye=v&C,be=v&U,gt=v&q;if(x&&(de=H?x(d,b,H,ee):x(d)),de!==i)return de;if(!ku(d))return d;var Dt=Jn(d);if(Dt){if(de=Es(d),!ye)return Ji(d,de)}else{var Rt=Ou(d),rn=Rt==Wt||Rt==vr;if(Gs(d))return fc(d,ye);if(Rt==fr||Rt==ct||rn&&!H){if(de=be||rn?{}:vc(d),!ye)return be?Jl(d,tl(de,d)):t0(d,hf(de,d))}else{if(!Gr[Rt])return H?d:{};de=Dh(d,Rt,ye)}}ee||(ee=new el);var Rn=ee.get(d);if(Rn)return Rn;ee.set(d,de),L2(d)?d.forEach(function(ir){de.add(U0(ir,v,x,ir,d,ee))}):gp(d)&&d.forEach(function(ir,Zr){de.set(Zr,U0(ir,v,x,Zr,d,ee))});var $n=gt?be?rr:$c:be?fn:M0,Nr=Dt?i:$n(d);return tt(Nr||d,function(ir,Zr){Nr&&(Zr=ir,ir=d[Zr]),gs(de,Zr,U0(ir,v,x,Zr,d,ee))}),de}function vf(d){var v=M0(d);return function(x){return jc(x,d,v)}}function jc(d,v,x){var b=x.length;if(d==null)return!b;for(d=wn(d);b--;){var H=x[b],ee=v[H],de=d[H];if(de===i&&!(H in d)||!ee(de))return!1}return!0}function lc(d,v,x){if(typeof d!="function")throw new Kr(E);return Wa(function(){d.apply(i,x)},v)}function Sl(d,v,x,b){var H=-1,ee=on,de=!0,ye=d.length,be=[],gt=v.length;if(!ye)return be;x&&(v=Lt(v,di(x))),b?(ee=tn,de=!1):v.length>=f&&(ee=Zo,de=!1,v=new ho(v));e:for(;++HH?0:H+x),b=b===i||b>H?H:Cr(b),b<0&&(b+=H),b=x>b?0:Ep(b);x0&&x(ye)?v>1?bi(ye,v-1,x,b,H):gn(H,ye):b||(H[H.length]=ye)}return H}var g=dc(),y=dc(!0);function A(d,v){return d&&g(d,v,M0)}function F(d,v){return d&&y(d,v,M0)}function I(d,v){return bt(v,function(x){return Ea(d[x])})}function J(d,v){v=Us(v,d);for(var x=0,b=v.length;d!=null&&xv}function Mt(d,v){return d!=null&&ei.call(d,v)}function Er(d,v){return d!=null&&v in wn(d)}function $u(d,v,x){return d>=Wn(v,x)&&d=120&&Dt.length>=120)?new ho(de&&Dt):i}Dt=d[0];var Rt=-1,rn=ye[0];e:for(;++Rt-1;)ye!==d&&R0.call(ye,be,1),R0.call(d,be,1);return d}function u2(d,v){for(var x=d?v.length:0,b=x-1;x--;){var H=v[x];if(x==b||H!==ee){var ee=H;go(H)?R0.call(d,H,1):Cd(d,H)}}return d}function o2(d,v){return d+vs(y0()*(v-d+1))}function wd(d,v,x,b){for(var H=-1,ee=Xr(Ku((v-d)/(x||1)),0),de=Ve(ee);ee--;)de[b?ee:++H]=d,d+=x;return de}function Hc(d,v){var x="";if(!d||v<1||v>$t)return x;do v%2&&(x+=d),v=vs(v/2),v&&(d+=d);while(v);return x}function Mr(d,v){return r1(Nd(d,v,r0),d+"")}function l2(d){return ba(Ac(d))}function s2(d,v){var x=Ac(d);return yc(x,Zu(v,0,x.length))}function ja(d,v,x,b){if(!ku(d))return d;v=Us(v,d);for(var H=-1,ee=v.length,de=ee-1,ye=d;ye!=null&&++HH?0:H+v),x=x>H?H:x,x<0&&(x+=H),H=v>x?0:x-v>>>0,v>>>=0;for(var ee=Ve(H);++b>>1,de=d[ee];de!==null&&!Nl(de)&&(x?de<=v:de=f){var gt=v?null:mm(d);if(gt)return Q0(gt);de=!1,H=Zo,be=new ho}else be=v?[]:ye;e:for(;++b=b?d:rl(d,v,x)}var Kc=hs||function(d){return Ni.clearTimeout(d)};function fc(d,v){if(v)return d.slice();var x=d.length,b=Fi?Fi(x):new d.constructor(x);return d.copy(b),b}function cc(d){var v=new d.constructor(d.byteLength);return new A0(v).set(new A0(d)),v}function f2(d,v){var x=v?cc(d.buffer):d.buffer;return new d.constructor(x,d.byteOffset,d.byteLength)}function yh(d){var v=new d.constructor(d.source,xo.exec(d));return v.lastIndex=d.lastIndex,v}function gf(d){return Sr?wn(Sr.call(d)):{}}function Xc(d,v){var x=v?cc(d.buffer):d.buffer;return new d.constructor(x,d.byteOffset,d.length)}function gh(d,v){if(d!==v){var x=d!==i,b=d===null,H=d===d,ee=Nl(d),de=v!==i,ye=v===null,be=v===v,gt=Nl(v);if(!ye&&!gt&&!ee&&d>v||ee&&de&&be&&!ye&&!gt||b&&de&&be||!x&&be||!H)return 1;if(!b&&!ee&&!gt&&d=ye)return be;var gt=x[b];return be*(gt=="desc"?-1:1)}}return d.index-v.index}function js(d,v,x,b){for(var H=-1,ee=d.length,de=x.length,ye=-1,be=v.length,gt=Xr(ee-de,0),Dt=Ve(be+gt),Rt=!b;++ye1?x[H-1]:i,de=H>2?x[2]:i;for(ee=d.length>3&&typeof ee=="function"?(H--,ee):i,de&&io(x[0],x[1],de)&&(ee=H<3?i:ee,H=1),v=wn(v);++b-1?H[ee?v[de]:de]:i}}function Jc(d){return ol(function(v){var x=v.length,b=x,H=Ur.prototype.thru;for(d&&v.reverse();b--;){var ee=v[b];if(typeof ee!="function")throw new Kr(E);if(H&&!de&&Bo(ee)=="wrapper")var de=new Ur([],!0)}for(b=de?b:x;++b1&&ui.reverse(),Dt&&beye))return!1;var gt=ee.get(d),Dt=ee.get(v);if(gt&&Dt)return gt==v&&Dt==d;var Rt=-1,rn=!0,Rn=x&ne?new ho:i;for(ee.set(d,v),ee.set(v,d);++Rt1?"& ":"")+v[b],v=v.join(x>2?", ":" "),d.replace(ci,`{ +/* [wrapped with `+v+`] */ +`)}function $l(d){return Jn(d)||sl(d)||!!(co&&d&&d[co])}function go(d,v){var x=typeof d;return v=v==null?$t:v,!!v&&(x=="number"||x!="symbol"&&Ms.test(d))&&d>-1&&d%1==0&&d0){if(++v>=wt)return arguments[0]}else v=0;return d.apply(i,arguments)}}function yc(d,v){var x=-1,b=d.length,H=b-1;for(v=v===i?b:v;++x1?d[v-1]:i;return x=typeof x=="function"?(d.pop(),x):i,E2(d,x)});function Bh(d){var v=Y(d);return v.__chain__=!0,v}function Uh(d,v){return v(d),d}function h1(d,v){return v(d)}var Qd=ol(function(d){var v=d.length,x=v?d[0]:0,b=this.__wrapped__,H=function(ee){return Ia(ee,d)};return v>1||this.__actions__.length||!(b instanceof lt)||!go(x)?this.thru(H):(b=b.slice(x,+x+(v?1:0)),b.__actions__.push({func:h1,args:[H],thisArg:i}),new Ur(b,this.__chain__).thru(function(ee){return v&&!ee.length&&ee.push(i),ee}))});function jh(){return Bh(this)}function Jd(){return new Ur(this.value(),this.__chain__)}function zh(){this.__values__===i&&(this.__values__=lv(this.value()));var d=this.__index__>=this.__values__.length,v=d?i:this.__values__[this.__index__++];return{done:d,value:v}}function Cm(){return this}function xm(d){for(var v,x=this;x instanceof Jr;){var b=Fd(x);b.__index__=0,b.__values__=i,v?H.__wrapped__=b:v=b;var H=b;x=x.__wrapped__}return H.__wrapped__=d,v}function Of(){var d=this.__wrapped__;if(d instanceof lt){var v=d;return this.__actions__.length&&(v=new lt(this)),v=v.reverse(),v.__actions__.push({func:h1,args:[Hd],thisArg:i}),new Ur(v,this.__chain__)}return this.thru(Hd)}function kf(){return mh(this.__wrapped__,this.__actions__)}var D2=za(function(d,v,x){ei.call(d,x)?++d[x]:ju(d,x,1)});function Am(d,v,x){var b=Jn(d)?kt:n2;return x&&io(d,v,x)&&(v=i),b(d,zn(v,3))}function Zd(d,v){var x=Jn(d)?bt:zc;return x(d,zn(v,3))}var w2=xl(Bd),$d=xl(u1);function qh(d,v){return bi(v1(d,v),1)}function ep(d,v){return bi(v1(d,v),jt)}function Hh(d,v,x){return x=x===i?1:Cr(x),bi(v1(d,v),x)}function Wh(d,v){var x=Jn(d)?tt:_s;return x(d,zn(v,3))}function tp(d,v){var x=Jn(d)?Tt:oa;return x(d,zn(v,3))}var Rm=za(function(d,v,x){ei.call(d,x)?d[x].push(v):ju(d,x,[v])});function Om(d,v,x,b){d=al(d)?d:Ac(d),x=x&&!b?Cr(x):0;var H=d.length;return x<0&&(x=Xr(H+x,0)),_1(d)?x<=H&&d.indexOf(v,x)>-1:!!H&&_t(d,v,x)>-1}var km=Mr(function(d,v,x){var b=-1,H=typeof v=="function",ee=al(d)?Ve(d.length):[];return _s(d,function(de){ee[++b]=H?ie(v,de,x):Tl(de,v,x)}),ee}),Vh=za(function(d,v,x){ju(d,x,v)});function v1(d,v){var x=Jn(d)?Lt:Ed;return x(d,zn(v,3))}function Mm(d,v,x,b){return d==null?[]:(Jn(v)||(v=v==null?[]:[v]),x=b?i:x,Jn(x)||(x=x==null?[]:[x]),vo(d,v,x))}var np=za(function(d,v,x){d[x?0:1].push(v)},function(){return[[],[]]});function rp(d,v,x){var b=Jn(d)?lr:yr,H=arguments.length<3;return b(d,zn(v,4),x,H,_s)}function Nm(d,v,x){var b=Jn(d)?Qn:yr,H=arguments.length<3;return b(d,zn(v,4),x,H,oa)}function Lm(d,v){var x=Jn(d)?bt:zc;return x(d,C2(zn(v,3)))}function Gh(d){var v=Jn(d)?ba:l2;return v(d)}function Fm(d,v,x){(x?io(d,v,x):v===i)?v=1:v=Cr(v);var b=Jn(d)?Pa:s2;return b(d,v)}function bm(d){var v=Jn(d)?ua:nl;return v(d)}function ip(d){if(d==null)return 0;if(al(d))return _1(d)?Ki(d):d.length;var v=Ou(d);return v==w||v==Kt?d.size:Ba(d).length}function up(d,v,x){var b=Jn(d)?_r:hh;return x&&io(d,v,x)&&(v=i),b(d,zn(v,3))}var ya=Mr(function(d,v){if(d==null)return[];var x=v.length;return x>1&&io(d,v[0],v[1])?v=[]:x>2&&io(v[0],v[1],v[2])&&(v=[v[0]]),vo(d,bi(v,1),[])}),m1=ra||function(){return Ni.Date.now()};function op(d,v){if(typeof v!="function")throw new Kr(E);return d=Cr(d),function(){if(--d<1)return v.apply(this,arguments)}}function Yh(d,v,x){return v=x?i:v,v=d&&v==null?d.length:v,dn(d,Oe,i,i,i,i,v)}function S2(d,v){var x;if(typeof v!="function")throw new Kr(E);return d=Cr(d),function(){return--d>0&&(x=v.apply(this,arguments)),d<=1&&(v=i),x}}var y1=Mr(function(d,v,x){var b=m;if(x.length){var H=T0(x,dr(y1));b|=ze}return dn(d,b,v,x,H)}),Kh=Mr(function(d,v,x){var b=m|we;if(x.length){var H=T0(x,dr(Kh));b|=ze}return dn(v,b,d,x,H)});function lp(d,v,x){v=x?i:v;var b=dn(d,he,i,i,i,i,i,v);return b.placeholder=lp.placeholder,b}function Xh(d,v,x){v=x?i:v;var b=dn(d,ge,i,i,i,i,i,v);return b.placeholder=Xh.placeholder,b}function sp(d,v,x){var b,H,ee,de,ye,be,gt=0,Dt=!1,Rt=!1,rn=!0;if(typeof d!="function")throw new Kr(E);v=fl(v)||0,ku(x)&&(Dt=!!x.leading,Rt="maxWait"in x,ee=Rt?Xr(fl(x.maxWait)||0,v):ee,rn="trailing"in x?!!x.trailing:rn);function Rn(i0){var Ts=b,wo=H;return b=H=i,gt=i0,de=d.apply(wo,Ts),de}function $n(i0){return gt=i0,ye=Wa(Zr,v),Dt?Rn(i0):de}function Nr(i0){var Ts=i0-be,wo=i0-gt,Rv=v-Ts;return Rt?Wn(Rv,ee-wo):Rv}function ir(i0){var Ts=i0-be,wo=i0-gt;return be===i||Ts>=v||Ts<0||Rt&&wo>=ee}function Zr(){var i0=m1();if(ir(i0))return ui(i0);ye=Wa(Zr,Nr(i0))}function ui(i0){return ye=i,rn&&b?Rn(i0):(b=H=i,de)}function bl(){ye!==i&&Kc(ye),gt=0,b=be=H=ye=i}function Wi(){return ye===i?de:ui(m1())}function uo(){var i0=m1(),Ts=ir(i0);if(b=arguments,H=this,be=i0,Ts){if(ye===i)return $n(be);if(Rt)return Kc(ye),ye=Wa(Zr,v),Rn(be)}return ye===i&&(ye=Wa(Zr,v)),de}return uo.cancel=bl,uo.flush=Wi,uo}var Qh=Mr(function(d,v){return lc(d,1,v)}),Jh=Mr(function(d,v,x){return lc(d,fl(v)||0,x)});function ap(d){return dn(d,Ue)}function T2(d,v){if(typeof d!="function"||v!=null&&typeof v!="function")throw new Kr(E);var x=function(){var b=arguments,H=v?v.apply(this,b):b[0],ee=x.cache;if(ee.has(H))return ee.get(H);var de=d.apply(this,b);return x.cache=ee.set(H,de)||ee,de};return x.cache=new(T2.Cache||B0),x}T2.Cache=B0;function C2(d){if(typeof d!="function")throw new Kr(E);return function(){var v=arguments;switch(v.length){case 0:return!d.call(this);case 1:return!d.call(this,v[0]);case 2:return!d.call(this,v[0],v[1]);case 3:return!d.call(this,v[0],v[1],v[2])}return!d.apply(this,v)}}function z0(d){return S2(2,d)}var x2=Rd(function(d,v){v=v.length==1&&Jn(v[0])?Lt(v[0],di(zn())):Lt(bi(v,1),di(zn()));var x=v.length;return Mr(function(b){for(var H=-1,ee=Wn(b.length,x);++H=v}),sl=e0(function(){return arguments}())?e0:function(d){return zu(d)&&ei.call(d,"callee")&&!I0.call(d,"callee")},Jn=Ve.isArray,Vs=me?di(me):He;function al(d){return d!=null&&M2(d.length)&&!Ea(d)}function n0(d){return zu(d)&&al(d)}function ev(d){return d===!0||d===!1||zu(d)&&mt(d)==ln}var Gs=$0||Ip,hp=xe?di(xe):Be;function jm(d){return zu(d)&&d.nodeType===1&&!Ec(d)}function tv(d){if(d==null)return!0;if(al(d)&&(Jn(d)||typeof d=="string"||typeof d.splice=="function"||Gs(d)||Da(d)||sl(d)))return!d.length;var v=Ou(d);if(v==w||v==Kt)return!d.size;if(xf(d))return!Ba(d).length;for(var x in d)if(ei.call(d,x))return!1;return!0}function vp(d,v){return ut(d,v)}function zm(d,v,x){x=typeof x=="function"?x:i;var b=x?x(d,v):i;return b===i?ut(d,v,i,x):!!b}function mp(d){if(!zu(d))return!1;var v=mt(d);return v==un||v==nr||typeof d.message=="string"&&typeof d.name=="string"&&!Ec(d)}function _c(d){return typeof d=="number"&&Xi(d)}function Ea(d){if(!ku(d))return!1;var v=mt(d);return v==Wt||v==vr||v==en||v==ur}function yp(d){return typeof d=="number"&&d==Cr(d)}function M2(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=$t}function ku(d){var v=typeof d;return d!=null&&(v=="object"||v=="function")}function zu(d){return d!=null&&typeof d=="object"}var gp=Z?di(Z):jn;function _p(d,v){return d===v||ti(d,v,Pn(v))}function nv(d,v,x){return x=typeof x=="function"?x:i,ti(d,v,Pn(v),x)}function qm(d){return rv(d)&&d!=+d}function Hm(d){if(Al(d))throw new Yt(p);return tr(d)}function Wm(d){return d===null}function N2(d){return d==null}function rv(d){return typeof d=="number"||zu(d)&&mt(d)==Ut}function Ec(d){if(!zu(d)||mt(d)!=fr)return!1;var v=$o(d);if(v===null)return!0;var x=ei.call(v,"constructor")&&v.constructor;return typeof x=="function"&&x instanceof x&&Au.call(x)==na}var g1=ke?di(ke):ii;function Vm(d){return yp(d)&&d>=-$t&&d<=$t}var L2=Xe?di(Xe):qi;function _1(d){return typeof d=="string"||!Jn(d)&&zu(d)&&mt(d)==vu}function Nl(d){return typeof d=="symbol"||zu(d)&&mt(d)==a0}var Da=ht?di(ht):jr;function iv(d){return d===i}function Gm(d){return zu(d)&&Ou(d)==Go}function uv(d){return zu(d)&&mt(d)==Os}var ov=p2(r2),Ym=p2(function(d,v){return d<=v});function lv(d){if(!d)return[];if(al(d))return _1(d)?Yr(d):Ji(d);if(Ru&&d[Ru])return Vu(d[Ru]());var v=Ou(d),x=v==w?yu:v==Kt?Q0:Ac;return x(d)}function wa(d){if(!d)return d===0?d:0;if(d=fl(d),d===jt||d===-jt){var v=d<0?-1:1;return v*at}return d===d?d:0}function Cr(d){var v=wa(d),x=v%1;return v===v?x?v-x:v:0}function Ep(d){return d?Zu(Cr(d),0,ae):0}function fl(d){if(typeof d=="number")return d;if(Nl(d))return Q;if(ku(d)){var v=typeof d.valueOf=="function"?d.valueOf():d;d=ku(v)?v+"":v}if(typeof d!="string")return d===0?d:+d;d=xu(d);var x=oo.test(d);return x||Ao.test(d)?Ls(d.slice(2),x?2:8):ni.test(d)?Q:+d}function cu(d){return O0(d,fn(d))}function E1(d){return d?Zu(Cr(d),-$t,$t):d===0?d:0}function ki(d){return d==null?"":il(d)}var Dp=no(function(d,v){if(xf(v)||al(v)){O0(v,M0(v),d);return}for(var x in v)ei.call(v,x)&&gs(d,x,v[x])}),F2=no(function(d,v){O0(v,fn(v),d)}),Do=no(function(d,v,x,b){O0(v,fn(v),d,b)}),Ss=no(function(d,v,x,b){O0(v,M0(v),d,b)}),Mf=ol(Ia);function b2(d,v){var x=Qr(d);return v==null?x:hf(x,v)}var wp=Mr(function(d,v){d=wn(d);var x=-1,b=v.length,H=b>2?v[2]:i;for(H&&io(v[0],v[1],H)&&(b=1);++x1),ee}),O0(d,rr(d),x),b&&(x=U0(x,C|U|q,ym));for(var H=v.length;H--;)Cd(x,v[H]);return x});function T1(d,v){return Ka(d,C2(zn(v)))}var Cp=ol(function(d,v){return d==null?{}:dh(d,v)});function Ka(d,v){if(d==null)return{};var x=Lt(rr(d),function(b){return[b]});return v=zn(v),ph(d,x,function(b,H){return v(b,H[0])})}function Km(d,v,x){v=Us(v,d);var b=-1,H=v.length;for(H||(H=1,d=i);++bv){var b=d;d=v,v=b}if(x||d%1||v%1){var H=y0();return Wn(d+H*(v-d+Ma("1e-"+((H+"").length-1))),v)}return o2(d,v)}var q2=_f(function(d,v,x){return v=v.toLowerCase(),d+(x?Uo(v):v)});function Uo(d){return Rp(ki(d).toLowerCase())}function H2(d){return d=ki(d),d&&d.replace(Xn,Mo).replace(K0,"")}function Qm(d,v,x){d=ki(d),v=il(v);var b=d.length;x=x===i?b:Zu(Cr(x),0,b);var H=x;return x-=v.length,x>=0&&d.slice(x,H)==v}function A1(d){return d=ki(d),d&&ks.test(d)?d.replace(tu,ds):d}function Jm(d){return d=ki(d),d&&Zt.test(d)?d.replace(fi,"\\$&"):d}var Zm=_f(function(d,v,x){return d+(x?"-":"")+v.toLowerCase()}),av=_f(function(d,v,x){return d+(x?" ":"")+v.toLowerCase()}),$m=_h("toLowerCase");function fv(d,v,x){d=ki(d),v=Cr(v);var b=v?Ki(d):0;if(!v||b>=v)return d;var H=(v-b)/2;return da(vs(H),x)+d+da(Ku(H),x)}function ey(d,v,x){d=ki(d),v=Cr(v);var b=v?Ki(d):0;return v&&b>>0,x?(d=ki(d),d&&(typeof v=="string"||v!=null&&!g1(v))&&(v=il(v),!v&&Lo(d))?aa(Yr(d),0,x):d.split(v,x)):[]}var bf=_f(function(d,v,x){return d+(x?" ":"")+Rp(v)});function dv(d,v,x){return d=ki(d),x=x==null?0:Zu(Cr(x),0,d.length),v=il(v),d.slice(x,x+v.length)==v}function pv(d,v,x){var b=Y.templateSettings;x&&io(d,v,x)&&(v=i),d=ki(d),v=Do({},v,b,Df);var H=Do({},v.imports,b.imports,Df),ee=M0(H),de=ko(H,ee),ye,be,gt=0,Dt=v.interpolate||Qo,Rt="__p += '",rn=fu((v.escape||Qo).source+"|"+Dt.source+"|"+(Dt===f0?Wl:Qo).source+"|"+(v.evaluate||Qo).source+"|$","g"),Rn="//# sourceURL="+(ei.call(v,"sourceURL")?(v.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ic+"]")+` +`;d.replace(rn,function(ir,Zr,ui,bl,Wi,uo){return ui||(ui=bl),Rt+=d.slice(gt,uo).replace(lo,bs),Zr&&(ye=!0,Rt+=`' + +__e(`+Zr+`) + +'`),Wi&&(be=!0,Rt+=`'; +`+Wi+`; +__p += '`),ui&&(Rt+=`' + +((__t = (`+ui+`)) == null ? '' : __t) + +'`),gt=uo+ir.length,ir}),Rt+=`'; +`;var $n=ei.call(v,"variable")&&v.variable;if(!$n)Rt=`with (obj) { +`+Rt+` +} +`;else if(Y0.test($n))throw new Yt(t);Rt=(be?Rt.replace(Hr,""):Rt).replace(To,"$1").replace(Co,"$1;"),Rt="function("+($n||"obj")+`) { +`+($n?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(ye?", __e = _.escape":"")+(be?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Rt+`return __p +}`;var Nr=_v(function(){return sr(ee,Rn+"return "+Rt).apply(i,de)});if(Nr.source=Rt,mp(Nr))throw Nr;return Nr}function hv(d){return ki(d).toLowerCase()}function W2(d){return ki(d).toUpperCase()}function V2(d,v,x){if(d=ki(d),d&&(x||v===i))return xu(d);if(!d||!(v=il(v)))return d;var b=Yr(d),H=Yr(v),ee=sf(b,H),de=gl(b,H)+1;return aa(b,ee,de).join("")}function Ap(d,v,x){if(d=ki(d),d&&(x||v===i))return d.slice(0,fo(d)+1);if(!d||!(v=il(v)))return d;var b=Yr(d),H=gl(b,Yr(v))+1;return aa(b,0,H).join("")}function vv(d,v,x){if(d=ki(d),d&&(x||v===i))return d.replace(Ln,"");if(!d||!(v=il(v)))return d;var b=Yr(d),H=sf(b,Yr(v));return aa(b,H).join("")}function G2(d,v){var x=Ge,b=rt;if(ku(v)){var H="separator"in v?v.separator:H;x="length"in v?Cr(v.length):x,b="omission"in v?il(v.omission):b}d=ki(d);var ee=d.length;if(Lo(d)){var de=Yr(d);ee=de.length}if(x>=ee)return d;var ye=x-Ki(b);if(ye<1)return b;var be=de?aa(de,0,ye).join(""):d.slice(0,ye);if(H===i)return be+b;if(de&&(ye+=be.length-ye),g1(H)){if(d.slice(ye).search(H)){var gt,Dt=be;for(H.global||(H=fu(H.source,ki(xo.exec(H))+"g")),H.lastIndex=0;gt=H.exec(Dt);)var Rt=gt.index;be=be.slice(0,Rt===i?ye:Rt)}}else if(d.indexOf(il(H),ye)!=ye){var rn=be.lastIndexOf(H);rn>-1&&(be=be.slice(0,rn))}return be+b}function mv(d){return d=ki(d),d&&Si.test(d)?d.replace(L0,Oi):d}var yv=_f(function(d,v,x){return d+(x?" ":"")+v.toUpperCase()}),Rp=_h("toUpperCase");function gv(d,v,x){return d=ki(d),v=x?i:v,v===i?ps(d)?cf(d):v0(d):d.match(v)||[]}var _v=Mr(function(d,v){try{return ie(d,i,v)}catch(x){return mp(x)?x:new Yt(x)}}),uy=ol(function(d,v){return tt(v,function(x){x=Rl(x),ju(d,x,y1(d[x],d))}),d});function Ev(d){var v=d==null?0:d.length,x=zn();return d=v?Lt(d,function(b){if(typeof b[1]!="function")throw new Kr(E);return[x(b[0]),b[1]]}):[],Mr(function(b){for(var H=-1;++H$t)return[];var x=ae,b=Wn(d,ae);v=zn(v),d-=ae;for(var H=S0(b,v);++x0||v<0)?new lt(x):(d<0?x=x.takeRight(-d):d&&(x=x.drop(d)),v!==i&&(v=Cr(v),x=v<0?x.dropRight(-v):x.take(v-d)),x)},lt.prototype.takeRightWhile=function(d){return this.reverse().takeWhile(d).reverse()},lt.prototype.toArray=function(){return this.take(ae)},A(lt.prototype,function(d,v){var x=/^(?:filter|find|map|reject)|While$/.test(v),b=/^(?:head|last)$/.test(v),H=Y[b?"take"+(v=="last"?"Right":""):v],ee=b||/^find/.test(v);!H||(Y.prototype[v]=function(){var de=this.__wrapped__,ye=b?[1]:arguments,be=de instanceof lt,gt=ye[0],Dt=be||Jn(de),Rt=function(Zr){var ui=H.apply(Y,gn([Zr],ye));return b&&rn?ui[0]:ui};Dt&&x&&typeof gt=="function"&>.length!=1&&(be=Dt=!1);var rn=this.__chain__,Rn=!!this.__actions__.length,$n=ee&&!rn,Nr=be&&!Rn;if(!ee&&Dt){de=Nr?de:new lt(this);var ir=d.apply(de,ye);return ir.__actions__.push({func:h1,args:[Rt],thisArg:i}),new Ur(ir,rn)}return $n&&Nr?d.apply(this,ye):(ir=this.thru(Rt),$n?b?ir.value()[0]:ir.value():ir)})}),tt(["pop","push","shift","sort","splice","unshift"],function(d){var v=Vr[d],x=/^(?:push|sort|unshift)$/.test(d)?"tap":"thru",b=/^(?:pop|shift)$/.test(d);Y.prototype[d]=function(){var H=arguments;if(b&&!this.__chain__){var ee=this.value();return v.apply(Jn(ee)?ee:[],H)}return this[x](function(de){return v.apply(Jn(de)?de:[],H)})}}),A(lt.prototype,function(d,v){var x=Y[v];if(x){var b=x.name+"";ei.call(xn,b)||(xn[b]=[]),xn[b].push({name:v,func:x})}}),xn[ca(i,we).name]=[{name:"wrapper",func:i}],lt.prototype.clone=hi,lt.prototype.reverse=Qi,lt.prototype.value=g0,Y.prototype.at=Qd,Y.prototype.chain=jh,Y.prototype.commit=Jd,Y.prototype.next=zh,Y.prototype.plant=xm,Y.prototype.reverse=Of,Y.prototype.toJSON=Y.prototype.valueOf=Y.prototype.value=kf,Y.prototype.first=Y.prototype.head,Ru&&(Y.prototype[Ru]=Cm),Y},Z0=J0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Ni._=Z0,define(function(){return Z0})):z?((z.exports=Z0)._=Z0,B._=Z0):Ni._=Z0}).call(nm)});var GD=ce((Dne,VD)=>{"use strict";var Ai=VD.exports;VD.exports.default=Ai;var hu="[",ig="]",rm="\x07",$_=";",U5=process.env.TERM_PROGRAM==="Apple_Terminal";Ai.cursorTo=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");return typeof o!="number"?hu+(i+1)+"G":hu+(o+1)+";"+(i+1)+"H"};Ai.cursorMove=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");let f="";return i<0?f+=hu+-i+"D":i>0&&(f+=hu+i+"C"),o<0?f+=hu+-o+"A":o>0&&(f+=hu+o+"B"),f};Ai.cursorUp=(i=1)=>hu+i+"A";Ai.cursorDown=(i=1)=>hu+i+"B";Ai.cursorForward=(i=1)=>hu+i+"C";Ai.cursorBackward=(i=1)=>hu+i+"D";Ai.cursorLeft=hu+"G";Ai.cursorSavePosition=U5?"7":hu+"s";Ai.cursorRestorePosition=U5?"8":hu+"u";Ai.cursorGetPosition=hu+"6n";Ai.cursorNextLine=hu+"E";Ai.cursorPrevLine=hu+"F";Ai.cursorHide=hu+"?25l";Ai.cursorShow=hu+"?25h";Ai.eraseLines=i=>{let o="";for(let f=0;f[ig,"8",$_,$_,o,rm,i,ig,"8",$_,$_,rm].join("");Ai.image=(i,o={})=>{let f=`${ig}1337;File=inline=1`;return o.width&&(f+=`;width=${o.width}`),o.height&&(f+=`;height=${o.height}`),o.preserveAspectRatio===!1&&(f+=";preserveAspectRatio=0"),f+":"+i.toString("base64")+rm};Ai.iTerm={setCwd:(i=process.cwd())=>`${ig}50;CurrentDir=${i}${rm}`,annotation:(i,o={})=>{let f=`${ig}1337;`,p=typeof o.x!="undefined",E=typeof o.y!="undefined";if((p||E)&&!(p&&E&&typeof o.length!="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return i=i.replace(/\|/g,""),f+=o.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",o.length>0?f+=(p?[i,o.length,o.x,o.y]:[o.length,i]).join("|"):f+=i,f+rm}}});var z5=ce((wne,YD)=>{"use strict";var j5=(i,o)=>{for(let f of Reflect.ownKeys(o))Object.defineProperty(i,f,Object.getOwnPropertyDescriptor(o,f));return i};YD.exports=j5;YD.exports.default=j5});var H5=ce((Sne,e4)=>{"use strict";var UK=z5(),t4=new WeakMap,q5=(i,o={})=>{if(typeof i!="function")throw new TypeError("Expected a function");let f,p=0,E=i.displayName||i.name||"",t=function(...k){if(t4.set(t,++p),p===1)f=i.apply(this,k),i=null;else if(o.throw===!0)throw new Error(`Function \`${E}\` can only be called once`);return f};return UK(t,i),t4.set(t,p),t};e4.exports=q5;e4.exports.default=q5;e4.exports.callCount=i=>{if(!t4.has(i))throw new Error(`The given function \`${i.name}\` is not wrapped by the \`onetime\` package`);return t4.get(i)}});var W5=ce((Tne,n4)=>{n4.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&n4.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&n4.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var JD=ce((Cne,ug)=>{var jK=require("assert"),og=W5(),zK=/^win/i.test(process.platform),r4=require("events");typeof r4!="function"&&(r4=r4.EventEmitter);var zl;process.__signal_exit_emitter__?zl=process.__signal_exit_emitter__:(zl=process.__signal_exit_emitter__=new r4,zl.count=0,zl.emitted={});zl.infinite||(zl.setMaxListeners(Infinity),zl.infinite=!0);ug.exports=function(i,o){jK.equal(typeof i,"function","a callback must be provided for exit handler"),lg===!1&&V5();var f="exit";o&&o.alwaysLast&&(f="afterexit");var p=function(){zl.removeListener(f,i),zl.listeners("exit").length===0&&zl.listeners("afterexit").length===0&&KD()};return zl.on(f,i),p};ug.exports.unload=KD;function KD(){!lg||(lg=!1,og.forEach(function(i){try{process.removeListener(i,XD[i])}catch(o){}}),process.emit=QD,process.reallyExit=G5,zl.count-=1)}function im(i,o,f){zl.emitted[i]||(zl.emitted[i]=!0,zl.emit(i,o,f))}var XD={};og.forEach(function(i){XD[i]=function(){var f=process.listeners(i);f.length===zl.count&&(KD(),im("exit",null,i),im("afterexit",null,i),zK&&i==="SIGHUP"&&(i="SIGINT"),process.kill(process.pid,i))}});ug.exports.signals=function(){return og};ug.exports.load=V5;var lg=!1;function V5(){lg||(lg=!0,zl.count+=1,og=og.filter(function(i){try{return process.on(i,XD[i]),!0}catch(o){return!1}}),process.emit=HK,process.reallyExit=qK)}var G5=process.reallyExit;function qK(i){process.exitCode=i||0,im("exit",process.exitCode,null),im("afterexit",process.exitCode,null),G5.call(process,process.exitCode)}var QD=process.emit;function HK(i,o){if(i==="exit"){o!==void 0&&(process.exitCode=o);var f=QD.apply(this,arguments);return im("exit",process.exitCode,null),im("afterexit",process.exitCode,null),f}else return QD.apply(this,arguments)}});var K5=ce((xne,Y5)=>{"use strict";var WK=H5(),VK=JD();Y5.exports=WK(()=>{VK(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})});var ZD=ce(um=>{"use strict";var GK=K5(),i4=!1;um.show=(i=process.stderr)=>{!i.isTTY||(i4=!1,i.write("[?25h"))};um.hide=(i=process.stderr)=>{!i.isTTY||(GK(),i4=!0,i.write("[?25l"))};um.toggle=(i,o)=>{i!==void 0&&(i4=i),i4?um.show(o):um.hide(o)}});var Z5=ce(sg=>{"use strict";var X5=sg&&sg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(sg,"__esModule",{value:!0});var Q5=X5(GD()),J5=X5(ZD()),YK=(i,{showCursor:o=!1}={})=>{let f=0,p="",E=!1,t=k=>{!o&&!E&&(J5.default.hide(),E=!0);let L=k+` +`;L!==p&&(p=L,i.write(Q5.default.eraseLines(f)+L),f=L.split(` +`).length)};return t.clear=()=>{i.write(Q5.default.eraseLines(f)),p="",f=0},t.done=()=>{p="",f=0,o||(J5.default.show(),E=!1)},t};sg.default={create:YK}});var e9=ce((One,$5)=>{$5.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var r9=ce(Ra=>{"use strict";var t9=e9(),bc=process.env;Object.defineProperty(Ra,"_vendors",{value:t9.map(function(i){return i.constant})});Ra.name=null;Ra.isPR=null;t9.forEach(function(i){var o=Array.isArray(i.env)?i.env:[i.env],f=o.every(function(p){return n9(p)});if(Ra[i.constant]=f,f)switch(Ra.name=i.name,typeof i.pr){case"string":Ra.isPR=!!bc[i.pr];break;case"object":"env"in i.pr?Ra.isPR=i.pr.env in bc&&bc[i.pr.env]!==i.pr.ne:"any"in i.pr?Ra.isPR=i.pr.any.some(function(p){return!!bc[p]}):Ra.isPR=n9(i.pr);break;default:Ra.isPR=null}});Ra.isCI=!!(bc.CI||bc.CONTINUOUS_INTEGRATION||bc.BUILD_NUMBER||bc.RUN_ID||Ra.name);function n9(i){return typeof i=="string"?!!bc[i]:Object.keys(i).every(function(o){return bc[o]===i[o]})}});var u9=ce((Mne,i9)=>{"use strict";i9.exports=r9().isCI});var l9=ce((Nne,o9)=>{"use strict";var KK=i=>{let o=new Set;do for(let f of Reflect.ownKeys(i))o.add([i,f]);while((i=Reflect.getPrototypeOf(i))&&i!==Object.prototype);return o};o9.exports=(i,{include:o,exclude:f}={})=>{let p=E=>{let t=k=>typeof k=="string"?E===k:k.test(E);return o?o.some(t):f?!f.some(t):!0};for(let[E,t]of KK(i.constructor.prototype)){if(t==="constructor"||!p(t))continue;let k=Reflect.getOwnPropertyDescriptor(E,t);k&&typeof k.value=="function"&&(i[t]=i[t].bind(i))}return i}});var h9=ce($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});var om,ag,u4,o4,$D;typeof window=="undefined"||typeof MessageChannel!="function"?(lm=null,ew=null,tw=function(){if(lm!==null)try{var i=$i.unstable_now();lm(!0,i),lm=null}catch(o){throw setTimeout(tw,0),o}},s9=Date.now(),$i.unstable_now=function(){return Date.now()-s9},om=function(i){lm!==null?setTimeout(om,0,i):(lm=i,setTimeout(tw,0))},ag=function(i,o){ew=setTimeout(i,o)},u4=function(){clearTimeout(ew)},o4=function(){return!1},$D=$i.unstable_forceFrameRate=function(){}):(l4=window.performance,nw=window.Date,a9=window.setTimeout,f9=window.clearTimeout,typeof console!="undefined"&&(c9=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof c9!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof l4=="object"&&typeof l4.now=="function"?$i.unstable_now=function(){return l4.now()}:(d9=nw.now(),$i.unstable_now=function(){return nw.now()-d9}),fg=!1,cg=null,s4=-1,rw=5,iw=0,o4=function(){return $i.unstable_now()>=iw},$D=function(){},$i.unstable_forceFrameRate=function(i){0>i||125f4(k,f))N!==void 0&&0>f4(N,k)?(i[p]=N,i[L]=f,p=L):(i[p]=k,i[t]=f,p=t);else if(N!==void 0&&0>f4(N,f))i[p]=N,i[L]=f,p=L;else break e}}return o}return null}function f4(i,o){var f=i.sortIndex-o.sortIndex;return f!==0?f:i.id-o.id}var Xf=[],dd=[],XK=1,Rs=null,ls=3,d4=!1,$p=!1,dg=!1;function p4(i){for(var o=uf(dd);o!==null;){if(o.callback===null)c4(dd);else if(o.startTime<=i)c4(dd),o.sortIndex=o.expirationTime,ow(Xf,o);else break;o=uf(dd)}}function lw(i){if(dg=!1,p4(i),!$p)if(uf(Xf)!==null)$p=!0,om(sw);else{var o=uf(dd);o!==null&&ag(lw,o.startTime-i)}}function sw(i,o){$p=!1,dg&&(dg=!1,u4()),d4=!0;var f=ls;try{for(p4(o),Rs=uf(Xf);Rs!==null&&(!(Rs.expirationTime>o)||i&&!o4());){var p=Rs.callback;if(p!==null){Rs.callback=null,ls=Rs.priorityLevel;var E=p(Rs.expirationTime<=o);o=$i.unstable_now(),typeof E=="function"?Rs.callback=E:Rs===uf(Xf)&&c4(Xf),p4(o)}else c4(Xf);Rs=uf(Xf)}if(Rs!==null)var t=!0;else{var k=uf(dd);k!==null&&ag(lw,k.startTime-o),t=!1}return t}finally{Rs=null,ls=f,d4=!1}}function p9(i){switch(i){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var QK=$D;$i.unstable_ImmediatePriority=1;$i.unstable_UserBlockingPriority=2;$i.unstable_NormalPriority=3;$i.unstable_IdlePriority=5;$i.unstable_LowPriority=4;$i.unstable_runWithPriority=function(i,o){switch(i){case 1:case 2:case 3:case 4:case 5:break;default:i=3}var f=ls;ls=i;try{return o()}finally{ls=f}};$i.unstable_next=function(i){switch(ls){case 1:case 2:case 3:var o=3;break;default:o=ls}var f=ls;ls=o;try{return i()}finally{ls=f}};$i.unstable_scheduleCallback=function(i,o,f){var p=$i.unstable_now();if(typeof f=="object"&&f!==null){var E=f.delay;E=typeof E=="number"&&0p?(i.sortIndex=E,ow(dd,i),uf(Xf)===null&&i===uf(dd)&&(dg?u4():dg=!0,ag(lw,E-p))):(i.sortIndex=f,ow(Xf,i),$p||d4||($p=!0,om(sw))),i};$i.unstable_cancelCallback=function(i){i.callback=null};$i.unstable_wrapCallback=function(i){var o=ls;return function(){var f=ls;ls=o;try{return i.apply(this,arguments)}finally{ls=f}}};$i.unstable_getCurrentPriorityLevel=function(){return ls};$i.unstable_shouldYield=function(){var i=$i.unstable_now();p4(i);var o=uf(Xf);return o!==Rs&&Rs!==null&&o!==null&&o.callback!==null&&o.startTime<=i&&o.expirationTime{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(Ri,"__esModule",{value:!0});var i=!1,o=!1,f=!0,p,E,t,k,L;if(typeof window=="undefined"||typeof MessageChannel!="function"){var N=null,C=null,U=function(){if(N!==null)try{var Et=Ri.unstable_now(),Pt=!0;N(Pt,Et),N=null}catch(Bn){throw setTimeout(U,0),Bn}},q=Date.now();Ri.unstable_now=function(){return Date.now()-q},p=function(Et){N!==null?setTimeout(p,0,Et):(N=Et,setTimeout(U,0))},E=function(Et,Pt){C=setTimeout(Et,Pt)},t=function(){clearTimeout(C)},k=function(){return!1},L=Ri.unstable_forceFrameRate=function(){}}else{var W=window.performance,ne=window.Date,m=window.setTimeout,we=window.clearTimeout;if(typeof console!="undefined"){var Se=window.requestAnimationFrame,he=window.cancelAnimationFrame;typeof Se!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof he!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if(typeof W=="object"&&typeof W.now=="function")Ri.unstable_now=function(){return W.now()};else{var ge=ne.now();Ri.unstable_now=function(){return ne.now()-ge}}var ze=!1,pe=null,Oe=-1,le=5,Ue=0,Ge=300,rt=!1;if(o&&navigator!==void 0&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0){var wt=navigator.scheduling;k=function(){var Et=Ri.unstable_now();return Et>=Ue?rt||wt.isInputPending()?!0:Et>=Ge:!1},L=function(){rt=!0}}else k=function(){return Ri.unstable_now()>=Ue},L=function(){};Ri.unstable_forceFrameRate=function(Et){if(Et<0||Et>125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported");return}Et>0?le=Math.floor(1e3/Et):le=5};var xt=function(){if(pe!==null){var Et=Ri.unstable_now();Ue=Et+le;var Pt=!0;try{var Bn=pe(Pt,Et);Bn?ft.postMessage(null):(ze=!1,pe=null)}catch(Ir){throw ft.postMessage(null),Ir}}else ze=!1;rt=!1},$e=new MessageChannel,ft=$e.port2;$e.port1.onmessage=xt,p=function(Et){pe=Et,ze||(ze=!0,ft.postMessage(null))},E=function(Et,Pt){Oe=m(function(){Et(Ri.unstable_now())},Pt)},t=function(){we(Oe),Oe=-1}}function Ke(Et,Pt){var Bn=Et.length;Et.push(Pt),at(Et,Pt,Bn)}function jt(Et){var Pt=Et[0];return Pt===void 0?null:Pt}function $t(Et){var Pt=Et[0];if(Pt!==void 0){var Bn=Et.pop();return Bn!==Pt&&(Et[0]=Bn,Q(Et,Bn,0)),Pt}else return null}function at(Et,Pt,Bn){for(var Ir=Bn;;){var ji=Math.floor((Ir-1)/2),Wr=Et[ji];if(Wr!==void 0&&ae(Wr,Pt)>0)Et[ji]=Pt,Et[Ir]=Wr,Ir=ji;else return}}function Q(Et,Pt,Bn){for(var Ir=Bn,ji=Et.length;Irur){if(ur*=2,ur>Fr){console.error("Scheduler Profiling: Event log exceeded maximum size. Don't forget to call `stopLoggingProfilingEvents()`."),mr();return}var Bn=new Int32Array(ur*4);Bn.set(Kt),br=Bn.buffer,Kt=Bn}Kt.set(Et,Pt)}}function ai(){ur=fr,br=new ArrayBuffer(ur*4),Kt=new Int32Array(br),vu=0}function mr(){var Et=br;return ur=0,br=null,Kt=null,vu=0,Et}function Xo(Et,Pt){f&&(Wt[Vn]++,Kt!==null&&eu([a0,Pt*1e3,Et.id,Et.priorityLevel]))}function W0(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Vn]--,Kt!==null&&eu([So,Pt*1e3,Et.id]))}function Lu(Et,Pt){f&&(Wt[Vn]--,Kt!==null&&eu([Os,Pt*1e3,Et.id]))}function V0(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Vn]--,Kt!==null&&eu([Go,Pt*1e3,Et.id]))}function Hr(Et,Pt){f&&(ln++,Wt[vr]=Et.priorityLevel,Wt[w]=Et.id,Wt[Ut]=ln,Kt!==null&&eu([Yo,Pt*1e3,Et.id,ln]))}function To(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Ut]=0,Kt!==null&&eu([Ko,Pt*1e3,Et.id,ln]))}function Co(Et){f&&(An++,Kt!==null&&eu([qt,Et*1e3,An]))}function L0(Et){f&&Kt!==null&&eu([_i,Et*1e3,An])}var tu=1073741823,Si=-1,ks=250,Hl=5e3,F0=1e4,f0=tu,Pr=[],Ei=[],G0=1,fi=!1,Zt=null,Ln=ct,Di=!1,ci=!1,Ht=!1;function Du(Et){for(var Pt=jt(Ei);Pt!==null;){if(Pt.callback===null)$t(Ei);else if(Pt.startTime<=Et)$t(Ei),Pt.sortIndex=Pt.expirationTime,Ke(Pr,Pt),f&&(Xo(Pt,Et),Pt.isQueued=!0);else return;Pt=jt(Ei)}}function Yi(Et){if(Ht=!1,Du(Et),!ci)if(jt(Pr)!==null)ci=!0,p(Y0);else{var Pt=jt(Ei);Pt!==null&&E(Yi,Pt.startTime-Et)}}function Y0(Et,Pt){f&&L0(Pt),ci=!1,Ht&&(Ht=!1,t()),Di=!0;var Bn=Ln;try{if(f)try{return Ui(Et,Pt)}catch(Wr){if(Zt!==null){var Ir=Ri.unstable_now();V0(Zt,Ir),Zt.isQueued=!1}throw Wr}else return Ui(Et,Pt)}finally{if(Zt=null,Ln=Bn,Di=!1,f){var ji=Ri.unstable_now();Co(ji)}}}function Ui(Et,Pt){var Bn=Pt;for(Du(Bn),Zt=jt(Pr);Zt!==null&&!(i&&fi)&&!(Zt.expirationTime>Bn&&(!Et||k()));){var Ir=Zt.callback;if(Ir!==null){Zt.callback=null,Ln=Zt.priorityLevel;var ji=Zt.expirationTime<=Bn;Hr(Zt,Bn);var Wr=Ir(ji);Bn=Ri.unstable_now(),typeof Wr=="function"?(Zt.callback=Wr,To(Zt,Bn)):(f&&(W0(Zt,Bn),Zt.isQueued=!1),Zt===jt(Pr)&&$t(Pr)),Du(Bn)}else $t(Pr);Zt=jt(Pr)}if(Zt!==null)return!0;var wu=jt(Ei);return wu!==null&&E(Yi,wu.startTime-Bn),!1}function Wl(Et,Pt){switch(Et){case ue:case je:case ct:case At:case en:break;default:Et=ct}var Bn=Ln;Ln=Et;try{return Pt()}finally{Ln=Bn}}function xo(Et){var Pt;switch(Ln){case ue:case je:case ct:Pt=ct;break;default:Pt=Ln;break}var Bn=Ln;Ln=Pt;try{return Et()}finally{Ln=Bn}}function ni(Et){var Pt=Ln;return function(){var Bn=Ln;Ln=Pt;try{return Et.apply(this,arguments)}finally{Ln=Bn}}}function oo(Et){switch(Et){case ue:return Si;case je:return ks;case en:return f0;case At:return F0;case ct:default:return Hl}}function Vl(Et,Pt,Bn){var Ir=Ri.unstable_now(),ji,Wr;if(typeof Bn=="object"&&Bn!==null){var wu=Bn.delay;typeof wu=="number"&&wu>0?ji=Ir+wu:ji=Ir,Wr=typeof Bn.timeout=="number"?Bn.timeout:oo(Et)}else Wr=oo(Et),ji=Ir;var c0=ji+Wr,Ti={id:G0++,callback:Pt,priorityLevel:Et,startTime:ji,expirationTime:c0,sortIndex:-1};return f&&(Ti.isQueued=!1),ji>Ir?(Ti.sortIndex=ji,Ke(Ei,Ti),jt(Pr)===null&&Ti===jt(Ei)&&(Ht?t():Ht=!0,E(Yi,ji-Ir))):(Ti.sortIndex=c0,Ke(Pr,Ti),f&&(Xo(Ti,Ir),Ti.isQueued=!0),!ci&&!Di&&(ci=!0,p(Y0))),Ti}function Ao(){fi=!0}function Ms(){fi=!1,!ci&&!Di&&(ci=!0,p(Y0))}function Xn(){return jt(Pr)}function Qo(Et){if(f&&Et.isQueued){var Pt=Ri.unstable_now();Lu(Et,Pt),Et.isQueued=!1}Et.callback=null}function lo(){return Ln}function b0(){var Et=Ri.unstable_now();Du(Et);var Pt=jt(Pr);return Pt!==Zt&&Zt!==null&&Pt!==null&&Pt.callback!==null&&Pt.startTime<=Et&&Pt.expirationTime{"use strict";process.env.NODE_ENV==="production"?aw.exports=h9():aw.exports=v9()});var m9=ce((Pne,pg)=>{pg.exports=function i(o){"use strict";var f=eg(),p=su(),E=h4();function t(g){for(var y="https://reactjs.org/docs/error-decoder.html?invariant="+g,A=1;AG0||(g.current=Ei[G0],Ei[G0]=null,G0--)}function Zt(g,y){G0++,Ei[G0]=g.current,g.current=y}var Ln={},Di={current:Ln},ci={current:!1},Ht=Ln;function Du(g,y){var A=g.type.contextTypes;if(!A)return Ln;var F=g.stateNode;if(F&&F.__reactInternalMemoizedUnmaskedChildContext===y)return F.__reactInternalMemoizedMaskedChildContext;var I={},J;for(J in A)I[J]=y[J];return F&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=y,g.__reactInternalMemoizedMaskedChildContext=I),I}function Yi(g){return g=g.childContextTypes,g!=null}function Y0(g){fi(ci,g),fi(Di,g)}function Ui(g){fi(ci,g),fi(Di,g)}function Wl(g,y,A){if(Di.current!==Ln)throw Error(t(168));Zt(Di,y,g),Zt(ci,A,g)}function xo(g,y,A){var F=g.stateNode;if(g=y.childContextTypes,typeof F.getChildContext!="function")return A;F=F.getChildContext();for(var I in F)if(!(I in g))throw Error(t(108,Ge(y)||"Unknown",I));return f({},A,{},F)}function ni(g){var y=g.stateNode;return y=y&&y.__reactInternalMemoizedMergedChildContext||Ln,Ht=Di.current,Zt(Di,y,g),Zt(ci,ci.current,g),!0}function oo(g,y,A){var F=g.stateNode;if(!F)throw Error(t(169));A?(y=xo(g,y,Ht),F.__reactInternalMemoizedMergedChildContext=y,fi(ci,g),fi(Di,g),Zt(Di,y,g)):fi(ci,g),Zt(ci,A,g)}var Vl=E.unstable_runWithPriority,Ao=E.unstable_scheduleCallback,Ms=E.unstable_cancelCallback,Xn=E.unstable_shouldYield,Qo=E.unstable_requestPaint,lo=E.unstable_now,b0=E.unstable_getCurrentPriorityLevel,yl=E.unstable_ImmediatePriority,Ro=E.unstable_UserBlockingPriority,Et=E.unstable_NormalPriority,Pt=E.unstable_LowPriority,Bn=E.unstable_IdlePriority,Ir={},ji=Qo!==void 0?Qo:function(){},Wr=null,wu=null,c0=!1,Ti=lo(),d0=1e4>Ti?lo:function(){return lo()-Ti};function as(){switch(b0()){case yl:return 99;case Ro:return 98;case Et:return 97;case Pt:return 96;case Bn:return 95;default:throw Error(t(332))}}function St(g){switch(g){case 99:return yl;case 98:return Ro;case 97:return Et;case 96:return Pt;case 95:return Bn;default:throw Error(t(332))}}function so(g,y){return g=St(g),Vl(g,y)}function Jo(g,y,A){return g=St(g),Ao(g,y,A)}function Gl(g){return Wr===null?(Wr=[g],wu=Ao(yl,fs)):Wr.push(g),Ir}function Fu(){if(wu!==null){var g=wu;wu=null,Ms(g)}fs()}function fs(){if(!c0&&Wr!==null){c0=!0;var g=0;try{var y=Wr;so(99,function(){for(;g=y&&(fo=!0),g.firstContext=null)}function Tu(g,y){if(Su!==g&&y!==!1&&y!==0)if((typeof y!="number"||y===1073741823)&&(Su=g,y=1073741823),y={context:g,observedBits:y,next:null},mi===null){if(or===null)throw Error(t(308));mi=y,or.dependencies={expirationTime:0,firstContext:y,responders:null}}else mi=mi.next=y;return un?g._currentValue:g._currentValue2}var ao=!1;function Iu(g){return{baseState:g,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Oa(g){return{baseState:g.baseState,firstUpdate:g.firstUpdate,lastUpdate:g.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function p0(g,y){return{expirationTime:g,suspenseConfig:y,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Zs(g,y){g.lastUpdate===null?g.firstUpdate=g.lastUpdate=y:(g.lastUpdate.next=y,g.lastUpdate=y)}function K0(g,y){var A=g.alternate;if(A===null){var F=g.updateQueue,I=null;F===null&&(F=g.updateQueue=Iu(g.memoizedState))}else F=g.updateQueue,I=A.updateQueue,F===null?I===null?(F=g.updateQueue=Iu(g.memoizedState),I=A.updateQueue=Iu(A.memoizedState)):F=g.updateQueue=Oa(I):I===null&&(I=A.updateQueue=Oa(F));I===null||F===I?Zs(F,y):F.lastUpdate===null||I.lastUpdate===null?(Zs(F,y),Zs(I,y)):(Zs(F,y),I.lastUpdate=y)}function $s(g,y){var A=g.updateQueue;A=A===null?g.updateQueue=Iu(g.memoizedState):ka(g,A),A.lastCapturedUpdate===null?A.firstCapturedUpdate=A.lastCapturedUpdate=y:(A.lastCapturedUpdate.next=y,A.lastCapturedUpdate=y)}function ka(g,y){var A=g.alternate;return A!==null&&y===A.updateQueue&&(y=g.updateQueue=Oa(y)),y}function cs(g,y,A,F,I,J){switch(A.tag){case 1:return g=A.payload,typeof g=="function"?g.call(J,F,I):g;case 3:g.effectTag=g.effectTag&-4097|64;case 0:if(g=A.payload,I=typeof g=="function"?g.call(J,F,I):g,I==null)break;return f({},F,I);case 2:ao=!0}return F}function w0(g,y,A,F,I){ao=!1,y=ka(g,y);for(var J=y.baseState,fe=null,mt=0,Ct=y.firstUpdate,Mt=J;Ct!==null;){var Er=Ct.expirationTime;Erii?(qi=tr,tr=null):qi=tr.sibling;var jr=iu(He,tr,ut[ii],Jt);if(jr===null){tr===null&&(tr=qi);break}g&&tr&&jr.alternate===null&&y(He,tr),Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr,tr=qi}if(ii===ut.length)return A(He,tr),jn;if(tr===null){for(;iiii?(qi=tr,tr=null):qi=tr.sibling;var gu=iu(He,tr,jr.value,Jt);if(gu===null){tr===null&&(tr=qi);break}g&&tr&&gu.alternate===null&&y(He,tr),Be=J(gu,Be,ii),ti===null?jn=gu:ti.sibling=gu,ti=gu,tr=qi}if(jr.done)return A(He,tr),jn;if(tr===null){for(;!jr.done;ii++,jr=ut.next())jr=$u(He,jr.value,Jt),jr!==null&&(Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr);return jn}for(tr=F(He,tr);!jr.done;ii++,jr=ut.next())jr=j0(tr,He,ii,jr.value,Jt),jr!==null&&(g&&jr.alternate!==null&&tr.delete(jr.key===null?ii:jr.key),Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr);return g&&tr.forEach(function(Ba){return y(He,Ba)}),jn}return function(He,Be,ut,Jt){var jn=typeof ut=="object"&&ut!==null&&ut.type===U&&ut.key===null;jn&&(ut=ut.props.children);var ti=typeof ut=="object"&&ut!==null;if(ti)switch(ut.$$typeof){case N:e:{for(ti=ut.key,jn=Be;jn!==null;){if(jn.key===ti)if(jn.tag===7?ut.type===U:jn.elementType===ut.type){A(He,jn.sibling),Be=I(jn,ut.type===U?ut.props.children:ut.props,Jt),Be.ref=Fs(He,jn,ut),Be.return=He,He=Be;break e}else{A(He,jn);break}else y(He,jn);jn=jn.sibling}ut.type===U?(Be=Zu(ut.props.children,He.mode,Jt,ut.key),Be.return=He,He=Be):(Jt=Ia(ut.type,ut.key,ut.props,null,He.mode,Jt),Jt.ref=Fs(He,Be,ut),Jt.return=He,He=Jt)}return fe(He);case C:e:{for(jn=ut.key;Be!==null;){if(Be.key===jn)if(Be.tag===4&&Be.stateNode.containerInfo===ut.containerInfo&&Be.stateNode.implementation===ut.implementation){A(He,Be.sibling),Be=I(Be,ut.children||[],Jt),Be.return=He,He=Be;break e}else{A(He,Be);break}else y(He,Be);Be=Be.sibling}Be=vf(ut,He.mode,Jt),Be.return=He,He=Be}return fe(He)}if(typeof ut=="string"||typeof ut=="number")return ut=""+ut,Be!==null&&Be.tag===6?(A(He,Be.sibling),Be=I(Be,ut,Jt),Be.return=He,He=Be):(A(He,Be),Be=U0(ut,He.mode,Jt),Be.return=He,He=Be),fe(He);if(h0(ut))return Tl(He,Be,ut,Jt);if(le(ut))return e0(He,Be,ut,Jt);if(ti&&Ni(He,ut),typeof ut=="undefined"&&!jn)switch(He.tag){case 1:case 0:throw He=He.type,Error(t(152,He.displayName||He.name||"Component"))}return A(He,Be)}}var z=B(!0),G=B(!1),$={},De={current:$},me={current:$},xe={current:$};function Z(g){if(g===$)throw Error(t(174));return g}function ke(g,y){Zt(xe,y,g),Zt(me,g,g),Zt(De,$,g),y=jt(y),fi(De,g),Zt(De,y,g)}function Xe(g){fi(De,g),fi(me,g),fi(xe,g)}function ht(g){var y=Z(xe.current),A=Z(De.current);y=$t(A,g.type,y),A!==y&&(Zt(me,g,g),Zt(De,y,g))}function ie(g){me.current===g&&(fi(De,g),fi(me,g))}var qe={current:0};function tt(g){for(var y=g;y!==null;){if(y.tag===13){var A=y.memoizedState;if(A!==null&&(A=A.dehydrated,A===null||Hr(A)||To(A)))return y}else if(y.tag===19&&y.memoizedProps.revealOrder!==void 0){if((y.effectTag&64)!=0)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===g)break;for(;y.sibling===null;){if(y.return===null||y.return===g)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}function Tt(g,y){return{responder:g,props:y}}var kt=k.ReactCurrentDispatcher,bt=k.ReactCurrentBatchConfig,on=0,tn=null,Lt=null,gn=null,lr=null,Qn=null,_r=null,Cn=0,Ar=null,v0=0,Rr=!1,nt=null,_t=0;function Ze(){throw Error(t(321))}function Ft(g,y){if(y===null)return!1;for(var A=0;ACn&&(Cn=Er,La(Cn))):(oc(Er,Ct.suspenseConfig),J=Ct.eagerReducer===g?Ct.eagerState:g(J,Ct.action)),fe=Ct,Ct=Ct.next}while(Ct!==null&&Ct!==F);Mt||(mt=fe,I=J),Ne(J,y.memoizedState)||(fo=!0),y.memoizedState=J,y.baseUpdate=mt,y.baseState=I,A.lastRenderedState=J}return[y.memoizedState,A.dispatch]}function S0(g){var y=Yn();return typeof g=="function"&&(g=g()),y.memoizedState=y.baseState=g,g=y.queue={last:null,dispatch:null,lastRenderedReducer:nu,lastRenderedState:g},g=g.dispatch=bs.bind(null,tn,g),[y.memoizedState,g]}function X0(g){return Cu(nu,g)}function xu(g,y,A,F){return g={tag:g,create:y,destroy:A,deps:F,next:null},Ar===null?(Ar={lastEffect:null},Ar.lastEffect=g.next=g):(y=Ar.lastEffect,y===null?Ar.lastEffect=g.next=g:(A=y.next,y.next=g,g.next=A,Ar.lastEffect=g)),g}function di(g,y,A,F){var I=Yn();v0|=g,I.memoizedState=xu(y,A,void 0,F===void 0?null:F)}function ko(g,y,A,F){var I=yr();F=F===void 0?null:F;var J=void 0;if(Lt!==null){var fe=Lt.memoizedState;if(J=fe.destroy,F!==null&&Ft(F,fe.deps)){xu(0,A,J,F);return}}v0|=g,I.memoizedState=xu(y,A,J,F)}function Zo(g,y){return di(516,192,g,y)}function sf(g,y){return ko(516,192,g,y)}function gl(g,y){if(typeof y=="function")return g=g(),y(g),function(){y(null)};if(y!=null)return g=g(),y.current=g,function(){y.current=null}}function af(){}function Mo(g,y){return Yn().memoizedState=[g,y===void 0?null:y],g}function ds(g,y){var A=yr();y=y===void 0?null:y;var F=A.memoizedState;return F!==null&&y!==null&&Ft(y,F[1])?F[0]:(A.memoizedState=[g,y],g)}function bs(g,y,A){if(!(25>_t))throw Error(t(301));var F=g.alternate;if(g===tn||F!==null&&F===tn)if(Rr=!0,g={expirationTime:on,suspenseConfig:null,action:A,eagerReducer:null,eagerState:null,next:null},nt===null&&(nt=new Map),A=nt.get(y),A===void 0)nt.set(y,g);else{for(y=A;y.next!==null;)y=y.next;y.next=g}else{var I=g0(),J=ri.suspense;I=bn(I,g,J),J={expirationTime:I,suspenseConfig:J,action:A,eagerReducer:null,eagerState:null,next:null};var fe=y.last;if(fe===null)J.next=J;else{var mt=fe.next;mt!==null&&(J.next=mt),fe.next=J}if(y.last=J,g.expirationTime===0&&(F===null||F.expirationTime===0)&&(F=y.lastRenderedReducer,F!==null))try{var Ct=y.lastRenderedState,Mt=F(Ct,A);if(J.eagerReducer=F,J.eagerState=Mt,Ne(Mt,Ct))return}catch(Er){}finally{}Qu(g,I)}}var No={readContext:Tu,useCallback:Ze,useContext:Ze,useEffect:Ze,useImperativeHandle:Ze,useLayoutEffect:Ze,useMemo:Ze,useReducer:Ze,useRef:Ze,useState:Ze,useDebugValue:Ze,useResponder:Ze,useDeferredValue:Ze,useTransition:Ze},Lo={readContext:Tu,useCallback:Mo,useContext:Tu,useEffect:Zo,useImperativeHandle:function(g,y,A){return A=A!=null?A.concat([g]):null,di(4,36,gl.bind(null,y,g),A)},useLayoutEffect:function(g,y){return di(4,36,g,y)},useMemo:function(g,y){var A=Yn();return y=y===void 0?null:y,g=g(),A.memoizedState=[g,y],g},useReducer:function(g,y,A){var F=Yn();return y=A!==void 0?A(y):y,F.memoizedState=F.baseState=y,g=F.queue={last:null,dispatch:null,lastRenderedReducer:g,lastRenderedState:y},g=g.dispatch=bs.bind(null,tn,g),[F.memoizedState,g]},useRef:function(g){var y=Yn();return g={current:g},y.memoizedState=g},useState:S0,useDebugValue:af,useResponder:Tt,useDeferredValue:function(g,y){var A=S0(g),F=A[0],I=A[1];return Zo(function(){E.unstable_next(function(){var J=bt.suspense;bt.suspense=y===void 0?null:y;try{I(g)}finally{bt.suspense=J}})},[g,y]),F},useTransition:function(g){var y=S0(!1),A=y[0],F=y[1];return[Mo(function(I){F(!0),E.unstable_next(function(){var J=bt.suspense;bt.suspense=g===void 0?null:g;try{F(!1),I()}finally{bt.suspense=J}})},[g,A]),A]}},ps={readContext:Tu,useCallback:ds,useContext:Tu,useEffect:sf,useImperativeHandle:function(g,y,A){return A=A!=null?A.concat([g]):null,ko(4,36,gl.bind(null,y,g),A)},useLayoutEffect:function(g,y){return ko(4,36,g,y)},useMemo:function(g,y){var A=yr();y=y===void 0?null:y;var F=A.memoizedState;return F!==null&&y!==null&&Ft(y,F[1])?F[0]:(g=g(),A.memoizedState=[g,y],g)},useReducer:Cu,useRef:function(){return yr().memoizedState},useState:X0,useDebugValue:af,useResponder:Tt,useDeferredValue:function(g,y){var A=X0(g),F=A[0],I=A[1];return sf(function(){E.unstable_next(function(){var J=bt.suspense;bt.suspense=y===void 0?null:y;try{I(g)}finally{bt.suspense=J}})},[g,y]),F},useTransition:function(g){var y=X0(!1),A=y[0],F=y[1];return[ds(function(I){F(!0),E.unstable_next(function(){var J=bt.suspense;bt.suspense=g===void 0?null:g;try{F(!1),I()}finally{bt.suspense=J}})},[g,A]),A]}},Vu=null,yu=null,pi=!1;function T0(g,y){var A=Io(5,null,null,0);A.elementType="DELETED",A.type="DELETED",A.stateNode=y,A.return=g,A.effectTag=8,g.lastEffect!==null?(g.lastEffect.nextEffect=A,g.lastEffect=A):g.firstEffect=g.lastEffect=A}function Q0(g,y){switch(g.tag){case 5:return y=Lu(y,g.type,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 6:return y=V0(y,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 13:return!1;default:return!1}}function Fo(g){if(pi){var y=yu;if(y){var A=y;if(!Q0(g,y)){if(y=Co(A),!y||!Q0(g,y)){g.effectTag=g.effectTag&-1025|2,pi=!1,Vu=g;return}T0(Vu,A)}Vu=g,yu=L0(y)}else g.effectTag=g.effectTag&-1025|2,pi=!1,Vu=g}}function ta(g){for(g=g.return;g!==null&&g.tag!==5&&g.tag!==3&&g.tag!==13;)g=g.return;Vu=g}function Kl(g){if(!w||g!==Vu)return!1;if(!pi)return ta(g),pi=!0,!1;var y=g.type;if(g.tag!==5||y!=="head"&&y!=="body"&&!ct(y,g.memoizedProps))for(y=yu;y;)T0(g,y),y=Co(y);if(ta(g),g.tag===13){if(!w)throw Error(t(316));if(g=g.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(t(317));yu=ks(g)}else yu=Vu?Co(g.stateNode):null;return!0}function Ki(){w&&(yu=Vu=null,pi=!1)}var Yr=k.ReactCurrentOwner,fo=!1;function Oi(g,y,A,F){y.child=g===null?G(y,null,A,F):z(y,g.child,A,F)}function gi(g,y,A,F,I){A=A.render;var J=y.ref;return Oo(y,I),F=nn(g,y,A,F,J,I),g!==null&&!fo?(y.updateQueue=g.updateQueue,y.effectTag&=-517,g.expirationTime<=I&&(g.expirationTime=0),fu(g,y,I)):(y.effectTag|=1,Oi(g,y,F,I),y.child)}function ff(g,y,A,F,I,J){if(g===null){var fe=A.type;return typeof fe=="function"&&!hf(fe)&&fe.defaultProps===void 0&&A.compare===null&&A.defaultProps===void 0?(y.tag=15,y.type=fe,cf(g,y,fe,F,I,J)):(g=Ia(A.type,null,F,null,y.mode,J),g.ref=y.ref,g.return=y,y.child=g)}return fe=g.child,Iy)&&Ur.set(g,y)))}}function eo(g,y){g.expirationTimeg?y:g)}function Ju(g){if(g.lastExpiredTime!==0)g.callbackExpirationTime=1073741823,g.callbackPriority=99,g.callbackNode=Gl(to.bind(null,g));else{var y=po(g),A=g.callbackNode;if(y===0)A!==null&&(g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90);else{var F=g0();if(y===1073741823?F=99:y===1||y===2?F=95:(F=10*(1073741821-y)-10*(1073741821-F),F=0>=F?99:250>=F?98:5250>=F?97:95),A!==null){var I=g.callbackPriority;if(g.callbackExpirationTime===y&&I>=F)return;A!==Ir&&Ms(A)}g.callbackExpirationTime=y,g.callbackPriority=F,y=y===1073741823?Gl(to.bind(null,g)):Jo(F,bo.bind(null,g),{timeout:10*(1073741821-y)-d0()}),g.callbackNode=y}}}function bo(g,y){if(Qi=0,y)return y=g0(),oa(g,y),Ju(g),null;var A=po(g);if(A!==0){if(y=g.callbackNode,(kn&(Xi|ru))!==wr)throw Error(t(327));if(Bs(),g===se&&A===Le||ms(g,A),re!==null){var F=kn;kn|=Xi;var I=B0(g);do try{$1();break}catch(mt){ia(g,mt)}while(1);if(bu(),kn=F,Ku.current=I,Ae===Xr)throw y=ot,ms(g,A),Sl(g,A),Ju(g),y;if(re===null)switch(I=g.finishedWork=g.current.alternate,g.finishedExpirationTime=A,F=Ae,se=null,F){case Ci:case Xr:throw Error(t(345));case Wn:oa(g,2=A){g.lastPingedTime=A,ms(g,A);break}}if(J=po(g),J!==0&&J!==A)break;if(F!==0&&F!==A){g.lastPingedTime=F;break}g.timeoutHandle=ln(Dl.bind(null,g),I);break}Dl(g);break;case m0:if(Sl(g,A),F=g.lastSuspendedTime,A===F&&(g.nextKnownPendingLevel=Uc(I)),yn&&(I=g.lastPingedTime,I===0||I>=A)){g.lastPingedTime=A,ms(g,A);break}if(I=po(g),I!==0&&I!==A)break;if(F!==0&&F!==A){g.lastPingedTime=F;break}if(Xt!==1073741823?F=10*(1073741821-Xt)-d0():vt===1073741823?F=0:(F=10*(1073741821-vt)-5e3,I=d0(),A=10*(1073741821-A)-I,F=I-F,0>F&&(F=0),F=(120>F?120:480>F?480:1080>F?1080:1920>F?1920:3e3>F?3e3:4320>F?4320:1960*df(F/1960))-F,A=F?F=0:(I=fe.busyDelayMs|0,J=d0()-(10*(1073741821-J)-(fe.timeoutMs|0||5e3)),F=J<=I?0:I+F-J),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Pr(I))}Ae!==y0&&(Ae=Wn),J=_l(J,I),Ct=F;do{switch(Ct.tag){case 3:fe=J,Ct.effectTag|=4096,Ct.expirationTime=y;var Be=hs(Ct,fe,y);$s(Ct,Be);break e;case 1:fe=J;var ut=Ct.type,Jt=Ct.stateNode;if((Ct.effectTag&64)==0&&(typeof ut.getDerivedStateFromError=="function"||Jt!==null&&typeof Jt.componentDidCatch=="function"&&(cr===null||!cr.has(Jt)))){Ct.effectTag|=4096,Ct.expirationTime=y;var jn=ra(Ct,fe,y);$s(Ct,jn);break e}}Ct=Ct.return}while(Ct!==null)}re=ho(re)}catch(ti){y=ti;continue}break}while(1)}function B0(){var g=Ku.current;return Ku.current=No,g===null?No:g}function oc(g,y){g_n&&(_n=g)}function gd(){for(;re!==null;)re=e2(re)}function $1(){for(;re!==null&&!Xn();)re=e2(re)}function e2(g){var y=Pa(g.alternate,g,Le);return g.memoizedProps=g.pendingProps,y===null&&(y=ho(g)),vs.current=null,y}function ho(g){re=g;do{var y=re.alternate;if(g=re.return,(re.effectTag&2048)==0){e:{var A=y;y=re;var F=Le,I=y.pendingProps;switch(y.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:Yi(y.type)&&Y0(y);break;case 3:Xe(y),Ui(y),I=y.stateNode,I.pendingContext&&(I.context=I.pendingContext,I.pendingContext=null),(A===null||A.child===null)&&Kl(y)&&Gu(y),Vr(y);break;case 5:ie(y);var J=Z(xe.current);if(F=y.type,A!==null&&y.stateNode!=null)Bu(A,y,F,I,J),A.ref!==y.ref&&(y.effectTag|=128);else if(I){if(A=Z(De.current),Kl(y)){if(I=y,!w)throw Error(t(175));A=tu(I.stateNode,I.type,I.memoizedProps,J,A,I),I.updateQueue=A,A=A!==null,A&&Gu(y)}else{var fe=ae(F,I,J,A,y);Kr(fe,y,!1,!1),y.stateNode=fe,ue(fe,F,I,J,A)&&Gu(y)}y.ref!==null&&(y.effectTag|=128)}else if(y.stateNode===null)throw Error(t(166));break;case 6:if(A&&y.stateNode!=null)Sn(A,y,A.memoizedProps,I);else{if(typeof I!="string"&&y.stateNode===null)throw Error(t(166));if(A=Z(xe.current),J=Z(De.current),Kl(y)){if(A=y,!w)throw Error(t(176));(A=Si(A.stateNode,A.memoizedProps,A))&&Gu(y)}else y.stateNode=en(I,A,J,y)}break;case 11:break;case 13:if(fi(qe,y),I=y.memoizedState,(y.effectTag&64)!=0){y.expirationTime=F;break e}I=I!==null,J=!1,A===null?y.memoizedProps.fallback!==void 0&&Kl(y):(F=A.memoizedState,J=F!==null,I||F===null||(F=A.child.sibling,F!==null&&(fe=y.firstEffect,fe!==null?(y.firstEffect=F,F.nextEffect=fe):(y.firstEffect=y.lastEffect=F,F.nextEffect=null),F.effectTag=8))),I&&!J&&(y.mode&2)!=0&&(A===null&&y.memoizedProps.unstable_avoidThisFallback!==!0||(qe.current&1)!=0?Ae===Ci&&(Ae=Xu):((Ae===Ci||Ae===Xu)&&(Ae=m0),_n!==0&&se!==null&&(Sl(se,Le),_s(se,_n)))),vr&&I&&(y.effectTag|=4),Wt&&(I||J)&&(y.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Xe(y),Vr(y);break;case 10:mu(y);break;case 9:break;case 14:break;case 17:Yi(y.type)&&Y0(y);break;case 19:if(fi(qe,y),I=y.memoizedState,I===null)break;if(J=(y.effectTag&64)!=0,fe=I.rendering,fe===null){if(J)Au(I,!1);else if(Ae!==Ci||A!==null&&(A.effectTag&64)!=0)for(A=y.child;A!==null;){if(fe=tt(A),fe!==null){for(y.effectTag|=64,Au(I,!1),A=fe.updateQueue,A!==null&&(y.updateQueue=A,y.effectTag|=4),I.lastEffect===null&&(y.firstEffect=null),y.lastEffect=I.lastEffect,A=F,I=y.child;I!==null;)J=I,F=A,J.effectTag&=2,J.nextEffect=null,J.firstEffect=null,J.lastEffect=null,fe=J.alternate,fe===null?(J.childExpirationTime=0,J.expirationTime=F,J.child=null,J.memoizedProps=null,J.memoizedState=null,J.updateQueue=null,J.dependencies=null):(J.childExpirationTime=fe.childExpirationTime,J.expirationTime=fe.expirationTime,J.child=fe.child,J.memoizedProps=fe.memoizedProps,J.memoizedState=fe.memoizedState,J.updateQueue=fe.updateQueue,F=fe.dependencies,J.dependencies=F===null?null:{expirationTime:F.expirationTime,firstContext:F.firstContext,responders:F.responders}),I=I.sibling;Zt(qe,qe.current&1|2,y),y=y.child;break e}A=A.sibling}}else{if(!J)if(A=tt(fe),A!==null){if(y.effectTag|=64,J=!0,A=A.updateQueue,A!==null&&(y.updateQueue=A,y.effectTag|=4),Au(I,!0),I.tail===null&&I.tailMode==="hidden"&&!fe.alternate){y=y.lastEffect=I.lastEffect,y!==null&&(y.nextEffect=null);break}}else d0()>I.tailExpiration&&1I&&(I=F),fe>I&&(I=fe),J=J.sibling;A.childExpirationTime=I}if(y!==null)return y;g!==null&&(g.effectTag&2048)==0&&(g.firstEffect===null&&(g.firstEffect=re.firstEffect),re.lastEffect!==null&&(g.lastEffect!==null&&(g.lastEffect.nextEffect=re.firstEffect),g.lastEffect=re.lastEffect),1g?y:g}function Dl(g){var y=as();return so(99,el.bind(null,g,y)),null}function el(g,y){do Bs();while(Qr!==null);if((kn&(Xi|ru))!==wr)throw Error(t(327));var A=g.finishedWork,F=g.finishedExpirationTime;if(A===null)return null;if(g.finishedWork=null,g.finishedExpirationTime=0,A===g.current)throw Error(t(177));g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90,g.nextKnownPendingLevel=0;var I=Uc(A);if(g.firstPendingTime=I,F<=g.lastSuspendedTime?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:F<=g.firstSuspendedTime&&(g.firstSuspendedTime=F-1),F<=g.lastPingedTime&&(g.lastPingedTime=0),F<=g.lastExpiredTime&&(g.lastExpiredTime=0),g===se&&(re=se=null,Le=0),1=A?Yt(g,y,A):(Zt(qe,qe.current&1,y),y=fu(g,y,A),y!==null?y.sibling:null);Zt(qe,qe.current&1,y);break;case 19:if(F=y.childExpirationTime>=A,(g.effectTag&64)!=0){if(F)return wn(g,y,A);y.effectTag|=64}if(I=y.memoizedState,I!==null&&(I.rendering=null,I.tail=null),Zt(qe,qe.current,y),!F)return null}return fu(g,y,A)}fo=!1}}else fo=!1;switch(y.expirationTime=0,y.tag){case 2:if(F=y.type,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,I=Du(y,Di.current),Oo(y,A),I=nn(null,y,F,g,I,A),y.effectTag|=1,typeof I=="object"&&I!==null&&typeof I.render=="function"&&I.$$typeof===void 0){if(y.tag=1,sn(),Yi(F)){var J=!0;ni(y)}else J=!1;y.memoizedState=I.state!==null&&I.state!==void 0?I.state:null;var fe=F.getDerivedStateFromProps;typeof fe=="function"&&Yl(y,F,fe,g),I.updater=ea,y.stateNode=I,I._reactInternalFiber=y,Ls(y,F,g,A),y=et(null,y,F,!0,J,A)}else y.tag=0,Oi(null,y,I,A),y=y.child;return y;case 16:if(I=y.elementType,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,Ue(I),I._status!==1)throw I._result;switch(I=I._result,y.type=I,J=y.tag=tl(I),g=Hn(I,g),J){case 0:y=Z0(null,y,I,g,A);break;case 1:y=Te(null,y,I,g,A);break;case 11:y=gi(null,y,I,g,A);break;case 14:y=ff(null,y,I,Hn(I.type,g),F,A);break;default:throw Error(t(306,I,""))}return y;case 0:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),Z0(g,y,F,I,A);case 1:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),Te(g,y,F,I,A);case 3:if(Ve(y),F=y.updateQueue,F===null)throw Error(t(282));if(I=y.memoizedState,I=I!==null?I.element:null,w0(y,F,y.pendingProps,null,A),F=y.memoizedState.element,F===I)Ki(),y=fu(g,y,A);else{if((I=y.stateNode.hydrate)&&(w?(yu=L0(y.stateNode.containerInfo),Vu=y,I=pi=!0):I=!1),I)for(A=G(y,null,F,A),y.child=A;A;)A.effectTag=A.effectTag&-3|1024,A=A.sibling;else Oi(g,y,F,A),Ki();y=y.child}return y;case 5:return ht(y),g===null&&Fo(y),F=y.type,I=y.pendingProps,J=g!==null?g.memoizedProps:null,fe=I.children,ct(F,I)?fe=null:J!==null&&ct(F,J)&&(y.effectTag|=16),J0(g,y),y.mode&4&&A!==1&&At(F,I)?(y.expirationTime=y.childExpirationTime=1,y=null):(Oi(g,y,fe,A),y=y.child),y;case 6:return g===null&&Fo(y),null;case 13:return Yt(g,y,A);case 4:return ke(y,y.stateNode.containerInfo),F=y.pendingProps,g===null?y.child=z(y,null,F,A):Oi(g,y,F,A),y.child;case 11:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),gi(g,y,F,I,A);case 7:return Oi(g,y,y.pendingProps,A),y.child;case 8:return Oi(g,y,y.pendingProps.children,A),y.child;case 12:return Oi(g,y,y.pendingProps.children,A),y.child;case 10:e:{if(F=y.type._context,I=y.pendingProps,fe=y.memoizedProps,J=I.value,Pu(y,J),fe!==null){var mt=fe.value;if(J=Ne(mt,J)?0:(typeof F._calculateChangedBits=="function"?F._calculateChangedBits(mt,J):1073741823)|0,J===0){if(fe.children===I.children&&!ci.current){y=fu(g,y,A);break e}}else for(mt=y.child,mt!==null&&(mt.return=y);mt!==null;){var Ct=mt.dependencies;if(Ct!==null){fe=mt.child;for(var Mt=Ct.firstContext;Mt!==null;){if(Mt.context===F&&(Mt.observedBits&J)!=0){mt.tag===1&&(Mt=p0(A,null),Mt.tag=2,K0(mt,Mt)),mt.expirationTime=y&&g<=y}function Sl(g,y){var A=g.firstSuspendedTime,F=g.lastSuspendedTime;Ay||A===0)&&(g.lastSuspendedTime=y),y<=g.lastPingedTime&&(g.lastPingedTime=0),y<=g.lastExpiredTime&&(g.lastExpiredTime=0)}function _s(g,y){y>g.firstPendingTime&&(g.firstPendingTime=y);var A=g.firstSuspendedTime;A!==0&&(y>=A?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:y>=g.lastSuspendedTime&&(g.lastSuspendedTime=y+1),y>g.nextKnownPendingLevel&&(g.nextKnownPendingLevel=y))}function oa(g,y){var A=g.lastExpiredTime;(A===0||A>y)&&(g.lastExpiredTime=y)}function n2(g){var y=g._reactInternalFiber;if(y===void 0)throw typeof g.render=="function"?Error(t(188)):Error(t(268,Object.keys(g)));return g=$e(y),g===null?null:g.stateNode}function la(g,y){g=g.memoizedState,g!==null&&g.dehydrated!==null&&g.retryTime{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var JK=0;Qf.__interactionsRef=null;Qf.__subscriberRef=null;Qf.unstable_clear=function(i){return i()};Qf.unstable_getCurrent=function(){return null};Qf.unstable_getThreadID=function(){return++JK};Qf.unstable_trace=function(i,o,f){return f()};Qf.unstable_wrap=function(i){return i};Qf.unstable_subscribe=function(){};Qf.unstable_unsubscribe=function(){}});var g9=ce(au=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(au,"__esModule",{value:!0});var i=!0,o=0,f=0,p=0;au.__interactionsRef=null,au.__subscriberRef=null,i&&(au.__interactionsRef={current:new Set},au.__subscriberRef={current:null});function E(ge){if(!i)return ge();var ze=au.__interactionsRef.current;au.__interactionsRef.current=new Set;try{return ge()}finally{au.__interactionsRef.current=ze}}function t(){return i?au.__interactionsRef.current:null}function k(){return++p}function L(ge,ze,pe){var Oe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(!i)return pe();var le={__count:1,id:f++,name:ge,timestamp:ze},Ue=au.__interactionsRef.current,Ge=new Set(Ue);Ge.add(le),au.__interactionsRef.current=Ge;var rt=au.__subscriberRef.current,wt;try{rt!==null&&rt.onInteractionTraced(le)}finally{try{rt!==null&&rt.onWorkStarted(Ge,Oe)}finally{try{wt=pe()}finally{au.__interactionsRef.current=Ue;try{rt!==null&&rt.onWorkStopped(Ge,Oe)}finally{le.__count--,rt!==null&&le.__count===0&&rt.onInteractionScheduledWorkCompleted(le)}}}}return wt}function N(ge){var ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:o;if(!i)return ge;var pe=au.__interactionsRef.current,Oe=au.__subscriberRef.current;Oe!==null&&Oe.onWorkScheduled(pe,ze),pe.forEach(function(Ge){Ge.__count++});var le=!1;function Ue(){var Ge=au.__interactionsRef.current;au.__interactionsRef.current=pe,Oe=au.__subscriberRef.current;try{var rt;try{Oe!==null&&Oe.onWorkStarted(pe,ze)}finally{try{rt=ge.apply(void 0,arguments)}finally{au.__interactionsRef.current=Ge,Oe!==null&&Oe.onWorkStopped(pe,ze)}}return rt}finally{le||(le=!0,pe.forEach(function(wt){wt.__count--,Oe!==null&&wt.__count===0&&Oe.onInteractionScheduledWorkCompleted(wt)}))}}return Ue.cancel=function(){Oe=au.__subscriberRef.current;try{Oe!==null&&Oe.onWorkCanceled(pe,ze)}finally{pe.forEach(function(rt){rt.__count--,Oe&&rt.__count===0&&Oe.onInteractionScheduledWorkCompleted(rt)})}},Ue}var C=null;i&&(C=new Set);function U(ge){i&&(C.add(ge),C.size===1&&(au.__subscriberRef.current={onInteractionScheduledWorkCompleted:ne,onInteractionTraced:W,onWorkCanceled:he,onWorkScheduled:m,onWorkStarted:we,onWorkStopped:Se}))}function q(ge){i&&(C.delete(ge),C.size===0&&(au.__subscriberRef.current=null))}function W(ge){var ze=!1,pe=null;if(C.forEach(function(Oe){try{Oe.onInteractionTraced(ge)}catch(le){ze||(ze=!0,pe=le)}}),ze)throw pe}function ne(ge){var ze=!1,pe=null;if(C.forEach(function(Oe){try{Oe.onInteractionScheduledWorkCompleted(ge)}catch(le){ze||(ze=!0,pe=le)}}),ze)throw pe}function m(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkScheduled(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function we(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkStarted(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function Se(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkStopped(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function he(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkCanceled(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}au.unstable_clear=E,au.unstable_getCurrent=t,au.unstable_getThreadID=k,au.unstable_trace=L,au.unstable_wrap=N,au.unstable_subscribe=U,au.unstable_unsubscribe=q}()});var _9=ce((Une,fw)=>{"use strict";process.env.NODE_ENV==="production"?fw.exports=y9():fw.exports=g9()});var E9=ce((jne,hg)=>{"use strict";process.env.NODE_ENV!=="production"&&(hg.exports=function i(o){"use strict";var f=eg(),p=su(),E=HD(),t=h4(),k=_9(),L=0,N=1,C=2,U=3,q=4,W=5,ne=6,m=7,we=8,Se=9,he=10,ge=11,ze=12,pe=13,Oe=14,le=15,Ue=16,Ge=17,rt=18,wt=19,xt=20,$e=21,ft=function(){};ft=function(a,c){for(var _=arguments.length,T=new Array(_>2?_-2:0),R=2;R<_;R++)T[R-2]=arguments[R];if(c===void 0)throw new Error("`warningWithoutStack(condition, format, ...args)` requires a warning message argument");if(T.length>8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!a){if(typeof console!="undefined"){var j=T.map(function(oe){return""+oe});j.unshift("Warning: "+c),Function.prototype.apply.call(console.error,console,j)}try{var V=0,te="Warning: "+c.replace(/%s/g,function(){return T[V++]});throw new Error(te)}catch(oe){}}};var Ke=ft;function jt(a){return a._reactInternalFiber}function $t(a,c){a._reactInternalFiber=c}var at=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;at.hasOwnProperty("ReactCurrentDispatcher")||(at.ReactCurrentDispatcher={current:null}),at.hasOwnProperty("ReactCurrentBatchConfig")||(at.ReactCurrentBatchConfig={suspense:null});var Q=typeof Symbol=="function"&&Symbol.for,ae=Q?Symbol.for("react.element"):60103,Ce=Q?Symbol.for("react.portal"):60106,ue=Q?Symbol.for("react.fragment"):60107,je=Q?Symbol.for("react.strict_mode"):60108,ct=Q?Symbol.for("react.profiler"):60114,At=Q?Symbol.for("react.provider"):60109,en=Q?Symbol.for("react.context"):60110,ln=Q?Symbol.for("react.concurrent_mode"):60111,An=Q?Symbol.for("react.forward_ref"):60112,nr=Q?Symbol.for("react.suspense"):60113,un=Q?Symbol.for("react.suspense_list"):60120,Wt=Q?Symbol.for("react.memo"):60115,vr=Q?Symbol.for("react.lazy"):60116,w=Q?Symbol.for("react.fundamental"):60117,Ut=Q?Symbol.for("react.responder"):60118,Vn=Q?Symbol.for("react.scope"):60119,fr=typeof Symbol=="function"&&Symbol.iterator,Fr="@@iterator";function ur(a){if(a===null||typeof a!="object")return null;var c=fr&&a[fr]||a[Fr];return typeof c=="function"?c:null}var br=Ke;br=function(a,c){if(!a){for(var _=at.ReactDebugCurrentFrame,T=_.getStackAddendum(),R=arguments.length,j=new Array(R>2?R-2:0),V=2;V import('./MyComponent'))`,T),a._status=So,a._result=R}},function(T){a._status===a0&&(a._status=Go,a._result=T)})}}function Ko(a,c,_){var T=c.displayName||c.name||"";return a.displayName||(T!==""?_+"("+T+")":_)}function qt(a){if(a==null)return null;if(typeof a.tag=="number"&&Ke(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case ue:return"Fragment";case Ce:return"Portal";case ct:return"Profiler";case je:return"StrictMode";case nr:return"Suspense";case un:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case en:return"Context.Consumer";case At:return"Context.Provider";case An:return Ko(a,a.render,"ForwardRef");case Wt:return qt(a.type);case vr:{var c=a,_=Os(c);if(_)return qt(_);break}}return null}var _i=0,eu=1,ai=2,mr=4,Xo=6,W0=8,Lu=16,V0=32,Hr=64,To=128,Co=256,L0=512,tu=1024,Si=1028,ks=932,Hl=2047,F0=2048,f0=4096,Pr=!0,Ei=!0,G0=!0,fi=!0,Zt=!0,Ln=!0,Di=!1,ci=!1,Ht=!1,Du=!1,Yi=!1,Y0=!0,Ui=!1,Wl=!1,xo=!1,ni=!1,oo=!1,Vl=at.ReactCurrentOwner;function Ao(a){var c=a,_=a;if(a.alternate)for(;c.return;)c=c.return;else{var T=c;do c=T,(c.effectTag&(ai|tu))!==_i&&(_=c.return),T=c.return;while(T)}return c.tag===U?_:null}function Ms(a){return Ao(a)===a}function Xn(a){{var c=Vl.current;if(c!==null&&c.tag===N){var _=c,T=_.stateNode;T._warnedAboutRefsInRender||Ke(!1,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",qt(_.type)||"A component"),T._warnedAboutRefsInRender=!0}}var R=jt(a);return R?Ao(R)===R:!1}function Qo(a){if(Ao(a)!==a)throw Error("Unable to find node on an unmounted component.")}function lo(a){var c=a.alternate;if(!c){var _=Ao(a);if(_===null)throw Error("Unable to find node on an unmounted component.");return _!==a?null:a}for(var T=a,R=c;;){var j=T.return;if(j===null)break;var V=j.alternate;if(V===null){var te=j.return;if(te!==null){T=R=te;continue}break}if(j.child===V.child){for(var oe=j.child;oe;){if(oe===T)return Qo(j),a;if(oe===R)return Qo(j),c;oe=oe.sibling}throw Error("Unable to find node on an unmounted component.")}if(T.return!==R.return)T=j,R=V;else{for(var Ie=!1,Ye=j.child;Ye;){if(Ye===T){Ie=!0,T=j,R=V;break}if(Ye===R){Ie=!0,R=j,T=V;break}Ye=Ye.sibling}if(!Ie){for(Ye=V.child;Ye;){if(Ye===T){Ie=!0,T=V,R=j;break}if(Ye===R){Ie=!0,R=V,T=j;break}Ye=Ye.sibling}if(!Ie)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(T.alternate!==R)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(T.tag!==U)throw Error("Unable to find node on an unmounted component.");return T.stateNode.current===T?a:c}function b0(a){var c=lo(a);if(!c)return null;for(var _=c;;){if(_.tag===W||_.tag===ne)return _;if(_.child){_.child.return=_,_=_.child;continue}if(_===c)return null;for(;!_.sibling;){if(!_.return||_.return===c)return null;_=_.return}_.sibling.return=_.return,_=_.sibling}return null}function yl(a){var c=lo(a);if(!c)return null;for(var _=c;;){if(_.tag===W||_.tag===ne||Ht&&_.tag===xt)return _;if(_.child&&_.tag!==q){_.child.return=_,_=_.child;continue}if(_===c)return null;for(;!_.sibling;){if(!_.return||_.return===c)return null;_=_.return}_.sibling.return=_.return,_=_.sibling}return null}var Ro=o.getPublicInstance,Et=o.getRootHostContext,Pt=o.getChildHostContext,Bn=o.prepareForCommit,Ir=o.resetAfterCommit,ji=o.createInstance,Wr=o.appendInitialChild,wu=o.finalizeInitialChildren,c0=o.prepareUpdate,Ti=o.shouldSetTextContent,d0=o.shouldDeprioritizeSubtree,as=o.createTextInstance,St=o.setTimeout,so=o.clearTimeout,Jo=o.noTimeout,Gl=o.now,Fu=o.isPrimaryRenderer,fs=o.warnsIfNotActing,P0=o.supportsMutation,X=o.supportsPersistence,_e=o.supportsHydration,Ne=o.mountResponderInstance,Me=o.unmountResponderInstance,dt=o.getFundamentalComponentInstance,Hn=o.mountFundamentalComponent,Dn=o.shouldUpdateFundamentalComponent,or=o.getInstanceFromNode,mi=o.appendChild,Su=o.appendChildToContainer,bu=o.commitTextUpdate,Pu=o.commitMount,mu=o.commitUpdate,yi=o.insertBefore,Oo=o.insertInContainerBefore,Tu=o.removeChild,ao=o.removeChildFromContainer,Iu=o.resetTextContent,Oa=o.hideInstance,p0=o.hideTextInstance,Zs=o.unhideInstance,K0=o.unhideTextInstance,$s=o.updateFundamentalComponent,ka=o.unmountFundamentalComponent,cs=o.cloneInstance,w0=o.createContainerChildSet,Gn=o.appendChildToContainerChildSet,ic=o.finalizeContainerChildren,ri=o.replaceContainerChildren,Gr=o.cloneHiddenInstance,Yl=o.cloneHiddenTextInstance,ea=o.cloneInstance,lf=o.canHydrateInstance,Ns=o.canHydrateTextInstance,Ma=o.canHydrateSuspenseInstance,Ls=o.isSuspenseInstancePending,h0=o.isSuspenseInstanceFallback,Fs=o.registerSuspenseInstanceRetry,Ni=o.getNextHydratableSibling,B=o.getFirstHydratableChild,z=o.hydrateInstance,G=o.hydrateTextInstance,$=o.hydrateSuspenseInstance,De=o.getNextHydratableInstanceAfterSuspenseInstance,me=o.commitHydratedContainer,xe=o.commitHydratedSuspenseInstance,Z=o.clearSuspenseBoundary,ke=o.clearSuspenseBoundaryFromContainer,Xe=o.didNotMatchHydratedContainerTextInstance,ht=o.didNotMatchHydratedTextInstance,ie=o.didNotHydrateContainerInstance,qe=o.didNotHydrateInstance,tt=o.didNotFindHydratableContainerInstance,Tt=o.didNotFindHydratableContainerTextInstance,kt=o.didNotFindHydratableContainerSuspenseInstance,bt=o.didNotFindHydratableInstance,on=o.didNotFindHydratableTextInstance,tn=o.didNotFindHydratableSuspenseInstance,Lt=/^(.*)[\\\/]/,gn=function(a,c,_){var T="";if(c){var R=c.fileName,j=R.replace(Lt,"");if(/^index\./.test(j)){var V=R.match(Lt);if(V){var te=V[1];if(te){var oe=te.replace(Lt,"");j=oe+"/"+j}}}T=" (at "+j+":"+c.lineNumber+")"}else _&&(T=" (created by "+_+")");return` + in `+(a||"Unknown")+T},lr=at.ReactDebugCurrentFrame;function Qn(a){switch(a.tag){case U:case q:case ne:case m:case he:case Se:return"";default:var c=a._debugOwner,_=a._debugSource,T=qt(a.type),R=null;return c&&(R=qt(c.type)),gn(T,_,R)}}function _r(a){var c="",_=a;do c+=Qn(_),_=_.return;while(_);return c}var Cn=null,Ar=null;function v0(){{if(Cn===null)return null;var a=Cn._debugOwner;if(a!==null&&typeof a!="undefined")return qt(a.type)}return null}function Rr(){return Cn===null?"":_r(Cn)}function nt(){lr.getCurrentStack=null,Cn=null,Ar=null}function _t(a){lr.getCurrentStack=Rr,Cn=a,Ar=null}function Ze(a){Ar=a}var Ft="\u269B",nn="\u26D4",sn=typeof performance!="undefined"&&typeof performance.mark=="function"&&typeof performance.clearMarks=="function"&&typeof performance.measure=="function"&&typeof performance.clearMeasures=="function",Yn=null,yr=null,nu=null,Cu=!1,S0=!1,X0=!1,xu=0,di=0,ko=new Set,Zo=function(a){return Ft+" "+a},sf=function(a,c){var _=c?nn+" ":Ft+" ",T=c?" Warning: "+c:"";return""+_+a+T},gl=function(a){performance.mark(Zo(a))},af=function(a){performance.clearMarks(Zo(a))},Mo=function(a,c,_){var T=Zo(c),R=sf(a,_);try{performance.measure(R,T)}catch(j){}performance.clearMarks(T),performance.clearMeasures(R)},ds=function(a,c){return a+" (#"+c+")"},bs=function(a,c,_){return _===null?a+" ["+(c?"update":"mount")+"]":a+"."+_},No=function(a,c){var _=qt(a.type)||"Unknown",T=a._debugID,R=a.alternate!==null,j=bs(_,R,c);if(Cu&&ko.has(j))return!1;ko.add(j);var V=ds(j,T);return gl(V),!0},Lo=function(a,c){var _=qt(a.type)||"Unknown",T=a._debugID,R=a.alternate!==null,j=bs(_,R,c),V=ds(j,T);af(V)},ps=function(a,c,_){var T=qt(a.type)||"Unknown",R=a._debugID,j=a.alternate!==null,V=bs(T,j,c),te=ds(V,R);Mo(V,te,_)},Vu=function(a){switch(a.tag){case U:case W:case ne:case q:case m:case he:case Se:case we:return!0;default:return!1}},yu=function(){yr!==null&&nu!==null&&Lo(nu,yr),nu=null,yr=null,X0=!1},pi=function(){for(var a=Yn;a;)a._debugIsCurrentlyTiming&&ps(a,null,null),a=a.return},T0=function(a){a.return!==null&&T0(a.return),a._debugIsCurrentlyTiming&&No(a,null)},Q0=function(){Yn!==null&&T0(Yn)};function Fo(){Pr&&di++}function ta(){Pr&&(Cu&&(S0=!0),yr!==null&&yr!=="componentWillMount"&&yr!=="componentWillReceiveProps"&&(X0=!0))}function Kl(a){if(Pr){if(!sn||Vu(a)||(Yn=a,!No(a,null)))return;a._debugIsCurrentlyTiming=!0}}function Ki(a){if(Pr){if(!sn||Vu(a))return;a._debugIsCurrentlyTiming=!1,Lo(a,null)}}function Yr(a){if(Pr){if(!sn||Vu(a)||(Yn=a.return,!a._debugIsCurrentlyTiming))return;a._debugIsCurrentlyTiming=!1,ps(a,null,null)}}function fo(a){if(Pr){if(!sn||Vu(a)||(Yn=a.return,!a._debugIsCurrentlyTiming))return;a._debugIsCurrentlyTiming=!1;var c=a.tag===pe?"Rendering was suspended":"An error was thrown inside this error boundary";ps(a,null,c)}}function Oi(a,c){if(Pr){if(!sn||(yu(),!No(a,c)))return;nu=a,yr=c}}function gi(){if(Pr){if(!sn)return;if(yr!==null&&nu!==null){var a=X0?"Scheduled a cascading update":null;ps(nu,yr,a)}yr=null,nu=null}}function ff(a){if(Pr){if(Yn=a,!sn)return;xu=0,gl("(React Tree Reconciliation)"),Q0()}}function cf(a,c){if(Pr){if(!sn)return;var _=null;if(a!==null)if(a.tag===U)_="A top-level update interrupted the previous render";else{var T=qt(a.type)||"Unknown";_="An update to "+T+" interrupted the previous render"}else xu>1&&(_="There were cascading updates");xu=0;var R=c?"(React Tree Reconciliation: Completed Root)":"(React Tree Reconciliation: Yielded)";pi(),Mo(R,"(React Tree Reconciliation)",_)}}function J0(){if(Pr){if(!sn)return;Cu=!0,S0=!1,ko.clear(),gl("(Committing Changes)")}}function Z0(){if(Pr){if(!sn)return;var a=null;S0?a="Lifecycle hook scheduled a cascading update":xu>0&&(a="Caused by a cascading update in earlier commit"),S0=!1,xu++,Cu=!1,ko.clear(),Mo("(Committing Changes)","(Committing Changes)",a)}}function Te(){if(Pr){if(!sn)return;di=0,gl("(Committing Snapshot Effects)")}}function et(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Committing Snapshot Effects: "+a+" Total)","(Committing Snapshot Effects)",null)}}function Ve(){if(Pr){if(!sn)return;di=0,gl("(Committing Host Effects)")}}function Gt(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Committing Host Effects: "+a+" Total)","(Committing Host Effects)",null)}}function Yt(){if(Pr){if(!sn)return;di=0,gl("(Calling Lifecycle Methods)")}}function sr(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Calling Lifecycle Methods: "+a+" Total)","(Calling Lifecycle Methods)",null)}}var Br=[],wn;wn=[];var fu=-1;function Gu(a){return{current:a}}function Kr(a,c){if(fu<0){Ke(!1,"Unexpected pop.");return}c!==wn[fu]&&Ke(!1,"Unexpected Fiber popped."),a.current=Br[fu],Br[fu]=null,wn[fu]=null,fu--}function Vr(a,c,_){fu++,Br[fu]=a.current,wn[fu]=_,a.current=c}var Bu;Bu={};var Sn={};Object.freeze(Sn);var C0=Gu(Sn),Au=Gu(!1),ei=Sn;function _l(a,c,_){return ni?Sn:_&&zi(c)?ei:C0.current}function Ps(a,c,_){if(!ni){var T=a.stateNode;T.__reactInternalMemoizedUnmaskedChildContext=c,T.__reactInternalMemoizedMaskedChildContext=_}}function Uu(a,c){if(ni)return Sn;var _=a.type,T=_.contextTypes;if(!T)return Sn;var R=a.stateNode;if(R&&R.__reactInternalMemoizedUnmaskedChildContext===c)return R.__reactInternalMemoizedMaskedChildContext;var j={};for(var V in T)j[V]=c[V];{var te=qt(_)||"Unknown";E(T,j,"context",te,Rr)}return R&&Ps(a,c,j),j}function na(){return ni?!1:Au.current}function zi(a){if(ni)return!1;var c=a.childContextTypes;return c!=null}function Is(a){ni||(Kr(Au,a),Kr(C0,a))}function x0(a){ni||(Kr(Au,a),Kr(C0,a))}function Li(a,c,_){if(!ni){if(C0.current!==Sn)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Vr(C0,c,a),Vr(Au,_,a)}}function A0(a,c,_){if(ni)return _;var T=a.stateNode,R=c.childContextTypes;if(typeof T.getChildContext!="function"){{var j=qt(c)||"Unknown";Bu[j]||(Bu[j]=!0,Ke(!1,"%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",j,j))}return _}var V;Ze("getChildContext"),Oi(a,"getChildContext"),V=T.getChildContext(),gi(),Ze(null);for(var te in V)if(!(te in R))throw Error((qt(c)||"Unknown")+'.getChildContext(): key "'+te+'" is not defined in childContextTypes.');{var oe=qt(c)||"Unknown";E(R,V,"child context",oe,Rr)}return f({},_,{},V)}function Fi(a){if(ni)return!1;var c=a.stateNode,_=c&&c.__reactInternalMemoizedMergedChildContext||Sn;return ei=C0.current,Vr(C0,_,a),Vr(Au,Au.current,a),!0}function $o(a,c,_){if(!ni){var T=a.stateNode;if(!T)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(_){var R=A0(a,c,ei);T.__reactInternalMemoizedMergedChildContext=R,Kr(Au,a),Kr(C0,a),Vr(C0,R,a),Vr(Au,_,a)}else Kr(Au,a),Vr(Au,_,a)}}function El(a){if(ni)return Sn;if(!(Ms(a)&&a.tag===N))throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var c=a;do{switch(c.tag){case U:return c.stateNode.context;case N:{var _=c.type;if(zi(_))return c.stateNode.__reactInternalMemoizedMergedChildContext;break}}c=c.return}while(c!==null);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}var I0=1,R0=2,co=t.unstable_runWithPriority,Ru=t.unstable_scheduleCallback,Yu=t.unstable_cancelCallback,Xl=t.unstable_shouldYield,hs=t.unstable_requestPaint,ra=t.unstable_now,df=t.unstable_getCurrentPriorityLevel,Ku=t.unstable_ImmediatePriority,vs=t.unstable_UserBlockingPriority,wr=t.unstable_NormalPriority,$0=t.unstable_LowPriority,Xi=t.unstable_IdlePriority;if(Ln&&!(k.__interactionsRef!=null&&k.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling");var ru={},Ci=99,Xr=98,Wn=97,Xu=96,m0=95,y0=90,kn=Xl,se=hs!==void 0?hs:function(){},re=null,Le=null,Ae=!1,ot=ra(),vt=ot<1e4?ra:function(){return ra()-ot};function Xt(){switch(df()){case Ku:return Ci;case vs:return Xr;case wr:return Wn;case $0:return Xu;case Xi:return m0;default:throw Error("Unknown priority level.")}}function xn(a){switch(a){case Ci:return Ku;case Xr:return vs;case Wn:return wr;case Xu:return $0;case m0:return Xi;default:throw Error("Unknown priority level.")}}function _n(a,c){var _=xn(a);return co(_,c)}function yn(a,c,_){var T=xn(a);return Ru(T,c,_)}function En(a){return re===null?(re=[a],Le=Ru(Ku,xi)):re.push(a),ru}function er(a){a!==ru&&Yu(a)}function It(){if(Le!==null){var a=Le;Le=null,Yu(a)}xi()}function xi(){if(!Ae&&re!==null){Ae=!0;var a=0;try{var c=!0,_=re;_n(Ci,function(){for(;a<_.length;a++){var T=_[a];do T=T(c);while(T!==null)}}),re=null}catch(T){throw re!==null&&(re=re.slice(a+1)),Ru(Ku,It),T}finally{Ae=!1}}}var Sr=0,cr=1,Y=2,Qr=4,Jr=8,Ur=1073741823,lt=0,hi=1,Qi=2,g0=3,bn=Ur,Qu=bn-1,eo=10,po=Qu-1;function Ju(a){return po-(a/eo|0)}function bo(a){return(po-a)*eo}function to(a,c){return((a/c|0)+1)*c}function Na(a,c,_){return po-to(po-a+c/eo,_/eo)}var pf=5e3,uc=250;function ms(a){return Na(a,pf,uc)}function ia(a,c){return Na(a,c,uc)}var B0=500,oc=100;function La(a){return Na(a,B0,oc)}function gd(a){return g0++}function $1(a,c){if(c===bn)return Ci;if(c===hi||c===Qi)return m0;var _=bo(c)-bo(a);return _<=0?Ci:_<=B0+oc?Xr:_<=pf+uc?Wn:m0}function e2(a,c){return a===c&&(a!==0||1/a==1/c)||a!==a&&c!==c}var ho=typeof Object.is=="function"?Object.is:e2,Uc=Object.prototype.hasOwnProperty;function Dl(a,c){if(ho(a,c))return!0;if(typeof a!="object"||a===null||typeof c!="object"||c===null)return!1;var _=Object.keys(a),T=Object.keys(c);if(_.length!==T.length)return!1;for(var R=0;R<_.length;R++)if(!Uc.call(c,_[R])||!ho(a[_[R]],c[_[R]]))return!1;return!0}var el=function(){};{var _d=function(a){for(var c=arguments.length,_=new Array(c>1?c-1:0),T=1;T2?_-2:0),R=2;R<_;R++)T[R-2]=arguments[R];_d.apply(void 0,[c].concat(T))}}}var Bs=el,wl={recordUnsafeLifecycleWarnings:function(a,c){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(a,c){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var t2=function(a){for(var c=null,_=a;_!==null;)_.mode&cr&&(c=_),_=_.return;return c},Po=function(a){var c=[];return a.forEach(function(_){c.push(_)}),c.sort().join(", ")},Fa=[],ba=[],Pa=[],ua=[],ys=[],gs=[],Ql=new Set;wl.recordUnsafeLifecycleWarnings=function(a,c){Ql.has(a.type)||(typeof c.componentWillMount=="function"&&c.componentWillMount.__suppressDeprecationWarning!==!0&&Fa.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillMount=="function"&&ba.push(a),typeof c.componentWillReceiveProps=="function"&&c.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&Pa.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillReceiveProps=="function"&&ua.push(a),typeof c.componentWillUpdate=="function"&&c.componentWillUpdate.__suppressDeprecationWarning!==!0&&ys.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillUpdate=="function"&&gs.push(a))},wl.flushPendingUnsafeLifecycleWarnings=function(){var a=new Set;Fa.length>0&&(Fa.forEach(function(Nt){a.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),Fa=[]);var c=new Set;ba.length>0&&(ba.forEach(function(Nt){c.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ba=[]);var _=new Set;Pa.length>0&&(Pa.forEach(function(Nt){_.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),Pa=[]);var T=new Set;ua.length>0&&(ua.forEach(function(Nt){T.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ua=[]);var R=new Set;ys.length>0&&(ys.forEach(function(Nt){R.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ys=[]);var j=new Set;if(gs.length>0&&(gs.forEach(function(Nt){j.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),gs=[]),c.size>0){var V=Po(c);Ke(!1,`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. + +Please update the following components: %s`,V)}if(T.size>0){var te=Po(T);Ke(!1,`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state + +Please update the following components: %s`,te)}if(j.size>0){var oe=Po(j);Ke(!1,`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. + +Please update the following components: %s`,oe)}if(a.size>0){var Ie=Po(a);Bs(!1,`componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. +* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Ie)}if(_.size>0){var Ye=Po(_);Bs(!1,`componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state +* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Ye)}if(R.size>0){var pt=Po(R);Bs(!1,`componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,pt)}};var Io=new Map,hf=new Set;wl.recordLegacyContextWarning=function(a,c){var _=t2(a);if(_===null){Ke(!1,"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!hf.has(a.type)){var T=Io.get(_);(a.type.contextTypes!=null||a.type.childContextTypes!=null||c!==null&&typeof c.getChildContext=="function")&&(T===void 0&&(T=[],Io.set(_,T)),T.push(a))}},wl.flushLegacyContextWarning=function(){Io.forEach(function(a,c){var _=new Set;a.forEach(function(j){_.add(qt(j.type)||"Component"),hf.add(j.type)});var T=Po(_),R=_r(c);Ke(!1,`Legacy context API has been detected within a strict-mode tree. + +The old API will be supported in all 16.x releases, but applications using it should migrate to the new version. + +Please update the following components: %s + +Learn more about this warning here: https://fb.me/react-legacy-context%s`,T,R)})},wl.discardPendingWarnings=function(){Fa=[],ba=[],Pa=[],ua=[],ys=[],gs=[],Io=new Map}}var tl=null,ju=null,Ia=function(a){tl=a};function Zu(a){{if(tl===null)return a;var c=tl(a);return c===void 0?a:c.current}}function U0(a){return Zu(a)}function vf(a){{if(tl===null)return a;var c=tl(a);if(c===void 0){if(a!=null&&typeof a.render=="function"){var _=Zu(a.render);if(a.render!==_){var T={$$typeof:An,render:_};return a.displayName!==void 0&&(T.displayName=a.displayName),T}}return a}return c.current}}function jc(a,c){{if(tl===null)return!1;var _=a.elementType,T=c.type,R=!1,j=typeof T=="object"&&T!==null?T.$$typeof:null;switch(a.tag){case N:{typeof T=="function"&&(R=!0);break}case L:{(typeof T=="function"||j===vr)&&(R=!0);break}case ge:{(j===An||j===vr)&&(R=!0);break}case Oe:case le:{(j===Wt||j===vr)&&(R=!0);break}default:return!1}if(R){var V=tl(_);if(V!==void 0&&V===tl(T))return!0}return!1}}function lc(a){{if(tl===null||typeof WeakSet!="function")return;ju===null&&(ju=new WeakSet),ju.add(a)}}var Sl=function(a,c){{if(tl===null)return;var _=c.staleFamilies,T=c.updatedFamilies;Xa(),xp(function(){oa(a.current,T,_)})}},_s=function(a,c){{if(a.context!==Sn)return;Xa(),fv(function(){l_(c,a,null,null)})}};function oa(a,c,_){{var T=a.alternate,R=a.child,j=a.sibling,V=a.tag,te=a.type,oe=null;switch(V){case L:case le:case N:oe=te;break;case ge:oe=te.render;break;default:break}if(tl===null)throw new Error("Expected resolveFamily to be set during hot reload.");var Ie=!1,Ye=!1;if(oe!==null){var pt=tl(oe);pt!==void 0&&(_.has(pt)?Ye=!0:c.has(pt)&&(V===N?Ye=!0:Ie=!0))}ju!==null&&(ju.has(a)||T!==null&&ju.has(T))&&(Ye=!0),Ye&&(a._debugNeedsRemount=!0),(Ye||Ie)&&dl(a,bn),R!==null&&!Ye&&oa(R,c,_),j!==null&&oa(j,c,_)}}var n2=function(a,c){{var _=new Set,T=new Set(c.map(function(R){return R.current}));return la(a.current,T,_),_}};function la(a,c,_){{var T=a.child,R=a.sibling,j=a.tag,V=a.type,te=null;switch(j){case L:case le:case N:te=V;break;case ge:te=V.render;break;default:break}var oe=!1;te!==null&&c.has(te)&&(oe=!0),oe?sc(a,_):T!==null&&la(T,c,_),R!==null&&la(R,c,_)}}function sc(a,c){{var _=zc(a,c);if(_)return;for(var T=a;;){switch(T.tag){case W:c.add(T.stateNode);return;case q:c.add(T.stateNode.containerInfo);return;case U:c.add(T.stateNode.containerInfo);return}if(T.return===null)throw new Error("Expected to reach root first.");T=T.return}}}function zc(a,c){for(var _=a,T=!1;;){if(_.tag===W)T=!0,c.add(_.stateNode);else if(_.child!==null){_.child.return=_,_=_.child;continue}if(_===a)return T;for(;_.sibling===null;){if(_.return===null||_.return===a)return T;_=_.return}_.sibling.return=_.return,_=_.sibling}return!1}function bi(a,c){if(a&&a.defaultProps){var _=f({},c),T=a.defaultProps;for(var R in T)_[R]===void 0&&(_[R]=T[R]);return _}return c}function g(a){if(Yo(a),a._status!==So)throw a._result;return a._result}var y=Gu(null),A;A={};var F=null,I=null,J=null,fe=!1;function mt(){F=null,I=null,J=null,fe=!1}function Ct(){fe=!0}function Mt(){fe=!1}function Er(a,c){var _=a.type._context;Fu?(Vr(y,_._currentValue,a),_._currentValue=c,_._currentRenderer===void 0||_._currentRenderer===null||_._currentRenderer===A||Ke(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),_._currentRenderer=A):(Vr(y,_._currentValue2,a),_._currentValue2=c,_._currentRenderer2===void 0||_._currentRenderer2===null||_._currentRenderer2===A||Ke(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),_._currentRenderer2=A)}function $u(a){var c=y.current;Kr(y,a);var _=a.type._context;Fu?_._currentValue=c:_._currentValue2=c}function iu(a,c,_){if(ho(_,c))return 0;var T=typeof a._calculateChangedBits=="function"?a._calculateChangedBits(_,c):Ur;return(T&Ur)!==T&&Kt(!1,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",T),T|0}function j0(a,c){for(var _=a;_!==null;){var T=_.alternate;if(_.childExpirationTime=c&&up(),_.firstContext=null)}}function He(a,c){if(fe&&Kt(!1,"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),J!==a){if(!(c===!1||c===0)){var _;typeof c!="number"||c===Ur?(J=a,_=Ur):_=c;var T={context:a,observedBits:_,next:null};if(I===null){if(F===null)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");I=T,F.dependencies={expirationTime:lt,firstContext:T,responders:null}}else I=I.next=T}}return Fu?a._currentValue:a._currentValue2}var Be=0,ut=1,Jt=2,jn=3,ti=!1,tr,ii;tr=!1,ii=null;function qi(a){var c={baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return c}function jr(a){var c={baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return c}function gu(a,c){var _={expirationTime:a,suspenseConfig:c,tag:Be,payload:null,callback:null,next:null,nextEffect:null};return _.priority=Xt(),_}function Ba(a,c){a.lastUpdate===null?a.firstUpdate=a.lastUpdate=c:(a.lastUpdate.next=c,a.lastUpdate=c)}function Ua(a,c){var _=a.alternate,T,R;_===null?(T=a.updateQueue,R=null,T===null&&(T=a.updateQueue=qi(a.memoizedState))):(T=a.updateQueue,R=_.updateQueue,T===null?R===null?(T=a.updateQueue=qi(a.memoizedState),R=_.updateQueue=qi(_.memoizedState)):T=a.updateQueue=jr(R):R===null&&(R=_.updateQueue=jr(T))),R===null||T===R?Ba(T,c):T.lastUpdate===null||R.lastUpdate===null?(Ba(T,c),Ba(R,c)):(Ba(T,c),R.lastUpdate=c),a.tag===N&&(ii===T||R!==null&&ii===R)&&!tr&&(Ke(!1,"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."),tr=!0)}function r2(a,c){var _=a.updateQueue;_===null?_=a.updateQueue=qi(a.memoizedState):_=Ed(a,_),_.lastCapturedUpdate===null?_.firstCapturedUpdate=_.lastCapturedUpdate=c:(_.lastCapturedUpdate.next=c,_.lastCapturedUpdate=c)}function Ed(a,c){var _=a.alternate;return _!==null&&c===_.updateQueue&&(c=a.updateQueue=jr(c)),c}function Dd(a,c,_,T,R,j){switch(_.tag){case ut:{var V=_.payload;if(typeof V=="function"){Ct(),Ei&&a.mode&cr&&V.call(j,T,R);var te=V.call(j,T,R);return Mt(),te}return V}case jn:a.effectTag=a.effectTag&~f0|Hr;case Be:{var oe=_.payload,Ie;return typeof oe=="function"?(Ct(),Ei&&a.mode&cr&&oe.call(j,T,R),Ie=oe.call(j,T,R),Mt()):Ie=oe,Ie==null?T:f({},T,Ie)}case Jt:return ti=!0,T}return T}function mf(a,c,_,T,R){ti=!1,c=Ed(a,c),ii=c;for(var j=c.baseState,V=null,te=lt,oe=c.firstUpdate,Ie=j;oe!==null;){var Ye=oe.expirationTime;if(Ye from render. Or maybe you meant to call this function rather than return it."))}function yh(a){function c(it,Ot){if(!!a){var Je=it.lastEffect;Je!==null?(Je.nextEffect=Ot,it.lastEffect=Ot):it.firstEffect=it.lastEffect=Ot,Ot.nextEffect=null,Ot.effectTag=W0}}function _(it,Ot){if(!a)return null;for(var Je=Ot;Je!==null;)c(it,Je),Je=Je.sibling;return null}function T(it,Ot){for(var Je=new Map,Bt=Ot;Bt!==null;)Bt.key!==null?Je.set(Bt.key,Bt):Je.set(Bt.index,Bt),Bt=Bt.sibling;return Je}function R(it,Ot,Je){var Bt=wo(it,Ot,Je);return Bt.index=0,Bt.sibling=null,Bt}function j(it,Ot,Je){if(it.index=Je,!a)return Ot;var Bt=it.alternate;if(Bt!==null){var Mn=Bt.index;return Mnqr?(_u=ar,ar=null):_u=ar.sibling;var _0=Nt(it,ar,Je[qr],Bt);if(_0===null){ar===null&&(ar=_u);break}a&&ar&&_0.alternate===null&&c(it,ar),ou=j(_0,ou,qr),qu===null?oi=_0:qu.sibling=_0,qu=_0,ar=_u}if(qr===Je.length)return _(it,ar),oi;if(ar===null){for(;qrH0?(Cs=_u,_u=null):Cs=_u.sibling;var pl=Nt(it,_u,Hu.value,Bt);if(pl===null){_u===null&&(_u=Cs);break}a&&_u&&pl.alternate===null&&c(it,_u),_0=j(pl,_0,H0),qr===null?ou=pl:qr.sibling=pl,qr=pl,_u=Cs}if(Hu.done)return _(it,_u),ou;if(_u===null){for(;!Hu.done;H0++,Hu=ar.next()){var Ja=pt(it,Hu.value,Bt);Ja!==null&&(_0=j(Ja,_0,H0),qr===null?ou=Ja:qr.sibling=Ja,qr=Ja)}return ou}for(var jo=T(it,_u);!Hu.done;H0++,Hu=ar.next()){var xs=Vt(jo,it,H0,Hu.value,Bt);xs!==null&&(a&&xs.alternate!==null&&jo.delete(xs.key===null?H0:xs.key),_0=j(xs,_0,H0),qr===null?ou=xs:qr.sibling=xs,qr=xs)}return a&&jo.forEach(function(X2){return c(it,X2)}),ou}function $r(it,Ot,Je,Bt){if(Ot!==null&&Ot.tag===ne){_(it,Ot.sibling);var Mn=R(Ot,Je,Bt);return Mn.return=it,Mn}_(it,Ot);var pn=Cy(Je,it.mode,Bt);return pn.return=it,pn}function wi(it,Ot,Je,Bt){for(var Mn=Je.key,pn=Ot;pn!==null;){if(pn.key===Mn)if(pn.tag===m?Je.type===ue:pn.elementType===Je.type||jc(pn,Je)){_(it,pn.sibling);var Pi=R(pn,Je.type===ue?Je.props.children:Je.props,Bt);return Pi.ref=fc(it,pn,Je),Pi.return=it,Pi._debugSource=Je._source,Pi._debugOwner=Je._owner,Pi}else{_(it,pn);break}else c(it,pn);pn=pn.sibling}if(Je.type===ue){var oi=Qa(Je.props.children,it.mode,Bt,Je.key);return oi.return=it,oi}else{var qu=Ty(Je,it.mode,Bt);return qu.ref=fc(it,Ot,Je),qu.return=it,qu}}function N0(it,Ot,Je,Bt){for(var Mn=Je.key,pn=Ot;pn!==null;){if(pn.key===Mn)if(pn.tag===q&&pn.stateNode.containerInfo===Je.containerInfo&&pn.stateNode.implementation===Je.implementation){_(it,pn.sibling);var Pi=R(pn,Je.children||[],Bt);return Pi.return=it,Pi}else{_(it,pn);break}else c(it,pn);pn=pn.sibling}var oi=xy(Je,it.mode,Bt);return oi.return=it,oi}function Vi(it,Ot,Je,Bt){var Mn=typeof Je=="object"&&Je!==null&&Je.type===ue&&Je.key===null;Mn&&(Je=Je.props.children);var pn=typeof Je=="object"&&Je!==null;if(pn)switch(Je.$$typeof){case ae:return V(wi(it,Ot,Je,Bt));case Ce:return V(N0(it,Ot,Je,Bt))}if(typeof Je=="string"||typeof Je=="number")return V($r(it,Ot,""+Je,Bt));if(Kc(Je))return vn(it,Ot,Je,Bt);if(ur(Je))return xr(it,Ot,Je,Bt);if(pn&&cc(it,Je),typeof Je=="function"&&f2(),typeof Je=="undefined"&&!Mn)switch(it.tag){case N:{var Pi=it.stateNode;if(Pi.render._isMockFunction)break}case L:{var oi=it.type;throw Error((oi.displayName||oi.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}}return _(it,Ot)}return Vi}var gf=yh(!0),Xc=yh(!1);function gh(a,c){if(!(a===null||c.child===a.child))throw Error("Resuming work not yet implemented.");if(c.child!==null){var _=c.child,T=wo(_,_.pendingProps,_.expirationTime);for(c.child=T,T.return=c;_.sibling!==null;)_=_.sibling,T=T.sibling=wo(_,_.pendingProps,_.expirationTime),T.return=c;T.sibling=null}}function vm(a,c){for(var _=a.child;_!==null;)Rv(_,c),_=_.sibling}var js={},fa=Gu(js),Ji=Gu(js),O0=Gu(js);function t0(a){if(a===js)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return a}function Jl(){var a=t0(O0.current);return a}function za(a,c){Vr(O0,c,a),Vr(Ji,a,a),Vr(fa,js,a);var _=Et(c);Kr(fa,a),Vr(fa,_,a)}function no(a){Kr(fa,a),Kr(Ji,a),Kr(O0,a)}function ul(){var a=t0(fa.current);return a}function dc(a){var c=t0(O0.current),_=t0(fa.current),T=Pt(_,a.type,c);_!==T&&(Vr(Ji,a,a),Vr(fa,T,a))}function Od(a){Ji.current===a&&(Kr(fa,a),Kr(Ji,a))}var _h=0,_f=1,Ef=1,Qc=2,xl=Gu(_h);function Jc(a,c){return(a&c)!=0}function ca(a){return a&_f}function c2(a,c){return a&_f|c}function d2(a,c){return a|c}function Or(a,c){Vr(xl,c,a)}function da(a){Kr(xl,a)}function kd(a,c){var _=a.memoizedState;if(_!==null)return _.dehydrated!==null;var T=a.memoizedProps;return T.fallback===void 0?!1:T.unstable_avoidThisFallback!==!0?!0:!c}function Zc(a){for(var c=a;c!==null;){if(c.tag===pe){var _=c.memoizedState;if(_!==null){var T=_.dehydrated;if(T===null||Ls(T)||h0(T))return c}}else if(c.tag===wt&&c.memoizedProps.revealOrder!==void 0){var R=(c.effectTag&Hr)!==_i;if(R)return c}else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===a)return null;for(;c.sibling===null;){if(c.return===null||c.return===a)return null;c=c.return}c.sibling.return=c.return,c=c.sibling}return null}var p2={},vi=Array.isArray;function Md(a,c,_,T){return{fiber:T,props:c,responder:a,rootEventTypes:null,state:_}}function mm(a,c,_,T,R){var j=p2,V=a.getInitialState;V!==null&&(j=V(c));var te=Md(a,c,j,_);if(!R)for(var oe=_;oe!==null;){var Ie=oe.tag;if(Ie===W){R=oe.stateNode;break}else if(Ie===U){R=oe.stateNode.containerInfo;break}oe=oe.return}Ne(a,te,c,j,R),T.set(a,te)}function h2(a,c,_,T,R){var j,V;if(a&&(j=a.responder,V=a.props),!(j&&j.$$typeof===Ut))throw Error("An invalid value was used as an event listener. Expect one or many event listeners created via React.unstable_useResponder().");var te=V;if(_.has(j)){Kt(!1,'Duplicate event responder "%s" found in event listeners. Event listeners passed to elements cannot use the same event responder more than once.',j.displayName);return}_.add(j);var oe=T.get(j);oe===void 0?mm(j,te,c,T,R):(oe.props=te,oe.fiber=c)}function dn(a,c,_){var T=new Set,R=c.dependencies;if(a!=null){R===null&&(R=c.dependencies={expirationTime:lt,firstContext:null,responders:new Map});var j=R.responders;if(j===null&&(j=new Map),vi(a))for(var V=0,te=a.length;V0){var j=R.dispatch;if(Es!==null){var V=Es.get(R);if(V!==void 0){Es.delete(R);var te=T.memoizedState,oe=V;do{var Ie=oe.action;te=a(te,Ie),oe=oe.next}while(oe!==null);return ho(te,T.memoizedState)||up(),T.memoizedState=te,T.baseUpdate===R.last&&(T.baseState=te),R.lastRenderedState=te,[te,j]}}return[T.memoizedState,j]}var Ye=R.last,pt=T.baseUpdate,Nt=T.baseState,Vt;if(pt!==null?(Ye!==null&&(Ye.next=null),Vt=pt.next):Vt=Ye!==null?Ye.next:null,Vt!==null){var zt=Nt,vn=null,xr=null,$r=pt,wi=Vt,N0=!1;do{var Vi=wi.expirationTime;if(ViOu&&(Ou=Vi,G2(Ou));else if(vv(Vi,wi.suspenseConfig),wi.eagerReducer===a)zt=wi.eagerState;else{var it=wi.action;zt=a(zt,it)}$r=wi,wi=wi.next}while(wi!==null&&wi!==Vt);N0||(xr=$r,vn=zt),ho(zt,T.memoizedState)||up(),T.memoizedState=zt,T.baseUpdate=xr,T.baseState=vn,R.lastRenderedState=zt}var Ot=R.dispatch;return[T.memoizedState,Ot]}function Rf(a){var c=mc();typeof a=="function"&&(a=a()),c.memoizedState=c.baseState=a;var _=c.queue={last:null,dispatch:null,lastRenderedReducer:Nd,lastRenderedState:a},T=_.dispatch=u1.bind(null,ll,_);return[c.memoizedState,T]}function n1(a){return t1(Nd,a)}function Wa(a,c,_,T){var R={tag:a,create:c,destroy:_,deps:T,next:null};if(Zl===null)Zl=Ha(),Zl.lastEffect=R.next=R;else{var j=Zl.lastEffect;if(j===null)Zl.lastEffect=R.next=R;else{var V=j.next;j.next=R,R.next=V,Zl.lastEffect=R}}return R}function r1(a){var c=mc(),_={current:a};return Object.seal(_),c.memoizedState=_,_}function Ld(a){var c=e1();return c.memoizedState}function g2(a,c,_,T){var R=mc(),j=T===void 0?null:T;Tf|=a,R.memoizedState=Wa(c,_,void 0,j)}function yc(a,c,_,T){var R=e1(),j=T===void 0?null:T,V=void 0;if(Pn!==null){var te=Pn.memoizedState;if(V=te.destroy,j!==null){var oe=te.deps;if(xf(j,oe)){Wa(wf,_,V,j);return}}}Tf|=a,R.memoizedState=Wa(c,_,V,j)}function i1(a,c){return typeof jest!="undefined"&&Av(ll),g2(mr|L0,rr|$c,a,c)}function Rl(a,c){return typeof jest!="undefined"&&Av(ll),yc(mr|L0,rr|$c,a,c)}function pa(a,c){return g2(mr,Sf|ol,a,c)}function wh(a,c){return yc(mr,Sf|ol,a,c)}function Fd(a,c){if(typeof c=="function"){var _=c,T=a();return _(T),function(){_(null)}}else if(c!=null){var R=c;R.hasOwnProperty("current")||Kt(!1,"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(R).join(", ")+"}");var j=a();return R.current=j,function(){R.current=null}}}function bd(a,c,_){typeof c!="function"&&Kt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=_!=null?_.concat([a]):null;return g2(mr,Sf|ol,Fd.bind(null,c,a),T)}function Sh(a,c,_){typeof c!="function"&&Kt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=_!=null?_.concat([a]):null;return yc(mr,Sf|ol,Fd.bind(null,c,a),T)}function _2(a,c){}var Th=_2;function Ol(a,c){var _=mc(),T=c===void 0?null:c;return _.memoizedState=[a,T],a}function es(a,c){var _=e1(),T=c===void 0?null:c,R=_.memoizedState;if(R!==null&&T!==null){var j=R[1];if(xf(T,j))return R[0]}return _.memoizedState=[a,T],a}function Ds(a,c){var _=mc(),T=c===void 0?null:c,R=a();return _.memoizedState=[R,T],R}function zs(a,c){var _=e1(),T=c===void 0?null:c,R=_.memoizedState;if(R!==null&&T!==null){var j=R[1];if(xf(T,j))return R[0]}var V=a();return _.memoizedState=[V,T],V}function Pd(a,c){var _=Rf(a),T=_[0],R=_[1];return i1(function(){t.unstable_next(function(){var j=Bo.suspense;Bo.suspense=c===void 0?null:c;try{R(a)}finally{Bo.suspense=j}})},[a,c]),T}function Ch(a,c){var _=n1(a),T=_[0],R=_[1];return Rl(function(){t.unstable_next(function(){var j=Bo.suspense;Bo.suspense=c===void 0?null:c;try{R(a)}finally{Bo.suspense=j}})},[a,c]),T}function Id(a){var c=Rf(!1),_=c[0],T=c[1],R=Ol(function(j){T(!0),t.unstable_next(function(){var V=Bo.suspense;Bo.suspense=a===void 0?null:a;try{T(!1),j()}finally{Bo.suspense=V}})},[a,_]);return[R,_]}function Bd(a){var c=n1(!1),_=c[0],T=c[1],R=es(function(j){T(!0),t.unstable_next(function(){var V=Bo.suspense;Bo.suspense=a===void 0?null:a;try{T(!1),j()}finally{Bo.suspense=V}})},[a,_]);return[R,_]}function u1(a,c,_){if(!(vc=0){var _=l1()-s1;a.actualDuration+=_,c&&(a.selfBaseDuration=_),s1=-1}}var Ml=null,Ga=null,ha=!1;function qd(){ha&&Kt(!1,"We should not be hydrating here. This is a bug in React. Please file a bug.")}function Hd(a){if(!_e)return!1;var c=a.stateNode.containerInfo;return Ga=B(c),Ml=a,ha=!0,!0}function Em(a,c){return _e?(Ga=Ni(c),Gd(a),ha=!0,!0):!1}function Wd(a,c){switch(a.tag){case U:ie(a.stateNode.containerInfo,c);break;case W:qe(a.type,a.memoizedProps,a.stateNode,c);break}var _=eE();_.stateNode=c,_.return=a,_.effectTag=W0,a.lastEffect!==null?(a.lastEffect.nextEffect=_,a.lastEffect=_):a.firstEffect=a.lastEffect=_}function Mh(a,c){switch(c.effectTag=c.effectTag&~tu|ai,a.tag){case U:{var _=a.stateNode.containerInfo;switch(c.tag){case W:var T=c.type,R=c.pendingProps;tt(_,T,R);break;case ne:var j=c.pendingProps;Tt(_,j);break;case pe:kt(_);break}break}case W:{var V=a.type,te=a.memoizedProps,oe=a.stateNode;switch(c.tag){case W:var Ie=c.type,Ye=c.pendingProps;bt(V,te,oe,Ie,Ye);break;case ne:var pt=c.pendingProps;on(V,te,oe,pt);break;case pe:tn(V,te,oe);break}break}default:return}}function Nh(a,c){switch(a.tag){case W:{var _=a.type,T=a.pendingProps,R=lf(c,_,T);return R!==null?(a.stateNode=R,!0):!1}case ne:{var j=a.pendingProps,V=Ns(c,j);return V!==null?(a.stateNode=V,!0):!1}case pe:{if(Di){var te=Ma(c);if(te!==null){var oe={dehydrated:te,retryTime:hi};a.memoizedState=oe;var Ie=tE(te);return Ie.return=a,a.child=Ie,!0}}return!1}default:return!1}}function Vd(a){if(!!ha){var c=Ga;if(!c){Mh(Ml,a),ha=!1,Ml=a;return}var _=c;if(!Nh(a,c)){if(c=Ni(_),!c||!Nh(a,c)){Mh(Ml,a),ha=!1,Ml=a;return}Wd(Ml,_)}Ml=a,Ga=B(c)}}function Dm(a,c,_){if(!_e)throw Error("Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var T=a.stateNode,R=z(T,a.type,a.memoizedProps,c,_,a);return a.updateQueue=R,R!==null}function wm(a){if(!_e)throw Error("Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.stateNode,_=a.memoizedProps,T=G(c,_,a);if(T){var R=Ml;if(R!==null)switch(R.tag){case U:{var j=R.stateNode.containerInfo;Xe(j,c,_);break}case W:{var V=R.type,te=R.memoizedProps,oe=R.stateNode;ht(V,te,oe,c,_);break}}}return T}function Lh(a){if(!_e)throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.memoizedState,_=c!==null?c.dehydrated:null;if(!_)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");$(_,a)}function Sm(a){if(!_e)throw Error("Expected skipPastDehydratedSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.memoizedState,_=c!==null?c.dehydrated:null;if(!_)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return De(_)}function Gd(a){for(var c=a.return;c!==null&&c.tag!==W&&c.tag!==U&&c.tag!==pe;)c=c.return;Ml=c}function f1(a){if(!_e||a!==Ml)return!1;if(!ha)return Gd(a),ha=!0,!1;var c=a.type;if(a.tag!==W||c!=="head"&&c!=="body"&&!Ti(c,a.memoizedProps))for(var _=Ga;_;)Wd(a,_),_=Ni(_);return Gd(a),a.tag===pe?Ga=Sm(a):Ga=Ml?Ni(a.stateNode):null,!0}function c1(){!_e||(Ml=null,Ga=null,ha=!1)}var d1=at.ReactCurrentOwner,va=!1,Yd,qs,Hs,Ws,Kd,ma,p1,E2,gc,Xd;Yd={},qs={},Hs={},Ws={},Kd={},ma=!1,p1=!1,E2={},gc={},Xd={};function _o(a,c,_,T){a===null?c.child=Xc(c,null,_,T):c.child=gf(c,a.child,_,T)}function Fh(a,c,_,T){c.child=gf(c,a.child,null,T),c.child=gf(c,null,_,T)}function bh(a,c,_,T,R){if(c.type!==c.elementType){var j=_.propTypes;j&&E(j,T,"prop",qt(_),Rr)}var V=_.render,te=c.ref,oe;return e0(c,R),d1.current=c,Ze("render"),oe=Af(a,c,V,T,te,R),Ei&&c.mode&cr&&c.memoizedState!==null&&(oe=Af(a,c,V,T,te,R)),Ze(null),a!==null&&!va?(v2(a,c,R),ya(a,c,R)):(c.effectTag|=eu,_o(a,c,oe,R),c.child)}function Ph(a,c,_,T,R,j){if(a===null){var V=_.type;if(i0(V)&&_.compare===null&&_.defaultProps===void 0){var te=V;return te=Zu(V),c.tag=le,c.type=te,Zd(c,V),Ih(a,c,te,T,R,j)}{var oe=V.propTypes;oe&&E(oe,T,"prop",qt(V),Rr)}var Ie=Sy(_.type,null,T,null,c.mode,j);return Ie.ref=c.ref,Ie.return=c,c.child=Ie,Ie}{var Ye=_.type,pt=Ye.propTypes;pt&&E(pt,T,"prop",qt(Ye),Rr)}var Nt=a.child;if(R component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",oe,oe),Yd[oe]=!0)}c.mode&cr&&wl.recordLegacyContextWarning(c,null),d1.current=c,te=Af(null,c,_,R,j,T)}if(c.effectTag|=eu,typeof te=="object"&&te!==null&&typeof te.render=="function"&&te.$$typeof===void 0){{var Ie=qt(_)||"Unknown";qs[Ie]||(Ke(!1,"The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",Ie,Ie,Ie),qs[Ie]=!0)}c.tag=N,m2();var Ye=!1;zi(_)?(Ye=!0,Fi(c)):Ye=!1,c.memoizedState=te.state!==null&&te.state!==void 0?te.state:null;var pt=_.getDerivedStateFromProps;return typeof pt=="function"&&yf(c,_,pt,R),il(c,te),ac(c,_,R,T),Jd(null,c,_,!0,Ye,T)}else return c.tag=L,ni&&_.contextTypes&&Ke(!1,"%s uses the legacy contextTypes API which is no longer supported. Use React.createContext() with React.useContext() instead.",qt(_)||"Unknown"),Ei&&c.mode&cr&&c.memoizedState!==null&&(te=Af(null,c,_,R,j,T)),_o(null,c,te,T),Zd(c,_),c.child}function Zd(a,c){if(c&&c.childContextTypes&&Ke(!1,"%s(...): childContextTypes cannot be defined on a function component.",c.displayName||c.name||"Component"),a.ref!==null){var _="",T=v0();T&&(_+=` + +Check the render method of \``+T+"`.");var R=T||a._debugID||"",j=a._debugSource;j&&(R=j.fileName+":"+j.lineNumber),Kd[R]||(Kd[R]=!0,Kt(!1,"Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",_))}if(Wl&&c.defaultProps!==void 0){var V=qt(c)||"Unknown";Xd[V]||(Ke(!1,"%s: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.",V),Xd[V]=!0)}if(typeof c.getDerivedStateFromProps=="function"){var te=qt(c)||"Unknown";Ws[te]||(Ke(!1,"%s: Function components do not support getDerivedStateFromProps.",te),Ws[te]=!0)}if(typeof c.contextType=="object"&&c.contextType!==null){var oe=qt(c)||"Unknown";Hs[oe]||(Ke(!1,"%s: Function components do not support contextType.",oe),Hs[oe]=!0)}}var w2={dehydrated:null,retryTime:lt};function $d(a,c,_){return Jc(a,Qc)&&(c===null||c.memoizedState!==null)}function qh(a,c,_){var T=c.mode,R=c.pendingProps;a_(c)&&(c.effectTag|=Hr);var j=xl.current,V=!1,te=(c.effectTag&Hr)!==_i;if(te||$d(j,a,c)?(V=!0,c.effectTag&=~Hr):(a===null||a.memoizedState!==null)&&R.fallback!==void 0&&R.unstable_avoidThisFallback!==!0&&(j=d2(j,Ef)),j=ca(j),Or(c,j),"maxDuration"in R&&(p1||(p1=!0,Kt(!1,"maxDuration has been removed from React. Remove the maxDuration prop."))),a===null){if(R.fallback!==void 0&&(Vd(c),Di)){var oe=c.memoizedState;if(oe!==null){var Ie=oe.dehydrated;if(Ie!==null)return Hh(c,Ie,_)}}if(V){var Ye=R.fallback,pt=Qa(null,T,lt,null);if(pt.return=c,(c.mode&Y)===Sr){var Nt=c.memoizedState,Vt=Nt!==null?c.child.child:c.child;pt.child=Vt;for(var zt=Vt;zt!==null;)zt.return=pt,zt=zt.sibling}var vn=Qa(Ye,T,_,null);return vn.return=c,pt.sibling=vn,c.memoizedState=w2,c.child=pt,vn}else{var xr=R.children;return c.memoizedState=null,c.child=Xc(c,null,xr,_)}}else{var $r=a.memoizedState;if($r!==null){if(Di){var wi=$r.dehydrated;if(wi!==null)if(te){if(c.memoizedState!==null)return c.child=a.child,c.effectTag|=Hr,null;var N0=R.fallback,Vi=Qa(null,T,lt,null);if(Vi.return=c,Vi.child=null,(c.mode&Y)===Sr)for(var it=Vi.child=c.child;it!==null;)it.return=Vi,it=it.sibling;else gf(c,a.child,null,_);if(Zt&&c.mode&Jr){for(var Ot=0,Je=Vi.child;Je!==null;)Ot+=Je.treeBaseDuration,Je=Je.sibling;Vi.treeBaseDuration=Ot}var Bt=Qa(N0,T,_,null);return Bt.return=c,Vi.sibling=Bt,Bt.effectTag|=ai,Vi.childExpirationTime=lt,c.memoizedState=w2,c.child=Vi,Bt}else return Wh(a,c,wi,$r,_)}var Mn=a.child,pn=Mn.sibling;if(V){var Pi=R.fallback,oi=wo(Mn,Mn.pendingProps,lt);if(oi.return=c,(c.mode&Y)===Sr){var qu=c.memoizedState,ar=qu!==null?c.child.child:c.child;if(ar!==Mn.child){oi.child=ar;for(var ou=ar;ou!==null;)ou.return=oi,ou=ou.sibling}}if(Zt&&c.mode&Jr){for(var qr=0,_u=oi.child;_u!==null;)qr+=_u.treeBaseDuration,_u=_u.sibling;oi.treeBaseDuration=qr}var _0=wo(pn,Pi,pn.expirationTime);return _0.return=c,oi.sibling=_0,oi.childExpirationTime=lt,c.memoizedState=w2,c.child=oi,_0}else{var H0=R.children,Cs=Mn.child,Hu=gf(c,Cs,H0,_);return c.memoizedState=null,c.child=Hu}}else{var pl=a.child;if(V){var Ja=R.fallback,jo=Qa(null,T,lt,null);if(jo.return=c,jo.child=pl,pl!==null&&(pl.return=jo),(c.mode&Y)===Sr){var xs=c.memoizedState,X2=xs!==null?c.child.child:c.child;jo.child=X2;for(var Uf=X2;Uf!==null;)Uf.return=jo,Uf=Uf.sibling}if(Zt&&c.mode&Jr){for(var Rc=0,Pl=jo.child;Pl!==null;)Rc+=Pl.treeBaseDuration,Pl=Pl.sibling;jo.treeBaseDuration=Rc}var zo=Qa(Ja,T,_,null);return zo.return=c,jo.sibling=zo,zo.effectTag|=ai,jo.childExpirationTime=lt,c.memoizedState=w2,c.child=jo,zo}else{c.memoizedState=null;var O1=R.children;return c.child=gf(c,pl,O1,_)}}}}function ep(a,c,_){c.memoizedState=null;var T=c.pendingProps,R=T.children;return _o(a,c,R,_),c.child}function Hh(a,c,_){if((a.mode&Y)===Sr)Kt(!1,"Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOM.createBlockingRoot(container, { hydrate: true }).render(element) or remove the Suspense components from the server rendered components."),a.expirationTime=bn;else if(h0(c)){var T=Fl(),R=ms(T);Ln&&x(R),a.expirationTime=R}else a.expirationTime=hi,Ln&&x(hi);return null}function Wh(a,c,_,T,R){if(qd(),(c.mode&Y)===Sr||h0(_))return ep(a,c,R);var j=a.childExpirationTime>=R;if(va||j){if(R. Use lowercase "%s" instead.',a,a.toLowerCase());break}case"forward":case"backward":{Kt(!1,'"%s" is not a valid value for revealOrder on . React uses the -s suffix in the spelling. Use "%ss" instead.',a,a.toLowerCase());break}default:Kt(!1,'"%s" is not a supported revealOrder on . Did you mean "together", "forwards" or "backwards"?',a);break}else Kt(!1,'%s is not a supported value for revealOrder on . Did you mean "together", "forwards" or "backwards"?',a)}function Vh(a,c){a!==void 0&&!gc[a]&&(a!=="collapsed"&&a!=="hidden"?(gc[a]=!0,Kt(!1,'"%s" is not a supported value for tail on . Did you mean "collapsed" or "hidden"?',a)):c!=="forwards"&&c!=="backwards"&&(gc[a]=!0,Kt(!1,' is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',a)))}function v1(a,c){{var _=Array.isArray(a),T=!_&&typeof ur(a)=="function";if(_||T){var R=_?"array":"iterable";return Kt(!1,"A nested %s was passed to row #%s in . Wrap it in an additional SuspenseList to configure its revealOrder: ... {%s} ... ",R,c,R),!1}}return!0}function Mm(a,c){if((c==="forwards"||c==="backwards")&&a!==void 0&&a!==null&&a!==!1)if(Array.isArray(a)){for(var _=0;_. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',c)}}function np(a,c,_,T,R,j){var V=a.memoizedState;V===null?a.memoizedState={isBackwards:c,rendering:null,last:T,tail:_,tailExpiration:0,tailMode:R,lastEffect:j}:(V.isBackwards=c,V.rendering=null,V.last=T,V.tail=_,V.tailExpiration=0,V.tailMode=R,V.lastEffect=j)}function rp(a,c,_){var T=c.pendingProps,R=T.revealOrder,j=T.tail,V=T.children;km(R),Vh(j,R),Mm(V,R),_o(a,c,V,_);var te=xl.current,oe=Jc(te,Qc);if(oe)te=c2(te,Qc),c.effectTag|=Hr;else{var Ie=a!==null&&(a.effectTag&Hr)!==_i;Ie&&Rm(c,c.child,_),te=ca(te)}if(Or(c,te),(c.mode&Y)===Sr)c.memoizedState=null;else switch(R){case"forwards":{var Ye=Om(c.child),pt;Ye===null?(pt=c.child,c.child=null):(pt=Ye.sibling,Ye.sibling=null),np(c,!1,pt,Ye,j,c.lastEffect);break}case"backwards":{var Nt=null,Vt=c.child;for(c.child=null;Vt!==null;){var zt=Vt.alternate;if(zt!==null&&Zc(zt)===null){c.child=Vt;break}var vn=Vt.sibling;Vt.sibling=Nt,Nt=Vt,Vt=vn}np(c,!0,Nt,null,j,c.lastEffect);break}case"together":{np(c,!1,null,null,void 0,c.lastEffect);break}default:c.memoizedState=null}return c.child}function Nm(a,c,_){za(c,c.stateNode.containerInfo);var T=c.pendingProps;return a===null?c.child=gf(c,null,T,_):_o(a,c,T,_),c.child}function Lm(a,c,_){var T=c.type,R=T._context,j=c.pendingProps,V=c.memoizedProps,te=j.value;{var oe=c.type.propTypes;oe&&E(oe,j,"prop","Context.Provider",Rr)}if(Er(c,te),V!==null){var Ie=V.value,Ye=iu(R,te,Ie);if(Ye===0){if(V.children===j.children&&!na())return ya(a,c,_)}else Tl(c,R,Ye,_)}var pt=j.children;return _o(a,c,pt,_),c.child}var Gh=!1;function Fm(a,c,_){var T=c.type;T._context===void 0?T!==T.Consumer&&(Gh||(Gh=!0,Kt(!1,"Rendering directly is not supported and will be removed in a future major release. Did you mean to render instead?"))):T=T._context;var R=c.pendingProps,j=R.children;typeof j!="function"&&Ke(!1,"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."),e0(c,_);var V=He(T,R.unstable_observedBits),te;return d1.current=c,Ze("render"),te=j(V),Ze(null),c.effectTag|=eu,_o(a,c,te,_),c.child}function bm(a,c,_){var T=c.type.impl;if(T.reconcileChildren===!1)return null;var R=c.pendingProps,j=R.children;return _o(a,c,j,_),c.child}function ip(a,c,_){var T=c.pendingProps,R=T.children;return _o(a,c,R,_),c.child}function up(){va=!0}function ya(a,c,_){Ki(c),a!==null&&(c.dependencies=a.dependencies),Zt&&kh(c);var T=c.expirationTime;T!==lt&&G2(T);var R=c.childExpirationTime;return R<_?null:(gh(a,c),c.child)}function m1(a,c,_){{var T=c.return;if(T===null)throw new Error("Cannot swap the root fiber.");if(a.alternate=null,c.alternate=null,_.index=c.index,_.sibling=c.sibling,_.return=c.return,_.ref=c.ref,c===T.child)T.child=_;else{var R=T.child;if(R===null)throw new Error("Expected parent to have a child.");for(;R.sibling!==c;)if(R=R.sibling,R===null)throw new Error("Expected to find the previous sibling.");R.sibling=_}var j=T.lastEffect;return j!==null?(j.nextEffect=a,T.lastEffect=a):T.firstEffect=T.lastEffect=a,a.nextEffect=null,a.effectTag=W0,_.effectTag|=ai,_}}function op(a,c,_){var T=c.expirationTime;if(c._debugNeedsRemount&&a!==null)return m1(a,c,Sy(c.type,c.key,c.pendingProps,c._debugOwner||null,c.mode,c.expirationTime));if(a!==null){var R=a.memoizedProps,j=c.pendingProps;if(R!==j||na()||c.type!==a.type)va=!0;else if(T<_){switch(va=!1,c.tag){case U:zh(c),c1();break;case W:if(dc(c),c.mode&Qr&&_!==hi&&d0(c.type,j))return Ln&&x(hi),c.expirationTime=c.childExpirationTime=hi,null;break;case N:{var V=c.type;zi(V)&&Fi(c);break}case q:za(c,c.stateNode.containerInfo);break;case he:{var te=c.memoizedProps.value;Er(c,te);break}case ze:if(Zt){var oe=c.childExpirationTime>=_;oe&&(c.effectTag|=mr)}break;case pe:{var Ie=c.memoizedState;if(Ie!==null){if(Di&&Ie.dehydrated!==null){Or(c,ca(xl.current)),c.effectTag|=Hr;break}var Ye=c.child,pt=Ye.childExpirationTime;if(pt!==lt&&pt>=_)return qh(a,c,_);Or(c,ca(xl.current));var Nt=ya(a,c,_);return Nt!==null?Nt.sibling:null}else Or(c,ca(xl.current));break}case wt:{var Vt=(a.effectTag&Hr)!==_i,zt=c.childExpirationTime>=_;if(Vt){if(zt)return rp(a,c,_);c.effectTag|=Hr}var vn=c.memoizedState;if(vn!==null&&(vn.rendering=null,vn.tail=null),Or(c,xl.current),zt)break;return null}}return ya(a,c,_)}else va=!1}else va=!1;switch(c.expirationTime=lt,c.tag){case C:return Am(a,c,c.type,_);case Ue:{var xr=c.elementType;return kf(a,c,xr,T,_)}case L:{var $r=c.type,wi=c.pendingProps,N0=c.elementType===$r?wi:bi($r,wi);return Qd(a,c,$r,N0,_)}case N:{var Vi=c.type,it=c.pendingProps,Ot=c.elementType===Vi?it:bi(Vi,it);return jh(a,c,Vi,Ot,_)}case U:return Cm(a,c,_);case W:return xm(a,c,_);case ne:return Of(a,c);case pe:return qh(a,c,_);case q:return Nm(a,c,_);case ge:{var Je=c.type,Bt=c.pendingProps,Mn=c.elementType===Je?Bt:bi(Je,Bt);return bh(a,c,Je,Mn,_)}case m:return Tm(a,c,_);case we:return Bh(a,c,_);case ze:return Uh(a,c,_);case he:return Lm(a,c,_);case Se:return Fm(a,c,_);case Oe:{var pn=c.type,Pi=c.pendingProps,oi=bi(pn,Pi);if(c.type!==c.elementType){var qu=pn.propTypes;qu&&E(qu,oi,"prop",qt(pn),Rr)}return oi=bi(pn.type,oi),Ph(a,c,pn,oi,T,_)}case le:return Ih(a,c,c.type,c.pendingProps,T,_);case Ge:{var ar=c.type,ou=c.pendingProps,qr=c.elementType===ar?ou:bi(ar,ou);return D2(a,c,ar,qr,_)}case wt:return rp(a,c,_);case xt:{if(Ht)return bm(a,c,_);break}case $e:{if(Du)return ip(a,c,_);break}}throw Error("Unknown unit of work tag ("+c.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function Yh(a,c,_,T){return{currentFiber:a,impl:_,instance:null,prevProps:null,props:c,state:T}}function S2(a){return a.tag===pe&&a.memoizedState!==null}function y1(a){return a.child.sibling.child}var Kh={};function lp(a,c,_){if(Du){if(a.tag===W){var T=a.type,R=a.memoizedProps,j=a.stateNode,V=Ro(j);V!==null&&c(T,R||Kh,V)===!0&&_.push(V)}var te=a.child;S2(a)&&(te=y1(a)),te!==null&&sp(te,c,_)}}function Xh(a,c){if(Du){if(a.tag===W){var _=a.type,T=a.memoizedProps,R=a.stateNode,j=Ro(R);if(j!==null&&c(_,T,j)===!0)return j}var V=a.child;if(S2(a)&&(V=y1(a)),V!==null)return Qh(V,c)}return null}function sp(a,c,_){for(var T=a;T!==null;)lp(T,c,_),T=T.sibling}function Qh(a,c){for(var _=a;_!==null;){var T=Xh(_,c);if(T!==null)return T;_=_.sibling}return null}function Jh(a,c,_){if(T2(a,c))_.push(a.stateNode.methods);else{var T=a.child;S2(a)&&(T=y1(a)),T!==null&&ap(T,c,_)}}function ap(a,c,_){for(var T=a;T!==null;)Jh(T,c,_),T=T.sibling}function T2(a,c){return a.tag===$e&&a.type===c&&a.stateNode!==null}function C2(a,c){return{getChildren:function(){var _=c.fiber,T=_.child,R=[];return T!==null&&ap(T,a,R),R.length===0?null:R},getChildrenFromRoot:function(){for(var _=c.fiber,T=_;T!==null;){var R=T.return;if(R===null||(T=R,T.tag===$e&&T.type===a))break}var j=[];return ap(T.child,a,j),j.length===0?null:j},getParent:function(){for(var _=c.fiber.return;_!==null;){if(_.tag===$e&&_.type===a)return _.stateNode.methods;_=_.return}return null},getProps:function(){var _=c.fiber;return _.memoizedProps},queryAllNodes:function(_){var T=c.fiber,R=T.child,j=[];return R!==null&&sp(R,_,j),j.length===0?null:j},queryFirstNode:function(_){var T=c.fiber,R=T.child;return R!==null?Qh(R,_):null},containsNode:function(_){for(var T=or(_);T!==null;){if(T.tag===$e&&T.type===a&&T.stateNode===c)return!0;T=T.return}return!1}}}function z0(a){a.effectTag|=mr}function x2(a){a.effectTag|=To}var ga,Ya,A2,R2;if(P0)ga=function(a,c,_,T){for(var R=c.child;R!==null;){if(R.tag===W||R.tag===ne)Wr(a,R.stateNode);else if(Ht&&R.tag===xt)Wr(a,R.stateNode.instance);else if(R.tag!==q){if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}},Ya=function(a){},A2=function(a,c,_,T,R){var j=a.memoizedProps;if(j!==T){var V=c.stateNode,te=ul(),oe=c0(V,_,j,T,R,te);c.updateQueue=oe,oe&&z0(c)}},R2=function(a,c,_,T){_!==T&&z0(c)};else if(X){ga=function(a,c,_,T){for(var R=c.child;R!==null;){e:if(R.tag===W){var j=R.stateNode;if(_&&T){var V=R.memoizedProps,te=R.type;j=Gr(j,te,V,R)}Wr(a,j)}else if(R.tag===ne){var oe=R.stateNode;if(_&&T){var Ie=R.memoizedProps;oe=Yl(oe,Ie,R)}Wr(a,oe)}else if(Ht&&R.tag===xt){var Ye=R.stateNode.instance;if(_&&T){var pt=R.memoizedProps,Nt=R.type;Ye=Gr(Ye,Nt,pt,R)}Wr(a,Ye)}else if(R.tag!==q){if(R.tag===pe){if((R.effectTag&mr)!==_i){var Vt=R.memoizedState!==null;if(Vt){var zt=R.child;if(zt!==null){zt.child!==null&&(zt.child.return=zt,ga(a,zt,!0,Vt));var vn=zt.sibling;if(vn!==null){vn.return=R,R=vn;continue}}}}if(R.child!==null){R.child.return=R,R=R.child;continue}}else if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R=R,R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}};var fp=function(a,c,_,T){for(var R=c.child;R!==null;){e:if(R.tag===W){var j=R.stateNode;if(_&&T){var V=R.memoizedProps,te=R.type;j=Gr(j,te,V,R)}Gn(a,j)}else if(R.tag===ne){var oe=R.stateNode;if(_&&T){var Ie=R.memoizedProps;oe=Yl(oe,Ie,R)}Gn(a,oe)}else if(Ht&&R.tag===xt){var Ye=R.stateNode.instance;if(_&&T){var pt=R.memoizedProps,Nt=R.type;Ye=Gr(Ye,Nt,pt,R)}Gn(a,Ye)}else if(R.tag!==q){if(R.tag===pe){if((R.effectTag&mr)!==_i){var Vt=R.memoizedState!==null;if(Vt){var zt=R.child;if(zt!==null){zt.child!==null&&(zt.child.return=zt,fp(a,zt,!0,Vt));var vn=zt.sibling;if(vn!==null){vn.return=R,R=vn;continue}}}}if(R.child!==null){R.child.return=R,R=R.child;continue}}else if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R=R,R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}};Ya=function(a){var c=a.stateNode,_=a.firstEffect===null;if(!_){var T=c.containerInfo,R=w0(T);fp(R,a,!1,!1),c.pendingChildren=R,z0(a),ic(T,R)}},A2=function(a,c,_,T,R){var j=a.stateNode,V=a.memoizedProps,te=c.firstEffect===null;if(te&&V===T){c.stateNode=j;return}var oe=c.stateNode,Ie=ul(),Ye=null;if(V!==T&&(Ye=c0(oe,_,V,T,R,Ie)),te&&Ye===null){c.stateNode=j;return}var pt=cs(j,Ye,_,V,T,c,te,oe);wu(pt,_,T,R,Ie)&&z0(c),c.stateNode=pt,te?z0(c):ga(pt,c,!1,!1)},R2=function(a,c,_,T){if(_!==T){var R=Jl(),j=ul();c.stateNode=as(T,R,j,c),z0(c)}}}else Ya=function(a){},A2=function(a,c,_,T,R){},R2=function(a,c,_,T){};function O2(a,c){switch(a.tailMode){case"hidden":{for(var _=a.tail,T=null;_!==null;)_.alternate!==null&&(T=_),_=_.sibling;T===null?a.tail=null:T.sibling=null;break}case"collapsed":{for(var R=a.tail,j=null;R!==null;)R.alternate!==null&&(j=R),R=R.sibling;j===null?!c&&a.tail!==null?a.tail.sibling=null:a.tail=null:j.sibling=null;break}}}function Zh(a,c,_){var T=c.pendingProps;switch(c.tag){case C:break;case Ue:break;case le:case L:break;case N:{var R=c.type;zi(R)&&Is(c);break}case U:{no(c),x0(c);var j=c.stateNode;if(j.pendingContext&&(j.context=j.pendingContext,j.pendingContext=null),a===null||a.child===null){var V=f1(c);V&&z0(c)}Ya(c);break}case W:{Od(c);var te=Jl(),oe=c.type;if(a!==null&&c.stateNode!=null){if(A2(a,c,oe,T,te),ci){var Ie=a.memoizedProps.listeners,Ye=T.listeners;Ie!==Ye&&z0(c)}a.ref!==c.ref&&x2(c)}else{if(!T){if(c.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");break}var pt=ul(),Nt=f1(c);if(Nt){if(Dm(c,te,pt)&&z0(c),ci){var Vt=T.listeners;Vt!=null&&dn(Vt,c,te)}}else{var zt=ji(oe,T,te,pt,c);if(ga(zt,c,!1,!1),c.stateNode=zt,ci){var vn=T.listeners;vn!=null&&dn(vn,c,te)}wu(zt,oe,T,te,pt)&&z0(c)}c.ref!==null&&x2(c)}break}case ne:{var xr=T;if(a&&c.stateNode!=null){var $r=a.memoizedProps;R2(a,c,$r,xr)}else{if(typeof xr!="string"&&c.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");var wi=Jl(),N0=ul(),Vi=f1(c);Vi?wm(c)&&z0(c):c.stateNode=as(xr,wi,N0,c)}break}case ge:break;case pe:{da(c);var it=c.memoizedState;if(Di&&it!==null&&it.dehydrated!==null)if(a===null){var Ot=f1(c);if(!Ot)throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");return Lh(c),Ln&&x(hi),null}else return c1(),(c.effectTag&Hr)===_i&&(c.memoizedState=null),c.effectTag|=mr,null;if((c.effectTag&Hr)!==_i)return c.expirationTime=_,c;var Je=it!==null,Bt=!1;if(a===null)c.memoizedProps.fallback!==void 0&&f1(c);else{var Mn=a.memoizedState;if(Bt=Mn!==null,!Je&&Mn!==null){var pn=a.child.sibling;if(pn!==null){var Pi=c.firstEffect;Pi!==null?(c.firstEffect=pn,pn.nextEffect=Pi):(c.firstEffect=c.lastEffect=pn,pn.nextEffect=null),pn.effectTag=W0}}}if(Je&&!Bt&&(c.mode&Y)!==Sr){var oi=a===null&&c.memoizedProps.unstable_avoidThisFallback!==!0;oi||Jc(xl.current,Ef)?mv():yv()}X&&Je&&(c.effectTag|=mr),P0&&(Je||Bt)&&(c.effectTag|=mr),Ui&&c.updateQueue!==null&&c.memoizedProps.suspenseCallback!=null&&(c.effectTag|=mr);break}case m:break;case we:break;case ze:break;case q:no(c),Ya(c);break;case he:$u(c);break;case Se:break;case Oe:break;case Ge:{var qu=c.type;zi(qu)&&Is(c);break}case wt:{da(c);var ar=c.memoizedState;if(ar===null)break;var ou=(c.effectTag&Hr)!==_i,qr=ar.rendering;if(qr===null)if(ou)O2(ar,!1);else{var _u=gv()&&(a===null||(a.effectTag&Hr)===_i);if(!_u)for(var _0=c.child;_0!==null;){var H0=Zc(_0);if(H0!==null){ou=!0,c.effectTag|=Hr,O2(ar,!1);var Cs=H0.updateQueue;return Cs!==null&&(c.updateQueue=Cs,c.effectTag|=mr),ar.lastEffect===null&&(c.firstEffect=null),c.lastEffect=ar.lastEffect,vm(c,_),Or(c,c2(xl.current,Qc)),c.child}_0=_0.sibling}}else{if(!ou){var Hu=Zc(qr);if(Hu!==null){c.effectTag|=Hr,ou=!0;var pl=Hu.updateQueue;if(pl!==null&&(c.updateQueue=pl,c.effectTag|=mr),O2(ar,!0),ar.tail===null&&ar.tailMode==="hidden"&&!qr.alternate){var Ja=c.lastEffect=ar.lastEffect;return Ja!==null&&(Ja.nextEffect=null),null}}else if(vt()>ar.tailExpiration&&_>hi){c.effectTag|=Hr,ou=!0,O2(ar,!1);var jo=_-1;c.expirationTime=c.childExpirationTime=jo,Ln&&x(jo)}}if(ar.isBackwards)qr.sibling=c.child,c.child=qr;else{var xs=ar.last;xs!==null?xs.sibling=qr:c.child=qr,ar.last=qr}}if(ar.tail!==null){if(ar.tailExpiration===0){var X2=500;ar.tailExpiration=vt()+X2}var Uf=ar.tail;ar.rendering=Uf,ar.tail=Uf.sibling,ar.lastEffect=c.lastEffect,Uf.sibling=null;var Rc=xl.current;return ou?Rc=c2(Rc,Qc):Rc=ca(Rc),Or(c,Rc),Uf}break}case xt:{if(Ht){var Pl=c.type.impl,zo=c.stateNode;if(zo===null){var O1=Pl.getInitialState,m_;O1!==void 0&&(m_=O1(T)),zo=c.stateNode=Yh(c,T,Pl,m_||{});var y_=dt(zo);if(zo.instance=y_,Pl.reconcileChildren===!1)return null;ga(y_,c,!1,!1),Hn(zo)}else{var yE=zo.props;if(zo.prevProps=yE,zo.props=T,zo.currentFiber=c,X){var g_=ea(zo);zo.instance=g_,ga(g_,c,!1,!1)}var gE=Dn(zo);gE&&z0(c)}}break}case $e:{if(Du)if(a===null){var _E=c.type,Ly={fiber:c,methods:null};if(c.stateNode=Ly,Ly.methods=C2(_E,Ly),ci){var __=T.listeners;if(__!=null){var EE=Jl();dn(__,c,EE)}}c.ref!==null&&(x2(c),z0(c))}else{if(ci){var DE=a.memoizedProps.listeners,wE=T.listeners;(DE!==wE||c.ref!==null)&&z0(c)}else c.ref!==null&&z0(c);a.ref!==c.ref&&x2(c)}break}default:throw Error("Unknown unit of work tag ("+c.tag+"). This error is likely caused by a bug in React. Please file an issue.")}return null}function Pm(a,c){switch(a.tag){case N:{var _=a.type;zi(_)&&Is(a);var T=a.effectTag;return T&f0?(a.effectTag=T&~f0|Hr,a):null}case U:{no(a),x0(a);var R=a.effectTag;if((R&Hr)!==_i)throw Error("The root failed to unmount after an error. This is likely a bug in React. Please file an issue.");return a.effectTag=R&~f0|Hr,a}case W:return Od(a),null;case pe:{if(da(a),Di){var j=a.memoizedState;if(j!==null&&j.dehydrated!==null){if(a.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");c1()}}var V=a.effectTag;return V&f0?(a.effectTag=V&~f0|Hr,a):null}case wt:return da(a),null;case q:return no(a),null;case he:return $u(a),null;default:return null}}function $h(a){switch(a.tag){case N:{var c=a.type.childContextTypes;c!=null&&Is(a);break}case U:{no(a),x0(a);break}case W:{Od(a);break}case q:no(a);break;case pe:da(a);break;case wt:da(a);break;case he:$u(a);break;default:break}}function cp(a,c){return{value:a,source:c,stack:_r(c)}}var dp=function(a,c,_,T,R,j,V,te,oe){var Ie=Array.prototype.slice.call(arguments,3);try{c.apply(_,Ie)}catch(Ye){this.onError(Ye)}};if(typeof window!="undefined"&&typeof window.dispatchEvent=="function"&&typeof document!="undefined"&&typeof document.createEvent=="function"){var pp=document.createElement("react"),Im=function(a,c,_,T,R,j,V,te,oe){if(typeof document=="undefined")throw Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");var Ie=document.createEvent("Event"),Ye=!0,pt=window.event,Nt=Object.getOwnPropertyDescriptor(window,"event"),Vt=Array.prototype.slice.call(arguments,3);function zt(){pp.removeEventListener(N0,zt,!1),typeof window.event!="undefined"&&window.hasOwnProperty("event")&&(window.event=pt),c.apply(_,Vt),Ye=!1}var vn,xr=!1,$r=!1;function wi(Vi){if(vn=Vi.error,xr=!0,vn===null&&Vi.colno===0&&Vi.lineno===0&&($r=!0),Vi.defaultPrevented&&vn!=null&&typeof vn=="object")try{vn._suppressLogging=!0}catch(it){}}var N0="react-"+(a||"invokeguardedcallback");window.addEventListener("error",wi),pp.addEventListener(N0,zt,!1),Ie.initEvent(N0,!1,!1),pp.dispatchEvent(Ie),Nt&&Object.defineProperty(window,"event",Nt),Ye&&(xr?$r&&(vn=new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://fb.me/react-crossorigin-error for more information.")):vn=new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`),this.onError(vn)),window.removeEventListener("error",wi)};dp=Im}var Bm=dp,Eo=!1,k2=null,Um={onError:function(a){Eo=!0,k2=a}};function sl(a,c,_,T,R,j,V,te,oe){Eo=!1,k2=null,Bm.apply(Um,arguments)}function Jn(){return Eo}function Vs(){if(Eo){var a=k2;return Eo=!1,k2=null,a}else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")}function al(a){return!0}function n0(a){var c=al(a);if(c!==!1){var _=a.error;{var T=a.componentName,R=a.componentStack,j=a.errorBoundaryName,V=a.errorBoundaryFound,te=a.willRetry;if(_!=null&&_._suppressLogging){if(V&&te)return;console.error(_)}var oe=T?"The above error occurred in the <"+T+"> component:":"The above error occurred in one of your React components:",Ie;V&&j?te?Ie="React will try to recreate this component tree from scratch "+("using the error boundary you provided, "+j+"."):Ie="This error was initially handled by the error boundary "+j+`. +Recreating the tree from scratch failed so React will unmount the tree.`:Ie=`Consider adding an error boundary to your tree to customize error handling behavior. +Visit https://fb.me/react-error-boundaries to learn more about error boundaries.`;var Ye=""+oe+R+` + +`+(""+Ie);console.error(Ye)}}}var ev=null;ev=new Set;var Gs=typeof WeakSet=="function"?WeakSet:Set;function hp(a,c){var _=c.source,T=c.stack;T===null&&_!==null&&(T=_r(_));var R={componentName:_!==null?qt(_.type):null,componentStack:T!==null?T:"",error:c.value,errorBoundary:null,errorBoundaryName:null,errorBoundaryFound:!1,willRetry:!1};a!==null&&a.tag===N&&(R.errorBoundary=a.stateNode,R.errorBoundaryName=qt(a.type),R.errorBoundaryFound=!0,R.willRetry=!0);try{n0(R)}catch(j){setTimeout(function(){throw j})}}var jm=function(a,c){Oi(a,"componentWillUnmount"),c.props=a.memoizedProps,c.state=a.memoizedState,c.componentWillUnmount(),gi()};function tv(a,c){if(sl(null,jm,null,a,c),Jn()){var _=Vs();Pf(a,_)}}function vp(a){var c=a.ref;if(c!==null)if(typeof c=="function"){if(sl(null,c,null,null),Jn()){var _=Vs();Pf(a,_)}}else c.current=null}function zm(a,c){if(sl(null,c,null),Jn()){var _=Vs();Pf(a,_)}}function mp(a,c){switch(c.tag){case L:case ge:case le:{_c(ym,wf,c);return}case N:{if(c.effectTag&Co&&a!==null){var _=a.memoizedProps,T=a.memoizedState;Oi(c,"getSnapshotBeforeUpdate");var R=c.stateNode;c.type===c.elementType&&!ma&&(R.props!==c.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"),R.state!==c.memoizedState&&Kt(!1,"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"));var j=R.getSnapshotBeforeUpdate(c.elementType===c.type?_:bi(c.type,_),T);{var V=ev;j===void 0&&!V.has(c.type)&&(V.add(c.type),Ke(!1,"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",qt(c.type)))}R.__reactInternalSnapshotBeforeUpdate=j,gi()}return}case U:case W:case ne:case q:case Ge:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function _c(a,c,_){var T=_.updateQueue,R=T!==null?T.lastEffect:null;if(R!==null){var j=R.next,V=j;do{if((V.tag&a)!==wf){var te=V.destroy;V.destroy=void 0,te!==void 0&&te()}if((V.tag&c)!==wf){var oe=V.create;V.destroy=oe();{var Ie=V.destroy;if(Ie!==void 0&&typeof Ie!="function"){var Ye=void 0;Ie===null?Ye=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof Ie.then=="function"?Ye=` + +It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: + +useEffect(() => { + async function fetchData() { + // You can await here + const response = await MyAPI.getData(someId); + // ... + } + fetchData(); +}, [someId]); // Or [] if effect doesn't need props or state + +Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching`:Ye=" You returned: "+Ie,Ke(!1,"An effect function must not return anything besides a function, which is used for clean-up.%s%s",Ye,_r(_))}}}V=V.next}while(V!==j)}}function Ea(a){if((a.effectTag&L0)!==_i)switch(a.tag){case L:case ge:case le:{_c(rr,wf,a),_c(wf,$c,a);break}default:break}}function yp(a,c,_,T){switch(_.tag){case L:case ge:case le:{_c(gm,ol,_);break}case N:{var R=_.stateNode;if(_.effectTag&mr)if(c===null)Oi(_,"componentDidMount"),_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),R.componentDidMount(),gi();else{var j=_.elementType===_.type?c.memoizedProps:bi(_.type,c.memoizedProps),V=c.memoizedState;Oi(_,"componentDidUpdate"),_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),R.componentDidUpdate(j,V,R.__reactInternalSnapshotBeforeUpdate),gi()}var te=_.updateQueue;te!==null&&(_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),vo(_,te,R,T));return}case U:{var oe=_.updateQueue;if(oe!==null){var Ie=null;if(_.child!==null)switch(_.child.tag){case W:Ie=Ro(_.child.stateNode);break;case N:Ie=_.child.stateNode;break}vo(_,oe,Ie,T)}return}case W:{var Ye=_.stateNode;if(c===null&&_.effectTag&mr){var pt=_.type,Nt=_.memoizedProps;Pu(Ye,pt,Nt,_)}return}case ne:return;case q:return;case ze:{if(Zt){var Vt=_.memoizedProps.onRender;typeof Vt=="function"&&(Ln?Vt(_.memoizedProps.id,c===null?"mount":"update",_.actualDuration,_.treeBaseDuration,_.actualStartTime,kl(),a.memoizedInteractions):Vt(_.memoizedProps.id,c===null?"mount":"update",_.actualDuration,_.treeBaseDuration,_.actualStartTime,kl()))}return}case pe:{Nl(a,_);return}case wt:case Ge:case xt:case $e:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function M2(a,c){if(P0)for(var _=a;;){if(_.tag===W){var T=_.stateNode;c?Oa(T):Zs(_.stateNode,_.memoizedProps)}else if(_.tag===ne){var R=_.stateNode;c?p0(R):K0(R,_.memoizedProps)}else if(_.tag===pe&&_.memoizedState!==null&&_.memoizedState.dehydrated===null){var j=_.child.sibling;j.return=_,_=j;continue}else if(_.child!==null){_.child.return=_,_=_.child;continue}if(_===a)return;for(;_.sibling===null;){if(_.return===null||_.return===a)return;_=_.return}_.sibling.return=_.return,_=_.sibling}}function ku(a){var c=a.ref;if(c!==null){var _=a.stateNode,T;switch(a.tag){case W:T=Ro(_);break;default:T=_}Du&&a.tag===$e&&(T=_.methods),typeof c=="function"?c(T):(c.hasOwnProperty("current")||Ke(!1,"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().%s",qt(a.type),_r(a)),c.current=T)}}function zu(a){var c=a.ref;c!==null&&(typeof c=="function"?c(null):c.current=null)}function gp(a,c,_){switch(Rn(c),c.tag){case L:case ge:case Oe:case le:{var T=c.updateQueue;if(T!==null){var R=T.lastEffect;if(R!==null){var j=R.next,V=_>Wn?Wn:_;_n(V,function(){var $r=j;do{var wi=$r.destroy;wi!==void 0&&zm(c,wi),$r=$r.next}while($r!==j)})}}break}case N:{vp(c);var te=c.stateNode;typeof te.componentWillUnmount=="function"&&tv(c,te);return}case W:{if(ci){var oe=c.dependencies;if(oe!==null){var Ie=oe.responders;if(Ie!==null){for(var Ye=Array.from(Ie.values()),pt=0,Nt=Ye.length;pt component higher in the tree to provide a loading indicator or placeholder to display.`+_r(_))}Rp(),T=cp(T,_);var Nt=c;do{switch(Nt.tag){case U:{var Vt=T;Nt.effectTag|=f0,Nt.expirationTime=R;var zt=uv(Nt,Vt,R);r2(Nt,zt);return}case N:var vn=T,xr=Nt.type,$r=Nt.stateNode;if((Nt.effectTag&Hr)===_i&&(typeof xr.getDerivedStateFromError=="function"||$r!==null&&typeof $r.componentDidCatch=="function"&&!Lp($r))){Nt.effectTag|=f0,Nt.expirationTime=R;var wi=ov(Nt,vn,R);r2(Nt,wi);return}break;default:break}Nt=Nt.return}while(Nt!==null)}var wa=Math.ceil,Cr=at.ReactCurrentDispatcher,Ep=at.ReactCurrentOwner,fl=at.IsSomeRendererActing,cu=0,E1=1,ki=2,Dp=4,F2=8,Do=16,Ss=32,Mf=0,b2=1,wp=2,D1=3,w1=4,Sp=5,Zn=cu,cl=null,qn=null,q0=lt,k0=Mf,P2=null,Ll=bn,S1=bn,Dc=null,wc=lt,I2=!1,Tp=0,M0=500,fn=null,B2=!1,U2=null,Sc=null,Tc=!1,Cc=null,T1=y0,Cp=lt,Ka=null,Km=50,xc=0,j2=null,sv=50,C1=0,Nf=null,Lf=null,x1=lt;function Fl(){return(Zn&(Do|Ss))!==cu?Ju(vt()):(x1!==lt||(x1=Ju(vt())),x1)}function Ac(){return Ju(vt())}function Ff(a,c,_){var T=c.mode;if((T&Y)===Sr)return bn;var R=Xt();if((T&Qr)===Sr)return R===Ci?bn:Qu;if((Zn&Do)!==cu)return q0;var j;if(_!==null)j=ia(a,_.timeoutMs|0||pf);else switch(R){case Ci:j=bn;break;case Xr:j=La(a);break;case Wn:case Xu:j=ms(a);break;case m0:j=Qi;break;default:throw Error("Expected a valid priority level")}return cl!==null&&j===q0&&(j-=1),j}function Xm(a,c){hy(),gy(a);var _=z2(a,c);if(_===null){my(a);return}Up(a,c),ta();var T=Xt();if(c===bn?(Zn&F2)!==cu&&(Zn&(Do|Ss))===cu?(H(_,c),A1(_)):(Uo(_),H(_,c),Zn===cu&&It()):(Uo(_),H(_,c)),(Zn&Dp)!==cu&&(T===Xr||T===Ci))if(Ka===null)Ka=new Map([[_,c]]);else{var R=Ka.get(_);(R===void 0||R>c)&&Ka.set(_,c)}}var dl=Xm;function z2(a,c){a.expirationTimeR?T:R}function Uo(a){var c=a.lastExpiredTime;if(c!==lt){a.callbackExpirationTime=bn,a.callbackPriority=Ci,a.callbackNode=En(A1.bind(null,a));return}var _=q2(a),T=a.callbackNode;if(_===lt){T!==null&&(a.callbackNode=null,a.callbackExpirationTime=lt,a.callbackPriority=y0);return}var R=Fl(),j=$1(R,_);if(T!==null){var V=a.callbackPriority,te=a.callbackExpirationTime;if(te===_&&V>=j)return;er(T)}a.callbackExpirationTime=_,a.callbackPriority=j;var oe;_===bn?oe=En(A1.bind(null,a)):oo?oe=yn(j,H2.bind(null,a)):oe=yn(j,H2.bind(null,a),{timeout:bo(_)-vt()}),a.callbackNode=oe}function H2(a,c){if(x1=lt,c){var _=Fl();return qp(a,_),Uo(a),null}var T=q2(a);if(T!==lt){var R=a.callbackNode;if((Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");if(Xa(),(a!==cl||T!==q0)&&(bf(a,T),ee(a,T)),qn!==null){var j=Zn;Zn|=Do;var V=pv(a),te=W2(a);ff(qn);do try{oy();break}catch(Ye){dv(a,Ye)}while(!0);if(mt(),Zn=j,hv(V),Ln&&V2(te),k0===b2){var oe=P2;throw Bp(),bf(a,T),Bf(a,T),Uo(a),oe}if(qn!==null)Bp();else{Tv();var Ie=a.finishedWork=a.current.alternate;a.finishedExpirationTime=T,Qm(a,Ie,k0,T)}if(Uo(a),a.callbackNode===R)return H2.bind(null,a)}}return null}function Qm(a,c,_,T){switch(cl=null,_){case Mf:case b2:throw Error("Root did not complete. This is a bug in React.");case wp:{qp(a,T>Qi?Qi:T);break}case D1:{Bf(a,T);var R=a.lastSuspendedTime;T===R&&(a.nextKnownPendingLevel=Op(c)),d();var j=Ll===bn;if(j&&!(Y0&&If.current)){var V=Tp+M0-vt();if(V>10){if(I2){var te=a.lastPingedTime;if(te===lt||te>=T){a.lastPingedTime=T,bf(a,T);break}}var oe=q2(a);if(oe!==lt&&oe!==T)break;if(R!==lt&&R!==T){a.lastPingedTime=R;break}a.timeoutHandle=St(r0.bind(null,a),V);break}}r0(a);break}case w1:{Bf(a,T);var Ie=a.lastSuspendedTime;if(T===Ie&&(a.nextKnownPendingLevel=Op(c)),d(),!(Y0&&If.current)){if(I2){var Ye=a.lastPingedTime;if(Ye===lt||Ye>=T){a.lastPingedTime=T,bf(a,T);break}}var pt=q2(a);if(pt!==lt&&pt!==T)break;if(Ie!==lt&&Ie!==T){a.lastPingedTime=Ie;break}var Nt;if(S1!==bn)Nt=bo(S1)-vt();else if(Ll===bn)Nt=0;else{var Vt=_v(Ll),zt=vt(),vn=bo(T)-zt,xr=zt-Vt;xr<0&&(xr=0),Nt=Pp(xr)-xr,vn10){a.timeoutHandle=St(r0.bind(null,a),Nt);break}}r0(a);break}case Sp:{if(!(Y0&&If.current)&&Ll!==bn&&Dc!==null){var $r=Ip(Ll,T,Dc);if($r>10){Bf(a,T),a.timeoutHandle=St(r0.bind(null,a),$r);break}}r0(a);break}default:throw Error("Unknown root exit status.")}}function A1(a){var c=a.lastExpiredTime,_=c!==lt?c:bn;if(a.finishedExpirationTime===_)r0(a);else{if((Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");if(Xa(),(a!==cl||_!==q0)&&(bf(a,_),ee(a,_)),qn!==null){var T=Zn;Zn|=Do;var R=pv(a),j=W2(a);ff(qn);do try{Ev();break}catch(te){dv(a,te)}while(!0);if(mt(),Zn=T,hv(R),Ln&&V2(j),k0===b2){var V=P2;throw Bp(),bf(a,_),Bf(a,_),Uo(a),V}if(qn!==null)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");Tv(),a.finishedWork=a.current.alternate,a.finishedExpirationTime=_,Jm(a,k0,_),Uo(a)}}return null}function Jm(a,c,_){cl=null,(c===D1||c===w1)&&d(),r0(a)}function Zm(a,c){qp(a,c),Uo(a),(Zn&(Do|Ss))===cu&&It()}function av(){if((Zn&(E1|Do|Ss))!==cu){(Zn&Do)!==cu&&Kt(!1,"unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.");return}ey(),Xa()}function $m(a){return _n(Wn,a)}function fv(a,c,_,T){return _n(Ci,a.bind(null,c,_,T))}function ey(){if(Ka!==null){var a=Ka;Ka=null,a.forEach(function(c,_){qp(_,c),Uo(_)}),It()}}function ty(a,c){var _=Zn;Zn|=E1;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function ny(a,c){var _=Zn;Zn|=ki;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function cv(a,c,_,T){var R=Zn;Zn|=Dp;try{return _n(Xr,a.bind(null,c,_,T))}finally{Zn=R,Zn===cu&&It()}}function ry(a,c){var _=Zn;Zn&=~E1,Zn|=F2;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function xp(a,c){if((Zn&(Do|Ss))!==cu)throw Error("flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.");var _=Zn;Zn|=E1;try{return _n(Ci,a.bind(null,c))}finally{Zn=_,It()}}function iy(a){var c=Zn;Zn|=E1;try{_n(Ci,a)}finally{Zn=c,Zn===cu&&It()}}function bf(a,c){a.finishedWork=null,a.finishedExpirationTime=lt;var _=a.timeoutHandle;if(_!==Jo&&(a.timeoutHandle=Jo,so(_)),qn!==null)for(var T=qn.return;T!==null;)$h(T),T=T.return;cl=a,qn=wo(a.current,null,c),q0=c,k0=Mf,P2=null,Ll=bn,S1=bn,Dc=null,wc=lt,I2=!1,Ln&&(Lf=null),wl.discardPendingWarnings(),Ys=null}function dv(a,c){do{try{if(mt(),m2(),nt(),qn===null||qn.return===null)return k0=b2,P2=c,null;Zt&&qn.mode&Jr&&a1(qn,!0),lv(a,qn.return,qn,c,q0),qn=Dv(qn)}catch(_){c=_;continue}return}while(!0)}function pv(a){var c=Cr.current;return Cr.current=o1,c===null?o1:c}function hv(a){Cr.current=a}function W2(a){if(Ln){var c=k.__interactionsRef.current;return k.__interactionsRef.current=a.memoizedInteractions,c}return null}function V2(a){Ln&&(k.__interactionsRef.current=a)}function Ap(){Tp=vt()}function vv(a,c){aQi&&(Ll=a),c!==null&&aQi&&(S1=a,Dc=c)}function G2(a){a>wc&&(wc=a)}function mv(){k0===Mf&&(k0=D1)}function yv(){(k0===Mf||k0===D1)&&(k0=w1),wc!==lt&&cl!==null&&(Bf(cl,q0),o_(cl,wc))}function Rp(){k0!==Sp&&(k0=wp)}function gv(){return k0===Mf}function _v(a){var c=bo(a);return c-pf}function uy(a,c){var _=bo(a);return _-(c.timeoutMs|0||pf)}function Ev(){for(;qn!==null;)qn=Y2(qn)}function oy(){for(;qn!==null&&!kn();)qn=Y2(qn)}function Y2(a){var c=a.alternate;Kl(a),_t(a);var _;return Zt&&(a.mode&Jr)!==Sr?(zd(a),_=R1(c,a,q0),a1(a,!0)):_=R1(c,a,q0),nt(),a.memoizedProps=a.pendingProps,_===null&&(_=Dv(a)),Ep.current=null,_}function Dv(a){qn=a;do{var c=qn.alternate,_=qn.return;if((qn.effectTag&F0)===_i){_t(qn);var T=void 0;if(!Zt||(qn.mode&Jr)===Sr?T=Zh(c,qn,q0):(zd(qn),T=Zh(c,qn,q0),a1(qn,!1)),Yr(qn),nt(),ly(qn),T!==null)return T;if(_!==null&&(_.effectTag&F0)===_i){_.firstEffect===null&&(_.firstEffect=qn.firstEffect),qn.lastEffect!==null&&(_.lastEffect!==null&&(_.lastEffect.nextEffect=qn.firstEffect),_.lastEffect=qn.lastEffect);var R=qn.effectTag;R>eu&&(_.lastEffect!==null?_.lastEffect.nextEffect=qn:_.firstEffect=qn,_.lastEffect=qn)}}else{var j=Pm(qn,q0);if(Zt&&(qn.mode&Jr)!==Sr){a1(qn,!1);for(var V=qn.actualDuration,te=qn.child;te!==null;)V+=te.actualDuration,te=te.sibling;qn.actualDuration=V}if(j!==null)return fo(qn),j.effectTag&=Hl,j;Yr(qn),_!==null&&(_.firstEffect=_.lastEffect=null,_.effectTag|=F0)}var oe=qn.sibling;if(oe!==null)return oe;qn=_}while(qn!==null);return k0===Mf&&(k0=Sp),null}function Op(a){var c=a.expirationTime,_=a.childExpirationTime;return c>_?c:_}function ly(a){if(!(q0!==hi&&a.childExpirationTime===hi)){var c=lt;if(Zt&&(a.mode&Jr)!==Sr){for(var _=a.actualDuration,T=a.selfBaseDuration,R=a.alternate===null||a.child!==a.alternate.child,j=a.child;j!==null;){var V=j.expirationTime,te=j.childExpirationTime;V>c&&(c=V),te>c&&(c=te),R&&(_+=j.actualDuration),T+=j.treeBaseDuration,j=j.sibling}a.actualDuration=_,a.treeBaseDuration=T}else for(var oe=a.child;oe!==null;){var Ie=oe.expirationTime,Ye=oe.childExpirationTime;Ie>c&&(c=Ie),Ye>c&&(c=Ye),oe=oe.sibling}a.childExpirationTime=c}}function r0(a){var c=Xt();return _n(Ci,kp.bind(null,a,c)),null}function kp(a,c){do Xa();while(Cc!==null);if(vy(),(Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");var _=a.finishedWork,T=a.finishedExpirationTime;if(_===null)return null;if(a.finishedWork=null,a.finishedExpirationTime=lt,_===a.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");a.callbackNode=null,a.callbackExpirationTime=lt,a.callbackPriority=y0,a.nextKnownPendingLevel=lt,J0();var R=Op(_);iE(a,T,R),a===cl&&(cl=null,qn=null,q0=lt);var j;if(_.effectTag>eu?_.lastEffect!==null?(_.lastEffect.nextEffect=_,j=_.firstEffect):j=_:j=_.firstEffect,j!==null){var V=Zn;Zn|=Ss;var te=W2(a);Ep.current=null,Te(),Bn(a.containerInfo),fn=j;do if(sl(null,sy,null),Jn()){if(fn===null)throw Error("Should be working on an effect.");var oe=Vs();Pf(fn,oe),fn=fn.nextEffect}while(fn!==null);et(),Zt&&Oh(),Ve(),fn=j;do if(sl(null,ay,null,a,c),Jn()){if(fn===null)throw Error("Should be working on an effect.");var Ie=Vs();Pf(fn,Ie),fn=fn.nextEffect}while(fn!==null);Gt(),Ir(a.containerInfo),a.current=_,Yt(),fn=j;do if(sl(null,Mp,null,a,T),Jn()){if(fn===null)throw Error("Should be working on an effect.");var Ye=Vs();Pf(fn,Ye),fn=fn.nextEffect}while(fn!==null);sr(),fn=null,se(),Ln&&V2(te),Zn=V}else a.current=_,Te(),et(),Zt&&Oh(),Ve(),Gt(),Yt(),sr();Z0();var pt=Tc;if(Tc)Tc=!1,Cc=a,Cp=T,T1=c;else for(fn=j;fn!==null;){var Nt=fn.nextEffect;fn.nextEffect=null,fn=Nt}var Vt=a.firstPendingTime;if(Vt!==lt){if(Ln){if(Lf!==null){var zt=Lf;Lf=null;for(var vn=0;vnWn?Wn:T1;return T1=y0,_n(a,Np)}}function Np(){if(Cc===null)return!1;var a=Cc,c=Cp;if(Cc=null,Cp=lt,(Zn&(Do|Ss))!==cu)throw Error("Cannot flush passive effects while already rendering.");var _=Zn;Zn|=Ss;for(var T=W2(a),R=a.current.firstEffect;R!==null;){{if(_t(R),sl(null,Ea,null,R),Jn()){if(R===null)throw Error("Should be working on an effect.");var j=Vs();Pf(R,j)}nt()}var V=R.nextEffect;R.nextEffect=null,R=V}return Ln&&(V2(T),de(a,c)),Zn=_,It(),C1=Cc===null?0:C1+1,!0}function Lp(a){return Sc!==null&&Sc.has(a)}function Fp(a){Sc===null?Sc=new Set([a]):Sc.add(a)}function fy(a){B2||(B2=!0,U2=a)}var cy=fy;function wv(a,c,_){var T=cp(_,c),R=uv(a,T,bn);Ua(a,R);var j=z2(a,bn);j!==null&&(Uo(j),H(j,bn))}function Pf(a,c){if(a.tag===U){wv(a,a,c);return}for(var _=a.return;_!==null;){if(_.tag===U){wv(_,a,c);return}else if(_.tag===N){var T=_.type,R=_.stateNode;if(typeof T.getDerivedStateFromError=="function"||typeof R.componentDidCatch=="function"&&!Lp(R)){var j=cp(c,a),V=ov(_,j,bn);Ua(_,V);var te=z2(_,bn);te!==null&&(Uo(te),H(te,bn));return}}_=_.return}}function bp(a,c,_){var T=a.pingCache;if(T!==null&&T.delete(c),cl===a&&q0===_){k0===w1||k0===D1&&Ll===bn&&vt()-TpKm)throw xc=0,j2=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");C1>sv&&(C1=0,Kt(!1,"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."))}function vy(){wl.flushLegacyContextWarning(),fi&&wl.flushPendingUnsafeLifecycleWarnings()}function Tv(){var a=!0;cf(Nf,a),Nf=null}function Bp(){var a=!1;cf(Nf,a),Nf=null}function Up(a,c){Pr&&cl!==null&&c>q0&&(Nf=a)}var K2=null;function my(a){{var c=a.tag;if(c!==U&&c!==N&&c!==L&&c!==ge&&c!==Oe&&c!==le)return;var _=qt(a.type)||"ReactComponent";if(K2!==null){if(K2.has(_))return;K2.add(_)}else K2=new Set([_]);Ke(!1,"Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.%s",c===N?"the componentWillUnmount method":"a useEffect cleanup function",_r(a))}}var R1;if(G0){var yy=null;R1=function(a,c,_){var T=i_(yy,c);try{return op(a,c,_)}catch(j){if(j!==null&&typeof j=="object"&&typeof j.then=="function")throw j;if(mt(),m2(),$h(c),i_(c,T),Zt&&c.mode&Jr&&zd(c),sl(null,op,null,a,c,_),Jn()){var R=Vs();throw R}else throw j}}}else R1=op;var Cv=!1,xv=!1;function gy(a){if(a.tag===N)switch(Ar){case"getChildContext":if(xv)return;Ke(!1,"setState(...): Cannot call setState() inside getChildContext()"),xv=!0;break;case"render":if(Cv)return;Ke(!1,"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."),Cv=!0;break}}var If={current:!1};function jp(a){fs===!0&&fl.current===!0&&If.current!==!0&&Ke(!1,`It looks like you're using the wrong act() around your test interactions. +Be sure to use the matching version of act() corresponding to your renderer: + +// for react-dom: +import {act} from 'react-dom/test-utils'; +// ... +act(() => ...); + +// for react-test-renderer: +import TestRenderer from 'react-test-renderer'; +const {act} = TestRenderer; +// ... +act(() => ...);%s`,_r(a))}function Av(a){fs===!0&&(a.mode&cr)!==Sr&&fl.current===!1&&If.current===!1&&Ke(!1,`An update to %s ran an effect, but was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(a.type),_r(a))}function _y(a){fs===!0&&Zn===cu&&fl.current===!1&&If.current===!1&&Ke(!1,`An update to %s inside a test was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(a.type),_r(a))}var Ey=_y,zp=!1;function Dy(a){zp===!1&&t.unstable_flushAllWithoutAsserting===void 0&&(a.mode&Y||a.mode&Qr?(zp=!0,Ke(!1,`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)):Yi===!0&&(zp=!0,Ke(!1,`Starting from React v17, the "scheduler" module will need to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)))}var Ys=null;function wy(a){{var c=Xt();if((a.mode&Qr)!==_i&&(c===Xr||c===Ci))for(var _=a;_!==null;){var T=_.alternate;if(T!==null)switch(_.tag){case N:var R=T.updateQueue;if(R!==null)for(var j=R.firstUpdate;j!==null;){var V=j.priority;if(V===Xr||V===Ci){Ys===null?Ys=new Set([qt(_.type)]):Ys.add(qt(_.type));break}j=j.next}break;case L:case ge:case le:if(_.memoizedState!==null&&_.memoizedState.baseUpdate!==null)for(var te=_.memoizedState.baseUpdate;te!==null;){var oe=te.priority;if(oe===Xr||oe===Ci){Ys===null?Ys=new Set([qt(_.type)]):Ys.add(qt(_.type));break}if(te.next===_.memoizedState.baseUpdate)break;te=te.next}break;default:break}_=_.return}}}function d(){if(Ys!==null){var a=[];Ys.forEach(function(c){return a.push(c)}),Ys=null,a.length>0&&Ke(!1,`%s triggered a user-blocking update that suspended. + +The fix is to split the update into multiple parts: a user-blocking update to provide immediate feedback, and another update that triggers the bulk of the changes. + +Refer to the documentation for useTransition to learn how to implement this pattern.`,a.sort().join(", "))}}function v(a,c){return c*1e3+a.interactionThreadID}function x(a){!Ln||(Lf===null?Lf=[a]:Lf.push(a))}function b(a,c,_){if(!!Ln&&_.size>0){var T=a.pendingInteractionMap,R=T.get(c);R!=null?_.forEach(function(te){R.has(te)||te.__count++,R.add(te)}):(T.set(c,new Set(_)),_.forEach(function(te){te.__count++}));var j=k.__subscriberRef.current;if(j!==null){var V=v(a,c);j.onWorkScheduled(_,V)}}}function H(a,c){!Ln||b(a,c,k.__interactionsRef.current)}function ee(a,c){if(!!Ln){var _=new Set;if(a.pendingInteractionMap.forEach(function(j,V){V>=c&&j.forEach(function(te){return _.add(te)})}),a.memoizedInteractions=_,_.size>0){var T=k.__subscriberRef.current;if(T!==null){var R=v(a,c);try{T.onWorkStarted(_,R)}catch(j){yn(Ci,function(){throw j})}}}}}function de(a,c){if(!!Ln){var _=a.firstPendingTime,T;try{if(T=k.__subscriberRef.current,T!==null&&a.memoizedInteractions.size>0){var R=v(a,c);T.onWorkStopped(a.memoizedInteractions,R)}}catch(V){yn(Ci,function(){throw V})}finally{var j=a.pendingInteractionMap;j.forEach(function(V,te){te>_&&(j.delete(te),V.forEach(function(oe){if(oe.__count--,T!==null&&oe.__count===0)try{T.onInteractionScheduledWorkCompleted(oe)}catch(Ie){yn(Ci,function(){throw Ie})}}))})}}}var ye=null,be=null,gt=!1,Dt=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined";function Rt(a){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined")return!1;var c=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(c.isDisabled)return!0;if(!c.supportsFiber)return Ke(!1,"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://fb.me/react-devtools"),!0;try{var _=c.inject(a);ye=function(T,R){try{var j=(T.current.effectTag&Hr)===Hr;if(Zt){var V=Ac(),te=$1(V,R);c.onCommitFiberRoot(_,T,te,j)}else c.onCommitFiberRoot(_,T,void 0,j)}catch(oe){gt||(gt=!0,Ke(!1,"React DevTools encountered an error: %s",oe))}},be=function(T){try{c.onCommitFiberUnmount(_,T)}catch(R){gt||(gt=!0,Ke(!1,"React DevTools encountered an error: %s",R))}}}catch(T){Ke(!1,"React DevTools encountered an error: %s.",T)}return!0}function rn(a,c){typeof ye=="function"&&ye(a,c)}function Rn(a){typeof be=="function"&&be(a)}var $n;{$n=!1;try{var Nr=Object.preventExtensions({}),ir=new Map([[Nr,null]]),Zr=new Set([Nr]);ir.set(0,0),Zr.add(0)}catch(a){$n=!0}}var ui=1;function bl(a,c,_,T){this.tag=a,this.key=_,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=c,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=T,this.effectTag=_i,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.expirationTime=lt,this.childExpirationTime=lt,this.alternate=null,Zt&&(this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0),Pr&&(this._debugID=ui++,this._debugIsCurrentlyTiming=!1),this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!$n&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var Wi=function(a,c,_,T){return new bl(a,c,_,T)};function uo(a){var c=a.prototype;return!!(c&&c.isReactComponent)}function i0(a){return typeof a=="function"&&!uo(a)&&a.defaultProps===void 0}function Ts(a){if(typeof a=="function")return uo(a)?N:L;if(a!=null){var c=a.$$typeof;if(c===An)return ge;if(c===Wt)return Oe}return C}function wo(a,c,_){var T=a.alternate;T===null?(T=Wi(a.tag,c,a.key,a.mode),T.elementType=a.elementType,T.type=a.type,T.stateNode=a.stateNode,T._debugID=a._debugID,T._debugSource=a._debugSource,T._debugOwner=a._debugOwner,T._debugHookTypes=a._debugHookTypes,T.alternate=a,a.alternate=T):(T.pendingProps=c,T.effectTag=_i,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null,Zt&&(T.actualDuration=0,T.actualStartTime=-1)),T.childExpirationTime=a.childExpirationTime,T.expirationTime=a.expirationTime,T.child=a.child,T.memoizedProps=a.memoizedProps,T.memoizedState=a.memoizedState,T.updateQueue=a.updateQueue;var R=a.dependencies;switch(T.dependencies=R===null?null:{expirationTime:R.expirationTime,firstContext:R.firstContext,responders:R.responders},T.sibling=a.sibling,T.index=a.index,T.ref=a.ref,Zt&&(T.selfBaseDuration=a.selfBaseDuration,T.treeBaseDuration=a.treeBaseDuration),T._debugNeedsRemount=a._debugNeedsRemount,T.tag){case C:case L:case le:T.type=Zu(a.type);break;case N:T.type=U0(a.type);break;case ge:T.type=vf(a.type);break;default:break}return T}function Rv(a,c){a.effectTag&=ai,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null;var _=a.alternate;if(_===null)a.childExpirationTime=lt,a.expirationTime=c,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,Zt&&(a.selfBaseDuration=0,a.treeBaseDuration=0);else{a.childExpirationTime=_.childExpirationTime,a.expirationTime=_.expirationTime,a.child=_.child,a.memoizedProps=_.memoizedProps,a.memoizedState=_.memoizedState,a.updateQueue=_.updateQueue;var T=_.dependencies;a.dependencies=T===null?null:{expirationTime:T.expirationTime,firstContext:T.firstContext,responders:T.responders},Zt&&(a.selfBaseDuration=_.selfBaseDuration,a.treeBaseDuration=_.treeBaseDuration)}return a}function X4(a){var c;return a===R0?c=Qr|Y|cr:a===I0?c=Y|cr:c=Sr,Zt&&Dt&&(c|=Jr),Wi(U,null,null,c)}function Sy(a,c,_,T,R,j){var V,te=C,oe=a;if(typeof a=="function")uo(a)?(te=N,oe=U0(oe)):oe=Zu(oe);else if(typeof a=="string")te=W;else{e:switch(a){case ue:return Qa(_.children,R,j,c);case ln:te=we,R|=Qr|Y|cr;break;case je:te=we,R|=cr;break;case ct:return J4(_,R,j,c);case nr:return Z4(_,R,j,c);case un:return $4(_,R,j,c);default:{if(typeof a=="object"&&a!==null)switch(a.$$typeof){case At:te=he;break e;case en:te=Se;break e;case An:te=ge,oe=vf(oe);break e;case Wt:te=Oe;break e;case vr:te=Ue,oe=null;break e;case w:if(Ht)return r_(a,_,R,j,c);break;case Vn:if(Du)return Q4(a,_,R,j,c)}var Ie="";{(a===void 0||typeof a=="object"&&a!==null&&Object.keys(a).length===0)&&(Ie+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ye=T?qt(T.type):null;Ye&&(Ie+=` + +Check the render method of \``+Ye+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(a==null?a:typeof a)+"."+Ie)}}}return V=Wi(te,_,c,R),V.elementType=a,V.type=oe,V.expirationTime=j,V}function Ty(a,c,_){var T=null;T=a._owner;var R=a.type,j=a.key,V=a.props,te=Sy(R,j,V,T,c,_);return te._debugSource=a._source,te._debugOwner=a._owner,te}function Qa(a,c,_,T){var R=Wi(m,a,T,c);return R.expirationTime=_,R}function r_(a,c,_,T,R){var j=Wi(xt,c,R,_);return j.elementType=a,j.type=a,j.expirationTime=T,j}function Q4(a,c,_,T,R){var j=Wi($e,c,R,_);return j.type=a,j.elementType=a,j.expirationTime=T,j}function J4(a,c,_,T){(typeof a.id!="string"||typeof a.onRender!="function")&&Ke(!1,'Profiler must specify an "id" string and "onRender" function as props');var R=Wi(ze,a,T,c|Jr);return R.elementType=ct,R.type=ct,R.expirationTime=_,R}function Z4(a,c,_,T){var R=Wi(pe,a,T,c);return R.type=nr,R.elementType=nr,R.expirationTime=_,R}function $4(a,c,_,T){var R=Wi(wt,a,T,c);return R.type=un,R.elementType=un,R.expirationTime=_,R}function Cy(a,c,_){var T=Wi(ne,a,null,c);return T.expirationTime=_,T}function eE(){var a=Wi(W,null,null,Sr);return a.elementType="DELETED",a.type="DELETED",a}function tE(a){var c=Wi(rt,null,null,Sr);return c.stateNode=a,c}function xy(a,c,_){var T=a.children!==null?a.children:[],R=Wi(q,T,a.key,c);return R.expirationTime=_,R.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},R}function i_(a,c){return a===null&&(a=Wi(C,null,null,Sr)),a.tag=c.tag,a.key=c.key,a.elementType=c.elementType,a.type=c.type,a.stateNode=c.stateNode,a.return=c.return,a.child=c.child,a.sibling=c.sibling,a.index=c.index,a.ref=c.ref,a.pendingProps=c.pendingProps,a.memoizedProps=c.memoizedProps,a.updateQueue=c.updateQueue,a.memoizedState=c.memoizedState,a.dependencies=c.dependencies,a.mode=c.mode,a.effectTag=c.effectTag,a.nextEffect=c.nextEffect,a.firstEffect=c.firstEffect,a.lastEffect=c.lastEffect,a.expirationTime=c.expirationTime,a.childExpirationTime=c.childExpirationTime,a.alternate=c.alternate,Zt&&(a.actualDuration=c.actualDuration,a.actualStartTime=c.actualStartTime,a.selfBaseDuration=c.selfBaseDuration,a.treeBaseDuration=c.treeBaseDuration),a._debugID=c._debugID,a._debugSource=c._debugSource,a._debugOwner=c._debugOwner,a._debugIsCurrentlyTiming=c._debugIsCurrentlyTiming,a._debugNeedsRemount=c._debugNeedsRemount,a._debugHookTypes=c._debugHookTypes,a}function nE(a,c,_){this.tag=c,this.current=null,this.containerInfo=a,this.pendingChildren=null,this.pingCache=null,this.finishedExpirationTime=lt,this.finishedWork=null,this.timeoutHandle=Jo,this.context=null,this.pendingContext=null,this.hydrate=_,this.callbackNode=null,this.callbackPriority=y0,this.firstPendingTime=lt,this.firstSuspendedTime=lt,this.lastSuspendedTime=lt,this.nextKnownPendingLevel=lt,this.lastPingedTime=lt,this.lastExpiredTime=lt,Ln&&(this.interactionThreadID=k.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map),Ui&&(this.hydrationCallbacks=null)}function rE(a,c,_,T){var R=new nE(a,c,_);Ui&&(R.hydrationCallbacks=T);var j=X4(c);return R.current=j,j.stateNode=R,R}function u_(a,c){var _=a.firstSuspendedTime,T=a.lastSuspendedTime;return _!==lt&&_>=c&&T<=c}function Bf(a,c){var _=a.firstSuspendedTime,T=a.lastSuspendedTime;_c||_===lt)&&(a.lastSuspendedTime=c),c<=a.lastPingedTime&&(a.lastPingedTime=lt),c<=a.lastExpiredTime&&(a.lastExpiredTime=lt)}function o_(a,c){var _=a.firstPendingTime;c>_&&(a.firstPendingTime=c);var T=a.firstSuspendedTime;T!==lt&&(c>=T?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=lt:c>=a.lastSuspendedTime&&(a.lastSuspendedTime=c+1),c>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=c))}function iE(a,c,_){a.firstPendingTime=_,c<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=lt:c<=a.firstSuspendedTime&&(a.firstSuspendedTime=c-1),c<=a.lastPingedTime&&(a.lastPingedTime=lt),c<=a.lastExpiredTime&&(a.lastExpiredTime=lt)}function qp(a,c){var _=a.lastExpiredTime;(_===lt||_>c)&&(a.lastExpiredTime=c)}var uE={debugTool:null},Ov=uE,Ay,Ry;Ay=!1,Ry={};function oE(a){if(!a)return Sn;var c=jt(a),_=El(c);if(c.tag===N){var T=c.type;if(zi(T))return A0(c,T,_)}return _}function Oy(a){var c=jt(a);if(c===void 0)throw typeof a.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(a));var _=b0(c);return _===null?null:_.stateNode}function lE(a,c){{var _=jt(a);if(_===void 0)throw typeof a.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(a));var T=b0(_);if(T===null)return null;if(T.mode&cr){var R=qt(_.type)||"Component";Ry[R]||(Ry[R]=!0,_.mode&cr?Ke(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",c,c,R,_r(T)):Ke(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",c,c,R,_r(T)))}return T.stateNode}return Oy(a)}function sE(a,c,_,T){return rE(a,c,_,T)}function l_(a,c,_,T){var R=c.current,j=Fl();typeof jest!="undefined"&&(Dy(R),jp(R));var V=mo(),te=Ff(j,R,V);Ov.debugTool&&(R.alternate===null?Ov.debugTool.onMountContainer(c):a===null?Ov.debugTool.onUnmountContainer(c):Ov.debugTool.onUpdateContainer(c));var oe=oE(_);c.context===null?c.context=oe:c.pendingContext=oe,Ar==="render"&&Cn!==null&&!Ay&&(Ay=!0,Ke(!1,`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. + +Check the render method of %s.`,qt(Cn.type)||"Unknown"));var Ie=gu(te,V);return Ie.payload={element:a},T=T===void 0?null:T,T!==null&&(typeof T!="function"&&Ke(!1,"render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",T),Ie.callback=T),Ua(R,Ie),dl(R,te),te}function aE(a){var c=a.current;if(!c.child)return null;switch(c.child.tag){case W:return Ro(c.child.stateNode);default:return c.child.stateNode}}function fE(a){switch(a.tag){case U:var c=a.stateNode;c.hydrate&&Zm(c,c.firstPendingTime);break;case pe:xp(function(){return dl(a,bn)});var _=La(Fl());kv(a,_);break}}function s_(a,c){var _=a.memoizedState;_!==null&&_.dehydrated!==null&&_.retryTime=c.length)return T;var R=c[_],j=Array.isArray(a)?a.slice():f({},a);return j[R]=Ny(a[R],c,_+1,T),j},h_=function(a,c,_){return Ny(a,c,0,_)};f_=function(a,c,_,T){for(var R=a.memoizedState;R!==null&&c>0;)R=R.next,c--;if(R!==null){var j=h_(R.memoizedState,_,T);R.memoizedState=j,R.baseState=j,a.memoizedProps=f({},a.memoizedProps),dl(a,bn)}},c_=function(a,c,_){a.pendingProps=h_(a.memoizedProps,c,_),a.alternate&&(a.alternate.pendingProps=a.pendingProps),dl(a,bn)},d_=function(a){dl(a,bn)},p_=function(a){My=a}}function hE(a){var c=a.findFiberByHostInstance,_=at.ReactCurrentDispatcher;return Rt(f({},a,{overrideHookState:f_,overrideProps:c_,setSuspenseHandler:p_,scheduleUpdate:d_,currentDispatcherRef:_,findHostInstanceByFiber:function(T){var R=b0(T);return R===null?null:R.stateNode},findFiberByHostInstance:function(T){return c?c(T):null},findHostInstancesForRefresh:n2,scheduleRefresh:Sl,scheduleRoot:_s,setRefreshHandler:Ia,getCurrentFiber:function(){return Cn}}))}var v_=Object.freeze({createContainer:sE,updateContainer:l_,batchedEventUpdates:ny,batchedUpdates:ty,unbatchedUpdates:ry,deferredUpdates:$m,syncUpdates:fv,discreteUpdates:cv,flushDiscreteUpdates:av,flushControlled:iy,flushSync:xp,flushPassiveEffects:Xa,IsThisRendererActing:If,getPublicRootInstance:aE,attemptSynchronousHydration:fE,attemptUserBlockingHydration:cE,attemptContinuousHydration:ky,attemptHydrationAtCurrentPriority:dE,findHostInstance:Oy,findHostInstanceWithWarning:lE,findHostInstanceWithNoPortals:pE,shouldSuspend:a_,injectIntoDevTools:hE}),vE=v_.default||v_;hg.exports=vE;var mE=hg.exports;return hg.exports=i,mE})});var D9=ce((zne,cw)=>{"use strict";process.env.NODE_ENV==="production"?cw.exports=m9():cw.exports=E9()});var S9=ce((qne,w9)=>{"use strict";var ZK={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};w9.exports=ZK});var A9=ce((Hne,T9)=>{"use strict";var $K=Object.assign||function(i){for(var o=1;o"}}]),i}(),C9=function(){v4(i,null,[{key:"fromJS",value:function(f){var p=f.width,E=f.height;return new i(p,E)}}]);function i(o,f){pw(this,i),this.width=o,this.height=f}return v4(i,[{key:"fromJS",value:function(f){f(this.width,this.height)}},{key:"toString",value:function(){return""}}]),i}(),x9=function(){function i(o,f){pw(this,i),this.unit=o,this.value=f}return v4(i,[{key:"fromJS",value:function(f){f(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case Jf.UNIT_POINT:return String(this.value);case Jf.UNIT_PERCENT:return this.value+"%";case Jf.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),i}();T9.exports=function(i,o){function f(k,L,N){var C=k[L];k[L]=function(){for(var U=arguments.length,q=Array(U),W=0;W1?q-1:0),ne=1;ne1&&arguments[1]!==void 0?arguments[1]:NaN,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Jf.DIRECTION_LTR;return k.call(this,L,N,C)}),$K({Config:o.Config,Node:o.Node,Layout:i("Layout",eX),Size:i("Size",C9),Value:i("Value",x9),getInstanceCount:function(){return o.getInstanceCount.apply(o,arguments)}},Jf)}});var R9=ce((exports,module)=>{(function(i,o){typeof define=="function"&&define.amd?define([],function(){return o}):typeof module=="object"&&module.exports?module.exports=o:(i.nbind=i.nbind||{}).init=o})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(i,o){return function(){i&&i.apply(this,arguments);try{Module.ccall("nbind_init")}catch(f){o(f);return}o(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module!="undefined"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof require=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(o,f){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),o=nodePath.normalize(o);var p=nodeFS.readFileSync(o);return f?p:p.toString()},Module.readBinary=function(o){var f=Module.read(o,!0);return f.buffer||(f=new Uint8Array(f)),assert(f.buffer),f},Module.load=function(o){globalEval(read(o))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module!="undefined"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr!="undefined"&&(Module.printErr=printErr),typeof read!="undefined"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(o){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(o));var f=read(o,"binary");return assert(typeof f=="object"),f},typeof scriptArgs!="undefined"?Module.arguments=scriptArgs:typeof arguments!="undefined"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(i,o){quit(i)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(o){var f=new XMLHttpRequest;return f.open("GET",o,!1),f.send(null),f.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(o){var f=new XMLHttpRequest;return f.open("GET",o,!1),f.responseType="arraybuffer",f.send(null),new Uint8Array(f.response)}),Module.readAsync=function(o,f,p){var E=new XMLHttpRequest;E.open("GET",o,!0),E.responseType="arraybuffer",E.onload=function(){E.status==200||E.status==0&&E.response?f(E.response):p()},E.onerror=p,E.send(null)},typeof arguments!="undefined"&&(Module.arguments=arguments),typeof console!="undefined")Module.print||(Module.print=function(o){console.log(o)}),Module.printErr||(Module.printErr=function(o){console.warn(o)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump!="undefined"?function(i){dump(i)}:function(i){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle=="undefined"&&(Module.setWindowTitle=function(i){document.title=i})}else throw"Unknown runtime environment. Where are we?";function globalEval(i){eval.call(null,i)}!Module.load&&Module.read&&(Module.load=function(o){globalEval(Module.read(o))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(i,o){throw o}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(i){return tempRet0=i,i},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(i){STACKTOP=i},getNativeTypeSize:function(i){switch(i){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(i[i.length-1]==="*")return Runtime.QUANTUM_SIZE;if(i[0]==="i"){var o=parseInt(i.substr(1));return assert(o%8==0),o/8}else return 0}}},getNativeFieldSize:function(i){return Math.max(Runtime.getNativeTypeSize(i),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(i,o){return o==="double"||o==="i64"?i&7&&(assert((i&7)==4),i+=4):assert((i&3)==0),i},getAlignSize:function(i,o,f){return!f&&(i=="i64"||i=="double")?8:i?Math.min(o||(i?Runtime.getNativeFieldSize(i):0),Runtime.QUANTUM_SIZE):Math.min(o,8)},dynCall:function(i,o,f){return f&&f.length?Module["dynCall_"+i].apply(null,[o].concat(f)):Module["dynCall_"+i].call(null,o)},functionPointers:[],addFunction:function(i){for(var o=0;o>2],f=(o+i+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=f,f>=TOTAL_MEMORY){var p=enlargeMemory();if(!p)return HEAP32[DYNAMICTOP_PTR>>2]=o,0}return o},alignMemory:function(i,o){var f=i=Math.ceil(i/(o||16))*(o||16);return f},makeBigInt:function(i,o,f){var p=f?+(i>>>0)+ +(o>>>0)*4294967296:+(i>>>0)+ +(o|0)*4294967296;return p},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(i,o){i||abort("Assertion failed: "+o)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(i){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(i){var o=Runtime.stackAlloc(i.length);return writeArrayToMemory(i,o),o},stringToC:function(i){var o=0;if(i!=null&&i!==0){var f=(i.length<<2)+1;o=Runtime.stackAlloc(f),stringToUTF8(i,o,f)}return o}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(o,f,p,E,t){var k=getCFunc(o),L=[],N=0;if(E)for(var C=0;C>0]=o;break;case"i8":HEAP8[i>>0]=o;break;case"i16":HEAP16[i>>1]=o;break;case"i32":HEAP32[i>>2]=o;break;case"i64":tempI64=[o>>>0,(tempDouble=o,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[i>>2]=tempI64[0],HEAP32[i+4>>2]=tempI64[1];break;case"float":HEAPF32[i>>2]=o;break;case"double":HEAPF64[i>>3]=o;break;default:abort("invalid type for setValue: "+f)}}Module.setValue=setValue;function getValue(i,o,f){switch(o=o||"i8",o.charAt(o.length-1)==="*"&&(o="i32"),o){case"i1":return HEAP8[i>>0];case"i8":return HEAP8[i>>0];case"i16":return HEAP16[i>>1];case"i32":return HEAP32[i>>2];case"i64":return HEAP32[i>>2];case"float":return HEAPF32[i>>2];case"double":return HEAPF64[i>>3];default:abort("invalid type for setValue: "+o)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(i,o,f,p){var E,t;typeof i=="number"?(E=!0,t=i):(E=!1,t=i.length);var k=typeof o=="string"?o:null,L;if(f==ALLOC_NONE?L=p:L=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][f===void 0?ALLOC_STATIC:f](Math.max(t,k?1:o.length)),E){var p=L,N;for(assert((L&3)==0),N=L+(t&~3);p>2]=0;for(N=L+t;p>0]=0;return L}if(k==="i8")return i.subarray||i.slice?HEAPU8.set(i,L):HEAPU8.set(new Uint8Array(i),L),L;for(var C=0,U,q,W;C>0],f|=p,!(p==0&&!o||(E++,o&&E==o)););o||(o=E);var t="";if(f<128){for(var k=1024,L;o>0;)L=String.fromCharCode.apply(String,HEAPU8.subarray(i,i+Math.min(o,k))),t=t?t+L:L,i+=k,o-=k;return t}return Module.UTF8ToString(i)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(i){for(var o="";;){var f=HEAP8[i++>>0];if(!f)return o;o+=String.fromCharCode(f)}}Module.AsciiToString=AsciiToString;function stringToAscii(i,o){return writeAsciiToMemory(i,o,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(i,o){for(var f=o;i[f];)++f;if(f-o>16&&i.subarray&&UTF8Decoder)return UTF8Decoder.decode(i.subarray(o,f));for(var p,E,t,k,L,N,C="";;){if(p=i[o++],!p)return C;if(!(p&128)){C+=String.fromCharCode(p);continue}if(E=i[o++]&63,(p&224)==192){C+=String.fromCharCode((p&31)<<6|E);continue}if(t=i[o++]&63,(p&240)==224?p=(p&15)<<12|E<<6|t:(k=i[o++]&63,(p&248)==240?p=(p&7)<<18|E<<12|t<<6|k:(L=i[o++]&63,(p&252)==248?p=(p&3)<<24|E<<18|t<<12|k<<6|L:(N=i[o++]&63,p=(p&1)<<30|E<<24|t<<18|k<<12|L<<6|N))),p<65536)C+=String.fromCharCode(p);else{var U=p-65536;C+=String.fromCharCode(55296|U>>10,56320|U&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(i){return UTF8ArrayToString(HEAPU8,i)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(i,o,f,p){if(!(p>0))return 0;for(var E=f,t=f+p-1,k=0;k=55296&&L<=57343&&(L=65536+((L&1023)<<10)|i.charCodeAt(++k)&1023),L<=127){if(f>=t)break;o[f++]=L}else if(L<=2047){if(f+1>=t)break;o[f++]=192|L>>6,o[f++]=128|L&63}else if(L<=65535){if(f+2>=t)break;o[f++]=224|L>>12,o[f++]=128|L>>6&63,o[f++]=128|L&63}else if(L<=2097151){if(f+3>=t)break;o[f++]=240|L>>18,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}else if(L<=67108863){if(f+4>=t)break;o[f++]=248|L>>24,o[f++]=128|L>>18&63,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}else{if(f+5>=t)break;o[f++]=252|L>>30,o[f++]=128|L>>24&63,o[f++]=128|L>>18&63,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}}return o[f]=0,f-E}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(i,o,f){return stringToUTF8Array(i,HEAPU8,o,f)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(i){for(var o=0,f=0;f=55296&&p<=57343&&(p=65536+((p&1023)<<10)|i.charCodeAt(++f)&1023),p<=127?++o:p<=2047?o+=2:p<=65535?o+=3:p<=2097151?o+=4:p<=67108863?o+=5:o+=6}return o}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function demangle(i){var o=Module.___cxa_demangle||Module.__cxa_demangle;if(o){try{var f=i.substr(1),p=lengthBytesUTF8(f)+1,E=_malloc(p);stringToUTF8(f,E,p);var t=_malloc(4),k=o(E,0,0,t);if(getValue(t,"i32")===0&&k)return Pointer_stringify(k)}catch(L){}finally{E&&_free(E),t&&_free(t),k&&_free(k)}return i}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function demangleAll(i){var o=/__Z[\w\d_]+/g;return i.replace(o,function(f){var p=demangle(f);return f===p?f:f+" ["+p+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error(0)}catch(o){i=o}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var i=jsStackTrace();return Module.extraStackTrace&&(i+=` +`+Module.extraStackTrace()),demangleAll(i)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var o=i.shift();if(typeof o=="function"){o();continue}var f=o.func;typeof f=="number"?o.arg===void 0?Module.dynCall_v(f):Module.dynCall_vi(f,o.arg):f(o.arg===void 0?null:o.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(i){__ATPRERUN__.unshift(i)}Module.addOnPreRun=addOnPreRun;function addOnInit(i){__ATINIT__.unshift(i)}Module.addOnInit=addOnInit;function addOnPreMain(i){__ATMAIN__.unshift(i)}Module.addOnPreMain=addOnPreMain;function addOnExit(i){__ATEXIT__.unshift(i)}Module.addOnExit=addOnExit;function addOnPostRun(i){__ATPOSTRUN__.unshift(i)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(i,o,f){var p=f>0?f:lengthBytesUTF8(i)+1,E=new Array(p),t=stringToUTF8Array(i,E,0,E.length);return o&&(E.length=t),E}Module.intArrayFromString=intArrayFromString;function intArrayToString(i){for(var o=[],f=0;f255&&(p&=255),o.push(String.fromCharCode(p))}return o.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(i,o,f){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var p,E;f&&(E=o+lengthBytesUTF8(i),p=HEAP8[E]),stringToUTF8(i,o,Infinity),f&&(HEAP8[E]=p)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(i,o){HEAP8.set(i,o)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(i,o,f){for(var p=0;p>0]=i.charCodeAt(p);f||(HEAP8[o>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(o,f){var p=o>>>16,E=o&65535,t=f>>>16,k=f&65535;return E*k+(p*k+E*t<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(i){return froundBuffer[0]=i,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(i){i=i>>>0;for(var o=0;o<32;o++)if(i&1<<31-o)return o;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(i){return i<0?Math.ceil(i):Math.floor(i)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(i){return i}function addRunDependency(i){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(i){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var o=dependenciesFulfilled;dependenciesFulfilled=null,o()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(i,o,f,p,E,t,k,L){return _nbind.callbackSignatureList[i].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(i,o,f,p,E,t,k,L){return ASM_CONSTS[i](o,f,p,E,t,k,L)}function _emscripten_asm_const_iiiii(i,o,f,p,E){return ASM_CONSTS[i](o,f,p,E)}function _emscripten_asm_const_iiidddddd(i,o,f,p,E,t,k,L,N){return ASM_CONSTS[i](o,f,p,E,t,k,L,N)}function _emscripten_asm_const_iiididi(i,o,f,p,E,t,k){return ASM_CONSTS[i](o,f,p,E,t,k)}function _emscripten_asm_const_iiii(i,o,f,p){return ASM_CONSTS[i](o,f,p)}function _emscripten_asm_const_iiiid(i,o,f,p,E){return ASM_CONSTS[i](o,f,p,E)}function _emscripten_asm_const_iiiiii(i,o,f,p,E,t){return ASM_CONSTS[i](o,f,p,E,t)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(i,o){__ATEXIT__.unshift({func:i,arg:o})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(i,o,f,p){var E=arguments.length,t=E<3?o:p===null?p=Object.getOwnPropertyDescriptor(o,f):p,k;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")t=Reflect.decorate(i,o,f,p);else for(var L=i.length-1;L>=0;L--)(k=i[L])&&(t=(E<3?k(t):E>3?k(o,f,t):k(o,f))||t);return E>3&&t&&Object.defineProperty(o,f,t),t}function _defineHidden(i){return function(o,f){Object.defineProperty(o,f,{configurable:!1,enumerable:!1,value:i,writable:!0})}}var _nbind={};function __nbind_free_external(i){_nbind.externalList[i].dereference(i)}function __nbind_reference_external(i){_nbind.externalList[i].reference()}function _llvm_stackrestore(i){var o=_llvm_stacksave,f=o.LLVM_SAVEDSTACKS[i];o.LLVM_SAVEDSTACKS.splice(i,1),Runtime.stackRestore(f)}function __nbind_register_pool(i,o,f,p){_nbind.Pool.pageSize=i,_nbind.Pool.usedPtr=o/4,_nbind.Pool.rootPtr=f,_nbind.Pool.pagePtr=p/4,HEAP32[o/4]=16909060,HEAP8[o]==1&&(_nbind.bigEndian=!0),HEAP32[o/4]=0,_nbind.makeTypeKindTbl=(t={},t[1024]=_nbind.PrimitiveType,t[64]=_nbind.Int64Type,t[2048]=_nbind.BindClass,t[3072]=_nbind.BindClassPtr,t[4096]=_nbind.SharedClassPtr,t[5120]=_nbind.ArrayType,t[6144]=_nbind.ArrayType,t[7168]=_nbind.CStringType,t[9216]=_nbind.CallbackType,t[10240]=_nbind.BindType,t),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var E=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});E.proto=Module,_nbind.BindClass.list.push(E);var t}function _emscripten_set_main_loop_timing(i,o){if(Browser.mainLoop.timingMode=i,Browser.mainLoop.timingValue=o,!Browser.mainLoop.func)return 1;if(i==0)Browser.mainLoop.scheduler=function(){var k=Math.max(0,Browser.mainLoop.tickStartTime+o-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,k)},Browser.mainLoop.method="timeout";else if(i==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(i==2){if(!window.setImmediate){let t=function(k){k.source===window&&k.data===p&&(k.stopPropagation(),f.shift()())};var E=t,f=[],p="setimmediate";window.addEventListener("message",t,!0),window.setImmediate=function(L){f.push(L),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(L),window.postMessage({target:p})):window.postMessage(p,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(i,o,f,p,E){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=i,Browser.mainLoop.arg=p;var t;typeof p!="undefined"?t=function(){Module.dynCall_vi(i,p)}:t=function(){Module.dynCall_v(i)};var k=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var N=Date.now(),C=Browser.mainLoop.queue.shift();if(C.func(C.arg),Browser.mainLoop.remainingBlockers){var U=Browser.mainLoop.remainingBlockers,q=U%1==0?U-1:Math.floor(U);C.counted?Browser.mainLoop.remainingBlockers=q:(q=q+.5,Browser.mainLoop.remainingBlockers=(8*U+q)/9)}if(console.log('main loop blocker "'+C.name+'" took '+(Date.now()-N)+" ms"),Browser.mainLoop.updateStatus(),k1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(t),!(k0?_emscripten_set_main_loop_timing(0,1e3/o):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),f)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var i=Browser.mainLoop.timingMode,o=Browser.mainLoop.timingValue,f=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(f,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(i,o),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var i=Module.statusMessage||"Please wait...",o=Browser.mainLoop.remainingBlockers,f=Browser.mainLoop.expectedBlockers;o?o=6;){var rt=le>>Ue-6&63;Ue-=6,Oe+=ze[rt]}return Ue==2?(Oe+=ze[(le&3)<<4],Oe+=pe+pe):Ue==4&&(Oe+=ze[(le&15)<<2],Oe+=pe),Oe}m.src="data:audio/x-"+k.substr(-3)+";base64,"+he(t),U(m)},m.src=ne,Browser.safeSetTimeout(function(){U(m)},1e4)}else return q()},Module.preloadPlugins.push(o);function f(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var p=Module.canvas;p&&(p.requestPointerLock=p.requestPointerLock||p.mozRequestPointerLock||p.webkitRequestPointerLock||p.msRequestPointerLock||function(){},p.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},p.exitPointerLock=p.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",f,!1),document.addEventListener("mozpointerlockchange",f,!1),document.addEventListener("webkitpointerlockchange",f,!1),document.addEventListener("mspointerlockchange",f,!1),Module.elementPointerLock&&p.addEventListener("click",function(E){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),E.preventDefault())},!1))},createContext:function(i,o,f,p){if(o&&Module.ctx&&i==Module.canvas)return Module.ctx;var E,t;if(o){var k={antialias:!1,alpha:!1};if(p)for(var L in p)k[L]=p[L];t=GL.createContext(i,k),t&&(E=GL.getContext(t).GLctx)}else E=i.getContext("2d");return E?(f&&(o||assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=E,o&&GL.makeContextCurrent(t),Module.useWebGL=o,Browser.moduleContextCreatedCallbacks.forEach(function(N){N()}),Browser.init()),E):null},destroyContext:function(i,o,f){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,o,f){Browser.lockPointer=i,Browser.resizeCanvas=o,Browser.vrDevice=f,typeof Browser.lockPointer=="undefined"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas=="undefined"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice=="undefined"&&(Browser.vrDevice=null);var p=Module.canvas;function E(){Browser.isFullscreen=!1;var k=p.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===k?(p.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},p.exitFullscreen=p.exitFullscreen.bind(document),Browser.lockPointer&&p.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(k.parentNode.insertBefore(p,k),k.parentNode.removeChild(k),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(p)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",E,!1),document.addEventListener("mozfullscreenchange",E,!1),document.addEventListener("webkitfullscreenchange",E,!1),document.addEventListener("MSFullscreenChange",E,!1));var t=document.createElement("div");p.parentNode.insertBefore(t,p),t.appendChild(p),t.requestFullscreen=t.requestFullscreen||t.mozRequestFullScreen||t.msRequestFullscreen||(t.webkitRequestFullscreen?function(){t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(t.webkitRequestFullScreen?function(){t.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),f?t.requestFullscreen({vrDisplay:f}):t.requestFullscreen()},requestFullScreen:function(i,o,f){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(p,E,t){return Browser.requestFullscreen(p,E,t)},Browser.requestFullscreen(i,o,f)},nextRAF:0,fakeRequestAnimationFrame:function(i){var o=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=o+1e3/60;else for(;o+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var f=Math.max(Browser.nextRAF-o,0);setTimeout(i,f)},requestAnimationFrame:function(o){typeof window=="undefined"?Browser.fakeRequestAnimationFrame(o):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(o))},safeCallback:function(i){return function(){if(!ABORT)return i.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var i=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],i.forEach(function(o){o()})}},safeRequestAnimationFrame:function(i){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))})},safeSetTimeout:function(i,o){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))},o)},safeSetInterval:function(i,o){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&i()},o)},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var o=0;switch(i.type){case"DOMMouseScroll":o=i.detail;break;case"mousewheel":o=i.wheelDelta;break;case"wheel":o=i.deltaY;break;default:throw"unrecognized mouse wheel event: "+i.type}return o},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(Browser.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(i),Browser.mouseMovementY=Browser.getMovementY(i)),typeof SDL!="undefined"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var o=Module.canvas.getBoundingClientRect(),f=Module.canvas.width,p=Module.canvas.height,E=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,t=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var k=i.touch;if(k===void 0)return;var L=k.pageX-(E+o.left),N=k.pageY-(t+o.top);L=L*(f/o.width),N=N*(p/o.height);var C={x:L,y:N};if(i.type==="touchstart")Browser.lastTouches[k.identifier]=C,Browser.touches[k.identifier]=C;else if(i.type==="touchend"||i.type==="touchmove"){var U=Browser.touches[k.identifier];U||(U=C),Browser.lastTouches[k.identifier]=U,Browser.touches[k.identifier]=C}return}var q=i.pageX-(E+o.left),W=i.pageY-(t+o.top);q=q*(f/o.width),W=W*(p/o.height),Browser.mouseMovementX=q-Browser.mouseX,Browser.mouseMovementY=W-Browser.mouseY,Browser.mouseX=q,Browser.mouseY=W}},asyncLoad:function(i,o,f,p){var E=p?"":getUniqueRunDependency("al "+i);Module.readAsync(i,function(t){assert(t,'Loading data file "'+i+'" failed (no arrayBuffer).'),o(new Uint8Array(t)),E&&removeRunDependency(E)},function(t){if(f)f();else throw'Loading data file "'+i+'" failed.'}),E&&addRunDependency(E)},resizeListeners:[],updateResizeListeners:function(){var i=Module.canvas;Browser.resizeListeners.forEach(function(o){o(i.width,i.height)})},setCanvasSize:function(i,o,f){var p=Module.canvas;Browser.updateCanvasDimensions(p,i,o),f||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i&~8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},updateCanvasDimensions:function(i,o,f){o&&f?(i.widthNative=o,i.heightNative=f):(o=i.widthNative,f=i.heightNative);var p=o,E=f;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(p/E>2];return o},getStr:function(){var i=Pointer_stringify(SYSCALLS.get());return i},get64:function(){var i=SYSCALLS.get(),o=SYSCALLS.get();return i>=0?assert(o===0):assert(o===-1),i},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.getStreamFromFD();return FS.close(f),0}catch(p){return(typeof FS=="undefined"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall54(i,o){SYSCALLS.varargs=o;try{return 0}catch(f){return(typeof FS=="undefined"||!(f instanceof FS.ErrnoError))&&abort(f),-f.errno}}function _typeModule(i){var o=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function f(N,C,U,q,W,ne){if(C==1){var m=q&896;(m==128||m==256||m==384)&&(N="X const")}var we;return ne?we=U.replace("X",N).replace("Y",W):we=N.replace("X",U).replace("Y",W),we.replace(/([*&]) (?=[*&])/g,"$1")}function p(N,C,U,q,W){throw new Error(N+" type "+U.replace("X",C+"?")+(q?" with flag "+q:"")+" in "+W)}function E(N,C,U,q,W,ne,m,we){ne===void 0&&(ne="X"),we===void 0&&(we=1);var Se=U(N);if(Se)return Se;var he=q(N),ge=he.placeholderFlag,ze=o[ge];m&&ze&&(ne=f(m[2],m[0],ne,ze[0],"?",!0));var pe;ge==0&&(pe="Unbound"),ge>=10&&(pe="Corrupt"),we>20&&(pe="Deeply nested"),pe&&p(pe,N,ne,ge,W||"?");var Oe=he.paramList[0],le=E(Oe,C,U,q,W,ne,ze,we+1),Ue,Ge={flags:ze[0],id:N,name:"",paramList:[le]},rt=[],wt="?";switch(he.placeholderFlag){case 1:Ue=le.spec;break;case 2:if((le.flags&15360)==1024&&le.spec.ptrSize==1){Ge.flags=7168;break}case 3:case 6:case 5:Ue=le.spec,(le.flags&15360)!=2048;break;case 8:wt=""+he.paramList[1],Ge.paramList.push(he.paramList[1]);break;case 9:for(var xt=0,$e=he.paramList[1];xt<$e.length;xt++){var ft=$e[xt],Ke=E(ft,C,U,q,W,ne,ze,we+1);rt.push(Ke.name),Ge.paramList.push(Ke)}wt=rt.join(", ");break;default:break}if(Ge.name=f(ze[2],ze[0],le.name,le.flags,wt),Ue){for(var jt=0,$t=Object.keys(Ue);jt<$t.length;jt++){var at=$t[jt];Ge[at]=Ge[at]||Ue[at]}Ge.flags|=Ue.flags}return t(C,Ge)}function t(N,C){var U=C.flags,q=U&896,W=U&15360;return!C.name&&W==1024&&(C.ptrSize==1?C.name=(U&16?"":(U&8?"un":"")+"signed ")+"char":C.name=(U&8?"u":"")+(U&32?"float":"int")+(C.ptrSize*8+"_t")),C.ptrSize==8&&!(U&32)&&(W=64),W==2048&&(q==512||q==640?W=4096:q&&(W=3072)),N(W,C)}var k=function(){function N(C){this.id=C.id,this.name=C.name,this.flags=C.flags,this.spec=C}return N.prototype.toString=function(){return this.name},N}(),L={Type:k,getComplexType:E,makeType:t,structureList:o};return i.output=L,i.output||L}function __nbind_register_type(i,o){var f=_nbind.readAsciiString(o),p={flags:10240,id:i,name:f};_nbind.makeType(_nbind.constructType,p)}function __nbind_register_callback_signature(i,o){var f=_nbind.readTypeIdList(i,o),p=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[p]=_nbind.makeJSCaller(f),p}function __extends(i,o){for(var f in o)o.hasOwnProperty(f)&&(i[f]=o[f]);function p(){this.constructor=i}p.prototype=o.prototype,i.prototype=new p}function __nbind_register_class(i,o,f,p,E,t,k){var L=_nbind.readAsciiString(k),N=_nbind.readPolicyList(o),C=HEAPU32.subarray(i/4,i/4+2),U={flags:2048|(N.Value?2:0),id:C[0],name:L},q=_nbind.makeType(_nbind.constructType,U);q.ptrType=_nbind.getComplexType(C[1],_nbind.constructType,_nbind.getType,_nbind.queryType),q.destroy=_nbind.makeMethodCaller(q.ptrType,{boundID:U.id,flags:0,name:"destroy",num:0,ptr:t,title:q.name+".free",typeList:["void","uint32_t","uint32_t"]}),E&&(q.superIdList=Array.prototype.slice.call(HEAPU32.subarray(f/4,f/4+E)),q.upcastList=Array.prototype.slice.call(HEAPU32.subarray(p/4,p/4+E))),Module[q.name]=q.makeBound(N),_nbind.BindClass.list.push(q)}function _removeAccessorPrefix(i){var o=/^[Gg]et_?([A-Z]?([A-Z]?))/;return i.replace(o,function(f,p,E){return E?p:p.toLowerCase()})}function __nbind_register_function(i,o,f,p,E,t,k,L,N,C){var U=_nbind.getType(i),q=_nbind.readPolicyList(o),W=_nbind.readTypeIdList(f,p),ne;if(k==5)ne=[{direct:E,name:"__nbindConstructor",ptr:0,title:U.name+" constructor",typeList:["uint32_t"].concat(W.slice(1))},{direct:t,name:"__nbindValueConstructor",ptr:0,title:U.name+" value constructor",typeList:["void","uint32_t"].concat(W.slice(1))}];else{var m=_nbind.readAsciiString(L),we=(U.name&&U.name+".")+m;(k==3||k==4)&&(m=_removeAccessorPrefix(m)),ne=[{boundID:i,direct:t,name:m,ptr:E,title:we,typeList:W}]}for(var Se=0,he=ne;Se>2]=i),i}function _llvm_stacksave(){var i=_llvm_stacksave;return i.LLVM_SAVEDSTACKS||(i.LLVM_SAVEDSTACKS=[]),i.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),i.LLVM_SAVEDSTACKS.length-1}function ___syscall140(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.getStreamFromFD(),p=SYSCALLS.get(),E=SYSCALLS.get(),t=SYSCALLS.get(),k=SYSCALLS.get(),L=E;return FS.llseek(f,L,k),HEAP32[t>>2]=f.position,f.getdents&&L===0&&k===0&&(f.getdents=null),0}catch(N){return(typeof FS=="undefined"||!(N instanceof FS.ErrnoError))&&abort(N),-N.errno}}function ___syscall146(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.get(),p=SYSCALLS.get(),E=SYSCALLS.get(),t=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(U,q){var W=___syscall146.buffers[U];assert(W),q===0||q===10?((U===1?Module.print:Module.printErr)(UTF8ArrayToString(W,0)),W.length=0):W.push(q)});for(var k=0;k>2],N=HEAP32[p+(k*8+4)>>2],C=0;Ci.pageSize/2||o>i.pageSize-f){var p=_nbind.typeNameTbl.NBind.proto;return p.lalloc(o)}else return HEAPU32[i.usedPtr]=f+o,i.rootPtr+f},i.lreset=function(o,f){var p=HEAPU32[i.pagePtr];if(p){var E=_nbind.typeNameTbl.NBind.proto;E.lreset(o,f)}else HEAPU32[i.usedPtr]=o},i}();_nbind.Pool=Pool;function constructType(i,o){var f=i==10240?_nbind.makeTypeNameTbl[o.name]||_nbind.BindType:_nbind.makeTypeKindTbl[i],p=new f(o);return typeIdTbl[o.id]=p,_nbind.typeNameTbl[o.name]=p,p}_nbind.constructType=constructType;function getType(i){return typeIdTbl[i]}_nbind.getType=getType;function queryType(i){var o=HEAPU8[i],f=_nbind.structureList[o][1];i/=4,f<0&&(++i,f=HEAPU32[i]+1);var p=Array.prototype.slice.call(HEAPU32.subarray(i+1,i+1+f));return o==9&&(p=[p[0],p.slice(1)]),{paramList:p,placeholderFlag:o}}_nbind.queryType=queryType;function getTypes(i,o){return i.map(function(f){return typeof f=="number"?_nbind.getComplexType(f,constructType,getType,queryType,o):_nbind.typeNameTbl[f]})}_nbind.getTypes=getTypes;function readTypeIdList(i,o){return Array.prototype.slice.call(HEAPU32,i/4,i/4+o)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(i){for(var o=i;HEAPU8[o++];);return String.fromCharCode.apply("",HEAPU8.subarray(i,o-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(i){var o={};if(i)for(;;){var f=HEAPU32[i/4];if(!f)break;o[readAsciiString(f)]=!0,i+=4}return o}_nbind.readPolicyList=readPolicyList;function getDynCall(i,o){var f={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},p=i.map(function(t){return f[t.name]||"i"}).join(""),E=Module["dynCall_"+p];if(!E)throw new Error("dynCall_"+p+" not found for "+o+"("+i.map(function(t){return t.name}).join(", ")+")");return E}_nbind.getDynCall=getDynCall;function addMethod(i,o,f,p){var E=i[o];i.hasOwnProperty(o)&&E?((E.arity||E.arity===0)&&(E=_nbind.makeOverloader(E,E.arity),i[o]=E),E.addMethod(f,p)):(f.arity=p,i[o]=f)}_nbind.addMethod=addMethod;function throwError(i){throw new Error(i)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.heap=HEAPU32,f.ptrSize=4,f}return o.prototype.needsWireRead=function(f){return!!this.wireRead||!!this.makeWireRead},o.prototype.needsWireWrite=function(f){return!!this.wireWrite||!!this.makeWireWrite},o}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(i){__extends(o,i);function o(f){var p=i.call(this,f)||this,E=f.flags&32?{32:HEAPF32,64:HEAPF64}:f.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return p.heap=E[f.ptrSize*8],p.ptrSize=f.ptrSize,p}return o.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},o.prototype.makeWireWrite=function(f,p){return p&&p.Strict&&function(E){if(typeof E=="number")return E;throw new Error("Type mismatch")}},o}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(i,o){if(i==null){if(o&&o.Nullable)return 0;throw new Error("Type mismatch")}if(o&&o.Strict){if(typeof i!="string")throw new Error("Type mismatch")}else i=i.toString();var f=Module.lengthBytesUTF8(i)+1,p=_nbind.Pool.lalloc(f);return Module.stringToUTF8Array(i,HEAPU8,p,f),p}_nbind.pushCString=pushCString;function popCString(i){return i===0?null:Module.Pointer_stringify(i)}_nbind.popCString=popCString;var CStringType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=popCString,f.wireWrite=pushCString,f.readResources=[_nbind.resources.pool],f.writeResources=[_nbind.resources.pool],f}return o.prototype.makeWireWrite=function(f,p){return function(E){return pushCString(E,p)}},o}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=function(p){return!!p},f}return o.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},o.prototype.makeWireRead=function(f){return"!!("+f+")"},o.prototype.makeWireWrite=function(f,p){return p&&p.Strict&&function(E){if(typeof E=="boolean")return E;throw new Error("Type mismatch")}||f},o}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function i(){}return i.prototype.persist=function(){this.__nbindState|=1},i}();_nbind.Wrapper=Wrapper;function makeBound(i,o){var f=function(p){__extends(E,p);function E(t,k,L,N){var C=p.call(this)||this;if(!(C instanceof E))return new(Function.prototype.bind.apply(E,Array.prototype.concat.apply([null],arguments)));var U=k,q=L,W=N;if(t!==_nbind.ptrMarker){var ne=C.__nbindConstructor.apply(C,arguments);U=4096|512,W=HEAPU32[ne/4],q=HEAPU32[ne/4+1]}var m={configurable:!0,enumerable:!1,value:null,writable:!1},we={__nbindFlags:U,__nbindPtr:q};W&&(we.__nbindShared=W,_nbind.mark(C));for(var Se=0,he=Object.keys(we);Se>=1;var f=_nbind.valueList[i];return _nbind.valueList[i]=firstFreeValue,firstFreeValue=i,f}else{if(o)return _nbind.popShared(i,o);throw new Error("Invalid value slot "+i)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(i){return typeof i=="number"?i:pushValue(i)*4096+valueBase}function pop64(i){return i=3?k=Buffer.from(t):k=new Buffer(t),k.copy(p)}else getBuffer(p).set(t)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var i=0,o=dirtyList;i>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(i,o,f,p,E,t){try{Module.dynCall_viiiii(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_vif(i,o,f){try{Module.dynCall_vif(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_vid(i,o,f){try{Module.dynCall_vid(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_fiff(i,o,f,p){try{return Module.dynCall_fiff(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_vi(i,o){try{Module.dynCall_vi(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_vii(i,o,f){try{Module.dynCall_vii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_ii(i,o){try{return Module.dynCall_ii(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_viddi(i,o,f,p,E){try{Module.dynCall_viddi(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_vidd(i,o,f,p){try{Module.dynCall_vidd(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_iiii(i,o,f,p){try{return Module.dynCall_iiii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_diii(i,o,f,p){try{return Module.dynCall_diii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_di(i,o){try{return Module.dynCall_di(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_iid(i,o,f){try{return Module.dynCall_iid(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_iii(i,o,f){try{return Module.dynCall_iii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_viiddi(i,o,f,p,E,t){try{Module.dynCall_viiddi(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_viiiiii(i,o,f,p,E,t,k){try{Module.dynCall_viiiiii(i,o,f,p,E,t,k)}catch(L){if(typeof L!="number"&&L!=="longjmp")throw L;Module.setThrew(1,0)}}function invoke_dii(i,o,f){try{return Module.dynCall_dii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_i(i){try{return Module.dynCall_i(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iiiiii(i,o,f,p,E,t){try{return Module.dynCall_iiiiii(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_viiid(i,o,f,p,E){try{Module.dynCall_viiid(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viififi(i,o,f,p,E,t,k){try{Module.dynCall_viififi(i,o,f,p,E,t,k)}catch(L){if(typeof L!="number"&&L!=="longjmp")throw L;Module.setThrew(1,0)}}function invoke_viii(i,o,f,p){try{Module.dynCall_viii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_v(i){try{Module.dynCall_v(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viid(i,o,f,p){try{Module.dynCall_viid(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_idd(i,o,f){try{return Module.dynCall_idd(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_viiii(i,o,f,p,E){try{Module.dynCall_viiii(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:Infinity},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(i,o,f){var p=new i.Int8Array(f),E=new i.Int16Array(f),t=new i.Int32Array(f),k=new i.Uint8Array(f),L=new i.Uint16Array(f),N=new i.Uint32Array(f),C=new i.Float32Array(f),U=new i.Float64Array(f),q=o.DYNAMICTOP_PTR|0,W=o.tempDoublePtr|0,ne=o.ABORT|0,m=o.STACKTOP|0,we=o.STACK_MAX|0,Se=o.cttz_i8|0,he=o.___dso_handle|0,ge=0,ze=0,pe=0,Oe=0,le=i.NaN,Ue=i.Infinity,Ge=0,rt=0,wt=0,xt=0,$e=0,ft=0,Ke=i.Math.floor,jt=i.Math.abs,$t=i.Math.sqrt,at=i.Math.pow,Q=i.Math.cos,ae=i.Math.sin,Ce=i.Math.tan,ue=i.Math.acos,je=i.Math.asin,ct=i.Math.atan,At=i.Math.atan2,en=i.Math.exp,ln=i.Math.log,An=i.Math.ceil,nr=i.Math.imul,un=i.Math.min,Wt=i.Math.max,vr=i.Math.clz32,w=i.Math.fround,Ut=o.abort,Vn=o.assert,fr=o.enlargeMemory,Fr=o.getTotalMemory,ur=o.abortOnCannotGrowMemory,br=o.invoke_viiiii,Kt=o.invoke_vif,vu=o.invoke_vid,a0=o.invoke_fiff,So=o.invoke_vi,Go=o.invoke_vii,Os=o.invoke_ii,Yo=o.invoke_viddi,Ko=o.invoke_vidd,qt=o.invoke_iiii,_i=o.invoke_diii,eu=o.invoke_di,ai=o.invoke_iid,mr=o.invoke_iii,Xo=o.invoke_viiddi,W0=o.invoke_viiiiii,Lu=o.invoke_dii,V0=o.invoke_i,Hr=o.invoke_iiiiii,To=o.invoke_viiid,Co=o.invoke_viififi,L0=o.invoke_viii,tu=o.invoke_v,Si=o.invoke_viid,ks=o.invoke_idd,Hl=o.invoke_viiii,F0=o._emscripten_asm_const_iiiii,f0=o._emscripten_asm_const_iiidddddd,Pr=o._emscripten_asm_const_iiiid,Ei=o.__nbind_reference_external,G0=o._emscripten_asm_const_iiiiiiii,fi=o._removeAccessorPrefix,Zt=o._typeModule,Ln=o.__nbind_register_pool,Di=o.__decorate,ci=o._llvm_stackrestore,Ht=o.___cxa_atexit,Du=o.__extends,Yi=o.__nbind_get_value_object,Y0=o.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Ui=o._emscripten_set_main_loop_timing,Wl=o.__nbind_register_primitive,xo=o.__nbind_register_type,ni=o._emscripten_memcpy_big,oo=o.__nbind_register_function,Vl=o.___setErrNo,Ao=o.__nbind_register_class,Ms=o.__nbind_finish,Xn=o._abort,Qo=o._nbind_value,lo=o._llvm_stacksave,b0=o.___syscall54,yl=o._defineHidden,Ro=o._emscripten_set_main_loop,Et=o._emscripten_get_now,Pt=o.__nbind_register_callback_signature,Bn=o._emscripten_asm_const_iiiiii,Ir=o.__nbind_free_external,ji=o._emscripten_asm_const_iiii,Wr=o._emscripten_asm_const_iiididi,wu=o.___syscall6,c0=o._atexit,Ti=o.___syscall140,d0=o.___syscall146,as=w(0);let St=w(0);function so(e){e=e|0;var n=0;return n=m,m=m+e|0,m=m+15&-16,n|0}function Jo(){return m|0}function Gl(e){e=e|0,m=e}function Fu(e,n){e=e|0,n=n|0,m=e,we=n}function fs(e,n){e=e|0,n=n|0,ge||(ge=e,ze=n)}function P0(e){e=e|0,ft=e}function X(){return ft|0}function _e(){var e=0,n=0;pr(8104,8,400)|0,pr(8504,408,540)|0,e=9044,n=e+44|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));p[9088]=0,p[9089]=1,t[2273]=0,t[2274]=948,t[2275]=948,Ht(17,8104,he|0)|0}function Ne(e){e=e|0,ic(e+948|0)}function Me(e){return e=w(e),((cr(e)|0)&2147483647)>>>0>2139095040|0}function dt(e,n,r){e=e|0,n=n|0,r=r|0;e:do if(t[e+(n<<3)+4>>2]|0)e=e+(n<<3)|0;else{if((n|2|0)==3?t[e+60>>2]|0:0){e=e+56|0;break}switch(n|0){case 0:case 2:case 4:case 5:{if(t[e+52>>2]|0){e=e+48|0;break e}break}default:}if(t[e+68>>2]|0){e=e+64|0;break}else{e=(n|1|0)==5?948:r;break}}while(0);return e|0}function Hn(e){e=e|0;var n=0;return n=C_(1e3)|0,Dn(e,(n|0)!=0,2456),t[2276]=(t[2276]|0)+1,pr(n|0,8104,1e3)|0,p[e+2>>0]|0&&(t[n+4>>2]=2,t[n+12>>2]=4),t[n+976>>2]=e,n|0}function Dn(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,_l(e,5,3197,u)),m=l}function or(){return Hn(956)|0}function mi(e){e=e|0;var n=0;return n=cn(1e3)|0,Su(n,e),Dn(t[e+976>>2]|0,1,2456),t[2276]=(t[2276]|0)+1,t[n+944>>2]=0,n|0}function Su(e,n){e=e|0,n=n|0;var r=0;pr(e|0,n|0,948)|0,na(e+948|0,n+948|0),r=e+960|0,e=n+960|0,n=r+40|0;do t[r>>2]=t[e>>2],r=r+4|0,e=e+4|0;while((r|0)<(n|0))}function bu(e){e=e|0;var n=0,r=0,u=0,l=0;if(n=e+944|0,r=t[n>>2]|0,r|0&&(Pu(r+948|0,e)|0,t[n>>2]=0),r=mu(e)|0,r|0){n=0;do t[(yi(e,n)|0)+944>>2]=0,n=n+1|0;while((n|0)!=(r|0))}r=e+948|0,u=t[r>>2]|0,l=e+952|0,n=t[l>>2]|0,(n|0)!=(u|0)&&(t[l>>2]=n+(~((n+-4-u|0)>>>2)<<2)),Oo(r),x_(e),t[2276]=(t[2276]|0)+-1}function Pu(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0;u=t[e>>2]|0,D=e+4|0,r=t[D>>2]|0,s=r;e:do if((u|0)==(r|0))l=u,h=4;else for(e=u;;){if((t[e>>2]|0)==(n|0)){l=e,h=4;break e}if(e=e+4|0,(e|0)==(r|0)){e=0;break}}while(0);return(h|0)==4&&((l|0)!=(r|0)?(u=l+4|0,e=s-u|0,n=e>>2,n&&(Iy(l|0,u|0,e|0)|0,r=t[D>>2]|0),e=l+(n<<2)|0,(r|0)==(e|0)||(t[D>>2]=r+(~((r+-4-e|0)>>>2)<<2)),e=1):e=0),e|0}function mu(e){return e=e|0,(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2|0}function yi(e,n){e=e|0,n=n|0;var r=0;return r=t[e+948>>2]|0,(t[e+952>>2]|0)-r>>2>>>0>n>>>0?e=t[r+(n<<2)>>2]|0:e=0,e|0}function Oo(e){e=e|0;var n=0,r=0,u=0,l=0;u=m,m=m+32|0,n=u,l=t[e>>2]|0,r=(t[e+4>>2]|0)-l|0,((t[e+8>>2]|0)-l|0)>>>0>r>>>0&&(l=r>>2,Y(n,l,l,e+8|0),Qr(e,n),Jr(n)),m=u}function Tu(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;M=mu(e)|0;do if(M|0){if((t[(yi(e,0)|0)+944>>2]|0)==(e|0)){if(!(Pu(e+948|0,n)|0))break;pr(n+400|0,8504,540)|0,t[n+944>>2]=0,Gn(e);break}h=t[(t[e+976>>2]|0)+12>>2]|0,D=e+948|0,S=(h|0)==0,r=0,s=0;do u=t[(t[D>>2]|0)+(s<<2)>>2]|0,(u|0)==(n|0)?Gn(e):(l=mi(u)|0,t[(t[D>>2]|0)+(r<<2)>>2]=l,t[l+944>>2]=e,S||$E[h&15](u,l,e,r),r=r+1|0),s=s+1|0;while((s|0)!=(M|0));if(r>>>0>>0){S=e+948|0,D=e+952|0,h=r,r=t[D>>2]|0;do s=(t[S>>2]|0)+(h<<2)|0,u=s+4|0,l=r-u|0,n=l>>2,n&&(Iy(s|0,u|0,l|0)|0,r=t[D>>2]|0),l=r,u=s+(n<<2)|0,(l|0)!=(u|0)&&(r=l+(~((l+-4-u|0)>>>2)<<2)|0,t[D>>2]=r),h=h+1|0;while((h|0)!=(M|0))}}while(0)}function ao(e){e=e|0;var n=0,r=0,u=0,l=0;Iu(e,(mu(e)|0)==0,2491),Iu(e,(t[e+944>>2]|0)==0,2545),n=e+948|0,r=t[n>>2]|0,u=e+952|0,l=t[u>>2]|0,(l|0)!=(r|0)&&(t[u>>2]=l+(~((l+-4-r|0)>>>2)<<2)),Oo(n),n=e+976|0,r=t[n>>2]|0,pr(e|0,8104,1e3)|0,p[r+2>>0]|0&&(t[e+4>>2]=2,t[e+12>>2]=4),t[n>>2]=r}function Iu(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,sr(e,5,3197,u)),m=l}function Oa(){return t[2276]|0}function p0(){var e=0;return e=C_(20)|0,Zs((e|0)!=0,2592),t[2277]=(t[2277]|0)+1,t[e>>2]=t[239],t[e+4>>2]=t[240],t[e+8>>2]=t[241],t[e+12>>2]=t[242],t[e+16>>2]=t[243],e|0}function Zs(e,n){e=e|0,n=n|0;var r=0,u=0;u=m,m=m+16|0,r=u,e||(t[r>>2]=n,sr(0,5,3197,r)),m=u}function K0(e){e=e|0,x_(e),t[2277]=(t[2277]|0)+-1}function $s(e,n){e=e|0,n=n|0;var r=0;n?(Iu(e,(mu(e)|0)==0,2629),r=1):(r=0,n=0),t[e+964>>2]=n,t[e+988>>2]=r}function ka(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+8|0,l=u+4|0,h=u,t[l>>2]=n,Iu(e,(t[n+944>>2]|0)==0,2709),Iu(e,(t[e+964>>2]|0)==0,2763),cs(e),n=e+948|0,t[h>>2]=(t[n>>2]|0)+(r<<2),t[s>>2]=t[h>>2],w0(n,s,l)|0,t[(t[l>>2]|0)+944>>2]=e,Gn(e),m=u}function cs(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;if(r=mu(e)|0,r|0?(t[(yi(e,0)|0)+944>>2]|0)!=(e|0):0){u=t[(t[e+976>>2]|0)+12>>2]|0,l=e+948|0,s=(u|0)==0,n=0;do h=t[(t[l>>2]|0)+(n<<2)>>2]|0,D=mi(h)|0,t[(t[l>>2]|0)+(n<<2)>>2]=D,t[D+944>>2]=e,s||$E[u&15](h,D,e,n),n=n+1|0;while((n|0)!=(r|0))}}function w0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0;Qe=m,m=m+64|0,P=Qe+52|0,D=Qe+48|0,K=Qe+28|0,Pe=Qe+24|0,Ee=Qe+20|0,ve=Qe,u=t[e>>2]|0,s=u,n=u+((t[n>>2]|0)-s>>2<<2)|0,u=e+4|0,l=t[u>>2]|0,h=e+8|0;do if(l>>>0<(t[h>>2]|0)>>>0){if((n|0)==(l|0)){t[n>>2]=t[r>>2],t[u>>2]=(t[u>>2]|0)+4;break}Ur(e,n,l,n+4|0),n>>>0<=r>>>0&&(r=(t[u>>2]|0)>>>0>r>>>0?r+4|0:r),t[n>>2]=t[r>>2]}else{u=(l-s>>2)+1|0,l=x0(e)|0,l>>>0>>0&&li(e),O=t[e>>2]|0,M=(t[h>>2]|0)-O|0,s=M>>1,Y(ve,M>>2>>>0>>1>>>0?s>>>0>>0?u:s:l,n-O>>2,e+8|0),O=ve+8|0,u=t[O>>2]|0,s=ve+12|0,M=t[s>>2]|0,h=M,S=u;do if((u|0)==(M|0)){if(M=ve+4|0,u=t[M>>2]|0,We=t[ve>>2]|0,l=We,u>>>0<=We>>>0){u=h-l>>1,u=(u|0)==0?1:u,Y(K,u,u>>>2,t[ve+16>>2]|0),t[Pe>>2]=t[M>>2],t[Ee>>2]=t[O>>2],t[D>>2]=t[Pe>>2],t[P>>2]=t[Ee>>2],hi(K,D,P),u=t[ve>>2]|0,t[ve>>2]=t[K>>2],t[K>>2]=u,u=K+4|0,We=t[M>>2]|0,t[M>>2]=t[u>>2],t[u>>2]=We,u=K+8|0,We=t[O>>2]|0,t[O>>2]=t[u>>2],t[u>>2]=We,u=K+12|0,We=t[s>>2]|0,t[s>>2]=t[u>>2],t[u>>2]=We,Jr(K),u=t[O>>2]|0;break}s=u,h=((s-l>>2)+1|0)/-2|0,D=u+(h<<2)|0,l=S-s|0,s=l>>2,s&&(Iy(D|0,u|0,l|0)|0,u=t[M>>2]|0),We=D+(s<<2)|0,t[O>>2]=We,t[M>>2]=u+(h<<2),u=We}while(0);t[u>>2]=t[r>>2],t[O>>2]=(t[O>>2]|0)+4,n=lt(e,ve,n)|0,Jr(ve)}while(0);return m=Qe,n|0}function Gn(e){e=e|0;var n=0;do{if(n=e+984|0,p[n>>0]|0)break;p[n>>0]=1,C[e+504>>2]=w(le),e=t[e+944>>2]|0}while((e|0)!=0)}function ic(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function ri(e){return e=e|0,t[e+944>>2]|0}function Gr(e){e=e|0,Iu(e,(t[e+964>>2]|0)!=0,2832),Gn(e)}function Yl(e){return e=e|0,(p[e+984>>0]|0)!=0|0}function ea(e,n){e=e|0,n=n|0,MI(e,n,400)|0&&(pr(e|0,n|0,400)|0,Gn(e))}function lf(e){e=e|0;var n=St;return n=w(C[e+44>>2]),e=Me(n)|0,w(e?w(0):n)}function Ns(e){e=e|0;var n=St;return n=w(C[e+48>>2]),Me(n)|0&&(n=p[(t[e+976>>2]|0)+2>>0]|0?w(1):w(0)),w(n)}function Ma(e,n){e=e|0,n=n|0,t[e+980>>2]=n}function Ls(e){return e=e|0,t[e+980>>2]|0}function h0(e,n){e=e|0,n=n|0;var r=0;r=e+4|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function Fs(e){return e=e|0,t[e+4>>2]|0}function Ni(e,n){e=e|0,n=n|0;var r=0;r=e+8|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function B(e){return e=e|0,t[e+8>>2]|0}function z(e,n){e=e|0,n=n|0;var r=0;r=e+12|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function G(e){return e=e|0,t[e+12>>2]|0}function $(e,n){e=e|0,n=n|0;var r=0;r=e+16|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function De(e){return e=e|0,t[e+16>>2]|0}function me(e,n){e=e|0,n=n|0;var r=0;r=e+20|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function xe(e){return e=e|0,t[e+20>>2]|0}function Z(e,n){e=e|0,n=n|0;var r=0;r=e+24|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function ke(e){return e=e|0,t[e+24>>2]|0}function Xe(e,n){e=e|0,n=n|0;var r=0;r=e+28|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function ht(e){return e=e|0,t[e+28>>2]|0}function ie(e,n){e=e|0,n=n|0;var r=0;r=e+32|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function qe(e){return e=e|0,t[e+32>>2]|0}function tt(e,n){e=e|0,n=n|0;var r=0;r=e+36|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function Tt(e){return e=e|0,t[e+36>>2]|0}function kt(e,n){e=e|0,n=w(n);var r=0;r=e+40|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function bt(e,n){e=e|0,n=w(n);var r=0;r=e+44|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function on(e,n){e=e|0,n=w(n);var r=0;r=e+48|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function tn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+52|0,l=e+56|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Lt(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+52|0,r=e+56|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function gn(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+52|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function lr(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Qn(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function _r(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+132+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Cn(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Ar(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function v0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+60+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Rr(e,n){e=e|0,n=n|0;var r=0;r=e+60+(n<<3)+4|0,(t[r>>2]|0)!=3&&(C[e+60+(n<<3)>>2]=w(le),t[r>>2]=3,Gn(e))}function nt(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function _t(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Ze(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+204+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Ft(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+276+(n<<3)|0,n=e+276+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function nn(e,n){return e=e|0,n=n|0,w(C[e+276+(n<<3)>>2])}function sn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+348|0,l=e+352|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Yn(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+348|0,r=e+352|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function yr(e){e=e|0;var n=0;n=e+352|0,(t[n>>2]|0)!=3&&(C[e+348>>2]=w(le),t[n>>2]=3,Gn(e))}function nu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+348|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Cu(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+356|0,l=e+360|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function S0(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+356|0,r=e+360|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function X0(e){e=e|0;var n=0;n=e+360|0,(t[n>>2]|0)!=3&&(C[e+356>>2]=w(le),t[n>>2]=3,Gn(e))}function xu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+356|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function di(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+364|0,l=e+368|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ko(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+364|0,l=e+368|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Zo(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+364|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function sf(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+372|0,l=e+376|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function gl(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+372|0,l=e+376|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function af(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+372|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Mo(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+380|0,l=e+384|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ds(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+380|0,l=e+384|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function bs(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+380|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function No(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+388|0,l=e+392|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Lo(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+388|0,l=e+392|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ps(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+388|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Vu(e,n){e=e|0,n=w(n);var r=0;r=e+396|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function yu(e){return e=e|0,w(C[e+396>>2])}function pi(e){return e=e|0,w(C[e+400>>2])}function T0(e){return e=e|0,w(C[e+404>>2])}function Q0(e){return e=e|0,w(C[e+408>>2])}function Fo(e){return e=e|0,w(C[e+412>>2])}function ta(e){return e=e|0,w(C[e+416>>2])}function Kl(e){return e=e|0,w(C[e+420>>2])}function Ki(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+424+(n<<2)>>2])}function Yr(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+448+(n<<2)>>2])}function fo(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+472+(n<<2)>>2])}function Oi(e,n){e=e|0,n=n|0;var r=0,u=St;return r=t[e+4>>2]|0,(r|0)==(t[n+4>>2]|0)?r?(u=w(C[e>>2]),e=w(jt(w(u-w(C[n>>2]))))>2]=0,t[u+4>>2]=0,t[u+8>>2]=0,Y0(u|0,e|0,n|0,0),sr(e,3,(p[u+11>>0]|0)<0?t[u>>2]|0:u,r),eB(u),m=r}function J0(e,n,r,u){e=w(e),n=w(n),r=r|0,u=u|0;var l=St;e=w(e*n),l=w(YE(e,w(1)));do if(gi(l,w(0))|0)e=w(e-l);else{if(e=w(e-l),gi(l,w(1))|0){e=w(e+w(1));break}if(r){e=w(e+w(1));break}u||(l>w(.5)?l=w(1):(u=gi(l,w(.5))|0,l=w(u?1:0)),e=w(e+l))}while(0);return w(e/n)}function Z0(e,n,r,u,l,s,h,D,S,M,O,P,K){e=e|0,n=w(n),r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,D=w(D),S=w(S),M=w(M),O=w(O),P=w(P),K=K|0;var Pe=0,Ee=St,ve=St,Qe=St,We=St,st=St,Re=St;return S>2]),Ee!=w(0)):0)?(Qe=w(J0(n,Ee,0,0)),We=w(J0(u,Ee,0,0)),ve=w(J0(s,Ee,0,0)),Ee=w(J0(D,Ee,0,0))):(ve=s,Qe=n,Ee=D,We=u),(l|0)==(e|0)?Pe=gi(ve,Qe)|0:Pe=0,(h|0)==(r|0)?K=gi(Ee,We)|0:K=0,((Pe?0:(st=w(n-O),!(Te(e,st,S)|0)))?!(et(e,st,l,S)|0):0)?Pe=Ve(e,st,l,s,S)|0:Pe=1,((K?0:(Re=w(u-P),!(Te(r,Re,M)|0)))?!(et(r,Re,h,M)|0):0)?K=Ve(r,Re,h,D,M)|0:K=1,K=Pe&K),K|0}function Te(e,n,r){return e=e|0,n=w(n),r=w(r),(e|0)==1?e=gi(n,r)|0:e=0,e|0}function et(e,n,r,u){return e=e|0,n=w(n),r=r|0,u=w(u),(e|0)==2&(r|0)==0?n>=u?e=1:e=gi(n,u)|0:e=0,e|0}function Ve(e,n,r,u,l){return e=e|0,n=w(n),r=r|0,u=w(u),l=w(l),(e|0)==2&(r|0)==2&u>n?l<=n?e=1:e=gi(n,l)|0:e=0,e|0}function Gt(e,n,r,u,l,s,h,D,S,M,O){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,M=M|0,O=O|0;var P=0,K=0,Pe=0,Ee=0,ve=St,Qe=St,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=St,ts=St,ns=St,rs=0,Xs=0;On=m,m=m+160|0,mn=On+152|0,Nn=On+120|0,Lr=On+104|0,Re=On+72|0,Ee=On+56|0,Qt=On+8|0,st=On,Fe=(t[2279]|0)+1|0,t[2279]=Fe,hr=e+984|0,((p[hr>>0]|0)!=0?(t[e+512>>2]|0)!=(t[2278]|0):0)?We=4:(t[e+516>>2]|0)==(u|0)?kr=0:We=4,(We|0)==4&&(t[e+520>>2]=0,t[e+924>>2]=-1,t[e+928>>2]=-1,C[e+932>>2]=w(-1),C[e+936>>2]=w(-1),kr=1);e:do if(t[e+964>>2]|0)if(ve=w(Yt(e,2,h)),Qe=w(Yt(e,0,h)),P=e+916|0,ns=w(C[P>>2]),ts=w(C[e+920>>2]),Zi=w(C[e+932>>2]),Z0(l,n,s,r,t[e+924>>2]|0,ns,t[e+928>>2]|0,ts,Zi,w(C[e+936>>2]),ve,Qe,O)|0)We=22;else if(Pe=t[e+520>>2]|0,!Pe)We=21;else for(K=0;;){if(P=e+524+(K*24|0)|0,Zi=w(C[P>>2]),ts=w(C[e+524+(K*24|0)+4>>2]),ns=w(C[e+524+(K*24|0)+16>>2]),Z0(l,n,s,r,t[e+524+(K*24|0)+8>>2]|0,Zi,t[e+524+(K*24|0)+12>>2]|0,ts,ns,w(C[e+524+(K*24|0)+20>>2]),ve,Qe,O)|0){We=22;break e}if(K=K+1|0,K>>>0>=Pe>>>0){We=21;break}}else{if(S){if(P=e+916|0,!(gi(w(C[P>>2]),n)|0)){We=21;break}if(!(gi(w(C[e+920>>2]),r)|0)){We=21;break}if((t[e+924>>2]|0)!=(l|0)){We=21;break}P=(t[e+928>>2]|0)==(s|0)?P:0,We=22;break}if(Pe=t[e+520>>2]|0,!Pe)We=21;else for(K=0;;){if(P=e+524+(K*24|0)|0,((gi(w(C[P>>2]),n)|0?gi(w(C[e+524+(K*24|0)+4>>2]),r)|0:0)?(t[e+524+(K*24|0)+8>>2]|0)==(l|0):0)?(t[e+524+(K*24|0)+12>>2]|0)==(s|0):0){We=22;break e}if(K=K+1|0,K>>>0>=Pe>>>0){We=21;break}}}while(0);do if((We|0)==21)p[11697]|0?(P=0,We=28):(P=0,We=31);else if((We|0)==22){if(K=(p[11697]|0)!=0,!((P|0)!=0&(kr^1)))if(K){We=28;break}else{We=31;break}Ee=P+16|0,t[e+908>>2]=t[Ee>>2],Pe=P+20|0,t[e+912>>2]=t[Pe>>2],(p[11698]|0)==0|K^1||(t[st>>2]=Br(Fe)|0,t[st+4>>2]=Fe,sr(e,4,2972,st),K=t[e+972>>2]|0,K|0&&M1[K&127](e),l=wn(l,S)|0,s=wn(s,S)|0,Xs=+w(C[Ee>>2]),rs=+w(C[Pe>>2]),t[Qt>>2]=l,t[Qt+4>>2]=s,U[Qt+8>>3]=+n,U[Qt+16>>3]=+r,U[Qt+24>>3]=Xs,U[Qt+32>>3]=rs,t[Qt+40>>2]=M,sr(e,4,2989,Qt))}while(0);return(We|0)==28&&(K=Br(Fe)|0,t[Ee>>2]=K,t[Ee+4>>2]=Fe,t[Ee+8>>2]=kr?3047:11699,sr(e,4,3038,Ee),K=t[e+972>>2]|0,K|0&&M1[K&127](e),Qt=wn(l,S)|0,We=wn(s,S)|0,t[Re>>2]=Qt,t[Re+4>>2]=We,U[Re+8>>3]=+n,U[Re+16>>3]=+r,t[Re+24>>2]=M,sr(e,4,3049,Re),We=31),(We|0)==31&&(fu(e,n,r,u,l,s,h,D,S,O),p[11697]|0&&(K=t[2279]|0,Qt=Br(K)|0,t[Lr>>2]=Qt,t[Lr+4>>2]=K,t[Lr+8>>2]=kr?3047:11699,sr(e,4,3083,Lr),K=t[e+972>>2]|0,K|0&&M1[K&127](e),Qt=wn(l,S)|0,Lr=wn(s,S)|0,rs=+w(C[e+908>>2]),Xs=+w(C[e+912>>2]),t[Nn>>2]=Qt,t[Nn+4>>2]=Lr,U[Nn+8>>3]=rs,U[Nn+16>>3]=Xs,t[Nn+24>>2]=M,sr(e,4,3092,Nn)),t[e+516>>2]=u,P||(K=e+520|0,P=t[K>>2]|0,(P|0)==16&&(p[11697]|0&&sr(e,4,3124,mn),t[K>>2]=0,P=0),S?P=e+916|0:(t[K>>2]=P+1,P=e+524+(P*24|0)|0),C[P>>2]=n,C[P+4>>2]=r,t[P+8>>2]=l,t[P+12>>2]=s,t[P+16>>2]=t[e+908>>2],t[P+20>>2]=t[e+912>>2],P=0)),S&&(t[e+416>>2]=t[e+908>>2],t[e+420>>2]=t[e+912>>2],p[e+985>>0]=1,p[hr>>0]=0),t[2279]=(t[2279]|0)+-1,t[e+512>>2]=t[2278],m=On,kr|(P|0)==0|0}function Yt(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(Li(e,n,r)),w(u+w(A0(e,n,r)))}function sr(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=m,m=m+16|0,l=s,t[l>>2]=u,e?u=t[e+976>>2]|0:u=0,Ps(u,e,n,r,l),m=s}function Br(e){return e=e|0,(e>>>0>60?3201:3201+(60-e)|0)|0}function wn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+32|0,r=l+12|0,u=l,t[r>>2]=t[254],t[r+4>>2]=t[255],t[r+8>>2]=t[256],t[u>>2]=t[257],t[u+4>>2]=t[258],t[u+8>>2]=t[259],(e|0)>2?e=11699:e=t[(n?u:r)+(e<<2)>>2]|0,m=l,e|0}function fu(e,n,r,u,l,s,h,D,S,M){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,M=M|0;var O=0,P=0,K=0,Pe=0,Ee=St,ve=St,Qe=St,We=St,st=St,Re=St,Fe=St,Qt=0,Lr=0,Nn=0,mn=St,hr=St,kr=0,On=St,Zi=0,ts=0,ns=0,rs=0,Xs=0,$2=0,ed=0,Za=0,td=0,Oc=0,kc=0,nd=0,rd=0,id=0,si=0,$a=0,ud=0,zf=0,od=St,ld=St,Mc=St,Nc=St,qf=St,Il=0,Aa=0,As=0,ef=0,L1=0,F1=St,Lc=St,b1=St,P1=St,Bl=St,vl=St,tf=0,lu=St,I1=St,is=St,Hf=St,us=St,Wf=St,B1=0,U1=0,Vf=St,Ul=St,nf=0,j1=0,z1=0,q1=0,gr=St,Mu=0,ml=0,os=0,jl=0,Tr=0,Fn=0,rf=0,hn=St,H1=0,u0=0;rf=m,m=m+16|0,Il=rf+12|0,Aa=rf+8|0,As=rf+4|0,ef=rf,Iu(e,(l|0)==0|(Me(n)|0)^1,3326),Iu(e,(s|0)==0|(Me(r)|0)^1,3406),ml=El(e,u)|0,t[e+496>>2]=ml,Tr=I0(2,ml)|0,Fn=I0(0,ml)|0,C[e+440>>2]=w(Li(e,Tr,h)),C[e+444>>2]=w(A0(e,Tr,h)),C[e+428>>2]=w(Li(e,Fn,h)),C[e+436>>2]=w(A0(e,Fn,h)),C[e+464>>2]=w(R0(e,Tr)),C[e+468>>2]=w(co(e,Tr)),C[e+452>>2]=w(R0(e,Fn)),C[e+460>>2]=w(co(e,Fn)),C[e+488>>2]=w(Ru(e,Tr,h)),C[e+492>>2]=w(Yu(e,Tr,h)),C[e+476>>2]=w(Ru(e,Fn,h)),C[e+484>>2]=w(Yu(e,Fn,h));do if(t[e+964>>2]|0)Xl(e,n,r,l,s,h,D);else{if(os=e+948|0,jl=(t[e+952>>2]|0)-(t[os>>2]|0)>>2,!jl){hs(e,n,r,l,s,h,D);break}if(S?0:ra(e,n,r,l,s,h,D)|0)break;cs(e),$a=e+508|0,p[$a>>0]=0,Tr=I0(t[e+4>>2]|0,ml)|0,Fn=df(Tr,ml)|0,Mu=Fi(Tr)|0,ud=t[e+8>>2]|0,j1=e+28|0,zf=(t[j1>>2]|0)!=0,us=Mu?h:D,Vf=Mu?D:h,od=w(Ku(e,Tr,h)),ld=w(vs(e,Tr,h)),Ee=w(Ku(e,Fn,h)),Wf=w(wr(e,Tr,h)),Ul=w(wr(e,Fn,h)),Nn=Mu?l:s,nf=Mu?s:l,gr=Mu?Wf:Ul,st=Mu?Ul:Wf,Hf=w(Yt(e,2,h)),We=w(Yt(e,0,h)),ve=w(w(Sn(e+364|0,h))-gr),Qe=w(w(Sn(e+380|0,h))-gr),Re=w(w(Sn(e+372|0,D))-st),Fe=w(w(Sn(e+388|0,D))-st),Mc=Mu?ve:Re,Nc=Mu?Qe:Fe,Hf=w(n-Hf),n=w(Hf-gr),Me(n)|0?gr=n:gr=w(Eu(w(Yp(n,Qe)),ve)),I1=w(r-We),n=w(I1-st),Me(n)|0?is=n:is=w(Eu(w(Yp(n,Fe)),Re)),ve=Mu?gr:is,lu=Mu?is:gr;e:do if((Nn|0)==1)for(u=0,P=0;;){if(O=yi(e,P)|0,!u)(w(Xi(O))>w(0)?w(ru(O))>w(0):0)?u=O:u=0;else if($0(O)|0){Pe=0;break e}if(P=P+1|0,P>>>0>=jl>>>0){Pe=u;break}}else Pe=0;while(0);Qt=Pe+500|0,Lr=Pe+504|0,u=0,O=0,n=w(0),K=0;do{if(P=t[(t[os>>2]|0)+(K<<2)>>2]|0,(t[P+36>>2]|0)==1)Ci(P),p[P+985>>0]=1,p[P+984>>0]=0;else{Vr(P),S&&C0(P,El(P,ml)|0,ve,lu,gr);do if((t[P+24>>2]|0)!=1)if((P|0)==(Pe|0)){t[Qt>>2]=t[2278],C[Lr>>2]=w(0);break}else{Xr(e,P,gr,l,is,gr,is,s,ml,M);break}else O|0&&(t[O+960>>2]=P),t[P+960>>2]=0,O=P,u=(u|0)==0?P:u;while(0);vl=w(C[P+504>>2]),n=w(n+w(vl+w(Yt(P,Tr,gr))))}K=K+1|0}while((K|0)!=(jl|0));for(ns=n>ve,tf=zf&((Nn|0)==2&ns)?1:Nn,Zi=(nf|0)==1,Xs=Zi&(S^1),$2=(tf|0)==1,ed=(tf|0)==2,Za=976+(Tr<<2)|0,td=(nf|2|0)==2,id=Zi&(zf^1),Oc=1040+(Fn<<2)|0,kc=1040+(Tr<<2)|0,nd=976+(Fn<<2)|0,rd=(nf|0)!=1,ns=zf&((Nn|0)!=0&ns),ts=e+976|0,Zi=Zi^1,n=ve,kr=0,rs=0,vl=w(0),qf=w(0);;){e:do if(kr>>>0>>0)for(Lr=t[os>>2]|0,K=0,Fe=w(0),Re=w(0),Qe=w(0),ve=w(0),P=0,O=0,Pe=kr;;){if(Qt=t[Lr+(Pe<<2)>>2]|0,(t[Qt+36>>2]|0)!=1?(t[Qt+940>>2]=rs,(t[Qt+24>>2]|0)!=1):0){if(We=w(Yt(Qt,Tr,gr)),si=t[Za>>2]|0,r=w(Sn(Qt+380+(si<<3)|0,us)),st=w(C[Qt+504>>2]),r=w(Yp(r,st)),r=w(Eu(w(Sn(Qt+364+(si<<3)|0,us)),r)),zf&(K|0)!=0&w(We+w(Re+r))>n){s=K,We=Fe,Nn=Pe;break e}We=w(We+r),r=w(Re+We),We=w(Fe+We),$0(Qt)|0&&(Qe=w(Qe+w(Xi(Qt))),ve=w(ve-w(st*w(ru(Qt))))),O|0&&(t[O+960>>2]=Qt),t[Qt+960>>2]=0,K=K+1|0,O=Qt,P=(P|0)==0?Qt:P}else We=Fe,r=Re;if(Pe=Pe+1|0,Pe>>>0>>0)Fe=We,Re=r;else{s=K,Nn=Pe;break}}else s=0,We=w(0),Qe=w(0),ve=w(0),P=0,Nn=kr;while(0);si=Qe>w(0)&Qew(0)&veNc&((Me(Nc)|0)^1))n=Nc,si=51;else if(p[(t[ts>>2]|0)+3>>0]|0)si=51;else{if(mn!=w(0)?w(Xi(e))!=w(0):0){si=53;break}n=We,si=53}while(0);if((si|0)==51&&(si=0,Me(n)|0?si=53:(hr=w(n-We),On=n)),(si|0)==53&&(si=0,We>2]|0,Pe=hrw(0),Re=w(hr/mn),Qe=w(0),We=w(0),n=w(0),O=P;do r=w(Sn(O+380+(K<<3)|0,us)),ve=w(Sn(O+364+(K<<3)|0,us)),ve=w(Yp(r,w(Eu(ve,w(C[O+504>>2]))))),Pe?(r=w(ve*w(ru(O))),(r!=w(-0)?(hn=w(ve-w(st*r)),F1=w(Wn(O,Tr,hn,On,gr)),hn!=F1):0)&&(Qe=w(Qe-w(F1-ve)),n=w(n+r))):((Qt?(Lc=w(Xi(O)),Lc!=w(0)):0)?(hn=w(ve+w(Re*Lc)),b1=w(Wn(O,Tr,hn,On,gr)),hn!=b1):0)&&(Qe=w(Qe-w(b1-ve)),We=w(We-Lc)),O=t[O+960>>2]|0;while((O|0)!=0);if(n=w(Fe+n),ve=w(hr+Qe),L1)n=w(0);else{st=w(mn+We),Pe=t[Za>>2]|0,Qt=vew(0),st=w(ve/st),n=w(0);do{hn=w(Sn(P+380+(Pe<<3)|0,us)),Qe=w(Sn(P+364+(Pe<<3)|0,us)),Qe=w(Yp(hn,w(Eu(Qe,w(C[P+504>>2]))))),Qt?(hn=w(Qe*w(ru(P))),ve=w(-hn),hn!=w(-0)?(hn=w(Re*ve),ve=w(Wn(P,Tr,w(Qe+(Lr?ve:hn)),On,gr))):ve=Qe):(K?(P1=w(Xi(P)),P1!=w(0)):0)?ve=w(Wn(P,Tr,w(Qe+w(st*P1)),On,gr)):ve=Qe,n=w(n-w(ve-Qe)),We=w(Yt(P,Tr,gr)),r=w(Yt(P,Fn,gr)),ve=w(ve+We),C[Aa>>2]=ve,t[ef>>2]=1,Qe=w(C[P+396>>2]);e:do if(Me(Qe)|0){O=Me(lu)|0;do if(!O){if(ns|(Bu(P,Fn,lu)|0|Zi)||(Xu(e,P)|0)!=4||(t[(m0(P,Fn)|0)+4>>2]|0)==3||(t[(y0(P,Fn)|0)+4>>2]|0)==3)break;C[Il>>2]=lu,t[As>>2]=1;break e}while(0);if(Bu(P,Fn,lu)|0){O=t[P+992+(t[nd>>2]<<2)>>2]|0,hn=w(r+w(Sn(O,lu))),C[Il>>2]=hn,O=rd&(t[O+4>>2]|0)==2,t[As>>2]=((Me(hn)|0|O)^1)&1;break}else{C[Il>>2]=lu,t[As>>2]=O?0:2;break}}else hn=w(ve-We),mn=w(hn/Qe),hn=w(Qe*hn),t[As>>2]=1,C[Il>>2]=w(r+(Mu?mn:hn));while(0);kn(P,Tr,On,gr,ef,Aa),kn(P,Fn,lu,gr,As,Il);do if(Bu(P,Fn,lu)|0?0:(Xu(e,P)|0)==4){if((t[(m0(P,Fn)|0)+4>>2]|0)==3){O=0;break}O=(t[(y0(P,Fn)|0)+4>>2]|0)!=3}else O=0;while(0);hn=w(C[Aa>>2]),mn=w(C[Il>>2]),H1=t[ef>>2]|0,u0=t[As>>2]|0,Gt(P,Mu?hn:mn,Mu?mn:hn,ml,Mu?H1:u0,Mu?u0:H1,gr,is,S&(O^1),3488,M)|0,p[$a>>0]=p[$a>>0]|p[P+508>>0],P=t[P+960>>2]|0}while((P|0)!=0)}}else n=w(0);if(n=w(hr+n),u0=n>0]=u0|k[$a>>0],ed&n>w(0)?(O=t[Za>>2]|0,((t[e+364+(O<<3)+4>>2]|0)!=0?(Bl=w(Sn(e+364+(O<<3)|0,us)),Bl>=w(0)):0)?ve=w(Eu(w(0),w(Bl-w(On-n)))):ve=w(0)):ve=n,Qt=kr>>>0>>0,Qt){Pe=t[os>>2]|0,K=kr,O=0;do P=t[Pe+(K<<2)>>2]|0,t[P+24>>2]|0||(O=((t[(m0(P,Tr)|0)+4>>2]|0)==3&1)+O|0,O=O+((t[(y0(P,Tr)|0)+4>>2]|0)==3&1)|0),K=K+1|0;while((K|0)!=(Nn|0));O?(We=w(0),r=w(0)):si=101}else si=101;e:do if((si|0)==101)switch(si=0,ud|0){case 1:{O=0,We=w(ve*w(.5)),r=w(0);break e}case 2:{O=0,We=ve,r=w(0);break e}case 3:{if(s>>>0<=1){O=0,We=w(0),r=w(0);break e}r=w((s+-1|0)>>>0),O=0,We=w(0),r=w(w(Eu(ve,w(0)))/r);break e}case 5:{r=w(ve/w((s+1|0)>>>0)),O=0,We=r;break e}case 4:{r=w(ve/w(s>>>0)),O=0,We=w(r*w(.5));break e}default:{O=0,We=w(0),r=w(0);break e}}while(0);if(n=w(od+We),Qt){Qe=w(ve/w(O|0)),K=t[os>>2]|0,P=kr,ve=w(0);do{O=t[K+(P<<2)>>2]|0;e:do if((t[O+36>>2]|0)!=1){switch(t[O+24>>2]|0){case 1:{if(se(O,Tr)|0){if(!S)break e;hn=w(re(O,Tr,On)),hn=w(hn+w(R0(e,Tr))),hn=w(hn+w(Li(O,Tr,gr))),C[O+400+(t[kc>>2]<<2)>>2]=hn;break e}break}case 0:if(u0=(t[(m0(O,Tr)|0)+4>>2]|0)==3,hn=w(Qe+n),n=u0?hn:n,S&&(u0=O+400+(t[kc>>2]<<2)|0,C[u0>>2]=w(n+w(C[u0>>2]))),u0=(t[(y0(O,Tr)|0)+4>>2]|0)==3,hn=w(Qe+n),n=u0?hn:n,Xs){hn=w(r+w(Yt(O,Tr,gr))),ve=lu,n=w(n+w(hn+w(C[O+504>>2])));break e}else{n=w(n+w(r+w(Le(O,Tr,gr)))),ve=w(Eu(ve,w(Le(O,Fn,gr))));break e}default:}S&&(hn=w(We+w(R0(e,Tr))),u0=O+400+(t[kc>>2]<<2)|0,C[u0>>2]=w(hn+w(C[u0>>2])))}while(0);P=P+1|0}while((P|0)!=(Nn|0))}else ve=w(0);if(r=w(ld+n),td?We=w(w(Wn(e,Fn,w(Ul+ve),Vf,h))-Ul):We=lu,Qe=w(w(Wn(e,Fn,w(Ul+(id?lu:ve)),Vf,h))-Ul),Qt&S){P=kr;do{K=t[(t[os>>2]|0)+(P<<2)>>2]|0;do if((t[K+36>>2]|0)!=1){if((t[K+24>>2]|0)==1){if(se(K,Fn)|0){if(hn=w(re(K,Fn,lu)),hn=w(hn+w(R0(e,Fn))),hn=w(hn+w(Li(K,Fn,gr))),O=t[Oc>>2]|0,C[K+400+(O<<2)>>2]=hn,!(Me(hn)|0))break}else O=t[Oc>>2]|0;hn=w(R0(e,Fn)),C[K+400+(O<<2)>>2]=w(hn+w(Li(K,Fn,gr)));break}O=Xu(e,K)|0;do if((O|0)==4){if((t[(m0(K,Fn)|0)+4>>2]|0)==3){si=139;break}if((t[(y0(K,Fn)|0)+4>>2]|0)==3){si=139;break}if(Bu(K,Fn,lu)|0){n=Ee;break}H1=t[K+908+(t[Za>>2]<<2)>>2]|0,t[Il>>2]=H1,n=w(C[K+396>>2]),u0=Me(n)|0,ve=(t[W>>2]=H1,w(C[W>>2])),u0?n=Qe:(hr=w(Yt(K,Fn,gr)),hn=w(ve/n),n=w(n*ve),n=w(hr+(Mu?hn:n))),C[Aa>>2]=n,C[Il>>2]=w(w(Yt(K,Tr,gr))+ve),t[As>>2]=1,t[ef>>2]=1,kn(K,Tr,On,gr,As,Il),kn(K,Fn,lu,gr,ef,Aa),n=w(C[Il>>2]),hr=w(C[Aa>>2]),hn=Mu?n:hr,n=Mu?hr:n,u0=((Me(hn)|0)^1)&1,Gt(K,hn,n,ml,u0,((Me(n)|0)^1)&1,gr,is,1,3493,M)|0,n=Ee}else si=139;while(0);e:do if((si|0)==139){si=0,n=w(We-w(Le(K,Fn,gr)));do if((t[(m0(K,Fn)|0)+4>>2]|0)==3){if((t[(y0(K,Fn)|0)+4>>2]|0)!=3)break;n=w(Ee+w(Eu(w(0),w(n*w(.5)))));break e}while(0);if((t[(y0(K,Fn)|0)+4>>2]|0)==3){n=Ee;break}if((t[(m0(K,Fn)|0)+4>>2]|0)==3){n=w(Ee+w(Eu(w(0),n)));break}switch(O|0){case 1:{n=Ee;break e}case 2:{n=w(Ee+w(n*w(.5)));break e}default:{n=w(Ee+n);break e}}}while(0);hn=w(vl+n),u0=K+400+(t[Oc>>2]<<2)|0,C[u0>>2]=w(hn+w(C[u0>>2]))}while(0);P=P+1|0}while((P|0)!=(Nn|0))}if(vl=w(vl+Qe),qf=w(Eu(qf,r)),s=rs+1|0,Nn>>>0>=jl>>>0)break;n=On,kr=Nn,rs=s}do if(S){if(O=s>>>0>1,O?0:!(Ae(e)|0))break;if(!(Me(lu)|0)){n=w(lu-vl);e:do switch(t[e+12>>2]|0){case 3:{Ee=w(Ee+n),Re=w(0);break}case 2:{Ee=w(Ee+w(n*w(.5))),Re=w(0);break}case 4:{lu>vl?Re=w(n/w(s>>>0)):Re=w(0);break}case 7:if(lu>vl){Ee=w(Ee+w(n/w(s<<1>>>0))),Re=w(n/w(s>>>0)),Re=O?Re:w(0);break e}else{Ee=w(Ee+w(n*w(.5))),Re=w(0);break e}case 6:{Re=w(n/w(rs>>>0)),Re=lu>vl&O?Re:w(0);break}default:Re=w(0)}while(0);if(s|0)for(Qt=1040+(Fn<<2)|0,Lr=976+(Fn<<2)|0,Pe=0,P=0;;){e:do if(P>>>0>>0)for(ve=w(0),Qe=w(0),n=w(0),K=P;;){O=t[(t[os>>2]|0)+(K<<2)>>2]|0;do if((t[O+36>>2]|0)!=1?(t[O+24>>2]|0)==0:0){if((t[O+940>>2]|0)!=(Pe|0))break e;if(ot(O,Fn)|0&&(hn=w(C[O+908+(t[Lr>>2]<<2)>>2]),n=w(Eu(n,w(hn+w(Yt(O,Fn,gr)))))),(Xu(e,O)|0)!=5)break;Bl=w(vt(O)),Bl=w(Bl+w(Li(O,0,gr))),hn=w(C[O+912>>2]),hn=w(w(hn+w(Yt(O,0,gr)))-Bl),Bl=w(Eu(Qe,Bl)),hn=w(Eu(ve,hn)),ve=hn,Qe=Bl,n=w(Eu(n,w(Bl+hn)))}while(0);if(O=K+1|0,O>>>0>>0)K=O;else{K=O;break}}else Qe=w(0),n=w(0),K=P;while(0);if(st=w(Re+n),r=Ee,Ee=w(Ee+st),P>>>0>>0){We=w(r+Qe),O=P;do{P=t[(t[os>>2]|0)+(O<<2)>>2]|0;e:do if((t[P+36>>2]|0)!=1?(t[P+24>>2]|0)==0:0)switch(Xu(e,P)|0){case 1:{hn=w(r+w(Li(P,Fn,gr))),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 3:{hn=w(w(Ee-w(A0(P,Fn,gr)))-w(C[P+908+(t[Lr>>2]<<2)>>2])),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 2:{hn=w(r+w(w(st-w(C[P+908+(t[Lr>>2]<<2)>>2]))*w(.5))),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 4:{if(hn=w(r+w(Li(P,Fn,gr))),C[P+400+(t[Qt>>2]<<2)>>2]=hn,Bu(P,Fn,lu)|0||(Mu?(ve=w(C[P+908>>2]),n=w(ve+w(Yt(P,Tr,gr))),Qe=st):(Qe=w(C[P+912>>2]),Qe=w(Qe+w(Yt(P,Fn,gr))),n=st,ve=w(C[P+908>>2])),gi(n,ve)|0?gi(Qe,w(C[P+912>>2]))|0:0))break e;Gt(P,n,Qe,ml,1,1,gr,is,1,3501,M)|0;break e}case 5:{C[P+404>>2]=w(w(We-w(vt(P)))+w(re(P,0,lu)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(K|0))}if(Pe=Pe+1|0,(Pe|0)==(s|0))break;P=K}}}while(0);if(C[e+908>>2]=w(Wn(e,2,Hf,h,h)),C[e+912>>2]=w(Wn(e,0,I1,D,h)),((tf|0)!=0?(B1=t[e+32>>2]|0,U1=(tf|0)==2,!(U1&(B1|0)!=2)):0)?U1&(B1|0)==2&&(n=w(Wf+On),n=w(Eu(w(Yp(n,w(Xt(e,Tr,qf,us)))),Wf)),si=198):(n=w(Wn(e,Tr,qf,us,h)),si=198),(si|0)==198&&(C[e+908+(t[976+(Tr<<2)>>2]<<2)>>2]=n),((nf|0)!=0?(z1=t[e+32>>2]|0,q1=(nf|0)==2,!(q1&(z1|0)!=2)):0)?q1&(z1|0)==2&&(n=w(Ul+lu),n=w(Eu(w(Yp(n,w(Xt(e,Fn,w(Ul+vl),Vf)))),Ul)),si=204):(n=w(Wn(e,Fn,w(Ul+vl),Vf,h)),si=204),(si|0)==204&&(C[e+908+(t[976+(Fn<<2)>>2]<<2)>>2]=n),S){if((t[j1>>2]|0)==2){P=976+(Fn<<2)|0,K=1040+(Fn<<2)|0,O=0;do Pe=yi(e,O)|0,t[Pe+24>>2]|0||(H1=t[P>>2]|0,hn=w(C[e+908+(H1<<2)>>2]),u0=Pe+400+(t[K>>2]<<2)|0,hn=w(hn-w(C[u0>>2])),C[u0>>2]=w(hn-w(C[Pe+908+(H1<<2)>>2]))),O=O+1|0;while((O|0)!=(jl|0))}if(u|0){O=Mu?tf:l;do xn(e,u,gr,O,is,ml,M),u=t[u+960>>2]|0;while((u|0)!=0)}if(O=(Tr|2|0)==3,P=(Fn|2|0)==3,O|P){u=0;do K=t[(t[os>>2]|0)+(u<<2)>>2]|0,(t[K+36>>2]|0)!=1&&(O&&_n(e,K,Tr),P&&_n(e,K,Fn)),u=u+1|0;while((u|0)!=(jl|0))}}}while(0);m=rf}function Gu(e,n){e=e|0,n=w(n);var r=0;Dn(e,n>=w(0),3147),r=n==w(0),C[e+4>>2]=r?w(0):n}function Kr(e,n,r,u){e=e|0,n=w(n),r=w(r),u=u|0;var l=St,s=St,h=0,D=0,S=0;t[2278]=(t[2278]|0)+1,Vr(e),Bu(e,2,n)|0?(l=w(Sn(t[e+992>>2]|0,n)),S=1,l=w(l+w(Yt(e,2,n)))):(l=w(Sn(e+380|0,n)),l>=w(0)?S=2:(S=((Me(n)|0)^1)&1,l=n)),Bu(e,0,r)|0?(s=w(Sn(t[e+996>>2]|0,r)),D=1,s=w(s+w(Yt(e,0,n)))):(s=w(Sn(e+388|0,r)),s>=w(0)?D=2:(D=((Me(r)|0)^1)&1,s=r)),h=e+976|0,(Gt(e,l,s,u,S,D,n,r,1,3189,t[h>>2]|0)|0?(C0(e,t[e+496>>2]|0,n,r,n),Au(e,w(C[(t[h>>2]|0)+4>>2]),w(0),w(0)),p[11696]|0):0)&&ff(e,7)}function Vr(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;D=m,m=m+32|0,h=D+24|0,s=D+16|0,u=D+8|0,l=D,r=0;do n=e+380+(r<<3)|0,((t[e+380+(r<<3)+4>>2]|0)!=0?(S=n,M=t[S+4>>2]|0,O=u,t[O>>2]=t[S>>2],t[O+4>>2]=M,O=e+364+(r<<3)|0,M=t[O+4>>2]|0,S=l,t[S>>2]=t[O>>2],t[S+4>>2]=M,t[s>>2]=t[u>>2],t[s+4>>2]=t[u+4>>2],t[h>>2]=t[l>>2],t[h+4>>2]=t[l+4>>2],Oi(s,h)|0):0)||(n=e+348+(r<<3)|0),t[e+992+(r<<2)>>2]=n,r=r+1|0;while((r|0)!=2);m=D}function Bu(e,n,r){e=e|0,n=n|0,r=w(r);var u=0;switch(e=t[e+992+(t[976+(n<<2)>>2]<<2)>>2]|0,t[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{w(C[e>>2])>2])>2]|0){case 2:{n=w(w(w(C[e>>2])*n)/w(100));break}case 1:{n=w(C[e>>2]);break}default:n=w(le)}return w(n)}function C0(e,n,r,u,l){e=e|0,n=n|0,r=w(r),u=w(u),l=w(l);var s=0,h=St;n=t[e+944>>2]|0?n:1,s=I0(t[e+4>>2]|0,n)|0,n=df(s,n)|0,r=w(Sr(e,s,r)),u=w(Sr(e,n,u)),h=w(r+w(Li(e,s,l))),C[e+400+(t[1040+(s<<2)>>2]<<2)>>2]=h,r=w(r+w(A0(e,s,l))),C[e+400+(t[1e3+(s<<2)>>2]<<2)>>2]=r,r=w(u+w(Li(e,n,l))),C[e+400+(t[1040+(n<<2)>>2]<<2)>>2]=r,l=w(u+w(A0(e,n,l))),C[e+400+(t[1e3+(n<<2)>>2]<<2)>>2]=l}function Au(e,n,r,u){e=e|0,n=w(n),r=w(r),u=w(u);var l=0,s=0,h=St,D=St,S=0,M=0,O=St,P=0,K=St,Pe=St,Ee=St,ve=St;if(n!=w(0)&&(l=e+400|0,ve=w(C[l>>2]),s=e+404|0,Ee=w(C[s>>2]),P=e+416|0,Pe=w(C[P>>2]),M=e+420|0,h=w(C[M>>2]),K=w(ve+r),O=w(Ee+u),u=w(K+Pe),D=w(O+h),S=(t[e+988>>2]|0)==1,C[l>>2]=w(J0(ve,n,0,S)),C[s>>2]=w(J0(Ee,n,0,S)),r=w(YE(w(Pe*n),w(1))),gi(r,w(0))|0?s=0:s=(gi(r,w(1))|0)^1,r=w(YE(w(h*n),w(1))),gi(r,w(0))|0?l=0:l=(gi(r,w(1))|0)^1,ve=w(J0(u,n,S&s,S&(s^1))),C[P>>2]=w(ve-w(J0(K,n,0,S))),ve=w(J0(D,n,S&l,S&(l^1))),C[M>>2]=w(ve-w(J0(O,n,0,S))),s=(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2,s|0)){l=0;do Au(yi(e,l)|0,n,K,O),l=l+1|0;while((l|0)!=(s|0))}}function ei(e,n,r,u,l){switch(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,r|0){case 5:case 0:{e=F8(t[489]|0,u,l)|0;break}default:e=QI(u,l)|0}return e|0}function _l(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;l=m,m=m+16|0,s=l,t[s>>2]=u,Ps(e,0,n,r,s),m=l}function Ps(e,n,r,u,l){if(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,e=e|0?e:956,tS[t[e+8>>2]&1](e,n,r,u,l)|0,(r|0)==5)Xn();else return}function Uu(e,n,r){e=e|0,n=n|0,r=r|0,p[e+n>>0]=r&1}function na(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(zi(e,u),Is(e,t[n>>2]|0,t[r>>2]|0,u))}function zi(e,n){e=e|0,n=n|0;var r=0;if((x0(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function Is(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function x0(e){return e=e|0,1073741823}function Li(e,n,r){return e=e|0,n=n|0,r=w(r),(Fi(n)|0?(t[e+96>>2]|0)!=0:0)?e=e+92|0:e=dt(e+60|0,t[1040+(n<<2)>>2]|0,992)|0,w($o(e,r))}function A0(e,n,r){return e=e|0,n=n|0,r=w(r),(Fi(n)|0?(t[e+104>>2]|0)!=0:0)?e=e+100|0:e=dt(e+60|0,t[1e3+(n<<2)>>2]|0,992)|0,w($o(e,r))}function Fi(e){return e=e|0,(e|1|0)==3|0}function $o(e,n){return e=e|0,n=w(n),(t[e+4>>2]|0)==3?n=w(0):n=w(Sn(e,n)),w(n)}function El(e,n){return e=e|0,n=n|0,e=t[e>>2]|0,((e|0)==0?(n|0)>1?n:1:e)|0}function I0(e,n){e=e|0,n=n|0;var r=0;e:do if((n|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{r=4;break e}}e=2}else r=4;while(0);return e|0}function R0(e,n){e=e|0,n=n|0;var r=St;return((Fi(n)|0?(t[e+312>>2]|0)!=0:0)?(r=w(C[e+308>>2]),r>=w(0)):0)||(r=w(Eu(w(C[(dt(e+276|0,t[1040+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function co(e,n){e=e|0,n=n|0;var r=St;return((Fi(n)|0?(t[e+320>>2]|0)!=0:0)?(r=w(C[e+316>>2]),r>=w(0)):0)||(r=w(Eu(w(C[(dt(e+276|0,t[1e3+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function Ru(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return((Fi(n)|0?(t[e+240>>2]|0)!=0:0)?(u=w(Sn(e+236|0,r)),u>=w(0)):0)||(u=w(Eu(w(Sn(dt(e+204|0,t[1040+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function Yu(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return((Fi(n)|0?(t[e+248>>2]|0)!=0:0)?(u=w(Sn(e+244|0,r)),u>=w(0)):0)||(u=w(Eu(w(Sn(dt(e+204|0,t[1e3+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function Xl(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=St,S=St,M=St,O=St,P=St,K=St,Pe=0,Ee=0,ve=0;ve=m,m=m+16|0,Pe=ve,Ee=e+964|0,Iu(e,(t[Ee>>2]|0)!=0,3519),D=w(wr(e,2,n)),S=w(wr(e,0,n)),M=w(Yt(e,2,n)),O=w(Yt(e,0,n)),Me(n)|0?P=n:P=w(Eu(w(0),w(w(n-M)-D))),Me(r)|0?K=r:K=w(Eu(w(0),w(w(r-O)-S))),(u|0)==1&(l|0)==1?(C[e+908>>2]=w(Wn(e,2,w(n-M),s,s)),n=w(Wn(e,0,w(r-O),h,s))):(nS[t[Ee>>2]&1](Pe,e,P,u,K,l),P=w(D+w(C[Pe>>2])),K=w(n-M),C[e+908>>2]=w(Wn(e,2,(u|2|0)==2?P:K,s,s)),K=w(S+w(C[Pe+4>>2])),n=w(r-O),n=w(Wn(e,0,(l|2|0)==2?K:n,h,s))),C[e+912>>2]=n,m=ve}function hs(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=St,S=St,M=St,O=St;M=w(wr(e,2,s)),D=w(wr(e,0,s)),O=w(Yt(e,2,s)),S=w(Yt(e,0,s)),n=w(n-O),C[e+908>>2]=w(Wn(e,2,(u|2|0)==2?M:n,s,s)),r=w(r-S),C[e+912>>2]=w(Wn(e,0,(l|2|0)==2?D:r,h,s))}function ra(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=0,S=St,M=St;return D=(u|0)==2,((n<=w(0)&D?0:!(r<=w(0)&(l|0)==2))?!((u|0)==1&(l|0)==1):0)?e=0:(S=w(Yt(e,0,s)),M=w(Yt(e,2,s)),D=n>2]=w(Wn(e,2,D?w(0):n,s,s)),n=w(r-S),D=r>2]=w(Wn(e,0,D?w(0):n,h,s)),e=1),e|0}function df(e,n){return e=e|0,n=n|0,yn(e)|0?e=I0(2,n)|0:e=0,e|0}function Ku(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Ru(e,n,r)),w(r+w(R0(e,n)))}function vs(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Yu(e,n,r)),w(r+w(co(e,n)))}function wr(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(Ku(e,n,r)),w(u+w(vs(e,n,r)))}function $0(e){return e=e|0,t[e+24>>2]|0?e=0:w(Xi(e))!=w(0)?e=1:e=w(ru(e))!=w(0),e|0}function Xi(e){e=e|0;var n=St;if(t[e+944>>2]|0){if(n=w(C[e+44>>2]),Me(n)|0)return n=w(C[e+40>>2]),e=n>w(0)&((Me(n)|0)^1),w(e?n:w(0))}else n=w(0);return w(n)}function ru(e){e=e|0;var n=St,r=0,u=St;do if(t[e+944>>2]|0){if(n=w(C[e+48>>2]),Me(n)|0){if(r=p[(t[e+976>>2]|0)+2>>0]|0,r<<24>>24==0?(u=w(C[e+40>>2]),u>24?w(1):w(0)}}else n=w(0);while(0);return w(n)}function Ci(e){e=e|0;var n=0,r=0;if(Iv(e+400|0,0,540)|0,p[e+985>>0]=1,cs(e),r=mu(e)|0,r|0){n=e+948|0,e=0;do Ci(t[(t[n>>2]|0)+(e<<2)>>2]|0),e=e+1|0;while((e|0)!=(r|0))}}function Xr(e,n,r,u,l,s,h,D,S,M){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=w(s),h=w(h),D=D|0,S=S|0,M=M|0;var O=0,P=St,K=0,Pe=0,Ee=St,ve=St,Qe=0,We=St,st=0,Re=St,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0,ts=0;Zi=m,m=m+16|0,Lr=Zi+12|0,Nn=Zi+8|0,mn=Zi+4|0,hr=Zi,On=I0(t[e+4>>2]|0,S)|0,Fe=Fi(On)|0,P=w(Sn(En(n)|0,Fe?s:h)),Qt=Bu(n,2,s)|0,kr=Bu(n,0,h)|0;do if(Me(P)|0?0:!(Me(Fe?r:l)|0)){if(O=n+504|0,!(Me(w(C[O>>2]))|0)&&(!(er(t[n+976>>2]|0,0)|0)||(t[n+500>>2]|0)==(t[2278]|0)))break;C[O>>2]=w(Eu(P,w(wr(n,On,s))))}else K=7;while(0);do if((K|0)==7){if(st=Fe^1,!(st|Qt^1)){h=w(Sn(t[n+992>>2]|0,s)),C[n+504>>2]=w(Eu(h,w(wr(n,2,s))));break}if(!(Fe|kr^1)){h=w(Sn(t[n+996>>2]|0,h)),C[n+504>>2]=w(Eu(h,w(wr(n,0,s))));break}C[Lr>>2]=w(le),C[Nn>>2]=w(le),t[mn>>2]=0,t[hr>>2]=0,We=w(Yt(n,2,s)),Re=w(Yt(n,0,s)),Qt?(Ee=w(We+w(Sn(t[n+992>>2]|0,s))),C[Lr>>2]=Ee,t[mn>>2]=1,Pe=1):(Pe=0,Ee=w(le)),kr?(P=w(Re+w(Sn(t[n+996>>2]|0,h))),C[Nn>>2]=P,t[hr>>2]=1,O=1):(O=0,P=w(le)),K=t[e+32>>2]|0,Fe&(K|0)==2?K=2:(Me(Ee)|0?!(Me(r)|0):0)&&(C[Lr>>2]=r,t[mn>>2]=2,Pe=2,Ee=r),(((K|0)==2&st?0:Me(P)|0)?!(Me(l)|0):0)&&(C[Nn>>2]=l,t[hr>>2]=2,O=2,P=l),ve=w(C[n+396>>2]),Qe=Me(ve)|0;do if(Qe)K=Pe;else{if((Pe|0)==1&st){C[Nn>>2]=w(w(Ee-We)/ve),t[hr>>2]=1,O=1,K=1;break}Fe&(O|0)==1?(C[Lr>>2]=w(ve*w(P-Re)),t[mn>>2]=1,O=1,K=1):K=Pe}while(0);ts=Me(r)|0,Pe=(Xu(e,n)|0)!=4,(Fe|Qt|((u|0)!=1|ts)|(Pe|(K|0)==1)?0:(C[Lr>>2]=r,t[mn>>2]=1,!Qe))&&(C[Nn>>2]=w(w(r-We)/ve),t[hr>>2]=1,O=1),(kr|st|((D|0)!=1|(Me(l)|0))|(Pe|(O|0)==1)?0:(C[Nn>>2]=l,t[hr>>2]=1,!Qe))&&(C[Lr>>2]=w(ve*w(l-Re)),t[mn>>2]=1),kn(n,2,s,s,mn,Lr),kn(n,0,h,s,hr,Nn),r=w(C[Lr>>2]),l=w(C[Nn>>2]),Gt(n,r,l,S,t[mn>>2]|0,t[hr>>2]|0,s,h,0,3565,M)|0,h=w(C[n+908+(t[976+(On<<2)>>2]<<2)>>2]),C[n+504>>2]=w(Eu(h,w(wr(n,On,s))))}while(0);t[n+500>>2]=t[2278],m=Zi}function Wn(e,n,r,u,l){return e=e|0,n=n|0,r=w(r),u=w(u),l=w(l),u=w(Xt(e,n,r,u)),w(Eu(u,w(wr(e,n,l))))}function Xu(e,n){return e=e|0,n=n|0,n=n+20|0,n=t[((t[n>>2]|0)==0?e+16|0:n)>>2]|0,((n|0)==5?yn(t[e+4>>2]|0)|0:0)&&(n=1),n|0}function m0(e,n){return e=e|0,n=n|0,(Fi(n)|0?(t[e+96>>2]|0)!=0:0)?n=4:n=t[1040+(n<<2)>>2]|0,e+60+(n<<3)|0}function y0(e,n){return e=e|0,n=n|0,(Fi(n)|0?(t[e+104>>2]|0)!=0:0)?n=5:n=t[1e3+(n<<2)>>2]|0,e+60+(n<<3)|0}function kn(e,n,r,u,l,s){switch(e=e|0,n=n|0,r=w(r),u=w(u),l=l|0,s=s|0,r=w(Sn(e+380+(t[976+(n<<2)>>2]<<3)|0,r)),r=w(r+w(Yt(e,n,u))),t[l>>2]|0){case 2:case 1:{l=Me(r)|0,u=w(C[s>>2]),C[s>>2]=l|u>2]=2,C[s>>2]=r);break}default:}}function se(e,n){return e=e|0,n=n|0,e=e+132|0,(Fi(n)|0?(t[(dt(e,4,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(dt(e,t[1040+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function re(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Fi(n)|0?(u=dt(e,4,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=dt(e,t[1040+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Sn(u,r))),w(r)}function Le(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(C[e+908+(t[976+(n<<2)>>2]<<2)>>2]),u=w(u+w(Li(e,n,r))),w(u+w(A0(e,n,r)))}function Ae(e){e=e|0;var n=0,r=0,u=0;e:do if(yn(t[e+4>>2]|0)|0)n=0;else if((t[e+16>>2]|0)!=5)if(r=mu(e)|0,!r)n=0;else for(n=0;;){if(u=yi(e,n)|0,(t[u+24>>2]|0)==0?(t[u+20>>2]|0)==5:0){n=1;break e}if(n=n+1|0,n>>>0>=r>>>0){n=0;break}}else n=1;while(0);return n|0}function ot(e,n){e=e|0,n=n|0;var r=St;return r=w(C[e+908+(t[976+(n<<2)>>2]<<2)>>2]),r>=w(0)&((Me(r)|0)^1)|0}function vt(e){e=e|0;var n=St,r=0,u=0,l=0,s=0,h=0,D=0,S=St;if(r=t[e+968>>2]|0,r)S=w(C[e+908>>2]),n=w(C[e+912>>2]),n=w(J8[r&0](e,S,n)),Iu(e,(Me(n)|0)^1,3573);else{s=mu(e)|0;do if(s|0){for(r=0,l=0;;){if(u=yi(e,l)|0,t[u+940>>2]|0){h=8;break}if((t[u+24>>2]|0)!=1)if(D=(Xu(e,u)|0)==5,D){r=u;break}else r=(r|0)==0?u:r;if(l=l+1|0,l>>>0>=s>>>0){h=8;break}}if((h|0)==8&&!r)break;return n=w(vt(r)),w(n+w(C[r+404>>2]))}while(0);n=w(C[e+912>>2])}return w(n)}function Xt(e,n,r,u){e=e|0,n=n|0,r=w(r),u=w(u);var l=St,s=0;return yn(n)|0?(n=1,s=3):Fi(n)|0?(n=0,s=3):(u=w(le),l=w(le)),(s|0)==3&&(l=w(Sn(e+364+(n<<3)|0,u)),u=w(Sn(e+380+(n<<3)|0,u))),s=u=w(0)&((Me(u)|0)^1)),r=s?u:r,s=l>=w(0)&((Me(l)|0)^1)&r>2]|0,s)|0,Ee=df(Qe,s)|0,ve=Fi(Qe)|0,P=w(Yt(n,2,r)),K=w(Yt(n,0,r)),Bu(n,2,r)|0?D=w(P+w(Sn(t[n+992>>2]|0,r))):(se(n,2)|0?It(n,2)|0:0)?(D=w(C[e+908>>2]),S=w(R0(e,2)),S=w(D-w(S+w(co(e,2)))),D=w(re(n,2,r)),D=w(Wn(n,2,w(S-w(D+w(xi(n,2,r)))),r,r))):D=w(le),Bu(n,0,l)|0?S=w(K+w(Sn(t[n+996>>2]|0,l))):(se(n,0)|0?It(n,0)|0:0)?(S=w(C[e+912>>2]),st=w(R0(e,0)),st=w(S-w(st+w(co(e,0)))),S=w(re(n,0,l)),S=w(Wn(n,0,w(st-w(S+w(xi(n,0,l)))),l,r))):S=w(le),M=Me(D)|0,O=Me(S)|0;do if(M^O?(Pe=w(C[n+396>>2]),!(Me(Pe)|0)):0)if(M){D=w(P+w(w(S-K)*Pe));break}else{st=w(K+w(w(D-P)/Pe)),S=O?st:S;break}while(0);O=Me(D)|0,M=Me(S)|0,O|M&&(Re=(O^1)&1,u=r>w(0)&((u|0)!=0&O),D=ve?D:u?r:D,Gt(n,D,S,s,ve?Re:u?2:Re,O&(M^1)&1,D,S,0,3623,h)|0,D=w(C[n+908>>2]),D=w(D+w(Yt(n,2,r))),S=w(C[n+912>>2]),S=w(S+w(Yt(n,0,r)))),Gt(n,D,S,s,1,1,D,S,1,3635,h)|0,(It(n,Qe)|0?!(se(n,Qe)|0):0)?(Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),st=w(st-w(co(e,Qe))),st=w(st-w(A0(n,Qe,r))),st=w(st-w(xi(n,Qe,ve?r:l))),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st):We=21;do if((We|0)==21){if(se(n,Qe)|0?0:(t[e+8>>2]|0)==1){Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(w(st-w(C[n+908+(Re<<2)>>2]))*w(.5)),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st;break}(se(n,Qe)|0?0:(t[e+8>>2]|0)==2)&&(Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st)}while(0);(It(n,Ee)|0?!(se(n,Ee)|0):0)?(Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),st=w(st-w(co(e,Ee))),st=w(st-w(A0(n,Ee,r))),st=w(st-w(xi(n,Ee,ve?l:r))),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st):We=30;do if((We|0)==30?!(se(n,Ee)|0):0){if((Xu(e,n)|0)==2){Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(w(st-w(C[n+908+(Re<<2)>>2]))*w(.5)),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st;break}Re=(Xu(e,n)|0)==3,Re^(t[e+28>>2]|0)==2&&(Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st)}while(0)}function _n(e,n,r){e=e|0,n=n|0,r=r|0;var u=St,l=0;l=t[976+(r<<2)>>2]|0,u=w(C[n+908+(l<<2)>>2]),u=w(w(C[e+908+(l<<2)>>2])-u),u=w(u-w(C[n+400+(t[1040+(r<<2)>>2]<<2)>>2])),C[n+400+(t[1e3+(r<<2)>>2]<<2)>>2]=u}function yn(e){return e=e|0,(e|1|0)==1|0}function En(e){e=e|0;var n=St;switch(t[e+56>>2]|0){case 0:case 3:{n=w(C[e+40>>2]),n>w(0)&((Me(n)|0)^1)?e=p[(t[e+976>>2]|0)+2>>0]|0?1056:992:e=1056;break}default:e=e+52|0}return e|0}function er(e,n){return e=e|0,n=n|0,(p[e+n>>0]|0)!=0|0}function It(e,n){return e=e|0,n=n|0,e=e+132|0,(Fi(n)|0?(t[(dt(e,5,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(dt(e,t[1e3+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function xi(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Fi(n)|0?(u=dt(e,5,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=dt(e,t[1e3+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Sn(u,r))),w(r)}function Sr(e,n,r){return e=e|0,n=n|0,r=w(r),se(e,n)|0?r=w(re(e,n,r)):r=w(-w(xi(e,n,r))),w(r)}function cr(e){return e=w(e),C[W>>2]=e,t[W>>2]|0|0}function Y(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function Qr(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Jr(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function Ur(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;if(h=e+4|0,D=t[h>>2]|0,l=D-u|0,s=l>>2,e=n+(s<<2)|0,e>>>0>>0){u=D;do t[u>>2]=t[e>>2],e=e+4|0,u=(t[h>>2]|0)+4|0,t[h>>2]=u;while(e>>>0>>0)}s|0&&Iy(D+(0-s<<2)|0,n|0,l|0)|0}function lt(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return D=n+4|0,S=t[D>>2]|0,l=t[e>>2]|0,h=r,s=h-l|0,u=S+(0-(s>>2)<<2)|0,t[D>>2]=u,(s|0)>0&&pr(u|0,l|0,s|0)|0,l=e+4|0,s=n+8|0,u=(t[l>>2]|0)-h|0,(u|0)>0&&(pr(t[s>>2]|0,r|0,u|0)|0,t[s>>2]=(t[s>>2]|0)+(u>>>2<<2)),h=t[e>>2]|0,t[e>>2]=t[D>>2],t[D>>2]=h,h=t[l>>2]|0,t[l>>2]=t[s>>2],t[s>>2]=h,h=e+8|0,r=n+12|0,e=t[h>>2]|0,t[h>>2]=t[r>>2],t[r>>2]=e,t[n>>2]=t[D>>2],S|0}function hi(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(h=t[n>>2]|0,s=t[r>>2]|0,(h|0)!=(s|0)){l=e+8|0,r=((s+-4-h|0)>>>2)+1|0,e=h,u=t[l>>2]|0;do t[u>>2]=t[e>>2],u=(t[l>>2]|0)+4|0,t[l>>2]=u,e=e+4|0;while((e|0)!=(s|0));t[n>>2]=h+(r<<2)}}function Qi(){_e()}function g0(){var e=0;return e=cn(4)|0,bn(e),e|0}function bn(e){e=e|0,t[e>>2]=p0()|0}function Qu(e){e=e|0,e|0&&(eo(e),yt(e))}function eo(e){e=e|0,K0(t[e>>2]|0)}function po(e,n,r){e=e|0,n=n|0,r=r|0,Uu(t[e>>2]|0,n,r)}function Ju(e,n){e=e|0,n=w(n),Gu(t[e>>2]|0,n)}function bo(e,n){return e=e|0,n=n|0,er(t[e>>2]|0,n)|0}function to(){var e=0;return e=cn(8)|0,Na(e,0),e|0}function Na(e,n){e=e|0,n=n|0,n?n=Hn(t[n>>2]|0)|0:n=or()|0,t[e>>2]=n,t[e+4>>2]=0,Ma(n,e)}function pf(e){e=e|0;var n=0;return n=cn(8)|0,Na(n,e),n|0}function uc(e){e=e|0,e|0&&(ms(e),yt(e))}function ms(e){e=e|0;var n=0;bu(t[e>>2]|0),n=e+4|0,e=t[n>>2]|0,t[n>>2]=0,e|0&&(ia(e),yt(e))}function ia(e){e=e|0,B0(e)}function B0(e){e=e|0,e=t[e>>2]|0,e|0&&Ir(e|0)}function oc(e){return e=e|0,Ls(e)|0}function La(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ia(n),yt(n)),ao(t[e>>2]|0)}function gd(e,n){e=e|0,n=n|0,ea(t[e>>2]|0,t[n>>2]|0)}function $1(e,n){e=e|0,n=n|0,Z(t[e>>2]|0,n)}function e2(e,n,r){e=e|0,n=n|0,r=+r,lr(t[e>>2]|0,n,w(r))}function ho(e,n,r){e=e|0,n=n|0,r=+r,Qn(t[e>>2]|0,n,w(r))}function Uc(e,n){e=e|0,n=n|0,z(t[e>>2]|0,n)}function Dl(e,n){e=e|0,n=n|0,$(t[e>>2]|0,n)}function el(e,n){e=e|0,n=n|0,me(t[e>>2]|0,n)}function _d(e,n){e=e|0,n=n|0,h0(t[e>>2]|0,n)}function Bs(e,n){e=e|0,n=n|0,Xe(t[e>>2]|0,n)}function wl(e,n){e=e|0,n=n|0,Ni(t[e>>2]|0,n)}function t2(e,n,r){e=e|0,n=n|0,r=+r,Cn(t[e>>2]|0,n,w(r))}function Po(e,n,r){e=e|0,n=n|0,r=+r,Ar(t[e>>2]|0,n,w(r))}function Fa(e,n){e=e|0,n=n|0,Rr(t[e>>2]|0,n)}function ba(e,n){e=e|0,n=n|0,ie(t[e>>2]|0,n)}function Pa(e,n){e=e|0,n=n|0,tt(t[e>>2]|0,n)}function ua(e,n){e=e|0,n=+n,kt(t[e>>2]|0,w(n))}function ys(e,n){e=e|0,n=+n,tn(t[e>>2]|0,w(n))}function gs(e,n){e=e|0,n=+n,Lt(t[e>>2]|0,w(n))}function Ql(e,n){e=e|0,n=+n,bt(t[e>>2]|0,w(n))}function Io(e,n){e=e|0,n=+n,on(t[e>>2]|0,w(n))}function hf(e,n){e=e|0,n=+n,sn(t[e>>2]|0,w(n))}function tl(e,n){e=e|0,n=+n,Yn(t[e>>2]|0,w(n))}function ju(e){e=e|0,yr(t[e>>2]|0)}function Ia(e,n){e=e|0,n=+n,Cu(t[e>>2]|0,w(n))}function Zu(e,n){e=e|0,n=+n,S0(t[e>>2]|0,w(n))}function U0(e){e=e|0,X0(t[e>>2]|0)}function vf(e,n){e=e|0,n=+n,di(t[e>>2]|0,w(n))}function jc(e,n){e=e|0,n=+n,ko(t[e>>2]|0,w(n))}function lc(e,n){e=e|0,n=+n,sf(t[e>>2]|0,w(n))}function Sl(e,n){e=e|0,n=+n,gl(t[e>>2]|0,w(n))}function _s(e,n){e=e|0,n=+n,Mo(t[e>>2]|0,w(n))}function oa(e,n){e=e|0,n=+n,ds(t[e>>2]|0,w(n))}function n2(e,n){e=e|0,n=+n,No(t[e>>2]|0,w(n))}function la(e,n){e=e|0,n=+n,Lo(t[e>>2]|0,w(n))}function sc(e,n){e=e|0,n=+n,Vu(t[e>>2]|0,w(n))}function zc(e,n,r){e=e|0,n=n|0,r=+r,Ft(t[e>>2]|0,n,w(r))}function bi(e,n,r){e=e|0,n=n|0,r=+r,nt(t[e>>2]|0,n,w(r))}function g(e,n,r){e=e|0,n=n|0,r=+r,_t(t[e>>2]|0,n,w(r))}function y(e){return e=e|0,ke(t[e>>2]|0)|0}function A(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,_r(l,t[n>>2]|0,r),F(e,l),m=u}function F(e,n){e=e|0,n=n|0,I(e,t[n+4>>2]|0,+w(C[n>>2]))}function I(e,n,r){e=e|0,n=n|0,r=+r,t[e>>2]=n,U[e+8>>3]=r}function J(e){return e=e|0,G(t[e>>2]|0)|0}function fe(e){return e=e|0,De(t[e>>2]|0)|0}function mt(e){return e=e|0,xe(t[e>>2]|0)|0}function Ct(e){return e=e|0,Fs(t[e>>2]|0)|0}function Mt(e){return e=e|0,ht(t[e>>2]|0)|0}function Er(e){return e=e|0,B(t[e>>2]|0)|0}function $u(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,v0(l,t[n>>2]|0,r),F(e,l),m=u}function iu(e){return e=e|0,qe(t[e>>2]|0)|0}function j0(e){return e=e|0,Tt(t[e>>2]|0)|0}function Tl(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,gn(u,t[n>>2]|0),F(e,u),m=r}function e0(e){return e=e|0,+ +w(lf(t[e>>2]|0))}function He(e){return e=e|0,+ +w(Ns(t[e>>2]|0))}function Be(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,nu(u,t[n>>2]|0),F(e,u),m=r}function ut(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,xu(u,t[n>>2]|0),F(e,u),m=r}function Jt(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Zo(u,t[n>>2]|0),F(e,u),m=r}function jn(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,af(u,t[n>>2]|0),F(e,u),m=r}function ti(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,bs(u,t[n>>2]|0),F(e,u),m=r}function tr(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,ps(u,t[n>>2]|0),F(e,u),m=r}function ii(e){return e=e|0,+ +w(yu(t[e>>2]|0))}function qi(e,n){return e=e|0,n=n|0,+ +w(nn(t[e>>2]|0,n))}function jr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,Ze(l,t[n>>2]|0,r),F(e,l),m=u}function gu(e,n,r){e=e|0,n=n|0,r=r|0,ka(t[e>>2]|0,t[n>>2]|0,r)}function Ba(e,n){e=e|0,n=n|0,Tu(t[e>>2]|0,t[n>>2]|0)}function Ua(e){return e=e|0,mu(t[e>>2]|0)|0}function r2(e){return e=e|0,e=ri(t[e>>2]|0)|0,e?e=oc(e)|0:e=0,e|0}function Ed(e,n){return e=e|0,n=n|0,e=yi(t[e>>2]|0,n)|0,e?e=oc(e)|0:e=0,e|0}function Dd(e,n){e=e|0,n=n|0;var r=0,u=0;u=cn(4)|0,mf(u,n),r=e+4|0,n=t[r>>2]|0,t[r>>2]=u,n|0&&(ia(n),yt(n)),$s(t[e>>2]|0,1)}function mf(e,n){e=e|0,n=n|0,rl(e,n)}function i2(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,ch(D,Ls(n)|0,+r,u,+l,s),C[e>>2]=w(+U[D>>3]),C[e+4>>2]=w(+U[D+8>>3]),m=h}function ch(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0,D=0,S=0,M=0,O=0;h=m,m=m+32|0,O=h+8|0,M=h+20|0,S=h,D=h+16|0,U[O>>3]=r,t[M>>2]=u,U[S>>3]=l,t[D>>2]=s,qc(e,t[n+4>>2]|0,O,M,S,D),m=h}function qc(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,Ta(D),n=vo(n)|0,dh(e,n,+U[r>>3],t[u>>2]|0,+U[l>>3],t[s>>2]|0),Ca(D),m=h}function vo(e){return e=e|0,t[e>>2]|0}function dh(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0;h=mo(ph()|0)|0,r=+Cl(r),u=u2(u)|0,l=+Cl(l),o2(e,Wr(0,h|0,n|0,+r,u|0,+l,u2(s)|0)|0)}function ph(){var e=0;return p[7608]|0||(Wc(9120),e=7608,t[e>>2]=1,t[e+4>>2]=0),9120}function mo(e){return e=e|0,t[e+8>>2]|0}function Cl(e){return e=+e,+ +ja(e)}function u2(e){return e=e|0,s2(e)|0}function o2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=n,u&1?(wd(r,0),Yi(u|0,r|0)|0,Hc(e,r),Mr(r)):(t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]),m=l}function wd(e,n){e=e|0,n=n|0,l2(e,n),t[e+8>>2]=0,p[e+24>>0]=0}function Hc(e,n){e=e|0,n=n|0,n=n+8|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]}function Mr(e){e=e|0,p[e+24>>0]=0}function l2(e,n){e=e|0,n=n|0,t[e>>2]=n}function s2(e){return e=e|0,e|0}function ja(e){return e=+e,+e}function Wc(e){e=e|0,nl(e,Sd()|0,4)}function Sd(){return 1064}function nl(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=Pt(n|0,r+1|0)|0}function rl(e,n){e=e|0,n=n|0,n=t[n>>2]|0,t[e>>2]=n,Ei(n|0)}function hh(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ia(n),yt(n)),$s(t[e>>2]|0,0)}function yf(e){e=e|0,Gr(t[e>>2]|0)}function Vc(e){return e=e|0,Yl(t[e>>2]|0)|0}function Td(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,Kr(t[e>>2]|0,w(n),w(r),u)}function vh(e){return e=e|0,+ +w(pi(t[e>>2]|0))}function il(e){return e=e|0,+ +w(Q0(t[e>>2]|0))}function sa(e){return e=e|0,+ +w(T0(t[e>>2]|0))}function Cd(e){return e=e|0,+ +w(Fo(t[e>>2]|0))}function xd(e){return e=e|0,+ +w(ta(t[e>>2]|0))}function ac(e){return e=e|0,+ +w(Kl(t[e>>2]|0))}function mh(e,n){e=e|0,n=n|0,U[e>>3]=+w(pi(t[n>>2]|0)),U[e+8>>3]=+w(Q0(t[n>>2]|0)),U[e+16>>3]=+w(T0(t[n>>2]|0)),U[e+24>>3]=+w(Fo(t[n>>2]|0)),U[e+32>>3]=+w(ta(t[n>>2]|0)),U[e+40>>3]=+w(Kl(t[n>>2]|0))}function Ad(e,n){return e=e|0,n=n|0,+ +w(Ki(t[e>>2]|0,n))}function a2(e,n){return e=e|0,n=n|0,+ +w(Yr(t[e>>2]|0,n))}function Gc(e,n){return e=e|0,n=n|0,+ +w(fo(t[e>>2]|0,n))}function Yc(){return Oa()|0}function Us(){Rd(),aa(),Kc(),fc(),cc(),f2()}function Rd(){bN(11713,4938,1)}function aa(){eN(10448)}function Kc(){bM(10408)}function fc(){iM(10324)}function cc(){yE(10096)}function f2(){yh(9132)}function yh(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0,ts=0,ns=0,rs=0,Xs=0,$2=0,ed=0,Za=0,td=0,Oc=0,kc=0,nd=0,rd=0,id=0,si=0,$a=0,ud=0,zf=0,od=0,ld=0,Mc=0,Nc=0,qf=0,Il=0,Aa=0,As=0,ef=0,L1=0,F1=0,Lc=0,b1=0,P1=0,Bl=0,vl=0,tf=0,lu=0,I1=0,is=0,Hf=0,us=0,Wf=0,B1=0,U1=0,Vf=0,Ul=0,nf=0,j1=0,z1=0,q1=0,gr=0,Mu=0,ml=0,os=0,jl=0,Tr=0,Fn=0,rf=0;n=m,m=m+672|0,r=n+656|0,rf=n+648|0,Fn=n+640|0,Tr=n+632|0,jl=n+624|0,os=n+616|0,ml=n+608|0,Mu=n+600|0,gr=n+592|0,q1=n+584|0,z1=n+576|0,j1=n+568|0,nf=n+560|0,Ul=n+552|0,Vf=n+544|0,U1=n+536|0,B1=n+528|0,Wf=n+520|0,us=n+512|0,Hf=n+504|0,is=n+496|0,I1=n+488|0,lu=n+480|0,tf=n+472|0,vl=n+464|0,Bl=n+456|0,P1=n+448|0,b1=n+440|0,Lc=n+432|0,F1=n+424|0,L1=n+416|0,ef=n+408|0,As=n+400|0,Aa=n+392|0,Il=n+384|0,qf=n+376|0,Nc=n+368|0,Mc=n+360|0,ld=n+352|0,od=n+344|0,zf=n+336|0,ud=n+328|0,$a=n+320|0,si=n+312|0,id=n+304|0,rd=n+296|0,nd=n+288|0,kc=n+280|0,Oc=n+272|0,td=n+264|0,Za=n+256|0,ed=n+248|0,$2=n+240|0,Xs=n+232|0,rs=n+224|0,ns=n+216|0,ts=n+208|0,Zi=n+200|0,On=n+192|0,kr=n+184|0,hr=n+176|0,mn=n+168|0,Nn=n+160|0,Lr=n+152|0,Qt=n+144|0,Fe=n+136|0,Re=n+128|0,st=n+120|0,We=n+112|0,Qe=n+104|0,ve=n+96|0,Ee=n+88|0,Pe=n+80|0,K=n+72|0,P=n+64|0,O=n+56|0,M=n+48|0,S=n+40|0,D=n+32|0,h=n+24|0,s=n+16|0,l=n+8|0,u=n,gf(e,3646),Xc(e,3651,2)|0,gh(e,3665,2)|0,vm(e,3682,18)|0,t[rf>>2]=19,t[rf+4>>2]=0,t[r>>2]=t[rf>>2],t[r+4>>2]=t[rf+4>>2],js(e,3690,r)|0,t[Fn>>2]=1,t[Fn+4>>2]=0,t[r>>2]=t[Fn>>2],t[r+4>>2]=t[Fn+4>>2],fa(e,3696,r)|0,t[Tr>>2]=2,t[Tr+4>>2]=0,t[r>>2]=t[Tr>>2],t[r+4>>2]=t[Tr+4>>2],Ji(e,3706,r)|0,t[jl>>2]=1,t[jl+4>>2]=0,t[r>>2]=t[jl>>2],t[r+4>>2]=t[jl+4>>2],O0(e,3722,r)|0,t[os>>2]=2,t[os+4>>2]=0,t[r>>2]=t[os>>2],t[r+4>>2]=t[os+4>>2],O0(e,3734,r)|0,t[ml>>2]=3,t[ml+4>>2]=0,t[r>>2]=t[ml>>2],t[r+4>>2]=t[ml+4>>2],Ji(e,3753,r)|0,t[Mu>>2]=4,t[Mu+4>>2]=0,t[r>>2]=t[Mu>>2],t[r+4>>2]=t[Mu+4>>2],Ji(e,3769,r)|0,t[gr>>2]=5,t[gr+4>>2]=0,t[r>>2]=t[gr>>2],t[r+4>>2]=t[gr+4>>2],Ji(e,3783,r)|0,t[q1>>2]=6,t[q1+4>>2]=0,t[r>>2]=t[q1>>2],t[r+4>>2]=t[q1+4>>2],Ji(e,3796,r)|0,t[z1>>2]=7,t[z1+4>>2]=0,t[r>>2]=t[z1>>2],t[r+4>>2]=t[z1+4>>2],Ji(e,3813,r)|0,t[j1>>2]=8,t[j1+4>>2]=0,t[r>>2]=t[j1>>2],t[r+4>>2]=t[j1+4>>2],Ji(e,3825,r)|0,t[nf>>2]=3,t[nf+4>>2]=0,t[r>>2]=t[nf>>2],t[r+4>>2]=t[nf+4>>2],O0(e,3843,r)|0,t[Ul>>2]=4,t[Ul+4>>2]=0,t[r>>2]=t[Ul>>2],t[r+4>>2]=t[Ul+4>>2],O0(e,3853,r)|0,t[Vf>>2]=9,t[Vf+4>>2]=0,t[r>>2]=t[Vf>>2],t[r+4>>2]=t[Vf+4>>2],Ji(e,3870,r)|0,t[U1>>2]=10,t[U1+4>>2]=0,t[r>>2]=t[U1>>2],t[r+4>>2]=t[U1+4>>2],Ji(e,3884,r)|0,t[B1>>2]=11,t[B1+4>>2]=0,t[r>>2]=t[B1>>2],t[r+4>>2]=t[B1+4>>2],Ji(e,3896,r)|0,t[Wf>>2]=1,t[Wf+4>>2]=0,t[r>>2]=t[Wf>>2],t[r+4>>2]=t[Wf+4>>2],t0(e,3907,r)|0,t[us>>2]=2,t[us+4>>2]=0,t[r>>2]=t[us>>2],t[r+4>>2]=t[us+4>>2],t0(e,3915,r)|0,t[Hf>>2]=3,t[Hf+4>>2]=0,t[r>>2]=t[Hf>>2],t[r+4>>2]=t[Hf+4>>2],t0(e,3928,r)|0,t[is>>2]=4,t[is+4>>2]=0,t[r>>2]=t[is>>2],t[r+4>>2]=t[is+4>>2],t0(e,3948,r)|0,t[I1>>2]=5,t[I1+4>>2]=0,t[r>>2]=t[I1>>2],t[r+4>>2]=t[I1+4>>2],t0(e,3960,r)|0,t[lu>>2]=6,t[lu+4>>2]=0,t[r>>2]=t[lu>>2],t[r+4>>2]=t[lu+4>>2],t0(e,3974,r)|0,t[tf>>2]=7,t[tf+4>>2]=0,t[r>>2]=t[tf>>2],t[r+4>>2]=t[tf+4>>2],t0(e,3983,r)|0,t[vl>>2]=20,t[vl+4>>2]=0,t[r>>2]=t[vl>>2],t[r+4>>2]=t[vl+4>>2],js(e,3999,r)|0,t[Bl>>2]=8,t[Bl+4>>2]=0,t[r>>2]=t[Bl>>2],t[r+4>>2]=t[Bl+4>>2],t0(e,4012,r)|0,t[P1>>2]=9,t[P1+4>>2]=0,t[r>>2]=t[P1>>2],t[r+4>>2]=t[P1+4>>2],t0(e,4022,r)|0,t[b1>>2]=21,t[b1+4>>2]=0,t[r>>2]=t[b1>>2],t[r+4>>2]=t[b1+4>>2],js(e,4039,r)|0,t[Lc>>2]=10,t[Lc+4>>2]=0,t[r>>2]=t[Lc>>2],t[r+4>>2]=t[Lc+4>>2],t0(e,4053,r)|0,t[F1>>2]=11,t[F1+4>>2]=0,t[r>>2]=t[F1>>2],t[r+4>>2]=t[F1+4>>2],t0(e,4065,r)|0,t[L1>>2]=12,t[L1+4>>2]=0,t[r>>2]=t[L1>>2],t[r+4>>2]=t[L1+4>>2],t0(e,4084,r)|0,t[ef>>2]=13,t[ef+4>>2]=0,t[r>>2]=t[ef>>2],t[r+4>>2]=t[ef+4>>2],t0(e,4097,r)|0,t[As>>2]=14,t[As+4>>2]=0,t[r>>2]=t[As>>2],t[r+4>>2]=t[As+4>>2],t0(e,4117,r)|0,t[Aa>>2]=15,t[Aa+4>>2]=0,t[r>>2]=t[Aa>>2],t[r+4>>2]=t[Aa+4>>2],t0(e,4129,r)|0,t[Il>>2]=16,t[Il+4>>2]=0,t[r>>2]=t[Il>>2],t[r+4>>2]=t[Il+4>>2],t0(e,4148,r)|0,t[qf>>2]=17,t[qf+4>>2]=0,t[r>>2]=t[qf>>2],t[r+4>>2]=t[qf+4>>2],t0(e,4161,r)|0,t[Nc>>2]=18,t[Nc+4>>2]=0,t[r>>2]=t[Nc>>2],t[r+4>>2]=t[Nc+4>>2],t0(e,4181,r)|0,t[Mc>>2]=5,t[Mc+4>>2]=0,t[r>>2]=t[Mc>>2],t[r+4>>2]=t[Mc+4>>2],O0(e,4196,r)|0,t[ld>>2]=6,t[ld+4>>2]=0,t[r>>2]=t[ld>>2],t[r+4>>2]=t[ld+4>>2],O0(e,4206,r)|0,t[od>>2]=7,t[od+4>>2]=0,t[r>>2]=t[od>>2],t[r+4>>2]=t[od+4>>2],O0(e,4217,r)|0,t[zf>>2]=3,t[zf+4>>2]=0,t[r>>2]=t[zf>>2],t[r+4>>2]=t[zf+4>>2],Jl(e,4235,r)|0,t[ud>>2]=1,t[ud+4>>2]=0,t[r>>2]=t[ud>>2],t[r+4>>2]=t[ud+4>>2],za(e,4251,r)|0,t[$a>>2]=4,t[$a+4>>2]=0,t[r>>2]=t[$a>>2],t[r+4>>2]=t[$a+4>>2],Jl(e,4263,r)|0,t[si>>2]=5,t[si+4>>2]=0,t[r>>2]=t[si>>2],t[r+4>>2]=t[si+4>>2],Jl(e,4279,r)|0,t[id>>2]=6,t[id+4>>2]=0,t[r>>2]=t[id>>2],t[r+4>>2]=t[id+4>>2],Jl(e,4293,r)|0,t[rd>>2]=7,t[rd+4>>2]=0,t[r>>2]=t[rd>>2],t[r+4>>2]=t[rd+4>>2],Jl(e,4306,r)|0,t[nd>>2]=8,t[nd+4>>2]=0,t[r>>2]=t[nd>>2],t[r+4>>2]=t[nd+4>>2],Jl(e,4323,r)|0,t[kc>>2]=9,t[kc+4>>2]=0,t[r>>2]=t[kc>>2],t[r+4>>2]=t[kc+4>>2],Jl(e,4335,r)|0,t[Oc>>2]=2,t[Oc+4>>2]=0,t[r>>2]=t[Oc>>2],t[r+4>>2]=t[Oc+4>>2],za(e,4353,r)|0,t[td>>2]=12,t[td+4>>2]=0,t[r>>2]=t[td>>2],t[r+4>>2]=t[td+4>>2],no(e,4363,r)|0,t[Za>>2]=1,t[Za+4>>2]=0,t[r>>2]=t[Za>>2],t[r+4>>2]=t[Za+4>>2],ul(e,4376,r)|0,t[ed>>2]=2,t[ed+4>>2]=0,t[r>>2]=t[ed>>2],t[r+4>>2]=t[ed+4>>2],ul(e,4388,r)|0,t[$2>>2]=13,t[$2+4>>2]=0,t[r>>2]=t[$2>>2],t[r+4>>2]=t[$2+4>>2],no(e,4402,r)|0,t[Xs>>2]=14,t[Xs+4>>2]=0,t[r>>2]=t[Xs>>2],t[r+4>>2]=t[Xs+4>>2],no(e,4411,r)|0,t[rs>>2]=15,t[rs+4>>2]=0,t[r>>2]=t[rs>>2],t[r+4>>2]=t[rs+4>>2],no(e,4421,r)|0,t[ns>>2]=16,t[ns+4>>2]=0,t[r>>2]=t[ns>>2],t[r+4>>2]=t[ns+4>>2],no(e,4433,r)|0,t[ts>>2]=17,t[ts+4>>2]=0,t[r>>2]=t[ts>>2],t[r+4>>2]=t[ts+4>>2],no(e,4446,r)|0,t[Zi>>2]=18,t[Zi+4>>2]=0,t[r>>2]=t[Zi>>2],t[r+4>>2]=t[Zi+4>>2],no(e,4458,r)|0,t[On>>2]=3,t[On+4>>2]=0,t[r>>2]=t[On>>2],t[r+4>>2]=t[On+4>>2],ul(e,4471,r)|0,t[kr>>2]=1,t[kr+4>>2]=0,t[r>>2]=t[kr>>2],t[r+4>>2]=t[kr+4>>2],dc(e,4486,r)|0,t[hr>>2]=10,t[hr+4>>2]=0,t[r>>2]=t[hr>>2],t[r+4>>2]=t[hr+4>>2],Jl(e,4496,r)|0,t[mn>>2]=11,t[mn+4>>2]=0,t[r>>2]=t[mn>>2],t[r+4>>2]=t[mn+4>>2],Jl(e,4508,r)|0,t[Nn>>2]=3,t[Nn+4>>2]=0,t[r>>2]=t[Nn>>2],t[r+4>>2]=t[Nn+4>>2],za(e,4519,r)|0,t[Lr>>2]=4,t[Lr+4>>2]=0,t[r>>2]=t[Lr>>2],t[r+4>>2]=t[Lr+4>>2],Od(e,4530,r)|0,t[Qt>>2]=19,t[Qt+4>>2]=0,t[r>>2]=t[Qt>>2],t[r+4>>2]=t[Qt+4>>2],_h(e,4542,r)|0,t[Fe>>2]=12,t[Fe+4>>2]=0,t[r>>2]=t[Fe>>2],t[r+4>>2]=t[Fe+4>>2],_f(e,4554,r)|0,t[Re>>2]=13,t[Re+4>>2]=0,t[r>>2]=t[Re>>2],t[r+4>>2]=t[Re+4>>2],Ef(e,4568,r)|0,t[st>>2]=2,t[st+4>>2]=0,t[r>>2]=t[st>>2],t[r+4>>2]=t[st+4>>2],Qc(e,4578,r)|0,t[We>>2]=20,t[We+4>>2]=0,t[r>>2]=t[We>>2],t[r+4>>2]=t[We+4>>2],xl(e,4587,r)|0,t[Qe>>2]=22,t[Qe+4>>2]=0,t[r>>2]=t[Qe>>2],t[r+4>>2]=t[Qe+4>>2],js(e,4602,r)|0,t[ve>>2]=23,t[ve+4>>2]=0,t[r>>2]=t[ve>>2],t[r+4>>2]=t[ve+4>>2],js(e,4619,r)|0,t[Ee>>2]=14,t[Ee+4>>2]=0,t[r>>2]=t[Ee>>2],t[r+4>>2]=t[Ee+4>>2],Jc(e,4629,r)|0,t[Pe>>2]=1,t[Pe+4>>2]=0,t[r>>2]=t[Pe>>2],t[r+4>>2]=t[Pe+4>>2],ca(e,4637,r)|0,t[K>>2]=4,t[K+4>>2]=0,t[r>>2]=t[K>>2],t[r+4>>2]=t[K+4>>2],ul(e,4653,r)|0,t[P>>2]=5,t[P+4>>2]=0,t[r>>2]=t[P>>2],t[r+4>>2]=t[P+4>>2],ul(e,4669,r)|0,t[O>>2]=6,t[O+4>>2]=0,t[r>>2]=t[O>>2],t[r+4>>2]=t[O+4>>2],ul(e,4686,r)|0,t[M>>2]=7,t[M+4>>2]=0,t[r>>2]=t[M>>2],t[r+4>>2]=t[M+4>>2],ul(e,4701,r)|0,t[S>>2]=8,t[S+4>>2]=0,t[r>>2]=t[S>>2],t[r+4>>2]=t[S+4>>2],ul(e,4719,r)|0,t[D>>2]=9,t[D+4>>2]=0,t[r>>2]=t[D>>2],t[r+4>>2]=t[D+4>>2],ul(e,4736,r)|0,t[h>>2]=21,t[h+4>>2]=0,t[r>>2]=t[h>>2],t[r+4>>2]=t[h+4>>2],c2(e,4754,r)|0,t[s>>2]=2,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],dc(e,4772,r)|0,t[l>>2]=3,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],dc(e,4790,r)|0,t[u>>2]=4,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],dc(e,4808,r)|0,m=n}function gf(e,n){e=e|0,n=n|0;var r=0;r=Ja()|0,t[e>>2]=r,jo(r,n),Q2(t[e>>2]|0)}function Xc(e,n,r){return e=e|0,n=n|0,r=r|0,Ot(e,Or(n)|0,r,0),e|0}function gh(e,n,r){return e=e|0,n=n|0,r=r|0,c(e,Or(n)|0,r,0),e|0}function vm(e,n,r){return e=e|0,n=n|0,r=r|0,cE(e,Or(n)|0,r,0),e|0}function js(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],rE(e,n,l),m=u,e|0}function fa(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bl(e,n,l),m=u,e|0}function Ji(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],d(e,n,l),m=u,e|0}function O0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Tv(e,n,l),m=u,e|0}function t0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],sy(e,n,l),m=u,e|0}function Jl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],W2(e,n,l),m=u,e|0}function za(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],H2(e,n,l),m=u,e|0}function no(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],k0(e,n,l),m=u,e|0}function ul(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Ep(e,n,l),m=u,e|0}function dc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Hm(e,n,l),m=u,e|0}function Od(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],n0(e,n,l),m=u,e|0}function _h(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],x2(e,n,l),m=u,e|0}function _f(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Fm(e,n,l),m=u,e|0}function Ef(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Zd(e,n,l),m=u,e|0}function Qc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],p1(e,n,l),m=u,e|0}function xl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Ga(e,n,l),m=u,e|0}function Jc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Id(e,n,l),m=u,e|0}function ca(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Nd(e,n,l),m=u,e|0}function c2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],d2(e,n,l),m=u,e|0}function d2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],da(e,r,l,1),m=u}function Or(e){return e=e|0,e|0}function da(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=kd()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Zc(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,p2(s,u)|0,u),m=l}function kd(){var e=0,n=0;if(p[7616]|0||(ol(9136),Ht(24,9136,he|0)|0,n=7616,t[n>>2]=1,t[n+4>>2]=0),!(rr(9136)|0)){e=9136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));ol(9136)}return 9136}function Zc(e){return e=e|0,0}function p2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=kd()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Df(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(wf(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function vi(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0;h=m,m=m+32|0,K=h+24|0,P=h+20|0,S=h+16|0,O=h+12|0,M=h+8|0,D=h+4|0,Pe=h,t[P>>2]=n,t[S>>2]=r,t[O>>2]=u,t[M>>2]=l,t[D>>2]=s,s=e+28|0,t[Pe>>2]=t[s>>2],t[K>>2]=t[Pe>>2],Md(e+24|0,K,P,O,M,S,D)|0,t[s>>2]=t[t[s>>2]>>2],m=h}function Md(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,e=mm(n)|0,n=cn(24)|0,h2(n+4|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0,t[h>>2]|0),t[n>>2]=t[e>>2],t[e>>2]=n,n|0}function mm(e){return e=e|0,t[e>>2]|0}function h2(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function dn(e,n){return e=e|0,n=n|0,n|e|0}function Df(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function wf(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ym(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Sf(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Df(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Eh(e,D),gm(D),m=M;return}}function ym(e){return e=e|0,357913941}function Sf(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Eh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function gm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function ol(e){e=e|0,Bo(e)}function $c(e){e=e|0,Un(e+24|0)}function rr(e){return e=e|0,t[e>>2]|0}function Un(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Bo(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,3,n,zn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dr(){return 9228}function zn(){return 1140}function ll(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=yo(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=pc(n,u)|0,m=r,n|0}function Pn(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function yo(e){return e=e|0,(t[(kd()|0)+24>>2]|0)+(e*12|0)|0}function pc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+48|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),N1[r&31](u,e),u=ro(u)|0,m=l,u|0}function ro(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(qa()|0)|0,u?(Zl(n,u),Tf(r,n),hc(e,r),e=Es(n)|0):e=vc(e)|0,m=l,e|0}function qa(){var e=0;return p[7632]|0||(xf(9184),Ht(25,9184,he|0)|0,e=7632,t[e>>2]=1,t[e+4>>2]=0),9184}function Ou(e){return e=e|0,t[e+36>>2]|0}function Zl(e,n){e=e|0,n=n|0,t[e>>2]=n,t[e+4>>2]=e,t[e+8>>2]=0}function Tf(e,n){e=e|0,n=n|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=0}function hc(e,n){e=e|0,n=n|0,io(n,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0}function Es(e){return e=e|0,t[(t[e+4>>2]|0)+8>>2]|0}function vc(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;S=m,m=m+16|0,r=S+4|0,u=S,l=Sa(8)|0,s=l,h=cn(48)|0,D=h,n=D+48|0;do t[D>>2]=t[e>>2],D=D+4|0,e=e+4|0;while((D|0)<(n|0));return n=s+4|0,t[n>>2]=h,D=cn(8)|0,h=t[n>>2]|0,t[u>>2]=0,t[r>>2]=t[u>>2],Dh(D,h,r),t[l>>2]=D,m=S,s|0}function Dh(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1092,t[r+12>>2]=n,t[e+4>>2]=r}function an(e){e=e|0,Pv(e),yt(e)}function $l(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function go(e){e=e|0,yt(e)}function io(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,s=Hi(t[e>>2]|0,n,r,u,l,s,h)|0,h=e+4|0,t[(t[h>>2]|0)+8>>2]=s,t[(t[h>>2]|0)+8>>2]|0}function Hi(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0;var D=0,S=0;return D=m,m=m+16|0,S=D,Ta(S),e=vo(e)|0,h=zr(e,+U[n>>3],+U[r>>3],+U[u>>3],+U[l>>3],+U[s>>3],+U[h>>3])|0,Ca(S),m=D,h|0}function zr(e,n,r,u,l,s,h){e=e|0,n=+n,r=+r,u=+u,l=+l,s=+s,h=+h;var D=0;return D=mo(Cf()|0)|0,n=+Cl(n),r=+Cl(r),u=+Cl(u),l=+Cl(l),s=+Cl(s),f0(0,D|0,e|0,+n,+r,+u,+l,+s,+ +Cl(h))|0}function Cf(){var e=0;return p[7624]|0||(_m(9172),e=7624,t[e>>2]=1,t[e+4>>2]=0),9172}function _m(e){e=e|0,nl(e,Al()|0,6)}function Al(){return 1112}function xf(e){e=e|0,Ha(e)}function Af(e){e=e|0,v2(e+24|0),m2(e+16|0)}function v2(e){e=e|0,e1(e)}function m2(e){e=e|0,mc(e)}function mc(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function e1(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function Ha(e){e=e|0;var n=0;t[e+16>>2]=0,t[e+20>>2]=0,n=e+24|0,t[n>>2]=0,t[e+28>>2]=n,t[e+36>>2]=0,p[e+40>>0]=0,p[e+41>>0]=0}function Nd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],y2(e,r,l,0),m=u}function y2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=t1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Rf(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,n1(s,u)|0,u),m=l}function t1(){var e=0,n=0;if(p[7640]|0||(Rl(9232),Ht(26,9232,he|0)|0,n=7640,t[n>>2]=1,t[n+4>>2]=0),!(rr(9232)|0)){e=9232,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Rl(9232)}return 9232}function Rf(e){return e=e|0,0}function n1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=t1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Wa(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(r1(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Wa(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function r1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ld(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,g2(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Wa(s,u,r),t[S>>2]=(t[S>>2]|0)+12,yc(e,D),i1(D),m=M;return}}function Ld(e){return e=e|0,357913941}function g2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function yc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function i1(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Rl(e){e=e|0,Fd(e)}function pa(e){e=e|0,wh(e+24|0)}function wh(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Fd(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,bd()|0,3),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function bd(){return 1144}function Sh(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,h=s+8|0,D=s,S=_2(e)|0,e=t[S+4>>2]|0,t[D>>2]=t[S>>2],t[D+4>>2]=e,t[h>>2]=t[D>>2],t[h+4>>2]=t[D+4>>2],Th(n,h,r,u,l),m=s}function _2(e){return e=e|0,(t[(t1()|0)+24>>2]|0)+(e*12|0)|0}function Th(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0,M=0;M=m,m=m+16|0,h=M+2|0,D=M+1|0,S=M,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),Ol(h,r),r=+es(h,r),Ol(D,u),u=+es(D,u),Ds(S,l),S=zs(S,l)|0,Z8[s&1](e,r,u,S),m=M}function Ol(e,n){e=e|0,n=+n}function es(e,n){return e=e|0,n=+n,+ +Ch(n)}function Ds(e,n){e=e|0,n=n|0}function zs(e,n){return e=e|0,n=n|0,Pd(n)|0}function Pd(e){return e=e|0,e|0}function Ch(e){return e=+e,+e}function Id(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Bd(e,r,l,1),m=u}function Bd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=u1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=o1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,xh(s,u)|0,u),m=l}function u1(){var e=0,n=0;if(p[7648]|0||(l1(9268),Ht(27,9268,he|0)|0,n=7648,t[n>>2]=1,t[n+4>>2]=0),!(rr(9268)|0)){e=9268,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));l1(9268)}return 9268}function o1(e){return e=e|0,0}function xh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=u1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Ud(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jd(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Ud(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function jd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ws(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Va(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Ud(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ah(e,D),uu(D),m=M;return}}function ws(e){return e=e|0,357913941}function Va(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ah(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function uu(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function l1(e){e=e|0,kl(e)}function Rh(e){e=e|0,s1(e+24|0)}function s1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function kl(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,4,n,Oh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Oh(){return 1160}function zd(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=kh(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=a1(n,u)|0,m=r,n|0}function kh(e){return e=e|0,(t[(u1()|0)+24>>2]|0)+(e*12|0)|0}function a1(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Ml(Xp[r&31](e)|0)|0}function Ml(e){return e=e|0,e&1|0}function Ga(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ha(e,r,l,0),m=u}function ha(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=qd()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Hd(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Em(s,u)|0,u),m=l}function qd(){var e=0,n=0;if(p[7656]|0||(Lh(9304),Ht(28,9304,he|0)|0,n=7656,t[n>>2]=1,t[n+4>>2]=0),!(rr(9304)|0)){e=9304,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Lh(9304)}return 9304}function Hd(e){return e=e|0,0}function Em(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=qd()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Wd(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Mh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Wd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Mh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Nh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Vd(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Wd(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Dm(e,D),wm(D),m=M;return}}function Nh(e){return e=e|0,357913941}function Vd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Dm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function wm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Lh(e){e=e|0,f1(e)}function Sm(e){e=e|0,Gd(e+24|0)}function Gd(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function f1(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,c1()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function c1(){return 1164}function d1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=va(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Yd(n,l,r),m=u}function va(e){return e=e|0,(t[(qd()|0)+24>>2]|0)+(e*12|0)|0}function Yd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),qs(l,r),r=Hs(l,r)|0,N1[u&31](e,r),Ws(l),m=s}function qs(e,n){e=e|0,n=n|0,Kd(e,n)}function Hs(e,n){return e=e|0,n=n|0,e|0}function Ws(e){e=e|0,ia(e)}function Kd(e,n){e=e|0,n=n|0,ma(e,n)}function ma(e,n){e=e|0,n=n|0,t[e>>2]=n}function p1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],E2(e,r,l,0),m=u}function E2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=gc()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Xd(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,_o(s,u)|0,u),m=l}function gc(){var e=0,n=0;if(p[7664]|0||(Uh(9340),Ht(29,9340,he|0)|0,n=7664,t[n>>2]=1,t[n+4>>2]=0),!(rr(9340)|0)){e=9340,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Uh(9340)}return 9340}function Xd(e){return e=e|0,0}function _o(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=gc()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Fh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(bh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Fh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function bh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ph(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ih(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Fh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Tm(e,D),Bh(D),m=M;return}}function Ph(e){return e=e|0,357913941}function Ih(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Tm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Bh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Uh(e){e=e|0,jh(e)}function h1(e){e=e|0,Qd(e+24|0)}function Qd(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function jh(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,4,n,Jd()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Jd(){return 1180}function zh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=Cm(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=xm(n,l,r)|0,m=u,r|0}function Cm(e){return e=e|0,(t[(gc()|0)+24>>2]|0)+(e*12|0)|0}function xm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Of(l,r),l=kf(l,r)|0,l=D2(ZE[u&15](e,l)|0)|0,m=s,l|0}function Of(e,n){e=e|0,n=n|0}function kf(e,n){return e=e|0,n=n|0,Am(n)|0}function D2(e){return e=e|0,e|0}function Am(e){return e=e|0,e|0}function Zd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],w2(e,r,l,0),m=u}function w2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=$d()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=qh(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ep(s,u)|0,u),m=l}function $d(){var e=0,n=0;if(p[7672]|0||(Vh(9376),Ht(30,9376,he|0)|0,n=7672,t[n>>2]=1,t[n+4>>2]=0),!(rr(9376)|0)){e=9376,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Vh(9376)}return 9376}function qh(e){return e=e|0,0}function ep(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=$d()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Hh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Wh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Hh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Wh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=tp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Rm(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Hh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Om(e,D),km(D),m=M;return}}function tp(e){return e=e|0,357913941}function Rm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Om(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function km(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Vh(e){e=e|0,np(e)}function v1(e){e=e|0,Mm(e+24|0)}function Mm(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function np(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,rp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function rp(){return 1196}function Nm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Lm(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Gh(n,u)|0,m=r,n|0}function Lm(e){return e=e|0,(t[($d()|0)+24>>2]|0)+(e*12|0)|0}function Gh(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),D2(Xp[r&31](e)|0)|0}function Fm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bm(e,r,l,1),m=u}function bm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=ip()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=up(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ya(s,u)|0,u),m=l}function ip(){var e=0,n=0;if(p[7680]|0||(lp(9412),Ht(31,9412,he|0)|0,n=7680,t[n>>2]=1,t[n+4>>2]=0),!(rr(9412)|0)){e=9412,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));lp(9412)}return 9412}function up(e){return e=e|0,0}function ya(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=ip()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],m1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(op(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function m1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function op(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Yh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,S2(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],m1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,y1(e,D),Kh(D),m=M;return}}function Yh(e){return e=e|0,357913941}function S2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function y1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Kh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function lp(e){e=e|0,Qh(e)}function Xh(e){e=e|0,sp(e+24|0)}function sp(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Qh(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,Jh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Jh(){return 1200}function ap(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=T2(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=C2(n,u)|0,m=r,n|0}function T2(e){return e=e|0,(t[(ip()|0)+24>>2]|0)+(e*12|0)|0}function C2(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),z0(Xp[r&31](e)|0)|0}function z0(e){return e=e|0,e|0}function x2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ga(e,r,l,0),m=u}function ga(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ya()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=A2(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,R2(s,u)|0,u),m=l}function Ya(){var e=0,n=0;if(p[7688]|0||(dp(9448),Ht(32,9448,he|0)|0,n=7688,t[n>>2]=1,t[n+4>>2]=0),!(rr(9448)|0)){e=9448,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));dp(9448)}return 9448}function A2(e){return e=e|0,0}function R2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ya()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],fp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(O2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function fp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function O2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Zh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Pm(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],fp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,$h(e,D),cp(D),m=M;return}}function Zh(e){return e=e|0,357913941}function Pm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function $h(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function cp(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function dp(e){e=e|0,Bm(e)}function pp(e){e=e|0,Im(e+24|0)}function Im(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Bm(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,Eo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Eo(){return 1204}function k2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Um(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],sl(n,l,r),m=u}function Um(e){return e=e|0,(t[(Ya()|0)+24>>2]|0)+(e*12|0)|0}function sl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Jn(l,r),l=Vs(l,r)|0,N1[u&31](e,l),m=s}function Jn(e,n){e=e|0,n=n|0}function Vs(e,n){return e=e|0,n=n|0,al(n)|0}function al(e){return e=e|0,e|0}function n0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ev(e,r,l,0),m=u}function ev(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Gs()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=hp(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,jm(s,u)|0,u),m=l}function Gs(){var e=0,n=0;if(p[7696]|0||(yp(9484),Ht(33,9484,he|0)|0,n=7696,t[n>>2]=1,t[n+4>>2]=0),!(rr(9484)|0)){e=9484,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));yp(9484)}return 9484}function hp(e){return e=e|0,0}function jm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Gs()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],tv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(vp(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function tv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function vp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=zm(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,mp(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],tv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,_c(e,D),Ea(D),m=M;return}}function zm(e){return e=e|0,357913941}function mp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function _c(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ea(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function yp(e){e=e|0,zu(e)}function M2(e){e=e|0,ku(e+24|0)}function ku(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function zu(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,gp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gp(){return 1212}function _p(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=nv(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],qm(n,s,r,u),m=l}function nv(e){return e=e|0,(t[(Gs()|0)+24>>2]|0)+(e*12|0)|0}function qm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Jn(s,r),s=Vs(s,r)|0,Of(h,u),h=kf(h,u)|0,jy[l&15](e,s,h),m=D}function Hm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Wm(e,r,l,1),m=u}function Wm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=N2()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=rv(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Ec(s,u)|0,u),m=l}function N2(){var e=0,n=0;if(p[7704]|0||(iv(9520),Ht(34,9520,he|0)|0,n=7704,t[n>>2]=1,t[n+4>>2]=0),!(rr(9520)|0)){e=9520,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));iv(9520)}return 9520}function rv(e){return e=e|0,0}function Ec(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=N2()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],g1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Vm(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function g1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Vm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=L2(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,_1(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],g1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Nl(e,D),Da(D),m=M;return}}function L2(e){return e=e|0,357913941}function _1(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Nl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Da(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function iv(e){e=e|0,ov(e)}function Gm(e){e=e|0,uv(e+24|0)}function uv(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function ov(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,Ym()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Ym(){return 1224}function lv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;return l=m,m=m+16|0,s=l+8|0,h=l,D=wa(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],u=+Cr(n,s,r),m=l,+u}function wa(e){return e=e|0,(t[(N2()|0)+24>>2]|0)+(e*12|0)|0}function Cr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,h=+ja(+eS[u&7](e,l)),m=s,+h}function Ep(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],fl(e,r,l,1),m=u}function fl(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=cu()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=E1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ki(s,u)|0,u),m=l}function cu(){var e=0,n=0;if(p[7712]|0||(wp(9556),Ht(35,9556,he|0)|0,n=7712,t[n>>2]=1,t[n+4>>2]=0),!(rr(9556)|0)){e=9556,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));wp(9556)}return 9556}function E1(e){return e=e|0,0}function ki(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=cu()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Dp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(F2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Dp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function F2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Do(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ss(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Dp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Mf(e,D),b2(D),m=M;return}}function Do(e){return e=e|0,357913941}function Ss(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Mf(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function b2(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function wp(e){e=e|0,Sp(e)}function D1(e){e=e|0,w1(e+24|0)}function w1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Sp(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,Zn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Zn(){return 1232}function cl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=qn(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=+q0(n,l),m=u,+r}function qn(e){return e=e|0,(t[(cu()|0)+24>>2]|0)+(e*12|0)|0}function q0(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),+ +ja(+$8[r&15](e))}function k0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],P2(e,r,l,1),m=u}function P2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ll()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=S1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Dc(s,u)|0,u),m=l}function Ll(){var e=0,n=0;if(p[7720]|0||(U2(9592),Ht(36,9592,he|0)|0,n=7720,t[n>>2]=1,t[n+4>>2]=0),!(rr(9592)|0)){e=9592,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));U2(9592)}return 9592}function S1(e){return e=e|0,0}function Dc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ll()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],wc(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(I2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function wc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function I2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Tp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,M0(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],wc(s,u,r),t[S>>2]=(t[S>>2]|0)+12,fn(e,D),B2(D),m=M;return}}function Tp(e){return e=e|0,357913941}function M0(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function fn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function B2(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function U2(e){e=e|0,Cc(e)}function Sc(e){e=e|0,Tc(e+24|0)}function Tc(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Cc(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,7,n,T1()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function T1(){return 1276}function Cp(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Ka(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Km(n,u)|0,m=r,n|0}function Ka(e){return e=e|0,(t[(Ll()|0)+24>>2]|0)+(e*12|0)|0}function Km(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+16|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),N1[r&31](u,e),u=xc(u)|0,m=l,u|0}function xc(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(j2()|0)|0,u?(Zl(n,u),Tf(r,n),sv(e,r),e=Es(n)|0):e=C1(e)|0,m=l,e|0}function j2(){var e=0;return p[7736]|0||(Uo(9640),Ht(25,9640,he|0)|0,e=7736,t[e>>2]=1,t[e+4>>2]=0),9640}function sv(e,n){e=e|0,n=n|0,Ac(n,e,e+8|0)|0}function C1(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(16)|0,t[D>>2]=t[e>>2],t[D+4>>2]=t[e+4>>2],t[D+8>>2]=t[e+8>>2],t[D+12>>2]=t[e+12>>2],s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Nf(e,s,l),t[u>>2]=e,m=r,n|0}function Nf(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1244,t[r+12>>2]=n,t[e+4>>2]=r}function Lf(e){e=e|0,Pv(e),yt(e)}function x1(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function Fl(e){e=e|0,yt(e)}function Ac(e,n,r){return e=e|0,n=n|0,r=r|0,n=Ff(t[e>>2]|0,n,r)|0,r=e+4|0,t[(t[r>>2]|0)+8>>2]=n,t[(t[r>>2]|0)+8>>2]|0}function Ff(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return u=m,m=m+16|0,l=u,Ta(l),e=vo(e)|0,r=Xm(e,t[n>>2]|0,+U[r>>3])|0,Ca(l),m=u,r|0}function Xm(e,n,r){e=e|0,n=n|0,r=+r;var u=0;return u=mo(dl()|0)|0,n=u2(n)|0,Pr(0,u|0,e|0,n|0,+ +Cl(r))|0}function dl(){var e=0;return p[7728]|0||(z2(9628),e=7728,t[e>>2]=1,t[e+4>>2]=0),9628}function z2(e){e=e|0,nl(e,q2()|0,2)}function q2(){return 1264}function Uo(e){e=e|0,Ha(e)}function H2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Qm(e,r,l,1),m=u}function Qm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=A1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Jm(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Zm(s,u)|0,u),m=l}function A1(){var e=0,n=0;if(p[7744]|0||(cv(9684),Ht(37,9684,he|0)|0,n=7744,t[n>>2]=1,t[n+4>>2]=0),!(rr(9684)|0)){e=9684,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));cv(9684)}return 9684}function Jm(e){return e=e|0,0}function Zm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=A1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],av(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):($m(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function av(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function $m(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=fv(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,ey(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],av(s,u,r),t[S>>2]=(t[S>>2]|0)+12,ty(e,D),ny(D),m=M;return}}function fv(e){return e=e|0,357913941}function ey(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function ty(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function ny(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function cv(e){e=e|0,iy(e)}function ry(e){e=e|0,xp(e+24|0)}function xp(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function iy(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,bf()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function bf(){return 1280}function dv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=pv(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=hv(n,l,r)|0,m=u,r|0}function pv(e){return e=e|0,(t[(A1()|0)+24>>2]|0)+(e*12|0)|0}function hv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return h=m,m=m+32|0,l=h,s=h+16|0,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(s,r),s=zs(s,r)|0,jy[u&15](l,e,s),s=xc(l)|0,m=h,s|0}function W2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],V2(e,r,l,1),m=u}function V2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ap()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=vv(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,G2(s,u)|0,u),m=l}function Ap(){var e=0,n=0;if(p[7752]|0||(Ev(9720),Ht(38,9720,he|0)|0,n=7752,t[n>>2]=1,t[n+4>>2]=0),!(rr(9720)|0)){e=9720,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ev(9720)}return 9720}function vv(e){return e=e|0,0}function G2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ap()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],mv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(yv(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function mv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function yv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Rp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,gv(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],mv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,_v(e,D),uy(D),m=M;return}}function Rp(e){return e=e|0,357913941}function gv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function _v(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function uy(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Ev(e){e=e|0,Dv(e)}function oy(e){e=e|0,Y2(e+24|0)}function Y2(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Dv(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,Op()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Op(){return 1288}function ly(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=r0(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=kp(n,u)|0,m=r,n|0}function r0(e){return e=e|0,(t[(Ap()|0)+24>>2]|0)+(e*12|0)|0}function kp(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),s2(Xp[r&31](e)|0)|0}function sy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ay(e,r,l,0),m=u}function ay(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Mp()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Xa(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Np(s,u)|0,u),m=l}function Mp(){var e=0,n=0;if(p[7760]|0||(bp(9756),Ht(39,9756,he|0)|0,n=7760,t[n>>2]=1,t[n+4>>2]=0),!(rr(9756)|0)){e=9756,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));bp(9756)}return 9756}function Xa(e){return e=e|0,0}function Np(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Mp()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Lp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Fp(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Lp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Fp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=fy(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,cy(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Lp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,wv(e,D),Pf(D),m=M;return}}function fy(e){return e=e|0,357913941}function cy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function wv(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Pf(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function bp(e){e=e|0,py(e)}function Sv(e){e=e|0,dy(e+24|0)}function dy(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function py(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,Pp()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Pp(){return 1292}function Ip(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=hy(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],vy(n,l,r),m=u}function hy(e){return e=e|0,(t[(Mp()|0)+24>>2]|0)+(e*12|0)|0}function vy(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ol(l,r),r=+es(l,r),Q8[u&31](e,r),m=s}function Tv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Bp(e,r,l,0),m=u}function Bp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Up()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=K2(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,my(s,u)|0,u),m=l}function Up(){var e=0,n=0;if(p[7768]|0||(jp(9792),Ht(40,9792,he|0)|0,n=7768,t[n>>2]=1,t[n+4>>2]=0),!(rr(9792)|0)){e=9792,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));jp(9792)}return 9792}function K2(e){return e=e|0,0}function my(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Up()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],R1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(yy(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function R1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function yy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Cv(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,xv(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],R1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gy(e,D),If(D),m=M;return}}function Cv(e){return e=e|0,357913941}function xv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function If(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function jp(e){e=e|0,Ey(e)}function Av(e){e=e|0,_y(e+24|0)}function _y(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Ey(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,zp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zp(){return 1300}function Dy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=Ys(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],wy(n,s,r,u),m=l}function Ys(e){return e=e|0,(t[(Up()|0)+24>>2]|0)+(e*12|0)|0}function wy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Ds(s,r),s=zs(s,r)|0,Ol(h,u),u=+es(h,u),iS[l&15](e,s,u),m=D}function d(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],v(e,r,l,0),m=u}function v(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=x()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=b(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,H(s,u)|0,u),m=l}function x(){var e=0,n=0;if(p[7776]|0||(Rt(9828),Ht(41,9828,he|0)|0,n=7776,t[n>>2]=1,t[n+4>>2]=0),!(rr(9828)|0)){e=9828,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Rt(9828)}return 9828}function b(e){return e=e|0,0}function H(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=x()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],ee(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(de(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function ee(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function de(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ye(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,be(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],ee(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gt(e,D),Dt(D),m=M;return}}function ye(e){return e=e|0,357913941}function be(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gt(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Dt(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Rt(e){e=e|0,$n(e)}function rn(e){e=e|0,Rn(e+24|0)}function Rn(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function $n(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,7,n,Nr()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Nr(){return 1312}function ir(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Zr(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ui(n,l,r),m=u}function Zr(e){return e=e|0,(t[(x()|0)+24>>2]|0)+(e*12|0)|0}function ui(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,N1[u&31](e,l),m=s}function bl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Wi(e,r,l,0),m=u}function Wi(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=uo()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=i0(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Ts(s,u)|0,u),m=l}function uo(){var e=0,n=0;if(p[7784]|0||(r_(9864),Ht(42,9864,he|0)|0,n=7784,t[n>>2]=1,t[n+4>>2]=0),!(rr(9864)|0)){e=9864,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));r_(9864)}return 9864}function i0(e){return e=e|0,0}function Ts(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=uo()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],wo(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Rv(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function wo(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Rv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=X4(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Sy(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],wo(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ty(e,D),Qa(D),m=M;return}}function X4(e){return e=e|0,357913941}function Sy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ty(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Qa(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function r_(e){e=e|0,Z4(e)}function Q4(e){e=e|0,J4(e+24|0)}function J4(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Z4(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,$4()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function $4(){return 1320}function Cy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=eE(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tE(n,l,r),m=u}function eE(e){return e=e|0,(t[(uo()|0)+24>>2]|0)+(e*12|0)|0}function tE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),xy(l,r),l=i_(l,r)|0,N1[u&31](e,l),m=s}function xy(e,n){e=e|0,n=n|0}function i_(e,n){return e=e|0,n=n|0,nE(n)|0}function nE(e){return e=e|0,e|0}function rE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],u_(e,r,l,0),m=u}function u_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Bf()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=o_(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,iE(s,u)|0,u),m=l}function Bf(){var e=0,n=0;if(p[7792]|0||(Oy(9900),Ht(43,9900,he|0)|0,n=7792,t[n>>2]=1,t[n+4>>2]=0),!(rr(9900)|0)){e=9900,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Oy(9900)}return 9900}function o_(e){return e=e|0,0}function iE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Bf()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],qp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(uE(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function qp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function uE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ov(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ay(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],qp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ry(e,D),oE(D),m=M;return}}function Ov(e){return e=e|0,357913941}function Ay(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ry(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function oE(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Oy(e){e=e|0,l_(e)}function lE(e){e=e|0,sE(e+24|0)}function sE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function l_(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,22,n,aE()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function aE(){return 1344}function fE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;r=m,m=m+16|0,u=r+8|0,l=r,s=s_(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],kv(n,u),m=r}function s_(e){return e=e|0,(t[(Bf()|0)+24>>2]|0)+(e*12|0)|0}function kv(e,n){e=e|0,n=n|0;var r=0;r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),M1[r&127](e)}function cE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=ky()|0,e=dE(r)|0,vi(s,n,l,e,pE(r,u)|0,u)}function ky(){var e=0,n=0;if(p[7800]|0||(Ny(9936),Ht(44,9936,he|0)|0,n=7800,t[n>>2]=1,t[n+4>>2]=0),!(rr(9936)|0)){e=9936,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ny(9936)}return 9936}function dE(e){return e=e|0,e|0}function pE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=ky()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(My(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(a_(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function My(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function a_(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=f_(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,c_(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,My(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,d_(e,l),p_(l),m=D;return}}function f_(e){return e=e|0,536870911}function c_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function d_(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function p_(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function Ny(e){e=e|0,v_(e)}function h_(e){e=e|0,hE(e+24|0)}function hE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function v_(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,23,n,Eo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function vE(e,n){e=e|0,n=n|0,a(t[(mE(e)|0)>>2]|0,n)}function mE(e){return e=e|0,(t[(ky()|0)+24>>2]|0)+(e<<3)|0}function a(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Jn(u,n),n=Vs(u,n)|0,M1[e&127](n),m=r}function c(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=_()|0,e=T(r)|0,vi(s,n,l,e,R(r,u)|0,u)}function _(){var e=0,n=0;if(p[7808]|0||(pt(9972),Ht(45,9972,he|0)|0,n=7808,t[n>>2]=1,t[n+4>>2]=0),!(rr(9972)|0)){e=9972,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));pt(9972)}return 9972}function T(e){return e=e|0,e|0}function R(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=_()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(j(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(V(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function j(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function V(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=te(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,oe(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,j(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Ie(e,l),Ye(l),m=D;return}}function te(e){return e=e|0,536870911}function oe(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Ie(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ye(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function pt(e){e=e|0,zt(e)}function Nt(e){e=e|0,Vt(e+24|0)}function Vt(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zt(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,9,n,vn()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function vn(){return 1348}function xr(e,n){return e=e|0,n=n|0,wi(t[($r(e)|0)>>2]|0,n)|0}function $r(e){return e=e|0,(t[(_()|0)+24>>2]|0)+(e<<3)|0}function wi(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,N0(u,n),n=Vi(u,n)|0,n=D2(Xp[e&31](n)|0)|0,m=r,n|0}function N0(e,n){e=e|0,n=n|0}function Vi(e,n){return e=e|0,n=n|0,it(n)|0}function it(e){return e=e|0,e|0}function Ot(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=Je()|0,e=Bt(r)|0,vi(s,n,l,e,Mn(r,u)|0,u)}function Je(){var e=0,n=0;if(p[7816]|0||(qr(10008),Ht(46,10008,he|0)|0,n=7816,t[n>>2]=1,t[n+4>>2]=0),!(rr(10008)|0)){e=10008,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));qr(10008)}return 10008}function Bt(e){return e=e|0,e|0}function Mn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=Je()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(pn(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Pi(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function pn(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Pi(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=oi(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,qu(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,pn(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,ar(e,l),ou(l),m=D;return}}function oi(e){return e=e|0,536870911}function qu(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function ar(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function ou(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function qr(e){e=e|0,H0(e)}function _u(e){e=e|0,_0(e+24|0)}function _0(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function H0(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,15,n,rp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Cs(e){return e=e|0,pl(t[(Hu(e)|0)>>2]|0)|0}function Hu(e){return e=e|0,(t[(Je()|0)+24>>2]|0)+(e<<3)|0}function pl(e){return e=e|0,D2(N_[e&7]()|0)|0}function Ja(){var e=0;return p[7832]|0||(y_(10052),Ht(25,10052,he|0)|0,e=7832,t[e>>2]=1,t[e+4>>2]=0),10052}function jo(e,n){e=e|0,n=n|0,t[e>>2]=xs()|0,t[e+4>>2]=X2()|0,t[e+12>>2]=n,t[e+8>>2]=Uf()|0,t[e+32>>2]=2}function xs(){return 11709}function X2(){return 1188}function Uf(){return O1()|0}function Rc(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(zo(r),yt(r)):n|0&&(ms(n),yt(n))}function Pl(e,n){return e=e|0,n=n|0,n&e|0}function zo(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function O1(){var e=0;return p[7824]|0||(t[2511]=m_()|0,t[2512]=0,e=7824,t[e>>2]=1,t[e+4>>2]=0),10044}function m_(){return 0}function y_(e){e=e|0,Ha(e)}function yE(e){e=e|0;var n=0,r=0,u=0,l=0,s=0;n=m,m=m+32|0,r=n+24|0,s=n+16|0,l=n+8|0,u=n,g_(e,4827),gE(e,4834,3)|0,_E(e,3682,47)|0,t[s>>2]=9,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],Ly(e,4841,r)|0,t[l>>2]=1,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],__(e,4871,r)|0,t[u>>2]=10,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],EE(e,4891,r)|0,m=n}function g_(e,n){e=e|0,n=n|0;var r=0;r=Qk()|0,t[e>>2]=r,Jk(r,n),Q2(t[e>>2]|0)}function gE(e,n,r){return e=e|0,n=n|0,r=r|0,Fk(e,Or(n)|0,r,0),e|0}function _E(e,n,r){return e=e|0,n=n|0,r=r|0,_k(e,Or(n)|0,r,0),e|0}function Ly(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ek(e,n,l),m=u,e|0}function __(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bO(e,n,l),m=u,e|0}function EE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],DE(e,n,l),m=u,e|0}function DE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],wE(e,r,l,1),m=u}function wE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=SE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=DO(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,wO(s,u)|0,u),m=l}function SE(){var e=0,n=0;if(p[7840]|0||(L3(10100),Ht(48,10100,he|0)|0,n=7840,t[n>>2]=1,t[n+4>>2]=0),!(rr(10100)|0)){e=10100,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));L3(10100)}return 10100}function DO(e){return e=e|0,0}function wO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=SE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],N3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(SO(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function N3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function SO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=TO(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,CO(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],N3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,xO(e,D),AO(D),m=M;return}}function TO(e){return e=e|0,357913941}function CO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function xO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AO(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function L3(e){e=e|0,kO(e)}function RO(e){e=e|0,OO(e+24|0)}function OO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function kO(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,MO()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function MO(){return 1364}function NO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=LO(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=FO(n,l,r)|0,m=u,r|0}function LO(e){return e=e|0,(t[(SE()|0)+24>>2]|0)+(e*12|0)|0}function FO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,l=Ml(ZE[u&15](e,l)|0)|0,m=s,l|0}function bO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],PO(e,r,l,0),m=u}function PO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=TE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=IO(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,BO(s,u)|0,u),m=l}function TE(){var e=0,n=0;if(p[7848]|0||(b3(10136),Ht(49,10136,he|0)|0,n=7848,t[n>>2]=1,t[n+4>>2]=0),!(rr(10136)|0)){e=10136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));b3(10136)}return 10136}function IO(e){return e=e|0,0}function BO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=TE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],F3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(UO(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function F3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function UO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=jO(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,zO(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],F3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,qO(e,D),HO(D),m=M;return}}function jO(e){return e=e|0,357913941}function zO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function qO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function HO(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function b3(e){e=e|0,GO(e)}function WO(e){e=e|0,VO(e+24|0)}function VO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function GO(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,9,n,YO()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function YO(){return 1372}function KO(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=XO(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],QO(n,l,r),m=u}function XO(e){return e=e|0,(t[(TE()|0)+24>>2]|0)+(e*12|0)|0}function QO(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=St;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),JO(l,r),h=w(ZO(l,r)),X8[u&1](e,h),m=s}function JO(e,n){e=e|0,n=+n}function ZO(e,n){return e=e|0,n=+n,w($O(n))}function $O(e){return e=+e,w(e)}function ek(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tk(e,r,l,0),m=u}function tk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=CE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=nk(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,rk(s,u)|0,u),m=l}function CE(){var e=0,n=0;if(p[7856]|0||(I3(10172),Ht(50,10172,he|0)|0,n=7856,t[n>>2]=1,t[n+4>>2]=0),!(rr(10172)|0)){e=10172,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));I3(10172)}return 10172}function nk(e){return e=e|0,0}function rk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=CE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],P3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(ik(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function P3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function ik(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=uk(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,ok(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],P3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,lk(e,D),sk(D),m=M;return}}function uk(e){return e=e|0,357913941}function ok(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function lk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function sk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function I3(e){e=e|0,ck(e)}function ak(e){e=e|0,fk(e+24|0)}function fk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function ck(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,3,n,dk()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dk(){return 1380}function pk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=hk(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],vk(n,s,r,u),m=l}function hk(e){return e=e|0,(t[(CE()|0)+24>>2]|0)+(e*12|0)|0}function vk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Ds(s,r),s=zs(s,r)|0,mk(h,u),h=yk(h,u)|0,jy[l&15](e,s,h),m=D}function mk(e,n){e=e|0,n=n|0}function yk(e,n){return e=e|0,n=n|0,gk(n)|0}function gk(e){return e=e|0,(e|0)!=0|0}function _k(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=xE()|0,e=Ek(r)|0,vi(s,n,l,e,Dk(r,u)|0,u)}function xE(){var e=0,n=0;if(p[7864]|0||(U3(10208),Ht(51,10208,he|0)|0,n=7864,t[n>>2]=1,t[n+4>>2]=0),!(rr(10208)|0)){e=10208,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));U3(10208)}return 10208}function Ek(e){return e=e|0,e|0}function Dk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=xE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(B3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(wk(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function B3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function wk(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=Sk(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Tk(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,B3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Ck(e,l),xk(l),m=D;return}}function Sk(e){return e=e|0,536870911}function Tk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Ck(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function xk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function U3(e){e=e|0,Ok(e)}function Ak(e){e=e|0,Rk(e+24|0)}function Rk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Ok(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,24,n,kk()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function kk(){return 1392}function Mk(e,n){e=e|0,n=n|0,Lk(t[(Nk(e)|0)>>2]|0,n)}function Nk(e){return e=e|0,(t[(xE()|0)+24>>2]|0)+(e<<3)|0}function Lk(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,N0(u,n),n=Vi(u,n)|0,M1[e&127](n),m=r}function Fk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=AE()|0,e=bk(r)|0,vi(s,n,l,e,Pk(r,u)|0,u)}function AE(){var e=0,n=0;if(p[7872]|0||(z3(10244),Ht(52,10244,he|0)|0,n=7872,t[n>>2]=1,t[n+4>>2]=0),!(rr(10244)|0)){e=10244,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));z3(10244)}return 10244}function bk(e){return e=e|0,e|0}function Pk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=AE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(j3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Ik(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function j3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Ik(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=Bk(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Uk(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,j3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,jk(e,l),zk(l),m=D;return}}function Bk(e){return e=e|0,536870911}function Uk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function jk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function zk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function z3(e){e=e|0,Wk(e)}function qk(e){e=e|0,Hk(e+24|0)}function Hk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Wk(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,16,n,Vk()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Vk(){return 1400}function Gk(e){return e=e|0,Kk(t[(Yk(e)|0)>>2]|0)|0}function Yk(e){return e=e|0,(t[(AE()|0)+24>>2]|0)+(e<<3)|0}function Kk(e){return e=e|0,Xk(N_[e&7]()|0)|0}function Xk(e){return e=e|0,e|0}function Qk(){var e=0;return p[7880]|0||(rM(10280),Ht(25,10280,he|0)|0,e=7880,t[e>>2]=1,t[e+4>>2]=0),10280}function Jk(e,n){e=e|0,n=n|0,t[e>>2]=Zk()|0,t[e+4>>2]=$k()|0,t[e+12>>2]=n,t[e+8>>2]=eM()|0,t[e+32>>2]=4}function Zk(){return 11711}function $k(){return 1356}function eM(){return O1()|0}function tM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(nM(r),yt(r)):n|0&&(eo(n),yt(n))}function nM(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function rM(e){e=e|0,Ha(e)}function iM(e){e=e|0,uM(e,4920),oM(e)|0,lM(e)|0}function uM(e,n){e=e|0,n=n|0;var r=0;r=j2()|0,t[e>>2]=r,RM(r,n),Q2(t[e>>2]|0)}function oM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,gM()|0),e|0}function lM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,sM()|0),e|0}function sM(){var e=0;return p[7888]|0||(q3(10328),Ht(53,10328,he|0)|0,e=7888,t[e>>2]=1,t[e+4>>2]=0),rr(10328)|0||q3(10328),10328}function Hp(e,n){e=e|0,n=n|0,vi(e,0,n,0,0,0)}function q3(e){e=e|0,cM(e),Wp(e,10)}function aM(e){e=e|0,fM(e+24|0)}function fM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function cM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,1,n,vM()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dM(e,n,r){e=e|0,n=n|0,r=+r,pM(e,n,r)}function Wp(e,n){e=e|0,n=n|0,t[e+20>>2]=n}function pM(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,s=u+8|0,D=u+13|0,l=u,h=u+12|0,Ds(D,n),t[s>>2]=zs(D,n)|0,Ol(h,r),U[l>>3]=+es(h,r),hM(e,s,l),m=u}function hM(e,n,r){e=e|0,n=n|0,r=r|0,I(e+8|0,t[n>>2]|0,+U[r>>3]),p[e+24>>0]=1}function vM(){return 1404}function mM(e,n){return e=e|0,n=+n,yM(e,n)|0}function yM(e,n){e=e|0,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,s=u+4|0,h=u+8|0,D=u,l=Sa(8)|0,r=l,S=cn(16)|0,Ds(s,e),e=zs(s,e)|0,Ol(h,n),I(S,e,+es(h,n)),h=r+4|0,t[h>>2]=S,e=cn(8)|0,h=t[h>>2]|0,t[D>>2]=0,t[s>>2]=t[D>>2],Nf(e,h,s),t[l>>2]=e,m=u,r|0}function gM(){var e=0;return p[7896]|0||(H3(10364),Ht(54,10364,he|0)|0,e=7896,t[e>>2]=1,t[e+4>>2]=0),rr(10364)|0||H3(10364),10364}function H3(e){e=e|0,DM(e),Wp(e,55)}function _M(e){e=e|0,EM(e+24|0)}function EM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function DM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,4,n,CM()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function wM(e){e=e|0,SM(e)}function SM(e){e=e|0,TM(e)}function TM(e){e=e|0,W3(e+8|0),p[e+24>>0]=1}function W3(e){e=e|0,t[e>>2]=0,U[e+8>>3]=0}function CM(){return 1424}function xM(){return AM()|0}function AM(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,u=cn(16)|0,W3(u),s=e+4|0,t[s>>2]=u,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Nf(u,s,l),t[r>>2]=u,m=n,e|0}function RM(e,n){e=e|0,n=n|0,t[e>>2]=OM()|0,t[e+4>>2]=kM()|0,t[e+12>>2]=n,t[e+8>>2]=MM()|0,t[e+32>>2]=5}function OM(){return 11710}function kM(){return 1416}function MM(){return E_()|0}function NM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(LM(r),yt(r)):n|0&&yt(n)}function LM(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function E_(){var e=0;return p[7904]|0||(t[2600]=FM()|0,t[2601]=0,e=7904,t[e>>2]=1,t[e+4>>2]=0),10400}function FM(){return t[357]|0}function bM(e){e=e|0,PM(e,4926),IM(e)|0}function PM(e,n){e=e|0,n=n|0;var r=0;r=qa()|0,t[e>>2]=r,KM(r,n),Q2(t[e>>2]|0)}function IM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,BM()|0),e|0}function BM(){var e=0;return p[7912]|0||(V3(10412),Ht(56,10412,he|0)|0,e=7912,t[e>>2]=1,t[e+4>>2]=0),rr(10412)|0||V3(10412),10412}function V3(e){e=e|0,zM(e),Wp(e,57)}function UM(e){e=e|0,jM(e+24|0)}function jM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,5,n,VM()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qM(e){e=e|0,HM(e)}function HM(e){e=e|0,WM(e)}function WM(e){e=e|0;var n=0,r=0;n=e+8|0,r=n+48|0;do t[n>>2]=0,n=n+4|0;while((n|0)<(r|0));p[e+56>>0]=1}function VM(){return 1432}function GM(){return YM()|0}function YM(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0;h=m,m=m+16|0,e=h+4|0,n=h,r=Sa(8)|0,u=r,l=cn(48)|0,s=l,D=s+48|0;do t[s>>2]=0,s=s+4|0;while((s|0)<(D|0));return s=u+4|0,t[s>>2]=l,D=cn(8)|0,s=t[s>>2]|0,t[n>>2]=0,t[e>>2]=t[n>>2],Dh(D,s,e),t[r>>2]=D,m=h,u|0}function KM(e,n){e=e|0,n=n|0,t[e>>2]=XM()|0,t[e+4>>2]=QM()|0,t[e+12>>2]=n,t[e+8>>2]=JM()|0,t[e+32>>2]=6}function XM(){return 11704}function QM(){return 1436}function JM(){return E_()|0}function ZM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&($M(r),yt(r)):n|0&&yt(n)}function $M(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function eN(e){e=e|0,tN(e,4933),nN(e)|0,rN(e)|0}function tN(e,n){e=e|0,n=n|0;var r=0;r=AN()|0,t[e>>2]=r,RN(r,n),Q2(t[e>>2]|0)}function nN(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,yN()|0),e|0}function rN(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,iN()|0),e|0}function iN(){var e=0;return p[7920]|0||(G3(10452),Ht(58,10452,he|0)|0,e=7920,t[e>>2]=1,t[e+4>>2]=0),rr(10452)|0||G3(10452),10452}function G3(e){e=e|0,lN(e),Wp(e,1)}function uN(e){e=e|0,oN(e+24|0)}function oN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function lN(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,1,n,cN()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function sN(e,n,r){e=e|0,n=+n,r=+r,aN(e,n,r)}function aN(e,n,r){e=e|0,n=+n,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,s=u+8|0,D=u+17|0,l=u,h=u+16|0,Ol(D,n),U[s>>3]=+es(D,n),Ol(h,r),U[l>>3]=+es(h,r),fN(e,s,l),m=u}function fN(e,n,r){e=e|0,n=n|0,r=r|0,Y3(e+8|0,+U[n>>3],+U[r>>3]),p[e+24>>0]=1}function Y3(e,n,r){e=e|0,n=+n,r=+r,U[e>>3]=n,U[e+8>>3]=r}function cN(){return 1472}function dN(e,n){return e=+e,n=+n,pN(e,n)|0}function pN(e,n){e=+e,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,h=u+4|0,D=u+8|0,S=u,l=Sa(8)|0,r=l,s=cn(16)|0,Ol(h,e),e=+es(h,e),Ol(D,n),Y3(s,e,+es(D,n)),D=r+4|0,t[D>>2]=s,s=cn(8)|0,D=t[D>>2]|0,t[S>>2]=0,t[h>>2]=t[S>>2],K3(s,D,h),t[l>>2]=s,m=u,r|0}function K3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1452,t[r+12>>2]=n,t[e+4>>2]=r}function hN(e){e=e|0,Pv(e),yt(e)}function vN(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function mN(e){e=e|0,yt(e)}function yN(){var e=0;return p[7928]|0||(X3(10488),Ht(59,10488,he|0)|0,e=7928,t[e>>2]=1,t[e+4>>2]=0),rr(10488)|0||X3(10488),10488}function X3(e){e=e|0,EN(e),Wp(e,60)}function gN(e){e=e|0,_N(e+24|0)}function _N(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function EN(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,6,n,TN()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function DN(e){e=e|0,wN(e)}function wN(e){e=e|0,SN(e)}function SN(e){e=e|0,Q3(e+8|0),p[e+24>>0]=1}function Q3(e){e=e|0,t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,t[e+12>>2]=0}function TN(){return 1492}function CN(){return xN()|0}function xN(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,u=cn(16)|0,Q3(u),s=e+4|0,t[s>>2]=u,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],K3(u,s,l),t[r>>2]=u,m=n,e|0}function AN(){var e=0;return p[7936]|0||(FN(10524),Ht(25,10524,he|0)|0,e=7936,t[e>>2]=1,t[e+4>>2]=0),10524}function RN(e,n){e=e|0,n=n|0,t[e>>2]=ON()|0,t[e+4>>2]=kN()|0,t[e+12>>2]=n,t[e+8>>2]=MN()|0,t[e+32>>2]=7}function ON(){return 11700}function kN(){return 1484}function MN(){return E_()|0}function NN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(LN(r),yt(r)):n|0&&yt(n)}function LN(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function FN(e){e=e|0,Ha(e)}function bN(e,n,r){e=e|0,n=n|0,r=r|0,e=Or(n)|0,n=PN(r)|0,r=IN(r,0)|0,pL(e,n,r,RE()|0,0)}function PN(e){return e=e|0,e|0}function IN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=RE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(Z3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(WN(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function RE(){var e=0,n=0;if(p[7944]|0||(J3(10568),Ht(61,10568,he|0)|0,n=7944,t[n>>2]=1,t[n+4>>2]=0),!(rr(10568)|0)){e=10568,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));J3(10568)}return 10568}function J3(e){e=e|0,jN(e)}function BN(e){e=e|0,UN(e+24|0)}function UN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function jN(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,17,n,Jh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zN(e){return e=e|0,HN(t[(qN(e)|0)>>2]|0)|0}function qN(e){return e=e|0,(t[(RE()|0)+24>>2]|0)+(e<<3)|0}function HN(e){return e=e|0,z0(N_[e&7]()|0)|0}function Z3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function WN(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=VN(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,GN(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,Z3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,YN(e,l),KN(l),m=D;return}}function VN(e){return e=e|0,536870911}function GN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function YN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function KN(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function XN(){QN()}function QN(){JN(10604)}function JN(e){e=e|0,ZN(e,4955)}function ZN(e,n){e=e|0,n=n|0;var r=0;r=$N()|0,t[e>>2]=r,eL(r,n),Q2(t[e>>2]|0)}function $N(){var e=0;return p[7952]|0||(aL(10612),Ht(25,10612,he|0)|0,e=7952,t[e>>2]=1,t[e+4>>2]=0),10612}function eL(e,n){e=e|0,n=n|0,t[e>>2]=iL()|0,t[e+4>>2]=uL()|0,t[e+12>>2]=n,t[e+8>>2]=oL()|0,t[e+32>>2]=8}function Q2(e){e=e|0;var n=0,r=0;n=m,m=m+16|0,r=n,Mv()|0,t[r>>2]=e,tL(10608,r),m=n}function Mv(){return p[11714]|0||(t[2652]=0,Ht(62,10608,he|0)|0,p[11714]=1),10608}function tL(e,n){e=e|0,n=n|0;var r=0;r=cn(8)|0,t[r+4>>2]=t[n>>2],t[r>>2]=t[e>>2],t[e>>2]=r}function nL(e){e=e|0,rL(e)}function rL(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function iL(){return 11715}function uL(){return 1496}function oL(){return O1()|0}function lL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(sL(r),yt(r)):n|0&&yt(n)}function sL(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function aL(e){e=e|0,Ha(e)}function fL(e,n){e=e|0,n=n|0;var r=0,u=0;Mv()|0,r=t[2652]|0;e:do if(r|0){for(;u=t[r+4>>2]|0,!(u|0?(L8(OE(u)|0,e)|0)==0:0);)if(r=t[r>>2]|0,!r)break e;cL(u,n)}while(0)}function OE(e){return e=e|0,t[e+12>>2]|0}function cL(e,n){e=e|0,n=n|0;var r=0;e=e+36|0,r=t[e>>2]|0,r|0&&(ia(r),yt(r)),r=cn(4)|0,mf(r,n),t[e>>2]=r}function kE(){return p[11716]|0||(t[2664]=0,Ht(63,10656,he|0)|0,p[11716]=1),10656}function $3(){var e=0;return p[11717]|0?e=t[2665]|0:(dL(),t[2665]=1504,p[11717]=1,e=1504),e|0}function dL(){p[11740]|0||(p[11718]=dn(dn(8,0)|0,0)|0,p[11719]=dn(dn(0,0)|0,0)|0,p[11720]=dn(dn(0,16)|0,0)|0,p[11721]=dn(dn(8,0)|0,0)|0,p[11722]=dn(dn(0,0)|0,0)|0,p[11723]=dn(dn(8,0)|0,0)|0,p[11724]=dn(dn(0,0)|0,0)|0,p[11725]=dn(dn(8,0)|0,0)|0,p[11726]=dn(dn(0,0)|0,0)|0,p[11727]=dn(dn(8,0)|0,0)|0,p[11728]=dn(dn(0,0)|0,0)|0,p[11729]=dn(dn(0,0)|0,32)|0,p[11730]=dn(dn(0,0)|0,32)|0,p[11740]=1)}function e8(){return 1572}function pL(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0;s=m,m=m+32|0,O=s+16|0,M=s+12|0,S=s+8|0,D=s+4|0,h=s,t[O>>2]=e,t[M>>2]=n,t[S>>2]=r,t[D>>2]=u,t[h>>2]=l,kE()|0,hL(10656,O,M,S,D,h),m=s}function hL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0;h=cn(24)|0,h2(h+4|0,t[n>>2]|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0),t[h>>2]=t[e>>2],t[e>>2]=h}function t8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0;if(st=m,m=m+32|0,Ee=st+20|0,ve=st+8|0,Qe=st+4|0,We=st,n=t[n>>2]|0,n|0){Pe=Ee+4|0,S=Ee+8|0,M=ve+4|0,O=ve+8|0,P=ve+8|0,K=Ee+8|0;do{if(h=n+4|0,D=ME(h)|0,D|0){if(l=Fy(D)|0,t[Ee>>2]=0,t[Pe>>2]=0,t[S>>2]=0,u=(by(D)|0)+1|0,vL(Ee,u),u|0)for(;u=u+-1|0,jf(ve,t[l>>2]|0),s=t[Pe>>2]|0,s>>>0<(t[K>>2]|0)>>>0?(t[s>>2]=t[ve>>2],t[Pe>>2]=(t[Pe>>2]|0)+4):NE(Ee,ve),u;)l=l+4|0;u=Py(D)|0,t[ve>>2]=0,t[M>>2]=0,t[O>>2]=0;e:do if(t[u>>2]|0)for(l=0,s=0;;){if((l|0)==(s|0)?mL(ve,u):(t[l>>2]=t[u>>2],t[M>>2]=(t[M>>2]|0)+4),u=u+4|0,!(t[u>>2]|0))break e;l=t[M>>2]|0,s=t[P>>2]|0}while(0);t[Qe>>2]=D_(h)|0,t[We>>2]=rr(D)|0,yL(r,e,Qe,We,Ee,ve),LE(ve),k1(Ee)}n=t[n>>2]|0}while((n|0)!=0)}m=st}function ME(e){return e=e|0,t[e+12>>2]|0}function Fy(e){return e=e|0,t[e+12>>2]|0}function by(e){return e=e|0,t[e+16>>2]|0}function vL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=t[e>>2]|0,(t[e+8>>2]|0)-u>>2>>>0>>0&&(a8(r,n,(t[e+4>>2]|0)-u>>2,e+8|0),f8(e,r),c8(r)),m=l}function NE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=s8(e)|0,s>>>0>>0)li(e);else{D=t[e>>2]|0,M=(t[e+8>>2]|0)-D|0,S=M>>1,a8(r,M>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,f8(e,r),c8(r),m=h;return}}function Py(e){return e=e|0,t[e+8>>2]|0}function mL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=l8(e)|0,s>>>0>>0)li(e);else{D=t[e>>2]|0,M=(t[e+8>>2]|0)-D|0,S=M>>1,PL(r,M>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,IL(e,r),BL(r),m=h;return}}function D_(e){return e=e|0,t[e>>2]|0}function yL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,gL(e,n,r,u,l,s)}function LE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function k1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function gL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+48|0,O=h+40|0,D=h+32|0,P=h+24|0,S=h+12|0,M=h,Ta(D),e=vo(e)|0,t[P>>2]=t[n>>2],r=t[r>>2]|0,u=t[u>>2]|0,FE(S,l),_L(M,s),t[O>>2]=t[P>>2],EL(e,O,r,u,S,M),LE(M),k1(S),Ca(D),m=h}function FE(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(FL(e,u),bL(e,t[n>>2]|0,t[r>>2]|0,u))}function _L(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(NL(e,u),LL(e,t[n>>2]|0,t[r>>2]|0,u))}function EL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+32|0,O=h+28|0,P=h+24|0,D=h+12|0,S=h,M=mo(DL()|0)|0,t[P>>2]=t[n>>2],t[O>>2]=t[P>>2],n=Vp(O)|0,r=n8(r)|0,u=bE(u)|0,t[D>>2]=t[l>>2],O=l+4|0,t[D+4>>2]=t[O>>2],P=l+8|0,t[D+8>>2]=t[P>>2],t[P>>2]=0,t[O>>2]=0,t[l>>2]=0,l=PE(D)|0,t[S>>2]=t[s>>2],O=s+4|0,t[S+4>>2]=t[O>>2],P=s+8|0,t[S+8>>2]=t[P>>2],t[P>>2]=0,t[O>>2]=0,t[s>>2]=0,G0(0,M|0,e|0,n|0,r|0,u|0,l|0,wL(S)|0)|0,LE(S),k1(D),m=h}function DL(){var e=0;return p[7968]|0||(kL(10708),e=7968,t[e>>2]=1,t[e+4>>2]=0),10708}function Vp(e){return e=e|0,i8(e)|0}function n8(e){return e=e|0,r8(e)|0}function bE(e){return e=e|0,z0(e)|0}function PE(e){return e=e|0,TL(e)|0}function wL(e){return e=e|0,SL(e)|0}function SL(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Sa(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=r8(t[(t[e>>2]|0)+(n<<2)>>2]|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function r8(e){return e=e|0,e|0}function TL(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Sa(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=i8((t[e>>2]|0)+(n<<2)|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function i8(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(u8()|0)|0,u?(Zl(n,u),Tf(r,n),lI(e,r),e=Es(n)|0):e=CL(e)|0,m=l,e|0}function u8(){var e=0;return p[7960]|0||(OL(10664),Ht(25,10664,he|0)|0,e=7960,t[e>>2]=1,t[e+4>>2]=0),10664}function CL(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(4)|0,t[D>>2]=t[e>>2],s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],o8(e,s,l),t[u>>2]=e,m=r,n|0}function o8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1656,t[r+12>>2]=n,t[e+4>>2]=r}function xL(e){e=e|0,Pv(e),yt(e)}function AL(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function RL(e){e=e|0,yt(e)}function OL(e){e=e|0,Ha(e)}function kL(e){e=e|0,nl(e,ML()|0,5)}function ML(){return 1676}function NL(e,n){e=e|0,n=n|0;var r=0;if((l8(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function LL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function l8(e){return e=e|0,1073741823}function FL(e,n){e=e|0,n=n|0;var r=0;if((s8(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function bL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function s8(e){return e=e|0,1073741823}function PL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function IL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function BL(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function a8(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function f8(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function c8(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function UL(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;if(ve=m,m=m+32|0,O=ve+20|0,P=ve+12|0,M=ve+16|0,K=ve+4|0,Pe=ve,Ee=ve+8|0,D=$3()|0,s=t[D>>2]|0,h=t[s>>2]|0,h|0)for(S=t[D+8>>2]|0,D=t[D+4>>2]|0;jf(O,h),jL(e,O,D,S),s=s+4|0,h=t[s>>2]|0,h;)S=S+1|0,D=D+1|0;if(s=e8()|0,h=t[s>>2]|0,h|0)do jf(O,h),t[P>>2]=t[s+4>>2],zL(n,O,P),s=s+8|0,h=t[s>>2]|0;while((h|0)!=0);if(s=t[(Mv()|0)>>2]|0,s|0)do n=t[s+4>>2]|0,jf(O,t[(Nv(n)|0)>>2]|0),t[P>>2]=OE(n)|0,qL(r,O,P),s=t[s>>2]|0;while((s|0)!=0);if(jf(M,0),s=kE()|0,t[O>>2]=t[M>>2],t8(O,s,l),s=t[(Mv()|0)>>2]|0,s|0){e=O+4|0,n=O+8|0,r=O+8|0;do{if(S=t[s+4>>2]|0,jf(P,t[(Nv(S)|0)>>2]|0),HL(K,d8(S)|0),h=t[K>>2]|0,h|0){t[O>>2]=0,t[e>>2]=0,t[n>>2]=0;do jf(Pe,t[(Nv(t[h+4>>2]|0)|0)>>2]|0),D=t[e>>2]|0,D>>>0<(t[r>>2]|0)>>>0?(t[D>>2]=t[Pe>>2],t[e>>2]=(t[e>>2]|0)+4):NE(O,Pe),h=t[h>>2]|0;while((h|0)!=0);WL(u,P,O),k1(O)}t[Ee>>2]=t[P>>2],M=p8(S)|0,t[O>>2]=t[Ee>>2],t8(O,M,l),m2(K),s=t[s>>2]|0}while((s|0)!=0)}m=ve}function jL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,rF(e,n,r,u)}function zL(e,n,r){e=e|0,n=n|0,r=r|0,nF(e,n,r)}function Nv(e){return e=e|0,e|0}function qL(e,n,r){e=e|0,n=n|0,r=r|0,ZL(e,n,r)}function d8(e){return e=e|0,e+16|0}function HL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(s=m,m=m+16|0,l=s+8|0,r=s,t[e>>2]=0,u=t[n>>2]|0,t[l>>2]=u,t[r>>2]=e,r=JL(r)|0,u|0){if(u=cn(12)|0,h=(h8(l)|0)+4|0,e=t[h+4>>2]|0,n=u+4|0,t[n>>2]=t[h>>2],t[n+4>>2]=e,n=t[t[l>>2]>>2]|0,t[l>>2]=n,!n)e=u;else for(n=u;e=cn(12)|0,S=(h8(l)|0)+4|0,D=t[S+4>>2]|0,h=e+4|0,t[h>>2]=t[S>>2],t[h+4>>2]=D,t[n>>2]=e,h=t[t[l>>2]>>2]|0,t[l>>2]=h,h;)n=e;t[e>>2]=t[r>>2],t[r>>2]=u}m=s}function WL(e,n,r){e=e|0,n=n|0,r=r|0,VL(e,n,r)}function p8(e){return e=e|0,e+24|0}function VL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+24|0,l=u+16|0,D=u+12|0,s=u,Ta(l),e=vo(e)|0,t[D>>2]=t[n>>2],FE(s,r),t[h>>2]=t[D>>2],YL(e,h,s),k1(s),Ca(l),m=u}function YL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+16|0,D=u+12|0,l=u,s=mo(KL()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Vp(h)|0,t[l>>2]=t[r>>2],h=r+4|0,t[l+4>>2]=t[h>>2],D=r+8|0,t[l+8>>2]=t[D>>2],t[D>>2]=0,t[h>>2]=0,t[r>>2]=0,F0(0,s|0,e|0,n|0,PE(l)|0)|0,k1(l),m=u}function KL(){var e=0;return p[7976]|0||(XL(10720),e=7976,t[e>>2]=1,t[e+4>>2]=0),10720}function XL(e){e=e|0,nl(e,QL()|0,2)}function QL(){return 1732}function JL(e){return e=e|0,t[e>>2]|0}function h8(e){return e=e|0,t[e>>2]|0}function ZL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,Ta(l),e=vo(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],v8(e,s,r),Ca(l),m=u}function v8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+4|0,h=u,l=mo($L()|0)|0,t[h>>2]=t[n>>2],t[s>>2]=t[h>>2],n=Vp(s)|0,F0(0,l|0,e|0,n|0,n8(r)|0)|0,m=u}function $L(){var e=0;return p[7984]|0||(eF(10732),e=7984,t[e>>2]=1,t[e+4>>2]=0),10732}function eF(e){e=e|0,nl(e,tF()|0,2)}function tF(){return 1744}function nF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,Ta(l),e=vo(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],v8(e,s,r),Ca(l),m=u}function rF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,Ta(s),e=vo(e)|0,t[D>>2]=t[n>>2],r=p[r>>0]|0,u=p[u>>0]|0,t[h>>2]=t[D>>2],iF(e,h,r,u),Ca(s),m=l}function iF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,h=l+4|0,D=l,s=mo(uF()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Vp(h)|0,r=Lv(r)|0,Bn(0,s|0,e|0,n|0,r|0,Lv(u)|0)|0,m=l}function uF(){var e=0;return p[7992]|0||(lF(10744),e=7992,t[e>>2]=1,t[e+4>>2]=0),10744}function Lv(e){return e=e|0,oF(e)|0}function oF(e){return e=e|0,e&255|0}function lF(e){e=e|0,nl(e,sF()|0,3)}function sF(){return 1756}function aF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;switch(K=m,m=m+32|0,D=K+8|0,S=K+4|0,M=K+20|0,O=K,ma(e,0),u=oI(n)|0,t[D>>2]=0,P=D+4|0,t[P>>2]=0,t[D+8>>2]=0,u<<24>>24){case 0:{p[M>>0]=0,fF(S,r,M),w_(e,S)|0,B0(S);break}case 8:{P=qE(n)|0,p[M>>0]=8,jf(O,t[P+4>>2]|0),cF(S,r,M,O,P+8|0),w_(e,S)|0,B0(S);break}case 9:{if(s=qE(n)|0,n=t[s+4>>2]|0,n|0)for(h=D+8|0,l=s+12|0;n=n+-1|0,jf(S,t[l>>2]|0),u=t[P>>2]|0,u>>>0<(t[h>>2]|0)>>>0?(t[u>>2]=t[S>>2],t[P>>2]=(t[P>>2]|0)+4):NE(D,S),n;)l=l+4|0;p[M>>0]=9,jf(O,t[s+8>>2]|0),dF(S,r,M,O,D),w_(e,S)|0,B0(S);break}default:P=qE(n)|0,p[M>>0]=u,jf(O,t[P+4>>2]|0),pF(S,r,M,O),w_(e,S)|0,B0(S)}k1(D),m=K}function fF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,Ta(l),n=vo(n)|0,xF(e,n,p[r>>0]|0),Ca(l),m=u}function w_(e,n){e=e|0,n=n|0;var r=0;return r=t[e>>2]|0,r|0&&Ir(r|0),t[e>>2]=t[n>>2],t[n>>2]=0,e|0}function cF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+32|0,D=s+16|0,h=s+8|0,S=s,Ta(h),n=vo(n)|0,r=p[r>>0]|0,t[S>>2]=t[u>>2],l=t[l>>2]|0,t[D>>2]=t[S>>2],wF(e,n,r,D,l),Ca(h),m=s}function dF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0;s=m,m=m+32|0,S=s+24|0,h=s+16|0,M=s+12|0,D=s,Ta(h),n=vo(n)|0,r=p[r>>0]|0,t[M>>2]=t[u>>2],FE(D,l),t[S>>2]=t[M>>2],gF(e,n,r,S,D),k1(D),Ca(h),m=s}function pF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,Ta(s),n=vo(n)|0,r=p[r>>0]|0,t[D>>2]=t[u>>2],t[h>>2]=t[D>>2],hF(e,n,r,h),Ca(s),m=l}function hF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+4|0,D=l,h=mo(vF()|0)|0,r=Lv(r)|0,t[D>>2]=t[u>>2],t[s>>2]=t[D>>2],S_(e,F0(0,h|0,n|0,r|0,Vp(s)|0)|0),m=l}function vF(){var e=0;return p[8e3]|0||(mF(10756),e=8e3,t[e>>2]=1,t[e+4>>2]=0),10756}function S_(e,n){e=e|0,n=n|0,ma(e,n)}function mF(e){e=e|0,nl(e,yF()|0,2)}function yF(){return 1772}function gF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0;s=m,m=m+32|0,S=s+16|0,M=s+12|0,h=s,D=mo(_F()|0)|0,r=Lv(r)|0,t[M>>2]=t[u>>2],t[S>>2]=t[M>>2],u=Vp(S)|0,t[h>>2]=t[l>>2],S=l+4|0,t[h+4>>2]=t[S>>2],M=l+8|0,t[h+8>>2]=t[M>>2],t[M>>2]=0,t[S>>2]=0,t[l>>2]=0,S_(e,Bn(0,D|0,n|0,r|0,u|0,PE(h)|0)|0),k1(h),m=s}function _F(){var e=0;return p[8008]|0||(EF(10768),e=8008,t[e>>2]=1,t[e+4>>2]=0),10768}function EF(e){e=e|0,nl(e,DF()|0,3)}function DF(){return 1784}function wF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,D=s+4|0,S=s,h=mo(SF()|0)|0,r=Lv(r)|0,t[S>>2]=t[u>>2],t[D>>2]=t[S>>2],u=Vp(D)|0,S_(e,Bn(0,h|0,n|0,r|0,u|0,bE(l)|0)|0),m=s}function SF(){var e=0;return p[8016]|0||(TF(10780),e=8016,t[e>>2]=1,t[e+4>>2]=0),10780}function TF(e){e=e|0,nl(e,CF()|0,3)}function CF(){return 1800}function xF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=mo(AF()|0)|0,S_(e,ji(0,u|0,n|0,Lv(r)|0)|0)}function AF(){var e=0;return p[8024]|0||(RF(10792),e=8024,t[e>>2]=1,t[e+4>>2]=0),10792}function RF(e){e=e|0,nl(e,OF()|0,1)}function OF(){return 1816}function kF(){MF(),NF(),LF()}function MF(){t[2702]=H8(65536)|0}function NF(){$F(10856)}function LF(){FF(10816)}function FF(e){e=e|0,bF(e,5044),PF(e)|0}function bF(e,n){e=e|0,n=n|0;var r=0;r=u8()|0,t[e>>2]=r,YF(r,n),Q2(t[e>>2]|0)}function PF(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,IF()|0),e|0}function IF(){var e=0;return p[8032]|0||(m8(10820),Ht(64,10820,he|0)|0,e=8032,t[e>>2]=1,t[e+4>>2]=0),rr(10820)|0||m8(10820),10820}function m8(e){e=e|0,jF(e),Wp(e,25)}function BF(e){e=e|0,UF(e+24|0)}function UF(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function jF(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,18,n,WF()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zF(e,n){e=e|0,n=n|0,qF(e,n)}function qF(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;r=m,m=m+16|0,u=r,l=r+4|0,Of(l,n),t[u>>2]=kf(l,n)|0,HF(e,u),m=r}function HF(e,n){e=e|0,n=n|0,y8(e+4|0,t[n>>2]|0),p[e+8>>0]=1}function y8(e,n){e=e|0,n=n|0,t[e>>2]=n}function WF(){return 1824}function VF(e){return e=e|0,GF(e)|0}function GF(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(4)|0,Of(l,e),y8(D,kf(l,e)|0),s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],o8(e,s,l),t[u>>2]=e,m=r,n|0}function Sa(e){e=e|0;var n=0,r=0;return e=e+7&-8,(e>>>0<=32768?(n=t[2701]|0,e>>>0<=(65536-n|0)>>>0):0)?(r=(t[2702]|0)+n|0,t[2701]=n+e,e=r):(e=H8(e+8|0)|0,t[e>>2]=t[2703],t[2703]=e,e=e+8|0),e|0}function YF(e,n){e=e|0,n=n|0,t[e>>2]=KF()|0,t[e+4>>2]=XF()|0,t[e+12>>2]=n,t[e+8>>2]=QF()|0,t[e+32>>2]=9}function KF(){return 11744}function XF(){return 1832}function QF(){return E_()|0}function JF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(ZF(r),yt(r)):n|0&&yt(n)}function ZF(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function $F(e){e=e|0,eb(e,5052),tb(e)|0,nb(e,5058,26)|0,rb(e,5069,1)|0,ib(e,5077,10)|0,ub(e,5087,19)|0,ob(e,5094,27)|0}function eb(e,n){e=e|0,n=n|0;var r=0;r=ZP()|0,t[e>>2]=r,$P(r,n),Q2(t[e>>2]|0)}function tb(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,BP()|0),e|0}function nb(e,n,r){return e=e|0,n=n|0,r=r|0,EP(e,Or(n)|0,r,0),e|0}function rb(e,n,r){return e=e|0,n=n|0,r=r|0,uP(e,Or(n)|0,r,0),e|0}function ib(e,n,r){return e=e|0,n=n|0,r=r|0,Ib(e,Or(n)|0,r,0),e|0}function ub(e,n,r){return e=e|0,n=n|0,r=r|0,wb(e,Or(n)|0,r,0),e|0}function g8(e,n){e=e|0,n=n|0;var r=0,u=0;e:for(;;){for(r=t[2703]|0;;){if((r|0)==(n|0))break e;if(u=t[r>>2]|0,t[2703]=u,!r)r=u;else break}yt(r)}t[2701]=e}function ob(e,n,r){return e=e|0,n=n|0,r=r|0,lb(e,Or(n)|0,r,0),e|0}function lb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=IE()|0,e=sb(r)|0,vi(s,n,l,e,ab(r,u)|0,u)}function IE(){var e=0,n=0;if(p[8040]|0||(E8(10860),Ht(65,10860,he|0)|0,n=8040,t[n>>2]=1,t[n+4>>2]=0),!(rr(10860)|0)){e=10860,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));E8(10860)}return 10860}function sb(e){return e=e|0,e|0}function ab(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=IE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(_8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(fb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function _8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function fb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=cb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,db(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,_8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,pb(e,l),hb(l),m=D;return}}function cb(e){return e=e|0,536870911}function db(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function pb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function hb(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function E8(e){e=e|0,yb(e)}function vb(e){e=e|0,mb(e+24|0)}function mb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function yb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,11,n,gb()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gb(){return 1840}function _b(e,n,r){e=e|0,n=n|0,r=r|0,Db(t[(Eb(e)|0)>>2]|0,n,r)}function Eb(e){return e=e|0,(t[(IE()|0)+24>>2]|0)+(e<<3)|0}function Db(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+1|0,l=u,Of(s,n),n=kf(s,n)|0,Of(l,r),r=kf(l,r)|0,N1[e&31](n,r),m=u}function wb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=BE()|0,e=Sb(r)|0,vi(s,n,l,e,Tb(r,u)|0,u)}function BE(){var e=0,n=0;if(p[8048]|0||(w8(10896),Ht(66,10896,he|0)|0,n=8048,t[n>>2]=1,t[n+4>>2]=0),!(rr(10896)|0)){e=10896,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));w8(10896)}return 10896}function Sb(e){return e=e|0,e|0}function Tb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=BE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(D8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Cb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function D8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Cb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=xb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Ab(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,D8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Rb(e,l),Ob(l),m=D;return}}function xb(e){return e=e|0,536870911}function Ab(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Rb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ob(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function w8(e){e=e|0,Nb(e)}function kb(e){e=e|0,Mb(e+24|0)}function Mb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Nb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,11,n,Lb()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Lb(){return 1852}function Fb(e,n){return e=e|0,n=n|0,Pb(t[(bb(e)|0)>>2]|0,n)|0}function bb(e){return e=e|0,(t[(BE()|0)+24>>2]|0)+(e<<3)|0}function Pb(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,Of(u,n),n=kf(u,n)|0,n=z0(Xp[e&31](n)|0)|0,m=r,n|0}function Ib(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=UE()|0,e=Bb(r)|0,vi(s,n,l,e,Ub(r,u)|0,u)}function UE(){var e=0,n=0;if(p[8056]|0||(T8(10932),Ht(67,10932,he|0)|0,n=8056,t[n>>2]=1,t[n+4>>2]=0),!(rr(10932)|0)){e=10932,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));T8(10932)}return 10932}function Bb(e){return e=e|0,e|0}function Ub(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=UE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(S8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(jb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function S8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function jb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=zb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,qb(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,S8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Hb(e,l),Wb(l),m=D;return}}function zb(e){return e=e|0,536870911}function qb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Hb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Wb(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function T8(e){e=e|0,Yb(e)}function Vb(e){e=e|0,Gb(e+24|0)}function Gb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Yb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,7,n,Kb()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Kb(){return 1860}function Xb(e,n,r){return e=e|0,n=n|0,r=r|0,Jb(t[(Qb(e)|0)>>2]|0,n,r)|0}function Qb(e){return e=e|0,(t[(UE()|0)+24>>2]|0)+(e<<3)|0}function Jb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+32|0,h=u+12|0,s=u+8|0,D=u,S=u+16|0,l=u+4|0,Zb(S,n),$b(D,S,n),qs(l,r),r=Hs(l,r)|0,t[h>>2]=t[D>>2],jy[e&15](s,h,r),r=eP(s)|0,B0(s),Ws(l),m=u,r|0}function Zb(e,n){e=e|0,n=n|0}function $b(e,n,r){e=e|0,n=n|0,r=r|0,tP(e,r)}function eP(e){return e=e|0,vo(e)|0}function tP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+16|0,r=l,u=n,u&1?(nP(r,0),Yi(u|0,r|0)|0,rP(e,r),iP(r)):t[e>>2]=t[n>>2],m=l}function nP(e,n){e=e|0,n=n|0,l2(e,n),t[e+4>>2]=0,p[e+8>>0]=0}function rP(e,n){e=e|0,n=n|0,t[e>>2]=t[n+4>>2]}function iP(e){e=e|0,p[e+8>>0]=0}function uP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=jE()|0,e=oP(r)|0,vi(s,n,l,e,lP(r,u)|0,u)}function jE(){var e=0,n=0;if(p[8064]|0||(x8(10968),Ht(68,10968,he|0)|0,n=8064,t[n>>2]=1,t[n+4>>2]=0),!(rr(10968)|0)){e=10968,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));x8(10968)}return 10968}function oP(e){return e=e|0,e|0}function lP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=jE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(C8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(sP(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function C8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function sP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=aP(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,fP(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,C8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,cP(e,l),dP(l),m=D;return}}function aP(e){return e=e|0,536870911}function fP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function cP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function dP(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function x8(e){e=e|0,vP(e)}function pP(e){e=e|0,hP(e+24|0)}function hP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function vP(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,1,n,mP()|0,5),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function mP(){return 1872}function yP(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,_P(t[(gP(e)|0)>>2]|0,n,r,u,l,s)}function gP(e){return e=e|0,(t[(jE()|0)+24>>2]|0)+(e<<3)|0}function _P(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+32|0,D=h+16|0,S=h+12|0,M=h+8|0,O=h+4|0,P=h,qs(D,n),n=Hs(D,n)|0,qs(S,r),r=Hs(S,r)|0,qs(M,u),u=Hs(M,u)|0,qs(O,l),l=Hs(O,l)|0,qs(P,s),s=Hs(P,s)|0,K8[e&1](n,r,u,l,s),Ws(P),Ws(O),Ws(M),Ws(S),Ws(D),m=h}function EP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=zE()|0,e=DP(r)|0,vi(s,n,l,e,wP(r,u)|0,u)}function zE(){var e=0,n=0;if(p[8072]|0||(R8(11004),Ht(69,11004,he|0)|0,n=8072,t[n>>2]=1,t[n+4>>2]=0),!(rr(11004)|0)){e=11004,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));R8(11004)}return 11004}function DP(e){return e=e|0,e|0}function wP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=zE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(A8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(SP(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function A8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function SP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=TP(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,CP(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,A8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,xP(e,l),AP(l),m=D;return}}function TP(e){return e=e|0,536870911}function CP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function xP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AP(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function R8(e){e=e|0,kP(e)}function RP(e){e=e|0,OP(e+24|0)}function OP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function kP(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,12,n,MP()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function MP(){return 1896}function NP(e,n,r){e=e|0,n=n|0,r=r|0,FP(t[(LP(e)|0)>>2]|0,n,r)}function LP(e){return e=e|0,(t[(zE()|0)+24>>2]|0)+(e<<3)|0}function FP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+4|0,l=u,bP(s,n),n=PP(s,n)|0,qs(l,r),r=Hs(l,r)|0,N1[e&31](n,r),Ws(l),m=u}function bP(e,n){e=e|0,n=n|0}function PP(e,n){return e=e|0,n=n|0,IP(n)|0}function IP(e){return e=e|0,e|0}function BP(){var e=0;return p[8080]|0||(O8(11040),Ht(70,11040,he|0)|0,e=8080,t[e>>2]=1,t[e+4>>2]=0),rr(11040)|0||O8(11040),11040}function O8(e){e=e|0,zP(e),Wp(e,71)}function UP(e){e=e|0,jP(e+24|0)}function jP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zP(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,7,n,VP()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qP(e){e=e|0,HP(e)}function HP(e){e=e|0,WP(e)}function WP(e){e=e|0,p[e+8>>0]=1}function VP(){return 1936}function GP(){return YP()|0}function YP(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,s=e+4|0,t[s>>2]=cn(1)|0,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],KP(u,s,l),t[r>>2]=u,m=n,e|0}function KP(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1916,t[r+12>>2]=n,t[e+4>>2]=r}function XP(e){e=e|0,Pv(e),yt(e)}function QP(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function JP(e){e=e|0,yt(e)}function ZP(){var e=0;return p[8088]|0||(uI(11076),Ht(25,11076,he|0)|0,e=8088,t[e>>2]=1,t[e+4>>2]=0),11076}function $P(e,n){e=e|0,n=n|0,t[e>>2]=eI()|0,t[e+4>>2]=tI()|0,t[e+12>>2]=n,t[e+8>>2]=nI()|0,t[e+32>>2]=10}function eI(){return 11745}function tI(){return 1940}function nI(){return O1()|0}function rI(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(iI(r),yt(r)):n|0&&yt(n)}function iI(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function uI(e){e=e|0,Ha(e)}function jf(e,n){e=e|0,n=n|0,t[e>>2]=n}function qE(e){return e=e|0,t[e>>2]|0}function oI(e){return e=e|0,p[t[e>>2]>>0]|0}function lI(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,t[u>>2]=t[e>>2],sI(n,u)|0,m=r}function sI(e,n){e=e|0,n=n|0;var r=0;return r=aI(t[e>>2]|0,n)|0,n=e+4|0,t[(t[n>>2]|0)+8>>2]=r,t[(t[n>>2]|0)+8>>2]|0}function aI(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,Ta(u),e=vo(e)|0,n=fI(e,t[n>>2]|0)|0,Ca(u),m=r,n|0}function Ta(e){e=e|0,t[e>>2]=t[2701],t[e+4>>2]=t[2703]}function fI(e,n){e=e|0,n=n|0;var r=0;return r=mo(cI()|0)|0,ji(0,r|0,e|0,bE(n)|0)|0}function Ca(e){e=e|0,g8(t[e>>2]|0,t[e+4>>2]|0)}function cI(){var e=0;return p[8096]|0||(dI(11120),e=8096,t[e>>2]=1,t[e+4>>2]=0),11120}function dI(e){e=e|0,nl(e,pI()|0,1)}function pI(){return 1948}function hI(){vI()}function vI(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;if(Ee=m,m=m+16|0,O=Ee+4|0,P=Ee,Ln(65536,10804,t[2702]|0,10812),r=$3()|0,n=t[r>>2]|0,e=t[n>>2]|0,e|0)for(u=t[r+8>>2]|0,r=t[r+4>>2]|0;Wl(e|0,k[r>>0]|0|0,p[u>>0]|0),n=n+4|0,e=t[n>>2]|0,e;)u=u+1|0,r=r+1|0;if(e=e8()|0,n=t[e>>2]|0,n|0)do xo(n|0,t[e+4>>2]|0),e=e+8|0,n=t[e>>2]|0;while((n|0)!=0);xo(mI()|0,5167),M=Mv()|0,e=t[M>>2]|0;e:do if(e|0){do yI(t[e+4>>2]|0),e=t[e>>2]|0;while((e|0)!=0);if(e=t[M>>2]|0,e|0){S=M;do{for(;l=e,e=t[e>>2]|0,l=t[l+4>>2]|0,!!(gI(l)|0);)if(t[P>>2]=S,t[O>>2]=t[P>>2],_I(M,O)|0,!e)break e;if(EI(l),S=t[S>>2]|0,n=k8(l)|0,s=lo()|0,h=m,m=m+((1*(n<<2)|0)+15&-16)|0,D=m,m=m+((1*(n<<2)|0)+15&-16)|0,n=t[(d8(l)|0)>>2]|0,n|0)for(r=h,u=D;t[r>>2]=t[(Nv(t[n+4>>2]|0)|0)>>2],t[u>>2]=t[n+8>>2],n=t[n>>2]|0,n;)r=r+4|0,u=u+4|0;ve=Nv(l)|0,n=DI(l)|0,r=k8(l)|0,u=wI(l)|0,Ao(ve|0,n|0,h|0,D|0,r|0,u|0,OE(l)|0),ci(s|0)}while((e|0)!=0)}}while(0);if(e=t[(kE()|0)>>2]|0,e|0)do ve=e+4|0,M=ME(ve)|0,l=Py(M)|0,s=Fy(M)|0,h=(by(M)|0)+1|0,D=T_(M)|0,S=M8(ve)|0,M=rr(M)|0,O=D_(ve)|0,P=HE(ve)|0,oo(0,l|0,s|0,h|0,D|0,S|0,M|0,O|0,P|0,WE(ve)|0),e=t[e>>2]|0;while((e|0)!=0);e=t[(Mv()|0)>>2]|0;e:do if(e|0){t:for(;;){if(n=t[e+4>>2]|0,n|0?(K=t[(Nv(n)|0)>>2]|0,Pe=t[(p8(n)|0)>>2]|0,Pe|0):0){r=Pe;do{n=r+4|0,u=ME(n)|0;n:do if(u|0)switch(rr(u)|0){case 0:break t;case 4:case 3:case 2:{D=Py(u)|0,S=Fy(u)|0,M=(by(u)|0)+1|0,O=T_(u)|0,P=rr(u)|0,ve=D_(n)|0,oo(K|0,D|0,S|0,M|0,O|0,0,P|0,ve|0,HE(n)|0,WE(n)|0);break n}case 1:{h=Py(u)|0,D=Fy(u)|0,S=(by(u)|0)+1|0,M=T_(u)|0,O=M8(n)|0,P=rr(u)|0,ve=D_(n)|0,oo(K|0,h|0,D|0,S|0,M|0,O|0,P|0,ve|0,HE(n)|0,WE(n)|0);break n}case 5:{M=Py(u)|0,O=Fy(u)|0,P=(by(u)|0)+1|0,ve=T_(u)|0,oo(K|0,M|0,O|0,P|0,ve|0,SI(u)|0,rr(u)|0,0,0,0);break n}default:break n}while(0);r=t[r>>2]|0}while((r|0)!=0)}if(e=t[e>>2]|0,!e)break e}Xn()}while(0);Ms(),m=Ee}function mI(){return 11703}function yI(e){e=e|0,p[e+40>>0]=0}function gI(e){return e=e|0,(p[e+40>>0]|0)!=0|0}function _I(e,n){return e=e|0,n=n|0,n=TI(n)|0,e=t[n>>2]|0,t[n>>2]=t[e>>2],yt(e),t[n>>2]|0}function EI(e){e=e|0,p[e+40>>0]=1}function k8(e){return e=e|0,t[e+20>>2]|0}function DI(e){return e=e|0,t[e+8>>2]|0}function wI(e){return e=e|0,t[e+32>>2]|0}function T_(e){return e=e|0,t[e+4>>2]|0}function M8(e){return e=e|0,t[e+4>>2]|0}function HE(e){return e=e|0,t[e+8>>2]|0}function WE(e){return e=e|0,t[e+16>>2]|0}function SI(e){return e=e|0,t[e+20>>2]|0}function TI(e){return e=e|0,t[e>>2]|0}function C_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0;Qt=m,m=m+16|0,K=Qt;do if(e>>>0<245){if(M=e>>>0<11?16:e+11&-8,e=M>>>3,P=t[2783]|0,r=P>>>e,r&3|0)return n=(r&1^1)+e|0,e=11172+(n<<1<<2)|0,r=e+8|0,u=t[r>>2]|0,l=u+8|0,s=t[l>>2]|0,(e|0)==(s|0)?t[2783]=P&~(1<>2]=e,t[r>>2]=s),Fe=n<<3,t[u+4>>2]=Fe|3,Fe=u+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1,Fe=l,m=Qt,Fe|0;if(O=t[2785]|0,M>>>0>O>>>0){if(r|0)return n=2<>>12&16,n=n>>>h,r=n>>>5&8,n=n>>>r,l=n>>>2&4,n=n>>>l,e=n>>>1&2,n=n>>>e,u=n>>>1&1,u=(r|h|l|e|u)+(n>>>u)|0,n=11172+(u<<1<<2)|0,e=n+8|0,l=t[e>>2]|0,h=l+8|0,r=t[h>>2]|0,(n|0)==(r|0)?(e=P&~(1<>2]=n,t[e>>2]=r,e=P),s=(u<<3)-M|0,t[l+4>>2]=M|3,u=l+M|0,t[u+4>>2]=s|1,t[u+s>>2]=s,O|0&&(l=t[2788]|0,n=O>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=l,t[n+12>>2]=l,t[l+8>>2]=n,t[l+12>>2]=r),t[2785]=s,t[2788]=u,Fe=h,m=Qt,Fe|0;if(D=t[2784]|0,D){if(r=(D&0-D)+-1|0,h=r>>>12&16,r=r>>>h,s=r>>>5&8,r=r>>>s,S=r>>>2&4,r=r>>>S,u=r>>>1&2,r=r>>>u,e=r>>>1&1,e=t[11436+((s|h|S|u|e)+(r>>>e)<<2)>>2]|0,r=(t[e+4>>2]&-8)-M|0,u=t[e+16+(((t[e+16>>2]|0)==0&1)<<2)>>2]|0,!u)S=e,s=r;else{do h=(t[u+4>>2]&-8)-M|0,S=h>>>0>>0,r=S?h:r,e=S?u:e,u=t[u+16+(((t[u+16>>2]|0)==0&1)<<2)>>2]|0;while((u|0)!=0);S=e,s=r}if(h=S+M|0,S>>>0>>0){l=t[S+24>>2]|0,n=t[S+12>>2]|0;do if((n|0)==(S|0)){if(e=S+20|0,n=t[e>>2]|0,!n&&(e=S+16|0,n=t[e>>2]|0,!n)){r=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0,r=n}else r=t[S+8>>2]|0,t[r+12>>2]=n,t[n+8>>2]=r,r=n;while(0);do if(l|0){if(n=t[S+28>>2]|0,e=11436+(n<<2)|0,(S|0)==(t[e>>2]|0)){if(t[e>>2]=r,!r){t[2784]=D&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=l,n=t[S+16>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),n=t[S+20>>2]|0,n|0&&(t[r+20>>2]=n,t[n+24>>2]=r)}while(0);return s>>>0<16?(Fe=s+M|0,t[S+4>>2]=Fe|3,Fe=S+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1):(t[S+4>>2]=M|3,t[h+4>>2]=s|1,t[h+s>>2]=s,O|0&&(u=t[2788]|0,n=O>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=P|n,n=r,e=r+8|0),t[e>>2]=u,t[n+12>>2]=u,t[u+8>>2]=n,t[u+12>>2]=r),t[2785]=s,t[2788]=h),Fe=S+8|0,m=Qt,Fe|0}else P=M}else P=M}else P=M}else if(e>>>0<=4294967231)if(e=e+11|0,M=e&-8,S=t[2784]|0,S){u=0-M|0,e=e>>>8,e?M>>>0>16777215?D=31:(P=(e+1048320|0)>>>16&8,Re=e<>>16&4,Re=Re<>>16&2,D=14-(O|P|D)+(Re<>>15)|0,D=M>>>(D+7|0)&1|D<<1):D=0,r=t[11436+(D<<2)>>2]|0;e:do if(!r)r=0,e=0,Re=57;else for(e=0,h=M<<((D|0)==31?0:25-(D>>>1)|0),s=0;;){if(l=(t[r+4>>2]&-8)-M|0,l>>>0>>0)if(l)e=r,u=l;else{e=r,u=0,l=r,Re=61;break e}if(l=t[r+20>>2]|0,r=t[r+16+(h>>>31<<2)>>2]|0,s=(l|0)==0|(l|0)==(r|0)?s:l,l=(r|0)==0,l){r=s,Re=57;break}else h=h<<((l^1)&1)}while(0);if((Re|0)==57){if((r|0)==0&(e|0)==0){if(e=2<>>12&16,P=P>>>h,s=P>>>5&8,P=P>>>s,D=P>>>2&4,P=P>>>D,O=P>>>1&2,P=P>>>O,r=P>>>1&1,e=0,r=t[11436+((s|h|D|O|r)+(P>>>r)<<2)>>2]|0}r?(l=r,Re=61):(D=e,h=u)}if((Re|0)==61)for(;;)if(Re=0,r=(t[l+4>>2]&-8)-M|0,P=r>>>0>>0,r=P?r:u,e=P?l:e,l=t[l+16+(((t[l+16>>2]|0)==0&1)<<2)>>2]|0,l)u=r,Re=61;else{D=e,h=r;break}if((D|0)!=0?h>>>0<((t[2785]|0)-M|0)>>>0:0){if(s=D+M|0,D>>>0>=s>>>0)return Fe=0,m=Qt,Fe|0;l=t[D+24>>2]|0,n=t[D+12>>2]|0;do if((n|0)==(D|0)){if(e=D+20|0,n=t[e>>2]|0,!n&&(e=D+16|0,n=t[e>>2]|0,!n)){n=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0}else Fe=t[D+8>>2]|0,t[Fe+12>>2]=n,t[n+8>>2]=Fe;while(0);do if(l){if(e=t[D+28>>2]|0,r=11436+(e<<2)|0,(D|0)==(t[r>>2]|0)){if(t[r>>2]=n,!n){u=S&~(1<>2]|0)!=(D|0)&1)<<2)>>2]=n,!n){u=S;break}t[n+24>>2]=l,e=t[D+16>>2]|0,e|0&&(t[n+16>>2]=e,t[e+24>>2]=n),e=t[D+20>>2]|0,e&&(t[n+20>>2]=e,t[e+24>>2]=n),u=S}else u=S;while(0);do if(h>>>0>=16){if(t[D+4>>2]=M|3,t[s+4>>2]=h|1,t[s+h>>2]=h,n=h>>>3,h>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=s,t[n+12>>2]=s,t[s+8>>2]=n,t[s+12>>2]=r;break}if(n=h>>>8,n?h>>>0>16777215?n=31:(Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,n=14-(st|Re|n)+(Fe<>>15)|0,n=h>>>(n+7|0)&1|n<<1):n=0,r=11436+(n<<2)|0,t[s+28>>2]=n,e=s+16|0,t[e+4>>2]=0,t[e>>2]=0,e=1<>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}for(e=h<<((n|0)==31?0:25-(n>>>1)|0),r=t[r>>2]|0;;){if((t[r+4>>2]&-8|0)==(h|0)){Re=97;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=96;break}}if((Re|0)==96){t[u>>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}else if((Re|0)==97){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=s,t[Re>>2]=s,t[s+8>>2]=Fe,t[s+12>>2]=r,t[s+24>>2]=0;break}}else Fe=h+M|0,t[D+4>>2]=Fe|3,Fe=D+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1;while(0);return Fe=D+8|0,m=Qt,Fe|0}else P=M}else P=M;else P=-1;while(0);if(r=t[2785]|0,r>>>0>=P>>>0)return n=r-P|0,e=t[2788]|0,n>>>0>15?(Fe=e+P|0,t[2788]=Fe,t[2785]=n,t[Fe+4>>2]=n|1,t[Fe+n>>2]=n,t[e+4>>2]=P|3):(t[2785]=0,t[2788]=0,t[e+4>>2]=r|3,Fe=e+r+4|0,t[Fe>>2]=t[Fe>>2]|1),Fe=e+8|0,m=Qt,Fe|0;if(h=t[2786]|0,h>>>0>P>>>0)return st=h-P|0,t[2786]=st,Fe=t[2789]|0,Re=Fe+P|0,t[2789]=Re,t[Re+4>>2]=st|1,t[Fe+4>>2]=P|3,Fe=Fe+8|0,m=Qt,Fe|0;if(t[2901]|0?e=t[2903]|0:(t[2903]=4096,t[2902]=4096,t[2904]=-1,t[2905]=-1,t[2906]=0,t[2894]=0,e=K&-16^1431655768,t[K>>2]=e,t[2901]=e,e=4096),D=P+48|0,S=P+47|0,s=e+S|0,l=0-e|0,M=s&l,M>>>0<=P>>>0||(e=t[2893]|0,e|0?(O=t[2891]|0,K=O+M|0,K>>>0<=O>>>0|K>>>0>e>>>0):0))return Fe=0,m=Qt,Fe|0;e:do if(t[2894]&4)n=0,Re=133;else{r=t[2789]|0;t:do if(r){for(u=11580;e=t[u>>2]|0,!(e>>>0<=r>>>0?(ve=u+4|0,(e+(t[ve>>2]|0)|0)>>>0>r>>>0):0);)if(e=t[u+8>>2]|0,e)u=e;else{Re=118;break t}if(n=s-h&l,n>>>0<2147483647)if(e=Z2(n|0)|0,(e|0)==((t[u>>2]|0)+(t[ve>>2]|0)|0)){if((e|0)!=(-1|0)){h=n,s=e,Re=135;break e}}else u=e,Re=126;else n=0}else Re=118;while(0);do if((Re|0)==118)if(r=Z2(0)|0,(r|0)!=(-1|0)?(n=r,Pe=t[2902]|0,Ee=Pe+-1|0,n=((Ee&n|0)==0?0:(Ee+n&0-Pe)-n|0)+M|0,Pe=t[2891]|0,Ee=n+Pe|0,n>>>0>P>>>0&n>>>0<2147483647):0){if(ve=t[2893]|0,ve|0?Ee>>>0<=Pe>>>0|Ee>>>0>ve>>>0:0){n=0;break}if(e=Z2(n|0)|0,(e|0)==(r|0)){h=n,s=r,Re=135;break e}else u=e,Re=126}else n=0;while(0);do if((Re|0)==126){if(r=0-n|0,!(D>>>0>n>>>0&(n>>>0<2147483647&(u|0)!=(-1|0))))if((u|0)==(-1|0)){n=0;break}else{h=n,s=u,Re=135;break e}if(e=t[2903]|0,e=S-n+e&0-e,e>>>0>=2147483647){h=n,s=u,Re=135;break e}if((Z2(e|0)|0)==(-1|0)){Z2(r|0)|0,n=0;break}else{h=e+n|0,s=u,Re=135;break e}}while(0);t[2894]=t[2894]|4,Re=133}while(0);if((((Re|0)==133?M>>>0<2147483647:0)?(st=Z2(M|0)|0,ve=Z2(0)|0,Qe=ve-st|0,We=Qe>>>0>(P+40|0)>>>0,!((st|0)==(-1|0)|We^1|st>>>0>>0&((st|0)!=(-1|0)&(ve|0)!=(-1|0))^1)):0)&&(h=We?Qe:n,s=st,Re=135),(Re|0)==135){n=(t[2891]|0)+h|0,t[2891]=n,n>>>0>(t[2892]|0)>>>0&&(t[2892]=n),S=t[2789]|0;do if(S){for(n=11580;;){if(e=t[n>>2]|0,r=n+4|0,u=t[r>>2]|0,(s|0)==(e+u|0)){Re=145;break}if(l=t[n+8>>2]|0,l)n=l;else break}if(((Re|0)==145?(t[n+12>>2]&8|0)==0:0)?S>>>0>>0&S>>>0>=e>>>0:0){t[r>>2]=u+h,Fe=S+8|0,Fe=(Fe&7|0)==0?0:0-Fe&7,Re=S+Fe|0,Fe=(t[2786]|0)+(h-Fe)|0,t[2789]=Re,t[2786]=Fe,t[Re+4>>2]=Fe|1,t[Re+Fe+4>>2]=40,t[2790]=t[2905];break}for(s>>>0<(t[2787]|0)>>>0&&(t[2787]=s),r=s+h|0,n=11580;;){if((t[n>>2]|0)==(r|0)){Re=153;break}if(e=t[n+8>>2]|0,e)n=e;else break}if((Re|0)==153?(t[n+12>>2]&8|0)==0:0){t[n>>2]=s,O=n+4|0,t[O>>2]=(t[O>>2]|0)+h,O=s+8|0,O=s+((O&7|0)==0?0:0-O&7)|0,n=r+8|0,n=r+((n&7|0)==0?0:0-n&7)|0,M=O+P|0,D=n-O-P|0,t[O+4>>2]=P|3;do if((n|0)!=(S|0)){if((n|0)==(t[2788]|0)){Fe=(t[2785]|0)+D|0,t[2785]=Fe,t[2788]=M,t[M+4>>2]=Fe|1,t[M+Fe>>2]=Fe;break}if(e=t[n+4>>2]|0,(e&3|0)==1){h=e&-8,u=e>>>3;e:do if(e>>>0<256)if(e=t[n+8>>2]|0,r=t[n+12>>2]|0,(r|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=r,t[r+8>>2]=e;break}else{s=t[n+24>>2]|0,e=t[n+12>>2]|0;do if((e|0)==(n|0)){if(u=n+16|0,r=u+4|0,e=t[r>>2]|0,!e)if(e=t[u>>2]|0,e)r=u;else{e=0;break}for(;;){if(u=e+20|0,l=t[u>>2]|0,l|0){e=l,r=u;continue}if(u=e+16|0,l=t[u>>2]|0,l)e=l,r=u;else break}t[r>>2]=0}else Fe=t[n+8>>2]|0,t[Fe+12>>2]=e,t[e+8>>2]=Fe;while(0);if(!s)break;r=t[n+28>>2]|0,u=11436+(r<<2)|0;do if((n|0)!=(t[u>>2]|0)){if(t[s+16+(((t[s+16>>2]|0)!=(n|0)&1)<<2)>>2]=e,!e)break e}else{if(t[u>>2]=e,e|0)break;t[2784]=t[2784]&~(1<>2]=s,r=n+16|0,u=t[r>>2]|0,u|0&&(t[e+16>>2]=u,t[u+24>>2]=e),r=t[r+4>>2]|0,!r)break;t[e+20>>2]=r,t[r+24>>2]=e}while(0);n=n+h|0,l=h+D|0}else l=D;if(n=n+4|0,t[n>>2]=t[n>>2]&-2,t[M+4>>2]=l|1,t[M+l>>2]=l,n=l>>>3,l>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=M,t[n+12>>2]=M,t[M+8>>2]=n,t[M+12>>2]=r;break}n=l>>>8;do if(!n)n=0;else{if(l>>>0>16777215){n=31;break}Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,n=14-(st|Re|n)+(Fe<>>15)|0,n=l>>>(n+7|0)&1|n<<1}while(0);if(u=11436+(n<<2)|0,t[M+28>>2]=n,e=M+16|0,t[e+4>>2]=0,t[e>>2]=0,e=t[2784]|0,r=1<>2]=M,t[M+24>>2]=u,t[M+12>>2]=M,t[M+8>>2]=M;break}for(e=l<<((n|0)==31?0:25-(n>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){Re=194;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=193;break}}if((Re|0)==193){t[u>>2]=M,t[M+24>>2]=r,t[M+12>>2]=M,t[M+8>>2]=M;break}else if((Re|0)==194){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=M,t[Re>>2]=M,t[M+8>>2]=Fe,t[M+12>>2]=r,t[M+24>>2]=0;break}}else Fe=(t[2786]|0)+D|0,t[2786]=Fe,t[2789]=M,t[M+4>>2]=Fe|1;while(0);return Fe=O+8|0,m=Qt,Fe|0}for(n=11580;e=t[n>>2]|0,!(e>>>0<=S>>>0?(Fe=e+(t[n+4>>2]|0)|0,Fe>>>0>S>>>0):0);)n=t[n+8>>2]|0;l=Fe+-47|0,e=l+8|0,e=l+((e&7|0)==0?0:0-e&7)|0,l=S+16|0,e=e>>>0>>0?S:e,n=e+8|0,r=s+8|0,r=(r&7|0)==0?0:0-r&7,Re=s+r|0,r=h+-40-r|0,t[2789]=Re,t[2786]=r,t[Re+4>>2]=r|1,t[Re+r+4>>2]=40,t[2790]=t[2905],r=e+4|0,t[r>>2]=27,t[n>>2]=t[2895],t[n+4>>2]=t[2896],t[n+8>>2]=t[2897],t[n+12>>2]=t[2898],t[2895]=s,t[2896]=h,t[2898]=0,t[2897]=n,n=e+24|0;do Re=n,n=n+4|0,t[n>>2]=7;while((Re+8|0)>>>0>>0);if((e|0)!=(S|0)){if(s=e-S|0,t[r>>2]=t[r>>2]&-2,t[S+4>>2]=s|1,t[e>>2]=s,n=s>>>3,s>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=S,t[n+12>>2]=S,t[S+8>>2]=n,t[S+12>>2]=r;break}if(n=s>>>8,n?s>>>0>16777215?r=31:(Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,r=14-(st|Re|r)+(Fe<>>15)|0,r=s>>>(r+7|0)&1|r<<1):r=0,u=11436+(r<<2)|0,t[S+28>>2]=r,t[S+20>>2]=0,t[l>>2]=0,n=t[2784]|0,e=1<>2]=S,t[S+24>>2]=u,t[S+12>>2]=S,t[S+8>>2]=S;break}for(e=s<<((r|0)==31?0:25-(r>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(s|0)){Re=216;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=215;break}}if((Re|0)==215){t[u>>2]=S,t[S+24>>2]=r,t[S+12>>2]=S,t[S+8>>2]=S;break}else if((Re|0)==216){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=S,t[Re>>2]=S,t[S+8>>2]=Fe,t[S+12>>2]=r,t[S+24>>2]=0;break}}}else{Fe=t[2787]|0,(Fe|0)==0|s>>>0>>0&&(t[2787]=s),t[2895]=s,t[2896]=h,t[2898]=0,t[2792]=t[2901],t[2791]=-1,n=0;do Fe=11172+(n<<1<<2)|0,t[Fe+12>>2]=Fe,t[Fe+8>>2]=Fe,n=n+1|0;while((n|0)!=32);Fe=s+8|0,Fe=(Fe&7|0)==0?0:0-Fe&7,Re=s+Fe|0,Fe=h+-40-Fe|0,t[2789]=Re,t[2786]=Fe,t[Re+4>>2]=Fe|1,t[Re+Fe+4>>2]=40,t[2790]=t[2905]}while(0);if(n=t[2786]|0,n>>>0>P>>>0)return st=n-P|0,t[2786]=st,Fe=t[2789]|0,Re=Fe+P|0,t[2789]=Re,t[Re+4>>2]=st|1,t[Fe+4>>2]=P|3,Fe=Fe+8|0,m=Qt,Fe|0}return t[(Fv()|0)>>2]=12,Fe=0,m=Qt,Fe|0}function x_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(!!e){r=e+-8|0,l=t[2787]|0,e=t[e+-4>>2]|0,n=e&-8,S=r+n|0;do if(e&1)D=r,h=r;else{if(u=t[r>>2]|0,!(e&3)||(h=r+(0-u)|0,s=u+n|0,h>>>0>>0))return;if((h|0)==(t[2788]|0)){if(e=S+4|0,n=t[e>>2]|0,(n&3|0)!=3){D=h,n=s;break}t[2785]=s,t[e>>2]=n&-2,t[h+4>>2]=s|1,t[h+s>>2]=s;return}if(r=u>>>3,u>>>0<256)if(e=t[h+8>>2]|0,n=t[h+12>>2]|0,(n|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=n,t[n+8>>2]=e,D=h,n=s;break}l=t[h+24>>2]|0,e=t[h+12>>2]|0;do if((e|0)==(h|0)){if(r=h+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{e=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0}else D=t[h+8>>2]|0,t[D+12>>2]=e,t[e+8>>2]=D;while(0);if(l){if(n=t[h+28>>2]|0,r=11436+(n<<2)|0,(h|0)==(t[r>>2]|0)){if(t[r>>2]=e,!e){t[2784]=t[2784]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=e,!e){D=h,n=s;break}t[e+24>>2]=l,n=h+16|0,r=t[n>>2]|0,r|0&&(t[e+16>>2]=r,t[r+24>>2]=e),n=t[n+4>>2]|0,n?(t[e+20>>2]=n,t[n+24>>2]=e,D=h,n=s):(D=h,n=s)}else D=h,n=s}while(0);if(!(h>>>0>=S>>>0)&&(e=S+4|0,u=t[e>>2]|0,!!(u&1))){if(u&2)t[e>>2]=u&-2,t[D+4>>2]=n|1,t[h+n>>2]=n,l=n;else{if(e=t[2788]|0,(S|0)==(t[2789]|0)){if(S=(t[2786]|0)+n|0,t[2786]=S,t[2789]=D,t[D+4>>2]=S|1,(D|0)!=(e|0))return;t[2788]=0,t[2785]=0;return}if((S|0)==(e|0)){S=(t[2785]|0)+n|0,t[2785]=S,t[2788]=h,t[D+4>>2]=S|1,t[h+S>>2]=S;return}l=(u&-8)+n|0,r=u>>>3;do if(u>>>0<256)if(n=t[S+8>>2]|0,e=t[S+12>>2]|0,(e|0)==(n|0)){t[2783]=t[2783]&~(1<>2]=e,t[e+8>>2]=n;break}else{s=t[S+24>>2]|0,e=t[S+12>>2]|0;do if((e|0)==(S|0)){if(r=S+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{r=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0,r=e}else r=t[S+8>>2]|0,t[r+12>>2]=e,t[e+8>>2]=r,r=e;while(0);if(s|0){if(e=t[S+28>>2]|0,n=11436+(e<<2)|0,(S|0)==(t[n>>2]|0)){if(t[n>>2]=r,!r){t[2784]=t[2784]&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=s,e=S+16|0,n=t[e>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),e=t[e+4>>2]|0,e|0&&(t[r+20>>2]=e,t[e+24>>2]=r)}}while(0);if(t[D+4>>2]=l|1,t[h+l>>2]=l,(D|0)==(t[2788]|0)){t[2785]=l;return}}if(e=l>>>3,l>>>0<256){r=11172+(e<<1<<2)|0,n=t[2783]|0,e=1<>2]|0):(t[2783]=n|e,e=r,n=r+8|0),t[n>>2]=D,t[e+12>>2]=D,t[D+8>>2]=e,t[D+12>>2]=r;return}e=l>>>8,e?l>>>0>16777215?e=31:(h=(e+1048320|0)>>>16&8,S=e<>>16&4,S=S<>>16&2,e=14-(s|h|e)+(S<>>15)|0,e=l>>>(e+7|0)&1|e<<1):e=0,u=11436+(e<<2)|0,t[D+28>>2]=e,t[D+20>>2]=0,t[D+16>>2]=0,n=t[2784]|0,r=1<>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){e=73;break}if(u=r+16+(n>>>31<<2)|0,e=t[u>>2]|0,e)n=n<<1,r=e;else{e=72;break}}if((e|0)==72){t[u>>2]=D,t[D+24>>2]=r,t[D+12>>2]=D,t[D+8>>2]=D;break}else if((e|0)==73){h=r+8|0,S=t[h>>2]|0,t[S+12>>2]=D,t[h>>2]=D,t[D+8>>2]=S,t[D+12>>2]=r,t[D+24>>2]=0;break}}else t[2784]=n|r,t[u>>2]=D,t[D+24>>2]=u,t[D+12>>2]=D,t[D+8>>2]=D;while(0);if(S=(t[2791]|0)+-1|0,t[2791]=S,!S)e=11588;else return;for(;e=t[e>>2]|0,e;)e=e+8|0;t[2791]=-1}}}function CI(){return 11628}function xI(e){e=e|0;var n=0,r=0;return n=m,m=m+16|0,r=n,t[r>>2]=OI(t[e+60>>2]|0)|0,e=A_(wu(6,r|0)|0)|0,m=n,e|0}function N8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0;P=m,m=m+48|0,M=P+16|0,s=P,l=P+32|0,D=e+28|0,u=t[D>>2]|0,t[l>>2]=u,S=e+20|0,u=(t[S>>2]|0)-u|0,t[l+4>>2]=u,t[l+8>>2]=n,t[l+12>>2]=r,u=u+r|0,h=e+60|0,t[s>>2]=t[h>>2],t[s+4>>2]=l,t[s+8>>2]=2,s=A_(d0(146,s|0)|0)|0;e:do if((u|0)!=(s|0)){for(n=2;!((s|0)<0);)if(u=u-s|0,Pe=t[l+4>>2]|0,K=s>>>0>Pe>>>0,l=K?l+8|0:l,n=(K<<31>>31)+n|0,Pe=s-(K?Pe:0)|0,t[l>>2]=(t[l>>2]|0)+Pe,K=l+4|0,t[K>>2]=(t[K>>2]|0)-Pe,t[M>>2]=t[h>>2],t[M+4>>2]=l,t[M+8>>2]=n,s=A_(d0(146,M|0)|0)|0,(u|0)==(s|0)){O=3;break e}t[e+16>>2]=0,t[D>>2]=0,t[S>>2]=0,t[e>>2]=t[e>>2]|32,(n|0)==2?r=0:r=r-(t[l+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(Pe=t[e+44>>2]|0,t[e+16>>2]=Pe+(t[e+48>>2]|0),t[D>>2]=Pe,t[S>>2]=Pe),m=P,r|0}function AI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return l=m,m=m+32|0,s=l,u=l+20|0,t[s>>2]=t[e+60>>2],t[s+4>>2]=0,t[s+8>>2]=n,t[s+12>>2]=u,t[s+16>>2]=r,(A_(Ti(140,s|0)|0)|0)<0?(t[u>>2]=-1,e=-1):e=t[u>>2]|0,m=l,e|0}function A_(e){return e=e|0,e>>>0>4294963200&&(t[(Fv()|0)>>2]=0-e,e=-1),e|0}function Fv(){return(RI()|0)+64|0}function RI(){return VE()|0}function VE(){return 2084}function OI(e){return e=e|0,e|0}function kI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return l=m,m=m+32|0,u=l,t[e+36>>2]=1,((t[e>>2]&64|0)==0?(t[u>>2]=t[e+60>>2],t[u+4>>2]=21523,t[u+8>>2]=l+16,b0(54,u|0)|0):0)&&(p[e+75>>0]=-1),u=N8(e,n,r)|0,m=l,u|0}function L8(e,n){e=e|0,n=n|0;var r=0,u=0;if(r=p[e>>0]|0,u=p[n>>0]|0,r<<24>>24==0?1:r<<24>>24!=u<<24>>24)e=u;else{do e=e+1|0,n=n+1|0,r=p[e>>0]|0,u=p[n>>0]|0;while(!(r<<24>>24==0?1:r<<24>>24!=u<<24>>24));e=u}return(r&255)-(e&255)|0}function MI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;e:do if(!r)e=0;else{for(;u=p[e>>0]|0,l=p[n>>0]|0,u<<24>>24==l<<24>>24;)if(r=r+-1|0,r)e=e+1|0,n=n+1|0;else{e=0;break e}e=(u&255)-(l&255)|0}while(0);return e|0}function F8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;ve=m,m=m+224|0,O=ve+120|0,P=ve+80|0,Pe=ve,Ee=ve+136|0,u=P,l=u+40|0;do t[u>>2]=0,u=u+4|0;while((u|0)<(l|0));return t[O>>2]=t[r>>2],(GE(0,n,O,Pe,P)|0)<0?r=-1:((t[e+76>>2]|0)>-1?K=NI(e)|0:K=0,r=t[e>>2]|0,M=r&32,(p[e+74>>0]|0)<1&&(t[e>>2]=r&-33),u=e+48|0,t[u>>2]|0?r=GE(e,n,O,Pe,P)|0:(l=e+44|0,s=t[l>>2]|0,t[l>>2]=Ee,h=e+28|0,t[h>>2]=Ee,D=e+20|0,t[D>>2]=Ee,t[u>>2]=80,S=e+16|0,t[S>>2]=Ee+80,r=GE(e,n,O,Pe,P)|0,s&&(M_[t[e+36>>2]&7](e,0,0)|0,r=(t[D>>2]|0)==0?-1:r,t[l>>2]=s,t[u>>2]=0,t[S>>2]=0,t[h>>2]=0,t[D>>2]=0)),u=t[e>>2]|0,t[e>>2]=u|M,K|0&&LI(e),r=(u&32|0)==0?r:-1),m=ve,r|0}function GE(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0;On=m,m=m+64|0,Nn=On+16|0,mn=On,Qt=On+24|0,hr=On+8|0,kr=On+20|0,t[Nn>>2]=n,st=(e|0)!=0,Re=Qt+40|0,Fe=Re,Qt=Qt+39|0,Lr=hr+4|0,h=0,s=0,O=0;e:for(;;){do if((s|0)>-1)if((h|0)>(2147483647-s|0)){t[(Fv()|0)>>2]=75,s=-1;break}else{s=h+s|0;break}while(0);if(h=p[n>>0]|0,h<<24>>24)D=n;else{We=87;break}t:for(;;){switch(h<<24>>24){case 37:{h=D,We=9;break t}case 0:{h=D;break t}default:}Qe=D+1|0,t[Nn>>2]=Qe,h=p[Qe>>0]|0,D=Qe}t:do if((We|0)==9)for(;;){if(We=0,(p[D+1>>0]|0)!=37)break t;if(h=h+1|0,D=D+2|0,t[Nn>>2]=D,(p[D>>0]|0)==37)We=9;else break}while(0);if(h=h-n|0,st&&qo(e,n,h),h|0){n=D;continue}S=D+1|0,h=(p[S>>0]|0)+-48|0,h>>>0<10?(Qe=(p[D+2>>0]|0)==36,ve=Qe?h:-1,O=Qe?1:O,S=Qe?D+3|0:S):ve=-1,t[Nn>>2]=S,h=p[S>>0]|0,D=(h<<24>>24)+-32|0;t:do if(D>>>0<32)for(M=0,P=h;;){if(h=1<>2]=S,h=p[S>>0]|0,D=(h<<24>>24)+-32|0,D>>>0>=32)break;P=h}else M=0;while(0);if(h<<24>>24==42){if(D=S+1|0,h=(p[D>>0]|0)+-48|0,h>>>0<10?(p[S+2>>0]|0)==36:0)t[l+(h<<2)>>2]=10,h=t[u+((p[D>>0]|0)+-48<<3)>>2]|0,O=1,S=S+3|0;else{if(O|0){s=-1;break}st?(O=(t[r>>2]|0)+(4-1)&~(4-1),h=t[O>>2]|0,t[r>>2]=O+4,O=0,S=D):(h=0,O=0,S=D)}t[Nn>>2]=S,Qe=(h|0)<0,h=Qe?0-h|0:h,M=Qe?M|8192:M}else{if(h=b8(Nn)|0,(h|0)<0){s=-1;break}S=t[Nn>>2]|0}do if((p[S>>0]|0)==46){if((p[S+1>>0]|0)!=42){t[Nn>>2]=S+1,D=b8(Nn)|0,S=t[Nn>>2]|0;break}if(P=S+2|0,D=(p[P>>0]|0)+-48|0,D>>>0<10?(p[S+3>>0]|0)==36:0){t[l+(D<<2)>>2]=10,D=t[u+((p[P>>0]|0)+-48<<3)>>2]|0,S=S+4|0,t[Nn>>2]=S;break}if(O|0){s=-1;break e}st?(Qe=(t[r>>2]|0)+(4-1)&~(4-1),D=t[Qe>>2]|0,t[r>>2]=Qe+4):D=0,t[Nn>>2]=P,S=P}else D=-1;while(0);for(Ee=0;;){if(((p[S>>0]|0)+-65|0)>>>0>57){s=-1;break e}if(Qe=S+1|0,t[Nn>>2]=Qe,P=p[(p[S>>0]|0)+-65+(5178+(Ee*58|0))>>0]|0,K=P&255,(K+-1|0)>>>0<8)Ee=K,S=Qe;else break}if(!(P<<24>>24)){s=-1;break}Pe=(ve|0)>-1;do if(P<<24>>24==19)if(Pe){s=-1;break e}else We=49;else{if(Pe){t[l+(ve<<2)>>2]=K,Pe=u+(ve<<3)|0,ve=t[Pe+4>>2]|0,We=mn,t[We>>2]=t[Pe>>2],t[We+4>>2]=ve,We=49;break}if(!st){s=0;break e}P8(mn,K,r)}while(0);if((We|0)==49?(We=0,!st):0){h=0,n=Qe;continue}S=p[S>>0]|0,S=(Ee|0)!=0&(S&15|0)==3?S&-33:S,Pe=M&-65537,ve=(M&8192|0)==0?M:Pe;t:do switch(S|0){case 110:switch((Ee&255)<<24>>24){case 0:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 1:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 2:{h=t[mn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Qe;continue e}case 3:{E[t[mn>>2]>>1]=s,h=0,n=Qe;continue e}case 4:{p[t[mn>>2]>>0]=s,h=0,n=Qe;continue e}case 6:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 7:{h=t[mn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Qe;continue e}default:{h=0,n=Qe;continue e}}case 112:{S=120,D=D>>>0>8?D:8,n=ve|8,We=61;break}case 88:case 120:{n=ve,We=61;break}case 111:{S=mn,n=t[S>>2]|0,S=t[S+4>>2]|0,K=bI(n,S,Re)|0,Pe=Fe-K|0,M=0,P=5642,D=(ve&8|0)==0|(D|0)>(Pe|0)?D:Pe+1|0,Pe=ve,We=67;break}case 105:case 100:if(S=mn,n=t[S>>2]|0,S=t[S+4>>2]|0,(S|0)<0){n=R_(0,0,n|0,S|0)|0,S=ft,M=mn,t[M>>2]=n,t[M+4>>2]=S,M=1,P=5642,We=66;break t}else{M=(ve&2049|0)!=0&1,P=(ve&2048|0)==0?(ve&1|0)==0?5642:5644:5643,We=66;break t}case 117:{S=mn,M=0,P=5642,n=t[S>>2]|0,S=t[S+4>>2]|0,We=66;break}case 99:{p[Qt>>0]=t[mn>>2],n=Qt,M=0,P=5642,K=Re,S=1,D=Pe;break}case 109:{S=PI(t[(Fv()|0)>>2]|0)|0,We=71;break}case 115:{S=t[mn>>2]|0,S=S|0?S:5652,We=71;break}case 67:{t[hr>>2]=t[mn>>2],t[Lr>>2]=0,t[mn>>2]=hr,K=-1,S=hr,We=75;break}case 83:{n=t[mn>>2]|0,D?(K=D,S=n,We=75):(hl(e,32,h,0,ve),n=0,We=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{h=BI(e,+U[mn>>3],h,D,ve,S)|0,n=Qe;continue e}default:M=0,P=5642,K=Re,S=D,D=ve}while(0);t:do if((We|0)==61)ve=mn,Ee=t[ve>>2]|0,ve=t[ve+4>>2]|0,K=FI(Ee,ve,Re,S&32)|0,P=(n&8|0)==0|(Ee|0)==0&(ve|0)==0,M=P?0:2,P=P?5642:5642+(S>>4)|0,Pe=n,n=Ee,S=ve,We=67;else if((We|0)==66)K=bv(n,S,Re)|0,Pe=ve,We=67;else if((We|0)==71)We=0,ve=II(S,0,D)|0,Ee=(ve|0)==0,n=S,M=0,P=5642,K=Ee?S+D|0:ve,S=Ee?D:ve-S|0,D=Pe;else if((We|0)==75){for(We=0,P=S,n=0,D=0;M=t[P>>2]|0,!(!M||(D=I8(kr,M)|0,(D|0)<0|D>>>0>(K-n|0)>>>0));)if(n=D+n|0,K>>>0>n>>>0)P=P+4|0;else break;if((D|0)<0){s=-1;break e}if(hl(e,32,h,n,ve),!n)n=0,We=84;else for(M=0;;){if(D=t[S>>2]|0,!D){We=84;break t}if(D=I8(kr,D)|0,M=D+M|0,(M|0)>(n|0)){We=84;break t}if(qo(e,kr,D),M>>>0>=n>>>0){We=84;break}else S=S+4|0}}while(0);if((We|0)==67)We=0,S=(n|0)!=0|(S|0)!=0,ve=(D|0)!=0|S,S=((S^1)&1)+(Fe-K)|0,n=ve?K:Re,K=Re,S=ve?(D|0)>(S|0)?D:S:D,D=(D|0)>-1?Pe&-65537:Pe;else if((We|0)==84){We=0,hl(e,32,h,n,ve^8192),h=(h|0)>(n|0)?h:n,n=Qe;continue}Ee=K-n|0,Pe=(S|0)<(Ee|0)?Ee:S,ve=Pe+M|0,h=(h|0)<(ve|0)?ve:h,hl(e,32,h,ve,D),qo(e,P,M),hl(e,48,h,ve,D^65536),hl(e,48,Pe,Ee,0),qo(e,n,Ee),hl(e,32,h,ve,D^8192),n=Qe}e:do if((We|0)==87&&!e)if(!O)s=0;else{for(s=1;n=t[l+(s<<2)>>2]|0,!!n;)if(P8(u+(s<<3)|0,n,r),s=s+1|0,(s|0)>=10){s=1;break e}for(;;){if(t[l+(s<<2)>>2]|0){s=-1;break e}if(s=s+1|0,(s|0)>=10){s=1;break}}}while(0);return m=On,s|0}function NI(e){return e=e|0,0}function LI(e){e=e|0}function qo(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]&32||YI(n,r,e)|0}function b8(e){e=e|0;var n=0,r=0,u=0;if(r=t[e>>2]|0,u=(p[r>>0]|0)+-48|0,u>>>0<10){n=0;do n=u+(n*10|0)|0,r=r+1|0,t[e>>2]=r,u=(p[r>>0]|0)+-48|0;while(u>>>0<10)}else n=0;return n|0}function P8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;e:do if(n>>>0<=20)do switch(n|0){case 9:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,t[e>>2]=n;break e}case 10:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=((n|0)<0)<<31>>31;break e}case 11:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=0;break e}case 12:{u=(t[r>>2]|0)+(8-1)&~(8-1),n=u,l=t[n>>2]|0,n=t[n+4>>2]|0,t[r>>2]=u+8,u=e,t[u>>2]=l,t[u+4>>2]=n;break e}case 13:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&65535)<<16>>16,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 14:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&65535,t[l+4>>2]=0;break e}case 15:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&255)<<24>>24,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 16:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&255,t[l+4>>2]=0;break e}case 17:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+U[l>>3],t[r>>2]=l+8,U[e>>3]=s;break e}case 18:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+U[l>>3],t[r>>2]=l+8,U[e>>3]=s;break e}default:break e}while(0);while(0)}function FI(e,n,r,u){if(e=e|0,n=n|0,r=r|0,u=u|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,p[r>>0]=k[5694+(e&15)>>0]|0|u,e=O_(e|0,n|0,4)|0,n=ft;while(!((e|0)==0&(n|0)==0));return r|0}function bI(e,n,r){if(e=e|0,n=n|0,r=r|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,p[r>>0]=e&7|48,e=O_(e|0,n|0,3)|0,n=ft;while(!((e|0)==0&(n|0)==0));return r|0}function bv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if(n>>>0>0|(n|0)==0&e>>>0>4294967295){for(;u=QE(e|0,n|0,10,0)|0,r=r+-1|0,p[r>>0]=u&255|48,u=e,e=XE(e|0,n|0,10,0)|0,n>>>0>9|(n|0)==9&u>>>0>4294967295;)n=ft;n=e}else n=e;if(n)for(;r=r+-1|0,p[r>>0]=(n>>>0)%10|0|48,!(n>>>0<10);)n=(n>>>0)/10|0;return r|0}function PI(e){return e=e|0,HI(e,t[(qI()|0)+188>>2]|0)|0}function II(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;s=n&255,u=(r|0)!=0;e:do if(u&(e&3|0)!=0)for(l=n&255;;){if((p[e>>0]|0)==l<<24>>24){h=6;break e}if(e=e+1|0,r=r+-1|0,u=(r|0)!=0,!(u&(e&3|0)!=0)){h=5;break}}else h=5;while(0);(h|0)==5&&(u?h=6:r=0);e:do if((h|0)==6&&(l=n&255,(p[e>>0]|0)!=l<<24>>24)){u=nr(s,16843009)|0;t:do if(r>>>0>3){for(;s=t[e>>2]^u,!((s&-2139062144^-2139062144)&s+-16843009|0);)if(e=e+4|0,r=r+-4|0,r>>>0<=3){h=11;break t}}else h=11;while(0);if((h|0)==11&&!r){r=0;break}for(;;){if((p[e>>0]|0)==l<<24>>24)break e;if(e=e+1|0,r=r+-1|0,!r){r=0;break}}}while(0);return(r|0?e:0)|0}function hl(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0;if(h=m,m=m+256|0,s=h,(r|0)>(u|0)&(l&73728|0)==0){if(l=r-u|0,Iv(s|0,n|0,(l>>>0<256?l:256)|0)|0,l>>>0>255){n=r-u|0;do qo(e,s,256),l=l+-256|0;while(l>>>0>255);l=n&255}qo(e,s,l)}m=h}function I8(e,n){return e=e|0,n=n|0,e?e=jI(e,n,0)|0:e=0,e|0}function BI(e,n,r,u,l,s){e=e|0,n=+n,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0;Zi=m,m=m+560|0,S=Zi+8|0,Qe=Zi,On=Zi+524|0,kr=On,M=Zi+512|0,t[Qe>>2]=0,hr=M+12|0,B8(n)|0,(ft|0)<0?(n=-n,Nn=1,Lr=5659):(Nn=(l&2049|0)!=0&1,Lr=(l&2048|0)==0?(l&1|0)==0?5660:5665:5662),B8(n)|0,mn=ft&2146435072;do if(mn>>>0<2146435072|(mn|0)==2146435072&0<0){if(Pe=+UI(n,Qe)*2,h=Pe!=0,h&&(t[Qe>>2]=(t[Qe>>2]|0)+-1),st=s|32,(st|0)==97){Ee=s&32,K=(Ee|0)==0?Lr:Lr+9|0,P=Nn|2,h=12-u|0;do if(u>>>0>11|(h|0)==0)n=Pe;else{n=8;do h=h+-1|0,n=n*16;while((h|0)!=0);if((p[K>>0]|0)==45){n=-(n+(-Pe-n));break}else{n=Pe+n-n;break}}while(0);D=t[Qe>>2]|0,h=(D|0)<0?0-D|0:D,h=bv(h,((h|0)<0)<<31>>31,hr)|0,(h|0)==(hr|0)&&(h=M+11|0,p[h>>0]=48),p[h+-1>>0]=(D>>31&2)+43,O=h+-2|0,p[O>>0]=s+15,M=(u|0)<1,S=(l&8|0)==0,h=On;do mn=~~n,D=h+1|0,p[h>>0]=k[5694+mn>>0]|Ee,n=(n-+(mn|0))*16,((D-kr|0)==1?!(S&(M&n==0)):0)?(p[D>>0]=46,h=h+2|0):h=D;while(n!=0);mn=h-kr|0,kr=hr-O|0,hr=(u|0)!=0&(mn+-2|0)<(u|0)?u+2|0:mn,h=kr+P+hr|0,hl(e,32,r,h,l),qo(e,K,P),hl(e,48,r,h,l^65536),qo(e,On,mn),hl(e,48,hr-mn|0,0,0),qo(e,O,kr),hl(e,32,r,h,l^8192);break}D=(u|0)<0?6:u,h?(h=(t[Qe>>2]|0)+-28|0,t[Qe>>2]=h,n=Pe*268435456):(n=Pe,h=t[Qe>>2]|0),mn=(h|0)<0?S:S+288|0,S=mn;do Fe=~~n>>>0,t[S>>2]=Fe,S=S+4|0,n=(n-+(Fe>>>0))*1e9;while(n!=0);if((h|0)>0)for(M=mn,P=S;;){if(O=(h|0)<29?h:29,h=P+-4|0,h>>>0>=M>>>0){S=0;do Re=W8(t[h>>2]|0,0,O|0)|0,Re=KE(Re|0,ft|0,S|0,0)|0,Fe=ft,We=QE(Re|0,Fe|0,1e9,0)|0,t[h>>2]=We,S=XE(Re|0,Fe|0,1e9,0)|0,h=h+-4|0;while(h>>>0>=M>>>0);S&&(M=M+-4|0,t[M>>2]=S)}for(S=P;!(S>>>0<=M>>>0);)if(h=S+-4|0,!(t[h>>2]|0))S=h;else break;if(h=(t[Qe>>2]|0)-O|0,t[Qe>>2]=h,(h|0)>0)P=S;else break}else M=mn;if((h|0)<0){u=((D+25|0)/9|0)+1|0,ve=(st|0)==102;do{if(Ee=0-h|0,Ee=(Ee|0)<9?Ee:9,M>>>0>>0){O=(1<>>Ee,K=0,h=M;do Fe=t[h>>2]|0,t[h>>2]=(Fe>>>Ee)+K,K=nr(Fe&O,P)|0,h=h+4|0;while(h>>>0>>0);h=(t[M>>2]|0)==0?M+4|0:M,K?(t[S>>2]=K,M=h,h=S+4|0):(M=h,h=S)}else M=(t[M>>2]|0)==0?M+4|0:M,h=S;S=ve?mn:M,S=(h-S>>2|0)>(u|0)?S+(u<<2)|0:h,h=(t[Qe>>2]|0)+Ee|0,t[Qe>>2]=h}while((h|0)<0);h=M,u=S}else h=M,u=S;if(Fe=mn,h>>>0>>0){if(S=(Fe-h>>2)*9|0,O=t[h>>2]|0,O>>>0>=10){M=10;do M=M*10|0,S=S+1|0;while(O>>>0>=M>>>0)}}else S=0;if(ve=(st|0)==103,We=(D|0)!=0,M=D-((st|0)!=102?S:0)+((We&ve)<<31>>31)|0,(M|0)<(((u-Fe>>2)*9|0)+-9|0)){if(M=M+9216|0,Ee=mn+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(P=t[Ee>>2]|0,K=(P>>>0)%(O>>>0)|0,M=(Ee+4|0)==(u|0),M&(K|0)==0)M=Ee;else if(Pe=(((P>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,Re=(O|0)/2|0,n=K>>>0>>0?.5:M&(K|0)==(Re|0)?1:1.5,Nn&&(Re=(p[Lr>>0]|0)==45,n=Re?-n:n,Pe=Re?-Pe:Pe),M=P-K|0,t[Ee>>2]=M,Pe+n!=Pe){if(Re=M+O|0,t[Ee>>2]=Re,Re>>>0>999999999)for(S=Ee;M=S+-4|0,t[S>>2]=0,M>>>0>>0&&(h=h+-4|0,t[h>>2]=0),Re=(t[M>>2]|0)+1|0,t[M>>2]=Re,Re>>>0>999999999;)S=M;else M=Ee;if(S=(Fe-h>>2)*9|0,P=t[h>>2]|0,P>>>0>=10){O=10;do O=O*10|0,S=S+1|0;while(P>>>0>=O>>>0)}}else M=Ee;M=M+4|0,M=u>>>0>M>>>0?M:u,Re=h}else M=u,Re=h;for(st=M;;){if(st>>>0<=Re>>>0){Qe=0;break}if(h=st+-4|0,!(t[h>>2]|0))st=h;else{Qe=1;break}}u=0-S|0;do if(ve)if(h=((We^1)&1)+D|0,(h|0)>(S|0)&(S|0)>-5?(O=s+-1|0,D=h+-1-S|0):(O=s+-2|0,D=h+-1|0),h=l&8,h)Ee=h;else{if(Qe?(Qt=t[st+-4>>2]|0,(Qt|0)!=0):0)if((Qt>>>0)%10|0)M=0;else{M=0,h=10;do h=h*10|0,M=M+1|0;while(!((Qt>>>0)%(h>>>0)|0|0))}else M=9;if(h=((st-Fe>>2)*9|0)+-9|0,(O|32|0)==102){Ee=h-M|0,Ee=(Ee|0)>0?Ee:0,D=(D|0)<(Ee|0)?D:Ee,Ee=0;break}else{Ee=h+S-M|0,Ee=(Ee|0)>0?Ee:0,D=(D|0)<(Ee|0)?D:Ee,Ee=0;break}}else O=s,Ee=l&8;while(0);if(ve=D|Ee,P=(ve|0)!=0&1,K=(O|32|0)==102,K)We=0,h=(S|0)>0?S:0;else{if(h=(S|0)<0?u:S,h=bv(h,((h|0)<0)<<31>>31,hr)|0,M=hr,(M-h|0)<2)do h=h+-1|0,p[h>>0]=48;while((M-h|0)<2);p[h+-1>>0]=(S>>31&2)+43,h=h+-2|0,p[h>>0]=O,We=h,h=M-h|0}if(h=Nn+1+D+P+h|0,hl(e,32,r,h,l),qo(e,Lr,Nn),hl(e,48,r,h,l^65536),K){O=Re>>>0>mn>>>0?mn:Re,Ee=On+9|0,P=Ee,K=On+8|0,M=O;do{if(S=bv(t[M>>2]|0,0,Ee)|0,(M|0)==(O|0))(S|0)==(Ee|0)&&(p[K>>0]=48,S=K);else if(S>>>0>On>>>0){Iv(On|0,48,S-kr|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}qo(e,S,P-S|0),M=M+4|0}while(M>>>0<=mn>>>0);if(ve|0&&qo(e,5710,1),M>>>0>>0&(D|0)>0)for(;;){if(S=bv(t[M>>2]|0,0,Ee)|0,S>>>0>On>>>0){Iv(On|0,48,S-kr|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}if(qo(e,S,(D|0)<9?D:9),M=M+4|0,S=D+-9|0,M>>>0>>0&(D|0)>9)D=S;else{D=S;break}}hl(e,48,D+9|0,9,0)}else{if(ve=Qe?st:Re+4|0,(D|0)>-1){Qe=On+9|0,Ee=(Ee|0)==0,u=Qe,P=0-kr|0,K=On+8|0,O=Re;do{S=bv(t[O>>2]|0,0,Qe)|0,(S|0)==(Qe|0)&&(p[K>>0]=48,S=K);do if((O|0)==(Re|0)){if(M=S+1|0,qo(e,S,1),Ee&(D|0)<1){S=M;break}qo(e,5710,1),S=M}else{if(S>>>0<=On>>>0)break;Iv(On|0,48,S+P|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}while(0);kr=u-S|0,qo(e,S,(D|0)>(kr|0)?kr:D),D=D-kr|0,O=O+4|0}while(O>>>0>>0&(D|0)>-1)}hl(e,48,D+18|0,18,0),qo(e,We,hr-We|0)}hl(e,32,r,h,l^8192)}else On=(s&32|0)!=0,h=Nn+3|0,hl(e,32,r,h,l&-65537),qo(e,Lr,Nn),qo(e,n!=n|!1?On?5686:5690:On?5678:5682,3),hl(e,32,r,h,l^8192);while(0);return m=Zi,((h|0)<(r|0)?r:h)|0}function B8(e){e=+e;var n=0;return U[W>>3]=e,n=t[W>>2]|0,ft=t[W+4>>2]|0,n|0}function UI(e,n){return e=+e,n=n|0,+ +U8(e,n)}function U8(e,n){e=+e,n=n|0;var r=0,u=0,l=0;switch(U[W>>3]=e,r=t[W>>2]|0,u=t[W+4>>2]|0,l=O_(r|0,u|0,52)|0,l&2047){case 0:{e!=0?(e=+U8(e*18446744073709552e3,n),r=(t[n>>2]|0)+-64|0):r=0,t[n>>2]=r;break}case 2047:break;default:t[n>>2]=(l&2047)+-1022,t[W>>2]=r,t[W+4>>2]=u&-2146435073|1071644672,e=+U[W>>3]}return+e}function jI(e,n,r){e=e|0,n=n|0,r=r|0;do if(e){if(n>>>0<128){p[e>>0]=n,e=1;break}if(!(t[t[(zI()|0)+188>>2]>>2]|0))if((n&-128|0)==57216){p[e>>0]=n,e=1;break}else{t[(Fv()|0)>>2]=84,e=-1;break}if(n>>>0<2048){p[e>>0]=n>>>6|192,p[e+1>>0]=n&63|128,e=2;break}if(n>>>0<55296|(n&-8192|0)==57344){p[e>>0]=n>>>12|224,p[e+1>>0]=n>>>6&63|128,p[e+2>>0]=n&63|128,e=3;break}if((n+-65536|0)>>>0<1048576){p[e>>0]=n>>>18|240,p[e+1>>0]=n>>>12&63|128,p[e+2>>0]=n>>>6&63|128,p[e+3>>0]=n&63|128,e=4;break}else{t[(Fv()|0)>>2]=84,e=-1;break}}else e=1;while(0);return e|0}function zI(){return VE()|0}function qI(){return VE()|0}function HI(e,n){e=e|0,n=n|0;var r=0,u=0;for(u=0;;){if((k[5712+u>>0]|0)==(e|0)){e=2;break}if(r=u+1|0,(r|0)==87){r=5800,u=87,e=5;break}else u=r}if((e|0)==2&&(u?(r=5800,e=5):r=5800),(e|0)==5)for(;;){do e=r,r=r+1|0;while((p[e>>0]|0)!=0);if(u=u+-1|0,u)e=5;else break}return WI(r,t[n+20>>2]|0)|0}function WI(e,n){return e=e|0,n=n|0,VI(e,n)|0}function VI(e,n){return e=e|0,n=n|0,n?n=GI(t[n>>2]|0,t[n+4>>2]|0,e)|0:n=0,(n|0?n:e)|0}function GI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;K=(t[e>>2]|0)+1794895138|0,s=Gp(t[e+8>>2]|0,K)|0,u=Gp(t[e+12>>2]|0,K)|0,l=Gp(t[e+16>>2]|0,K)|0;e:do if((s>>>0>>2>>>0?(P=n-(s<<2)|0,u>>>0

>>0&l>>>0

>>0):0)?((l|u)&3|0)==0:0){for(P=u>>>2,O=l>>>2,M=0;;){if(D=s>>>1,S=M+D|0,h=S<<1,l=h+P|0,u=Gp(t[e+(l<<2)>>2]|0,K)|0,l=Gp(t[e+(l+1<<2)>>2]|0,K)|0,!(l>>>0>>0&u>>>0<(n-l|0)>>>0)){u=0;break e}if(p[e+(l+u)>>0]|0){u=0;break e}if(u=L8(r,e+l|0)|0,!u)break;if(u=(u|0)<0,(s|0)==1){u=0;break e}else M=u?M:S,s=u?D:s-D|0}u=h+O|0,l=Gp(t[e+(u<<2)>>2]|0,K)|0,u=Gp(t[e+(u+1<<2)>>2]|0,K)|0,u>>>0>>0&l>>>0<(n-u|0)>>>0?u=(p[e+(u+l)>>0]|0)==0?e+u|0:0:u=0}else u=0;while(0);return u|0}function Gp(e,n){e=e|0,n=n|0;var r=0;return r=Y8(e|0)|0,((n|0)==0?e:r)|0}function YI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=r+16|0,l=t[u>>2]|0,l?s=5:KI(r)|0?u=0:(l=t[u>>2]|0,s=5);e:do if((s|0)==5){if(D=r+20|0,h=t[D>>2]|0,u=h,(l-h|0)>>>0>>0){u=M_[t[r+36>>2]&7](r,e,n)|0;break}t:do if((p[r+75>>0]|0)>-1){for(h=n;;){if(!h){s=0,l=e;break t}if(l=h+-1|0,(p[e+l>>0]|0)==10)break;h=l}if(u=M_[t[r+36>>2]&7](r,e,h)|0,u>>>0>>0)break e;s=h,l=e+h|0,n=n-h|0,u=t[D>>2]|0}else s=0,l=e;while(0);pr(u|0,l|0,n|0)|0,t[D>>2]=(t[D>>2]|0)+n,u=s+n|0}while(0);return u|0}function KI(e){e=e|0;var n=0,r=0;return n=e+74|0,r=p[n>>0]|0,p[n>>0]=r+255|r,n=t[e>>2]|0,n&8?(t[e>>2]=n|32,e=-1):(t[e+8>>2]=0,t[e+4>>2]=0,r=t[e+44>>2]|0,t[e+28>>2]=r,t[e+20>>2]=r,t[e+16>>2]=r+(t[e+48>>2]|0),e=0),e|0}function Eu(e,n){e=w(e),n=w(n);var r=0,u=0;r=j8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=j8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?n:e;break}else{e=e>2]=e,t[W>>2]|0|0}function Yp(e,n){e=w(e),n=w(n);var r=0,u=0;r=z8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=z8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?e:n;break}else{e=e>2]=e,t[W>>2]|0|0}function YE(e,n){e=w(e),n=w(n);var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;s=(C[W>>2]=e,t[W>>2]|0),D=(C[W>>2]=n,t[W>>2]|0),r=s>>>23&255,h=D>>>23&255,S=s&-2147483648,l=D<<1;e:do if((l|0)!=0?!((r|0)==255|((XI(n)|0)&2147483647)>>>0>2139095040):0){if(u=s<<1,u>>>0<=l>>>0)return n=w(e*w(0)),w((u|0)==(l|0)?n:e);if(r)u=s&8388607|8388608;else{if(r=s<<9,(r|0)>-1){u=r,r=0;do r=r+-1|0,u=u<<1;while((u|0)>-1)}else r=0;u=s<<1-r}if(h)D=D&8388607|8388608;else{if(s=D<<9,(s|0)>-1){l=0;do l=l+-1|0,s=s<<1;while((s|0)>-1)}else l=0;h=l,D=D<<1-l}l=u-D|0,s=(l|0)>-1;t:do if((r|0)>(h|0)){for(;;){if(s)if(l)u=l;else break;if(u=u<<1,r=r+-1|0,l=u-D|0,s=(l|0)>-1,(r|0)<=(h|0))break t}n=w(e*w(0));break e}while(0);if(s)if(l)u=l;else{n=w(e*w(0));break}if(u>>>0<8388608)do u=u<<1,r=r+-1|0;while(u>>>0<8388608);(r|0)>0?r=u+-8388608|r<<23:r=u>>>(1-r|0),n=(t[W>>2]=r|S,w(C[W>>2]))}else M=3;while(0);return(M|0)==3&&(n=w(e*n),n=w(n/n)),w(n)}function XI(e){return e=w(e),C[W>>2]=e,t[W>>2]|0|0}function QI(e,n){return e=e|0,n=n|0,F8(t[582]|0,e,n)|0}function li(e){e=e|0,Xn()}function Pv(e){e=e|0}function JI(e,n){return e=e|0,n=n|0,0}function ZI(e){return e=e|0,(q8(e+4|0)|0)==-1?(M1[t[(t[e>>2]|0)+8>>2]&127](e),e=1):e=0,e|0}function q8(e){e=e|0;var n=0;return n=t[e>>2]|0,t[e>>2]=n+-1,n+-1|0}function J2(e){e=e|0,ZI(e)|0&&$I(e)}function $I(e){e=e|0;var n=0;n=e+8|0,((t[n>>2]|0)!=0?(q8(n)|0)!=-1:0)||M1[t[(t[e>>2]|0)+16>>2]&127](e)}function cn(e){e=e|0;var n=0;for(n=(e|0)==0?1:e;e=C_(n)|0,!(e|0);){if(e=tB()|0,!e){e=0;break}rS[e&0]()}return e|0}function H8(e){return e=e|0,cn(e)|0}function yt(e){e=e|0,x_(e)}function eB(e){e=e|0,(p[e+11>>0]|0)<0&&yt(t[e>>2]|0)}function tB(){var e=0;return e=t[2923]|0,t[2923]=e+0,e|0}function nB(){}function R_(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,u=n-u-(r>>>0>e>>>0|0)>>>0,ft=u,e-r>>>0|0|0}function KE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,r=e+r>>>0,ft=n+u+(r>>>0>>0|0)>>>0,r|0|0}function Iv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(s=e+r|0,n=n&255,(r|0)>=67){for(;e&3;)p[e>>0]=n,e=e+1|0;for(u=s&-4|0,l=u-64|0,h=n|n<<8|n<<16|n<<24;(e|0)<=(l|0);)t[e>>2]=h,t[e+4>>2]=h,t[e+8>>2]=h,t[e+12>>2]=h,t[e+16>>2]=h,t[e+20>>2]=h,t[e+24>>2]=h,t[e+28>>2]=h,t[e+32>>2]=h,t[e+36>>2]=h,t[e+40>>2]=h,t[e+44>>2]=h,t[e+48>>2]=h,t[e+52>>2]=h,t[e+56>>2]=h,t[e+60>>2]=h,e=e+64|0;for(;(e|0)<(u|0);)t[e>>2]=h,e=e+4|0}for(;(e|0)<(s|0);)p[e>>0]=n,e=e+1|0;return s-r|0}function W8(e,n,r){return e=e|0,n=n|0,r=r|0,(r|0)<32?(ft=n<>>32-r,e<>>r,e>>>r|(n&(1<>>r-32|0)}function pr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;if((r|0)>=8192)return ni(e|0,n|0,r|0)|0;if(s=e|0,l=e+r|0,(e&3)==(n&3)){for(;e&3;){if(!r)return s|0;p[e>>0]=p[n>>0]|0,e=e+1|0,n=n+1|0,r=r-1|0}for(r=l&-4|0,u=r-64|0;(e|0)<=(u|0);)t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2],t[e+16>>2]=t[n+16>>2],t[e+20>>2]=t[n+20>>2],t[e+24>>2]=t[n+24>>2],t[e+28>>2]=t[n+28>>2],t[e+32>>2]=t[n+32>>2],t[e+36>>2]=t[n+36>>2],t[e+40>>2]=t[n+40>>2],t[e+44>>2]=t[n+44>>2],t[e+48>>2]=t[n+48>>2],t[e+52>>2]=t[n+52>>2],t[e+56>>2]=t[n+56>>2],t[e+60>>2]=t[n+60>>2],e=e+64|0,n=n+64|0;for(;(e|0)<(r|0);)t[e>>2]=t[n>>2],e=e+4|0,n=n+4|0}else for(r=l-4|0;(e|0)<(r|0);)p[e>>0]=p[n>>0]|0,p[e+1>>0]=p[n+1>>0]|0,p[e+2>>0]=p[n+2>>0]|0,p[e+3>>0]=p[n+3>>0]|0,e=e+4|0,n=n+4|0;for(;(e|0)<(l|0);)p[e>>0]=p[n>>0]|0,e=e+1|0,n=n+1|0;return s|0}function V8(e){e=e|0;var n=0;return n=p[Se+(e&255)>>0]|0,(n|0)<8?n|0:(n=p[Se+(e>>8&255)>>0]|0,(n|0)<8?n+8|0:(n=p[Se+(e>>16&255)>>0]|0,(n|0)<8?n+16|0:(p[Se+(e>>>24)>>0]|0)+24|0))}function G8(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0;if(O=e,S=n,M=S,h=r,K=u,D=K,!M)return s=(l|0)!=0,D?s?(t[l>>2]=e|0,t[l+4>>2]=n&0,K=0,l=0,ft=K,l|0):(K=0,l=0,ft=K,l|0):(s&&(t[l>>2]=(O>>>0)%(h>>>0),t[l+4>>2]=0),K=0,l=(O>>>0)/(h>>>0)>>>0,ft=K,l|0);s=(D|0)==0;do if(h){if(!s){if(s=(vr(D|0)|0)-(vr(M|0)|0)|0,s>>>0<=31){P=s+1|0,D=31-s|0,n=s-31>>31,h=P,e=O>>>(P>>>0)&n|M<>>(P>>>0)&n,s=0,D=O<>2]=e|0,t[l+4>>2]=S|n&0,K=0,l=0,ft=K,l|0):(K=0,l=0,ft=K,l|0)}if(s=h-1|0,s&h|0){D=(vr(h|0)|0)+33-(vr(M|0)|0)|0,Ee=64-D|0,P=32-D|0,S=P>>31,Pe=D-32|0,n=Pe>>31,h=D,e=P-1>>31&M>>>(Pe>>>0)|(M<>>(D>>>0))&n,n=n&M>>>(D>>>0),s=O<>>(Pe>>>0))&S|O<>31;break}return l|0&&(t[l>>2]=s&O,t[l+4>>2]=0),(h|0)==1?(Pe=S|n&0,Ee=e|0|0,ft=Pe,Ee|0):(Ee=V8(h|0)|0,Pe=M>>>(Ee>>>0)|0,Ee=M<<32-Ee|O>>>(Ee>>>0)|0,ft=Pe,Ee|0)}else{if(s)return l|0&&(t[l>>2]=(M>>>0)%(h>>>0),t[l+4>>2]=0),Pe=0,Ee=(M>>>0)/(h>>>0)>>>0,ft=Pe,Ee|0;if(!O)return l|0&&(t[l>>2]=0,t[l+4>>2]=(M>>>0)%(D>>>0)),Pe=0,Ee=(M>>>0)/(D>>>0)>>>0,ft=Pe,Ee|0;if(s=D-1|0,!(s&D))return l|0&&(t[l>>2]=e|0,t[l+4>>2]=s&M|n&0),Pe=0,Ee=M>>>((V8(D|0)|0)>>>0),ft=Pe,Ee|0;if(s=(vr(D|0)|0)-(vr(M|0)|0)|0,s>>>0<=30){n=s+1|0,D=31-s|0,h=n,e=M<>>(n>>>0),n=M>>>(n>>>0),s=0,D=O<>2]=e|0,t[l+4>>2]=S|n&0,Pe=0,Ee=0,ft=Pe,Ee|0):(Pe=0,Ee=0,ft=Pe,Ee|0)}while(0);if(!h)M=D,S=0,D=0;else{P=r|0|0,O=K|u&0,M=KE(P|0,O|0,-1,-1)|0,r=ft,S=D,D=0;do u=S,S=s>>>31|S<<1,s=D|s<<1,u=e<<1|u>>>31|0,K=e>>>31|n<<1|0,R_(M|0,r|0,u|0,K|0)|0,Ee=ft,Pe=Ee>>31|((Ee|0)<0?-1:0)<<1,D=Pe&1,e=R_(u|0,K|0,Pe&P|0,(((Ee|0)<0?-1:0)>>31|((Ee|0)<0?-1:0)<<1)&O|0)|0,n=ft,h=h-1|0;while((h|0)!=0);M=S,S=0}return h=0,l|0&&(t[l>>2]=e,t[l+4>>2]=n),Pe=(s|0)>>>31|(M|h)<<1|(h<<1|s>>>31)&0|S,Ee=(s<<1|0>>>31)&-2|D,ft=Pe,Ee|0}function XE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,G8(e,n,r,u,0)|0}function Z2(e){e=e|0;var n=0,r=0;return r=e+15&-16|0,n=t[q>>2]|0,e=n+r|0,(r|0)>0&(e|0)<(n|0)|(e|0)<0?(ur()|0,Vl(12),-1):(t[q>>2]=e,((e|0)>(Fr()|0)?(fr()|0)==0:0)?(t[q>>2]=n,Vl(12),-1):n|0)}function Iy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if((n|0)<(e|0)&(e|0)<(n+r|0)){for(u=e,n=n+r|0,e=e+r|0;(r|0)>0;)e=e-1|0,n=n-1|0,r=r-1|0,p[e>>0]=p[n>>0]|0;e=u}else pr(e,n,r)|0;return e|0}function QE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;return s=m,m=m+16|0,l=s|0,G8(e,n,r,u,l)|0,m=s,ft=t[l+4>>2]|0,t[l>>2]|0|0}function Y8(e){return e=e|0,(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function rB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,K8[e&1](n|0,r|0,u|0,l|0,s|0)}function iB(e,n,r){e=e|0,n=n|0,r=w(r),X8[e&1](n|0,w(r))}function uB(e,n,r){e=e|0,n=n|0,r=+r,Q8[e&31](n|0,+r)}function oB(e,n,r,u){return e=e|0,n=n|0,r=w(r),u=w(u),w(J8[e&0](n|0,w(r),w(u)))}function lB(e,n){e=e|0,n=n|0,M1[e&127](n|0)}function sB(e,n,r){e=e|0,n=n|0,r=r|0,N1[e&31](n|0,r|0)}function aB(e,n){return e=e|0,n=n|0,Xp[e&31](n|0)|0}function fB(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,Z8[e&1](n|0,+r,+u,l|0)}function cB(e,n,r,u){e=e|0,n=n|0,r=+r,u=+u,VB[e&1](n|0,+r,+u)}function dB(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,M_[e&7](n|0,r|0,u|0)|0}function pB(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,+GB[e&1](n|0,r|0,u|0)}function hB(e,n){return e=e|0,n=n|0,+$8[e&15](n|0)}function vB(e,n,r){return e=e|0,n=n|0,r=+r,YB[e&1](n|0,+r)|0}function mB(e,n,r){return e=e|0,n=n|0,r=r|0,ZE[e&15](n|0,r|0)|0}function yB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=+u,l=+l,s=s|0,KB[e&1](n|0,r|0,+u,+l,s|0)}function gB(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,XB[e&1](n|0,r|0,u|0,l|0,s|0,h|0)}function _B(e,n,r){return e=e|0,n=n|0,r=r|0,+eS[e&7](n|0,r|0)}function EB(e){return e=e|0,N_[e&7]()|0}function DB(e,n,r,u,l,s){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,tS[e&1](n|0,r|0,u|0,l|0,s|0)|0}function wB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=+l,QB[e&1](n|0,r|0,u|0,+l)}function SB(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,nS[e&1](n|0,r|0,w(u),l|0,w(s),h|0)}function TB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,jy[e&15](n|0,r|0,u|0)}function CB(e){e=e|0,rS[e&0]()}function xB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,iS[e&15](n|0,r|0,+u)}function AB(e,n,r){return e=e|0,n=+n,r=+r,JB[e&1](+n,+r)|0}function RB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,$E[e&15](n|0,r|0,u|0,l|0)}function OB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,Ut(0)}function kB(e,n){e=e|0,n=w(n),Ut(1)}function Ks(e,n){e=e|0,n=+n,Ut(2)}function MB(e,n,r){return e=e|0,n=w(n),r=w(r),Ut(3),St}function Kn(e){e=e|0,Ut(4)}function By(e,n){e=e|0,n=n|0,Ut(5)}function xa(e){return e=e|0,Ut(6),0}function NB(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,Ut(7)}function LB(e,n,r){e=e|0,n=+n,r=+r,Ut(8)}function FB(e,n,r){return e=e|0,n=n|0,r=r|0,Ut(9),0}function bB(e,n,r){return e=e|0,n=n|0,r=r|0,Ut(10),0}function Kp(e){return e=e|0,Ut(11),0}function PB(e,n){return e=e|0,n=+n,Ut(12),0}function Uy(e,n){return e=e|0,n=n|0,Ut(13),0}function IB(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,Ut(14)}function BB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,Ut(15)}function JE(e,n){return e=e|0,n=n|0,Ut(16),0}function UB(){return Ut(17),0}function jB(e,n,r,u,l){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,Ut(18),0}function zB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,Ut(19)}function qB(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0,Ut(20)}function k_(e,n,r){e=e|0,n=n|0,r=r|0,Ut(21)}function HB(){Ut(22)}function Bv(e,n,r){e=e|0,n=n|0,r=+r,Ut(23)}function WB(e,n){return e=+e,n=+n,Ut(24),0}function Uv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,Ut(25)}var K8=[OB,UL],X8=[kB,Ju],Q8=[Ks,ua,ys,gs,Ql,Io,hf,tl,Ia,Zu,vf,jc,lc,Sl,_s,oa,n2,la,sc,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks],J8=[MB],M1=[Kn,Pv,an,$l,go,Lf,x1,Fl,hN,vN,mN,xL,AL,RL,XP,QP,JP,Ne,uc,La,ju,U0,hh,yf,$c,Af,pa,Rh,Sm,h1,v1,Xh,pp,M2,Gm,D1,Sc,ry,oy,Sv,Av,rn,Q4,lE,h_,Nt,_u,Qu,RO,WO,ak,Ak,qk,aM,_M,wM,UM,qM,uN,gN,DN,BN,nL,v2,BF,vb,kb,Vb,pP,RP,UP,qP,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn],N1=[By,gd,$1,Uc,Dl,el,_d,Bs,wl,Fa,ba,Pa,Tl,Be,ut,Jt,jn,ti,tr,Ba,Dd,mh,fE,vE,Mk,zF,fL,g8,By,By,By,By],Xp=[xa,xI,pf,y,J,fe,mt,Ct,Mt,Er,iu,j0,Ua,r2,Vc,Cs,Gk,zN,VF,Sa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa],Z8=[NB,Td],VB=[LB,sN],M_=[FB,N8,AI,kI,zh,dv,NO,Xb],GB=[bB,lv],$8=[Kp,e0,He,ii,vh,il,sa,Cd,xd,ac,Kp,Kp,Kp,Kp,Kp,Kp],YB=[PB,mM],ZE=[Uy,JI,Ed,ll,zd,Nm,ap,Cp,ly,xr,bo,Fb,Uy,Uy,Uy,Uy],KB=[IB,Sh],XB=[BB,yP],eS=[JE,qi,Ad,a2,Gc,cl,JE,JE],N_=[UB,Yc,to,g0,xM,GM,CN,GP],tS=[jB,ei],QB=[zB,Dy],nS=[qB,i2],jy=[k_,A,$u,jr,gu,d1,k2,ir,Cy,po,aF,_b,NP,k_,k_,k_],rS=[HB],iS=[Bv,e2,ho,t2,Po,zc,bi,g,Ip,KO,dM,Bv,Bv,Bv,Bv,Bv],JB=[WB,dN],$E=[Uv,_p,Rc,pk,tM,NM,ZM,NN,lL,JF,rI,Uv,Uv,Uv,Uv,Uv];return{_llvm_bswap_i32:Y8,dynCall_idd:AB,dynCall_i:EB,_i64Subtract:R_,___udivdi3:XE,dynCall_vif:iB,setThrew:fs,dynCall_viii:TB,_bitshift64Lshr:O_,_bitshift64Shl:W8,dynCall_vi:lB,dynCall_viiddi:yB,dynCall_diii:pB,dynCall_iii:mB,_memset:Iv,_sbrk:Z2,_memcpy:pr,__GLOBAL__sub_I_Yoga_cpp:Qi,dynCall_vii:sB,___uremdi3:QE,dynCall_vid:uB,stackAlloc:so,_nbind_init:hI,getTempRet0:X,dynCall_di:hB,dynCall_iid:vB,setTempRet0:P0,_i64Add:KE,dynCall_fiff:oB,dynCall_iiii:dB,_emscripten_get_global_libc:CI,dynCall_viid:xB,dynCall_viiid:wB,dynCall_viififi:SB,dynCall_ii:aB,__GLOBAL__sub_I_Binding_cc:kF,dynCall_viiii:RB,dynCall_iiiiii:DB,stackSave:Jo,dynCall_viiiii:rB,__GLOBAL__sub_I_nbind_cc:Us,dynCall_vidd:cB,_free:x_,runPostSets:nB,dynCall_viiiiii:gB,establishStackSpace:Fu,_memmove:Iy,stackRestore:Gl,_malloc:C_,__GLOBAL__sub_I_common_cc:XN,dynCall_viddi:fB,dynCall_dii:_B,dynCall_v:CB}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function i(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=i)},Module.callMain=Module.callMain=function(o){o=o||[],ensureInitRuntime();var f=o.length+1;function p(){for(var N=0;N<4-1;N++)E.push(0)}var E=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];p();for(var t=0;t0||(preRun(),runDependencies>0)||Module.calledRun)return;function o(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(i),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),o()},1)):o()}Module.run=Module.run=run;function exit(i,o){o&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=i,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(i)),ENVIRONMENT_IS_NODE&&process.exit(i),Module.quit(i,new ExitStatus(i)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(i){Module.onAbort&&Module.onAbort(i),i!==void 0?(Module.print(i),Module.printErr(i),i=JSON.stringify(i)):i="",ABORT=!0,EXITSTATUS=1;var o=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,f="abort("+i+") at "+stackTrace()+o;throw abortDecorators&&abortDecorators.forEach(function(p){f=p(f,i)}),f}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var eh=ce((Wne,O9)=>{"use strict";var tX=A9(),nX=R9(),hw=!1,vw=null;nX({},function(i,o){if(!hw){if(hw=!0,i)throw i;vw=o}});if(!hw)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");O9.exports=tX(vw.bind,vw.lib)});var M9=ce((Vne,k9)=>{"use strict";k9.exports=({onlyFirst:i=!1}={})=>{let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i?void 0:"g")}});var mw=ce((Gne,N9)=>{"use strict";var rX=M9();N9.exports=i=>typeof i=="string"?i.replace(rX(),""):i});var gw=ce((Yne,yw)=>{"use strict";var L9=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);yw.exports=L9;yw.exports.default=L9});var b9=ce((Kne,F9)=>{"use strict";F9.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var m4=ce((Xne,_w)=>{"use strict";var iX=mw(),uX=gw(),oX=b9(),P9=i=>{if(i=i.replace(oX()," "),typeof i!="string"||i.length===0)return 0;i=iX(i);let o=0;for(let f=0;f=127&&p<=159||p>=768&&p<=879||(p>65535&&f++,o+=uX(p)?2:1)}return o};_w.exports=P9;_w.exports.default=P9});var Dw=ce((Qne,Ew)=>{"use strict";var lX=m4(),I9=i=>{let o=0;for(let f of i.split(` +`))o=Math.max(o,lX(f));return o};Ew.exports=I9;Ew.exports.default=I9});var B9=ce(vg=>{"use strict";var sX=vg&&vg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(vg,"__esModule",{value:!0});var aX=sX(Dw()),ww={};vg.default=i=>{if(i.length===0)return{width:0,height:0};if(ww[i])return ww[i];let o=aX.default(i),f=i.split(` +`).length;return ww[i]={width:o,height:f},{width:o,height:f}}});var U9=ce(mg=>{"use strict";var fX=mg&&mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(mg,"__esModule",{value:!0});var Ii=fX(eh()),cX=(i,o)=>{"position"in o&&i.setPositionType(o.position==="absolute"?Ii.default.POSITION_TYPE_ABSOLUTE:Ii.default.POSITION_TYPE_RELATIVE)},dX=(i,o)=>{"marginLeft"in o&&i.setMargin(Ii.default.EDGE_START,o.marginLeft||0),"marginRight"in o&&i.setMargin(Ii.default.EDGE_END,o.marginRight||0),"marginTop"in o&&i.setMargin(Ii.default.EDGE_TOP,o.marginTop||0),"marginBottom"in o&&i.setMargin(Ii.default.EDGE_BOTTOM,o.marginBottom||0)},pX=(i,o)=>{"paddingLeft"in o&&i.setPadding(Ii.default.EDGE_LEFT,o.paddingLeft||0),"paddingRight"in o&&i.setPadding(Ii.default.EDGE_RIGHT,o.paddingRight||0),"paddingTop"in o&&i.setPadding(Ii.default.EDGE_TOP,o.paddingTop||0),"paddingBottom"in o&&i.setPadding(Ii.default.EDGE_BOTTOM,o.paddingBottom||0)},hX=(i,o)=>{var f;"flexGrow"in o&&i.setFlexGrow((f=o.flexGrow)!==null&&f!==void 0?f:0),"flexShrink"in o&&i.setFlexShrink(typeof o.flexShrink=="number"?o.flexShrink:1),"flexDirection"in o&&(o.flexDirection==="row"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_ROW),o.flexDirection==="row-reverse"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_ROW_REVERSE),o.flexDirection==="column"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_COLUMN),o.flexDirection==="column-reverse"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in o&&(typeof o.flexBasis=="number"?i.setFlexBasis(o.flexBasis):typeof o.flexBasis=="string"?i.setFlexBasisPercent(Number.parseInt(o.flexBasis,10)):i.setFlexBasis(NaN)),"alignItems"in o&&((o.alignItems==="stretch"||!o.alignItems)&&i.setAlignItems(Ii.default.ALIGN_STRETCH),o.alignItems==="flex-start"&&i.setAlignItems(Ii.default.ALIGN_FLEX_START),o.alignItems==="center"&&i.setAlignItems(Ii.default.ALIGN_CENTER),o.alignItems==="flex-end"&&i.setAlignItems(Ii.default.ALIGN_FLEX_END)),"alignSelf"in o&&((o.alignSelf==="auto"||!o.alignSelf)&&i.setAlignSelf(Ii.default.ALIGN_AUTO),o.alignSelf==="flex-start"&&i.setAlignSelf(Ii.default.ALIGN_FLEX_START),o.alignSelf==="center"&&i.setAlignSelf(Ii.default.ALIGN_CENTER),o.alignSelf==="flex-end"&&i.setAlignSelf(Ii.default.ALIGN_FLEX_END)),"justifyContent"in o&&((o.justifyContent==="flex-start"||!o.justifyContent)&&i.setJustifyContent(Ii.default.JUSTIFY_FLEX_START),o.justifyContent==="center"&&i.setJustifyContent(Ii.default.JUSTIFY_CENTER),o.justifyContent==="flex-end"&&i.setJustifyContent(Ii.default.JUSTIFY_FLEX_END),o.justifyContent==="space-between"&&i.setJustifyContent(Ii.default.JUSTIFY_SPACE_BETWEEN),o.justifyContent==="space-around"&&i.setJustifyContent(Ii.default.JUSTIFY_SPACE_AROUND))},vX=(i,o)=>{var f,p;"width"in o&&(typeof o.width=="number"?i.setWidth(o.width):typeof o.width=="string"?i.setWidthPercent(Number.parseInt(o.width,10)):i.setWidthAuto()),"height"in o&&(typeof o.height=="number"?i.setHeight(o.height):typeof o.height=="string"?i.setHeightPercent(Number.parseInt(o.height,10)):i.setHeightAuto()),"minWidth"in o&&(typeof o.minWidth=="string"?i.setMinWidthPercent(Number.parseInt(o.minWidth,10)):i.setMinWidth((f=o.minWidth)!==null&&f!==void 0?f:0)),"minHeight"in o&&(typeof o.minHeight=="string"?i.setMinHeightPercent(Number.parseInt(o.minHeight,10)):i.setMinHeight((p=o.minHeight)!==null&&p!==void 0?p:0))},mX=(i,o)=>{"display"in o&&i.setDisplay(o.display==="flex"?Ii.default.DISPLAY_FLEX:Ii.default.DISPLAY_NONE)},yX=(i,o)=>{if("borderStyle"in o){let f=typeof o.borderStyle=="string"?1:0;i.setBorder(Ii.default.EDGE_TOP,f),i.setBorder(Ii.default.EDGE_BOTTOM,f),i.setBorder(Ii.default.EDGE_LEFT,f),i.setBorder(Ii.default.EDGE_RIGHT,f)}};mg.default=(i,o={})=>{cX(i,o),dX(i,o),pX(i,o),hX(i,o),vX(i,o),mX(i,o),yX(i,o)}});var z9=ce(($ne,j9)=>{"use strict";j9.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Sw=ce((ere,q9)=>{var yg=z9(),H9={};for(let i of Object.keys(yg))H9[yg[i]]=i;var In={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};q9.exports=In;for(let i of Object.keys(In)){if(!("channels"in In[i]))throw new Error("missing channels property: "+i);if(!("labels"in In[i]))throw new Error("missing channel labels property: "+i);if(In[i].labels.length!==In[i].channels)throw new Error("channel and label counts mismatch: "+i);let{channels:o,labels:f}=In[i];delete In[i].channels,delete In[i].labels,Object.defineProperty(In[i],"channels",{value:o}),Object.defineProperty(In[i],"labels",{value:f})}In.rgb.hsl=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.min(o,f,p),t=Math.max(o,f,p),k=t-E,L,N;t===E?L=0:o===t?L=(f-p)/k:f===t?L=2+(p-o)/k:p===t&&(L=4+(o-f)/k),L=Math.min(L*60,360),L<0&&(L+=360);let C=(E+t)/2;return t===E?N=0:C<=.5?N=k/(t+E):N=k/(2-t-E),[L,N*100,C*100]};In.rgb.hsv=function(i){let o,f,p,E,t,k=i[0]/255,L=i[1]/255,N=i[2]/255,C=Math.max(k,L,N),U=C-Math.min(k,L,N),q=function(W){return(C-W)/6/U+1/2};return U===0?(E=0,t=0):(t=U/C,o=q(k),f=q(L),p=q(N),k===C?E=p-f:L===C?E=1/3+o-p:N===C&&(E=2/3+f-o),E<0?E+=1:E>1&&(E-=1)),[E*360,t*100,C*100]};In.rgb.hwb=function(i){let o=i[0],f=i[1],p=i[2],E=In.rgb.hsl(i)[0],t=1/255*Math.min(o,Math.min(f,p));return p=1-1/255*Math.max(o,Math.max(f,p)),[E,t*100,p*100]};In.rgb.cmyk=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.min(1-o,1-f,1-p),t=(1-o-E)/(1-E)||0,k=(1-f-E)/(1-E)||0,L=(1-p-E)/(1-E)||0;return[t*100,k*100,L*100,E*100]};function gX(i,o){return(i[0]-o[0])**2+(i[1]-o[1])**2+(i[2]-o[2])**2}In.rgb.keyword=function(i){let o=H9[i];if(o)return o;let f=Infinity,p;for(let E of Object.keys(yg)){let t=yg[E],k=gX(i,t);k.04045?((o+.055)/1.055)**2.4:o/12.92,f=f>.04045?((f+.055)/1.055)**2.4:f/12.92,p=p>.04045?((p+.055)/1.055)**2.4:p/12.92;let E=o*.4124+f*.3576+p*.1805,t=o*.2126+f*.7152+p*.0722,k=o*.0193+f*.1192+p*.9505;return[E*100,t*100,k*100]};In.rgb.lab=function(i){let o=In.rgb.xyz(i),f=o[0],p=o[1],E=o[2];f/=95.047,p/=100,E/=108.883,f=f>.008856?f**(1/3):7.787*f+16/116,p=p>.008856?p**(1/3):7.787*p+16/116,E=E>.008856?E**(1/3):7.787*E+16/116;let t=116*p-16,k=500*(f-p),L=200*(p-E);return[t,k,L]};In.hsl.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100,E,t,k;if(f===0)return k=p*255,[k,k,k];p<.5?E=p*(1+f):E=p+f-p*f;let L=2*p-E,N=[0,0,0];for(let C=0;C<3;C++)t=o+1/3*-(C-1),t<0&&t++,t>1&&t--,6*t<1?k=L+(E-L)*6*t:2*t<1?k=E:3*t<2?k=L+(E-L)*(2/3-t)*6:k=L,N[C]=k*255;return N};In.hsl.hsv=function(i){let o=i[0],f=i[1]/100,p=i[2]/100,E=f,t=Math.max(p,.01);p*=2,f*=p<=1?p:2-p,E*=t<=1?t:2-t;let k=(p+f)/2,L=p===0?2*E/(t+E):2*f/(p+f);return[o,L*100,k*100]};In.hsv.rgb=function(i){let o=i[0]/60,f=i[1]/100,p=i[2]/100,E=Math.floor(o)%6,t=o-Math.floor(o),k=255*p*(1-f),L=255*p*(1-f*t),N=255*p*(1-f*(1-t));switch(p*=255,E){case 0:return[p,N,k];case 1:return[L,p,k];case 2:return[k,p,N];case 3:return[k,L,p];case 4:return[N,k,p];case 5:return[p,k,L]}};In.hsv.hsl=function(i){let o=i[0],f=i[1]/100,p=i[2]/100,E=Math.max(p,.01),t,k;k=(2-f)*p;let L=(2-f)*E;return t=f*E,t/=L<=1?L:2-L,t=t||0,k/=2,[o,t*100,k*100]};In.hwb.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100,E=f+p,t;E>1&&(f/=E,p/=E);let k=Math.floor(6*o),L=1-p;t=6*o-k,(k&1)!=0&&(t=1-t);let N=f+t*(L-f),C,U,q;switch(k){default:case 6:case 0:C=L,U=N,q=f;break;case 1:C=N,U=L,q=f;break;case 2:C=f,U=L,q=N;break;case 3:C=f,U=N,q=L;break;case 4:C=N,U=f,q=L;break;case 5:C=L,U=f,q=N;break}return[C*255,U*255,q*255]};In.cmyk.rgb=function(i){let o=i[0]/100,f=i[1]/100,p=i[2]/100,E=i[3]/100,t=1-Math.min(1,o*(1-E)+E),k=1-Math.min(1,f*(1-E)+E),L=1-Math.min(1,p*(1-E)+E);return[t*255,k*255,L*255]};In.xyz.rgb=function(i){let o=i[0]/100,f=i[1]/100,p=i[2]/100,E,t,k;return E=o*3.2406+f*-1.5372+p*-.4986,t=o*-.9689+f*1.8758+p*.0415,k=o*.0557+f*-.204+p*1.057,E=E>.0031308?1.055*E**(1/2.4)-.055:E*12.92,t=t>.0031308?1.055*t**(1/2.4)-.055:t*12.92,k=k>.0031308?1.055*k**(1/2.4)-.055:k*12.92,E=Math.min(Math.max(0,E),1),t=Math.min(Math.max(0,t),1),k=Math.min(Math.max(0,k),1),[E*255,t*255,k*255]};In.xyz.lab=function(i){let o=i[0],f=i[1],p=i[2];o/=95.047,f/=100,p/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,f=f>.008856?f**(1/3):7.787*f+16/116,p=p>.008856?p**(1/3):7.787*p+16/116;let E=116*f-16,t=500*(o-f),k=200*(f-p);return[E,t,k]};In.lab.xyz=function(i){let o=i[0],f=i[1],p=i[2],E,t,k;t=(o+16)/116,E=f/500+t,k=t-p/200;let L=t**3,N=E**3,C=k**3;return t=L>.008856?L:(t-16/116)/7.787,E=N>.008856?N:(E-16/116)/7.787,k=C>.008856?C:(k-16/116)/7.787,E*=95.047,t*=100,k*=108.883,[E,t,k]};In.lab.lch=function(i){let o=i[0],f=i[1],p=i[2],E;E=Math.atan2(p,f)*360/2/Math.PI,E<0&&(E+=360);let k=Math.sqrt(f*f+p*p);return[o,k,E]};In.lch.lab=function(i){let o=i[0],f=i[1],E=i[2]/360*2*Math.PI,t=f*Math.cos(E),k=f*Math.sin(E);return[o,t,k]};In.rgb.ansi16=function(i,o=null){let[f,p,E]=i,t=o===null?In.rgb.hsv(i)[2]:o;if(t=Math.round(t/50),t===0)return 30;let k=30+(Math.round(E/255)<<2|Math.round(p/255)<<1|Math.round(f/255));return t===2&&(k+=60),k};In.hsv.ansi16=function(i){return In.rgb.ansi16(In.hsv.rgb(i),i[2])};In.rgb.ansi256=function(i){let o=i[0],f=i[1],p=i[2];return o===f&&f===p?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(f/255*5)+Math.round(p/255*5)};In.ansi16.rgb=function(i){let o=i%10;if(o===0||o===7)return i>50&&(o+=3.5),o=o/10.5*255,[o,o,o];let f=(~~(i>50)+1)*.5,p=(o&1)*f*255,E=(o>>1&1)*f*255,t=(o>>2&1)*f*255;return[p,E,t]};In.ansi256.rgb=function(i){if(i>=232){let t=(i-232)*10+8;return[t,t,t]}i-=16;let o,f=Math.floor(i/36)/5*255,p=Math.floor((o=i%36)/6)/5*255,E=o%6/5*255;return[f,p,E]};In.rgb.hex=function(i){let f=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(f.length)+f};In.hex.rgb=function(i){let o=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!o)return[0,0,0];let f=o[0];o[0].length===3&&(f=f.split("").map(L=>L+L).join(""));let p=parseInt(f,16),E=p>>16&255,t=p>>8&255,k=p&255;return[E,t,k]};In.rgb.hcg=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.max(Math.max(o,f),p),t=Math.min(Math.min(o,f),p),k=E-t,L,N;return k<1?L=t/(1-k):L=0,k<=0?N=0:E===o?N=(f-p)/k%6:E===f?N=2+(p-o)/k:N=4+(o-f)/k,N/=6,N%=1,[N*360,k*100,L*100]};In.hsl.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=f<.5?2*o*f:2*o*(1-f),E=0;return p<1&&(E=(f-.5*p)/(1-p)),[i[0],p*100,E*100]};In.hsv.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=o*f,E=0;return p<1&&(E=(f-p)/(1-p)),[i[0],p*100,E*100]};In.hcg.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100;if(f===0)return[p*255,p*255,p*255];let E=[0,0,0],t=o%1*6,k=t%1,L=1-k,N=0;switch(Math.floor(t)){case 0:E[0]=1,E[1]=k,E[2]=0;break;case 1:E[0]=L,E[1]=1,E[2]=0;break;case 2:E[0]=0,E[1]=1,E[2]=k;break;case 3:E[0]=0,E[1]=L,E[2]=1;break;case 4:E[0]=k,E[1]=0,E[2]=1;break;default:E[0]=1,E[1]=0,E[2]=L}return N=(1-f)*p,[(f*E[0]+N)*255,(f*E[1]+N)*255,(f*E[2]+N)*255]};In.hcg.hsv=function(i){let o=i[1]/100,f=i[2]/100,p=o+f*(1-o),E=0;return p>0&&(E=o/p),[i[0],E*100,p*100]};In.hcg.hsl=function(i){let o=i[1]/100,p=i[2]/100*(1-o)+.5*o,E=0;return p>0&&p<.5?E=o/(2*p):p>=.5&&p<1&&(E=o/(2*(1-p))),[i[0],E*100,p*100]};In.hcg.hwb=function(i){let o=i[1]/100,f=i[2]/100,p=o+f*(1-o);return[i[0],(p-o)*100,(1-p)*100]};In.hwb.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=1-f,E=p-o,t=0;return E<1&&(t=(p-E)/(1-E)),[i[0],E*100,t*100]};In.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]};In.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]};In.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]};In.gray.hsl=function(i){return[0,0,i[0]]};In.gray.hsv=In.gray.hsl;In.gray.hwb=function(i){return[0,100,i[0]]};In.gray.cmyk=function(i){return[0,0,0,i[0]]};In.gray.lab=function(i){return[i[0],0,0]};In.gray.hex=function(i){let o=Math.round(i[0]/100*255)&255,p=((o<<16)+(o<<8)+o).toString(16).toUpperCase();return"000000".substring(p.length)+p};In.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]}});var V9=ce((tre,W9)=>{var y4=Sw();function _X(){let i={},o=Object.keys(y4);for(let f=o.length,p=0;p{var Tw=Sw(),SX=V9(),sm={},TX=Object.keys(Tw);function CX(i){let o=function(...f){let p=f[0];return p==null?p:(p.length>1&&(f=p),i(f))};return"conversion"in i&&(o.conversion=i.conversion),o}function xX(i){let o=function(...f){let p=f[0];if(p==null)return p;p.length>1&&(f=p);let E=i(f);if(typeof E=="object")for(let t=E.length,k=0;k{sm[i]={},Object.defineProperty(sm[i],"channels",{value:Tw[i].channels}),Object.defineProperty(sm[i],"labels",{value:Tw[i].labels});let o=SX(i);Object.keys(o).forEach(p=>{let E=o[p];sm[i][p]=xX(E),sm[i][p].raw=CX(E)})});G9.exports=sm});var _4=ce((rre,K9)=>{"use strict";var X9=(i,o)=>(...f)=>`[${i(...f)+o}m`,Q9=(i,o)=>(...f)=>{let p=i(...f);return`[${38+o};5;${p}m`},J9=(i,o)=>(...f)=>{let p=i(...f);return`[${38+o};2;${p[0]};${p[1]};${p[2]}m`},g4=i=>i,Z9=(i,o,f)=>[i,o,f],am=(i,o,f)=>{Object.defineProperty(i,o,{get:()=>{let p=f();return Object.defineProperty(i,o,{value:p,enumerable:!0,configurable:!0}),p},enumerable:!0,configurable:!0})},Cw,fm=(i,o,f,p)=>{Cw===void 0&&(Cw=Y9());let E=p?10:0,t={};for(let[k,L]of Object.entries(Cw)){let N=k==="ansi16"?"ansi":k;k===o?t[N]=i(f,E):typeof L=="object"&&(t[N]=i(L[o],E))}return t};function AX(){let i=new Map,o={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};o.color.gray=o.color.blackBright,o.bgColor.bgGray=o.bgColor.bgBlackBright,o.color.grey=o.color.blackBright,o.bgColor.bgGrey=o.bgColor.bgBlackBright;for(let[f,p]of Object.entries(o)){for(let[E,t]of Object.entries(p))o[E]={open:`[${t[0]}m`,close:`[${t[1]}m`},p[E]=o[E],i.set(t[0],t[1]);Object.defineProperty(o,f,{value:p,enumerable:!1})}return Object.defineProperty(o,"codes",{value:i,enumerable:!1}),o.color.close="",o.bgColor.close="",am(o.color,"ansi",()=>fm(X9,"ansi16",g4,!1)),am(o.color,"ansi256",()=>fm(Q9,"ansi256",g4,!1)),am(o.color,"ansi16m",()=>fm(J9,"rgb",Z9,!1)),am(o.bgColor,"ansi",()=>fm(X9,"ansi16",g4,!0)),am(o.bgColor,"ansi256",()=>fm(Q9,"ansi256",g4,!0)),am(o.bgColor,"ansi16m",()=>fm(J9,"rgb",Z9,!0)),o}Object.defineProperty(K9,"exports",{enumerable:!0,get:AX})});var tA=ce((ire,$9)=>{"use strict";var gg=m4(),RX=mw(),OX=_4(),xw=new Set(["","\x9B"]),kX=39,eA=i=>`${xw.values().next().value}[${i}m`,MX=i=>i.split(" ").map(o=>gg(o)),Aw=(i,o,f)=>{let p=[...o],E=!1,t=gg(RX(i[i.length-1]));for(let[k,L]of p.entries()){let N=gg(L);if(t+N<=f?i[i.length-1]+=L:(i.push(L),t=0),xw.has(L))E=!0;else if(E&&L==="m"){E=!1;continue}E||(t+=N,t===f&&k0&&i.length>1&&(i[i.length-2]+=i.pop())},NX=i=>{let o=i.split(" "),f=o.length;for(;f>0&&!(gg(o[f-1])>0);)f--;return f===o.length?i:o.slice(0,f).join(" ")+o.slice(f).join("")},LX=(i,o,f={})=>{if(f.trim!==!1&&i.trim()==="")return"";let p="",E="",t,k=MX(i),L=[""];for(let[N,C]of i.split(" ").entries()){f.trim!==!1&&(L[L.length-1]=L[L.length-1].trimLeft());let U=gg(L[L.length-1]);if(N!==0&&(U>=o&&(f.wordWrap===!1||f.trim===!1)&&(L.push(""),U=0),(U>0||f.trim===!1)&&(L[L.length-1]+=" ",U++)),f.hard&&k[N]>o){let q=o-U,W=1+Math.floor((k[N]-q-1)/o);Math.floor((k[N]-1)/o)o&&U>0&&k[N]>0){if(f.wordWrap===!1&&Uo&&f.wordWrap===!1){Aw(L,C,o);continue}L[L.length-1]+=C}f.trim!==!1&&(L=L.map(NX)),p=L.join(` +`);for(let[N,C]of[...p].entries()){if(E+=C,xw.has(C)){let q=parseFloat(/\d[^m]*/.exec(p.slice(N,N+4)));t=q===kX?null:q}let U=OX.codes.get(Number(t));t&&U&&(p[N+1]===` +`?E+=eA(U):C===` +`&&(E+=eA(t)))}return E};$9.exports=(i,o,f)=>String(i).normalize().replace(/\r\n/g,` +`).split(` +`).map(p=>LX(p,o,f)).join(` +`)});var iA=ce((ure,nA)=>{"use strict";var rA="[\uD800-\uDBFF][\uDC00-\uDFFF]",FX=i=>i&&i.exact?new RegExp(`^${rA}$`):new RegExp(rA,"g");nA.exports=FX});var Rw=ce((ore,uA)=>{"use strict";var bX=gw(),PX=iA(),oA=_4(),lA=["","\x9B"],E4=i=>`${lA[0]}[${i}m`,sA=(i,o,f)=>{let p=[];i=[...i];for(let E of i){let t=E;E.match(";")&&(E=E.split(";")[0][0]+"0");let k=oA.codes.get(parseInt(E,10));if(k){let L=i.indexOf(k.toString());L>=0?i.splice(L,1):p.push(E4(o?k:t))}else if(o){p.push(E4(0));break}else p.push(E4(t))}if(o&&(p=p.filter((E,t)=>p.indexOf(E)===t),f!==void 0)){let E=E4(oA.codes.get(parseInt(f,10)));p=p.reduce((t,k)=>k===E?[k,...t]:[...t,k],[])}return p.join("")};uA.exports=(i,o,f)=>{let p=[...i.normalize()],E=[];f=typeof f=="number"?f:p.length;let t=!1,k,L=0,N="";for(let[C,U]of p.entries()){let q=!1;if(lA.includes(U)){let W=/\d[^m]*/.exec(i.slice(C,C+18));k=W&&W.length>0?W[0]:void 0,Lo&&L<=f)N+=U;else if(L===o&&!t&&k!==void 0)N=sA(E);else if(L>=f){N+=sA(E,!0,k);break}}return N}});var fA=ce((lre,aA)=>{"use strict";var pd=Rw(),IX=m4();function D4(i,o,f){if(i.charAt(o)===" ")return o;for(let p=1;p<=3;p++)if(f){if(i.charAt(o+p)===" ")return o+p}else if(i.charAt(o-p)===" ")return o-p;return o}aA.exports=(i,o,f)=>{f=E0({position:"end",preferTruncationOnSpace:!1},f);let{position:p,space:E,preferTruncationOnSpace:t}=f,k="\u2026",L=1;if(typeof i!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof i}`);if(typeof o!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof o}`);if(o<1)return"";if(o===1)return k;let N=IX(i);if(N<=o)return i;if(p==="start"){if(t){let C=D4(i,N-o+1,!0);return k+pd(i,C,N).trim()}return E===!0&&(k+=" ",L=2),k+pd(i,N-o+L,N)}if(p==="middle"){E===!0&&(k=" "+k+" ",L=3);let C=Math.floor(o/2);if(t){let U=D4(i,C),q=D4(i,N-(o-C)+1,!0);return pd(i,0,U)+k+pd(i,q,N).trim()}return pd(i,0,C)+k+pd(i,N-(o-C)+L,N)}if(p==="end"){if(t){let C=D4(i,o-1);return pd(i,0,C)+k}return E===!0&&(k=" "+k,L=2),pd(i,0,o-L)+k}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${p}`)}});var kw=ce(_g=>{"use strict";var cA=_g&&_g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(_g,"__esModule",{value:!0});var BX=cA(tA()),UX=cA(fA()),Ow={};_g.default=(i,o,f)=>{let p=i+String(o)+String(f);if(Ow[p])return Ow[p];let E=i;if(f==="wrap"&&(E=BX.default(i,o,{trim:!1,hard:!0})),f.startsWith("truncate")){let t="end";f==="truncate-middle"&&(t="middle"),f==="truncate-start"&&(t="start"),E=UX.default(i,o,{position:t})}return Ow[p]=E,E}});var Nw=ce(Mw=>{"use strict";Object.defineProperty(Mw,"__esModule",{value:!0});var dA=i=>{let o="";if(i.childNodes.length>0)for(let f of i.childNodes){let p="";f.nodeName==="#text"?p=f.nodeValue:((f.nodeName==="ink-text"||f.nodeName==="ink-virtual-text")&&(p=dA(f)),p.length>0&&typeof f.internal_transform=="function"&&(p=f.internal_transform(p))),o+=p}return o};Mw.default=dA});var Lw=ce(l0=>{"use strict";var Eg=l0&&l0.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(l0,"__esModule",{value:!0});l0.setTextNodeValue=l0.createTextNode=l0.setStyle=l0.setAttribute=l0.removeChildNode=l0.insertBeforeNode=l0.appendChildNode=l0.createNode=l0.TEXT_NAME=void 0;var jX=Eg(eh()),pA=Eg(B9()),zX=Eg(U9()),qX=Eg(kw()),HX=Eg(Nw());l0.TEXT_NAME="#text";l0.createNode=i=>{var o;let f={nodeName:i,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:i==="ink-virtual-text"?void 0:jX.default.Node.create()};return i==="ink-text"&&((o=f.yogaNode)===null||o===void 0||o.setMeasureFunc(WX.bind(null,f))),f};l0.appendChildNode=(i,o)=>{var f;o.parentNode&&l0.removeChildNode(o.parentNode,o),o.parentNode=i,i.childNodes.push(o),o.yogaNode&&((f=i.yogaNode)===null||f===void 0||f.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.insertBeforeNode=(i,o,f)=>{var p,E;o.parentNode&&l0.removeChildNode(o.parentNode,o),o.parentNode=i;let t=i.childNodes.indexOf(f);if(t>=0){i.childNodes.splice(t,0,o),o.yogaNode&&((p=i.yogaNode)===null||p===void 0||p.insertChild(o.yogaNode,t));return}i.childNodes.push(o),o.yogaNode&&((E=i.yogaNode)===null||E===void 0||E.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.removeChildNode=(i,o)=>{var f,p;o.yogaNode&&((p=(f=o.parentNode)===null||f===void 0?void 0:f.yogaNode)===null||p===void 0||p.removeChild(o.yogaNode)),o.parentNode=null;let E=i.childNodes.indexOf(o);E>=0&&i.childNodes.splice(E,1),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.setAttribute=(i,o,f)=>{i.attributes[o]=f};l0.setStyle=(i,o)=>{i.style=o,i.yogaNode&&zX.default(i.yogaNode,o)};l0.createTextNode=i=>{let o={nodeName:"#text",nodeValue:i,yogaNode:void 0,parentNode:null,style:{}};return l0.setTextNodeValue(o,i),o};var WX=function(i,o){var f,p;let E=i.nodeName==="#text"?i.nodeValue:HX.default(i),t=pA.default(E);if(t.width<=o||t.width>=1&&o>0&&o<1)return t;let k=(p=(f=i.style)===null||f===void 0?void 0:f.textWrap)!==null&&p!==void 0?p:"wrap",L=qX.default(E,o,k);return pA.default(L)},hA=i=>{var o;if(!(!i||!i.parentNode))return(o=i.yogaNode)!==null&&o!==void 0?o:hA(i.parentNode)},w4=i=>{let o=hA(i);o==null||o.markDirty()};l0.setTextNodeValue=(i,o)=>{typeof o!="string"&&(o=String(o)),i.nodeValue=o,w4(i)}});var th=ce((cre,vA)=>{"use strict";vA.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var Dg=ce((dre,Fw)=>{"use strict";var{EMPTY_BUFFER:VX}=th();function mA(i,o){if(i.length===0)return VX;if(i.length===1)return i[0];let f=Buffer.allocUnsafe(o),p=0;for(let E=0;E{"use strict";var DA=Symbol("kDone"),bw=Symbol("kRun"),wA=class{constructor(o){this[DA]=()=>{this.pending--,this[bw]()},this.concurrency=o||Infinity,this.jobs=[],this.pending=0}add(o){this.jobs.push(o),this[bw]()}[bw](){if(this.pending!==this.concurrency&&this.jobs.length){let o=this.jobs.shift();this.pending++,o(this[DA])}}};EA.exports=wA});var Tg=ce((hre,TA)=>{"use strict";var wg=require("zlib"),CA=Dg(),GX=SA(),{kStatusCode:xA,NOOP:YX}=th(),KX=Buffer.from([0,0,255,255]),T4=Symbol("permessage-deflate"),G1=Symbol("total-length"),Sg=Symbol("callback"),hd=Symbol("buffers"),Pw=Symbol("error"),C4,AA=class{constructor(o,f,p){if(this._maxPayload=p|0,this._options=o||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!f,this._deflate=null,this._inflate=null,this.params=null,!C4){let E=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;C4=new GX(E)}}static get extensionName(){return"permessage-deflate"}offer(){let o={};return this._options.serverNoContextTakeover&&(o.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(o.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(o.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?o.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(o.client_max_window_bits=!0),o}accept(o){return o=this.normalizeParams(o),this.params=this._isServer?this.acceptAsServer(o):this.acceptAsClient(o),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let o=this._deflate[Sg];this._deflate.close(),this._deflate=null,o&&o(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(o){let f=this._options,p=o.find(E=>!(f.serverNoContextTakeover===!1&&E.server_no_context_takeover||E.server_max_window_bits&&(f.serverMaxWindowBits===!1||typeof f.serverMaxWindowBits=="number"&&f.serverMaxWindowBits>E.server_max_window_bits)||typeof f.clientMaxWindowBits=="number"&&!E.client_max_window_bits));if(!p)throw new Error("None of the extension offers can be accepted");return f.serverNoContextTakeover&&(p.server_no_context_takeover=!0),f.clientNoContextTakeover&&(p.client_no_context_takeover=!0),typeof f.serverMaxWindowBits=="number"&&(p.server_max_window_bits=f.serverMaxWindowBits),typeof f.clientMaxWindowBits=="number"?p.client_max_window_bits=f.clientMaxWindowBits:(p.client_max_window_bits===!0||f.clientMaxWindowBits===!1)&&delete p.client_max_window_bits,p}acceptAsClient(o){let f=o[0];if(this._options.clientNoContextTakeover===!1&&f.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!f.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(f.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&f.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return f}normalizeParams(o){return o.forEach(f=>{Object.keys(f).forEach(p=>{let E=f[p];if(E.length>1)throw new Error(`Parameter "${p}" must have only a single value`);if(E=E[0],p==="client_max_window_bits"){if(E!==!0){let t=+E;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${p}": ${E}`);E=t}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${p}": ${E}`)}else if(p==="server_max_window_bits"){let t=+E;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${p}": ${E}`);E=t}else if(p==="client_no_context_takeover"||p==="server_no_context_takeover"){if(E!==!0)throw new TypeError(`Invalid value for parameter "${p}": ${E}`)}else throw new Error(`Unknown parameter "${p}"`);f[p]=E})}),o}decompress(o,f,p){C4.add(E=>{this._decompress(o,f,(t,k)=>{E(),p(t,k)})})}compress(o,f,p){C4.add(E=>{this._compress(o,f,(t,k)=>{E(),p(t,k)})})}_decompress(o,f,p){let E=this._isServer?"client":"server";if(!this._inflate){let t=`${E}_max_window_bits`,k=typeof this.params[t]!="number"?wg.Z_DEFAULT_WINDOWBITS:this.params[t];this._inflate=wg.createInflateRaw(Gf(E0({},this._options.zlibInflateOptions),{windowBits:k})),this._inflate[T4]=this,this._inflate[G1]=0,this._inflate[hd]=[],this._inflate.on("error",QX),this._inflate.on("data",RA)}this._inflate[Sg]=p,this._inflate.write(o),f&&this._inflate.write(KX),this._inflate.flush(()=>{let t=this._inflate[Pw];if(t){this._inflate.close(),this._inflate=null,p(t);return}let k=CA.concat(this._inflate[hd],this._inflate[G1]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[G1]=0,this._inflate[hd]=[],f&&this.params[`${E}_no_context_takeover`]&&this._inflate.reset()),p(null,k)})}_compress(o,f,p){let E=this._isServer?"server":"client";if(!this._deflate){let t=`${E}_max_window_bits`,k=typeof this.params[t]!="number"?wg.Z_DEFAULT_WINDOWBITS:this.params[t];this._deflate=wg.createDeflateRaw(Gf(E0({},this._options.zlibDeflateOptions),{windowBits:k})),this._deflate[G1]=0,this._deflate[hd]=[],this._deflate.on("error",YX),this._deflate.on("data",XX)}this._deflate[Sg]=p,this._deflate.write(o),this._deflate.flush(wg.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let t=CA.concat(this._deflate[hd],this._deflate[G1]);f&&(t=t.slice(0,t.length-4)),this._deflate[Sg]=null,this._deflate[G1]=0,this._deflate[hd]=[],f&&this.params[`${E}_no_context_takeover`]&&this._deflate.reset(),p(null,t)})}};TA.exports=AA;function XX(i){this[hd].push(i),this[G1]+=i.length}function RA(i){if(this[G1]+=i.length,this[T4]._maxPayload<1||this[G1]<=this[T4]._maxPayload){this[hd].push(i);return}this[Pw]=new RangeError("Max payload size exceeded"),this[Pw][xA]=1009,this.removeListener("data",RA),this.reset()}function QX(i){this[T4]._inflate=null,i[xA]=1007,this[Sg](i)}});var Bw=ce((vre,Iw)=>{"use strict";function OA(i){return i>=1e3&&i<=1014&&i!==1004&&i!==1005&&i!==1006||i>=3e3&&i<=4999}function kA(i){let o=i.length,f=0;for(;f=o||(i[f+1]&192)!=128||(i[f+2]&192)!=128||i[f]===224&&(i[f+1]&224)==128||i[f]===237&&(i[f+1]&224)==160)return!1;f+=3}else if((i[f]&248)==240){if(f+3>=o||(i[f+1]&192)!=128||(i[f+2]&192)!=128||(i[f+3]&192)!=128||i[f]===240&&(i[f+1]&240)==128||i[f]===244&&i[f+1]>143||i[f]>244)return!1;f+=4}else return!1;return!0}try{let i=require("utf-8-validate");typeof i=="object"&&(i=i.Validation.isValidUTF8),Iw.exports={isValidStatusCode:OA,isValidUTF8(o){return o.length<150?kA(o):i(o)}}}catch(i){Iw.exports={isValidStatusCode:OA,isValidUTF8:kA}}});var zw=ce((mre,MA)=>{"use strict";var{Writable:JX}=require("stream"),NA=Tg(),{BINARY_TYPES:ZX,EMPTY_BUFFER:$X,kStatusCode:eQ,kWebSocket:tQ}=th(),{concat:Uw,toArrayBuffer:nQ,unmask:rQ}=Dg(),{isValidStatusCode:iQ,isValidUTF8:LA}=Bw(),Cg=0,FA=1,bA=2,PA=3,jw=4,uQ=5,IA=class extends JX{constructor(o,f,p,E){super();this._binaryType=o||ZX[0],this[tQ]=void 0,this._extensions=f||{},this._isServer=!!p,this._maxPayload=E|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=Cg,this._loop=!1}_write(o,f,p){if(this._opcode===8&&this._state==Cg)return p();this._bufferedBytes+=o.length,this._buffers.push(o),this.startLoop(p)}consume(o){if(this._bufferedBytes-=o,o===this._buffers[0].length)return this._buffers.shift();if(o=p.length?f.set(this._buffers.shift(),E):(f.set(new Uint8Array(p.buffer,p.byteOffset,o),E),this._buffers[0]=p.slice(o)),o-=p.length}while(o>0);return f}startLoop(o){let f;this._loop=!0;do switch(this._state){case Cg:f=this.getInfo();break;case FA:f=this.getPayloadLength16();break;case bA:f=this.getPayloadLength64();break;case PA:this.getMask();break;case jw:f=this.getData(o);break;default:this._loop=!1;return}while(this._loop);o(f)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let o=this.consume(2);if((o[0]&48)!=0)return this._loop=!1,Ho(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let f=(o[0]&64)==64;if(f&&!this._extensions[NA.extensionName])return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(o[0]&128)==128,this._opcode=o[0]&15,this._payloadLength=o[1]&127,this._opcode===0){if(f)return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,Ho(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,Ho(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=f}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,Ho(RangeError,"FIN must be set",!0,1002);if(f)return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,Ho(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,Ho(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(o[1]&128)==128,this._isServer){if(!this._masked)return this._loop=!1,Ho(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,Ho(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=FA;else if(this._payloadLength===127)this._state=bA;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let o=this.consume(8),f=o.readUInt32BE(0);return f>Math.pow(2,53-32)-1?(this._loop=!1,Ho(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=f*Math.pow(2,32)+o.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Ho(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=PA:this._state=jw}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=jw}getData(o){let f=$X;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(f);if(this._compressed){this._state=uQ,this.decompress(f,o);return}return f.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(f)),this.dataMessage()}decompress(o,f){this._extensions[NA.extensionName].decompress(o,this._fin,(E,t)=>{if(E)return f(E);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return f(Ho(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(t)}let k=this.dataMessage();if(k)return f(k);this.startLoop(f)})}dataMessage(){if(this._fin){let o=this._messageLength,f=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let p;this._binaryType==="nodebuffer"?p=Uw(f,o):this._binaryType==="arraybuffer"?p=nQ(Uw(f,o)):p=f,this.emit("message",p)}else{let p=Uw(f,o);if(!LA(p))return this._loop=!1,Ho(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",p.toString())}}this._state=Cg}controlMessage(o){if(this._opcode===8)if(this._loop=!1,o.length===0)this.emit("conclude",1005,""),this.end();else{if(o.length===1)return Ho(RangeError,"invalid payload length 1",!0,1002);{let f=o.readUInt16BE(0);if(!iQ(f))return Ho(RangeError,`invalid status code ${f}`,!0,1002);let p=o.slice(2);if(!LA(p))return Ho(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",f,p.toString()),this.end()}}else this._opcode===9?this.emit("ping",o):this.emit("pong",o);this._state=Cg}};MA.exports=IA;function Ho(i,o,f,p){let E=new i(f?`Invalid WebSocket frame: ${o}`:o);return Error.captureStackTrace(E,Ho),E[eQ]=p,E}});var qw=ce((yre,BA)=>{"use strict";var{randomFillSync:oQ}=require("crypto"),UA=Tg(),{EMPTY_BUFFER:lQ}=th(),{isValidStatusCode:sQ}=Bw(),{mask:jA,toBuffer:Y1}=Dg(),nh=Buffer.alloc(4),K1=class{constructor(o,f){this._extensions=f||{},this._socket=o,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(o,f){let p=f.mask&&f.readOnly,E=f.mask?6:2,t=o.length;o.length>=65536?(E+=8,t=127):o.length>125&&(E+=2,t=126);let k=Buffer.allocUnsafe(p?o.length+E:E);return k[0]=f.fin?f.opcode|128:f.opcode,f.rsv1&&(k[0]|=64),k[1]=t,t===126?k.writeUInt16BE(o.length,2):t===127&&(k.writeUInt32BE(0,2),k.writeUInt32BE(o.length,6)),f.mask?(oQ(nh,0,4),k[1]|=128,k[E-4]=nh[0],k[E-3]=nh[1],k[E-2]=nh[2],k[E-1]=nh[3],p?(jA(o,nh,k,E,o.length),[k]):(jA(o,nh,o,0,o.length),[k,o])):[k,o]}close(o,f,p,E){let t;if(o===void 0)t=lQ;else{if(typeof o!="number"||!sQ(o))throw new TypeError("First argument must be a valid error code number");if(f===void 0||f==="")t=Buffer.allocUnsafe(2),t.writeUInt16BE(o,0);else{let k=Buffer.byteLength(f);if(k>123)throw new RangeError("The message must not be greater than 123 bytes");t=Buffer.allocUnsafe(2+k),t.writeUInt16BE(o,0),t.write(f,2)}}this._deflating?this.enqueue([this.doClose,t,p,E]):this.doClose(t,p,E)}doClose(o,f,p){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:8,mask:f,readOnly:!1}),p)}ping(o,f,p){let E=Y1(o);if(E.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,E,f,Y1.readOnly,p]):this.doPing(E,f,Y1.readOnly,p)}doPing(o,f,p,E){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:9,mask:f,readOnly:p}),E)}pong(o,f,p){let E=Y1(o);if(E.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,E,f,Y1.readOnly,p]):this.doPong(E,f,Y1.readOnly,p)}doPong(o,f,p,E){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:10,mask:f,readOnly:p}),E)}send(o,f,p){let E=Y1(o),t=this._extensions[UA.extensionName],k=f.binary?2:1,L=f.compress;if(this._firstFragment?(this._firstFragment=!1,L&&t&&(L=E.length>=t._threshold),this._compress=L):(L=!1,k=0),f.fin&&(this._firstFragment=!0),t){let N={fin:f.fin,rsv1:L,opcode:k,mask:f.mask,readOnly:Y1.readOnly};this._deflating?this.enqueue([this.dispatch,E,this._compress,N,p]):this.dispatch(E,this._compress,N,p)}else this.sendFrame(K1.frame(E,{fin:f.fin,rsv1:!1,opcode:k,mask:f.mask,readOnly:Y1.readOnly}),p)}dispatch(o,f,p,E){if(!f){this.sendFrame(K1.frame(o,p),E);return}let t=this._extensions[UA.extensionName];this._bufferedBytes+=o.length,this._deflating=!0,t.compress(o,p.fin,(k,L)=>{if(this._socket.destroyed){let N=new Error("The socket was closed while data was being compressed");typeof E=="function"&&E(N);for(let C=0;C{"use strict";var xg=class{constructor(o,f){this.target=f,this.type=o}},qA=class extends xg{constructor(o,f){super("message",f);this.data=o}},HA=class extends xg{constructor(o,f,p){super("close",p);this.wasClean=p._closeFrameReceived&&p._closeFrameSent,this.reason=f,this.code=o}},WA=class extends xg{constructor(o){super("open",o)}},VA=class extends xg{constructor(o,f){super("error",f);this.message=o.message,this.error=o}},aQ={addEventListener(i,o,f){if(typeof o!="function")return;function p(N){o.call(this,new qA(N,this))}function E(N,C){o.call(this,new HA(N,C,this))}function t(N){o.call(this,new VA(N,this))}function k(){o.call(this,new WA(this))}let L=f&&f.once?"once":"on";i==="message"?(p._listener=o,this[L](i,p)):i==="close"?(E._listener=o,this[L](i,E)):i==="error"?(t._listener=o,this[L](i,t)):i==="open"?(k._listener=o,this[L](i,k)):this[L](i,o)},removeEventListener(i,o){let f=this.listeners(i);for(let p=0;p{"use strict";var Ag=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Pc(i,o,f){i[o]===void 0?i[o]=[f]:i[o].push(f)}function fQ(i){let o=Object.create(null);if(i===void 0||i==="")return o;let f=Object.create(null),p=!1,E=!1,t=!1,k,L,N=-1,C=-1,U=0;for(;U{let f=i[o];return Array.isArray(f)||(f=[f]),f.map(p=>[o].concat(Object.keys(p).map(E=>{let t=p[E];return Array.isArray(t)||(t=[t]),t.map(k=>k===!0?E:`${E}=${k}`).join("; ")})).join("; ")).join(", ")}).join(", ")}YA.exports={format:cQ,parse:fQ}});var Kw=ce((Ere,KA)=>{"use strict";var dQ=require("events"),pQ=require("https"),hQ=require("http"),XA=require("net"),vQ=require("tls"),{randomBytes:mQ,createHash:yQ}=require("crypto"),{URL:Ww}=require("url"),vd=Tg(),gQ=zw(),_Q=qw(),{BINARY_TYPES:QA,EMPTY_BUFFER:Vw,GUID:EQ,kStatusCode:DQ,kWebSocket:Qs,NOOP:JA}=th(),{addEventListener:wQ,removeEventListener:SQ}=GA(),{format:TQ,parse:CQ}=Hw(),{toBuffer:xQ}=Dg(),ZA=["CONNECTING","OPEN","CLOSING","CLOSED"],Gw=[8,13],AQ=30*1e3,Bi=class extends dQ{constructor(o,f,p){super();this._binaryType=QA[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=Bi.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,o!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(f)?f=f.join(", "):typeof f=="object"&&f!==null&&(p=f,f=void 0),$A(this,o,f,p)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(o){!QA.includes(o)||(this._binaryType=o,this._receiver&&(this._receiver._binaryType=o))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(o,f,p){let E=new gQ(this.binaryType,this._extensions,this._isServer,p);this._sender=new _Q(o,this._extensions),this._receiver=E,this._socket=o,E[Qs]=this,o[Qs]=this,E.on("conclude",RQ),E.on("drain",OQ),E.on("error",kQ),E.on("message",MQ),E.on("ping",NQ),E.on("pong",LQ),o.setTimeout(0),o.setNoDelay(),f.length>0&&o.unshift(f),o.on("close",eR),o.on("data",x4),o.on("end",tR),o.on("error",nR),this._readyState=Bi.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=Bi.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[vd.extensionName]&&this._extensions[vd.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=Bi.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(o,f){if(this.readyState!==Bi.CLOSED){if(this.readyState===Bi.CONNECTING){let p="WebSocket was closed before the connection was established";return X1(this,this._req,p)}if(this.readyState===Bi.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=Bi.CLOSING,this._sender.close(o,f,!this._isServer,p=>{p||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),AQ)}}ping(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(p=o,o=f=void 0):typeof f=="function"&&(p=f,f=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}f===void 0&&(f=!this._isServer),this._sender.ping(o||Vw,f,p)}pong(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(p=o,o=f=void 0):typeof f=="function"&&(p=f,f=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}f===void 0&&(f=!this._isServer),this._sender.pong(o||Vw,f,p)}send(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof f=="function"&&(p=f,f={}),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}let E=E0({binary:typeof o!="string",mask:!this._isServer,compress:!0,fin:!0},f);this._extensions[vd.extensionName]||(E.compress=!1),this._sender.send(o||Vw,E,p)}terminate(){if(this.readyState!==Bi.CLOSED){if(this.readyState===Bi.CONNECTING){let o="WebSocket was closed before the connection was established";return X1(this,this._req,o)}this._socket&&(this._readyState=Bi.CLOSING,this._socket.destroy())}}};ZA.forEach((i,o)=>{let f={enumerable:!0,value:o};Object.defineProperty(Bi.prototype,i,f),Object.defineProperty(Bi,i,f)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(i=>{Object.defineProperty(Bi.prototype,i,{enumerable:!0})});["open","error","close","message"].forEach(i=>{Object.defineProperty(Bi.prototype,`on${i}`,{configurable:!0,enumerable:!0,get(){let o=this.listeners(i);for(let f=0;f{X1(i,W,"Opening handshake has timed out")}),W.on("error",ne=>{W===null||W.aborted||(W=i._req=null,i._readyState=Bi.CLOSING,i.emit("error",ne),i.emitClose())}),W.on("response",ne=>{let m=ne.headers.location,we=ne.statusCode;if(m&&E.followRedirects&&we>=300&&we<400){if(++i._redirects>E.maxRedirects){X1(i,W,"Maximum redirects exceeded");return}W.abort();let Se=new Ww(m,o);$A(i,Se,f,p)}else i.emit("unexpected-response",W,ne)||X1(i,W,`Unexpected server response: ${ne.statusCode}`)}),W.on("upgrade",(ne,m,we)=>{if(i.emit("upgrade",ne),i.readyState!==Bi.CONNECTING)return;W=i._req=null;let Se=yQ("sha1").update(C+EQ).digest("base64");if(ne.headers["sec-websocket-accept"]!==Se){X1(i,m,"Invalid Sec-WebSocket-Accept header");return}let he=ne.headers["sec-websocket-protocol"],ge=(f||"").split(/, */),ze;if(!f&&he?ze="Server sent a subprotocol but none was requested":f&&!he?ze="Server sent no subprotocol":he&&!ge.includes(he)&&(ze="Server sent an invalid subprotocol"),ze){X1(i,m,ze);return}if(he&&(i._protocol=he),q)try{let pe=CQ(ne.headers["sec-websocket-extensions"]);pe[vd.extensionName]&&(q.accept(pe[vd.extensionName]),i._extensions[vd.extensionName]=q)}catch(pe){X1(i,m,"Invalid Sec-WebSocket-Extensions header");return}i.setSocket(m,we,E.maxPayload)})}function FQ(i){return i.path=i.socketPath,XA.connect(i)}function bQ(i){return i.path=void 0,!i.servername&&i.servername!==""&&(i.servername=XA.isIP(i.host)?"":i.host),vQ.connect(i)}function X1(i,o,f){i._readyState=Bi.CLOSING;let p=new Error(f);Error.captureStackTrace(p,X1),o.setHeader?(o.abort(),o.socket&&!o.socket.destroyed&&o.socket.destroy(),o.once("abort",i.emitClose.bind(i)),i.emit("error",p)):(o.destroy(p),o.once("error",i.emit.bind(i,"error")),o.once("close",i.emitClose.bind(i)))}function Yw(i,o,f){if(o){let p=xQ(o).length;i._socket?i._sender._bufferedBytes+=p:i._bufferedAmount+=p}if(f){let p=new Error(`WebSocket is not open: readyState ${i.readyState} (${ZA[i.readyState]})`);f(p)}}function RQ(i,o){let f=this[Qs];f._socket.removeListener("data",x4),f._socket.resume(),f._closeFrameReceived=!0,f._closeMessage=o,f._closeCode=i,i===1005?f.close():f.close(i,o)}function OQ(){this[Qs]._socket.resume()}function kQ(i){let o=this[Qs];o._socket.removeListener("data",x4),o._readyState=Bi.CLOSING,o._closeCode=i[DQ],o.emit("error",i),o._socket.destroy()}function rR(){this[Qs].emitClose()}function MQ(i){this[Qs].emit("message",i)}function NQ(i){let o=this[Qs];o.pong(i,!o._isServer,JA),o.emit("ping",i)}function LQ(i){this[Qs].emit("pong",i)}function eR(){let i=this[Qs];this.removeListener("close",eR),this.removeListener("end",tR),i._readyState=Bi.CLOSING,i._socket.read(),i._receiver.end(),this.removeListener("data",x4),this[Qs]=void 0,clearTimeout(i._closeTimer),i._receiver._writableState.finished||i._receiver._writableState.errorEmitted?i.emitClose():(i._receiver.on("error",rR),i._receiver.on("finish",rR))}function x4(i){this[Qs]._receiver.write(i)||this.pause()}function tR(){let i=this[Qs];i._readyState=Bi.CLOSING,i._receiver.end(),this.end()}function nR(){let i=this[Qs];this.removeListener("error",nR),this.on("error",JA),i&&(i._readyState=Bi.CLOSING,this.destroy())}});var lR=ce((Dre,iR)=>{"use strict";var{Duplex:PQ}=require("stream");function uR(i){i.emit("close")}function IQ(){!this.destroyed&&this._writableState.finished&&this.destroy()}function oR(i){this.removeListener("error",oR),this.destroy(),this.listenerCount("error")===0&&this.emit("error",i)}function BQ(i,o){let f=!0;function p(){f&&i._socket.resume()}i.readyState===i.CONNECTING?i.once("open",function(){i._receiver.removeAllListeners("drain"),i._receiver.on("drain",p)}):(i._receiver.removeAllListeners("drain"),i._receiver.on("drain",p));let E=new PQ(Gf(E0({},o),{autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1}));return i.on("message",function(k){E.push(k)||(f=!1,i._socket.pause())}),i.once("error",function(k){E.destroyed||E.destroy(k)}),i.once("close",function(){E.destroyed||E.push(null)}),E._destroy=function(t,k){if(i.readyState===i.CLOSED){k(t),process.nextTick(uR,E);return}let L=!1;i.once("error",function(C){L=!0,k(C)}),i.once("close",function(){L||k(t),process.nextTick(uR,E)}),i.terminate()},E._final=function(t){if(i.readyState===i.CONNECTING){i.once("open",function(){E._final(t)});return}i._socket!==null&&(i._socket._writableState.finished?(t(),E._readableState.endEmitted&&E.destroy()):(i._socket.once("finish",function(){t()}),i.close()))},E._read=function(){i.readyState===i.OPEN&&!f&&(f=!0,i._receiver._writableState.needDrain||i._socket.resume())},E._write=function(t,k,L){if(i.readyState===i.CONNECTING){i.once("open",function(){E._write(t,k,L)});return}i.send(t,L)},E.on("end",IQ),E.on("error",oR),E}iR.exports=BQ});var fR=ce((wre,sR)=>{"use strict";var UQ=require("events"),{createHash:jQ}=require("crypto"),{createServer:zQ,STATUS_CODES:Xw}=require("http"),rh=Tg(),qQ=Kw(),{format:HQ,parse:WQ}=Hw(),{GUID:VQ,kWebSocket:GQ}=th(),YQ=/^[+/0-9A-Za-z]{22}==$/,aR=class extends UQ{constructor(o,f){super();if(o=E0({maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},o),o.port==null&&!o.server&&!o.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(o.port!=null?(this._server=zQ((p,E)=>{let t=Xw[426];E.writeHead(426,{"Content-Length":t.length,"Content-Type":"text/plain"}),E.end(t)}),this._server.listen(o.port,o.host,o.backlog,f)):o.server&&(this._server=o.server),this._server){let p=this.emit.bind(this,"connection");this._removeListeners=KQ(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(E,t,k)=>{this.handleUpgrade(E,t,k,p)}})}o.perMessageDeflate===!0&&(o.perMessageDeflate={}),o.clientTracking&&(this.clients=new Set),this.options=o}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(o){if(o&&this.once("close",o),this.clients)for(let p of this.clients)p.terminate();let f=this._server;if(f&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){f.close(()=>this.emit("close"));return}process.nextTick(XQ,this)}shouldHandle(o){if(this.options.path){let f=o.url.indexOf("?");if((f!==-1?o.url.slice(0,f):o.url)!==this.options.path)return!1}return!0}handleUpgrade(o,f,p,E){f.on("error",Qw);let t=o.headers["sec-websocket-key"]!==void 0?o.headers["sec-websocket-key"].trim():!1,k=+o.headers["sec-websocket-version"],L={};if(o.method!=="GET"||o.headers.upgrade.toLowerCase()!=="websocket"||!t||!YQ.test(t)||k!==8&&k!==13||!this.shouldHandle(o))return A4(f,400);if(this.options.perMessageDeflate){let N=new rh(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let C=WQ(o.headers["sec-websocket-extensions"]);C[rh.extensionName]&&(N.accept(C[rh.extensionName]),L[rh.extensionName]=N)}catch(C){return A4(f,400)}}if(this.options.verifyClient){let N={origin:o.headers[`${k===8?"sec-websocket-origin":"origin"}`],secure:!!(o.socket.authorized||o.socket.encrypted),req:o};if(this.options.verifyClient.length===2){this.options.verifyClient(N,(C,U,q,W)=>{if(!C)return A4(f,U||401,q,W);this.completeUpgrade(t,L,o,f,p,E)});return}if(!this.options.verifyClient(N))return A4(f,401)}this.completeUpgrade(t,L,o,f,p,E)}completeUpgrade(o,f,p,E,t,k){if(!E.readable||!E.writable)return E.destroy();if(E[GQ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let L=jQ("sha1").update(o+VQ).digest("base64"),N=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${L}`],C=new qQ(null),U=p.headers["sec-websocket-protocol"];if(U&&(U=U.split(",").map(QQ),this.options.handleProtocols?U=this.options.handleProtocols(U,p):U=U[0],U&&(N.push(`Sec-WebSocket-Protocol: ${U}`),C._protocol=U)),f[rh.extensionName]){let q=f[rh.extensionName].params,W=HQ({[rh.extensionName]:[q]});N.push(`Sec-WebSocket-Extensions: ${W}`),C._extensions=f}this.emit("headers",N,p),E.write(N.concat(`\r +`).join(`\r +`)),E.removeListener("error",Qw),C.setSocket(E,t,this.options.maxPayload),this.clients&&(this.clients.add(C),C.on("close",()=>this.clients.delete(C))),k(C,p)}};sR.exports=aR;function KQ(i,o){for(let f of Object.keys(o))i.on(f,o[f]);return function(){for(let p of Object.keys(o))i.removeListener(p,o[p])}}function XQ(i){i.emit("close")}function Qw(){this.destroy()}function A4(i,o,f,p){i.writable&&(f=f||Xw[o],p=E0({Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(f)},p),i.write(`HTTP/1.1 ${o} ${Xw[o]}\r +`+Object.keys(p).map(E=>`${E}: ${p[E]}`).join(`\r +`)+`\r +\r +`+f)),i.removeListener("error",Qw),i.destroy()}function QQ(i){return i.trim()}});var dR=ce((Sre,cR)=>{"use strict";var Rg=Kw();Rg.createWebSocketStream=lR();Rg.Server=fR();Rg.Receiver=zw();Rg.Sender=qw();cR.exports=Rg});var pR=ce(R4=>{"use strict";var JQ=R4&&R4.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(R4,"__esModule",{value:!0});var ZQ=JQ(dR()),Og=global;Og.WebSocket||(Og.WebSocket=ZQ.default);Og.window||(Og.window=global);Og.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var hR=ce((O4,Jw)=>{(function(i,o){typeof O4=="object"&&typeof Jw=="object"?Jw.exports=o():typeof define=="function"&&define.amd?define([],o):typeof O4=="object"?O4.ReactDevToolsBackend=o():i.ReactDevToolsBackend=o()})(window,function(){return function(i){var o={};function f(p){if(o[p])return o[p].exports;var E=o[p]={i:p,l:!1,exports:{}};return i[p].call(E.exports,E,E.exports,f),E.l=!0,E.exports}return f.m=i,f.c=o,f.d=function(p,E,t){f.o(p,E)||Object.defineProperty(p,E,{enumerable:!0,get:t})},f.r=function(p){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(p,"__esModule",{value:!0})},f.t=function(p,E){if(1&E&&(p=f(p)),8&E||4&E&&typeof p=="object"&&p&&p.__esModule)return p;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:p}),2&E&&typeof p!="string")for(var k in p)f.d(t,k,function(L){return p[L]}.bind(null,k));return t},f.n=function(p){var E=p&&p.__esModule?function(){return p.default}:function(){return p};return f.d(E,"a",E),E},f.o=function(p,E){return Object.prototype.hasOwnProperty.call(p,E)},f.p="",f(f.s=20)}([function(i,o,f){"use strict";i.exports=f(12)},function(i,o,f){"use strict";var p=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function k(L){if(L==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(L)}i.exports=function(){try{if(!Object.assign)return!1;var L=new String("abc");if(L[5]="de",Object.getOwnPropertyNames(L)[0]==="5")return!1;for(var N={},C=0;C<10;C++)N["_"+String.fromCharCode(C)]=C;if(Object.getOwnPropertyNames(N).map(function(q){return N[q]}).join("")!=="0123456789")return!1;var U={};return"abcdefghijklmnopqrst".split("").forEach(function(q){U[q]=q}),Object.keys(Object.assign({},U)).join("")==="abcdefghijklmnopqrst"}catch(q){return!1}}()?Object.assign:function(L,N){for(var C,U,q=k(L),W=1;W=le||en<0||$t&&At-Ke>=wt}function ue(){var At=Se();if(Ce(At))return je(At);$e=setTimeout(ue,function(en){var ln=le-(en-ft);return $t?we(ln,wt-(en-Ke)):ln}(At))}function je(At){return $e=void 0,at&&Ge?Q(At):(Ge=rt=void 0,xt)}function ct(){var At=Se(),en=Ce(At);if(Ge=arguments,rt=this,ft=At,en){if($e===void 0)return ae(ft);if($t)return $e=setTimeout(ue,le),Q(ft)}return $e===void 0&&($e=setTimeout(ue,le)),xt}return le=pe(le)||0,ge(Ue)&&(jt=!!Ue.leading,wt=($t="maxWait"in Ue)?m(pe(Ue.maxWait)||0,le):wt,at="trailing"in Ue?!!Ue.trailing:at),ct.cancel=function(){$e!==void 0&&clearTimeout($e),Ke=0,Ge=ft=rt=$e=void 0},ct.flush=function(){return $e===void 0?xt:je(Se())},ct}function ge(Oe){var le=E(Oe);return!!Oe&&(le=="object"||le=="function")}function ze(Oe){return E(Oe)=="symbol"||function(le){return!!le&&E(le)=="object"}(Oe)&&ne.call(Oe)=="[object Symbol]"}function pe(Oe){if(typeof Oe=="number")return Oe;if(ze(Oe))return NaN;if(ge(Oe)){var le=typeof Oe.valueOf=="function"?Oe.valueOf():Oe;Oe=ge(le)?le+"":le}if(typeof Oe!="string")return Oe===0?Oe:+Oe;Oe=Oe.replace(t,"");var Ue=L.test(Oe);return Ue||N.test(Oe)?C(Oe.slice(2),Ue?2:8):k.test(Oe)?NaN:+Oe}i.exports=function(Oe,le,Ue){var Ge=!0,rt=!0;if(typeof Oe!="function")throw new TypeError("Expected a function");return ge(Ue)&&(Ge="leading"in Ue?!!Ue.leading:Ge,rt="trailing"in Ue?!!Ue.trailing:rt),he(Oe,le,{leading:Ge,maxWait:le,trailing:rt})}}).call(this,f(4))},function(i,o,f){(function(p){function E(Q){return(E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ae){return typeof ae}:function(ae){return ae&&typeof Symbol=="function"&&ae.constructor===Symbol&&ae!==Symbol.prototype?"symbol":typeof ae})(Q)}var t;o=i.exports=m,t=(p===void 0?"undefined":E(p))==="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?function(){var Q=Array.prototype.slice.call(arguments,0);Q.unshift("SEMVER"),console.log.apply(console,Q)}:function(){},o.SEMVER_SPEC_VERSION="2.0.0";var k=Number.MAX_SAFE_INTEGER||9007199254740991,L=o.re=[],N=o.src=[],C=o.tokens={},U=0;function q(Q){C[Q]=U++}q("NUMERICIDENTIFIER"),N[C.NUMERICIDENTIFIER]="0|[1-9]\\d*",q("NUMERICIDENTIFIERLOOSE"),N[C.NUMERICIDENTIFIERLOOSE]="[0-9]+",q("NONNUMERICIDENTIFIER"),N[C.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",q("MAINVERSION"),N[C.MAINVERSION]="("+N[C.NUMERICIDENTIFIER]+")\\.("+N[C.NUMERICIDENTIFIER]+")\\.("+N[C.NUMERICIDENTIFIER]+")",q("MAINVERSIONLOOSE"),N[C.MAINVERSIONLOOSE]="("+N[C.NUMERICIDENTIFIERLOOSE]+")\\.("+N[C.NUMERICIDENTIFIERLOOSE]+")\\.("+N[C.NUMERICIDENTIFIERLOOSE]+")",q("PRERELEASEIDENTIFIER"),N[C.PRERELEASEIDENTIFIER]="(?:"+N[C.NUMERICIDENTIFIER]+"|"+N[C.NONNUMERICIDENTIFIER]+")",q("PRERELEASEIDENTIFIERLOOSE"),N[C.PRERELEASEIDENTIFIERLOOSE]="(?:"+N[C.NUMERICIDENTIFIERLOOSE]+"|"+N[C.NONNUMERICIDENTIFIER]+")",q("PRERELEASE"),N[C.PRERELEASE]="(?:-("+N[C.PRERELEASEIDENTIFIER]+"(?:\\."+N[C.PRERELEASEIDENTIFIER]+")*))",q("PRERELEASELOOSE"),N[C.PRERELEASELOOSE]="(?:-?("+N[C.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+N[C.PRERELEASEIDENTIFIERLOOSE]+")*))",q("BUILDIDENTIFIER"),N[C.BUILDIDENTIFIER]="[0-9A-Za-z-]+",q("BUILD"),N[C.BUILD]="(?:\\+("+N[C.BUILDIDENTIFIER]+"(?:\\."+N[C.BUILDIDENTIFIER]+")*))",q("FULL"),q("FULLPLAIN"),N[C.FULLPLAIN]="v?"+N[C.MAINVERSION]+N[C.PRERELEASE]+"?"+N[C.BUILD]+"?",N[C.FULL]="^"+N[C.FULLPLAIN]+"$",q("LOOSEPLAIN"),N[C.LOOSEPLAIN]="[v=\\s]*"+N[C.MAINVERSIONLOOSE]+N[C.PRERELEASELOOSE]+"?"+N[C.BUILD]+"?",q("LOOSE"),N[C.LOOSE]="^"+N[C.LOOSEPLAIN]+"$",q("GTLT"),N[C.GTLT]="((?:<|>)?=?)",q("XRANGEIDENTIFIERLOOSE"),N[C.XRANGEIDENTIFIERLOOSE]=N[C.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",q("XRANGEIDENTIFIER"),N[C.XRANGEIDENTIFIER]=N[C.NUMERICIDENTIFIER]+"|x|X|\\*",q("XRANGEPLAIN"),N[C.XRANGEPLAIN]="[v=\\s]*("+N[C.XRANGEIDENTIFIER]+")(?:\\.("+N[C.XRANGEIDENTIFIER]+")(?:\\.("+N[C.XRANGEIDENTIFIER]+")(?:"+N[C.PRERELEASE]+")?"+N[C.BUILD]+"?)?)?",q("XRANGEPLAINLOOSE"),N[C.XRANGEPLAINLOOSE]="[v=\\s]*("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:"+N[C.PRERELEASELOOSE]+")?"+N[C.BUILD]+"?)?)?",q("XRANGE"),N[C.XRANGE]="^"+N[C.GTLT]+"\\s*"+N[C.XRANGEPLAIN]+"$",q("XRANGELOOSE"),N[C.XRANGELOOSE]="^"+N[C.GTLT]+"\\s*"+N[C.XRANGEPLAINLOOSE]+"$",q("COERCE"),N[C.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",q("COERCERTL"),L[C.COERCERTL]=new RegExp(N[C.COERCE],"g"),q("LONETILDE"),N[C.LONETILDE]="(?:~>?)",q("TILDETRIM"),N[C.TILDETRIM]="(\\s*)"+N[C.LONETILDE]+"\\s+",L[C.TILDETRIM]=new RegExp(N[C.TILDETRIM],"g"),q("TILDE"),N[C.TILDE]="^"+N[C.LONETILDE]+N[C.XRANGEPLAIN]+"$",q("TILDELOOSE"),N[C.TILDELOOSE]="^"+N[C.LONETILDE]+N[C.XRANGEPLAINLOOSE]+"$",q("LONECARET"),N[C.LONECARET]="(?:\\^)",q("CARETTRIM"),N[C.CARETTRIM]="(\\s*)"+N[C.LONECARET]+"\\s+",L[C.CARETTRIM]=new RegExp(N[C.CARETTRIM],"g"),q("CARET"),N[C.CARET]="^"+N[C.LONECARET]+N[C.XRANGEPLAIN]+"$",q("CARETLOOSE"),N[C.CARETLOOSE]="^"+N[C.LONECARET]+N[C.XRANGEPLAINLOOSE]+"$",q("COMPARATORLOOSE"),N[C.COMPARATORLOOSE]="^"+N[C.GTLT]+"\\s*("+N[C.LOOSEPLAIN]+")$|^$",q("COMPARATOR"),N[C.COMPARATOR]="^"+N[C.GTLT]+"\\s*("+N[C.FULLPLAIN]+")$|^$",q("COMPARATORTRIM"),N[C.COMPARATORTRIM]="(\\s*)"+N[C.GTLT]+"\\s*("+N[C.LOOSEPLAIN]+"|"+N[C.XRANGEPLAIN]+")",L[C.COMPARATORTRIM]=new RegExp(N[C.COMPARATORTRIM],"g"),q("HYPHENRANGE"),N[C.HYPHENRANGE]="^\\s*("+N[C.XRANGEPLAIN]+")\\s+-\\s+("+N[C.XRANGEPLAIN]+")\\s*$",q("HYPHENRANGELOOSE"),N[C.HYPHENRANGELOOSE]="^\\s*("+N[C.XRANGEPLAINLOOSE]+")\\s+-\\s+("+N[C.XRANGEPLAINLOOSE]+")\\s*$",q("STAR"),N[C.STAR]="(<|>)?=?\\s*\\*";for(var W=0;W256||!(ae.loose?L[C.LOOSE]:L[C.FULL]).test(Q))return null;try{return new m(Q,ae)}catch(Ce){return null}}function m(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof m){if(Q.loose===ae.loose)return Q;Q=Q.version}else if(typeof Q!="string")throw new TypeError("Invalid Version: "+Q);if(Q.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof m))return new m(Q,ae);t("SemVer",Q,ae),this.options=ae,this.loose=!!ae.loose;var Ce=Q.trim().match(ae.loose?L[C.LOOSE]:L[C.FULL]);if(!Ce)throw new TypeError("Invalid Version: "+Q);if(this.raw=Q,this.major=+Ce[1],this.minor=+Ce[2],this.patch=+Ce[3],this.major>k||this.major<0)throw new TypeError("Invalid major version");if(this.minor>k||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>k||this.patch<0)throw new TypeError("Invalid patch version");Ce[4]?this.prerelease=Ce[4].split(".").map(function(ue){if(/^[0-9]+$/.test(ue)){var je=+ue;if(je>=0&&je=0;)typeof this.prerelease[Ce]=="number"&&(this.prerelease[Ce]++,Ce=-2);Ce===-1&&this.prerelease.push(0)}ae&&(this.prerelease[0]===ae?isNaN(this.prerelease[1])&&(this.prerelease=[ae,0]):this.prerelease=[ae,0]);break;default:throw new Error("invalid increment argument: "+Q)}return this.format(),this.raw=this.version,this},o.inc=function(Q,ae,Ce,ue){typeof Ce=="string"&&(ue=Ce,Ce=void 0);try{return new m(Q,Ce).inc(ae,ue).version}catch(je){return null}},o.diff=function(Q,ae){if(pe(Q,ae))return null;var Ce=ne(Q),ue=ne(ae),je="";if(Ce.prerelease.length||ue.prerelease.length){je="pre";var ct="prerelease"}for(var At in Ce)if((At==="major"||At==="minor"||At==="patch")&&Ce[At]!==ue[At])return je+At;return ct},o.compareIdentifiers=Se;var we=/^[0-9]+$/;function Se(Q,ae){var Ce=we.test(Q),ue=we.test(ae);return Ce&&ue&&(Q=+Q,ae=+ae),Q===ae?0:Ce&&!ue?-1:ue&&!Ce?1:Q0}function ze(Q,ae,Ce){return he(Q,ae,Ce)<0}function pe(Q,ae,Ce){return he(Q,ae,Ce)===0}function Oe(Q,ae,Ce){return he(Q,ae,Ce)!==0}function le(Q,ae,Ce){return he(Q,ae,Ce)>=0}function Ue(Q,ae,Ce){return he(Q,ae,Ce)<=0}function Ge(Q,ae,Ce,ue){switch(ae){case"===":return E(Q)==="object"&&(Q=Q.version),E(Ce)==="object"&&(Ce=Ce.version),Q===Ce;case"!==":return E(Q)==="object"&&(Q=Q.version),E(Ce)==="object"&&(Ce=Ce.version),Q!==Ce;case"":case"=":case"==":return pe(Q,Ce,ue);case"!=":return Oe(Q,Ce,ue);case">":return ge(Q,Ce,ue);case">=":return le(Q,Ce,ue);case"<":return ze(Q,Ce,ue);case"<=":return Ue(Q,Ce,ue);default:throw new TypeError("Invalid operator: "+ae)}}function rt(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof rt){if(Q.loose===!!ae.loose)return Q;Q=Q.value}if(!(this instanceof rt))return new rt(Q,ae);t("comparator",Q,ae),this.options=ae,this.loose=!!ae.loose,this.parse(Q),this.semver===wt?this.value="":this.value=this.operator+this.semver.version,t("comp",this)}o.rcompareIdentifiers=function(Q,ae){return Se(ae,Q)},o.major=function(Q,ae){return new m(Q,ae).major},o.minor=function(Q,ae){return new m(Q,ae).minor},o.patch=function(Q,ae){return new m(Q,ae).patch},o.compare=he,o.compareLoose=function(Q,ae){return he(Q,ae,!0)},o.compareBuild=function(Q,ae,Ce){var ue=new m(Q,Ce),je=new m(ae,Ce);return ue.compare(je)||ue.compareBuild(je)},o.rcompare=function(Q,ae,Ce){return he(ae,Q,Ce)},o.sort=function(Q,ae){return Q.sort(function(Ce,ue){return o.compareBuild(Ce,ue,ae)})},o.rsort=function(Q,ae){return Q.sort(function(Ce,ue){return o.compareBuild(ue,Ce,ae)})},o.gt=ge,o.lt=ze,o.eq=pe,o.neq=Oe,o.gte=le,o.lte=Ue,o.cmp=Ge,o.Comparator=rt;var wt={};function xt(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof xt)return Q.loose===!!ae.loose&&Q.includePrerelease===!!ae.includePrerelease?Q:new xt(Q.raw,ae);if(Q instanceof rt)return new xt(Q.value,ae);if(!(this instanceof xt))return new xt(Q,ae);if(this.options=ae,this.loose=!!ae.loose,this.includePrerelease=!!ae.includePrerelease,this.raw=Q,this.set=Q.split(/\s*\|\|\s*/).map(function(Ce){return this.parseRange(Ce.trim())},this).filter(function(Ce){return Ce.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+Q);this.format()}function $e(Q,ae){for(var Ce=!0,ue=Q.slice(),je=ue.pop();Ce&&ue.length;)Ce=ue.every(function(ct){return je.intersects(ct,ae)}),je=ue.pop();return Ce}function ft(Q){return!Q||Q.toLowerCase()==="x"||Q==="*"}function Ke(Q,ae,Ce,ue,je,ct,At,en,ln,An,nr,un,Wt){return((ae=ft(Ce)?"":ft(ue)?">="+Ce+".0.0":ft(je)?">="+Ce+"."+ue+".0":">="+ae)+" "+(en=ft(ln)?"":ft(An)?"<"+(+ln+1)+".0.0":ft(nr)?"<"+ln+"."+(+An+1)+".0":un?"<="+ln+"."+An+"."+nr+"-"+un:"<="+en)).trim()}function jt(Q,ae,Ce){for(var ue=0;ue0){var je=Q[ue].semver;if(je.major===ae.major&&je.minor===ae.minor&&je.patch===ae.patch)return!0}return!1}return!0}function $t(Q,ae,Ce){try{ae=new xt(ae,Ce)}catch(ue){return!1}return ae.test(Q)}function at(Q,ae,Ce,ue){var je,ct,At,en,ln;switch(Q=new m(Q,ue),ae=new xt(ae,ue),Ce){case">":je=ge,ct=Ue,At=ze,en=">",ln=">=";break;case"<":je=ze,ct=le,At=ge,en="<",ln="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if($t(Q,ae,ue))return!1;for(var An=0;An=0.0.0")),un=un||vr,Wt=Wt||vr,je(vr.semver,un.semver,ue)?un=vr:At(vr.semver,Wt.semver,ue)&&(Wt=vr)}),un.operator===en||un.operator===ln||(!Wt.operator||Wt.operator===en)&&ct(Q,Wt.semver)||Wt.operator===ln&&At(Q,Wt.semver))return!1}return!0}rt.prototype.parse=function(Q){var ae=this.options.loose?L[C.COMPARATORLOOSE]:L[C.COMPARATOR],Ce=Q.match(ae);if(!Ce)throw new TypeError("Invalid comparator: "+Q);this.operator=Ce[1]!==void 0?Ce[1]:"",this.operator==="="&&(this.operator=""),Ce[2]?this.semver=new m(Ce[2],this.options.loose):this.semver=wt},rt.prototype.toString=function(){return this.value},rt.prototype.test=function(Q){if(t("Comparator.test",Q,this.options.loose),this.semver===wt||Q===wt)return!0;if(typeof Q=="string")try{Q=new m(Q,this.options)}catch(ae){return!1}return Ge(Q,this.operator,this.semver,this.options)},rt.prototype.intersects=function(Q,ae){if(!(Q instanceof rt))throw new TypeError("a Comparator is required");var Ce;if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),this.operator==="")return this.value===""||(Ce=new xt(Q.value,ae),$t(this.value,Ce,ae));if(Q.operator==="")return Q.value===""||(Ce=new xt(this.value,ae),$t(Q.semver,Ce,ae));var ue=!(this.operator!==">="&&this.operator!==">"||Q.operator!==">="&&Q.operator!==">"),je=!(this.operator!=="<="&&this.operator!=="<"||Q.operator!=="<="&&Q.operator!=="<"),ct=this.semver.version===Q.semver.version,At=!(this.operator!==">="&&this.operator!=="<="||Q.operator!==">="&&Q.operator!=="<="),en=Ge(this.semver,"<",Q.semver,ae)&&(this.operator===">="||this.operator===">")&&(Q.operator==="<="||Q.operator==="<"),ln=Ge(this.semver,">",Q.semver,ae)&&(this.operator==="<="||this.operator==="<")&&(Q.operator===">="||Q.operator===">");return ue||je||ct&&At||en||ln},o.Range=xt,xt.prototype.format=function(){return this.range=this.set.map(function(Q){return Q.join(" ").trim()}).join("||").trim(),this.range},xt.prototype.toString=function(){return this.range},xt.prototype.parseRange=function(Q){var ae=this.options.loose;Q=Q.trim();var Ce=ae?L[C.HYPHENRANGELOOSE]:L[C.HYPHENRANGE];Q=Q.replace(Ce,Ke),t("hyphen replace",Q),Q=Q.replace(L[C.COMPARATORTRIM],"$1$2$3"),t("comparator trim",Q,L[C.COMPARATORTRIM]),Q=(Q=(Q=Q.replace(L[C.TILDETRIM],"$1~")).replace(L[C.CARETTRIM],"$1^")).split(/\s+/).join(" ");var ue=ae?L[C.COMPARATORLOOSE]:L[C.COMPARATOR],je=Q.split(" ").map(function(ct){return function(At,en){return t("comp",At,en),At=function(ln,An){return ln.trim().split(/\s+/).map(function(nr){return function(un,Wt){t("caret",un,Wt);var vr=Wt.loose?L[C.CARETLOOSE]:L[C.CARET];return un.replace(vr,function(w,Ut,Vn,fr,Fr){var ur;return t("caret",un,w,Ut,Vn,fr,Fr),ft(Ut)?ur="":ft(Vn)?ur=">="+Ut+".0.0 <"+(+Ut+1)+".0.0":ft(fr)?ur=Ut==="0"?">="+Ut+"."+Vn+".0 <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+".0 <"+(+Ut+1)+".0.0":Fr?(t("replaceCaret pr",Fr),ur=Ut==="0"?Vn==="0"?">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+Vn+"."+(+fr+1):">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+(+Ut+1)+".0.0"):(t("no pr"),ur=Ut==="0"?Vn==="0"?">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+Vn+"."+(+fr+1):">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+"."+fr+" <"+(+Ut+1)+".0.0"),t("caret return",ur),ur})}(nr,An)}).join(" ")}(At,en),t("caret",At),At=function(ln,An){return ln.trim().split(/\s+/).map(function(nr){return function(un,Wt){var vr=Wt.loose?L[C.TILDELOOSE]:L[C.TILDE];return un.replace(vr,function(w,Ut,Vn,fr,Fr){var ur;return t("tilde",un,w,Ut,Vn,fr,Fr),ft(Ut)?ur="":ft(Vn)?ur=">="+Ut+".0.0 <"+(+Ut+1)+".0.0":ft(fr)?ur=">="+Ut+"."+Vn+".0 <"+Ut+"."+(+Vn+1)+".0":Fr?(t("replaceTilde pr",Fr),ur=">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+(+Vn+1)+".0"):ur=">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+(+Vn+1)+".0",t("tilde return",ur),ur})}(nr,An)}).join(" ")}(At,en),t("tildes",At),At=function(ln,An){return t("replaceXRanges",ln,An),ln.split(/\s+/).map(function(nr){return function(un,Wt){un=un.trim();var vr=Wt.loose?L[C.XRANGELOOSE]:L[C.XRANGE];return un.replace(vr,function(w,Ut,Vn,fr,Fr,ur){t("xRange",un,w,Ut,Vn,fr,Fr,ur);var br=ft(Vn),Kt=br||ft(fr),vu=Kt||ft(Fr),a0=vu;return Ut==="="&&a0&&(Ut=""),ur=Wt.includePrerelease?"-0":"",br?w=Ut===">"||Ut==="<"?"<0.0.0-0":"*":Ut&&a0?(Kt&&(fr=0),Fr=0,Ut===">"?(Ut=">=",Kt?(Vn=+Vn+1,fr=0,Fr=0):(fr=+fr+1,Fr=0)):Ut==="<="&&(Ut="<",Kt?Vn=+Vn+1:fr=+fr+1),w=Ut+Vn+"."+fr+"."+Fr+ur):Kt?w=">="+Vn+".0.0"+ur+" <"+(+Vn+1)+".0.0"+ur:vu&&(w=">="+Vn+"."+fr+".0"+ur+" <"+Vn+"."+(+fr+1)+".0"+ur),t("xRange return",w),w})}(nr,An)}).join(" ")}(At,en),t("xrange",At),At=function(ln,An){return t("replaceStars",ln,An),ln.trim().replace(L[C.STAR],"")}(At,en),t("stars",At),At}(ct,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(je=je.filter(function(ct){return!!ct.match(ue)})),je=je.map(function(ct){return new rt(ct,this.options)},this)},xt.prototype.intersects=function(Q,ae){if(!(Q instanceof xt))throw new TypeError("a Range is required");return this.set.some(function(Ce){return $e(Ce,ae)&&Q.set.some(function(ue){return $e(ue,ae)&&Ce.every(function(je){return ue.every(function(ct){return je.intersects(ct,ae)})})})})},o.toComparators=function(Q,ae){return new xt(Q,ae).set.map(function(Ce){return Ce.map(function(ue){return ue.value}).join(" ").trim().split(" ")})},xt.prototype.test=function(Q){if(!Q)return!1;if(typeof Q=="string")try{Q=new m(Q,this.options)}catch(Ce){return!1}for(var ae=0;ae":ct.prerelease.length===0?ct.patch++:ct.prerelease.push(0),ct.raw=ct.format();case"":case">=":Ce&&!ge(Ce,ct)||(Ce=ct);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+je.operator)}});return Ce&&Q.test(Ce)?Ce:null},o.validRange=function(Q,ae){try{return new xt(Q,ae).range||"*"}catch(Ce){return null}},o.ltr=function(Q,ae,Ce){return at(Q,ae,"<",Ce)},o.gtr=function(Q,ae,Ce){return at(Q,ae,">",Ce)},o.outside=at,o.prerelease=function(Q,ae){var Ce=ne(Q,ae);return Ce&&Ce.prerelease.length?Ce.prerelease:null},o.intersects=function(Q,ae,Ce){return Q=new xt(Q,Ce),ae=new xt(ae,Ce),Q.intersects(ae)},o.coerce=function(Q,ae){if(Q instanceof m)return Q;if(typeof Q=="number"&&(Q=String(Q)),typeof Q!="string")return null;var Ce=null;if((ae=ae||{}).rtl){for(var ue;(ue=L[C.COERCERTL].exec(Q))&&(!Ce||Ce.index+Ce[0].length!==Q.length);)Ce&&ue.index+ue[0].length===Ce.index+Ce[0].length||(Ce=ue),L[C.COERCERTL].lastIndex=ue.index+ue[1].length+ue[2].length;L[C.COERCERTL].lastIndex=-1}else Ce=Q.match(L[C.COERCE]);return Ce===null?null:ne(Ce[2]+"."+(Ce[3]||"0")+"."+(Ce[4]||"0"),ae)}}).call(this,f(5))},function(i,o){function f(E){return(f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(E)}var p;p=function(){return this}();try{p=p||new Function("return this")()}catch(E){(typeof window=="undefined"?"undefined":f(window))==="object"&&(p=window)}i.exports=p},function(i,o){var f,p,E=i.exports={};function t(){throw new Error("setTimeout has not been defined")}function k(){throw new Error("clearTimeout has not been defined")}function L(Se){if(f===setTimeout)return setTimeout(Se,0);if((f===t||!f)&&setTimeout)return f=setTimeout,setTimeout(Se,0);try{return f(Se,0)}catch(he){try{return f.call(null,Se,0)}catch(ge){return f.call(this,Se,0)}}}(function(){try{f=typeof setTimeout=="function"?setTimeout:t}catch(Se){f=t}try{p=typeof clearTimeout=="function"?clearTimeout:k}catch(Se){p=k}})();var N,C=[],U=!1,q=-1;function W(){U&&N&&(U=!1,N.length?C=N.concat(C):q=-1,C.length&&ne())}function ne(){if(!U){var Se=L(W);U=!0;for(var he=C.length;he;){for(N=C,C=[];++q1)for(var ge=1;gethis[k])return Oe(this,this[m].get($e)),!1;var at=this[m].get($e).value;return this[q]&&(this[W]||this[q]($e,at.value)),at.now=jt,at.maxAge=Ke,at.value=ft,this[L]+=$t-at.length,at.length=$t,this.get($e),pe(this),!0}var Q=new le($e,ft,$t,jt,Ke);return Q.length>this[k]?(this[q]&&this[q]($e,ft),!1):(this[L]+=Q.length,this[ne].unshift(Q),this[m].set($e,this[ne].head),pe(this),!0)}},{key:"has",value:function($e){if(!this[m].has($e))return!1;var ft=this[m].get($e).value;return!ze(this,ft)}},{key:"get",value:function($e){return ge(this,$e,!0)}},{key:"peek",value:function($e){return ge(this,$e,!1)}},{key:"pop",value:function(){var $e=this[ne].tail;return $e?(Oe(this,$e),$e.value):null}},{key:"del",value:function($e){Oe(this,this[m].get($e))}},{key:"load",value:function($e){this.reset();for(var ft=Date.now(),Ke=$e.length-1;Ke>=0;Ke--){var jt=$e[Ke],$t=jt.e||0;if($t===0)this.set(jt.k,jt.v);else{var at=$t-ft;at>0&&this.set(jt.k,jt.v,at)}}}},{key:"prune",value:function(){var $e=this;this[m].forEach(function(ft,Ke){return ge($e,Ke,!1)})}},{key:"max",set:function($e){if(typeof $e!="number"||$e<0)throw new TypeError("max must be a non-negative number");this[k]=$e||1/0,pe(this)},get:function(){return this[k]}},{key:"allowStale",set:function($e){this[C]=!!$e},get:function(){return this[C]}},{key:"maxAge",set:function($e){if(typeof $e!="number")throw new TypeError("maxAge must be a non-negative number");this[U]=$e,pe(this)},get:function(){return this[U]}},{key:"lengthCalculator",set:function($e){var ft=this;typeof $e!="function"&&($e=Se),$e!==this[N]&&(this[N]=$e,this[L]=0,this[ne].forEach(function(Ke){Ke.length=ft[N](Ke.value,Ke.key),ft[L]+=Ke.length})),pe(this)},get:function(){return this[N]}},{key:"length",get:function(){return this[L]}},{key:"itemCount",get:function(){return this[ne].length}}])&&E(rt.prototype,wt),xt&&E(rt,xt),Ge}(),ge=function(Ge,rt,wt){var xt=Ge[m].get(rt);if(xt){var $e=xt.value;if(ze(Ge,$e)){if(Oe(Ge,xt),!Ge[C])return}else wt&&(Ge[we]&&(xt.value.now=Date.now()),Ge[ne].unshiftNode(xt));return $e.value}},ze=function(Ge,rt){if(!rt||!rt.maxAge&&!Ge[U])return!1;var wt=Date.now()-rt.now;return rt.maxAge?wt>rt.maxAge:Ge[U]&&wt>Ge[U]},pe=function(Ge){if(Ge[L]>Ge[k])for(var rt=Ge[ne].tail;Ge[L]>Ge[k]&&rt!==null;){var wt=rt.prev;Oe(Ge,rt),rt=wt}},Oe=function(Ge,rt){if(rt){var wt=rt.value;Ge[q]&&Ge[q](wt.key,wt.value),Ge[L]-=wt.length,Ge[m].delete(wt.key),Ge[ne].removeNode(rt)}},le=function Ge(rt,wt,xt,$e,ft){p(this,Ge),this.key=rt,this.value=wt,this.length=xt,this.now=$e,this.maxAge=ft||0},Ue=function(Ge,rt,wt,xt){var $e=wt.value;ze(Ge,$e)&&(Oe(Ge,wt),Ge[C]||($e=void 0)),$e&&rt.call(xt,$e.value,$e.key,Ge)};i.exports=he},function(i,o,f){(function(p){function E(t){return(E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k})(t)}i.exports=function(){if(typeof document=="undefined"||!document.addEventListener)return null;var t,k,L,N={};return N.copy=function(){var C=!1,U=null,q=!1;function W(){C=!1,U=null,q&&window.getSelection().removeAllRanges(),q=!1}return document.addEventListener("copy",function(ne){if(C){for(var m in U)ne.clipboardData.setData(m,U[m]);ne.preventDefault()}}),function(ne){return new Promise(function(m,we){C=!0,typeof ne=="string"?U={"text/plain":ne}:ne instanceof Node?U={"text/html":new XMLSerializer().serializeToString(ne)}:ne instanceof Object?U=ne:we("Invalid data type. Must be string, DOM node, or an object mapping MIME types to strings."),function Se(he){try{if(document.execCommand("copy"))W(),m();else{if(he)throw W(),new Error("Unable to copy. Perhaps it's not available in your browser?");(function(){var ge=document.getSelection();if(!document.queryCommandEnabled("copy")&&ge.isCollapsed){var ze=document.createRange();ze.selectNodeContents(document.body),ge.removeAllRanges(),ge.addRange(ze),q=!0}})(),Se(!0)}}catch(ge){W(),we(ge)}}(!1)})}}(),N.paste=(L=!1,document.addEventListener("paste",function(C){if(L){L=!1,C.preventDefault();var U=t;t=null,U(C.clipboardData.getData(k))}}),function(C){return new Promise(function(U,q){L=!0,t=U,k=C||"text/plain";try{document.execCommand("paste")||(L=!1,q(new Error("Unable to paste. Pasting only works in Internet Explorer at the moment.")))}catch(W){L=!1,q(new Error(W))}})}),typeof ClipboardEvent=="undefined"&&window.clipboardData!==void 0&&window.clipboardData.setData!==void 0&&(function(C){function U(pe,Oe){return function(){pe.apply(Oe,arguments)}}function q(pe){if(E(this)!="object")throw new TypeError("Promises must be constructed via new");if(typeof pe!="function")throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],he(pe,U(ne,this),U(m,this))}function W(pe){var Oe=this;return this._state===null?void this._deferreds.push(pe):void ge(function(){var le=Oe._state?pe.onFulfilled:pe.onRejected;if(le!==null){var Ue;try{Ue=le(Oe._value)}catch(Ge){return void pe.reject(Ge)}pe.resolve(Ue)}else(Oe._state?pe.resolve:pe.reject)(Oe._value)})}function ne(pe){try{if(pe===this)throw new TypeError("A promise cannot be resolved with itself.");if(pe&&(E(pe)=="object"||typeof pe=="function")){var Oe=pe.then;if(typeof Oe=="function")return void he(U(Oe,pe),U(ne,this),U(m,this))}this._state=!0,this._value=pe,we.call(this)}catch(le){m.call(this,le)}}function m(pe){this._state=!1,this._value=pe,we.call(this)}function we(){for(var pe=0,Oe=this._deferreds.length;Oe>pe;pe++)W.call(this,this._deferreds[pe]);this._deferreds=null}function Se(pe,Oe,le,Ue){this.onFulfilled=typeof pe=="function"?pe:null,this.onRejected=typeof Oe=="function"?Oe:null,this.resolve=le,this.reject=Ue}function he(pe,Oe,le){var Ue=!1;try{pe(function(Ge){Ue||(Ue=!0,Oe(Ge))},function(Ge){Ue||(Ue=!0,le(Ge))})}catch(Ge){if(Ue)return;Ue=!0,le(Ge)}}var ge=q.immediateFn||typeof p=="function"&&p||function(pe){setTimeout(pe,1)},ze=Array.isArray||function(pe){return Object.prototype.toString.call(pe)==="[object Array]"};q.prototype.catch=function(pe){return this.then(null,pe)},q.prototype.then=function(pe,Oe){var le=this;return new q(function(Ue,Ge){W.call(le,new Se(pe,Oe,Ue,Ge))})},q.all=function(){var pe=Array.prototype.slice.call(arguments.length===1&&ze(arguments[0])?arguments[0]:arguments);return new q(function(Oe,le){function Ue(wt,xt){try{if(xt&&(E(xt)=="object"||typeof xt=="function")){var $e=xt.then;if(typeof $e=="function")return void $e.call(xt,function(ft){Ue(wt,ft)},le)}pe[wt]=xt,--Ge==0&&Oe(pe)}catch(ft){le(ft)}}if(pe.length===0)return Oe([]);for(var Ge=pe.length,rt=0;rtUe;Ue++)pe[Ue].then(Oe,le)})},i.exports?i.exports=q:C.Promise||(C.Promise=q)}(this),N.copy=function(C){return new Promise(function(U,q){if(typeof C!="string"&&!("text/plain"in C))throw new Error("You must provide a text/plain type.");var W=typeof C=="string"?C:C["text/plain"];window.clipboardData.setData("Text",W)?U():q(new Error("Copying was rejected."))})},N.paste=function(){return new Promise(function(C,U){var q=window.clipboardData.getData("Text");q?C(q):U(new Error("Pasting was rejected."))})}),N}()}).call(this,f(13).setImmediate)},function(i,o,f){"use strict";i.exports=f(15)},function(i,o,f){"use strict";f.r(o),o.default=`:root { + /** + * IMPORTANT: When new theme variables are added below\u2013 also add them to SettingsContext updateThemeVariables() + */ + + /* Light theme */ + --light-color-attribute-name: #ef6632; + --light-color-attribute-name-not-editable: #23272f; + --light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7); + --light-color-attribute-value: #1a1aa6; + --light-color-attribute-value-inverted: #ffffff; + --light-color-attribute-editable-value: #1a1aa6; + --light-color-background: #ffffff; + --light-color-background-hover: rgba(0, 136, 250, 0.1); + --light-color-background-inactive: #e5e5e5; + --light-color-background-invalid: #fff0f0; + --light-color-background-selected: #0088fa; + --light-color-button-background: #ffffff; + --light-color-button-background-focus: #ededed; + --light-color-button: #5f6673; + --light-color-button-disabled: #cfd1d5; + --light-color-button-active: #0088fa; + --light-color-button-focus: #23272f; + --light-color-button-hover: #23272f; + --light-color-border: #eeeeee; + --light-color-commit-did-not-render-fill: #cfd1d5; + --light-color-commit-did-not-render-fill-text: #000000; + --light-color-commit-did-not-render-pattern: #cfd1d5; + --light-color-commit-did-not-render-pattern-text: #333333; + --light-color-commit-gradient-0: #37afa9; + --light-color-commit-gradient-1: #63b19e; + --light-color-commit-gradient-2: #80b393; + --light-color-commit-gradient-3: #97b488; + --light-color-commit-gradient-4: #abb67d; + --light-color-commit-gradient-5: #beb771; + --light-color-commit-gradient-6: #cfb965; + --light-color-commit-gradient-7: #dfba57; + --light-color-commit-gradient-8: #efbb49; + --light-color-commit-gradient-9: #febc38; + --light-color-commit-gradient-text: #000000; + --light-color-component-name: #6a51b2; + --light-color-component-name-inverted: #ffffff; + --light-color-component-badge-background: rgba(0, 0, 0, 0.1); + --light-color-component-badge-background-inverted: rgba(255, 255, 255, 0.25); + --light-color-component-badge-count: #777d88; + --light-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --light-color-context-background: rgba(0,0,0,.9); + --light-color-context-background-hover: rgba(255, 255, 255, 0.1); + --light-color-context-background-selected: #178fb9; + --light-color-context-border: #3d424a; + --light-color-context-text: #ffffff; + --light-color-context-text-selected: #ffffff; + --light-color-dim: #777d88; + --light-color-dimmer: #cfd1d5; + --light-color-dimmest: #eff0f1; + --light-color-error-background: hsl(0, 100%, 97%); + --light-color-error-border: hsl(0, 100%, 92%); + --light-color-error-text: #ff0000; + --light-color-expand-collapse-toggle: #777d88; + --light-color-link: #0000ff; + --light-color-modal-background: rgba(255, 255, 255, 0.75); + --light-color-record-active: #fc3a4b; + --light-color-record-hover: #3578e5; + --light-color-record-inactive: #0088fa; + --light-color-scroll-thumb: #c2c2c2; + --light-color-scroll-track: #fafafa; + --light-color-search-match: yellow; + --light-color-search-match-current: #f7923b; + --light-color-selected-tree-highlight-active: rgba(0, 136, 250, 0.1); + --light-color-selected-tree-highlight-inactive: rgba(0, 0, 0, 0.05); + --light-color-shadow: rgba(0, 0, 0, 0.25); + --light-color-tab-selected-border: #0088fa; + --light-color-text: #000000; + --light-color-text-invalid: #ff0000; + --light-color-text-selected: #ffffff; + --light-color-toggle-background-invalid: #fc3a4b; + --light-color-toggle-background-on: #0088fa; + --light-color-toggle-background-off: #cfd1d5; + --light-color-toggle-text: #ffffff; + --light-color-tooltip-background: rgba(0, 0, 0, 0.9); + --light-color-tooltip-text: #ffffff; + + /* Dark theme */ + --dark-color-attribute-name: #9d87d2; + --dark-color-attribute-name-not-editable: #ededed; + --dark-color-attribute-name-inverted: #282828; + --dark-color-attribute-value: #cedae0; + --dark-color-attribute-value-inverted: #ffffff; + --dark-color-attribute-editable-value: yellow; + --dark-color-background: #282c34; + --dark-color-background-hover: rgba(255, 255, 255, 0.1); + --dark-color-background-inactive: #3d424a; + --dark-color-background-invalid: #5c0000; + --dark-color-background-selected: #178fb9; + --dark-color-button-background: #282c34; + --dark-color-button-background-focus: #3d424a; + --dark-color-button: #afb3b9; + --dark-color-button-active: #61dafb; + --dark-color-button-disabled: #4f5766; + --dark-color-button-focus: #a2e9fc; + --dark-color-button-hover: #ededed; + --dark-color-border: #3d424a; + --dark-color-commit-did-not-render-fill: #777d88; + --dark-color-commit-did-not-render-fill-text: #000000; + --dark-color-commit-did-not-render-pattern: #666c77; + --dark-color-commit-did-not-render-pattern-text: #ffffff; + --dark-color-commit-gradient-0: #37afa9; + --dark-color-commit-gradient-1: #63b19e; + --dark-color-commit-gradient-2: #80b393; + --dark-color-commit-gradient-3: #97b488; + --dark-color-commit-gradient-4: #abb67d; + --dark-color-commit-gradient-5: #beb771; + --dark-color-commit-gradient-6: #cfb965; + --dark-color-commit-gradient-7: #dfba57; + --dark-color-commit-gradient-8: #efbb49; + --dark-color-commit-gradient-9: #febc38; + --dark-color-commit-gradient-text: #000000; + --dark-color-component-name: #61dafb; + --dark-color-component-name-inverted: #282828; + --dark-color-component-badge-background: rgba(255, 255, 255, 0.25); + --dark-color-component-badge-background-inverted: rgba(0, 0, 0, 0.25); + --dark-color-component-badge-count: #8f949d; + --dark-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --dark-color-context-background: rgba(255,255,255,.9); + --dark-color-context-background-hover: rgba(0, 136, 250, 0.1); + --dark-color-context-background-selected: #0088fa; + --dark-color-context-border: #eeeeee; + --dark-color-context-text: #000000; + --dark-color-context-text-selected: #ffffff; + --dark-color-dim: #8f949d; + --dark-color-dimmer: #777d88; + --dark-color-dimmest: #4f5766; + --dark-color-error-background: #200; + --dark-color-error-border: #900; + --dark-color-error-text: #f55; + --dark-color-expand-collapse-toggle: #8f949d; + --dark-color-link: #61dafb; + --dark-color-modal-background: rgba(0, 0, 0, 0.75); + --dark-color-record-active: #fc3a4b; + --dark-color-record-hover: #a2e9fc; + --dark-color-record-inactive: #61dafb; + --dark-color-scroll-thumb: #afb3b9; + --dark-color-scroll-track: #313640; + --dark-color-search-match: yellow; + --dark-color-search-match-current: #f7923b; + --dark-color-selected-tree-highlight-active: rgba(23, 143, 185, 0.15); + --dark-color-selected-tree-highlight-inactive: rgba(255, 255, 255, 0.05); + --dark-color-shadow: rgba(0, 0, 0, 0.5); + --dark-color-tab-selected-border: #178fb9; + --dark-color-text: #ffffff; + --dark-color-text-invalid: #ff8080; + --dark-color-text-selected: #ffffff; + --dark-color-toggle-background-invalid: #fc3a4b; + --dark-color-toggle-background-on: #178fb9; + --dark-color-toggle-background-off: #777d88; + --dark-color-toggle-text: #ffffff; + --dark-color-tooltip-background: rgba(255, 255, 255, 0.9); + --dark-color-tooltip-text: #000000; + + /* Font smoothing */ + --light-font-smoothing: auto; + --dark-font-smoothing: antialiased; + --font-smoothing: auto; + + /* Compact density */ + --compact-font-size-monospace-small: 9px; + --compact-font-size-monospace-normal: 11px; + --compact-font-size-monospace-large: 15px; + --compact-font-size-sans-small: 10px; + --compact-font-size-sans-normal: 12px; + --compact-font-size-sans-large: 14px; + --compact-line-height-data: 18px; + --compact-root-font-size: 16px; + + /* Comfortable density */ + --comfortable-font-size-monospace-small: 10px; + --comfortable-font-size-monospace-normal: 13px; + --comfortable-font-size-monospace-large: 17px; + --comfortable-font-size-sans-small: 12px; + --comfortable-font-size-sans-normal: 14px; + --comfortable-font-size-sans-large: 16px; + --comfortable-line-height-data: 22px; + --comfortable-root-font-size: 20px; + + /* GitHub.com system fonts */ + --font-family-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, + Courier, monospace; + --font-family-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, + Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + + /* Constant values shared between JS and CSS */ + --interaction-commit-size: 10px; + --interaction-label-width: 200px; +} +`},function(i,o,f){"use strict";function p(N){var C=this;if(C instanceof p||(C=new p),C.tail=null,C.head=null,C.length=0,N&&typeof N.forEach=="function")N.forEach(function(W){C.push(W)});else if(arguments.length>0)for(var U=0,q=arguments.length;U1)U=C;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");q=this.head.next,U=this.head.value}for(var W=0;q!==null;W++)U=N(U,q.value,W),q=q.next;return U},p.prototype.reduceReverse=function(N,C){var U,q=this.tail;if(arguments.length>1)U=C;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");q=this.tail.prev,U=this.tail.value}for(var W=this.length-1;q!==null;W--)U=N(U,q.value,W),q=q.prev;return U},p.prototype.toArray=function(){for(var N=new Array(this.length),C=0,U=this.head;U!==null;C++)N[C]=U.value,U=U.next;return N},p.prototype.toArrayReverse=function(){for(var N=new Array(this.length),C=0,U=this.tail;U!==null;C++)N[C]=U.value,U=U.prev;return N},p.prototype.slice=function(N,C){(C=C||this.length)<0&&(C+=this.length),(N=N||0)<0&&(N+=this.length);var U=new p;if(Cthis.length&&(C=this.length);for(var q=0,W=this.head;W!==null&&qthis.length&&(C=this.length);for(var q=this.length,W=this.tail;W!==null&&q>C;q--)W=W.prev;for(;W!==null&&q>N;q--,W=W.prev)U.push(W.value);return U},p.prototype.splice=function(N,C){N>this.length&&(N=this.length-1),N<0&&(N=this.length+N);for(var U=0,q=this.head;q!==null&&U=0&&(L._idleTimeoutId=setTimeout(function(){L._onTimeout&&L._onTimeout()},N))},f(14),o.setImmediate=typeof self!="undefined"&&self.setImmediate||p!==void 0&&p.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self!="undefined"&&self.clearImmediate||p!==void 0&&p.clearImmediate||this&&this.clearImmediate}).call(this,f(4))},function(i,o,f){(function(p,E){(function(t,k){"use strict";if(!t.setImmediate){var L,N,C,U,q,W=1,ne={},m=!1,we=t.document,Se=Object.getPrototypeOf&&Object.getPrototypeOf(t);Se=Se&&Se.setTimeout?Se:t,{}.toString.call(t.process)==="[object process]"?L=function(ze){E.nextTick(function(){ge(ze)})}:function(){if(t.postMessage&&!t.importScripts){var ze=!0,pe=t.onmessage;return t.onmessage=function(){ze=!1},t.postMessage("","*"),t.onmessage=pe,ze}}()?(U="setImmediate$"+Math.random()+"$",q=function(ze){ze.source===t&&typeof ze.data=="string"&&ze.data.indexOf(U)===0&&ge(+ze.data.slice(U.length))},t.addEventListener?t.addEventListener("message",q,!1):t.attachEvent("onmessage",q),L=function(ze){t.postMessage(U+ze,"*")}):t.MessageChannel?((C=new MessageChannel).port1.onmessage=function(ze){ge(ze.data)},L=function(ze){C.port2.postMessage(ze)}):we&&"onreadystatechange"in we.createElement("script")?(N=we.documentElement,L=function(ze){var pe=we.createElement("script");pe.onreadystatechange=function(){ge(ze),pe.onreadystatechange=null,N.removeChild(pe),pe=null},N.appendChild(pe)}):L=function(ze){setTimeout(ge,0,ze)},Se.setImmediate=function(ze){typeof ze!="function"&&(ze=new Function(""+ze));for(var pe=new Array(arguments.length-1),Oe=0;Oeae;ae++)if((Q=he(at,jt,ae))!==-1){Se=ae,jt=Q;break e}jt=-1}}e:{if(at=$t,(Q=W().get(Ke.primitive))!==void 0){for(ae=0;aejt-at?null:$t.slice(at,jt-1))!==null){if(jt=0,rt!==null){for(;jt<$t.length&&jtjt;rt--)wt=$e.pop()}for(rt=$t.length-jt-1;1<=rt;rt--)jt=[],wt.push({id:null,isStateEditable:!1,name:ze($t[rt-1].functionName),value:void 0,subHooks:jt}),$e.push(wt),wt=jt;rt=$t}jt=($t=Ke.primitive)==="Context"||$t==="DebugValue"?null:xt++,wt.push({id:jt,isStateEditable:$t==="Reducer"||$t==="State",name:$t,value:Ke.value,subHooks:[]})}return function Ce(ue,je){for(var ct=[],At=0;At-1&&(ne=ne.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var m=ne.replace(/^\s+/,"").replace(/\(eval code/g,"("),we=m.match(/ (\((.+):(\d+):(\d+)\)$)/),Se=(m=we?m.replace(we[0],""):m).split(/\s+/).slice(1),he=this.extractLocation(we?we[1]:Se.pop()),ge=Se.join(" ")||void 0,ze=["eval",""].indexOf(he[0])>-1?void 0:he[0];return new N({functionName:ge,fileName:ze,lineNumber:he[1],columnNumber:he[2],source:ne})},this)},parseFFOrSafari:function(W){return W.stack.split(` +`).filter(function(ne){return!ne.match(q)},this).map(function(ne){if(ne.indexOf(" > eval")>-1&&(ne=ne.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),ne.indexOf("@")===-1&&ne.indexOf(":")===-1)return new N({functionName:ne});var m=/((.*".+"[^@]*)?[^@]*)(?:@)/,we=ne.match(m),Se=we&&we[1]?we[1]:void 0,he=this.extractLocation(ne.replace(m,""));return new N({functionName:Se,fileName:he[0],lineNumber:he[1],columnNumber:he[2],source:ne})},this)},parseOpera:function(W){return!W.stacktrace||W.message.indexOf(` +`)>-1&&W.message.split(` +`).length>W.stacktrace.split(` +`).length?this.parseOpera9(W):W.stack?this.parseOpera11(W):this.parseOpera10(W)},parseOpera9:function(W){for(var ne=/Line (\d+).*script (?:in )?(\S+)/i,m=W.message.split(` +`),we=[],Se=2,he=m.length;Se/,"$2").replace(/\([^)]*\)/g,"")||void 0;he.match(/\(([^)]*)\)/)&&(m=he.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var ze=m===void 0||m==="[arguments not available]"?void 0:m.split(",");return new N({functionName:ge,args:ze,fileName:Se[0],lineNumber:Se[1],columnNumber:Se[2],source:ne})},this)}}})=="function"?p.apply(o,E):p)===void 0||(i.exports=t)})()},function(i,o,f){var p,E,t;(function(k,L){"use strict";E=[],(t=typeof(p=function(){function N(ge){return ge.charAt(0).toUpperCase()+ge.substring(1)}function C(ge){return function(){return this[ge]}}var U=["isConstructor","isEval","isNative","isToplevel"],q=["columnNumber","lineNumber"],W=["fileName","functionName","source"],ne=U.concat(q,W,["args"]);function m(ge){if(ge)for(var ze=0;ze1?xe-1:0),ke=1;ke=0&&xe.splice(Z,1)}}}])&&p(z.prototype,G),$&&p(z,$),B}(),t=f(2),k=f.n(t);try{var L=f(9).default,N=function(B){var z=new RegExp("".concat(B,": ([0-9]+)")),G=L.match(z);return parseInt(G[1],10)};N("comfortable-line-height-data"),N("compact-line-height-data")}catch(B){}function C(B){try{return sessionStorage.getItem(B)}catch(z){return null}}function U(B){try{sessionStorage.removeItem(B)}catch(z){}}function q(B,z){try{return sessionStorage.setItem(B,z)}catch(G){}}var W=function(B,z){return B===z},ne=f(1),m=f.n(ne);function we(B){return B.ownerDocument?B.ownerDocument.defaultView:null}function Se(B){var z=we(B);return z?z.frameElement:null}function he(B){var z=pe(B);return ge([B.getBoundingClientRect(),{top:z.borderTop,left:z.borderLeft,bottom:z.borderBottom,right:z.borderRight,width:0,height:0}])}function ge(B){return B.reduce(function(z,G){return z==null?G:{top:z.top+G.top,left:z.left+G.left,width:z.width,height:z.height,bottom:z.bottom+G.bottom,right:z.right+G.right}})}function ze(B,z){var G=Se(B);if(G&&G!==z){for(var $=[B.getBoundingClientRect()],De=G,me=!1;De;){var xe=he(De);if($.push(xe),De=Se(De),me)break;De&&we(De)===z&&(me=!0)}return ge($)}return B.getBoundingClientRect()}function pe(B){var z=window.getComputedStyle(B);return{borderLeft:parseInt(z.borderLeftWidth,10),borderRight:parseInt(z.borderRightWidth,10),borderTop:parseInt(z.borderTopWidth,10),borderBottom:parseInt(z.borderBottomWidth,10),marginLeft:parseInt(z.marginLeft,10),marginRight:parseInt(z.marginRight,10),marginTop:parseInt(z.marginTop,10),marginBottom:parseInt(z.marginBottom,10),paddingLeft:parseInt(z.paddingLeft,10),paddingRight:parseInt(z.paddingRight,10),paddingTop:parseInt(z.paddingTop,10),paddingBottom:parseInt(z.paddingBottom,10)}}function Oe(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=function(ke,Xe){if(!!ke){if(typeof ke=="string")return le(ke,Xe);var ht=Object.prototype.toString.call(ke).slice(8,-1);if(ht==="Object"&&ke.constructor&&(ht=ke.constructor.name),ht==="Map"||ht==="Set")return Array.from(ke);if(ht==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ht))return le(ke,Xe)}}(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,De=function(){};return{s:De,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function le(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);Gxe.left+xe.width&&(ie=xe.left+xe.width-ht-5),{style:{top:ke+="px",left:ie+="px"}}}(z,G,{width:$.width,height:$.height});m()(this.tip.style,De.style)}}]),B}(),$e=function(){function B(){Ue(this,B);var z=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.window=z;var G=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.tipBoundsWindow=G;var $=z.document;this.container=$.createElement("div"),this.container.style.zIndex="10000000",this.tip=new xt($,this.container),this.rects=[],$.body.appendChild(this.container)}return rt(B,[{key:"remove",value:function(){this.tip.remove(),this.rects.forEach(function(z){z.remove()}),this.rects.length=0,this.container.parentNode&&this.container.parentNode.removeChild(this.container)}},{key:"inspect",value:function(z,G){for(var $=this,De=z.filter(function(Tt){return Tt.nodeType===Node.ELEMENT_NODE});this.rects.length>De.length;)this.rects.pop().remove();if(De.length!==0){for(;this.rects.length1&&arguments[1]!==void 0?arguments[1]:W,tt=void 0,Tt=[],kt=void 0,bt=!1,on=function(Lt,gn){return qe(Lt,Tt[gn])},tn=function(){for(var Lt=arguments.length,gn=Array(Lt),lr=0;lr5&&arguments[5]!==void 0?arguments[5]:0,Z=Co(B);switch(Z){case"html_element":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.tagName,type:Z};case"function":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:typeof B.name!="function"&&B.name?B.name:"function",type:Z};case"string":return B.length<=500?B:B.slice(0,500)+"...";case"bigint":case"symbol":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.toString(),type:Z};case"react_element":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:L0(B)||"Unknown",type:Z};case"array_buffer":case"data_view":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:Z==="data_view"?"DataView":"ArrayBuffer",size:B.byteLength,type:Z};case"array":return me=De($),xe>=2&&!me?a0(Z,!0,B,z,$):B.map(function(ht,ie){return So(ht,z,G,$.concat([ie]),De,me?1:xe+1)});case"html_all_collection":case"typed_array":case"iterator":if(me=De($),xe>=2&&!me)return a0(Z,!0,B,z,$);var ke={unserializable:!0,type:Z,readonly:!0,size:Z==="typed_array"?B.length:void 0,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.constructor&&B.constructor.name!=="Object"?B.constructor.name:""};return Kt(B[Symbol.iterator])&&Array.from(B).forEach(function(ht,ie){return ke[ie]=So(ht,z,G,$.concat([ie]),De,me?1:xe+1)}),G.push($),ke;case"opaque_iterator":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B[Symbol.toStringTag],type:Z};case"date":case"regexp":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.toString(),type:Z};case"object":if(me=De($),xe>=2&&!me)return a0(Z,!0,B,z,$);var Xe={};return eu(B).forEach(function(ht){var ie=ht.toString();Xe[ie]=So(B[ht],z,G,$.concat([ie]),De,me?1:xe+1)}),Xe;case"infinity":case"nan":case"undefined":return z.push($),{type:Z};default:return B}}function Go(B){return(Go=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function Os(B){return function(z){if(Array.isArray(z))return Yo(z)}(B)||function(z){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(z))return Array.from(z)}(B)||function(z,G){if(!!z){if(typeof z=="string")return Yo(z,G);var $=Object.prototype.toString.call(z).slice(8,-1);if($==="Object"&&z.constructor&&($=z.constructor.name),$==="Map"||$==="Set")return Array.from(z);if($==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test($))return Yo(z,G)}}(B)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Yo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);Gz.toString()?1:z.toString()>B.toString()?-1:0}function eu(B){for(var z=[],G=B,$=function(){var De=[].concat(Os(Object.keys(G)),Os(Object.getOwnPropertySymbols(G))),me=Object.getOwnPropertyDescriptors(G);De.forEach(function(xe){me[xe].enumerable&&z.push(xe)}),G=Object.getPrototypeOf(G)};G!=null;)$();return z}function ai(B){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Anonymous",G=Ko.get(B);if(G!=null)return G;var $=z;return typeof B.displayName=="string"?$=B.displayName:typeof B.name=="string"&&B.name!==""&&($=B.name),Ko.set(B,$),$}var mr=0;function Xo(){return++mr}function W0(B){var z=qt.get(B);if(z!==void 0)return z;for(var G=new Array(B.length),$=0;$1&&arguments[1]!==void 0?arguments[1]:50;return B.length>z?B.substr(0,z)+"\u2026":B}function Si(B,z){if(B!=null&&hasOwnProperty.call(B,vu.type))return z?B[vu.preview_long]:B[vu.preview_short];switch(Co(B)){case"html_element":return"<".concat(tu(B.tagName.toLowerCase())," />");case"function":return tu("\u0192 ".concat(typeof B.name=="function"?"":B.name,"() {}"));case"string":return'"'.concat(B,'"');case"bigint":return tu(B.toString()+"n");case"regexp":case"symbol":return tu(B.toString());case"react_element":return"<".concat(tu(L0(B)||"Unknown")," />");case"array_buffer":return"ArrayBuffer(".concat(B.byteLength,")");case"data_view":return"DataView(".concat(B.buffer.byteLength,")");case"array":if(z){for(var G="",$=0;$0&&(G+=", "),!((G+=Si(B[$],!1)).length>50));$++);return"[".concat(tu(G),"]")}var De=hasOwnProperty.call(B,vu.size)?B[vu.size]:B.length;return"Array(".concat(De,")");case"typed_array":var me="".concat(B.constructor.name,"(").concat(B.length,")");if(z){for(var xe="",Z=0;Z0&&(xe+=", "),!((xe+=B[Z]).length>50));Z++);return"".concat(me," [").concat(tu(xe),"]")}return me;case"iterator":var ke=B.constructor.name;if(z){for(var Xe=Array.from(B),ht="",ie=0;ie0&&(ht+=", "),Array.isArray(qe)){var tt=Si(qe[0],!0),Tt=Si(qe[1],!1);ht+="".concat(tt," => ").concat(Tt)}else ht+=Si(qe,!1);if(ht.length>50)break}return"".concat(ke,"(").concat(B.size,") {").concat(tu(ht),"}")}return"".concat(ke,"(").concat(B.size,")");case"opaque_iterator":return B[Symbol.toStringTag];case"date":return B.toString();case"object":if(z){for(var kt=eu(B).sort(_i),bt="",on=0;on0&&(bt+=", "),(bt+="".concat(tn.toString(),": ").concat(Si(B[tn],!1))).length>50)break}return"{".concat(tu(bt),"}")}return"{\u2026}";case"boolean":case"number":case"infinity":case"nan":case"null":case"undefined":return B;default:try{return tu(""+B)}catch(Lt){return"unserializable"}}}var ks=f(7);function Hl(B){return(Hl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function F0(B,z){var G=Object.keys(B);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(B);z&&($=$.filter(function(De){return Object.getOwnPropertyDescriptor(B,De).enumerable})),G.push.apply(G,$)}return G}function f0(B){for(var z=1;z2&&arguments[2]!==void 0?arguments[2]:[];if(B!==null){var $=[],De=[],me=So(B,$,De,G,z);return{data:me,cleaned:$,unserializable:De}}return null}function G0(B){var z,G,$=(z=B,G=new Set,JSON.stringify(z,function(xe,Z){if(Hl(Z)==="object"&&Z!==null){if(G.has(Z))return;G.add(Z)}return typeof Z=="bigint"?Z.toString()+"n":Z})),De=$===void 0?"undefined":$,me=window.__REACT_DEVTOOLS_GLOBAL_HOOK__.clipboardCopyText;typeof me=="function"?me(De).catch(function(xe){}):Object(ks.copy)(De)}function fi(B,z){var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,$=z[G],De=Array.isArray(B)?B.slice():f0({},B);return G+1===z.length?Array.isArray(De)?De.splice($,1):delete De[$]:De[$]=fi(B[$],z,G+1),De}function Zt(B,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,De=z[$],me=Array.isArray(B)?B.slice():f0({},B);if($+1===z.length){var xe=G[$];me[xe]=me[De],Array.isArray(me)?me.splice(De,1):delete me[De]}else me[De]=Zt(B[De],z,G,$+1);return me}function Ln(B,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if($>=z.length)return G;var De=z[$],me=Array.isArray(B)?B.slice():f0({},B);return me[De]=Ln(B[De],z,G,$+1),me}var Di=f(8);function ci(B,z){var G=Object.keys(B);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(B);z&&($=$.filter(function(De){return Object.getOwnPropertyDescriptor(B,De).enumerable})),G.push.apply(G,$)}return G}function Ht(B){for(var z=1;z=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function Wl(B,z){if(B){if(typeof B=="string")return xo(B,z);var G=Object.prototype.toString.call(B).slice(8,-1);return G==="Object"&&B.constructor&&(G=B.constructor.name),G==="Map"||G==="Set"?Array.from(B):G==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(G)?xo(B,z):void 0}}function xo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G0){var vt=me(se);if(vt!=null){var Xt,xn=Ui(Mo);try{for(xn.s();!(Xt=xn.n()).done;)if(Xt.value.test(vt))return!0}catch(er){xn.e(er)}finally{xn.f()}}}if(re!=null&&ds.size>0){var _n,yn=re.fileName,En=Ui(ds);try{for(En.s();!(_n=En.n()).done;)if(_n.value.test(yn))return!0}catch(er){En.e(er)}finally{En.f()}}return!1}function yu(se){var re=se.type;switch(se.tag){case Tt:case _r:return 1;case tt:case Cn:return 5;case tn:return 6;case Lt:return 11;case lr:return 7;case gn:case Qn:case on:return 9;case Ar:case Rr:return 8;case nt:return 12;case _t:return 13;default:switch(xe(re)){case 60111:case"Symbol(react.concurrent_mode)":case"Symbol(react.async_mode)":return 9;case 60109:case"Symbol(react.provider)":return 2;case 60110:case"Symbol(react.context)":return 2;case 60108:case"Symbol(react.strict_mode)":return 9;case 60114:case"Symbol(react.profiler)":return 10;default:return 9}}}function pi(se){if(Fo.has(se))return se;var re=se.alternate;return re!=null&&Fo.has(re)?re:(Fo.add(se),se)}window.__REACT_DEVTOOLS_COMPONENT_FILTERS__!=null?ps(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__):ps([{type:1,value:7,isEnabled:!0}]);var T0=new Map,Q0=new Map,Fo=new Set,ta=new Map,Kl=new Map,Ki=-1;function Yr(se){if(!T0.has(se)){var re=Xo();T0.set(se,re),Q0.set(re,se)}return T0.get(se)}function fo(se){switch(yu(se)){case 1:if(I0!==null){var re=Yr(pi(se)),Le=gi(se);Le!==null&&I0.set(re,Le)}}}var Oi={};function gi(se){switch(yu(se)){case 1:var re=se.stateNode,Le=Oi,Ae=Oi;return re!=null&&(re.constructor&&re.constructor.contextType!=null?Ae=re.context:(Le=re.context)&&Object.keys(Le).length===0&&(Le=Oi)),[Le,Ae];default:return null}}function ff(se){switch(yu(se)){case 1:if(I0!==null){var re=Yr(pi(se)),Le=I0.has(re)?I0.get(re):null,Ae=gi(se);if(Le==null||Ae==null)return null;var ot=Y0(Le,2),vt=ot[0],Xt=ot[1],xn=Y0(Ae,2),_n=xn[0],yn=xn[1];if(_n!==Oi)return J0(vt,_n);if(yn!==Oi)return Xt!==yn}}return null}function cf(se,re){if(se==null||re==null)return!1;if(re.hasOwnProperty("baseState")&&re.hasOwnProperty("memoizedState")&&re.hasOwnProperty("next")&&re.hasOwnProperty("queue"))for(;re!==null;){if(re.memoizedState!==se.memoizedState)return!0;re=re.next,se=se.next}return!1}function J0(se,re){if(se==null||re==null||re.hasOwnProperty("baseState")&&re.hasOwnProperty("memoizedState")&&re.hasOwnProperty("next")&&re.hasOwnProperty("queue"))return null;var Le,Ae=[],ot=Ui(new Set([].concat(Yi(Object.keys(se)),Yi(Object.keys(re)))));try{for(ot.s();!(Le=ot.n()).done;){var vt=Le.value;se[vt]!==re[vt]&&Ae.push(vt)}}catch(Xt){ot.e(Xt)}finally{ot.f()}return Ae}function Z0(se,re){switch(re.tag){case Tt:case tt:case kt:case Ar:case Rr:return(oo(re)&ie)===ie;default:return se.memoizedProps!==re.memoizedProps||se.memoizedState!==re.memoizedState||se.ref!==re.ref}}var Te=[],et=[],Ve=[],Gt=[],Yt=new Map,sr=0,Br=null;function wn(se){Te.push(se)}function fu(se){if(Te.length!==0||et.length!==0||Ve.length!==0||Br!==null||Ru){var re=et.length+Ve.length+(Br===null?0:1),Le=new Array(3+sr+(re>0?2+re:0)+Te.length),Ae=0;if(Le[Ae++]=z,Le[Ae++]=Ki,Le[Ae++]=sr,Yt.forEach(function(xn,_n){Le[Ae++]=_n.length;for(var yn=W0(_n),En=0;En0){Le[Ae++]=2,Le[Ae++]=re;for(var ot=et.length-1;ot>=0;ot--)Le[Ae++]=et[ot];for(var vt=0;vt0?se.forEach(function(re){B.emit("operations",re)}):(wr!==null&&(ru=!0),B.getFiberRoots(z).forEach(function(re){Xu(Ki=Yr(pi(re.current)),re.current),Ru&&re.memoizedInteractions!=null&&($o={changeDescriptions:Xl?new Map:null,durations:[],commitTime:Vl()-Yu,interactions:Array.from(re.memoizedInteractions).map(function(Le){return Ht(Ht({},Le),{},{timestamp:Le.timestamp-Yu})}),maxActualDuration:0,priorityLevel:null}),Vr(re.current,null,!1,!1),fu(),Ki=-1}))},getBestMatchForTrackedPath:function(){if(wr===null||$0===null)return null;for(var se=$0;se!==null&&Vu(se);)se=se.return;return se===null?null:{id:Yr(pi(se)),isFullMatch:Xi===wr.length-1}},getDisplayNameForFiberID:function(se){var re=Q0.get(se);return re!=null?me(re):null},getFiberIDForNative:function(se){var re=arguments.length>1&&arguments[1]!==void 0&&arguments[1],Le=G.findFiberByHostInstance(se);if(Le!=null){if(re)for(;Le!==null&&Vu(Le);)Le=Le.return;return Yr(pi(Le))}return null},getInstanceAndStyle:function(se){var re=null,Le=null,Ae=Uu(se);return Ae!==null&&(re=Ae.stateNode,Ae.memoizedProps!==null&&(Le=Ae.memoizedProps.style)),{instance:re,style:Le}},getOwnersList:function(se){var re=Uu(se);if(re==null)return null;var Le=re._debugOwner,Ae=[{displayName:me(re)||"Anonymous",id:se,type:yu(re)}];if(Le)for(var ot=Le;ot!==null;)Ae.unshift({displayName:me(ot)||"Anonymous",id:Yr(pi(ot)),type:yu(ot)}),ot=ot._debugOwner||null;return Ae},getPathForElement:function(se){var re=Q0.get(se);if(re==null)return null;for(var Le=[];re!==null;)Le.push(y0(re)),re=re.return;return Le.reverse(),Le},getProfilingData:function(){var se=[];if(hs===null)throw Error("getProfilingData() called before any profiling data was recorded");return hs.forEach(function(re,Le){var Ae=[],ot=[],vt=new Map,Xt=new Map,xn=El!==null&&El.get(Le)||"Unknown";R0!=null&&R0.forEach(function(_n,yn){co!=null&&co.get(yn)===Le&&ot.push([yn,_n])}),re.forEach(function(_n,yn){var En=_n.changeDescriptions,er=_n.durations,It=_n.interactions,xi=_n.maxActualDuration,Sr=_n.priorityLevel,cr=_n.commitTime,Y=[];It.forEach(function(hi){vt.has(hi.id)||vt.set(hi.id,hi),Y.push(hi.id);var Qi=Xt.get(hi.id);Qi!=null?Qi.push(yn):Xt.set(hi.id,[yn])});for(var Qr=[],Jr=[],Ur=0;Ur1?Wn.set(En,er-1):Wn.delete(En),Xr.delete(_n)}(Ki),Kr(Le,!1))}else Xu(Ki,Le),Vr(Le,null,!1,!1);if(Ru&&ot){var xn=hs.get(Ki);xn!=null?xn.push($o):hs.set(Ki,[$o])}fu(),No&&B.emit("traceUpdates",Lo),Ki=-1},handleCommitFiberUnmount:function(se){Kr(se,!1)},inspectElement:function(se,re){if(Li(se)){if(re!=null){A0(re);var Le=null;return re[0]==="hooks"&&(Le="hooks"),{id:se,type:"hydrated-path",path:re,value:Ei(Lu(zi,re),Fi(null,Le),re)}}return{id:se,type:"no-change"}}if(Is=!1,zi!==null&&zi.id===se||(x0={}),(zi=na(se))===null)return{id:se,type:"not-found"};re!=null&&A0(re),function(ot){var vt=ot.hooks,Xt=ot.id,xn=ot.props,_n=Q0.get(Xt);if(_n!=null){var yn=_n.elementType,En=_n.stateNode,er=_n.tag,It=_n.type;switch(er){case Tt:case _r:case Cn:$.$r=En;break;case tt:$.$r={hooks:vt,props:xn,type:It};break;case tn:$.$r={props:xn,type:It.render};break;case Ar:case Rr:$.$r={props:xn,type:yn!=null&&yn.type!=null?yn.type:It};break;default:$.$r=null}}else console.warn('Could not find Fiber with id "'.concat(Xt,'"'))}(zi);var Ae=Ht({},zi);return Ae.context=Ei(Ae.context,Fi("context",null)),Ae.hooks=Ei(Ae.hooks,Fi("hooks","hooks")),Ae.props=Ei(Ae.props,Fi("props",null)),Ae.state=Ei(Ae.state,Fi("state",null)),{id:se,type:"full-data",value:Ae}},logElementToConsole:function(se){var re=Li(se)?zi:na(se);if(re!==null){var Le=typeof console.groupCollapsed=="function";Le&&console.groupCollapsed("[Click to expand] %c<".concat(re.displayName||"Component"," />"),"color: var(--dom-tag-name-color); font-weight: normal;"),re.props!==null&&console.log("Props:",re.props),re.state!==null&&console.log("State:",re.state),re.hooks!==null&&console.log("Hooks:",re.hooks);var Ae=_l(se);Ae!==null&&console.log("Nodes:",Ae),re.source!==null&&console.log("Location:",re.source),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Le&&console.groupEnd()}else console.warn('Could not find Fiber with id "'.concat(se,'"'))},prepareViewAttributeSource:function(se,re){Li(se)&&(window.$attribute=Lu(zi,re))},prepareViewElementSource:function(se){var re=Q0.get(se);if(re!=null){var Le=re.elementType,Ae=re.tag,ot=re.type;switch(Ae){case Tt:case _r:case Cn:case tt:$.$type=ot;break;case tn:$.$type=ot.render;break;case Ar:case Rr:$.$type=Le!=null&&Le.type!=null?Le.type:ot;break;default:$.$type=null}}else console.warn('Could not find Fiber with id "'.concat(se,'"'))},overrideSuspense:function(se,re){if(typeof ko!="function"||typeof Zo!="function")throw new Error("Expected overrideSuspense() to not get called for earlier React versions.");re?(Ku.add(se),Ku.size===1&&ko(vs)):(Ku.delete(se),Ku.size===0&&ko(df));var Le=Q0.get(se);Le!=null&&Zo(Le)},overrideValueAtPath:function(se,re,Le,Ae,ot){var vt=Uu(re);if(vt!==null){var Xt=vt.stateNode;switch(se){case"context":switch(Ae=Ae.slice(1),vt.tag){case Tt:Ae.length===0?Xt.context=ot:To(Xt.context,Ae,ot),Xt.forceUpdate()}break;case"hooks":typeof nu=="function"&&nu(vt,Le,Ae,ot);break;case"props":switch(vt.tag){case Tt:vt.pendingProps=Ln(Xt.props,Ae,ot),Xt.forceUpdate();break;default:typeof X0=="function"&&X0(vt,Ae,ot)}break;case"state":switch(vt.tag){case Tt:To(Xt.state,Ae,ot),Xt.forceUpdate()}}}},renamePath:function(se,re,Le,Ae,ot){var vt=Uu(re);if(vt!==null){var Xt=vt.stateNode;switch(se){case"context":switch(Ae=Ae.slice(1),ot=ot.slice(1),vt.tag){case Tt:Ae.length===0||Hr(Xt.context,Ae,ot),Xt.forceUpdate()}break;case"hooks":typeof S0=="function"&&S0(vt,Le,Ae,ot);break;case"props":Xt===null?typeof di=="function"&&di(vt,Ae,ot):(vt.pendingProps=Zt(Xt.props,Ae,ot),Xt.forceUpdate());break;case"state":Hr(Xt.state,Ae,ot),Xt.forceUpdate()}}},renderer:G,setTraceUpdatesEnabled:function(se){No=se},setTrackedPath:Ci,startProfiling:ra,stopProfiling:function(){Ru=!1,Xl=!1},storeAsGlobal:function(se,re,Le){if(Li(se)){var Ae=Lu(zi,re),ot="$reactTemp".concat(Le);window[ot]=Ae,console.log(ot),console.log(Ae)}},updateComponentFilters:function(se){if(Ru)throw Error("Cannot modify filter preferences while profiling");B.getFiberRoots(z).forEach(function(re){Ki=Yr(pi(re.current)),Bu(re.current),Kr(re.current,!1),Ki=-1}),ps(se),Wn.clear(),B.getFiberRoots(z).forEach(function(re){Xu(Ki=Yr(pi(re.current)),re.current),Vr(re.current,null,!1,!1),fu(re),Ki=-1})}}}var Xn;function Qo(B){return(Qo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function lo(B,z,G){if(Xn===void 0)try{throw Error()}catch(De){var $=De.stack.trim().match(/\n( *(at )?)/);Xn=$&&$[1]||""}return` +`+Xn+B}var b0=!1;function yl(B,z,G){if(!B||b0)return"";var $,De=Error.prepareStackTrace;Error.prepareStackTrace=void 0,b0=!0;var me=G.current;G.current=null;try{if(z){var xe=function(){throw Error()};if(Object.defineProperty(xe.prototype,"props",{set:function(){throw Error()}}),(typeof Reflect=="undefined"?"undefined":Qo(Reflect))==="object"&&Reflect.construct){try{Reflect.construct(xe,[])}catch(qe){$=qe}Reflect.construct(B,[],xe)}else{try{xe.call()}catch(qe){$=qe}B.call(xe.prototype)}}else{try{throw Error()}catch(qe){$=qe}B()}}catch(qe){if(qe&&$&&typeof qe.stack=="string"){for(var Z=qe.stack.split(` +`),ke=$.stack.split(` +`),Xe=Z.length-1,ht=ke.length-1;Xe>=1&&ht>=0&&Z[Xe]!==ke[ht];)ht--;for(;Xe>=1&&ht>=0;Xe--,ht--)if(Z[Xe]!==ke[ht]){if(Xe!==1||ht!==1)do if(Xe--,--ht<0||Z[Xe]!==ke[ht])return` +`+Z[Xe].replace(" at new "," at ");while(Xe>=1&&ht>=0);break}}}finally{b0=!1,Error.prepareStackTrace=De,G.current=me}var ie=B?B.displayName||B.name:"";return ie?lo(ie):""}function Ro(B,z,G,$){return yl(B,!1,$)}function Et(B,z,G){var $=B.HostComponent,De=B.LazyComponent,me=B.SuspenseComponent,xe=B.SuspenseListComponent,Z=B.FunctionComponent,ke=B.IndeterminateComponent,Xe=B.SimpleMemoComponent,ht=B.ForwardRef,ie=B.Block,qe=B.ClassComponent;switch(z.tag){case $:return lo(z.type);case De:return lo("Lazy");case me:return lo("Suspense");case xe:return lo("SuspenseList");case Z:case ke:case Xe:return Ro(z.type,0,0,G);case ht:return Ro(z.type.render,0,0,G);case ie:return Ro(z.type._render,0,0,G);case qe:return function(tt,Tt,kt,bt){return yl(tt,!0,bt)}(z.type,0,0,G);default:return""}}function Pt(B,z,G){try{var $="",De=z;do $+=Et(B,De,G),De=De.return;while(De);return $}catch(me){return` +Error generating stack: `+me.message+` +`+me.stack}}function Bn(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=function(ke,Xe){if(!!ke){if(typeof ke=="string")return Ir(ke,Xe);var ht=Object.prototype.toString.call(ke).slice(8,-1);if(ht==="Object"&&ke.constructor&&(ht=ke.constructor.name),ht==="Map"||ht==="Set")return Array.from(ke);if(ht==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ht))return Ir(ke,Xe)}}(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,De=function(){};return{s:De,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function Ir(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G0?Xe[Xe.length-1]:null,qe=ie!==null&&(Wr.test(ie)||wu.test(ie));if(!qe){var tt,Tt=Bn(c0.values());try{for(Tt.s();!(tt=Tt.n()).done;){var kt=tt.value,bt=kt.currentDispatcherRef,on=kt.getCurrentFiber,tn=kt.workTagMap,Lt=on();if(Lt!=null){var gn=Pt(tn,Lt,bt);gn!==""&&Xe.push(gn);break}}}catch(lr){Tt.e(lr)}finally{Tt.f()}}}catch(lr){}me.apply(void 0,Xe)};xe.__REACT_DEVTOOLS_ORIGINAL_METHOD__=me,Ti[De]=xe}catch(Z){}})}}function Fu(B){return(Fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function fs(B,z){for(var G=0;GB.length)&&(z=B.length);for(var G=0,$=new Array(z);G1?Z-1:0),Xe=1;Xe0?ie[ie.length-1]:0),ie.push(nn),Z.set(Ze,Xe(Ft._topLevelWrapper));try{var sn=nt.apply(this,_t);return ie.pop(),sn}catch(yr){throw ie=[],yr}finally{if(ie.length===0){var Yn=Z.get(Ze);if(Yn===void 0)throw new Error("Expected to find root ID.");lr(Yn)}}},performUpdateIfNecessary:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);var nn=Gn(Ze);try{var sn=nt.apply(this,_t),Yn=Gn(Ze);return ht(nn,Yn)||Tt(Ze,Ft,Yn),ie.pop(),sn}catch(nu){throw ie=[],nu}finally{if(ie.length===0){var yr=Z.get(Ze);if(yr===void 0)throw new Error("Expected to find root ID.");lr(yr)}}},receiveComponent:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);var nn=Gn(Ze);try{var sn=nt.apply(this,_t),Yn=Gn(Ze);return ht(nn,Yn)||Tt(Ze,Ft,Yn),ie.pop(),sn}catch(nu){throw ie=[],nu}finally{if(ie.length===0){var yr=Z.get(Ze);if(yr===void 0)throw new Error("Expected to find root ID.");lr(yr)}}},unmountComponent:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);try{var nn=nt.apply(this,_t);return ie.pop(),function(Yn,yr){tn.push(yr),me.delete(yr)}(0,Ft),nn}catch(Yn){throw ie=[],Yn}finally{if(ie.length===0){var sn=Z.get(Ze);if(sn===void 0)throw new Error("Expected to find root ID.");lr(sn)}}}}));var bt=[],on=new Map,tn=[],Lt=0,gn=null;function lr(nt){if(bt.length!==0||tn.length!==0||gn!==null){var _t=tn.length+(gn===null?0:1),Ze=new Array(3+Lt+(_t>0?2+_t:0)+bt.length),Ft=0;if(Ze[Ft++]=z,Ze[Ft++]=nt,Ze[Ft++]=Lt,on.forEach(function(Yn,yr){Ze[Ft++]=yr.length;for(var nu=W0(yr),Cu=0;Cu0){Ze[Ft++]=2,Ze[Ft++]=_t;for(var nn=0;nn"),"color: var(--dom-tag-name-color); font-weight: normal;"),_t.props!==null&&console.log("Props:",_t.props),_t.state!==null&&console.log("State:",_t.state),_t.context!==null&&console.log("Context:",_t.context);var Ft=De(nt);Ft!==null&&console.log("Node:",Ft),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Ze&&console.groupEnd()}else console.warn('Could not find element with id "'.concat(nt,'"'))},overrideSuspense:function(){throw new Error("overrideSuspense not supported by this renderer")},overrideValueAtPath:function(nt,_t,Ze,Ft,nn){var sn=me.get(_t);if(sn!=null){var Yn=sn._instance;if(Yn!=null)switch(nt){case"context":To(Yn.context,Ft,nn),p0(Yn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var yr=sn._currentElement;sn._currentElement=K0(K0({},yr),{},{props:Ln(yr.props,Ft,nn)}),p0(Yn);break;case"state":To(Yn.state,Ft,nn),p0(Yn)}}},renamePath:function(nt,_t,Ze,Ft,nn){var sn=me.get(_t);if(sn!=null){var Yn=sn._instance;if(Yn!=null)switch(nt){case"context":Hr(Yn.context,Ft,nn),p0(Yn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var yr=sn._currentElement;sn._currentElement=K0(K0({},yr),{},{props:Zt(yr.props,Ft,nn)}),p0(Yn);break;case"state":Hr(Yn.state,Ft,nn),p0(Yn)}}},prepareViewAttributeSource:function(nt,_t){var Ze=Rr(nt);Ze!==null&&(window.$attribute=Lu(Ze,_t))},prepareViewElementSource:function(nt){var _t=me.get(nt);if(_t!=null){var Ze=_t._currentElement;Ze!=null?$.$type=Ze.type:console.warn('Could not find element with id "'.concat(nt,'"'))}else console.warn('Could not find instance with id "'.concat(nt,'"'))},renderer:G,setTraceUpdatesEnabled:function(nt){},setTrackedPath:function(nt){},startProfiling:function(){},stopProfiling:function(){},storeAsGlobal:function(nt,_t,Ze){var Ft=Rr(nt);if(Ft!==null){var nn=Lu(Ft,_t),sn="$reactTemp".concat(Ze);window[sn]=nn,console.log(sn),console.log(nn)}},updateComponentFilters:function(nt){}}}function ri(B,z){var G=!1,$={bottom:0,left:0,right:0,top:0},De=z[B];if(De!=null){for(var me=0,xe=Object.keys($);me0?"development":"production";var bt=Function.prototype.toString;if(kt.Mount&&kt.Mount._renderNewRootComponent){var on=bt.call(kt.Mount._renderNewRootComponent);return on.indexOf("function")!==0?"production":on.indexOf("storedMeasure")!==-1?"development":on.indexOf("should be a pure function")!==-1?on.indexOf("NODE_ENV")!==-1||on.indexOf("development")!==-1||on.indexOf("true")!==-1?"development":on.indexOf("nextElement")!==-1||on.indexOf("nextComponent")!==-1?"unminified":"development":on.indexOf("nextElement")!==-1||on.indexOf("nextComponent")!==-1?"unminified":"outdated"}}catch(tn){}return"production"}(ke);try{var ie=window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__!==!1,qe=window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__===!0;(ie||qe)&&(so(ke),Gl({appendComponentStack:ie,breakOnConsoleErrors:qe}))}catch(kt){}var tt=B.__REACT_DEVTOOLS_ATTACH__;if(typeof tt=="function"){var Tt=tt(Z,Xe,ke,B);Z.rendererInterfaces.set(Xe,Tt)}return Z.emit("renderer",{id:Xe,renderer:ke,reactBuildType:ht}),Xe},on:function(ke,Xe){me[ke]||(me[ke]=[]),me[ke].push(Xe)},off:function(ke,Xe){if(me[ke]){var ht=me[ke].indexOf(Xe);ht!==-1&&me[ke].splice(ht,1),me[ke].length||delete me[ke]}},sub:function(ke,Xe){return Z.on(ke,Xe),function(){return Z.off(ke,Xe)}},supportsFiber:!0,checkDCE:function(ke){try{Function.prototype.toString.call(ke).indexOf("^_^")>-1&&(G=!0,setTimeout(function(){throw new Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build")}))}catch(Xe){}},onCommitFiberUnmount:function(ke,Xe){var ht=De.get(ke);ht!=null&&ht.handleCommitFiberUnmount(Xe)},onCommitFiberRoot:function(ke,Xe,ht){var ie=Z.getFiberRoots(ke),qe=Xe.current,tt=ie.has(Xe),Tt=qe.memoizedState==null||qe.memoizedState.element==null;tt||Tt?tt&&Tt&&ie.delete(Xe):ie.add(Xe);var kt=De.get(ke);kt!=null&&kt.handleCommitFiberRoot(Xe,ht)}};Object.defineProperty(B,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!1,enumerable:!1,get:function(){return Z}})})(window);var h0=window.__REACT_DEVTOOLS_GLOBAL_HOOK__,Fs=[{type:1,value:7,isEnabled:!0}];function Ni(B){if(h0!=null){var z=B||{},G=z.host,$=G===void 0?"localhost":G,De=z.nativeStyleEditorValidAttributes,me=z.useHttps,xe=me!==void 0&&me,Z=z.port,ke=Z===void 0?8097:Z,Xe=z.websocket,ht=z.resolveRNStyle,ie=ht===void 0?null:ht,qe=z.isAppActive,tt=xe?"wss":"ws",Tt=null;if((qe===void 0?function(){return!0}:qe)()){var kt=null,bt=[],on=tt+"://"+$+":"+ke,tn=Xe||new window.WebSocket(on);tn.onclose=function(){kt!==null&&kt.emit("shutdown"),Lt()},tn.onerror=function(){Lt()},tn.onmessage=function(gn){var lr;try{if(typeof gn.data!="string")throw Error();lr=JSON.parse(gn.data)}catch(Qn){return void console.error("[React DevTools] Failed to parse JSON: "+gn.data)}bt.forEach(function(Qn){try{Qn(lr)}catch(_r){throw console.log("[React DevTools] Error calling listener",lr),console.log("error:",_r),_r}})},tn.onopen=function(){(kt=new ao({listen:function(Cn){return bt.push(Cn),function(){var Ar=bt.indexOf(Cn);Ar>=0&&bt.splice(Ar,1)}},send:function(Cn,Ar,v0){tn.readyState===tn.OPEN?tn.send(JSON.stringify({event:Cn,payload:Ar})):(kt!==null&&kt.shutdown(),Lt())}})).addListener("inspectElement",function(Cn){var Ar=Cn.id,v0=Cn.rendererID,Rr=gn.rendererInterfaces[v0];if(Rr!=null){var nt=Rr.findNativeNodesForFiberID(Ar);nt!=null&&nt[0]!=null&&gn.emit("showNativeHighlight",nt[0])}}),kt.addListener("updateComponentFilters",function(Cn){Fs=Cn}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null&&kt.send("overrideComponentFilters",Fs);var gn=new Hn(kt);if(gn.addListener("shutdown",function(){h0.emit("shutdown")}),function(Cn,Ar,v0){if(Cn==null)return function(){};var Rr=[Cn.sub("renderer-attached",function(Ze){var Ft=Ze.id,nn=(Ze.renderer,Ze.rendererInterface);Ar.setRendererInterface(Ft,nn),nn.flushInitialOperations()}),Cn.sub("unsupported-renderer-version",function(Ze){Ar.onUnsupportedRenderer(Ze)}),Cn.sub("operations",Ar.onHookOperations),Cn.sub("traceUpdates",Ar.onTraceUpdates)],nt=function(Ze,Ft){var nn=Cn.rendererInterfaces.get(Ze);nn==null&&(typeof Ft.findFiberByHostInstance=="function"?nn=Ms(Cn,Ze,Ft,v0):Ft.ComponentTree&&(nn=ic(Cn,Ze,Ft,v0)),nn!=null&&Cn.rendererInterfaces.set(Ze,nn)),nn!=null?Cn.emit("renderer-attached",{id:Ze,renderer:Ft,rendererInterface:nn}):Cn.emit("unsupported-renderer-version",Ze)};Cn.renderers.forEach(function(Ze,Ft){nt(Ft,Ze)}),Rr.push(Cn.sub("renderer",function(Ze){var Ft=Ze.id,nn=Ze.renderer;nt(Ft,nn)})),Cn.emit("react-devtools",Ar),Cn.reactDevtoolsAgent=Ar;var _t=function(){Rr.forEach(function(Ze){return Ze()}),Cn.rendererInterfaces.forEach(function(Ze){Ze.cleanup()}),Cn.reactDevtoolsAgent=null};Ar.addListener("shutdown",_t),Rr.push(function(){Ar.removeListener("shutdown",_t)})}(h0,gn,window),ie!=null||h0.resolveRNStyle!=null)ea(kt,gn,ie||h0.resolveRNStyle,De||h0.nativeStyleEditorValidAttributes||null);else{var lr,Qn,_r=function(){kt!==null&&ea(kt,gn,lr,Qn)};h0.hasOwnProperty("resolveRNStyle")||Object.defineProperty(h0,"resolveRNStyle",{enumerable:!1,get:function(){return lr},set:function(Cn){lr=Cn,_r()}}),h0.hasOwnProperty("nativeStyleEditorValidAttributes")||Object.defineProperty(h0,"nativeStyleEditorValidAttributes",{enumerable:!1,get:function(){return Qn},set:function(Cn){Qn=Cn,_r()}})}}}else Lt()}function Lt(){Tt===null&&(Tt=setTimeout(function(){return Ni(B)},2e3))}}}])})});var mR=ce(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});pR();var $Q=hR();$Q.connectToDevTools()});var DR=ce(kg=>{"use strict";var yR=kg&&kg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(kg,"__esModule",{value:!0});var gR=h4(),eJ=yR(D9()),_R=yR(eh()),ss=Lw();process.env.DEV==="true"&&mR();var ER=i=>{i==null||i.unsetMeasureFunc(),i==null||i.freeRecursive()};kg.default=eJ.default({schedulePassiveEffects:gR.unstable_scheduleCallback,cancelPassiveEffects:gR.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:i=>{if(i.isStaticDirty){i.isStaticDirty=!1,typeof i.onImmediateRender=="function"&&i.onImmediateRender();return}typeof i.onRender=="function"&&i.onRender()},getChildHostContext:(i,o)=>{let f=i.isInsideText,p=o==="ink-text"||o==="ink-virtual-text";return f===p?i:{isInsideText:p}},shouldSetTextContent:()=>!1,createInstance:(i,o,f,p)=>{if(p.isInsideText&&i==="ink-box")throw new Error(" can\u2019t be nested inside component");let E=i==="ink-text"&&p.isInsideText?"ink-virtual-text":i,t=ss.createNode(E);for(let[k,L]of Object.entries(o))k!=="children"&&(k==="style"?ss.setStyle(t,L):k==="internal_transform"?t.internal_transform=L:k==="internal_static"?t.internal_static=!0:ss.setAttribute(t,k,L));return t},createTextInstance:(i,o,f)=>{if(!f.isInsideText)throw new Error(`Text string "${i}" must be rendered inside component`);return ss.createTextNode(i)},resetTextContent:()=>{},hideTextInstance:i=>{ss.setTextNodeValue(i,"")},unhideTextInstance:(i,o)=>{ss.setTextNodeValue(i,o)},getPublicInstance:i=>i,hideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(_R.default.DISPLAY_NONE)},unhideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(_R.default.DISPLAY_FLEX)},appendInitialChild:ss.appendChildNode,appendChild:ss.appendChildNode,insertBefore:ss.insertBeforeNode,finalizeInitialChildren:(i,o,f,p)=>(i.internal_static&&(p.isStaticDirty=!0,p.staticNode=i),!1),supportsMutation:!0,appendChildToContainer:ss.appendChildNode,insertInContainerBefore:ss.insertBeforeNode,removeChildFromContainer:(i,o)=>{ss.removeChildNode(i,o),ER(o.yogaNode)},prepareUpdate:(i,o,f,p,E)=>{i.internal_static&&(E.isStaticDirty=!0);let t={},k=Object.keys(p);for(let L of k)if(p[L]!==f[L]){if(L==="style"&&typeof p.style=="object"&&typeof f.style=="object"){let C=p.style,U=f.style,q=Object.keys(C);for(let W of q){if(W==="borderStyle"||W==="borderColor"){if(typeof t.style!="object"){let ne={};t.style=ne}t.style.borderStyle=C.borderStyle,t.style.borderColor=C.borderColor}if(C[W]!==U[W]){if(typeof t.style!="object"){let ne={};t.style=ne}t.style[W]=C[W]}}continue}t[L]=p[L]}return t},commitUpdate:(i,o)=>{for(let[f,p]of Object.entries(o))f!=="children"&&(f==="style"?ss.setStyle(i,p):f==="internal_transform"?i.internal_transform=p:f==="internal_static"?i.internal_static=!0:ss.setAttribute(i,f,p))},commitTextUpdate:(i,o,f)=>{ss.setTextNodeValue(i,f)},removeChild:(i,o)=>{ss.removeChildNode(i,o),ER(o.yogaNode)}})});var SR=ce((Are,wR)=>{"use strict";wR.exports=(i,o=1,f)=>{if(f=E0({indent:" ",includeEmptyLines:!1},f),typeof i!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof i}\``);if(typeof o!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof o}\``);if(typeof f.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof f.indent}\``);if(o===0)return i;let p=f.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return i.replace(p,f.indent.repeat(o))}});var TR=ce(Mg=>{"use strict";var tJ=Mg&&Mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Mg,"__esModule",{value:!0});var k4=tJ(eh());Mg.default=i=>i.getComputedWidth()-i.getComputedPadding(k4.default.EDGE_LEFT)-i.getComputedPadding(k4.default.EDGE_RIGHT)-i.getComputedBorder(k4.default.EDGE_LEFT)-i.getComputedBorder(k4.default.EDGE_RIGHT)});var xR=ce((Ore,CR)=>{CR.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var RR=ce((kre,Zw)=>{"use strict";var AR=xR();Zw.exports=AR;Zw.exports.default=AR});var kR=ce((Mre,OR)=>{"use strict";OR.exports=(i,o=process.argv)=>{let f=i.startsWith("-")?"":i.length===1?"-":"--",p=o.indexOf(f+i),E=o.indexOf("--");return p!==-1&&(E===-1||p{"use strict";var nJ=require("os"),NR=require("tty"),of=kR(),{env:Wo}=process,md;of("no-color")||of("no-colors")||of("color=false")||of("color=never")?md=0:(of("color")||of("colors")||of("color=true")||of("color=always"))&&(md=1);"FORCE_COLOR"in Wo&&(Wo.FORCE_COLOR==="true"?md=1:Wo.FORCE_COLOR==="false"?md=0:md=Wo.FORCE_COLOR.length===0?1:Math.min(parseInt(Wo.FORCE_COLOR,10),3));function $w(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function e3(i,o){if(md===0)return 0;if(of("color=16m")||of("color=full")||of("color=truecolor"))return 3;if(of("color=256"))return 2;if(i&&!o&&md===void 0)return 0;let f=md||0;if(Wo.TERM==="dumb")return f;if(process.platform==="win32"){let p=nJ.release().split(".");return Number(p[0])>=10&&Number(p[2])>=10586?Number(p[2])>=14931?3:2:1}if("CI"in Wo)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(p=>p in Wo)||Wo.CI_NAME==="codeship"?1:f;if("TEAMCITY_VERSION"in Wo)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Wo.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Wo)return 1;if(Wo.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Wo){let p=parseInt((Wo.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Wo.TERM_PROGRAM){case"iTerm.app":return p>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Wo.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Wo.TERM)||"COLORTERM"in Wo?1:f}function rJ(i){let o=e3(i,i&&i.isTTY);return $w(o)}MR.exports={supportsColor:rJ,stdout:$w(e3(!0,NR.isatty(1))),stderr:$w(e3(!0,NR.isatty(2)))}});var bR=ce((Lre,FR)=>{"use strict";var iJ=(i,o,f)=>{let p=i.indexOf(o);if(p===-1)return i;let E=o.length,t=0,k="";do k+=i.substr(t,p-t)+o+f,t=p+E,p=i.indexOf(o,t);while(p!==-1);return k+=i.substr(t),k},uJ=(i,o,f,p)=>{let E=0,t="";do{let k=i[p-1]==="\r";t+=i.substr(E,(k?p-1:p)-E)+o+(k?`\r +`:` +`)+f,E=p+1,p=i.indexOf(` +`,E)}while(p!==-1);return t+=i.substr(E),t};FR.exports={stringReplaceAll:iJ,stringEncaseCRLFWithFirstIndex:uJ}});var jR=ce((Fre,PR)=>{"use strict";var oJ=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,IR=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,lJ=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,sJ=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,aJ=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function BR(i){let o=i[0]==="u",f=i[1]==="{";return o&&!f&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):o&&f?String.fromCodePoint(parseInt(i.slice(2,-1),16)):aJ.get(i)||i}function fJ(i,o){let f=[],p=o.trim().split(/\s*,\s*/g),E;for(let t of p){let k=Number(t);if(!Number.isNaN(k))f.push(k);else if(E=t.match(lJ))f.push(E[2].replace(sJ,(L,N,C)=>N?BR(N):C));else throw new Error(`Invalid Chalk template style argument: ${t} (in style '${i}')`)}return f}function cJ(i){IR.lastIndex=0;let o=[],f;for(;(f=IR.exec(i))!==null;){let p=f[1];if(f[2]){let E=fJ(p,f[2]);o.push([p].concat(E))}else o.push([p])}return o}function UR(i,o){let f={};for(let E of o)for(let t of E.styles)f[t[0]]=E.inverse?null:t.slice(1);let p=i;for(let[E,t]of Object.entries(f))if(!!Array.isArray(t)){if(!(E in p))throw new Error(`Unknown Chalk style: ${E}`);p=t.length>0?p[E](...t):p[E]}return p}PR.exports=(i,o)=>{let f=[],p=[],E=[];if(o.replace(oJ,(t,k,L,N,C,U)=>{if(k)E.push(BR(k));else if(N){let q=E.join("");E=[],p.push(f.length===0?q:UR(i,f)(q)),f.push({inverse:L,styles:cJ(N)})}else if(C){if(f.length===0)throw new Error("Found extraneous } in Chalk template literal");p.push(UR(i,f)(E.join(""))),E=[],f.pop()}else E.push(U)}),p.push(E.join("")),f.length>0){let t=`Chalk template literal is missing ${f.length} closing bracket${f.length===1?"":"s"} (\`}\`)`;throw new Error(t)}return p.join("")}});var u3=ce((bre,zR)=>{"use strict";var Ng=_4(),{stdout:t3,stderr:n3}=LR(),{stringReplaceAll:dJ,stringEncaseCRLFWithFirstIndex:pJ}=bR(),{isArray:M4}=Array,qR=["ansi","ansi","ansi256","ansi16m"],cm=Object.create(null),hJ=(i,o={})=>{if(o.level&&!(Number.isInteger(o.level)&&o.level>=0&&o.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let f=t3?t3.level:0;i.level=o.level===void 0?f:o.level},HR=class{constructor(o){return WR(o)}},WR=i=>{let o={};return hJ(o,i),o.template=(...f)=>VR(o.template,...f),Object.setPrototypeOf(o,N4.prototype),Object.setPrototypeOf(o.template,o),o.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},o.template.Instance=HR,o.template};function N4(i){return WR(i)}for(let[i,o]of Object.entries(Ng))cm[i]={get(){let f=L4(this,r3(o.open,o.close,this._styler),this._isEmpty);return Object.defineProperty(this,i,{value:f}),f}};cm.visible={get(){let i=L4(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:i}),i}};var GR=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let i of GR)cm[i]={get(){let{level:o}=this;return function(...f){let p=r3(Ng.color[qR[o]][i](...f),Ng.color.close,this._styler);return L4(this,p,this._isEmpty)}}};for(let i of GR){let o="bg"+i[0].toUpperCase()+i.slice(1);cm[o]={get(){let{level:f}=this;return function(...p){let E=r3(Ng.bgColor[qR[f]][i](...p),Ng.bgColor.close,this._styler);return L4(this,E,this._isEmpty)}}}}var vJ=Object.defineProperties(()=>{},Gf(E0({},cm),{level:{enumerable:!0,get(){return this._generator.level},set(i){this._generator.level=i}}})),r3=(i,o,f)=>{let p,E;return f===void 0?(p=i,E=o):(p=f.openAll+i,E=o+f.closeAll),{open:i,close:o,openAll:p,closeAll:E,parent:f}},L4=(i,o,f)=>{let p=(...E)=>M4(E[0])&&M4(E[0].raw)?YR(p,VR(p,...E)):YR(p,E.length===1?""+E[0]:E.join(" "));return Object.setPrototypeOf(p,vJ),p._generator=i,p._styler=o,p._isEmpty=f,p},YR=(i,o)=>{if(i.level<=0||!o)return i._isEmpty?"":o;let f=i._styler;if(f===void 0)return o;let{openAll:p,closeAll:E}=f;if(o.indexOf("")!==-1)for(;f!==void 0;)o=dJ(o,f.close,f.open),f=f.parent;let t=o.indexOf(` +`);return t!==-1&&(o=pJ(o,E,p,t)),p+o+E},i3,VR=(i,...o)=>{let[f]=o;if(!M4(f)||!M4(f.raw))return o.join(" ");let p=o.slice(1),E=[f.raw[0]];for(let t=1;t{"use strict";var mJ=Lg&&Lg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Lg,"__esModule",{value:!0});var Fg=mJ(u3()),yJ=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,gJ=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,b4=(i,o)=>o==="foreground"?i:"bg"+i[0].toUpperCase()+i.slice(1);Lg.default=(i,o,f)=>{if(!o)return i;if(o in Fg.default){let E=b4(o,f);return Fg.default[E](i)}if(o.startsWith("#")){let E=b4("hex",f);return Fg.default[E](o)(i)}if(o.startsWith("ansi")){let E=gJ.exec(o);if(!E)return i;let t=b4(E[1],f),k=Number(E[2]);return Fg.default[t](k)(i)}if(o.startsWith("rgb")||o.startsWith("hsl")||o.startsWith("hsv")||o.startsWith("hwb")){let E=yJ.exec(o);if(!E)return i;let t=b4(E[1],f),k=Number(E[2]),L=Number(E[3]),N=Number(E[4]);return Fg.default[t](k,L,N)(i)}return i}});var XR=ce(bg=>{"use strict";var KR=bg&&bg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(bg,"__esModule",{value:!0});var _J=KR(RR()),l3=KR(o3());bg.default=(i,o,f,p)=>{if(typeof f.style.borderStyle=="string"){let E=f.yogaNode.getComputedWidth(),t=f.yogaNode.getComputedHeight(),k=f.style.borderColor,L=_J.default[f.style.borderStyle],N=l3.default(L.topLeft+L.horizontal.repeat(E-2)+L.topRight,k,"foreground"),C=(l3.default(L.vertical,k,"foreground")+` +`).repeat(t-2),U=l3.default(L.bottomLeft+L.horizontal.repeat(E-2)+L.bottomRight,k,"foreground");p.write(i,o,N,{transformers:[]}),p.write(i,o+1,C,{transformers:[]}),p.write(i+E-1,o+1,C,{transformers:[]}),p.write(i,o+t-1,U,{transformers:[]})}}});var JR=ce(Pg=>{"use strict";var ih=Pg&&Pg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Pg,"__esModule",{value:!0});var EJ=ih(eh()),DJ=ih(Dw()),wJ=ih(SR()),SJ=ih(kw()),TJ=ih(TR()),CJ=ih(Nw()),xJ=ih(XR()),AJ=(i,o)=>{var f;let p=(f=i.childNodes[0])===null||f===void 0?void 0:f.yogaNode;if(p){let E=p.getComputedLeft(),t=p.getComputedTop();o=` +`.repeat(t)+wJ.default(o,E)}return o},QR=(i,o,f)=>{var p;let{offsetX:E=0,offsetY:t=0,transformers:k=[],skipStaticElements:L}=f;if(L&&i.internal_static)return;let{yogaNode:N}=i;if(N){if(N.getDisplay()===EJ.default.DISPLAY_NONE)return;let C=E+N.getComputedLeft(),U=t+N.getComputedTop(),q=k;if(typeof i.internal_transform=="function"&&(q=[i.internal_transform,...k]),i.nodeName==="ink-text"){let W=CJ.default(i);if(W.length>0){let ne=DJ.default(W),m=TJ.default(N);if(ne>m){let we=(p=i.style.textWrap)!==null&&p!==void 0?p:"wrap";W=SJ.default(W,m,we)}W=AJ(i,W),o.write(C,U,W,{transformers:q})}return}if(i.nodeName==="ink-box"&&xJ.default(C,U,i,o),i.nodeName==="ink-root"||i.nodeName==="ink-box")for(let W of i.childNodes)QR(W,o,{offsetX:C,offsetY:U,transformers:q,skipStaticElements:L})}};Pg.default=QR});var $R=ce((Ure,ZR)=>{"use strict";ZR.exports=i=>{i=Object.assign({onlyFirst:!1},i);let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i.onlyFirst?void 0:"g")}});var t7=ce((jre,s3)=>{"use strict";var RJ=$R(),e7=i=>typeof i=="string"?i.replace(RJ(),""):i;s3.exports=e7;s3.exports.default=e7});var i7=ce((zre,n7)=>{"use strict";var r7="[\uD800-\uDBFF][\uDC00-\uDFFF]";n7.exports=i=>i&&i.exact?new RegExp(`^${r7}$`):new RegExp(r7,"g")});var o7=ce((qre,a3)=>{"use strict";var OJ=t7(),kJ=i7(),u7=i=>OJ(i).replace(kJ()," ").length;a3.exports=u7;a3.exports.default=u7});var f7=ce(Ig=>{"use strict";var l7=Ig&&Ig.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ig,"__esModule",{value:!0});var s7=l7(Rw()),MJ=l7(o7()),a7=class{constructor(o){this.writes=[];let{width:f,height:p}=o;this.width=f,this.height=p}write(o,f,p,E){let{transformers:t}=E;!p||this.writes.push({x:o,y:f,text:p,transformers:t})}get(){let o=[];for(let p=0;pp.trimRight()).join(` +`),height:o.length}}};Ig.default=a7});var p7=ce(Bg=>{"use strict";var f3=Bg&&Bg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Bg,"__esModule",{value:!0});var NJ=f3(eh()),c7=f3(JR()),d7=f3(f7());Bg.default=(i,o)=>{var f;if(i.yogaNode.setWidth(o),i.yogaNode){i.yogaNode.calculateLayout(void 0,void 0,NJ.default.DIRECTION_LTR);let p=new d7.default({width:i.yogaNode.getComputedWidth(),height:i.yogaNode.getComputedHeight()});c7.default(i,p,{skipStaticElements:!0});let E;((f=i.staticNode)===null||f===void 0?void 0:f.yogaNode)&&(E=new d7.default({width:i.staticNode.yogaNode.getComputedWidth(),height:i.staticNode.yogaNode.getComputedHeight()}),c7.default(i.staticNode,E,{skipStaticElements:!1}));let{output:t,height:k}=p.get();return{output:t,outputHeight:k,staticOutput:E?`${E.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var y7=ce((Vre,h7)=>{"use strict";var v7=require("stream"),m7=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],c3={},LJ=i=>{let o=new v7.PassThrough,f=new v7.PassThrough;o.write=E=>i("stdout",E),f.write=E=>i("stderr",E);let p=new console.Console(o,f);for(let E of m7)c3[E]=console[E],console[E]=p[E];return()=>{for(let E of m7)console[E]=c3[E];c3={}}};h7.exports=LJ});var p3=ce(d3=>{"use strict";Object.defineProperty(d3,"__esModule",{value:!0});d3.default=new WeakMap});var v3=ce(h3=>{"use strict";Object.defineProperty(h3,"__esModule",{value:!0});var FJ=su(),g7=FJ.createContext({exit:()=>{}});g7.displayName="InternalAppContext";h3.default=g7});var y3=ce(m3=>{"use strict";Object.defineProperty(m3,"__esModule",{value:!0});var bJ=su(),_7=bJ.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});_7.displayName="InternalStdinContext";m3.default=_7});var _3=ce(g3=>{"use strict";Object.defineProperty(g3,"__esModule",{value:!0});var PJ=su(),E7=PJ.createContext({stdout:void 0,write:()=>{}});E7.displayName="InternalStdoutContext";g3.default=E7});var D3=ce(E3=>{"use strict";Object.defineProperty(E3,"__esModule",{value:!0});var IJ=su(),D7=IJ.createContext({stderr:void 0,write:()=>{}});D7.displayName="InternalStderrContext";E3.default=D7});var P4=ce(w3=>{"use strict";Object.defineProperty(w3,"__esModule",{value:!0});var BJ=su(),w7=BJ.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});w7.displayName="InternalFocusContext";w3.default=w7});var T7=ce((Zre,S7)=>{"use strict";var UJ=/[|\\{}()[\]^$+*?.-]/g;S7.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(UJ,"\\$&")}});var R7=ce(($re,C7)=>{"use strict";var jJ=T7(),x7=[].concat(require("module").builtinModules,"bootstrap_node","node").map(i=>new RegExp(`(?:\\(${i}\\.js:\\d+:\\d+\\)$|^\\s*at ${i}\\.js:\\d+:\\d+$)`));x7.push(/\(internal\/[^:]+:\d+:\d+\)$/,/\s*at internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var I4=class{constructor(o){o=E0({ignoredPackages:[]},o),"internals"in o||(o.internals=I4.nodeInternals()),"cwd"in o||(o.cwd=process.cwd()),this._cwd=o.cwd.replace(/\\/g,"/"),this._internals=[].concat(o.internals,zJ(o.ignoredPackages)),this._wrapCallSite=o.wrapCallSite||!1}static nodeInternals(){return[...x7]}clean(o,f=0){f=" ".repeat(f),Array.isArray(o)||(o=o.split(` +`)),!/^\s*at /.test(o[0])&&/^\s*at /.test(o[1])&&(o=o.slice(1));let p=!1,E=null,t=[];return o.forEach(k=>{if(k=k.replace(/\\/g,"/"),this._internals.some(N=>N.test(k)))return;let L=/^\s*at /.test(k);p?k=k.trimEnd().replace(/^(\s+)at /,"$1"):(k=k.trim(),L&&(k=k.slice(3))),k=k.replace(`${this._cwd}/`,""),k&&(L?(E&&(t.push(E),E=null),t.push(k)):(p=!0,E=k))}),t.map(k=>`${f}${k} +`).join("")}captureString(o,f=this.captureString){typeof o=="function"&&(f=o,o=Infinity);let{stackTraceLimit:p}=Error;o&&(Error.stackTraceLimit=o);let E={};Error.captureStackTrace(E,f);let{stack:t}=E;return Error.stackTraceLimit=p,this.clean(t)}capture(o,f=this.capture){typeof o=="function"&&(f=o,o=Infinity);let{prepareStackTrace:p,stackTraceLimit:E}=Error;Error.prepareStackTrace=(L,N)=>this._wrapCallSite?N.map(this._wrapCallSite):N,o&&(Error.stackTraceLimit=o);let t={};Error.captureStackTrace(t,f);let{stack:k}=t;return Object.assign(Error,{prepareStackTrace:p,stackTraceLimit:E}),k}at(o=this.at){let[f]=this.capture(1,o);if(!f)return{};let p={line:f.getLineNumber(),column:f.getColumnNumber()};A7(p,f.getFileName(),this._cwd),f.isConstructor()&&(p.constructor=!0),f.isEval()&&(p.evalOrigin=f.getEvalOrigin()),f.isNative()&&(p.native=!0);let E;try{E=f.getTypeName()}catch(L){}E&&E!=="Object"&&E!=="[object Object]"&&(p.type=E);let t=f.getFunctionName();t&&(p.function=t);let k=f.getMethodName();return k&&t!==k&&(p.method=k),p}parseLine(o){let f=o&&o.match(qJ);if(!f)return null;let p=f[1]==="new",E=f[2],t=f[3],k=f[4],L=Number(f[5]),N=Number(f[6]),C=f[7],U=f[8],q=f[9],W=f[10]==="native",ne=f[11]===")",m,we={};if(U&&(we.line=Number(U)),q&&(we.column=Number(q)),ne&&C){let Se=0;for(let he=C.length-1;he>0;he--)if(C.charAt(he)===")")Se++;else if(C.charAt(he)==="("&&C.charAt(he-1)===" "&&(Se--,Se===-1&&C.charAt(he-1)===" ")){let ge=C.slice(0,he-1);C=C.slice(he+1),E+=` (${ge}`;break}}if(E){let Se=E.match(HJ);Se&&(E=Se[1],m=Se[2])}return A7(we,C,this._cwd),p&&(we.constructor=!0),t&&(we.evalOrigin=t,we.evalLine=L,we.evalColumn=N,we.evalFile=k&&k.replace(/\\/g,"/")),W&&(we.native=!0),E&&(we.function=E),m&&E!==m&&(we.method=m),we}};function A7(i,o,f){o&&(o=o.replace(/\\/g,"/"),o.startsWith(`${f}/`)&&(o=o.slice(f.length+1)),i.file=o)}function zJ(i){if(i.length===0)return[];let o=i.map(f=>jJ(f));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${o.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var qJ=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),HJ=/^(.*?) \[as (.*?)\]$/;C7.exports=I4});var k7=ce((eie,O7)=>{"use strict";O7.exports=(i,o)=>i.replace(/^\t+/gm,f=>" ".repeat(f.length*(o||2)))});var N7=ce((tie,M7)=>{"use strict";var WJ=k7(),VJ=(i,o)=>{let f=[],p=i-o,E=i+o;for(let t=p;t<=E;t++)f.push(t);return f};M7.exports=(i,o,f)=>{if(typeof i!="string")throw new TypeError("Source code is missing.");if(!o||o<1)throw new TypeError("Line number must start from `1`.");if(i=WJ(i).split(/\r?\n/),!(o>i.length))return f=E0({around:3},f),VJ(o,f.around).filter(p=>i[p-1]!==void 0).map(p=>({line:p,value:i[p-1]}))}});var B4=ce(Zf=>{"use strict";var GJ=Zf&&Zf.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),YJ=Zf&&Zf.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),KJ=Zf&&Zf.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&GJ(o,i,f);return YJ(o,i),o},XJ=Zf&&Zf.__rest||function(i,o){var f={};for(var p in i)Object.prototype.hasOwnProperty.call(i,p)&&o.indexOf(p)<0&&(f[p]=i[p]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var E=0,p=Object.getOwnPropertySymbols(i);E{var{children:f}=i,p=XJ(i,["children"]);let E=Object.assign(Object.assign({},p),{marginLeft:p.marginLeft||p.marginX||p.margin||0,marginRight:p.marginRight||p.marginX||p.margin||0,marginTop:p.marginTop||p.marginY||p.margin||0,marginBottom:p.marginBottom||p.marginY||p.margin||0,paddingLeft:p.paddingLeft||p.paddingX||p.padding||0,paddingRight:p.paddingRight||p.paddingX||p.padding||0,paddingTop:p.paddingTop||p.paddingY||p.padding||0,paddingBottom:p.paddingBottom||p.paddingY||p.padding||0});return L7.default.createElement("ink-box",{ref:o,style:E},f)});S3.displayName="Box";S3.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};Zf.default=S3});var x3=ce(Ug=>{"use strict";var T3=Ug&&Ug.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ug,"__esModule",{value:!0});var QJ=T3(su()),dm=T3(u3()),F7=T3(o3()),C3=({color:i,backgroundColor:o,dimColor:f,bold:p,italic:E,underline:t,strikethrough:k,inverse:L,wrap:N,children:C})=>{if(C==null)return null;let U=q=>(f&&(q=dm.default.dim(q)),i&&(q=F7.default(q,i,"foreground")),o&&(q=F7.default(q,o,"background")),p&&(q=dm.default.bold(q)),E&&(q=dm.default.italic(q)),t&&(q=dm.default.underline(q)),k&&(q=dm.default.strikethrough(q)),L&&(q=dm.default.inverse(q)),q);return QJ.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:N},internal_transform:U},C)};C3.displayName="Text";C3.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};Ug.default=C3});var B7=ce($f=>{"use strict";var JJ=$f&&$f.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),ZJ=$f&&$f.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),$J=$f&&$f.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&JJ(o,i,f);return ZJ(o,i),o},jg=$f&&$f.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty($f,"__esModule",{value:!0});var b7=$J(require("fs")),Vo=jg(su()),P7=jg(R7()),eZ=jg(N7()),Q1=jg(B4()),Ic=jg(x3()),I7=new P7.default({cwd:process.cwd(),internals:P7.default.nodeInternals()}),tZ=({error:i})=>{let o=i.stack?i.stack.split(` +`).slice(1):void 0,f=o?I7.parseLine(o[0]):void 0,p,E=0;if((f==null?void 0:f.file)&&(f==null?void 0:f.line)&&b7.existsSync(f.file)){let t=b7.readFileSync(f.file,"utf8");if(p=eZ.default(t,f.line),p)for(let{line:k}of p)E=Math.max(E,String(k).length)}return Vo.default.createElement(Q1.default,{flexDirection:"column",padding:1},Vo.default.createElement(Q1.default,null,Vo.default.createElement(Ic.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Vo.default.createElement(Ic.default,null," ",i.message)),f&&Vo.default.createElement(Q1.default,{marginTop:1},Vo.default.createElement(Ic.default,{dimColor:!0},f.file,":",f.line,":",f.column)),f&&p&&Vo.default.createElement(Q1.default,{marginTop:1,flexDirection:"column"},p.map(({line:t,value:k})=>Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Q1.default,{width:E+1},Vo.default.createElement(Ic.default,{dimColor:t!==f.line,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0},String(t).padStart(E," "),":")),Vo.default.createElement(Ic.default,{key:t,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0}," "+k)))),i.stack&&Vo.default.createElement(Q1.default,{marginTop:1,flexDirection:"column"},i.stack.split(` +`).slice(1).map(t=>{let k=I7.parseLine(t);return k?Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Ic.default,{dimColor:!0},"- "),Vo.default.createElement(Ic.default,{dimColor:!0,bold:!0},k.function),Vo.default.createElement(Ic.default,{dimColor:!0,color:"gray"}," ","(",k.file,":",k.line,":",k.column,")")):Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Ic.default,{dimColor:!0},"- "),Vo.default.createElement(Ic.default,{dimColor:!0,bold:!0},t))})))};$f.default=tZ});var j7=ce(ec=>{"use strict";var nZ=ec&&ec.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),rZ=ec&&ec.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),iZ=ec&&ec.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&nZ(o,i,f);return rZ(o,i),o},uh=ec&&ec.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(ec,"__esModule",{value:!0});var oh=iZ(su()),U7=uh(ZD()),uZ=uh(v3()),oZ=uh(y3()),lZ=uh(_3()),sZ=uh(D3()),aZ=uh(P4()),fZ=uh(B7()),cZ=" ",dZ="",pZ="",A3=class extends oh.PureComponent{constructor(){super(...arguments);this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=o=>{let{stdin:f}=this.props;if(!this.isRawModeSupported())throw f===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(f.setEncoding("utf8"),o){this.rawModeEnabledCount===0&&(f.addListener("data",this.handleInput),f.resume(),f.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount==0&&(f.setRawMode(!1),f.removeListener("data",this.handleInput),f.pause())},this.handleInput=o=>{o===""&&this.props.exitOnCtrlC&&this.handleExit(),o===pZ&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(o===cZ&&this.focusNext(),o===dZ&&this.focusPrevious())},this.handleExit=o=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(o)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(o=>{let f=o.focusables[0].id;return{activeFocusId:this.findNextFocusable(o)||f}})},this.focusPrevious=()=>{this.setState(o=>{let f=o.focusables[o.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(o)||f}})},this.addFocusable=(o,{autoFocus:f})=>{this.setState(p=>{let E=p.activeFocusId;return!E&&f&&(E=o),{activeFocusId:E,focusables:[...p.focusables,{id:o,isActive:!0}]}})},this.removeFocusable=o=>{this.setState(f=>({activeFocusId:f.activeFocusId===o?void 0:f.activeFocusId,focusables:f.focusables.filter(p=>p.id!==o)}))},this.activateFocusable=o=>{this.setState(f=>({focusables:f.focusables.map(p=>p.id!==o?p:{id:o,isActive:!0})}))},this.deactivateFocusable=o=>{this.setState(f=>({activeFocusId:f.activeFocusId===o?void 0:f.activeFocusId,focusables:f.focusables.map(p=>p.id!==o?p:{id:o,isActive:!1})}))},this.findNextFocusable=o=>{let f=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=f+1;p{let f=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=f-1;p>=0;p--)if(o.focusables[p].isActive)return o.focusables[p].id}}static getDerivedStateFromError(o){return{error:o}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return oh.default.createElement(uZ.default.Provider,{value:{exit:this.handleExit}},oh.default.createElement(oZ.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},oh.default.createElement(lZ.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},oh.default.createElement(sZ.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},oh.default.createElement(aZ.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?oh.default.createElement(fZ.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){U7.default.hide(this.props.stdout)}componentWillUnmount(){U7.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(o){this.handleExit(o)}};ec.default=A3;A3.displayName="InternalApp"});var W7=ce(tc=>{"use strict";var hZ=tc&&tc.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),vZ=tc&&tc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),mZ=tc&&tc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&hZ(o,i,f);return vZ(o,i),o},nc=tc&&tc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(tc,"__esModule",{value:!0});var yZ=nc(su()),z7=B5(),gZ=nc(Z5()),_Z=nc(GD()),EZ=nc(u9()),DZ=nc(l9()),U4=nc(DR()),wZ=nc(p7()),SZ=nc(JD()),TZ=nc(y7()),CZ=mZ(Lw()),xZ=nc(p3()),AZ=nc(j7()),pm=process.env.CI==="false"?!1:EZ.default,q7=()=>{},H7=class{constructor(o){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:f,outputHeight:p,staticOutput:E}=wZ.default(this.rootNode,this.options.stdout.columns||80),t=E&&E!==` +`;if(this.options.debug){t&&(this.fullStaticOutput+=E),this.options.stdout.write(this.fullStaticOutput+f);return}if(pm){t&&this.options.stdout.write(E),this.lastOutput=f;return}if(t&&(this.fullStaticOutput+=E),p>=this.options.stdout.rows){this.options.stdout.write(_Z.default.clearTerminal+this.fullStaticOutput+f),this.lastOutput=f;return}t&&(this.log.clear(),this.options.stdout.write(E),this.log(f)),!t&&f!==this.lastOutput&&this.throttledLog(f),this.lastOutput=f},DZ.default(this),this.options=o,this.rootNode=CZ.createNode("ink-root"),this.rootNode.onRender=o.debug?this.onRender:z7.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=gZ.default.create(o.stdout),this.throttledLog=o.debug?this.log:z7.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=U4.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=SZ.default(this.unmount,{alwaysLast:!1}),process.env.DEV==="true"&&U4.default.injectIntoDevTools({bundleType:0,version:"16.13.1",rendererPackageName:"ink"}),o.patchConsole&&this.patchConsole(),pm||(o.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{o.stdout.off("resize",this.onRender)})}render(o){let f=yZ.default.createElement(AZ.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},o);U4.default.updateContainer(f,this.container,null,q7)}writeToStdout(o){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(o+this.fullStaticOutput+this.lastOutput);return}if(pm){this.options.stdout.write(o);return}this.log.clear(),this.options.stdout.write(o),this.log(this.lastOutput)}}writeToStderr(o){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(o),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(pm){this.options.stderr.write(o);return}this.log.clear(),this.options.stderr.write(o),this.log(this.lastOutput)}}unmount(o){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),pm?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,U4.default.updateContainer(null,this.container,null,q7),xZ.default.delete(this.options.stdout),o instanceof Error?this.rejectExitPromise(o):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((o,f)=>{this.resolveExitPromise=o,this.rejectExitPromise=f})),this.exitPromise}clear(){!pm&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=TZ.default((o,f)=>{o==="stdout"&&this.writeToStdout(f),o==="stderr"&&(f.startsWith("The above error occurred")||this.writeToStderr(f))}))}};tc.default=H7});var G7=ce(zg=>{"use strict";var V7=zg&&zg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(zg,"__esModule",{value:!0});var RZ=V7(W7()),j4=V7(p3()),OZ=require("stream"),NZ=(i,o)=>{let f=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},kZ(o)),p=MZ(f.stdout,()=>new RZ.default(f));return p.render(i),{rerender:p.render,unmount:()=>p.unmount(),waitUntilExit:p.waitUntilExit,cleanup:()=>j4.default.delete(f.stdout),clear:p.clear}};zg.default=NZ;var kZ=(i={})=>i instanceof OZ.Stream?{stdout:i,stdin:process.stdin}:i,MZ=(i,o)=>{let f;return j4.default.has(i)?f=j4.default.get(i):(f=o(),j4.default.set(i,f)),f}});var K7=ce(J1=>{"use strict";var LZ=J1&&J1.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),FZ=J1&&J1.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),bZ=J1&&J1.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&LZ(o,i,f);return FZ(o,i),o};Object.defineProperty(J1,"__esModule",{value:!0});var qg=bZ(su()),Y7=i=>{let{items:o,children:f,style:p}=i,[E,t]=qg.useState(0),k=qg.useMemo(()=>o.slice(E),[o,E]);qg.useLayoutEffect(()=>{t(o.length)},[o.length]);let L=k.map((C,U)=>f(C,E+U)),N=qg.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},p),[p]);return qg.default.createElement("ink-box",{internal_static:!0,style:N},L)};Y7.displayName="Static";J1.default=Y7});var Q7=ce(Hg=>{"use strict";var PZ=Hg&&Hg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Hg,"__esModule",{value:!0});var IZ=PZ(su()),X7=({children:i,transform:o})=>i==null?null:IZ.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:o},i);X7.displayName="Transform";Hg.default=X7});var Z7=ce(Wg=>{"use strict";var BZ=Wg&&Wg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Wg,"__esModule",{value:!0});var UZ=BZ(su()),J7=({count:i=1})=>UZ.default.createElement("ink-text",null,` +`.repeat(i));J7.displayName="Newline";Wg.default=J7});var tO=ce(Vg=>{"use strict";var $7=Vg&&Vg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Vg,"__esModule",{value:!0});var jZ=$7(su()),zZ=$7(B4()),eO=()=>jZ.default.createElement(zZ.default,{flexGrow:1});eO.displayName="Spacer";Vg.default=eO});var z4=ce(Gg=>{"use strict";var qZ=Gg&&Gg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Gg,"__esModule",{value:!0});var HZ=su(),WZ=qZ(y3()),VZ=()=>HZ.useContext(WZ.default);Gg.default=VZ});var rO=ce(Yg=>{"use strict";var GZ=Yg&&Yg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Yg,"__esModule",{value:!0});var nO=su(),YZ=GZ(z4()),KZ=(i,o={})=>{let{stdin:f,setRawMode:p,internal_exitOnCtrlC:E}=YZ.default();nO.useEffect(()=>{if(o.isActive!==!1)return p(!0),()=>{p(!1)}},[o.isActive,p]),nO.useEffect(()=>{if(o.isActive===!1)return;let t=k=>{let L=String(k),N={upArrow:L==="",downArrow:L==="",leftArrow:L==="",rightArrow:L==="",pageDown:L==="[6~",pageUp:L==="[5~",return:L==="\r",escape:L==="",ctrl:!1,shift:!1,tab:L===" "||L==="",backspace:L==="\b",delete:L==="\x7F"||L==="[3~",meta:!1};L<=""&&!N.return&&(L=String.fromCharCode(L.charCodeAt(0)+"a".charCodeAt(0)-1),N.ctrl=!0),L.startsWith("")&&(L=L.slice(1),N.meta=!0);let C=L>="A"&&L<="Z",U=L>="\u0410"&&L<="\u042F";L.length===1&&(C||U)&&(N.shift=!0),N.tab&&L==="[Z"&&(N.shift=!0),(N.tab||N.backspace||N.delete)&&(L=""),(!(L==="c"&&N.ctrl)||!E)&&i(L,N)};return f==null||f.on("data",t),()=>{f==null||f.off("data",t)}},[o.isActive,f,E,i])};Yg.default=KZ});var iO=ce(Kg=>{"use strict";var XZ=Kg&&Kg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Kg,"__esModule",{value:!0});var QZ=su(),JZ=XZ(v3()),ZZ=()=>QZ.useContext(JZ.default);Kg.default=ZZ});var uO=ce(Xg=>{"use strict";var $Z=Xg&&Xg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Xg,"__esModule",{value:!0});var e$=su(),t$=$Z(_3()),n$=()=>e$.useContext(t$.default);Xg.default=n$});var oO=ce(Qg=>{"use strict";var r$=Qg&&Qg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Qg,"__esModule",{value:!0});var i$=su(),u$=r$(D3()),o$=()=>i$.useContext(u$.default);Qg.default=o$});var sO=ce(Jg=>{"use strict";var lO=Jg&&Jg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Jg,"__esModule",{value:!0});var Zg=su(),l$=lO(P4()),s$=lO(z4()),a$=({isActive:i=!0,autoFocus:o=!1}={})=>{let{isRawModeSupported:f,setRawMode:p}=s$.default(),{activeId:E,add:t,remove:k,activate:L,deactivate:N}=Zg.useContext(l$.default),C=Zg.useMemo(()=>Math.random().toString().slice(2,7),[]);return Zg.useEffect(()=>(t(C,{autoFocus:o}),()=>{k(C)}),[C,o]),Zg.useEffect(()=>{i?L(C):N(C)},[i,C]),Zg.useEffect(()=>{if(!(!f||!i))return p(!0),()=>{p(!1)}},[i]),{isFocused:Boolean(C)&&E===C}};Jg.default=a$});var aO=ce($g=>{"use strict";var f$=$g&&$g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty($g,"__esModule",{value:!0});var c$=su(),d$=f$(P4()),p$=()=>{let i=c$.useContext(d$.default);return{enableFocus:i.enableFocus,disableFocus:i.disableFocus,focusNext:i.focusNext,focusPrevious:i.focusPrevious}};$g.default=p$});var fO=ce(R3=>{"use strict";Object.defineProperty(R3,"__esModule",{value:!0});R3.default=i=>{var o,f,p,E;return{width:(f=(o=i.yogaNode)===null||o===void 0?void 0:o.getComputedWidth())!==null&&f!==void 0?f:0,height:(E=(p=i.yogaNode)===null||p===void 0?void 0:p.getComputedHeight())!==null&&E!==void 0?E:0}}});var lh=ce(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});var h$=G7();Object.defineProperty(ql,"render",{enumerable:!0,get:function(){return h$.default}});var v$=B4();Object.defineProperty(ql,"Box",{enumerable:!0,get:function(){return v$.default}});var m$=x3();Object.defineProperty(ql,"Text",{enumerable:!0,get:function(){return m$.default}});var y$=K7();Object.defineProperty(ql,"Static",{enumerable:!0,get:function(){return y$.default}});var g$=Q7();Object.defineProperty(ql,"Transform",{enumerable:!0,get:function(){return g$.default}});var _$=Z7();Object.defineProperty(ql,"Newline",{enumerable:!0,get:function(){return _$.default}});var E$=tO();Object.defineProperty(ql,"Spacer",{enumerable:!0,get:function(){return E$.default}});var D$=rO();Object.defineProperty(ql,"useInput",{enumerable:!0,get:function(){return D$.default}});var w$=iO();Object.defineProperty(ql,"useApp",{enumerable:!0,get:function(){return w$.default}});var S$=z4();Object.defineProperty(ql,"useStdin",{enumerable:!0,get:function(){return S$.default}});var T$=uO();Object.defineProperty(ql,"useStdout",{enumerable:!0,get:function(){return T$.default}});var C$=oO();Object.defineProperty(ql,"useStderr",{enumerable:!0,get:function(){return C$.default}});var x$=sO();Object.defineProperty(ql,"useFocus",{enumerable:!0,get:function(){return x$.default}});var A$=aO();Object.defineProperty(ql,"useFocusManager",{enumerable:!0,get:function(){return A$.default}});var R$=fO();Object.defineProperty(ql,"measureElement",{enumerable:!0,get:function(){return R$.default}})});var k$={};sS(k$,{default:()=>N$,versionUtils:()=>RD});var M3=Mi(require("@yarnpkg/core"));var X_=Mi(require("@yarnpkg/cli")),em=Mi(require("@yarnpkg/core")),Q_=Mi(require("@yarnpkg/core")),cd=Mi(require("clipanion"));var RD={};sS(RD,{Decision:()=>Nu,applyPrerelease:()=>v5,applyReleases:()=>ND,applyStrategy:()=>Y_,clearVersionFiles:()=>OD,fetchBase:()=>pK,fetchChangedFiles:()=>vK,fetchRoot:()=>hK,getUndecidedDependentWorkspaces:()=>Zy,getUndecidedWorkspaces:()=>K_,openVersionFile:()=>$v,requireMoreDecisions:()=>yK,resolveVersionFiles:()=>Jy,suggestStrategy:()=>MD,updateVersionFiles:()=>kD,validateReleaseDecision:()=>Zv});var Gi=Mi(require("@yarnpkg/core")),D0=Mi(require("@yarnpkg/fslib")),W1=Mi(require("@yarnpkg/parsers")),Zp=Mi(require("@yarnpkg/plugin-git")),Jv=Mi(require("clipanion")),h5=Mi(p5()),Fc=Mi(require("semver")),pK=Zp.gitUtils.fetchBase,hK=Zp.gitUtils.fetchRoot,vK=Zp.gitUtils.fetchChangedFiles,mK=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,Nu;(function(k){k.UNDECIDED="undecided",k.DECLINE="decline",k.MAJOR="major",k.MINOR="minor",k.PATCH="patch",k.PRERELEASE="prerelease"})(Nu||(Nu={}));function Zv(i){let o=Fc.default.valid(i);return o||Gi.miscUtils.validateEnum((0,h5.default)(Nu,"UNDECIDED"),i)}async function Jy(i,{prerelease:o=null}={}){var t;let f=new Map,p=i.configuration.get("deferredVersionFolder");if(!D0.xfs.existsSync(p))return new Map;let E=await D0.xfs.readdirPromise(p);for(let k of E){if(!k.endsWith(".yml"))continue;let L=D0.ppath.join(p,k),N=await D0.xfs.readFilePromise(L,"utf8"),C=(0,W1.parseSyml)(N);for(let[U,q]of Object.entries(C.releases||{})){if(q===Nu.DECLINE)continue;let W=Gi.structUtils.parseIdent(U),ne=i.tryWorkspaceByIdent(W);if(ne===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${D0.ppath.basename(L)} references ${U})`);if(ne.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${Gi.structUtils.prettyLocator(i.configuration,ne.anchoredLocator)})`);let m=(t=ne.manifest.raw.stableVersion)!=null?t:ne.manifest.version,we=f.get(ne),Se=Y_(m,Zv(q));if(Se===null)throw new Error(`Assertion failed: Expected ${m} to support being bumped via strategy ${q}`);let he=typeof we!="undefined"?Fc.default.gt(Se,we)?Se:we:Se;f.set(ne,he)}}return o&&(f=new Map([...f].map(([k,L])=>[k,v5(L,{current:k.manifest.version,prerelease:o})]))),f}async function OD(i){let o=i.configuration.get("deferredVersionFolder");!D0.xfs.existsSync(o)||await D0.xfs.removePromise(o)}async function kD(i){let o=i.configuration.get("deferredVersionFolder");if(!D0.xfs.existsSync(o))return;let f=await D0.xfs.readdirPromise(o);for(let p of f){if(!p.endsWith(".yml"))continue;let E=D0.ppath.join(o,p),t=await D0.xfs.readFilePromise(E,"utf8"),k=(0,W1.parseSyml)(t),L=k==null?void 0:k.releases;if(!!L){for(let N of Object.keys(L)){let C=Gi.structUtils.parseLocator(N);i.tryWorkspaceByLocator(C)===null&&delete k.releases[N]}await D0.xfs.changeFilePromise(E,(0,W1.stringifySyml)(new W1.stringifySyml.PreserveOrdering(k)))}}}async function $v(i,{allowEmpty:o=!1}={}){let f=i.configuration;if(f.projectCwd===null)throw new Jv.UsageError("This command can only be run from within a Yarn project");let p=await Zp.gitUtils.fetchRoot(f.projectCwd),E=p!==null?await Zp.gitUtils.fetchBase(p,{baseRefs:f.get("changesetBaseRefs")}):null,t=p!==null?await Zp.gitUtils.fetchChangedFiles(p,{base:E.hash,project:i}):[],k=f.get("deferredVersionFolder"),L=t.filter(ne=>D0.ppath.contains(k,ne)!==null);if(L.length>1)throw new Jv.UsageError(`Your current branch contains multiple versioning files; this isn't supported: +- ${L.map(ne=>D0.npath.fromPortablePath(ne)).join(` +- `)}`);let N=new Set(Gi.miscUtils.mapAndFilter(t,ne=>{let m=i.tryWorkspaceByFilePath(ne);return m===null?Gi.miscUtils.mapAndFilter.skip:m}));if(L.length===0&&N.size===0&&!o)return null;let C=L.length===1?L[0]:D0.ppath.join(k,`${Gi.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),U=D0.xfs.existsSync(C)?await D0.xfs.readFilePromise(C,"utf8"):"{}",q=(0,W1.parseSyml)(U),W=new Map;for(let ne of q.declined||[]){let m=Gi.structUtils.parseIdent(ne),we=i.getWorkspaceByIdent(m);W.set(we,Nu.DECLINE)}for(let[ne,m]of Object.entries(q.releases||{})){let we=Gi.structUtils.parseIdent(ne),Se=i.getWorkspaceByIdent(we);W.set(Se,Zv(m))}return{project:i,root:p,baseHash:E!==null?E.hash:null,baseTitle:E!==null?E.title:null,changedFiles:new Set(t),changedWorkspaces:N,releaseRoots:new Set([...N].filter(ne=>ne.manifest.version!==null)),releases:W,async saveAll(){let ne={},m=[],we=[];for(let Se of i.workspaces){if(Se.manifest.version===null)continue;let he=Gi.structUtils.stringifyIdent(Se.locator),ge=W.get(Se);ge===Nu.DECLINE?m.push(he):typeof ge!="undefined"?ne[he]=Zv(ge):N.has(Se)&&we.push(he)}await D0.xfs.mkdirPromise(D0.ppath.dirname(C),{recursive:!0}),await D0.xfs.changeFilePromise(C,(0,W1.stringifySyml)(new W1.stringifySyml.PreserveOrdering({releases:Object.keys(ne).length>0?ne:void 0,declined:m.length>0?m:void 0,undecided:we.length>0?we:void 0})))}}}function yK(i){return K_(i).size>0||Zy(i).length>0}function K_(i){let o=new Set;for(let f of i.changedWorkspaces)f.manifest.version!==null&&(i.releases.has(f)||o.add(f));return o}function Zy(i,{include:o=new Set}={}){let f=[],p=new Map(Gi.miscUtils.mapAndFilter([...i.releases],([t,k])=>k===Nu.DECLINE?Gi.miscUtils.mapAndFilter.skip:[t.anchoredLocator.locatorHash,t])),E=new Map(Gi.miscUtils.mapAndFilter([...i.releases],([t,k])=>k!==Nu.DECLINE?Gi.miscUtils.mapAndFilter.skip:[t.anchoredLocator.locatorHash,t]));for(let t of i.project.workspaces)if(!(!o.has(t)&&(E.has(t.anchoredLocator.locatorHash)||p.has(t.anchoredLocator.locatorHash)))&&t.manifest.version!==null)for(let k of Gi.Manifest.hardDependencies)for(let L of t.manifest.getForScope(k).values()){let N=i.project.tryWorkspaceByDescriptor(L);N!==null&&p.has(N.anchoredLocator.locatorHash)&&f.push([t,N])}return f}function MD(i,o){let f=Fc.default.clean(o);for(let p of Object.values(Nu))if(p!==Nu.UNDECIDED&&p!==Nu.DECLINE&&Fc.default.inc(i,p)===f)return p;return null}function Y_(i,o){if(Fc.default.valid(o))return o;if(i===null)throw new Jv.UsageError(`Cannot apply the release strategy "${o}" unless the workspace already has a valid version`);if(!Fc.default.valid(i))throw new Jv.UsageError(`Cannot apply the release strategy "${o}" on a non-semver version (${i})`);let f=Fc.default.inc(i,o);if(f===null)throw new Jv.UsageError(`Cannot apply the release strategy "${o}" on the specified version (${i})`);return f}function ND(i,o,{report:f}){let p=new Map;for(let E of i.workspaces)for(let t of Gi.Manifest.allDependencies)for(let k of E.manifest[t].values()){let L=i.tryWorkspaceByDescriptor(k);if(L===null||!o.has(L))continue;Gi.miscUtils.getArrayWithDefault(p,L).push([E,t,k.identHash])}for(let[E,t]of o){let k=E.manifest.version;E.manifest.version=t,Fc.default.prerelease(t)===null?delete E.manifest.raw.stableVersion:E.manifest.raw.stableVersion||(E.manifest.raw.stableVersion=k);let L=E.manifest.name!==null?Gi.structUtils.stringifyIdent(E.manifest.name):null;f.reportInfo(Gi.MessageName.UNNAMED,`${Gi.structUtils.prettyLocator(i.configuration,E.anchoredLocator)}: Bumped to ${t}`),f.reportJson({cwd:D0.npath.fromPortablePath(E.cwd),ident:L,oldVersion:k,newVersion:t});let N=p.get(E);if(typeof N!="undefined")for(let[C,U,q]of N){let W=C.manifest[U].get(q);if(typeof W=="undefined")throw new Error("Assertion failed: The dependency should have existed");let ne=W.range,m=!1;if(ne.startsWith(Gi.WorkspaceResolver.protocol)&&(ne=ne.slice(Gi.WorkspaceResolver.protocol.length),m=!0,ne===E.relativeCwd))continue;let we=ne.match(mK);if(!we){f.reportWarning(Gi.MessageName.UNNAMED,`Couldn't auto-upgrade range ${ne} (in ${Gi.structUtils.prettyLocator(i.configuration,C.anchoredLocator)})`);continue}let Se=`${we[1]}${t}`;m&&(Se=`${Gi.WorkspaceResolver.protocol}${Se}`);let he=Gi.structUtils.makeDescriptor(W,Se);C.manifest[U].set(q,he)}}}var gK=new Map([["%n",{extract:i=>i.length>=1?[i[0],i.slice(1)]:null,generate:(i=0)=>`${i+1}`}]]);function v5(i,{current:o,prerelease:f}){let p=new Fc.default.SemVer(o),E=p.prerelease.slice(),t=[];p.prerelease=[],p.format()!==i&&(E.length=0);let k=!0,L=f.split(/\./g);for(let N of L){let C=gK.get(N);if(typeof C=="undefined")t.push(N),E[0]===N?E.shift():k=!1;else{let U=k?C.extract(E):null;U!==null&&typeof U[0]=="number"?(t.push(C.generate(U[0])),E=U[1]):(t.push(C.generate()),k=!1)}}return p.prerelease&&(p.prerelease=[]),`${i}-${t.join(".")}`}var $y=class extends X_.BaseCommand{constructor(){super(...arguments);this.all=cd.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=cd.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=cd.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=cd.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=cd.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let o=await em.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await Q_.Project.find(o,this.context.cwd),E=await em.Cache.find(o);if(!p)throw new X_.WorkspaceRequiredError(f.cwd,this.context.cwd);return await f.restoreInstallState({restoreResolutions:!1}),(await Q_.StreamReport.start({configuration:o,json:this.json,stdout:this.context.stdout},async k=>{let L=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,N=await Jy(f,{prerelease:L}),C=new Map;if(this.all)C=N;else{let U=this.recursive?p.getRecursiveWorkspaceDependencies():[p];for(let q of U){let W=N.get(q);typeof W!="undefined"&&C.set(q,W)}}if(C.size===0){let U=N.size>0?" Did you want to add --all?":"";k.reportWarning(em.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${U}`);return}ND(f,C,{report:k}),this.dryRun||(L||(this.all?await OD(f):await kD(f)),k.reportSeparator(),await f.install({cache:E,report:k}))})).exitCode()}};$y.paths=[["version","apply"]],$y.usage=cd.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});var m5=$y;var e_=Mi(require("@yarnpkg/cli")),s0=Mi(require("@yarnpkg/core")),rc=Mi(require("@yarnpkg/fslib"));var cO=Mi(lh()),sh=Mi(su()),dO=(0,sh.memo)(({active:i})=>{let o=(0,sh.useMemo)(()=>i?"\u25C9":"\u25EF",[i]),f=(0,sh.useMemo)(()=>i?"green":"yellow",[i]);return sh.default.createElement(cO.Text,{color:f},o)});var yd=Mi(lh()),Js=Mi(su());var pO=Mi(lh()),q4=Mi(su());function hm({active:i},o,f){let{stdin:p}=(0,pO.useStdin)(),E=(0,q4.useCallback)((t,k)=>o(t,k),f);(0,q4.useEffect)(()=>{if(!(!i||!p))return p.on("keypress",E),()=>{p.off("keypress",E)}},[i,E,p])}var ah;(function(f){f.BEFORE="before",f.AFTER="after"})(ah||(ah={}));var hO=function({active:i},o,f){hm({active:i},(p,E)=>{E.name==="tab"&&(E.shift?o(ah.BEFORE):o(ah.AFTER))},f)};var H4=function(i,o,{active:f,minus:p,plus:E,set:t,loop:k=!0}){hm({active:f},(L,N)=>{let C=o.indexOf(i);switch(N.name){case p:{let U=C-1;if(k){t(o[(o.length+U)%o.length]);return}if(U<0)return;t(o[U])}break;case E:{let U=C+1;if(k){t(o[U%o.length]);return}if(U>=o.length)return;t(o[U])}break}},[o,i,E,t,k])};var O3=({active:i=!0,children:o=[],radius:f=10,size:p=1,loop:E=!0,onFocusRequest:t,willReachEnd:k})=>{let L=Se=>{if(Se.key===null)throw new Error("Expected all children to have a key");return Se.key},N=Js.default.Children.map(o,Se=>L(Se)),C=N[0],[U,q]=(0,Js.useState)(C),W=N.indexOf(U);(0,Js.useEffect)(()=>{N.includes(U)||q(C)},[o]),(0,Js.useEffect)(()=>{k&&W>=N.length-2&&k()},[W]),hO({active:i&&!!t},Se=>{t==null||t(Se)},[t]),H4(U,N,{active:i,minus:"up",plus:"down",set:q,loop:E});let ne=W-f,m=W+f;m>N.length&&(ne-=m-N.length,m=N.length),ne<0&&(m+=-ne,ne=0),m>=N.length&&(m=N.length-1);let we=[];for(let Se=ne;Se<=m;++Se){let he=N[Se],ge=i&&he===U;we.push(Js.default.createElement(yd.Box,{key:he,height:p},Js.default.createElement(yd.Box,{marginLeft:1,marginRight:1},Js.default.createElement(yd.Text,null,ge?Js.default.createElement(yd.Text,{color:"cyan",bold:!0},">"):" ")),Js.default.createElement(yd.Box,null,Js.default.cloneElement(o[Se],{active:ge}))))}return Js.default.createElement(yd.Box,{flexDirection:"column",width:"100%"},we)};var W4=Mi(lh()),k3=Mi(su());var vO=Mi(lh()),Z1=Mi(su()),mO=Mi(require("readline")),O$=Z1.default.createContext(null),yO=({children:i})=>{let{stdin:o,setRawMode:f}=(0,vO.useStdin)();(0,Z1.useEffect)(()=>{f&&f(!0),o&&(0,mO.emitKeypressEvents)(o)},[o,f]);let[p,E]=(0,Z1.useState)(new Map),t=(0,Z1.useMemo)(()=>({getAll:()=>p,get:k=>p.get(k),set:(k,L)=>E(new Map([...p,[k,L]]))}),[p,E]);return Z1.default.createElement(O$.Provider,{value:t,children:i})};async function gO(i,o,{stdin:f,stdout:p,stderr:E}={}){let t,k=N=>{let{exit:C}=(0,W4.useApp)();hm({active:!0},(U,q)=>{q.name==="return"&&(t=N,C())},[C,N])},{waitUntilExit:L}=(0,W4.render)(k3.default.createElement(yO,null,k3.default.createElement(i,Gf(E0({},o),{useSubmit:k}))),{stdin:f,stdout:p,stderr:E});return await L(),t}var fh=Mi(require("clipanion")),Dr=Mi(lh()),Tn=Mi(su()),V4=Mi(require("semver"));var t_=class extends e_.BaseCommand{constructor(){super(...arguments);this.interactive=fh.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){let o=await s0.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await s0.Project.find(o,this.context.cwd);if(!p)throw new e_.WorkspaceRequiredError(f.cwd,this.context.cwd);await f.restoreInstallState();let E=await $v(f);if(E===null||E.releaseRoots.size===0)return 0;if(E.root===null)throw new fh.UsageError("This command can only be run on Git repositories");let t=()=>Tn.default.createElement(Dr.Box,{flexDirection:"row",paddingBottom:1},Tn.default.createElement(Dr.Box,{flexDirection:"column",width:60},Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},""),"/",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},""),"/",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(Dr.Box,{marginLeft:1},Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to save.")),Tn.default.createElement(Dr.Box,{marginLeft:1},Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),k=({workspace:W,active:ne,decision:m,setDecision:we})=>{var ze;let Se=(ze=W.manifest.raw.stableVersion)!=null?ze:W.manifest.version;if(Se===null)throw new Error(`Assertion failed: The version should have been set (${s0.structUtils.prettyLocator(o,W.anchoredLocator)})`);if(V4.default.prerelease(Se)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${Se})`);let he=[Nu.UNDECIDED,Nu.DECLINE,Nu.PATCH,Nu.MINOR,Nu.MAJOR];H4(m,he,{active:ne,minus:"left",plus:"right",set:we});let ge=m===Nu.UNDECIDED?Tn.default.createElement(Dr.Text,{color:"yellow"},Se):m===Nu.DECLINE?Tn.default.createElement(Dr.Text,{color:"green"},Se):Tn.default.createElement(Dr.Text,null,Tn.default.createElement(Dr.Text,{color:"magenta"},Se)," \u2192 ",Tn.default.createElement(Dr.Text,{color:"green"},V4.default.valid(m)?m:V4.default.inc(Se,m)));return Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,s0.structUtils.prettyLocator(o,W.anchoredLocator)," - ",ge)),Tn.default.createElement(Dr.Box,null,he.map(pe=>Tn.default.createElement(Dr.Box,{key:pe,paddingLeft:2},Tn.default.createElement(Dr.Text,null,Tn.default.createElement(dO,{active:pe===m})," ",pe)))))},L=W=>{let ne=new Set(E.releaseRoots),m=new Map([...W].filter(([we])=>ne.has(we)));for(;;){let we=Zy({project:E.project,releases:m}),Se=!1;if(we.length>0){for(let[he]of we)if(!ne.has(he)){ne.add(he),Se=!0;let ge=W.get(he);typeof ge!="undefined"&&m.set(he,ge)}}if(!Se)break}return{relevantWorkspaces:ne,relevantReleases:m}},N=()=>{let[W,ne]=(0,Tn.useState)(()=>new Map(E.releases)),m=(0,Tn.useCallback)((we,Se)=>{let he=new Map(W);Se!==Nu.UNDECIDED?he.set(we,Se):he.delete(we);let{relevantReleases:ge}=L(he);ne(ge)},[W,ne]);return[W,m]},C=({workspaces:W,releases:ne})=>{let m=[];m.push(`${W.size} total`);let we=0,Se=0;for(let he of W){let ge=ne.get(he);typeof ge=="undefined"?Se+=1:ge!==Nu.DECLINE&&(we+=1)}return m.push(`${we} release${we===1?"":"s"}`),m.push(`${Se} remaining`),Tn.default.createElement(Dr.Text,{color:"yellow"},m.join(", "))},q=await gO(({useSubmit:W})=>{let[ne,m]=N();W(ne);let{relevantWorkspaces:we}=L(ne),Se=new Set([...we].filter(pe=>!E.releaseRoots.has(pe))),[he,ge]=(0,Tn.useState)(0),ze=(0,Tn.useCallback)(pe=>{switch(pe){case ah.BEFORE:ge(he-1);break;case ah.AFTER:ge(he+1);break}},[he,ge]);return Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(t,null),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,{wrap:"wrap"},"The following files have been modified in your local checkout.")),Tn.default.createElement(Dr.Box,{flexDirection:"column",marginTop:1,paddingLeft:2},[...E.changedFiles].map(pe=>Tn.default.createElement(Dr.Box,{key:pe},Tn.default.createElement(Dr.Text,null,Tn.default.createElement(Dr.Text,{color:"grey"},rc.npath.fromPortablePath(E.root)),rc.npath.sep,rc.npath.relative(rc.npath.fromPortablePath(E.root),rc.npath.fromPortablePath(pe)))))),E.releaseRoots.size>0&&Tn.default.createElement(Tn.default.Fragment,null,Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(Dr.Text,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),Se.size>3?Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(C,{workspaces:E.releaseRoots,releases:ne})):null,Tn.default.createElement(Dr.Box,{marginTop:1,flexDirection:"column"},Tn.default.createElement(O3,{active:he%2==0,radius:1,size:2,onFocusRequest:ze},[...E.releaseRoots].map(pe=>Tn.default.createElement(k,{key:pe.cwd,workspace:pe,decision:ne.get(pe)||Nu.UNDECIDED,setDecision:Oe=>m(pe,Oe)}))))),Se.size>0?Tn.default.createElement(Tn.default.Fragment,null,Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(Dr.Text,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"(Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),Se.size>5?Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(C,{workspaces:Se,releases:ne})):null,Tn.default.createElement(Dr.Box,{marginTop:1,flexDirection:"column"},Tn.default.createElement(O3,{active:he%2==1,radius:2,size:2,onFocusRequest:ze},[...Se].map(pe=>Tn.default.createElement(k,{key:pe.cwd,workspace:pe,decision:ne.get(pe)||Nu.UNDECIDED,setDecision:Oe=>m(pe,Oe)}))))):null)},{versionFile:E},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof q=="undefined")return 1;E.releases.clear();for(let[W,ne]of q)E.releases.set(W,ne);await E.saveAll()}async executeStandard(){let o=await s0.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await s0.Project.find(o,this.context.cwd);if(!p)throw new e_.WorkspaceRequiredError(f.cwd,this.context.cwd);return await f.restoreInstallState(),(await s0.StreamReport.start({configuration:o,stdout:this.context.stdout},async t=>{let k=await $v(f);if(k===null||k.releaseRoots.size===0)return;if(k.root===null)throw new fh.UsageError("This command can only be run on Git repositories");if(t.reportInfo(s0.MessageName.UNNAMED,`Your PR was started right after ${s0.formatUtils.pretty(o,k.baseHash.slice(0,7),"yellow")} ${s0.formatUtils.pretty(o,k.baseTitle,"magenta")}`),k.changedFiles.size>0){t.reportInfo(s0.MessageName.UNNAMED,"You have changed the following files since then:"),t.reportSeparator();for(let q of k.changedFiles)t.reportInfo(null,`${s0.formatUtils.pretty(o,rc.npath.fromPortablePath(k.root),"gray")}${rc.npath.sep}${rc.npath.relative(rc.npath.fromPortablePath(k.root),rc.npath.fromPortablePath(q))}`)}let L=!1,N=!1,C=K_(k);if(C.size>0){L||t.reportSeparator();for(let q of C)t.reportError(s0.MessageName.UNNAMED,`${s0.structUtils.prettyLocator(o,q.anchoredLocator)} has been modified but doesn't have a release strategy attached`);L=!0}let U=Zy(k);for(let[q,W]of U)N||t.reportSeparator(),t.reportError(s0.MessageName.UNNAMED,`${s0.structUtils.prettyLocator(o,q.anchoredLocator)} doesn't have a release strategy attached, but depends on ${s0.structUtils.prettyWorkspace(o,W)} which is planned for release.`),N=!0;(L||N)&&(t.reportSeparator(),t.reportInfo(s0.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),t.reportInfo(s0.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};t_.paths=[["version","check"]],t_.usage=fh.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});var _O=t_;var G4=Mi(require("@yarnpkg/cli")),Y4=Mi(require("@yarnpkg/core")),Bc=Mi(require("clipanion")),K4=Mi(require("semver"));var n_=class extends G4.BaseCommand{constructor(){super(...arguments);this.deferred=Bc.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=Bc.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=Bc.Option.String()}async execute(){let o=await Y4.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await Y4.Project.find(o,this.context.cwd);if(!p)throw new G4.WorkspaceRequiredError(f.cwd,this.context.cwd);let E=o.get("preferDeferredVersions");this.deferred&&(E=!0),this.immediate&&(E=!1);let t=K4.default.valid(this.strategy),k=this.strategy===Nu.DECLINE,L;if(t)if(p.manifest.version!==null){let C=MD(p.manifest.version,this.strategy);C!==null?L=C:L=this.strategy}else L=this.strategy;else{let C=p.manifest.version;if(!k){if(C===null)throw new Bc.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof C!="string"||!K4.default.valid(C))throw new Bc.UsageError(`Can't bump the version (${C}) if it's not valid semver`)}L=Zv(this.strategy)}if(!E){let U=(await Jy(f)).get(p);if(typeof U!="undefined"&&L!==Nu.DECLINE){let q=Y_(p.manifest.version,L);if(K4.default.lt(q,U))throw new Bc.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${U})`)}}let N=await $v(f,{allowEmpty:!0});return N.releases.set(p,L),await N.saveAll(),E?0:await this.cli.run(["version","apply"])}};n_.paths=[["version"]],n_.usage=Bc.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var EO=n_;var M$={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:M3.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:M3.SettingsType.BOOLEAN,default:!1}},commands:[m5,_O,EO]},N$=M$;return k$;})(); +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-debug-tools.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +return plugin; +} +}; diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 0000000000..b9044a0144 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs @@ -0,0 +1,28 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-workspace-tools", +factory: function (require) { +var plugin=(()=>{var wr=Object.create,me=Object.defineProperty,Sr=Object.defineProperties,vr=Object.getOwnPropertyDescriptor,Hr=Object.getOwnPropertyDescriptors,$r=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols,kr=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty,Tr=Object.prototype.propertyIsEnumerable;var rt=(e,t,r)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,B=(e,t)=>{for(var r in t||(t={}))tt.call(t,r)&&rt(e,r,t[r]);if(et)for(var r of et(t))Tr.call(t,r)&&rt(e,r,t[r]);return e},Q=(e,t)=>Sr(e,Hr(t)),Lr=e=>me(e,"__esModule",{value:!0});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Or=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})},Nr=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $r(t))!tt.call(e,n)&&n!=="default"&&me(e,n,{get:()=>t[n],enumerable:!(r=vr(t,n))||r.enumerable});return e},X=e=>Nr(Lr(me(e!=null?wr(kr(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var $e=K(te=>{"use strict";te.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;te.find=(e,t)=>e.nodes.find(r=>r.type===t);te.exceedsLimit=(e,t,r=1,n)=>n===!1||!te.isInteger(e)||!te.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;te.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];!n||(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};te.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0==0?(e.invalid=!0,!0):!1;te.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0==0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;te.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;te.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);te.flatten=(...e)=>{let t=[],r=n=>{for(let s=0;s{"use strict";var it=$e();at.exports=(e,t={})=>{let r=(n,s={})=>{let a=t.escapeInvalid&&it.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o="";if(n.value)return(a||i)&&it.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let h of n.nodes)o+=r(h);return o};return r(e)}});var ct=K((os,ot)=>{"use strict";ot.exports=function(e){return typeof e=="number"?e-e==0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var At=K((cs,ut)=>{"use strict";var lt=ct(),pe=(e,t,r)=>{if(lt(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(lt(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n=B({relaxZeros:!0},r);typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),a=String(n.shorthand),i=String(n.capture),o=String(n.wrap),h=e+":"+t+"="+s+a+i+o;if(pe.cache.hasOwnProperty(h))return pe.cache[h].result;let g=Math.min(e,t),f=Math.max(e,t);if(Math.abs(g-f)===1){let R=e+"|"+t;return n.capture?`(${R})`:n.wrap===!1?R:`(?:${R})`}let A=ft(e)||ft(t),p={min:e,max:t,a:g,b:f},k=[],y=[];if(A&&(p.isPadded=A,p.maxLen=String(p.max).length),g<0){let R=f<0?Math.abs(f):1;y=pt(R,Math.abs(g),p,n),g=p.a=0}return f>=0&&(k=pt(g,f,p,n)),p.negatives=y,p.positives=k,p.result=Ir(y,k,n),n.capture===!0?p.result=`(${p.result})`:n.wrap!==!1&&k.length+y.length>1&&(p.result=`(?:${p.result})`),pe.cache[h]=p,p.result};function Ir(e,t,r){let n=Pe(e,t,"-",!1,r)||[],s=Pe(t,e,"",!1,r)||[],a=Pe(e,t,"-?",!0,r)||[];return n.concat(a).concat(s).join("|")}function Mr(e,t){let r=1,n=1,s=ht(e,r),a=new Set([t]);for(;e<=s&&s<=t;)a.add(s),r+=1,s=ht(e,r);for(s=dt(t+1,n)-1;e1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+gt(o.count),i=g+1;continue}r.isPadded&&(A=Gr(g,r,n)),f.string=A+f.pattern+gt(f.count),a.push(f),i=g+1,o=f}return a}function Pe(e,t,r,n,s){let a=[];for(let i of e){let{string:o}=i;!n&&!mt(t,"string",o)&&a.push(r+o),n&&mt(t,"string",o)&&a.push(r+o)}return a}function Pr(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function mt(e,t,r){return e.some(n=>n[t]===r)}function ht(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function dt(e,t){return e-e%Math.pow(10,t)}function gt(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function Dr(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function ft(e){return/^-?(0+)\d/.test(e)}function Gr(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),s=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}pe.cache={};pe.clearCache=()=>pe.cache={};ut.exports=pe});var Ge=K((us,Rt)=>{"use strict";var qr=require("util"),yt=At(),bt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Kr=e=>t=>e===!0?Number(t):String(t),De=e=>typeof e=="number"||typeof e=="string"&&e!=="",Re=e=>Number.isInteger(+e),Ue=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},Wr=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,jr=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},_t=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((i,o)=>io?1:0),e.positives.sort((i,o)=>io?1:0);let r=t.capture?"":"?:",n="",s="",a;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,t.wrap?`(${r}${a})`:a},Et=(e,t,r,n)=>{if(r)return yt(e,t,B({wrap:!1},n));let s=String.fromCharCode(e);if(e===t)return s;let a=String.fromCharCode(t);return`[${s}-${a}]`},xt=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,s=r.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return yt(e,t,r)},Ct=(...e)=>new RangeError("Invalid range arguments: "+qr.inspect(...e)),wt=(e,t,r)=>{if(r.strictRanges===!0)throw Ct([e,t]);return[]},Qr=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Xr=(e,t,r=1,n={})=>{let s=Number(e),a=Number(t);if(!Number.isInteger(s)||!Number.isInteger(a)){if(n.strictRanges===!0)throw Ct([e,t]);return[]}s===0&&(s=0),a===0&&(a=0);let i=s>a,o=String(e),h=String(t),g=String(r);r=Math.max(Math.abs(r),1);let f=Ue(o)||Ue(h)||Ue(g),A=f?Math.max(o.length,h.length,g.length):0,p=f===!1&&Wr(e,t,n)===!1,k=n.transform||Kr(p);if(n.toRegex&&r===1)return Et(_t(e,A),_t(t,A),!0,n);let y={negatives:[],positives:[]},R=T=>y[T<0?"negatives":"positives"].push(Math.abs(T)),_=[],x=0;for(;i?s>=a:s<=a;)n.toRegex===!0&&r>1?R(s):_.push(jr(k(s,x),A,p)),s=i?s-r:s+r,x++;return n.toRegex===!0?r>1?Fr(y,n):xt(_,null,B({wrap:!1},n)):_},Zr=(e,t,r=1,n={})=>{if(!Re(e)&&e.length>1||!Re(t)&&t.length>1)return wt(e,t,n);let s=n.transform||(p=>String.fromCharCode(p)),a=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),o=a>i,h=Math.min(a,i),g=Math.max(a,i);if(n.toRegex&&r===1)return Et(h,g,!1,n);let f=[],A=0;for(;o?a>=i:a<=i;)f.push(s(a,A)),a=o?a-r:a+r,A++;return n.toRegex===!0?xt(f,null,{wrap:!1,options:n}):f},Te=(e,t,r,n={})=>{if(t==null&&De(e))return[e];if(!De(e)||!De(t))return wt(e,t,n);if(typeof r=="function")return Te(e,t,1,{transform:r});if(bt(r))return Te(e,t,0,r);let s=B({},n);return s.capture===!0&&(s.wrap=!0),r=r||s.step||1,Re(r)?Re(e)&&Re(t)?Xr(e,t,r,s):Zr(e,t,Math.max(Math.abs(r),1),s):r!=null&&!bt(r)?Qr(r,s):Te(e,t,1,r)};Rt.exports=Te});var Ht=K((ls,St)=>{"use strict";var Yr=Ge(),vt=$e(),zr=(e,t={})=>{let r=(n,s={})=>{let a=vt.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o=a===!0||i===!0,h=t.escapeInvalid===!0?"\\":"",g="";if(n.isOpen===!0||n.isClose===!0)return h+n.value;if(n.type==="open")return o?h+n.value:"(";if(n.type==="close")return o?h+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":o?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let f=vt.reduce(n.nodes),A=Yr(...f,Q(B({},t),{wrap:!1,toRegex:!0}));if(A.length!==0)return f.length>1&&A.length>1?`(${A})`:A}if(n.nodes)for(let f of n.nodes)g+=r(f,n);return g};return r(e)};St.exports=zr});var Tt=K((ps,$t)=>{"use strict";var Vr=Ge(),kt=ke(),he=$e(),fe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?he.flatten(t).map(s=>`{${s}}`):t;for(let s of e)if(Array.isArray(s))for(let a of s)n.push(fe(a,t,r));else for(let a of t)r===!0&&typeof a=="string"&&(a=`{${a}}`),n.push(Array.isArray(a)?fe(s,a,r):s+a);return he.flatten(n)},Jr=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(s,a={})=>{s.queue=[];let i=a,o=a.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,o=i.queue;if(s.invalid||s.dollar){o.push(fe(o.pop(),kt(s,t)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){o.push(fe(o.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let A=he.reduce(s.nodes);if(he.exceedsLimit(...A,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=Vr(...A,t);p.length===0&&(p=kt(s,t)),o.push(fe(o.pop(),p)),s.nodes=[];return}let h=he.encloseBrace(s),g=s.queue,f=s;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,g=f.queue;for(let A=0;A{"use strict";Lt.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Pt=K((hs,Nt)=>{"use strict";var en=ke(),{MAX_LENGTH:It,CHAR_BACKSLASH:qe,CHAR_BACKTICK:tn,CHAR_COMMA:rn,CHAR_DOT:nn,CHAR_LEFT_PARENTHESES:sn,CHAR_RIGHT_PARENTHESES:an,CHAR_LEFT_CURLY_BRACE:on,CHAR_RIGHT_CURLY_BRACE:cn,CHAR_LEFT_SQUARE_BRACKET:Bt,CHAR_RIGHT_SQUARE_BRACKET:Mt,CHAR_DOUBLE_QUOTE:un,CHAR_SINGLE_QUOTE:ln,CHAR_NO_BREAK_SPACE:pn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:fn}=Ot(),hn=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(It,r.maxLength):It;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},a=[s],i=s,o=s,h=0,g=e.length,f=0,A=0,p,k={},y=()=>e[f++],R=_=>{if(_.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&_.type==="text"){o.value+=_.value;return}return i.nodes.push(_),_.parent=i,_.prev=o,o=_,_};for(R({type:"bos"});f0){if(i.ranges>0){i.ranges=0;let _=i.nodes.shift();i.nodes=[_,{type:"text",value:en(i)}]}R({type:"comma",value:p}),i.commas++;continue}if(p===nn&&A>0&&i.commas===0){let _=i.nodes;if(A===0||_.length===0){R({type:"text",value:p});continue}if(o.type==="dot"){if(i.range=[],o.value+=p,o.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,o.type="text";continue}i.ranges++,i.args=[];continue}if(o.type==="range"){_.pop();let x=_[_.length-1];x.value+=o.value+p,o=x,i.ranges--;continue}R({type:"dot",value:p});continue}R({type:"text",value:p})}do if(i=a.pop(),i.type!=="root"){i.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let _=a[a.length-1],x=_.nodes.indexOf(i);_.nodes.splice(x,1,...i.nodes)}while(a.length>0);return R({type:"eos"}),s};Nt.exports=hn});var Gt=K((ds,Dt)=>{"use strict";var Ut=ke(),dn=Ht(),gn=Tt(),mn=Pt(),V=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let s=V.create(n,t);Array.isArray(s)?r.push(...s):r.push(s)}else r=[].concat(V.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};V.parse=(e,t={})=>mn(e,t);V.stringify=(e,t={})=>typeof e=="string"?Ut(V.parse(e,t),t):Ut(e,t);V.compile=(e,t={})=>(typeof e=="string"&&(e=V.parse(e,t)),dn(e,t));V.expand=(e,t={})=>{typeof e=="string"&&(e=V.parse(e,t));let r=gn(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};V.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?V.compile(e,t):V.expand(e,t);Dt.exports=V});var ye=K((gs,qt)=>{"use strict";var An=require("path"),ie="\\\\/",Kt=`[^${ie}]`,ce="\\.",Rn="\\+",yn="\\?",Le="\\/",bn="(?=.)",Wt="[^/]",Ke=`(?:${Le}|$)`,jt=`(?:^|${Le})`,We=`${ce}{1,2}${Ke}`,_n=`(?!${ce})`,En=`(?!${jt}${We})`,xn=`(?!${ce}{0,1}${Ke})`,Cn=`(?!${We})`,wn=`[^.${Le}]`,Sn=`${Wt}*?`,Ft={DOT_LITERAL:ce,PLUS_LITERAL:Rn,QMARK_LITERAL:yn,SLASH_LITERAL:Le,ONE_CHAR:bn,QMARK:Wt,END_ANCHOR:Ke,DOTS_SLASH:We,NO_DOT:_n,NO_DOTS:En,NO_DOT_SLASH:xn,NO_DOTS_SLASH:Cn,QMARK_NO_DOT:wn,STAR:Sn,START_ANCHOR:jt},vn=Q(B({},Ft),{SLASH_LITERAL:`[${ie}]`,QMARK:Kt,STAR:`${Kt}*?`,DOTS_SLASH:`${ce}{1,2}(?:[${ie}]|$)`,NO_DOT:`(?!${ce})`,NO_DOTS:`(?!(?:^|[${ie}])${ce}{1,2}(?:[${ie}]|$))`,NO_DOT_SLASH:`(?!${ce}{0,1}(?:[${ie}]|$))`,NO_DOTS_SLASH:`(?!${ce}{1,2}(?:[${ie}]|$))`,QMARK_NO_DOT:`[^.${ie}]`,START_ANCHOR:`(?:^|[${ie}])`,END_ANCHOR:`(?:[${ie}]|$)`}),Hn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Hn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:An.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?vn:Ft}}});var be=K(Z=>{"use strict";var $n=require("path"),kn=process.platform==="win32",{REGEX_BACKSLASH:Tn,REGEX_REMOVE_BACKSLASH:Ln,REGEX_SPECIAL_CHARS:On,REGEX_SPECIAL_CHARS_GLOBAL:Nn}=ye();Z.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Z.hasRegexChars=e=>On.test(e);Z.isRegexChar=e=>e.length===1&&Z.hasRegexChars(e);Z.escapeRegex=e=>e.replace(Nn,"\\$1");Z.toPosixSlashes=e=>e.replace(Tn,"/");Z.removeBackslashes=e=>e.replace(Ln,t=>t==="\\"?"":t);Z.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Z.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:kn===!0||$n.sep==="\\";Z.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Z.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Z.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Z.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",s=r.contains?"":"$",a=`${n}(?:${e})${s}`;return t.negated===!0&&(a=`(?:^(?!${a}).*$)`),a}});var er=K((As,Qt)=>{"use strict";var Xt=be(),{CHAR_ASTERISK:je,CHAR_AT:In,CHAR_BACKWARD_SLASH:_e,CHAR_COMMA:Bn,CHAR_DOT:Fe,CHAR_EXCLAMATION_MARK:Qe,CHAR_FORWARD_SLASH:Zt,CHAR_LEFT_CURLY_BRACE:Xe,CHAR_LEFT_PARENTHESES:Ze,CHAR_LEFT_SQUARE_BRACKET:Mn,CHAR_PLUS:Pn,CHAR_QUESTION_MARK:Yt,CHAR_RIGHT_CURLY_BRACE:Dn,CHAR_RIGHT_PARENTHESES:zt,CHAR_RIGHT_SQUARE_BRACKET:Un}=ye(),Vt=e=>e===Zt||e===_e,Jt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?Infinity:1)},Gn=(e,t)=>{let r=t||{},n=e.length-1,s=r.parts===!0||r.scanToEnd===!0,a=[],i=[],o=[],h=e,g=-1,f=0,A=0,p=!1,k=!1,y=!1,R=!1,_=!1,x=!1,T=!1,O=!1,W=!1,G=!1,ne=0,E,b,C={value:"",depth:0,isGlob:!1},M=()=>g>=n,l=()=>h.charCodeAt(g+1),H=()=>(E=b,h.charCodeAt(++g));for(;g0&&(j=h.slice(0,f),h=h.slice(f),A-=f),w&&y===!0&&A>0?(w=h.slice(0,A),c=h.slice(A)):y===!0?(w="",c=h):w=h,w&&w!==""&&w!=="/"&&w!==h&&Vt(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),r.unescape===!0&&(c&&(c=Xt.removeBackslashes(c)),w&&T===!0&&(w=Xt.removeBackslashes(w)));let u={prefix:j,input:e,start:f,base:w,glob:c,isBrace:p,isBracket:k,isGlob:y,isExtglob:R,isGlobstar:_,negated:O,negatedExtglob:W};if(r.tokens===!0&&(u.maxDepth=0,Vt(b)||i.push(C),u.tokens=i),r.parts===!0||r.tokens===!0){let I;for(let $=0;${"use strict";var Oe=ye(),J=be(),{MAX_LENGTH:Ne,POSIX_REGEX_SOURCE:qn,REGEX_NON_SPECIAL_CHARS:Kn,REGEX_SPECIAL_CHARS_BACKREF:Wn,REPLACEMENTS:rr}=Oe,jn=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch(n){return e.map(s=>J.escapeRegex(s)).join("..")}return r},de=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,nr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=rr[e]||e;let r=B({},t),n=typeof r.maxLength=="number"?Math.min(Ne,r.maxLength):Ne,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let a={type:"bos",value:"",output:r.prepend||""},i=[a],o=r.capture?"":"?:",h=J.isWindows(t),g=Oe.globChars(h),f=Oe.extglobChars(g),{DOT_LITERAL:A,PLUS_LITERAL:p,SLASH_LITERAL:k,ONE_CHAR:y,DOTS_SLASH:R,NO_DOT:_,NO_DOT_SLASH:x,NO_DOTS_SLASH:T,QMARK:O,QMARK_NO_DOT:W,STAR:G,START_ANCHOR:ne}=g,E=m=>`(${o}(?:(?!${ne}${m.dot?R:A}).)*?)`,b=r.dot?"":_,C=r.dot?O:W,M=r.bash===!0?E(r):G;r.capture&&(M=`(${M})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let l={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=J.removePrefix(e,l),s=e.length;let H=[],w=[],j=[],c=a,u,I=()=>l.index===s-1,$=l.peek=(m=1)=>e[l.index+m],ee=l.advance=()=>e[++l.index]||"",se=()=>e.slice(l.index+1),z=(m="",L=0)=>{l.consumed+=m,l.index+=L},Ce=m=>{l.output+=m.output!=null?m.output:m.value,z(m.value)},xr=()=>{let m=1;for(;$()==="!"&&($(2)!=="("||$(3)==="?");)ee(),l.start++,m++;return m%2==0?!1:(l.negated=!0,l.start++,!0)},we=m=>{l[m]++,j.push(m)},ue=m=>{l[m]--,j.pop()},v=m=>{if(c.type==="globstar"){let L=l.braces>0&&(m.type==="comma"||m.type==="brace"),d=m.extglob===!0||H.length&&(m.type==="pipe"||m.type==="paren");m.type!=="slash"&&m.type!=="paren"&&!L&&!d&&(l.output=l.output.slice(0,-c.output.length),c.type="star",c.value="*",c.output=M,l.output+=c.output)}if(H.length&&m.type!=="paren"&&(H[H.length-1].inner+=m.value),(m.value||m.output)&&Ce(m),c&&c.type==="text"&&m.type==="text"){c.value+=m.value,c.output=(c.output||"")+m.value;return}m.prev=c,i.push(m),c=m},Se=(m,L)=>{let d=Q(B({},f[L]),{conditions:1,inner:""});d.prev=c,d.parens=l.parens,d.output=l.output;let S=(r.capture?"(":"")+d.open;we("parens"),v({type:m,value:L,output:l.output?"":y}),v({type:"paren",extglob:!0,value:ee(),output:S}),H.push(d)},Cr=m=>{let L=m.close+(r.capture?")":""),d;if(m.type==="negate"){let S=M;m.inner&&m.inner.length>1&&m.inner.includes("/")&&(S=E(r)),(S!==M||I()||/^\)+$/.test(se()))&&(L=m.close=`)$))${S}`),m.inner.includes("*")&&(d=se())&&/^\.[^\\/.]+$/.test(d)&&(L=m.close=`)${d})${S})`),m.prev.type==="bos"&&(l.negatedExtglob=!0)}v({type:"paren",extglob:!0,value:u,output:L}),ue("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let m=!1,L=e.replace(Wn,(d,S,P,F,q,Me)=>F==="\\"?(m=!0,d):F==="?"?S?S+F+(q?O.repeat(q.length):""):Me===0?C+(q?O.repeat(q.length):""):O.repeat(P.length):F==="."?A.repeat(P.length):F==="*"?S?S+F+(q?M:""):M:S?d:`\\${d}`);return m===!0&&(r.unescape===!0?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,d=>d.length%2==0?"\\\\":d?"\\":"")),L===e&&r.contains===!0?(l.output=e,l):(l.output=J.wrapOutput(L,l,t),l)}for(;!I();){if(u=ee(),u==="\0")continue;if(u==="\\"){let d=$();if(d==="/"&&r.bash!==!0||d==="."||d===";")continue;if(!d){u+="\\",v({type:"text",value:u});continue}let S=/^\\+/.exec(se()),P=0;if(S&&S[0].length>2&&(P=S[0].length,l.index+=P,P%2!=0&&(u+="\\")),r.unescape===!0?u=ee():u+=ee(),l.brackets===0){v({type:"text",value:u});continue}}if(l.brackets>0&&(u!=="]"||c.value==="["||c.value==="[^")){if(r.posix!==!1&&u===":"){let d=c.value.slice(1);if(d.includes("[")&&(c.posix=!0,d.includes(":"))){let S=c.value.lastIndexOf("["),P=c.value.slice(0,S),F=c.value.slice(S+2),q=qn[F];if(q){c.value=P+q,l.backtrack=!0,ee(),!a.output&&i.indexOf(c)===1&&(a.output=y);continue}}}(u==="["&&$()!==":"||u==="-"&&$()==="]")&&(u=`\\${u}`),u==="]"&&(c.value==="["||c.value==="[^")&&(u=`\\${u}`),r.posix===!0&&u==="!"&&c.value==="["&&(u="^"),c.value+=u,Ce({value:u});continue}if(l.quotes===1&&u!=='"'){u=J.escapeRegex(u),c.value+=u,Ce({value:u});continue}if(u==='"'){l.quotes=l.quotes===1?0:1,r.keepQuotes===!0&&v({type:"text",value:u});continue}if(u==="("){we("parens"),v({type:"paren",value:u});continue}if(u===")"){if(l.parens===0&&r.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=H[H.length-1];if(d&&l.parens===d.parens+1){Cr(H.pop());continue}v({type:"paren",value:u,output:l.parens?")":"\\)"}),ue("parens");continue}if(u==="["){if(r.nobracket===!0||!se().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u=`\\${u}`}else we("brackets");v({type:"bracket",value:u});continue}if(u==="]"){if(r.nobracket===!0||c&&c.type==="bracket"&&c.value.length===1){v({type:"text",value:u,output:`\\${u}`});continue}if(l.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(de("opening","["));v({type:"text",value:u,output:`\\${u}`});continue}ue("brackets");let d=c.value.slice(1);if(c.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(u=`/${u}`),c.value+=u,Ce({value:u}),r.literalBrackets===!1||J.hasRegexChars(d))continue;let S=J.escapeRegex(c.value);if(l.output=l.output.slice(0,-c.value.length),r.literalBrackets===!0){l.output+=S,c.value=S;continue}c.value=`(${o}${S}|${c.value})`,l.output+=c.value;continue}if(u==="{"&&r.nobrace!==!0){we("braces");let d={type:"brace",value:u,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),v(d);continue}if(u==="}"){let d=w[w.length-1];if(r.nobrace===!0||!d){v({type:"text",value:u,output:u});continue}let S=")";if(d.dots===!0){let P=i.slice(),F=[];for(let q=P.length-1;q>=0&&(i.pop(),P[q].type!=="brace");q--)P[q].type!=="dots"&&F.unshift(P[q].value);S=jn(F,r),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let P=l.output.slice(0,d.outputIndex),F=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",u=S="\\}",l.output=P;for(let q of F)l.output+=q.output||q.value}v({type:"brace",value:u,output:S}),ue("braces"),w.pop();continue}if(u==="|"){H.length>0&&H[H.length-1].conditions++,v({type:"text",value:u});continue}if(u===","){let d=u,S=w[w.length-1];S&&j[j.length-1]==="braces"&&(S.comma=!0,d="|"),v({type:"comma",value:u,output:d});continue}if(u==="/"){if(c.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",i.pop(),c=a;continue}v({type:"slash",value:u,output:k});continue}if(u==="."){if(l.braces>0&&c.type==="dot"){c.value==="."&&(c.output=A);let d=w[w.length-1];c.type="dots",c.output+=u,c.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&c.type!=="bos"&&c.type!=="slash"){v({type:"text",value:u,output:A});continue}v({type:"dot",value:u,output:A});continue}if(u==="?"){if(!(c&&c.value==="(")&&r.noextglob!==!0&&$()==="("&&$(2)!=="?"){Se("qmark",u);continue}if(c&&c.type==="paren"){let S=$(),P=u;if(S==="<"&&!J.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(c.value==="("&&!/[!=<:]/.test(S)||S==="<"&&!/<([!=]|\w+>)/.test(se()))&&(P=`\\${u}`),v({type:"text",value:u,output:P});continue}if(r.dot!==!0&&(c.type==="slash"||c.type==="bos")){v({type:"qmark",value:u,output:W});continue}v({type:"qmark",value:u,output:O});continue}if(u==="!"){if(r.noextglob!==!0&&$()==="("&&($(2)!=="?"||!/[!=<:]/.test($(3)))){Se("negate",u);continue}if(r.nonegate!==!0&&l.index===0){xr();continue}}if(u==="+"){if(r.noextglob!==!0&&$()==="("&&$(2)!=="?"){Se("plus",u);continue}if(c&&c.value==="("||r.regex===!1){v({type:"plus",value:u,output:p});continue}if(c&&(c.type==="bracket"||c.type==="paren"||c.type==="brace")||l.parens>0){v({type:"plus",value:u});continue}v({type:"plus",value:p});continue}if(u==="@"){if(r.noextglob!==!0&&$()==="("&&$(2)!=="?"){v({type:"at",extglob:!0,value:u,output:""});continue}v({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let d=Kn.exec(se());d&&(u+=d[0],l.index+=d[0].length),v({type:"text",value:u});continue}if(c&&(c.type==="globstar"||c.star===!0)){c.type="star",c.star=!0,c.value+=u,c.output=M,l.backtrack=!0,l.globstar=!0,z(u);continue}let m=se();if(r.noextglob!==!0&&/^\([^?]/.test(m)){Se("star",u);continue}if(c.type==="star"){if(r.noglobstar===!0){z(u);continue}let d=c.prev,S=d.prev,P=d.type==="slash"||d.type==="bos",F=S&&(S.type==="star"||S.type==="globstar");if(r.bash===!0&&(!P||m[0]&&m[0]!=="/")){v({type:"star",value:u,output:""});continue}let q=l.braces>0&&(d.type==="comma"||d.type==="brace"),Me=H.length&&(d.type==="pipe"||d.type==="paren");if(!P&&d.type!=="paren"&&!q&&!Me){v({type:"star",value:u,output:""});continue}for(;m.slice(0,3)==="/**";){let ve=e[l.index+4];if(ve&&ve!=="/")break;m=m.slice(3),z("/**",3)}if(d.type==="bos"&&I()){c.type="globstar",c.value+=u,c.output=E(r),l.output=c.output,l.globstar=!0,z(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!F&&I()){l.output=l.output.slice(0,-(d.output+c.output).length),d.output=`(?:${d.output}`,c.type="globstar",c.output=E(r)+(r.strictSlashes?")":"|$)"),c.value+=u,l.globstar=!0,l.output+=d.output+c.output,z(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&m[0]==="/"){let ve=m[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+c.output).length),d.output=`(?:${d.output}`,c.type="globstar",c.output=`${E(r)}${k}|${k}${ve})`,c.value+=u,l.output+=d.output+c.output,l.globstar=!0,z(u+ee()),v({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&m[0]==="/"){c.type="globstar",c.value+=u,c.output=`(?:^|${k}|${E(r)}${k})`,l.output=c.output,l.globstar=!0,z(u+ee()),v({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-c.output.length),c.type="globstar",c.output=E(r),c.value+=u,l.output+=c.output,l.globstar=!0,z(u);continue}let L={type:"star",value:u,output:M};if(r.bash===!0){L.output=".*?",(c.type==="bos"||c.type==="slash")&&(L.output=b+L.output),v(L);continue}if(c&&(c.type==="bracket"||c.type==="paren")&&r.regex===!0){L.output=u,v(L);continue}(l.index===l.start||c.type==="slash"||c.type==="dot")&&(c.type==="dot"?(l.output+=x,c.output+=x):r.dot===!0?(l.output+=T,c.output+=T):(l.output+=b,c.output+=b),$()!=="*"&&(l.output+=y,c.output+=y)),v(L)}for(;l.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));l.output=J.escapeLast(l.output,"["),ue("brackets")}for(;l.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing",")"));l.output=J.escapeLast(l.output,"("),ue("parens")}for(;l.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","}"));l.output=J.escapeLast(l.output,"{"),ue("braces")}if(r.strictSlashes!==!0&&(c.type==="star"||c.type==="bracket")&&v({type:"maybe_slash",value:"",output:`${k}?`}),l.backtrack===!0){l.output="";for(let m of l.tokens)l.output+=m.output!=null?m.output:m.value,m.suffix&&(l.output+=m.suffix)}return l};nr.fastpaths=(e,t)=>{let r=B({},t),n=typeof r.maxLength=="number"?Math.min(Ne,r.maxLength):Ne,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=rr[e]||e;let a=J.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:o,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:A,NO_DOTS_SLASH:p,STAR:k,START_ANCHOR:y}=Oe.globChars(a),R=r.dot?A:f,_=r.dot?p:f,x=r.capture?"":"?:",T={negated:!1,prefix:""},O=r.bash===!0?".*?":k;r.capture&&(O=`(${O})`);let W=b=>b.noglobstar===!0?O:`(${x}(?:(?!${y}${b.dot?g:i}).)*?)`,G=b=>{switch(b){case"*":return`${R}${h}${O}`;case".*":return`${i}${h}${O}`;case"*.*":return`${R}${O}${i}${h}${O}`;case"*/*":return`${R}${O}${o}${h}${_}${O}`;case"**":return R+W(r);case"**/*":return`(?:${R}${W(r)}${o})?${_}${h}${O}`;case"**/*.*":return`(?:${R}${W(r)}${o})?${_}${O}${i}${h}${O}`;case"**/.*":return`(?:${R}${W(r)}${o})?${i}${h}${O}`;default:{let C=/^(.*?)\.(\w+)$/.exec(b);if(!C)return;let M=G(C[1]);return M?M+i+C[2]:void 0}}},ne=J.removePrefix(e,T),E=G(ne);return E&&r.strictSlashes!==!0&&(E+=`${o}?`),E};tr.exports=nr});var ir=K((ys,ar)=>{"use strict";var Fn=require("path"),Qn=er(),Ye=sr(),ze=be(),Xn=ye(),Zn=e=>e&&typeof e=="object"&&!Array.isArray(e),D=(e,t,r=!1)=>{if(Array.isArray(e)){let f=e.map(p=>D(p,t,r));return p=>{for(let k of f){let y=k(p);if(y)return y}return!1}}let n=Zn(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=t||{},a=ze.isWindows(t),i=n?D.compileRe(e,t):D.makeRe(e,t,!1,!0),o=i.state;delete i.state;let h=()=>!1;if(s.ignore){let f=Q(B({},t),{ignore:null,onMatch:null,onResult:null});h=D(s.ignore,f,r)}let g=(f,A=!1)=>{let{isMatch:p,match:k,output:y}=D.test(f,i,t,{glob:e,posix:a}),R={glob:e,state:o,regex:i,posix:a,input:f,output:y,match:k,isMatch:p};return typeof s.onResult=="function"&&s.onResult(R),p===!1?(R.isMatch=!1,A?R:!1):h(f)?(typeof s.onIgnore=="function"&&s.onIgnore(R),R.isMatch=!1,A?R:!1):(typeof s.onMatch=="function"&&s.onMatch(R),A?R:!0)};return r&&(g.state=o),g};D.test=(e,t,r,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let a=r||{},i=a.format||(s?ze.toPosixSlashes:null),o=e===n,h=o&&i?i(e):e;return o===!1&&(h=i?i(e):e,o=h===n),(o===!1||a.capture===!0)&&(a.matchBase===!0||a.basename===!0?o=D.matchBase(e,t,r,s):o=t.exec(h)),{isMatch:Boolean(o),match:o,output:h}};D.matchBase=(e,t,r,n=ze.isWindows(r))=>(t instanceof RegExp?t:D.makeRe(t,r)).test(Fn.basename(e));D.isMatch=(e,t,r)=>D(t,r)(e);D.parse=(e,t)=>Array.isArray(e)?e.map(r=>D.parse(r,t)):Ye(e,Q(B({},t),{fastpaths:!1}));D.scan=(e,t)=>Qn(e,t);D.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let s=t||{},a=s.contains?"":"^",i=s.contains?"":"$",o=`${a}(?:${e.output})${i}`;e&&e.negated===!0&&(o=`^(?!${o}).*$`);let h=D.toRegex(o,t);return n===!0&&(h.state=e),h};D.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(s.output=Ye.fastpaths(e,t)),s.output||(s=Ye(e,t)),D.compileRe(s,t,r,n)};D.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};D.constants=Xn;ar.exports=D});var cr=K((bs,or)=>{"use strict";or.exports=ir()});var hr=K((_s,ur)=>{"use strict";var lr=require("util"),pr=Gt(),oe=cr(),Ve=be(),fr=e=>e===""||e==="./",N=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,s=new Set,a=new Set,i=0,o=f=>{a.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f!n.has(f));if(r&&g.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(f=>f.replace(/\\/g,"")):t}return g};N.match=N;N.matcher=(e,t)=>oe(e,t);N.isMatch=(e,t,r)=>oe(t,r)(e);N.any=N.isMatch;N.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,s=[],a=o=>{r.onResult&&r.onResult(o),s.push(o.output)},i=N(e,t,Q(B({},r),{onResult:a}));for(let o of s)i.includes(o)||n.add(o);return[...n]};N.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>N.contains(e,n,r));if(typeof t=="string"){if(fr(e)||fr(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return N.isMatch(e,t,Q(B({},r),{contains:!0}))};N.matchKeys=(e,t,r)=>{if(!Ve.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=N(Object.keys(e),t,r),s={};for(let a of n)s[a]=e[a];return s};N.some=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=oe(String(s),r);if(n.some(i=>a(i)))return!0}return!1};N.every=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=oe(String(s),r);if(!n.every(i=>a(i)))return!1}return!0};N.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);return[].concat(t).every(n=>oe(n,r)(e))};N.capture=(e,t,r)=>{let n=Ve.isWindows(r),a=oe.makeRe(String(e),Q(B({},r),{capture:!0})).exec(n?Ve.toPosixSlashes(t):t);if(a)return a.slice(1).map(i=>i===void 0?"":i)};N.makeRe=(...e)=>oe.makeRe(...e);N.scan=(...e)=>oe.scan(...e);N.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let s of pr(String(n),t))r.push(oe.parse(s,t));return r};N.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!/\{.*\}/.test(e)?[e]:pr(e,t)};N.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return N.braces(e,Q(B({},t),{expand:!0}))};ur.exports=N});var gr=K((Es,dr)=>{"use strict";dr.exports=(e,...t)=>new Promise(r=>{r(e(...t))})});var Ar=K((xs,Je)=>{"use strict";var Yn=gr(),mr=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},s=(o,h,...g)=>{r++;let f=Yn(o,...g);h(f),f.then(n,n)},a=(o,h,...g)=>{rnew Promise(g=>a(o,g,...h));return Object.defineProperties(i,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),i};Je.exports=mr;Je.exports.default=mr});var Vn={};Or(Vn,{default:()=>es});var He=X(require("@yarnpkg/cli")),ae=X(require("@yarnpkg/core")),nt=X(require("@yarnpkg/core")),le=X(require("clipanion")),Ae=class extends He.BaseCommand{constructor(){super(...arguments);this.json=le.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=le.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=le.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=le.Option.Rest()}async execute(){let t=await ae.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await ae.Project.find(t,this.context.cwd),s=await ae.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new He.WorkspaceRequiredError(r.cwd,this.context.cwd);a=new Set([n])}else a=new Set(this.workspaces.map(o=>r.getWorkspaceByIdent(nt.structUtils.parseIdent(o))));for(let o of a)for(let h of this.production?["dependencies"]:ae.Manifest.hardDependencies)for(let g of o.manifest.getForScope(h).values()){let f=r.tryWorkspaceByDescriptor(g);f!==null&&a.add(f)}for(let o of r.workspaces)a.has(o)?this.production&&o.manifest.devDependencies.clear():(o.manifest.installConfig=o.manifest.installConfig||{},o.manifest.installConfig.selfReferences=!1,o.manifest.dependencies.clear(),o.manifest.devDependencies.clear(),o.manifest.peerDependencies.clear(),o.manifest.scripts.clear());return(await ae.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async o=>{await r.install({cache:s,report:o,persistProject:!1})})).exitCode()}};Ae.paths=[["workspaces","focus"]],Ae.usage=le.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var st=Ae;var Ie=X(require("@yarnpkg/cli")),ge=X(require("@yarnpkg/core")),Ee=X(require("@yarnpkg/core")),Y=X(require("@yarnpkg/core")),Rr=X(require("@yarnpkg/plugin-git")),U=X(require("clipanion")),Be=X(hr()),yr=X(require("os")),br=X(Ar()),re=X(require("typanion")),xe=class extends Ie.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=U.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=U.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=U.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=U.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=U.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=U.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:re.isOneOf([re.isEnum(["unlimited"]),re.applyCascade(re.isNumber(),[re.isInteger(),re.isAtLeast(1)])])});this.topological=U.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=U.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=U.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=U.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=U.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=U.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new Ie.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let s=this.cli.process([this.commandName,...this.args]),a=s.path.length===1&&s.path[0]==="run"&&typeof s.scriptName!="undefined"?s.scriptName:null;if(s.path.length===0)throw new U.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let i=this.all?r.topLevelWorkspace:n,o=this.since?Array.from(await Rr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r})):[i,...this.from.length>0?i.getRecursiveWorkspaceChildren():[]],h=E=>Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.from),g=this.from.length>0?o.filter(h):o,f=new Set([...g,...g.map(E=>[...this.recursive?this.since?E.getRecursiveWorkspaceDependents():E.getRecursiveWorkspaceDependencies():E.getRecursiveWorkspaceChildren()]).flat()]),A=[],p=!1;if(a==null?void 0:a.includes(":")){for(let E of r.workspaces)if(E.manifest.scripts.has(a)&&(p=!p,p===!1))break}for(let E of f)a&&!E.manifest.scripts.has(a)&&!p&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(E)).has(a)||a===process.env.npm_lifecycle_event&&E.cwd===n.cwd||this.include.length>0&&!Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.include)||this.exclude.length>0&&Be.default.isMatch(Y.structUtils.stringifyIdent(E.locator),this.exclude)||this.publicOnly&&E.manifest.private===!0||A.push(E);let k=this.parallel?this.jobs==="unlimited"?Infinity:this.jobs||Math.max(1,(0,yr.cpus)().length/2):1,y=k===1?!1:this.parallel,R=y?this.interlaced:!0,_=(0,br.default)(k),x=new Map,T=new Set,O=0,W=null,G=!1,ne=await Ee.StreamReport.start({configuration:t,stdout:this.context.stdout},async E=>{let b=async(C,{commandIndex:M})=>{if(G)return-1;!y&&this.verbose&&M>1&&E.reportSeparator();let l=zn(C,{configuration:t,verbose:this.verbose,commandIndex:M}),[H,w]=_r(E,{prefix:l,interlaced:R}),[j,c]=_r(E,{prefix:l,interlaced:R});try{this.verbose&&E.reportInfo(null,`${l} Process started`);let u=Date.now(),I=await this.cli.run([this.commandName,...this.args],{cwd:C.cwd,stdout:H,stderr:j})||0;H.end(),j.end(),await w,await c;let $=Date.now();if(this.verbose){let ee=t.get("enableTimers")?`, completed in ${Y.formatUtils.pretty(t,$-u,Y.formatUtils.Type.DURATION)}`:"";E.reportInfo(null,`${l} Process exited (exit code ${I})${ee}`)}return I===130&&(G=!0,W=I),I}catch(u){throw H.end(),j.end(),await w,await c,u}};for(let C of A)x.set(C.anchoredLocator.locatorHash,C);for(;x.size>0&&!E.hasErrors();){let C=[];for(let[H,w]of x){if(T.has(w.anchoredDescriptor.descriptorHash))continue;let j=!0;if(this.topological||this.topologicalDev){let c=this.topologicalDev?new Map([...w.manifest.dependencies,...w.manifest.devDependencies]):w.manifest.dependencies;for(let u of c.values()){let I=r.tryWorkspaceByDescriptor(u);if(j=I===null||!x.has(I.anchoredLocator.locatorHash),!j)break}}if(!!j&&(T.add(w.anchoredDescriptor.descriptorHash),C.push(_(async()=>{let c=await b(w,{commandIndex:++O});return x.delete(H),T.delete(w.anchoredDescriptor.descriptorHash),c})),!y))break}if(C.length===0){let H=Array.from(x.values()).map(w=>Y.structUtils.prettyLocator(t,w.anchoredLocator)).join(", ");E.reportError(Ee.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${H})`);return}let l=(await Promise.all(C)).find(H=>H!==0);W===null&&(W=typeof l!="undefined"?1:W),(this.topological||this.topologicalDev)&&typeof l!="undefined"&&E.reportError(Ee.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return W!==null?W:ne.exitCode()}};xe.paths=[["workspaces","foreach"]],xe.usage=U.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});var Er=xe;function _r(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),s=new Y.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let a=new Promise(o=>{n.on("finish",()=>{o(s.active)})});if(r)return[s,a];let i=new Y.miscUtils.BufferStream;return i.pipe(s,{end:!1}),i.on("finish",()=>{s.end()}),[i,a]}function zn(e,{configuration:t,commandIndex:r,verbose:n}){if(!n)return null;let s=Y.structUtils.convertToIdent(e.locator),i=`[${Y.structUtils.stringifyIdent(s)}]:`,o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],h=o[r%o.length];return Y.formatUtils.pretty(t,i,h)}var Jn={commands:[st,Er]},es=Jn;return Vn;})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +return plugin; +} +}; diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000000..2bbaac91f7 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1,9 @@ +nodeLinker: node-modules + +plugins: + - path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs + spec: "@yarnpkg/plugin-typescript" + - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs + spec: "@yarnpkg/plugin-workspace-tools" + - path: .yarn/plugins/@yarnpkg/plugin-version.cjs + spec: "@yarnpkg/plugin-version" diff --git a/Demo Artifacts/IRec Policy 3.policy b/Demo Artifacts/IRec Policy 3.policy new file mode 100644 index 0000000000..26f7796190 Binary files /dev/null and b/Demo Artifacts/IRec Policy 3.policy differ diff --git a/Demo Artifacts/Inverter.zip b/Demo Artifacts/Inverter.schema similarity index 100% rename from Demo Artifacts/Inverter.zip rename to Demo Artifacts/Inverter.schema diff --git a/Demo Artifacts/MRV.zip b/Demo Artifacts/MRV.schema similarity index 100% rename from Demo Artifacts/MRV.zip rename to Demo Artifacts/MRV.schema diff --git a/Demo Artifacts/Verra REDD Policy 2.policy b/Demo Artifacts/Verra REDD Policy 2.policy new file mode 100644 index 0000000000..5bfae79758 Binary files /dev/null and b/Demo Artifacts/Verra REDD Policy 2.policy differ diff --git a/Demo Artifacts/Verra REDD.zip b/Demo Artifacts/Verra REDD.policy similarity index 100% rename from Demo Artifacts/Verra REDD.zip rename to Demo Artifacts/Verra REDD.policy diff --git a/Demo Artifacts/iRec Application Details.zip b/Demo Artifacts/iREC Schema.schema similarity index 100% rename from Demo Artifacts/iRec Application Details.zip rename to Demo Artifacts/iREC Schema.schema diff --git a/Demo Artifacts/iRec Policy 2.zip b/Demo Artifacts/iRec Policy 2.policy similarity index 100% rename from Demo Artifacts/iRec Policy 2.zip rename to Demo Artifacts/iRec Policy 2.policy diff --git a/Demo Artifacts/iRec Policy.zip b/Demo Artifacts/iRec Policy.policy similarity index 100% rename from Demo Artifacts/iRec Policy.zip rename to Demo Artifacts/iRec Policy.policy diff --git a/Demo Artifacts/irec-policy-config.txt b/Demo Artifacts/irec-policy-config.txt index 8d39dd3de7..81c8168bad 100644 --- a/Demo Artifacts/irec-policy-config.txt +++ b/Demo Artifacts/irec-policy-config.txt @@ -411,7 +411,7 @@ }, { "id": "9afff85d-2d4a-4874-9a1d-e9c5ec35e923", - "tag": "root_authority_header", + "tag": "standard_registry_header", "blockType": "interfaceContainerBlock", "defaultActive": true, "children": [ diff --git a/Demo Artifacts/readme.md b/Demo Artifacts/readme.md index e8c77f57bd..5c0b701483 100644 --- a/Demo Artifacts/readme.md +++ b/Demo Artifacts/readme.md @@ -2,10 +2,11 @@ This folder contains sample files that are referenced in the Demo Usage Guide from previous versions of the Guardian. As of version 1.0.5 the following files will not be needed to follow the guide: -1. Sample Schema for iRec Policy (`iRec_Application_Details.zip`) -2. Sample Policy Workflow configuration file (`irec-policy-config.txt`) -3. Sample of Verra REDD Policy (`Verra REDD.zip`) -4. Sample Schema design template for Verra REDD Policy (`REDD APD Schema Design Template.xlsx`) +1. Sample Schema of iREC (`iREC Schema.zip`) +2. Sample of iREC Policy (`IRec Policy 3.zip`) +3. Sample Policy Workflow configuration file (`irec-policy-config.txt`) +4. Sample of Verra REDD Policy (`Verra REDD Policy 2.zip`) +5. Sample Schema design template for Verra REDD Policy (`REDD APD Schema Design Template.xlsx`) We are keeping them in the repo as they may be relevant in future releases. @@ -13,7 +14,7 @@ We are keeping them in the repo as they may be relevant in future releases. 1. The Guardian reference implementation comes with two predefined users: -- **Root Authority**: A standard registry, or a Root Authority in our scenario, is an organization that establishes science-based standards for measuring, reporting, and verifying (MRV) ecological benefit claims and issues value in the form of credit for claims that meet the standard set. A standard registry also authorizes validation and verification bodies (VVBs) to collect and process claims based on the established standard. The creation of scientific-based standards for MRV is a rigorous discipline that requires independence from commercial influence in the pursuit of accurate accounting of benefit or emissions claims. A standard registry organization can also maintain a central registry of credits they have issued that can be sold directly via the registry itself or established as reference value on networks, exchanges, or marketplaces. +- **Standard Registry**: A standard registry, or a Standard Registry in our scenario, is an organization that establishes science-based standards for measuring, reporting, and verifying (MRV) ecological benefit claims and issues value in the form of credit for claims that meet the standard set. A standard registry also authorizes validation and verification bodies (VVBs) to collect and process claims based on the established standard. The creation of scientific-based standards for MRV is a rigorous discipline that requires independence from commercial influence in the pursuit of accurate accounting of benefit or emissions claims. A standard registry organization can also maintain a central registry of credits they have issued that can be sold directly via the registry itself or established as reference value on networks, exchanges, or marketplaces. - **Auditor**: This is a 3rd part who will need to view/audit the entire chain of events; from the establishment of the science-based standards through creation of the credit. For complete flow documentation, please refer to https://docs.hedera.com/guardian/demo-guide/demo-usage-guide diff --git a/README.md b/README.md index e2cc0f760c..619dde360d 100644 --- a/README.md +++ b/README.md @@ -82,22 +82,6 @@ To get a local copy up and running, follow these simple example steps. When buil npm run build ``` - **From the logger-helper folder** - - Build package - ```sh - npm install - npm run build - ``` - - **From the interfaces folder** - - Build package - ```sh - npm install - npm run build - ``` - **From the common folder** @@ -107,12 +91,6 @@ To get a local copy up and running, follow these simple example steps. When buil npm run build ``` - **From the logger-helper folder** - - Build package - ```sh - npm install - npm run build ``` **From the Logger service folder** diff --git a/RELEASE-MANAGEMENT-PLAN.md b/RELEASE-MANAGEMENT-PLAN.md index 5e737c65b5..743d3b121b 100644 --- a/RELEASE-MANAGEMENT-PLAN.md +++ b/RELEASE-MANAGEMENT-PLAN.md @@ -3,7 +3,7 @@ This document describes general approach to release management for the Guardian ### Release schedule and numbering -The Guardian development team follows Scrum methodology with 2-week sprints. Software releases are produced on regular cadence every other sprint, i.e every 4 weeks; regardless of the status of features in development. Releases are produced on Mondays at 12:00 EST, following the go/no-go decisition taken at the end-of-sprint review on Friday previous week. +The Guardian development team follows Scrum methodology with 2-week sprints. Software releases are produced on regular cadence every other sprint, i.e every 4 weeks; regardless of the status of features in development. Releases are produced on Tuesdays at 12:00 EST, following the go/no-go decisition taken at the end-of-sprint review on Friday previous week. The Guardian uses semantic versioning for releases in the major.minor.build format. Each number incremented sequentially to denote the following changes: - major: a significant milestone in product lifecycle has been reached @@ -13,7 +13,10 @@ The Guardian uses semantic versioning for releases in the major.minor.build form Guardian version numbers also reflect changes in the API delivered by the release. Detailed description of the API lifecycle management and versioning is available in the [API Versioning and Deprecation Policy](https://docs.hedera.com/guardian/getting-started/api-versioning-and-deprecation-policy). ### Release process -The Guardian release process is built around the sprint cycle, where each sprint ends with the codebase in the 'releasable' state. The only difference between the alternating release sprints and non-release sprints is the activities of packaging and uploading artifacts into external repositories. +The Guardian release process is built around the sprint cycle, where each sprint ends with the codebase in the 'releasable' state. The difference between the alternating release sprints and non-release sprints is in the set of activities forming the release: +- tagging the codebase with the release tag. +- release testing. +- packaging and uploading artifacts into external repositories. #### Feature development cycle An inception-to-release lifecycle of a new enchacement is usually 3 sprints long: @@ -45,25 +48,30 @@ After the Sprint ended, the Product Owner leads the Sprint Review ceremony on Mo - Product Owner delivers a sprint report (with charts and statistics of the sprint) - Developers demo completed features, which includes showing unit tests and documentation (where relevant). For features without exposure through a UI developers will demo the successful run of the unit test. -Following the Sprint Review lead developer tags and merges 'Develop' into 'Main'. - On Tuesday the Product Owner holds a 'Retrospective' meeting where developers discuss between themselves successes/failures of the previous sprint and opportunities for improvements. #### Release flow -Release sprint contain additional activities: -- Documentation review by the Product Manager -- Unit tests verification by the lead developer -- Demo environment sanity tested by lead developer, product team and/or stakeholders -- Product Manager prepares ChangeLog document -- Product Manager prepares Release notes -- Product Manager tags the release and runs release CI pipeline, following which verifies that it completed successfully and all artefacts got uploaded to the correct repositories - - Product Manager tags the Develop branch with the new version - - Product Manager or Lead developer creates a PR and squash-merges into the update from the Develop into the Main branch - - Product Manager tags the Main branch - - Produt Manager makes a release in the Main branch -- Product Owner posts community announcements in the discord and slack channels - +Development release cycle consists of two sprints: development sprint followed by the release sprint. Development sprint is fully dedicated to normal development activities, release sprints contain consist of two stages: +- a week-long development stage (the same as in the development sprint), which ends with the 'code freeze' +- a week-long 'stabilization' stage, during which team resources are allocated to testing, bug fixing and documentation. No new development work is performed during this period. + +The 'stabilisation' stage of the release sprint starts the following additional activities: +- Product Manager tags the release and runs release CI pipeline, following which verifies that it completed successfully. +- Product Manager tags the Develop branch with the new pre-release version. +- Product Manager or Lead developer creates a PR and squash-merges into the update from the Develop into the Main branch. +- Product Manager tags the Main branch with the **pre-release**. +- Product Manager makes a **pre-release** in the Main branch. +- Product Manager prepares a pre-release ChangeLog document. +- Product Manager prepares a pre-release Release notes. +- Product Owner posts community announcements in the discord and slack channels about the availability of the pre-release, to enable members of the community to assess the release impact and prepare for the upgrade. + +The entire team, with the help of the wider community, tests the Release for a week, fixing defects, developing additional unit-tests, and improving/fixing documentation. Other activities include: +- Documentation review by the Product Manager, Product Owner and stakeholders. +- Unit tests verification by the lead developer. +- Demo environment sanity tested by lead developer, product team and/or stakeholders. + +At the end of the release sprint Product Owner facilitates the discussion with Product Manager and members of the Dev and QA teams on the release go/no-go decisions. Following a positive decision the PM tags the codebase with the release version and makes the release ensuring all release artefacts get uploaded into their distribution repositories. #### Artifacts list diff --git a/api-docs/api/Guardian.postman_collection.json b/api-docs/api/Guardian.postman_collection.json index cf2c821d04..2397436ba1 100644 --- a/api-docs/api/Guardian.postman_collection.json +++ b/api-docs/api/Guardian.postman_collection.json @@ -1,6 +1,6 @@ { "info": { - "_postman_id": "7b20c48a-b372-4d10-80cd-c3ce1a5d7615", + "_postman_id": "6545a3cc-a4fa-4a5d-8f31-80321c0ed886", "name": "Guardian", "description": "The Guardian is a modular open-source solution that includes best-in-class identity management and decentralized ledger technology (DLT) libraries. At the heart of the Guardian solution is a sophisticated Policy Workflow Engine (PWE) that enables applications to offer a requirements-based tokenization implementation.\n\nContact Support:\n Name: API developer\n Email: info@envisionblockchain.com", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" @@ -10,7 +10,7 @@ "name": "accounts", "item": [ { - "name": "Returns a list of users, excluding Root Authority and Auditors.", + "name": "Returns a list of users, excluding Standard Registry and Auditors.", "request": { "auth": { "type": "bearer", @@ -38,7 +38,7 @@ "accounts" ] }, - "description": "Returns all users except those with roles Root Authority and Auditor. Only users with the Root Authority role are allowed to make the request." + "description": "Returns all users except those with roles Standard Registry and Auditor. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { @@ -171,7 +171,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -240,7 +240,7 @@ } ], "cookie": [], - "body": "{\n \"username\": \"qui\",\n \"role\": \"pr\",\n \"accessToken\": \"velit quis aliqua\"\n}" + "body": "{\n \"username\": \"sit dolor officia fugiat\",\n \"role\": \"ullamco\",\n \"accessToken\": \"veniam dolor sunt Excepteur incididunt\"\n}" }, { "name": "Unauthorized.", @@ -308,7 +308,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -328,7 +328,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -354,7 +354,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -382,7 +382,7 @@ } ], "cookie": [], - "body": "{\n \"username\": \"exercitation\",\n \"role\": \"in ea adipisicing ut\",\n \"did\": \"sint Ut Excepteur\"\n}" + "body": "{\n \"username\": \"aliquip cupidatat ipsum\",\n \"role\": \"ut ex\",\n \"did\": \"do reprehenderit\"\n}" }, { "name": "Internal server error.", @@ -391,7 +391,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -419,7 +419,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -439,7 +439,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -465,7 +465,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -493,7 +493,7 @@ } ], "cookie": [], - "body": "{\n \"username\": \"qui\",\n \"role\": \"pr\",\n \"accessToken\": \"velit quis aliqua\"\n}" + "body": "{\n \"username\": \"sit dolor officia fugiat\",\n \"role\": \"ullamco\",\n \"accessToken\": \"veniam dolor sunt Excepteur incididunt\"\n}" }, { "name": "Internal server error.", @@ -502,7 +502,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"username\": \"cupidatat anim nu\",\n \"password\": \"aliquip esse id\"\n}", + "raw": "{\n \"username\": \"dolor et consequat\",\n \"password\": \"occaecat dolore irure\"\n}", "options": { "raw": { "language": "json" @@ -530,7 +530,144 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Returns all Standard Registries.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/accounts/standard-registries", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "accounts", + "standard-registries" + ] + }, + "description": "Returns all Standard Registries." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/accounts/standard-registries", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "accounts", + "standard-registries" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"username\": \"ullamco esse in\",\n \"role\": \"reprehenderit anim ad esse\",\n \"did\": \"est\"\n },\n {\n \"username\": \"aute\",\n \"role\": \"voluptate cillum\",\n \"did\": \"nulla veniam\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/accounts/standard-registries", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "accounts", + "standard-registries" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/accounts/standard-registries", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "accounts", + "standard-registries" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } @@ -571,12 +708,12 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the information." } ] }, - "description": "Returns user account information. For users with the Root Authority role it also returns address book and VC document information." + "description": "Returns user account information. For users with the Standard Registry role it also returns address book and VC document information." }, "response": [ { @@ -602,7 +739,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the information." } ] @@ -618,7 +755,7 @@ } ], "cookie": [], - "body": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}" + "body": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}" }, { "name": "Unauthorized.", @@ -643,7 +780,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the information." } ] @@ -684,7 +821,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the information." } ] @@ -725,7 +862,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the information." } ] @@ -741,7 +878,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -771,7 +908,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}", + "raw": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}", "options": { "raw": { "language": "json" @@ -790,12 +927,12 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to update the information." } ] }, - "description": "Sets Hedera credentials for the user. For users with the Root Authority role it also creates an address book." + "description": "Sets Hedera credentials for the user. For users with the Standard Registry role it also creates an address book." }, "response": [ { @@ -811,7 +948,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}", + "raw": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}", "options": { "raw": { "language": "json" @@ -830,7 +967,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to update the information." } ] @@ -861,7 +998,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}", + "raw": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}", "options": { "raw": { "language": "json" @@ -880,7 +1017,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to update the information." } ] @@ -911,7 +1048,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}", + "raw": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}", "options": { "raw": { "language": "json" @@ -930,7 +1067,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to update the information." } ] @@ -961,7 +1098,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"aute nisi\",\n \"role\": \"enim ut dolore\",\n \"confirmed\": \"consectetur ut Ut aute\",\n \"failed\": \"officia ea\",\n \"hederaAccountId\": \"aliquip in exercitation anim\",\n \"hederaAccountKey\": \"aliquip irure\",\n \"did\": \"nisi\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"addressBook\": {\n \"appnetName\": \"ipsum\",\n \"addressBook\": \"veniam Duis ex\",\n \"didTopic\": \"aute mollit consectetur in dolor\",\n \"vcTopic\": \"culpa et\",\n \"didServerUrl\": \"ut do elit\",\n \"didTopicMemo\": \"qui culpa\",\n \"vcTopicMemo\": \"id elit\"\n }\n}", + "raw": "{\n \"username\": \"Lorem\",\n \"role\": \"aliquip\",\n \"confirmed\": \"sed\",\n \"failed\": \"tempor nulla do ex quis\",\n \"hederaAccountId\": \"elit esse\",\n \"hederaAccountKey\": \"Duis ut ea\",\n \"did\": \"ipsum sunt anim magna amet\",\n \"didDocument\": {},\n \"vcDocument\": {},\n \"parent\": \"dolor eiusmod amet\",\n \"topicId\": \"aliqu\"\n}", "options": { "raw": { "language": "json" @@ -980,7 +1117,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to update the information." } ] @@ -996,7 +1133,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -1033,7 +1170,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the balance." } ] @@ -1065,7 +1202,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the balance." } ] @@ -1081,7 +1218,7 @@ } ], "cookie": [], - "body": "\"nisi ipsum\"" + "body": "\"Lorem ipsum\"" }, { "name": "Unauthorized.", @@ -1107,7 +1244,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the balance." } ] @@ -1149,7 +1286,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the balance." } ] @@ -1191,7 +1328,7 @@ "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) The name of the user for whom to fetch the balance." } ] @@ -1207,7 +1344,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } @@ -1217,13 +1354,13 @@ "name": "schemas", "item": [ { - "name": "{schema Id}", + "name": "{topic Id}", "item": [ { - "name": "export", + "name": "import", "item": [ { - "name": "List Hedera message IDs of published schemas.", + "name": "Imports new schema from a zip file.", "request": { "auth": { "type": "bearer", @@ -1237,31 +1374,39 @@ }, "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "binary/octet-stream" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/message", + "raw": "{{baseUrl}}/schemas/:topicId/import/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "message" + ":topicId", + "import", + "file" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] }, - "description": "Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Root Authority role are allowed to make the request." + "description": "Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { @@ -1275,28 +1420,32 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/message", + "raw": "{{baseUrl}}/schemas/:topicId/import/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "message" + ":topicId", + "import", + "file" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } }, - "status": "OK", - "code": 200, + "status": "Created", + "code": 201, "_postman_previewlanguage": "json", "header": [ { @@ -1305,7 +1454,7 @@ } ], "cookie": [], - "body": "{\n \"name\": \"Excepteur aute\",\n \"version\": \"laborum Lorem dolor\",\n \"messageId\": \"in\"\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", @@ -1318,22 +1467,26 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/message", + "raw": "{{baseUrl}}/schemas/:topicId/import/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "message" + ":topicId", + "import", + "file" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1361,22 +1514,26 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/message", + "raw": "{{baseUrl}}/schemas/:topicId/import/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "message" + ":topicId", + "import", + "file" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1404,22 +1561,26 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/message", + "raw": "{{baseUrl}}/schemas/:topicId/import/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "message" + ":topicId", + "import", + "file" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1434,12 +1595,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Return zip file with schemas.", + "name": "Imports new schema from IPFS.", "request": { "auth": { "type": "bearer", @@ -1453,35 +1614,48 @@ }, "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/file", + "raw": "{{baseUrl}}/schemas/:topicId/import/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "file" + ":topicId", + "import", + "message" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] }, - "description": "Returns schema files for the schemas. Only users with the Root Authority role are allowed to make the request." + "description": "Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { - "name": "Successful operation. Response zip file", + "name": "Successful operation.", "originalRequest": { "method": "POST", "header": [ @@ -1491,37 +1665,46 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/file", + "raw": "{{baseUrl}}/schemas/:topicId/import/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "file" + ":topicId", + "import", + "message" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "text", + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", - "value": "text/plain" + "value": "application/json" } ], "cookie": [], - "body": "" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", @@ -1534,22 +1717,31 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/file", + "raw": "{{baseUrl}}/schemas/:topicId/import/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "file" + ":topicId", + "import", + "message" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1577,22 +1769,31 @@ "value": "Bearer " } ], - "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/file", - "host": [ - "{{baseUrl}}" - ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:topicId/import/message", + "host": [ + "{{baseUrl}}" + ], "path": [ "schemas", - ":schemaId", - "export", - "file" + ":topicId", + "import", + "message" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1620,22 +1821,31 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/export/file", + "raw": "{{baseUrl}}/schemas/:topicId/import/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId", - "export", - "file" + ":topicId", + "import", + "message" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Selected schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1650,14 +1860,14 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } ] }, { - "name": "Updates the schema.", + "name": "Create new schema.", "request": { "auth": { "type": "bearer", @@ -1669,7 +1879,7 @@ } ] }, - "method": "PUT", + "method": "POST", "header": [ { "key": "Content-Type", @@ -1682,7 +1892,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -1690,29 +1900,29 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] }, - "description": "Updates the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request." + "description": "Creates new schema. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -1722,7 +1932,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -1730,39 +1940,39 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", + "status": "Created", + "code": 201, + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" + "body": "" }, { "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -1772,7 +1982,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -1780,19 +1990,19 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1812,7 +2022,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -1822,7 +2032,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -1830,19 +2040,19 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1862,7 +2072,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -1872,7 +2082,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -1880,19 +2090,19 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1907,12 +2117,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Deletes the schema.", + "name": "Returns all schemas by topicId.", "request": { "auth": { "type": "bearer", @@ -1924,7 +2134,7 @@ } ] }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -1932,29 +2142,41 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" + ], + "query": [ + { + "key": "pageIndex", + "value": "0", + "description": "The number of pages to skip before starting to collect the result set" + }, + { + "key": "pageSize", + "value": "100", + "description": "The numbers of items to return" + } ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] }, - "description": "Deletes the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request." + "description": "Returns all schemas by topicId." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "DELETE", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -1963,19 +2185,29 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -1984,18 +2216,23 @@ "code": 200, "_postman_previewlanguage": "json", "header": [ + { + "key": "x-total-count", + "value": "-38350393", + "description": "Total items in the collection." + }, { "key": "Content-Type", "value": "application/json" } ], "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", "originalRequest": { - "method": "DELETE", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -2004,19 +2241,29 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -2036,7 +2283,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "DELETE", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -2045,19 +2292,29 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -2077,7 +2334,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "DELETE", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -2086,19 +2343,29 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/:schemaId", + "raw": "{{baseUrl}}/schemas/:topicId?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - ":schemaId" + ":topicId" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ], "variable": [ { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "key": "topicId", + "value": "0.0.00000001", + "description": "(Required) Topic ID." } ] } @@ -2113,312 +2380,60 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - }, + } + ] + }, + { + "name": "{schema Id}", + "item": [ { - "name": "Publishes the schema.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"version\": \"proident id\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/publish", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - ":schemaId", - "publish" - ], - "variable": [ - { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." - } - ] - }, - "description": "Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ + "name": "export", + "item": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "PUT", + "name": "List Hedera message IDs of published schemas.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Accept", + "value": "application/json" } ], - "body": { - "mode": "raw", - "raw": "{\n \"version\": \"proident id\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/publish", + "raw": "{{baseUrl}}/schemas/:schemaId/export/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", ":schemaId", - "publish" + "export", + "message" ], "variable": [ { "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." } ] - } + }, + "description": "Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Standard Registry role are allowed to make the request." }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"version\": \"proident id\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/publish", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - ":schemaId", - "publish" - ], - "variable": [ - { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"version\": \"proident id\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/publish", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - ":schemaId", - "publish" - ], - "variable": [ - { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." - } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"version\": \"proident id\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/:schemaId/publish", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - ":schemaId", - "publish" - ], - "variable": [ - { - "key": "schemaId", - "value": "nisi ipsum", - "description": "(Required) Schema ID." - } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "import", - "item": [ - { - "name": "file", - "item": [ - { - "name": "Imports new schema from a zip file.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/schemas/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "file" - ] - }, - "description": "Imports new schema from a zip file into the local DB. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ + "response": [ { "name": "Successful operation.", "originalRequest": { @@ -2431,19 +2446,27 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file", + "raw": "{{baseUrl}}/schemas/:schemaId/export/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file" + ":schemaId", + "export", + "message" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, - "status": "Created", - "code": 201, + "status": "OK", + "code": 200, "_postman_previewlanguage": "json", "header": [ { @@ -2452,7 +2475,7 @@ } ], "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" + "body": "{\n \"name\": \"laboris Duis magna\",\n \"version\": \"labore minim sint non\",\n \"messageId\": \"Duis aliquip nostrud ut\"\n}" }, { "name": "Unauthorized.", @@ -2466,14 +2489,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file", + "raw": "{{baseUrl}}/schemas/:schemaId/export/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file" + ":schemaId", + "export", + "message" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2501,14 +2532,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file", + "raw": "{{baseUrl}}/schemas/:schemaId/export/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file" + ":schemaId", + "export", + "message" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2536,14 +2575,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file", + "raw": "{{baseUrl}}/schemas/:schemaId/export/message", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file" + ":schemaId", + "export", + "message" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2557,12 +2604,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Schema preview from a zip file.", + "name": "Return zip file with schemas.", "request": { "auth": { "type": "bearer", @@ -2582,22 +2629,29 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file/preview", + "raw": "{{baseUrl}}/schemas/:schemaId/export/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file", - "preview" + ":schemaId", + "export", + "file" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] }, - "description": "Previews the schema from a zip file. Only users with the Root Authority role are allowed to make the request." + "description": "Returns schema files for the schemas. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { - "name": "Successful operation.", + "name": "Successful operation. Response zip file", "originalRequest": { "method": "POST", "header": [ @@ -2608,29 +2662,36 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file/preview", + "raw": "{{baseUrl}}/schemas/:schemaId/export/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file", - "preview" - ] - } - }, - "status": "OK", + ":schemaId", + "export", + "file" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } + ] + } + }, + "status": "OK", "code": 200, - "_postman_previewlanguage": "json", + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" + "body": "" }, { "name": "Unauthorized.", @@ -2644,15 +2705,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file/preview", + "raw": "{{baseUrl}}/schemas/:schemaId/export/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file", - "preview" + ":schemaId", + "export", + "file" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2680,15 +2748,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file/preview", + "raw": "{{baseUrl}}/schemas/:schemaId/export/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file", - "preview" + ":schemaId", + "export", + "file" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2716,15 +2791,22 @@ } ], "url": { - "raw": "{{baseUrl}}/schemas/import/file/preview", + "raw": "{{baseUrl}}/schemas/:schemaId/export/file", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "file", - "preview" + ":schemaId", + "export", + "file" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Selected schema ID." + } ] } }, @@ -2738,42 +2820,79 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } ] }, { - "name": "message", - "item": [ + "name": "Updates the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + }, + "description": "Updates the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ { - "name": "Imports new schema from IPFS.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", "header": [ { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], "body": { "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -2781,224 +2900,149 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/import/message", + "raw": "{{baseUrl}}/schemas/:schemaId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "message" + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } ] - }, - "description": "Imports new schema from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request." + } }, - "response": [ + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message" - ] + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ { - "key": "Content-Type", - "value": "application/json" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } - ], - "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" - }, + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" } - ], - "cookie": [], - "body": "" + } }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ { - "key": "Content-Type", - "value": "application/json" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + ] } - ] + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" }, { - "name": "Schema preview from IPFS.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", "header": [ { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], "body": { "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", "options": { "raw": { "language": "json" @@ -3006,391 +3050,270 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas/import/message/preview", + "raw": "{{baseUrl}}/schemas/:schemaId", "host": [ "{{baseUrl}}" ], "path": [ "schemas", - "import", - "message", - "preview" + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } ] - }, - "description": "Previews the schema from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request." + } }, - "response": [ + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message", - "preview" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" - }, + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Deletes the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message", - "preview" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message", - "preview" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas", - "import", - "message", - "preview" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "key": "token", + "value": "", + "type": "string" } ] - } - ] - } - ] - }, - { - "name": "Create new schema.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - }, - "description": "Creates new schema. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", - "options": { - "raw": { - "language": "json" - } - } }, - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", + "method": "DELETE", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Accept", + "value": "application/json" } ], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/schemas", + "raw": "{{baseUrl}}/schemas/:schemaId", "host": [ "{{baseUrl}}" ], "path": [ - "schemas" + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } ] - } + }, + "description": "Deletes the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request." }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ + "response": [ { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", - "options": { - "raw": { - "language": "json" + "name": "Successful operation.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] } - } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" + { + "name": "Unauthorized.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } ], - "path": [ - "schemas" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ + "cookie": [], + "body": "" + }, { - "key": "Content-Type", - "value": "text/plain" + "name": "Forbidden.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } - ], - "cookie": [], - "body": "" + ] }, { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", + "name": "Publishes the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "PUT", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "body": { "mode": "raw", - "raw": "{\n \"id\": \"magna aute consequat\",\n \"name\": \"nostrud qui voluptate cupidatat\",\n \"description\": \"velit tempor officia fugiat\",\n \"entity\": \"mollit\",\n \"document\": \"ad minim laborum\",\n \"uuid\": \"ad commodo laborum qui\",\n \"hash\": \"dolor\",\n \"status\": \"reprehenderit eiusmod\"\n}", + "raw": "{\n \"version\": \"et irure Ut\"\n}", "options": { "raw": { "language": "json" @@ -3398,594 +3321,546 @@ } }, "url": { - "raw": "{{baseUrl}}/schemas", + "raw": "{{baseUrl}}/schemas/:schemaId/publish", "host": [ "{{baseUrl}}" ], "path": [ - "schemas" + "schemas", + ":schemaId", + "publish" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } ] - } + }, + "description": "Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request." }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - }, - { - "name": "Returns all schemas.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ + "response": [ { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - }, - "description": "Returns all schemas." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"id\": \"anim dolore\",\n \"name\": \"ullamco non et\",\n \"description\": \"vel\",\n \"entity\": \"dolore non sunt\",\n \"document\": \"enim\",\n \"uuid\": \"dolor velit quis in\",\n \"hash\": \"ad occaecat\",\n \"status\": \"aute consequat pariatur\"\n },\n {\n \"id\": \"id officia\",\n \"name\": \"elit cillum sit minim cupidatat\",\n \"description\": \"quis do anim\",\n \"entity\": \"ut occaecat qui adipisicing\",\n \"document\": \"minim Ut ut aute fugiat\",\n \"uuid\": \"ullamco officia sint\",\n \"hash\": \"veniam\",\n \"status\": \"culpa Excepteur ullamco\"\n }\n]" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "schemas" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "tokens", - "item": [ - { - "name": "{token Id}", - "item": [ - { - "name": "{username}", - "item": [ - { - "name": "/tokens/:tokenId/:username/info", - "request": { - "auth": { - "type": "bearer", - "bearer": [ + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "publish" + ], + "variable": [ { - "key": "token", - "value": "", - "type": "string" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - }, - "method": "GET", + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", "header": [ { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", + "raw": "{{baseUrl}}/schemas/:schemaId/publish", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "info" + "schemas", + ":schemaId", + "publish" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - }, - "description": "Returns user information for the selected token. Only users with the Root Authority role are allowed to make the request." + } }, - "response": [ + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "info" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" } - ], - "cookie": [], - "body": "{\n \"id\": \"nisi nulla et\",\n \"tokenId\": \"eiusmod et qui\",\n \"tokenName\": \"nisi dolor\",\n \"tokenSymbol\": \"est mollit veniam sed Duis\",\n \"tokenType\": \"reprehenderit amet ad non\",\n \"decimals\": \"deser\",\n \"associated\": true,\n \"balance\": \"ut id minim\",\n \"frozen\": false,\n \"kyc\": true\n}" + } }, - { - "name": "Bad Request.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "info" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/publish", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "info" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ + "path": [ + "schemas", + ":schemaId", + "publish" + ], + "variable": [ { - "key": "Content-Type", - "value": "text/plain" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } - ], - "cookie": [], - "body": "" - }, + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "info" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "publish" + ], + "variable": [ { - "key": "Content-Type", - "value": "text/plain" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "info" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Publishes the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/active", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "active" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + }, + "description": "Makes the selected scheme active. Other schemes of the same type become inactive. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/active", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "active" + ], + "variable": [ { - "key": "Content-Type", - "value": "application/json" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + ] } - ] + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { - "name": "Sets the KYC flag for the user.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/active", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "active" + ], + "variable": [ { - "key": "token", - "value": "", - "type": "string" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - }, + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { "method": "PUT", "header": [ { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "raw": "{{baseUrl}}/schemas/:schemaId/active", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" + "schemas", + ":schemaId", + "active" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - }, - "description": "Sets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request." + } }, - "response": [ + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"version\": \"et irure Ut\"\n}", + "options": { + "raw": { + "language": "json" } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/:schemaId/active", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + ":schemaId", + "active" + ], + "variable": [ { - "key": "Content-Type", - "value": "application/json" + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "import", + "item": [ + { + "name": "file", + "item": [ + { + "name": "Imports new schema from a zip file.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "binary/octet-stream" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/schemas/import/file", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "{\n \"id\": \"nisi nulla et\",\n \"tokenId\": \"eiusmod et qui\",\n \"tokenName\": \"nisi dolor\",\n \"tokenSymbol\": \"est mollit veniam sed Duis\",\n \"tokenType\": \"reprehenderit amet ad non\",\n \"decimals\": \"deser\",\n \"associated\": true,\n \"balance\": \"ut id minim\",\n \"frozen\": false,\n \"kyc\": true\n}" + "path": [ + "schemas", + "import", + "file" + ] }, + "description": "Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ { - "name": "Bad Request.", + "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -3993,33 +3868,24 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "raw": "{{baseUrl}}/schemas/import/file", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file" ] } }, - "status": "Bad Request", - "code": 400, + "status": "Created", + "code": 201, "_postman_previewlanguage": "json", "header": [ { @@ -4028,12 +3894,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4041,28 +3907,19 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "raw": "{{baseUrl}}/schemas/import/file", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file" ] } }, @@ -4081,7 +3938,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4089,28 +3946,19 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "raw": "{{baseUrl}}/schemas/import/file", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file" ] } }, @@ -4129,7 +3977,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4137,28 +3985,19 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "raw": "{{baseUrl}}/schemas/import/file", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "grantKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file" ] } }, @@ -4172,12 +4011,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Unsets the KYC flag for the user.", + "name": "Schema preview from a zip file.", "request": { "auth": { "type": "bearer", @@ -4189,44 +4028,40 @@ } ] }, - "method": "PUT", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "binary/octet-stream" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "raw": "{{baseUrl}}/schemas/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file", + "preview" ] }, - "description": "Unsets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request." + "description": "Previews the schema from a zip file. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4234,28 +4069,20 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "raw": "{{baseUrl}}/schemas/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file", + "preview" ] } }, @@ -4269,60 +4096,12 @@ } ], "cookie": [], - "body": "{\n \"id\": \"nisi nulla et\",\n \"tokenId\": \"eiusmod et qui\",\n \"tokenName\": \"nisi dolor\",\n \"tokenSymbol\": \"est mollit veniam sed Duis\",\n \"tokenType\": \"reprehenderit amet ad non\",\n \"decimals\": \"deser\",\n \"associated\": true,\n \"balance\": \"ut id minim\",\n \"frozen\": false,\n \"kyc\": true\n}" - }, - { - "name": "Bad Request.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4330,28 +4109,20 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "raw": "{{baseUrl}}/schemas/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file", + "preview" ] } }, @@ -4370,7 +4141,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4378,28 +4149,20 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "raw": "{{baseUrl}}/schemas/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file", + "preview" ] } }, @@ -4418,7 +4181,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4426,28 +4189,20 @@ "value": "Bearer " } ], + "body": { + "mode": "file", + "file": {} + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "raw": "{{baseUrl}}/schemas/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "revokeKyc" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "file", + "preview" ] } }, @@ -4461,12 +4216,17 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - }, + } + ] + }, + { + "name": "message", + "item": [ { - "name": "Freeze transfers of the specified token for the user.", + "name": "Imports new schema from IPFS.", "request": { "auth": { "type": "bearer", @@ -4478,44 +4238,44 @@ } ] }, - "method": "PUT", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "raw": "{{baseUrl}}/schemas/import/message", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message" ] }, - "description": "Freezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request." + "description": "Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4523,33 +4283,29 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "raw": "{{baseUrl}}/schemas/import/message", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message" ] } }, - "status": "OK", - "code": 200, + "status": "Created", + "code": 201, "_postman_previewlanguage": "json", "header": [ { @@ -4558,12 +4314,12 @@ } ], "cookie": [], - "body": "{\n \"id\": \"nisi nulla et\",\n \"tokenId\": \"eiusmod et qui\",\n \"tokenName\": \"nisi dolor\",\n \"tokenSymbol\": \"est mollit veniam sed Duis\",\n \"tokenType\": \"reprehenderit amet ad non\",\n \"decimals\": \"deser\",\n \"associated\": true,\n \"balance\": \"ut id minim\",\n \"frozen\": false,\n \"kyc\": true\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { - "name": "Bad Request.", + "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4571,47 +4327,43 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "raw": "{{baseUrl}}/schemas/import/message", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message" ] } }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "" }, { - "name": "Unauthorized.", + "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4619,76 +4371,24 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "raw": "{{baseUrl}}/schemas/import/message", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message" ] } }, @@ -4707,7 +4407,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4715,28 +4415,24 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "raw": "{{baseUrl}}/schemas/import/message", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "freeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message" ] } }, @@ -4750,12 +4446,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Unfreezes transfers of the specified token for the user.", + "name": "Schema preview from IPFS.", "request": { "auth": { "type": "bearer", @@ -4767,44 +4463,45 @@ } ] }, - "method": "PUT", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/import/message/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message", + "preview" ] }, - "description": "Unfreezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request." + "description": "Previews the schema from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4812,28 +4509,25 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/import/message/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message", + "preview" ] } }, @@ -4847,12 +4541,12 @@ } ], "cookie": [], - "body": "{\n \"id\": \"nisi nulla et\",\n \"tokenId\": \"eiusmod et qui\",\n \"tokenName\": \"nisi dolor\",\n \"tokenSymbol\": \"est mollit veniam sed Duis\",\n \"tokenType\": \"reprehenderit amet ad non\",\n \"decimals\": \"deser\",\n \"associated\": true,\n \"balance\": \"ut id minim\",\n \"frozen\": false,\n \"kyc\": true\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { - "name": "Bad Request.", + "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4860,47 +4554,44 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/import/message/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message", + "preview" ] } }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "" }, { - "name": "Unauthorized.", + "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4908,33 +4599,30 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/import/message/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, - { - "key": "username", - "value": "nisi ipsum", - "description": "(Required) Username." - } + "schemas", + "import", + "message", + "preview" ] } }, - "status": "Unauthorized", - "code": 401, + "status": "Forbidden", + "code": 403, "_postman_previewlanguage": "text", "header": [ { @@ -4946,9 +4634,9 @@ "body": "" }, { - "name": "Forbidden.", + "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -4956,26 +4644,242 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/import/message/preview", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, + "schemas", + "import", + "message", + "preview" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + } + ] + }, + { + "name": "system", + "item": [ + { + "name": "{username}", + "item": [ + { + "name": "Creates new system schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:username", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + }, + "description": "Creates new system schema. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:username", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:username", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:username", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "variable": [ { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) Username." } ] @@ -4996,7 +4900,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5004,26 +4908,29 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "raw": "{{baseUrl}}/schemas/system/:username", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - ":username", - "unfreeze" + "schemas", + "system", + ":username" ], "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." - }, { "key": "username", - "value": "nisi ipsum", + "value": "Lorem ipsum", "description": "(Required) Username." } ] @@ -5039,225 +4946,758 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "Associates the user with the provided Hedera token.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/associate", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens", - ":tokenId", - "associate" - ], - "variable": [ - { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, - "description": "Associates the user with the provided Hedera token. Only users with the Installer role are allowed to make the request." - }, - "response": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "PUT", + "name": "Returns all system schemas by username.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Accept", + "value": "application/json" } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/associate", + "raw": "{{baseUrl}}/schemas/system/:username?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "associate" + "schemas", + "system", + ":username" + ], + "query": [ + { + "key": "pageIndex", + "value": "0", + "description": "The number of pages to skip before starting to collect the result set." + }, + { + "key": "pageSize", + "value": "100", + "description": "The number of items to return." + } ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] - } + }, + "description": "Returns all system schemas by username. Only users with the Standard Registry role are allowed to make the request." }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "text", - "header": [ + "response": [ { - "key": "Content-Type", - "value": "text/plain" + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:username?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "x-total-count", + "value": "-38350393", + "description": "Total number of items in the collection." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:username?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:username?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:username?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":username" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ], + "variable": [ + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } - ], - "cookie": [], - "body": "" - }, + ] + } + ] + }, + { + "name": "{schema Id}", + "item": [ { - "name": "Unauthorized.", - "originalRequest": { + "name": "Updates the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, "method": "PUT", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/associate", + "raw": "{{baseUrl}}/schemas/system/:schemaId", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "associate" + "schemas", + "system", + ":schemaId" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - } + }, + "description": "Updates the system schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request." }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ + "response": [ { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "PUT", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/associate", - "host": [ - "{{baseUrl}}" + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } ], - "path": [ - "tokens", - ":tokenId", - "associate" + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } ], - "variable": [ + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "Content-Type", + "value": "text/plain" } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ + ], + "cookie": [], + "body": "" + }, { - "key": "Content-Type", - "value": "text/plain" + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } - ], - "cookie": [], - "body": "" + ] }, { - "name": "Internal server error.", - "originalRequest": { - "method": "PUT", + "name": "Deletes the schema.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "DELETE", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Accept", + "value": "application/json" } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/associate", + "raw": "{{baseUrl}}/schemas/system/:schemaId", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "associate" + "schemas", + "system", + ":schemaId" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." } ] - } + }, + "description": "Deletes the system schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request." }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ + "response": [ { - "key": "Content-Type", - "value": "application/json" + "name": "Successful operation.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/schemas/system/:schemaId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "schemas", + "system", + ":schemaId" + ], + "variable": [ + { + "key": "schemaId", + "value": "Lorem ipsum", + "description": "(Required) Schema ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + ] } ] }, { - "name": "Associate the user with the provided Hedera token.", + "name": "Returns schema by schema type.", "request": { "auth": { "type": "bearer", @@ -5269,7 +5709,7 @@ } ] }, - "method": "PUT", + "method": "GET", "header": [ { "key": "Accept", @@ -5277,30 +5717,31 @@ } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", + "raw": "{{baseUrl}}/schemas/system/entity/:schemaEntity", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "dissociate" + "schemas", + "system", + "entity", + ":schemaEntity" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaEntity", + "value": "POLICY", + "description": "(Required) schema type." } ] }, - "description": "Disassociates the user with the provided Hedera token. Only users with the Installer role are allowed to make the request." + "description": "Finds the schema using the schema type." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "PUT", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5309,40 +5750,41 @@ } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", + "raw": "{{baseUrl}}/schemas/system/entity/:schemaEntity", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "dissociate" + "schemas", + "system", + "entity", + ":schemaEntity" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaEntity", + "value": "POLICY", + "description": "(Required) schema type." } ] } }, "status": "OK", "code": 200, - "_postman_previewlanguage": "text", + "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", - "value": "text/plain" + "value": "application/json" } ], "cookie": [], - "body": "" + "body": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}" }, { "name": "Unauthorized.", "originalRequest": { - "method": "PUT", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5351,20 +5793,21 @@ } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", + "raw": "{{baseUrl}}/schemas/system/entity/:schemaEntity", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "dissociate" + "schemas", + "system", + "entity", + ":schemaEntity" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaEntity", + "value": "POLICY", + "description": "(Required) schema type." } ] } @@ -5384,7 +5827,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "PUT", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5393,20 +5836,21 @@ } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", + "raw": "{{baseUrl}}/schemas/system/entity/:schemaEntity", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "dissociate" + "schemas", + "system", + "entity", + ":schemaEntity" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaEntity", + "value": "POLICY", + "description": "(Required) schema type." } ] } @@ -5426,7 +5870,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "PUT", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5435,20 +5879,21 @@ } ], "url": { - "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", + "raw": "{{baseUrl}}/schemas/system/entity/:schemaEntity", "host": [ "{{baseUrl}}" ], "path": [ - "tokens", - ":tokenId", - "dissociate" + "schemas", + "system", + "entity", + ":schemaEntity" ], "variable": [ { - "key": "tokenId", - "value": "nisi ipsum", - "description": "(Required) Token ID." + "key": "schemaEntity", + "value": "POLICY", + "description": "(Required) schema type." } ] } @@ -5463,14 +5908,14 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } ] }, { - "name": "Return a list of tokens.", + "name": "Create new schema.", "request": { "auth": { "type": "bearer", @@ -5482,29 +5927,42 @@ } ] }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" ] }, - "description": "Returns all tokens. For the Root Authority role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role." + "description": "Creates new schema. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "GET", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5512,32 +5970,41 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" ] } }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", + "status": "Created", + "code": 201, + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "[\n {\n \"id\": \"ipsum ea minim consectetur\",\n \"tokenId\": \"commodo qui\",\n \"tokenName\": \"exercitation Duis ea proident\",\n \"tokenSymbol\": \"esse irure\",\n \"tokenType\": \"Lorem sint nostrud laboris\",\n \"decimals\": \"repreh\",\n \"associated\": true,\n \"balance\": \"nostrud velit\",\n \"frozen\": true,\n \"kyc\": false\n },\n {\n \"id\": \"velit deserunt irure Duis\",\n \"tokenId\": \"deserunt\",\n \"tokenName\": \"sunt minim nulla elit\",\n \"tokenSymbol\": \"exercitation et Excepteur\",\n \"tokenType\": \"dolor\",\n \"decimals\": \"adipisicing\",\n \"associated\": false,\n \"balance\": \"quis voluptate laboris veniam consequat\",\n \"frozen\": false,\n \"kyc\": false\n }\n]" + "body": "" }, { "name": "Unauthorized.", "originalRequest": { - "method": "GET", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5545,13 +6012,22 @@ "value": "Bearer " } ], - "url": { - "raw": "{{baseUrl}}/tokens", - "host": [ - "{{baseUrl}}" + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/schemas", + "host": [ + "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" ] } }, @@ -5570,7 +6046,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "GET", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5578,13 +6054,22 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" ] } }, @@ -5603,7 +6088,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "GET", + "method": "POST", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5611,13 +6096,22 @@ "value": "Bearer " } ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" ] } }, @@ -5631,12 +6125,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Creates a new token.", + "name": "Returns all schemas.", "request": { "auth": { "type": "bearer", @@ -5648,42 +6142,41 @@ } ] }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" + ], + "query": [ + { + "key": "pageIndex", + "value": "0", + "description": "The number of pages to skip before starting to collect the result set" + }, + { + "key": "pageSize", + "value": "100", + "description": "The numbers of items to return" + } ] }, - "description": "Creates a new token. Only users with the Root Authority role are allowed to make the request." + "description": "Returns all schemas." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "POST", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5691,83 +6184,47 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ] } }, - "status": "Created", - "code": 201, + "status": "OK", + "code": 200, "_postman_previewlanguage": "json", "header": [ { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"id\": \"ipsum ea minim consectetur\",\n \"tokenId\": \"commodo qui\",\n \"tokenName\": \"exercitation Duis ea proident\",\n \"tokenSymbol\": \"esse irure\",\n \"tokenType\": \"Lorem sint nostrud laboris\",\n \"decimals\": \"repreh\",\n \"associated\": true,\n \"balance\": \"nostrud velit\",\n \"frozen\": true,\n \"kyc\": false\n },\n {\n \"id\": \"velit deserunt irure Duis\",\n \"tokenId\": \"deserunt\",\n \"tokenName\": \"sunt minim nulla elit\",\n \"tokenSymbol\": \"exercitation et Excepteur\",\n \"tokenType\": \"dolor\",\n \"decimals\": \"adipisicing\",\n \"associated\": false,\n \"balance\": \"quis voluptate laboris veniam consequat\",\n \"frozen\": false,\n \"kyc\": false\n }\n]" - }, - { - "name": "Bad Request.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } + "key": "x-total-count", + "value": "-38350393", + "description": "Total items in the collection." }, - "url": { - "raw": "{{baseUrl}}/tokens", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "tokens" - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ { "key": "Content-Type", "value": "application/json" } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "[\n {\n \"id\": \"officia Lorem do\",\n \"name\": \"in sed sunt dolore\",\n \"description\": \"officia\",\n \"entity\": \"aliqua\",\n \"document\": \"a\",\n \"iri\": \"laboris ad est consequat\",\n \"uuid\": \"in exercitation\",\n \"hash\": \"do\",\n \"status\": \"fugiat occaecat nisi Lorem amet\",\n \"topicId\": \"labore Excepteur dolor Duis\",\n \"version\": \"sed Excepteur eiusmod in\",\n \"owner\": \"eiusmod dolor laboris\",\n \"messageId\": \"sed fugiat labore nulla\"\n },\n {\n \"id\": \"irure Exc\",\n \"name\": \"do dolore esse ipsum\",\n \"description\": \"Excepteur aliquip laboris\",\n \"entity\": \"et\",\n \"document\": \"eu non culpa nostrud commodo\",\n \"iri\": \"sed dese\",\n \"uuid\": \"Duis do\",\n \"hash\": \"magna officia nisi\",\n \"status\": \"esse anim tempor\",\n \"topicId\": \"sed fugiat\",\n \"version\": \"ea\",\n \"owner\": \"ullamco ipsum\",\n \"messageId\": \"quis\"\n }\n]" }, { "name": "Unauthorized.", "originalRequest": { - "method": "POST", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5775,22 +6232,23 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ] } }, @@ -5809,7 +6267,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "POST", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5817,22 +6275,23 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ] } }, @@ -5851,7 +6310,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "POST", + "method": "GET", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -5859,22 +6318,23 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"officia amet\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": true,\n \"initialSupply\": \"ea commodo dolor v\",\n \"tokenName\": \"ad aliqua\",\n \"tokenSymbol\": \"anim aute ipsum quis\",\n \"tokenType\": \"anim\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/tokens", + "raw": "{{baseUrl}}/schemas?pageIndex=0&pageSize=100", "host": [ "{{baseUrl}}" ], "path": [ - "tokens" + "schemas" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } ] } }, @@ -5888,17 +6348,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - } - ] - }, - { - "name": "trustchains", - "item": [ + }, { - "name": "Returns a list of all VP documents.", + "name": "Returns schema by type.", "request": { "auth": { "type": "bearer", @@ -5918,15 +6373,24 @@ } ], "url": { - "raw": "{{baseUrl}}/trustchains", + "raw": "{{baseUrl}}/schemas/type/:type", "host": [ "{{baseUrl}}" ], "path": [ - "trustchains" + "schemas", + "type", + ":type" + ], + "variable": [ + { + "key": "type", + "value": "Lorem ipsum", + "description": "(Required) JSON type." + } ] }, - "description": "Requests all VP documents. Only users with the Auditor role are allowed to make the request." + "description": "Finds the schema using the json document type." }, "response": [ { @@ -5941,12 +6405,21 @@ } ], "url": { - "raw": "{{baseUrl}}/trustchains", + "raw": "{{baseUrl}}/schemas/type/:type", "host": [ "{{baseUrl}}" ], "path": [ - "trustchains" + "schemas", + "type", + ":type" + ], + "variable": [ + { + "key": "type", + "value": "Lorem ipsum", + "description": "(Required) JSON type." + } ] } }, @@ -5960,7 +6433,7 @@ } ], "cookie": [], - "body": "[\n {\n \"hash\": \"e\",\n \"id\": \"Duis voluptate in\",\n \"policyId\": \"id quis in\",\n \"signature\": \"eu fugiat cons\",\n \"status\": \"ea sint\",\n \"tag\": \"deserunt \",\n \"type\": \"dolore mollit Ut\",\n \"updateDate\": \"quis qui dolor\",\n \"createDate\": \"cupidatat officia sunt in\",\n \"owner\": \"dolore irure\",\n \"document\": {}\n },\n {\n \"hash\": \"dolor in\",\n \"id\": \"velit sunt reprehenderit eu\",\n \"policyId\": \"ut\",\n \"signature\": \"voluptate Lorem dolor\",\n \"status\": \"laborum cupidatat aliqua reprehenderit do\",\n \"tag\": \"in\",\n \"type\": \"laborum cillum reprehenderit\",\n \"updateDate\": \"eiusmod consequat incididunt exercitation\",\n \"createDate\": \"minim in aute amet sunt\",\n \"owner\": \"dolor eu laborum quis sed\",\n \"document\": {}\n }\n]" + "body": "{\n \"id\": \"dolor\",\n \"name\": \"aliquip enim occaecat dolore do\",\n \"description\": \"dolor tempor\",\n \"entity\": \"Duis laboris reprehenderit\",\n \"document\": \"dolore ad aliquip aute minim\",\n \"iri\": \"aliquip culpa\",\n \"uuid\": \"consequat Ut dolor\",\n \"hash\": \"qui commodo\",\n \"status\": \"labore dolor dolor in\",\n \"topicId\": \"cupidatat in anim\",\n \"version\": \"proident voluptate quis ut laborum\",\n \"owner\": \"et dolore\",\n \"messageId\": \"consequat qui\"\n}" }, { "name": "Unauthorized.", @@ -5974,12 +6447,21 @@ } ], "url": { - "raw": "{{baseUrl}}/trustchains", + "raw": "{{baseUrl}}/schemas/type/:type", "host": [ "{{baseUrl}}" ], "path": [ - "trustchains" + "schemas", + "type", + ":type" + ], + "variable": [ + { + "key": "type", + "value": "Lorem ipsum", + "description": "(Required) JSON type." + } ] } }, @@ -6007,12 +6489,21 @@ } ], "url": { - "raw": "{{baseUrl}}/trustchains", + "raw": "{{baseUrl}}/schemas/type/:type", "host": [ "{{baseUrl}}" ], "path": [ - "trustchains" + "schemas", + "type", + ":type" + ], + "variable": [ + { + "key": "type", + "value": "Lorem ipsum", + "description": "(Required) JSON type." + } ] } }, @@ -6040,12 +6531,21 @@ } ], "url": { - "raw": "{{baseUrl}}/trustchains", + "raw": "{{baseUrl}}/schemas/type/:type", "host": [ "{{baseUrl}}" ], "path": [ - "trustchains" + "schemas", + "type", + ":type" + ], + "variable": [ + { + "key": "type", + "value": "Lorem ipsum", + "description": "(Required) JSON type." + } ] } }, @@ -6059,765 +6559,312 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - }, + } + ] + }, + { + "name": "tokens", + "item": [ { - "name": "Returns a trustchain for a VP document.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ + "name": "{token Id}", + "item": [ + { + "name": "{username}", + "item": [ { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/trustchains/:hash", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "trustchains", - ":hash" - ], - "variable": [ - { - "key": "hash", - "value": "nisi ipsum", - "description": "(Required) Hash or ID of a VP document." - } - ] - }, - "description": "Builds and returns a trustchain, from the VP to the root VC document. Only users with the Auditor role are allowed to make the request." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/trustchains/:hash", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "trustchains", - ":hash" - ], - "variable": [ - { - "key": "hash", - "value": "nisi ipsum", - "description": "(Required) Hash or ID of a VP document." - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"chain\": [\n {\n \"id\": \"qui id\",\n \"type\": \"aute consectetur Exce\",\n \"tag\": \"mollit sint sit dolore\",\n \"label\": \"aute Duis ullamco\",\n \"schema\": \"eius\",\n \"owner\": \"tempor ad dolore\",\n \"document\": {}\n },\n {\n \"id\": \"reprehenderit sed officia\",\n \"type\": \"incididunt adipisicing occaecat non\",\n \"tag\": \"qui deserunt sed\",\n \"label\": \"Duis velit mollit elit\",\n \"schema\": \"minim occaecat eiusmod fugiat\",\n \"owner\": \"officia in\",\n \"document\": {}\n }\n ],\n \"userMap\": [\n {\n \"did\": \"dolor magna exercitation ea\",\n \"username\": \"ut anim culpa in\"\n },\n {\n \"did\": \"officia\",\n \"username\": \"cillum laboris\"\n }\n ]\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/trustchains/:hash", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "trustchains", - ":hash" - ], - "variable": [ - { - "key": "hash", - "value": "nisi ipsum", - "description": "(Required) Hash or ID of a VP document." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/trustchains/:hash", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "trustchains", - ":hash" - ], - "variable": [ - { - "key": "hash", - "value": "nisi ipsum", - "description": "(Required) Hash or ID of a VP document." - } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/trustchains/:hash", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "trustchains", - ":hash" - ], - "variable": [ - { - "key": "hash", - "value": "nisi ipsum", - "description": "(Required) Hash or ID of a VP document." - } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "policies", - "item": [ - { - "name": "{policy Id}", - "item": [ - { - "name": "blocks", - "item": [ - { - "name": "{uuid}", - "item": [ - { - "name": "Requests block data.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] + "name": "/tokens/:tokenId/:username/info", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "info" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + }, + "description": "Returns user information for the selected token. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { "method": "GET", "header": [ { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" + "tokens", + ":tokenId", + ":username", + "info" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] - }, - "description": "Requests block data. Only users with a role that described in block are allowed to make the request." + } }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"id\": \"in consequat\",\n \"isActive\": true,\n \"uiMetaData\": {},\n \"data\": {},\n \"blockType\": \"et dolor sunt amet\",\n \"index\": -29135345.344470575,\n \"roles\": [\n \"deserunt ea labore\",\n \"cillum et\"\n ],\n \"blocks\": [\n {\n \"id\": \"Duis aliqua in\",\n \"blockType\": \"dolore do nulla dolor\",\n \"isActive\": true,\n \"uiMetaData\": {}\n },\n {\n \"id\": \"Ut voluptate eu incidi\",\n \"blockType\": \"non tempor occaecat aliqua adipisicing\",\n \"isActive\": false,\n \"uiMetaData\": {}\n }\n ]\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "key": "Content-Type", + "value": "application/json" } - ] + ], + "cookie": [], + "body": "{\n \"id\": \"Ut irure ex dolore nisi\",\n \"tokenId\": \"velit esse do aliquip\",\n \"tokenName\": \"dolor incididunt\",\n \"tokenSymbol\": \"pariatur tempor id occaecat\",\n \"tokenType\": \"aliqua culpa\",\n \"decimals\": \"irure Excepteur officia ut\",\n \"associated\": false,\n \"balance\": \"labore reprehenderit exercitatio\",\n \"frozen\": false,\n \"kyc\": false\n}" }, { - "name": "Sends data to the specified block.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", + "name": "Bad Request.", + "originalRequest": { + "method": "GET", "header": [ { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" + "tokens", + ":tokenId", + ":username", + "info" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] - }, - "description": "Sends data to the specified block." + } }, - "response": [ + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{}", - "options": { - "raw": { - "language": "json" - } - } + "path": [ + "tokens", + ":tokenId", + ":username", + "info" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ { - "key": "Content-Type", - "value": "text/plain" + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } - ], - "cookie": [], - "body": "" - }, + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{}", - "options": { - "raw": { - "language": "json" - } - } + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "info" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ { - "key": "Content-Type", - "value": "text/plain" + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } - ], - "cookie": [], - "body": "" - }, + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{}", - "options": { - "raw": { - "language": "json" - } - } + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/info", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "info" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." }, - "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "blocks", - ":uuid" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "uuid", - "value": "nisi ipsum", - "description": "(Required) Selected block UUID." - } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ { - "key": "Content-Type", - "value": "application/json" + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + ] } - ] + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Retrieves data for the policy root block.", + "name": "Sets the KYC flag for the user.", "request": { "auth": { "type": "bearer", @@ -6829,7 +6876,7 @@ } ] }, - "method": "GET", + "method": "PUT", "header": [ { "key": "Accept", @@ -6837,30 +6884,36 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks" + "tokens", + ":tokenId", + ":username", + "grantKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] }, - "description": "Returns data from the root policy block. Only users with the Root Authority and Installer role are allowed to make the request." + "description": "Sets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -6869,20 +6922,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks" + "tokens", + ":tokenId", + ":username", + "grantKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -6897,12 +6956,60 @@ } ], "cookie": [], - "body": "{\n \"id\": \"ullamco eiusmod\",\n \"blockType\": \"id fugiat elit\",\n \"isActive\": true,\n \"uiMetaData\": {}\n}" + "body": "{\n \"id\": \"Ut irure ex dolore nisi\",\n \"tokenId\": \"velit esse do aliquip\",\n \"tokenName\": \"dolor incididunt\",\n \"tokenSymbol\": \"pariatur tempor id occaecat\",\n \"tokenType\": \"aliqua culpa\",\n \"decimals\": \"irure Excepteur officia ut\",\n \"associated\": false,\n \"balance\": \"labore reprehenderit exercitatio\",\n \"frozen\": false,\n \"kyc\": false\n}" + }, + { + "name": "Bad Request.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "grantKyc" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" }, { "name": "Unauthorized.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -6911,20 +7018,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks" + "tokens", + ":tokenId", + ":username", + "grantKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -6944,7 +7057,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -6953,20 +7066,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks" + "tokens", + ":tokenId", + ":username", + "grantKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -6986,7 +7105,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -6995,20 +7114,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/blocks", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/grantKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "blocks" + "tokens", + ":tokenId", + ":username", + "grantKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7023,17 +7148,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - } - ] - }, - { - "name": "export", - "item": [ + }, { - "name": "Return Heder message ID for the specified published policy.", + "name": "Unsets the KYC flag for the user.", "request": { "auth": { "type": "bearer", @@ -7045,7 +7165,7 @@ } ] }, - "method": "GET", + "method": "PUT", "header": [ { "key": "Accept", @@ -7053,31 +7173,36 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/message", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "message" + "tokens", + ":tokenId", + ":username", + "revokeKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] }, - "description": "Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Root Authority role are allowed to make the request." + "description": "Unsets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7086,21 +7211,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/message", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "message" + "tokens", + ":tokenId", + ":username", + "revokeKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7115,12 +7245,60 @@ } ], "cookie": [], - "body": "{\n \"name\": \"esse nisi\",\n \"version\": \"adipisicing laborum\",\n \"tokens\": \"officia sit pariatur qui Ut\"\n}" + "body": "{\n \"id\": \"Ut irure ex dolore nisi\",\n \"tokenId\": \"velit esse do aliquip\",\n \"tokenName\": \"dolor incididunt\",\n \"tokenSymbol\": \"pariatur tempor id occaecat\",\n \"tokenType\": \"aliqua culpa\",\n \"decimals\": \"irure Excepteur officia ut\",\n \"associated\": false,\n \"balance\": \"labore reprehenderit exercitatio\",\n \"frozen\": false,\n \"kyc\": false\n}" + }, + { + "name": "Bad Request.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "revokeKyc" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" }, { "name": "Unauthorized.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7129,21 +7307,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/message", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "message" + "tokens", + ":tokenId", + ":username", + "revokeKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7163,7 +7346,7 @@ { "name": "Forbidden.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7172,21 +7355,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/message", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "message" + "tokens", + ":tokenId", + ":username", + "revokeKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7206,7 +7394,7 @@ { "name": "Internal server error.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7215,21 +7403,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/message", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/revokeKyc", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "message" + "tokens", + ":tokenId", + ":username", + "revokeKyc" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7244,12 +7437,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Return policy and its artifacts in a zip file format for the specified policy.", + "name": "Freeze transfers of the specified token for the user.", "request": { "auth": { "type": "bearer", @@ -7261,7 +7454,7 @@ } ] }, - "method": "GET", + "method": "PUT", "header": [ { "key": "Accept", @@ -7269,31 +7462,36 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/file", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "file" + "tokens", + ":tokenId", + ":username", + "freeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] }, - "description": "Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Root Authority role are allowed to make the request." + "description": "Freezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request." }, "response": [ { "name": "Successful operation.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7302,21 +7500,26 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/file", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "file" + "tokens", + ":tokenId", + ":username", + "freeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } @@ -7331,12 +7534,12 @@ } ], "cookie": [], - "body": "{\n \"name\": \"esse nisi\",\n \"version\": \"adipisicing laborum\",\n \"tokens\": \"officia sit pariatur qui Ut\"\n}" + "body": "{\n \"id\": \"Ut irure ex dolore nisi\",\n \"tokenId\": \"velit esse do aliquip\",\n \"tokenName\": \"dolor incididunt\",\n \"tokenSymbol\": \"pariatur tempor id occaecat\",\n \"tokenType\": \"aliqua culpa\",\n \"decimals\": \"irure Excepteur officia ut\",\n \"associated\": false,\n \"balance\": \"labore reprehenderit exercitatio\",\n \"frozen\": false,\n \"kyc\": false\n}" }, { - "name": "Unauthorized.", + "name": "Bad Request.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7345,41 +7548,46 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/file", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "file" + "tokens", + ":tokenId", + ":username", + "freeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", - "value": "text/plain" + "value": "application/json" } ], "cookie": [], - "body": "" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" }, { - "name": "Forbidden.", + "name": "Unauthorized.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7388,27 +7596,32 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/file", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "file" + "tokens", + ":tokenId", + ":username", + "freeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } }, - "status": "Forbidden", - "code": 403, + "status": "Unauthorized", + "code": 401, "_postman_previewlanguage": "text", "header": [ { @@ -7420,9 +7633,9 @@ "body": "" }, { - "name": "Internal server error.", + "name": "Forbidden.", "originalRequest": { - "method": "GET", + "method": "PUT", "header": [ { "description": "Added as a part of security scheme: bearer", @@ -7431,249 +7644,385 @@ } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/export/file", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "export", - "file" + "tokens", + ":tokenId", + ":username", + "freeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] } }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "Retrieves policy configuration.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId" - ], - "variable": [ + "body": "" + }, { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/freeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "freeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, - "description": "Retrieves policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId" - ], - "variable": [ + "name": "Unfreezes transfers of the specified token for the user.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "token", + "value": "", + "type": "string" } ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", + }, + "method": "PUT", "header": [ { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " + "key": "Accept", + "value": "application/json" } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + ":username", + "unfreeze" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." } ] - } + }, + "description": "Unfreezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request." }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ + "response": [ { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId" - ], - "variable": [ + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "unfreeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "Content-Type", + "value": "application/json" } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ + ], + "cookie": [], + "body": "{\n \"id\": \"Ut irure ex dolore nisi\",\n \"tokenId\": \"velit esse do aliquip\",\n \"tokenName\": \"dolor incididunt\",\n \"tokenSymbol\": \"pariatur tempor id occaecat\",\n \"tokenType\": \"aliqua culpa\",\n \"decimals\": \"irure Excepteur officia ut\",\n \"associated\": false,\n \"balance\": \"labore reprehenderit exercitatio\",\n \"frozen\": false,\n \"kyc\": false\n}" + }, { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId", - "host": [ - "{{baseUrl}}" + "name": "Bad Request.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "unfreeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } ], - "path": [ - "policies", - ":policyId" + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "unfreeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } ], - "variable": [ + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "unfreeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "Content-Type", + "value": "text/plain" } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ + ], + "cookie": [], + "body": "" + }, { - "key": "Content-Type", - "value": "application/json" + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens/:tokenId/:username/unfreeze", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens", + ":tokenId", + ":username", + "unfreeze" + ], + "variable": [ + { + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." + }, + { + "key": "username", + "value": "Lorem ipsum", + "description": "(Required) Username." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + ] } ] }, { - "name": "Updates policy configuration.", + "name": "Associates the user with the provided Hedera token.", "request": { "auth": { "type": "bearer", @@ -7687,42 +8036,30 @@ }, "method": "PUT", "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/associate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + "associate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] }, - "description": "Updates policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request." + "description": "Associates the user with the provided Hedera token. Only users with the Installer role are allowed to make the request." }, "response": [ { @@ -7736,44 +8073,36 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/associate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + "associate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } }, "status": "OK", "code": 200, - "_postman_previewlanguage": "json", + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}" + "body": "" }, { "name": "Unauthorized.", @@ -7786,29 +8115,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/associate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + "associate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -7836,29 +8157,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/associate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + "associate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -7886,29 +8199,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId", + "raw": "{{baseUrl}}/tokens/:tokenId/associate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId" + "tokens", + ":tokenId", + "associate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -7923,12 +8228,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Publishes the policy onto IPFS.", + "name": "Associate the user with the provided Hedera token.", "request": { "auth": { "type": "bearer", @@ -7942,43 +8247,30 @@ }, "method": "PUT", "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "body": { - "mode": "raw", - "raw": "{\n \"policyVersion\": \"adipisicing sed exercitation ut\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/publish", + "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "publish" + "tokens", + ":tokenId", + "dissociate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] }, - "description": "Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request." + "description": "Disassociates the user with the provided Hedera token. Only users with the Installer role are allowed to make the request." }, "response": [ { @@ -7992,45 +8284,36 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"policyVersion\": \"adipisicing sed exercitation ut\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/publish", + "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "publish" + "tokens", + ":tokenId", + "dissociate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } }, "status": "OK", "code": 200, - "_postman_previewlanguage": "json", + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "{\n \"errors\": [],\n \"isValid\": false,\n \"policies\": []\n}" + "body": "" }, { "name": "Unauthorized.", @@ -8043,30 +8326,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"policyVersion\": \"adipisicing sed exercitation ut\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/publish", + "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "publish" + "tokens", + ":tokenId", + "dissociate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -8094,30 +8368,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"policyVersion\": \"adipisicing sed exercitation ut\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/publish", + "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "publish" + "tokens", + ":tokenId", + "dissociate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -8145,30 +8410,21 @@ "value": "Bearer " } ], - "body": { - "mode": "raw", - "raw": "{\n \"policyVersion\": \"adipisicing sed exercitation ut\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{baseUrl}}/policies/:policyId/publish", + "raw": "{{baseUrl}}/tokens/:tokenId/dissociate", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "publish" + "tokens", + ":tokenId", + "dissociate" ], "variable": [ { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." + "key": "tokenId", + "value": "Lorem ipsum", + "description": "(Required) Token ID." } ] } @@ -8183,277 +8439,3657 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "Return a list of tokens.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" } ] }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + }, + "description": "Returns all tokens. For the Standard Registry role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role." + }, + "response": [ { - "name": "Requests block ID from a policy by tag.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, + "name": "Successful operation.", + "originalRequest": { "method": "GET", "header": [ { - "key": "Accept", - "value": "application/json" + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " } ], "url": { - "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "raw": "{{baseUrl}}/tokens", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - ":policyId", - "tag", - ":tag" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "tag", - "value": "nisi ipsum", - "description": "(Required) Tag from the selected policy." - } + "tokens" ] - }, - "description": "Requests block ID from a policy by tag. Only users with the Root Authority and Installer roles are allowed to make the request." + } }, - "response": [ + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Successful operation.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "tag", - ":tag" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "tag", - "value": "nisi ipsum", - "description": "(Required) Tag from the selected policy." - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"id\": \"ipsum deserunt\"\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "tag", - ":tag" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "tag", - "value": "nisi ipsum", - "description": "(Required) Tag from the selected policy." - } - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"est consectet\",\n \"tokenId\": \"mollit\",\n \"tokenName\": \"enim\",\n \"tokenSymbol\": \"dolore\",\n \"tokenType\": \"voluptate nostrud\",\n \"decimals\": \"nisi est Excepteur velit voluptate\",\n \"associated\": true,\n \"balance\": \"enim Duis dolor\",\n \"frozen\": true,\n \"kyc\": true,\n \"policies\": [\n \"sunt enim\",\n \"laboris nulla nisi aute\"\n ]\n },\n {\n \"id\": \"in cillum tempor\",\n \"tokenId\": \"ex labore enim consequat\",\n \"tokenName\": \"aliqua veniam\",\n \"tokenSymbol\": \"dolore commodo sed\",\n \"tokenType\": \"et sed consequat ipsum\",\n \"decimals\": \"proident velit\",\n \"associated\": false,\n \"balance\": \"velit minim\",\n \"frozen\": true,\n \"kyc\": false,\n \"policies\": [\n \"quis tempor\",\n \"irure ullamco pariatur\"\n ]\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "" - }, + "path": [ + "tokens" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Forbidden.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "tag", - ":tag" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "tag", - "value": "nisi ipsum", - "description": "(Required) Tag from the selected policy." - } - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" ], - "cookie": [], - "body": "" - }, + "path": [ + "tokens" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - ":policyId", - "tag", - ":tag" - ], - "variable": [ - { - "key": "policyId", - "value": "nisi ipsum", - "description": "(Required) Selected policy ID." - }, - { - "key": "tag", - "value": "nisi ipsum", - "description": "(Required) Tag from the selected policy." - } - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "key": "Content-Type", + "value": "text/plain" } - ] - } - ] - }, - { - "name": "import", - "item": [ + ], + "cookie": [], + "body": "" + }, { - "name": "message", - "item": [ - { - "name": "Imports new policy from IPFS.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Creates a new token.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + }, + "description": "Creates a new token. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"id\": \"est consectet\",\n \"tokenId\": \"mollit\",\n \"tokenName\": \"enim\",\n \"tokenSymbol\": \"dolore\",\n \"tokenType\": \"voluptate nostrud\",\n \"decimals\": \"nisi est Excepteur velit voluptate\",\n \"associated\": true,\n \"balance\": \"enim Duis dolor\",\n \"frozen\": true,\n \"kyc\": true,\n \"policies\": [\n \"sunt enim\",\n \"laboris nulla nisi aute\"\n ]\n },\n {\n \"id\": \"in cillum tempor\",\n \"tokenId\": \"ex labore enim consequat\",\n \"tokenName\": \"aliqua veniam\",\n \"tokenSymbol\": \"dolore commodo sed\",\n \"tokenType\": \"et sed consequat ipsum\",\n \"decimals\": \"proident velit\",\n \"associated\": false,\n \"balance\": \"velit minim\",\n \"frozen\": true,\n \"kyc\": false,\n \"policies\": [\n \"quis tempor\",\n \"irure ullamco pariatur\"\n ]\n }\n]" + }, + { + "name": "Bad Request.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"changeSupply\": true,\n \"decimals\": \"aliqua consequat nostrud\",\n \"enableAdmin\": false,\n \"enableKYC\": false,\n \"enableFreeze\": true,\n \"enableWipe\": false,\n \"initialSupply\": \"ad occaecat adipisicing\",\n \"tokenName\": \"Ut labore ullamco ut\",\n \"tokenSymbol\": \"dolor\",\n \"tokenType\": \"ipsum consectetur quis deserunt\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/tokens", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "tokens" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "trustchains", + "item": [ + { + "name": "Returns a list of all VP documents.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains" + ] + }, + "description": "Requests all VP documents. Only users with the Auditor role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"hash\": \"in ad\",\n \"id\": \"veniam incididunt enim\",\n \"policyId\": \"nis\",\n \"signature\": \"nostrud non do consectetur\",\n \"status\": \"eiusmod est in\",\n \"tag\": \"ex elit sit labore\",\n \"type\": \"elit Ut magna\",\n \"updateDate\": \"in Lorem cupidatat ullamco\",\n \"createDate\": \"occaecat\",\n \"owner\": \"ut\",\n \"document\": {}\n },\n {\n \"hash\": \"adipisicing cupidatat consectetur minim\",\n \"id\": \"sed in enim consequat\",\n \"policyId\": \"non dolore\",\n \"signature\": \"reprehenderit eiu\",\n \"status\": \"aliqua id labore\",\n \"tag\": \"consectetur mollit mini\",\n \"type\": \"minim ex ullamco\",\n \"updateDate\": \"ipsum in fugiat consequat\",\n \"createDate\": \"nostrud ad proident Excepteur\",\n \"owner\": \"ut dolor ea\",\n \"document\": {}\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Returns a trustchain for a VP document.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains/:hash", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains", + ":hash" + ], + "variable": [ + { + "key": "hash", + "value": "Lorem ipsum", + "description": "(Required) Hash or ID of a VP document." + } + ] + }, + "description": "Builds and returns a trustchain, from the VP to the root VC document. Only users with the Auditor role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains/:hash", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains", + ":hash" + ], + "variable": [ + { + "key": "hash", + "value": "Lorem ipsum", + "description": "(Required) Hash or ID of a VP document." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"chain\": [\n {\n \"id\": \"ex sint nostrud occaecat\",\n \"type\": \"consectetur eu eiusmod adipisicing\",\n \"tag\": \"Ut reprehenderit dolor consectetur anim\",\n \"label\": \"mollit voluptate\",\n \"schema\": \"dolor Ut reprehenderit dolor ut\",\n \"owner\": \"ut id\",\n \"document\": {}\n },\n {\n \"id\": \"voluptate exercitation\",\n \"type\": \"Excepteur labore consequat amet sint\",\n \"tag\": \"occaecat Ut quis\",\n \"label\": \"tempor dolore\",\n \"schema\": \"occaecat consect\",\n \"owner\": \"aute\",\n \"document\": {}\n }\n ],\n \"userMap\": [\n {\n \"did\": \"commodo in\",\n \"username\": \"anim dolor Duis\"\n },\n {\n \"did\": \"tempor\",\n \"username\": \"U\"\n }\n ]\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains/:hash", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains", + ":hash" + ], + "variable": [ + { + "key": "hash", + "value": "Lorem ipsum", + "description": "(Required) Hash or ID of a VP document." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains/:hash", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains", + ":hash" + ], + "variable": [ + { + "key": "hash", + "value": "Lorem ipsum", + "description": "(Required) Hash or ID of a VP document." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/trustchains/:hash", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "trustchains", + ":hash" + ], + "variable": [ + { + "key": "hash", + "value": "Lorem ipsum", + "description": "(Required) Hash or ID of a VP document." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "policies", + "item": [ + { + "name": "{policy Id}", + "item": [ + { + "name": "blocks", + "item": [ + { + "name": "{uuid}", + "item": [ + { + "name": "Requests block data.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + }, + "description": "Requests block data. Only users with a role that described in block are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"id\": \"consequat Duis enim aliquip\",\n \"isActive\": false,\n \"uiMetaData\": {},\n \"data\": {},\n \"blockType\": \"consectetur veniam\",\n \"index\": -20027875.870042562,\n \"roles\": [\n \"eu ullamco velit\",\n \"elit reprehenderit esse\"\n ],\n \"blocks\": [\n {\n \"id\": \"aliquip\",\n \"blockType\": \"do sed voluptate aute deserunt\",\n \"isActive\": false,\n \"uiMetaData\": {}\n },\n {\n \"id\": \"quis aliquip cupidatat ut\",\n \"blockType\": \"adipisicing\",\n \"isActive\": true,\n \"uiMetaData\": {}\n }\n ]\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Sends data to the specified block.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + }, + "description": "Sends data to the specified block." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks/:uuid", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks", + ":uuid" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "uuid", + "value": "Lorem ipsum", + "description": "(Required) Selected block UUID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "Retrieves data for the policy root block.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Returns data from the root policy block. Only users with the Standard Registry and Installer role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"id\": \"et voluptate\",\n \"blockType\": \"do dolor\",\n \"isActive\": false,\n \"uiMetaData\": {}\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/blocks", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "blocks" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "export", + "item": [ + { + "name": "Return Heder message ID for the specified published policy.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "message" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "message" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"name\": \"laboris enim consectetur\",\n \"version\": \"do deserunt Ut\",\n \"tokens\": \"aliqua cillum dolor\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "message" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "message" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "message" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Return policy and its artifacts in a zip file format for the specified policy.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "file" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "file" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"name\": \"laboris enim consectetur\",\n \"version\": \"do deserunt Ut\",\n \"tokens\": \"aliqua cillum dolor\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "file" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "file" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/export/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "export", + "file" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "Retrieves policy configuration.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Retrieves policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"name\": \"aliquip aliqua in\",\n \"version\": \"ut non\",\n \"description\": \"occaeca\",\n \"topicDescription\": \"pariatur\",\n \"config\": {},\n \"topicId\": \"ad veniam in proident\",\n \"policyTag\": \"tempor non minim in et\",\n \"id\": \"ipsum est\",\n \"uuid\": \"sed minim Ut\",\n \"status\": \"mollit Lorem do ullamco\",\n \"owner\": \"irure laborum quis\",\n \"policyRoles\": [\n \"repre\",\n \"aliquip do\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"nulla in\",\n \"description\": \"et id in ut\",\n \"type\": \"occaecat anim quis aliquip est\",\n \"static\": false\n },\n {\n \"name\": \"qui ex cillum nulla\",\n \"description\": \"in non exercitation fugiat id\",\n \"type\": \"dolor\",\n \"static\": true\n }\n ],\n \"userRoles\": [\n \"officia\",\n \"id esse elit commodo eius\"\n ]\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Updates policy configuration.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Updates policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Publishes the policy onto IPFS.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"policyVersion\": \"Ut sed\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "publish" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + }, + "description": "Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"policyVersion\": \"Ut sed\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "publish" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"errors\": [],\n \"isValid\": false,\n \"policies\": []\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"policyVersion\": \"Ut sed\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "publish" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"policyVersion\": \"Ut sed\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "publish" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "PUT", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"policyVersion\": \"Ut sed\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/:policyId/publish", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "publish" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Requests block ID from a policy by tag.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "tag", + ":tag" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "tag", + "value": "Lorem ipsum", + "description": "(Required) Tag from the selected policy." + } + ] + }, + "description": "Requests block ID from a policy by tag. Only users with the Standard Registry and Installer roles are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "tag", + ":tag" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "tag", + "value": "Lorem ipsum", + "description": "(Required) Tag from the selected policy." + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"id\": \"Ut cupidatat\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "tag", + ":tag" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "tag", + "value": "Lorem ipsum", + "description": "(Required) Tag from the selected policy." + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "tag", + ":tag" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "tag", + "value": "Lorem ipsum", + "description": "(Required) Tag from the selected policy." + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies/:policyId/tag/:tag", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + ":policyId", + "tag", + ":tag" + ], + "variable": [ + { + "key": "policyId", + "value": "Lorem ipsum", + "description": "(Required) Selected policy ID." + }, + { + "key": "tag", + "value": "Lorem ipsum", + "description": "(Required) Tag from the selected policy." + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "import", + "item": [ + { + "name": "message", + "item": [ + { + "name": "Imports new policy from IPFS.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message" + ] + }, + "description": "Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message" + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"name\": \"ex cupidatat laboris fugiat\",\n \"version\": \"adipisicing elit\",\n \"description\": \"fugiat exercitation enim ipsum\",\n \"topicDescription\": \"sint dolor aliqua\",\n \"config\": {},\n \"topicId\": \"in dolor\",\n \"policyTag\": \"Lorem dolore deserunt fugiat anim\",\n \"id\": \"exercitatio\",\n \"uuid\": \"cillum commodo veniam\",\n \"status\": \"proident occaecat aliquip\",\n \"owner\": \"voluptate eiusmod\",\n \"policyRoles\": [\n \"sunt\",\n \"dolore et laboris id\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"aliqua occaecat ut Ut in\",\n \"description\": \"dol\",\n \"type\": \"Ut veniam dolor eiusmod\",\n \"static\": false\n },\n {\n \"name\": \"nulla eiusmod enim officia\",\n \"description\": \"id sunt laborum labore\",\n \"type\": \"consectetur tempor eu fugiat\",\n \"static\": true\n }\n ]\n },\n {\n \"name\": \"aute do est in\",\n \"version\": \"laboris cupidatat aliqua\",\n \"description\": \"nostrud dolore voluptate velit deserunt\",\n \"topicDescription\": \"do culpa\",\n \"config\": {},\n \"topicId\": \"nostrud eu\",\n \"policyTag\": \"ullamco esse Duis Lorem\",\n \"id\": \"ullamco non reprehenderit\",\n \"uuid\": \"nulla elit do\",\n \"status\": \"esse pariatur occaecat\",\n \"owner\": \"deserunt Lorem ut\",\n \"policyRoles\": [\n \"culpa exercitation sed\",\n \"dolore nulla\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"nisi dolor fugiat aliqua\",\n \"description\": \"consectet\",\n \"type\": \"tempor officia anim\",\n \"static\": true\n },\n {\n \"name\": \"quis non a\",\n \"description\": \"eiusmod cillum dolore\",\n \"type\": \"magna mollit voluptate enim\",\n \"static\": false\n }\n ]\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Policy preview from IPFS.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message", + "preview" + ] + }, + "description": "Previews the policy from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message", + "preview" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"policy\": {},\n \"schemas\": [],\n \"tokens\": []\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message", + "preview" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message", + "preview" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"messageId\": \"nostrud et sint exercitation\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/import/message/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "message", + "preview" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "file", + "item": [ + { + "name": "Imports new policy from a zip file.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ { "key": "Content-Type", + "value": "binary/octet-stream" + }, + { + "key": "Accept", "value": "application/json" + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file" + ] + }, + "description": "Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file" + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"name\": \"ex cupidatat laboris fugiat\",\n \"version\": \"adipisicing elit\",\n \"description\": \"fugiat exercitation enim ipsum\",\n \"topicDescription\": \"sint dolor aliqua\",\n \"config\": {},\n \"topicId\": \"in dolor\",\n \"policyTag\": \"Lorem dolore deserunt fugiat anim\",\n \"id\": \"exercitatio\",\n \"uuid\": \"cillum commodo veniam\",\n \"status\": \"proident occaecat aliquip\",\n \"owner\": \"voluptate eiusmod\",\n \"policyRoles\": [\n \"sunt\",\n \"dolore et laboris id\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"aliqua occaecat ut Ut in\",\n \"description\": \"dol\",\n \"type\": \"Ut veniam dolor eiusmod\",\n \"static\": false\n },\n {\n \"name\": \"nulla eiusmod enim officia\",\n \"description\": \"id sunt laborum labore\",\n \"type\": \"consectetur tempor eu fugiat\",\n \"static\": true\n }\n ]\n },\n {\n \"name\": \"aute do est in\",\n \"version\": \"laboris cupidatat aliqua\",\n \"description\": \"nostrud dolore voluptate velit deserunt\",\n \"topicDescription\": \"do culpa\",\n \"config\": {},\n \"topicId\": \"nostrud eu\",\n \"policyTag\": \"ullamco esse Duis Lorem\",\n \"id\": \"ullamco non reprehenderit\",\n \"uuid\": \"nulla elit do\",\n \"status\": \"esse pariatur occaecat\",\n \"owner\": \"deserunt Lorem ut\",\n \"policyRoles\": [\n \"culpa exercitation sed\",\n \"dolore nulla\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"nisi dolor fugiat aliqua\",\n \"description\": \"consectet\",\n \"type\": \"tempor officia anim\",\n \"static\": true\n },\n {\n \"name\": \"quis non a\",\n \"description\": \"eiusmod cillum dolore\",\n \"type\": \"magna mollit voluptate enim\",\n \"static\": false\n }\n ]\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Policy preview from a zip file.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "binary/octet-stream" }, { "key": "Accept", @@ -8461,30 +12097,66 @@ } ], "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file", + "preview" + ] + }, + "description": "Previews the policy from a zip file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file", + "preview" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message", - "host": [ - "{{baseUrl}}" ], - "path": [ - "policies", - "import", - "message" - ] + "cookie": [], + "body": "{\n \"policy\": {},\n \"schemas\": [],\n \"tokens\": []\n}" }, - "description": "Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ { - "name": "Successful operation.", + "name": "Unauthorized.", "originalRequest": { "method": "POST", "header": [ @@ -8495,40 +12167,36 @@ } ], "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } + "mode": "file", + "file": {} }, "url": { - "raw": "{{baseUrl}}/policies/import/message", + "raw": "{{baseUrl}}/policies/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ "policies", "import", - "message" + "file", + "preview" ] } }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", "header": [ { "key": "Content-Type", - "value": "application/json" + "value": "text/plain" } ], "cookie": [], - "body": "[\n {\n \"name\": \"ex ut culpa\",\n \"version\": \"nostrud mollit commodo\",\n \"description\": \"cillum ea\",\n \"topicDescription\": \"ipsum exercitation et do irure\",\n \"config\": {},\n \"topicId\": \"in aute ut\",\n \"policyTag\": \"nisi Excepteur sed amet\",\n \"status\": \"culpa in\",\n \"owner\": \"amet velit veniam\",\n \"policyRoles\": [\n \"adipisicing reprehenderit eu\",\n \"ex fugiat sed in occaecat\"\n ]\n },\n {\n \"name\": \"voluptate in aute\",\n \"version\": \"in cillum aute ut\",\n \"description\": \"ullamco incididunt esse culpa aliqu\",\n \"topicDescription\": \"irure ullamco\",\n \"config\": {},\n \"topicId\": \"aliqua adipisicing dolor\",\n \"policyTag\": \"mollit e\",\n \"status\": \"Excepteur adipisicing cillum\",\n \"owner\": \"occaecat dolore velit et dolor\",\n \"policyRoles\": [\n \"sed esse eu dolore proident\",\n \"enim id exercitation sunt pariatur\"\n ]\n }\n]" + "body": "" }, { - "name": "Unauthorized.", + "name": "Forbidden.", "originalRequest": { "method": "POST", "header": [ @@ -8539,28 +12207,24 @@ } ], "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } + "mode": "file", + "file": {} }, "url": { - "raw": "{{baseUrl}}/policies/import/message", + "raw": "{{baseUrl}}/policies/import/file/preview", "host": [ "{{baseUrl}}" ], "path": [ "policies", "import", - "message" + "file", + "preview" ] } }, - "status": "Unauthorized", - "code": 401, + "status": "Forbidden", + "code": 403, "_postman_previewlanguage": "text", "header": [ { @@ -8572,693 +12236,973 @@ "body": "" }, { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "file", + "file": {} + }, + "url": { + "raw": "{{baseUrl}}/policies/import/file/preview", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "import", + "file", + "preview" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + } + ] + }, + { + "name": "Return a list of all policies.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/policies?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ], + "query": [ + { + "key": "pageIndex", + "value": "0", + "description": "The number of pages to skip before starting to collect the result set" + }, + { + "key": "pageSize", + "value": "100", + "description": "The numbers of items to return" + } + ] + }, + "description": "Returns all policies. Only users with the Standard Registry and Installer role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "x-total-count", + "value": "-38350393", + "description": "Total items in the collection." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"name\": \"sunt Lorem ad\",\n \"version\": \"dolor dolore cillum\",\n \"description\": \"enim voluptate\",\n \"topicDescription\": \"dolor eiusmod nulla et est\",\n \"config\": {},\n \"topicId\": \"magna adipi\",\n \"policyTag\": \"offi\",\n \"id\": \"fugiat magna in sint\",\n \"uuid\": \"officia d\",\n \"status\": \"Duis qui\",\n \"owner\": \"in deserunt\",\n \"policyRoles\": [\n \"sit Excepteur do\",\n \"laboris eiusmod\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"velit Ut\",\n \"description\": \"sit deserunt Lorem do\",\n \"type\": \"aute ad non\",\n \"static\": true\n },\n {\n \"name\": \"occaecat exercitation\",\n \"description\": \"officia i\",\n \"type\": \"esse eu sunt\",\n \"static\": false\n }\n ],\n \"userRoles\": [\n \"aliqua nisi\",\n \"culpa ipsum officia anim\"\n ]\n },\n {\n \"name\": \"ipsum anim\",\n \"version\": \"in non dolor tempor\",\n \"description\": \"anim dolore reprehenderit do\",\n \"topicDescription\": \"aliqua eiusmod proident\",\n \"config\": {},\n \"topicId\": \"culpa velit elit\",\n \"policyTag\": \"do p\",\n \"id\": \"non Ut dolor sunt\",\n \"uuid\": \"sint et proident amet\",\n \"status\": \"est ad\",\n \"owner\": \"ipsum cupidatat\",\n \"policyRoles\": [\n \"magna eu aliquip officia esse\",\n \"quis consec\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"qui eiusmod\",\n \"description\": \"sed e\",\n \"type\": \"culpa exercitation\",\n \"static\": false\n },\n {\n \"name\": \"consectetur ad\",\n \"description\": \"labore amet deserunt\",\n \"type\": \"sunt qui deserunt laborum\",\n \"static\": false\n }\n ],\n \"userRoles\": [\n \"velit dolor dolore\",\n \"dolore officia commodo in\"\n ]\n }\n]" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/policies?pageIndex=0&pageSize=100", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ], + "query": [ + { + "key": "pageIndex", + "value": "0" }, { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "key": "pageSize", + "value": "100" + } + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Creates a new policy.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ] + }, + "description": "Creates a new policy. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "Validates policy.", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/validate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "validate" + ] + }, + "description": "Validates selected policy. Only users with the Standard Registry role are allowed to make the request." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/validate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "validate" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"config\": {},\n \"results\": {}\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/validate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "validate" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/validate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "validate" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "POST", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cillum commodo\",\n \"version\": \"in ullamco magna reprehenderit\",\n \"description\": \"fu\",\n \"topicDescription\": \"esse Duis anim\",\n \"config\": {},\n \"topicId\": \"sit consequat in\",\n \"policyTag\": \"velit dolor\",\n \"id\": \"proident fugiat dolore minim\",\n \"uuid\": \"et\",\n \"status\": \"minim ut velit\",\n \"owner\": \"deserunt occaecat esse\",\n \"policyRoles\": [\n \"est ut Excepteur do culpa\",\n \"laboris elit\"\n ],\n \"policyTopics\": [\n {\n \"name\": \"ut cupidatat elit et\",\n \"description\": \"minim Ut et est esse\",\n \"type\": \"minim in commodo\",\n \"static\": true\n },\n {\n \"name\": \"sunt sed esse et Lorem\",\n \"description\": \"eiusmod\",\n \"type\": \"magna labore labor\",\n \"static\": true\n }\n ]\n}", + "options": { + "raw": { + "language": "json" } + } + }, + "url": { + "raw": "{{baseUrl}}/policies/validate", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "policies", + "validate" ] - }, + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Policy preview from IPFS.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message", - "preview" - ] - }, - "description": "Previews the policy from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message", - "preview" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"policy\": {},\n \"schemas\": [],\n \"tokens\": []\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message", - "preview" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message", - "preview" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"messageId\": \"exercitation\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/policies/import/message/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "message", - "preview" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + } + ] + }, + { + "name": "demo", + "item": [ + { + "name": "/demo/registeredUsers", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/demo/registeredUsers", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "registeredUsers" + ] + }, + "description": "Returns all registered user accounts." + }, + "response": [ + { + "name": "All registered user accounts.", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/demo/registeredUsers", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "registeredUsers" ] } - ] + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "[\n {\n \"username\": \"mollit velit et\",\n \"role\": \"in do ad Ut\",\n \"did\": \"nisi veniam esse cupidatat\",\n \"policyRoles\": {\n \"policy\": {\n \"id\": \"esse et\",\n \"name\": \"Duis cupidatat elit\",\n \"version\": \"sint officia dolor\"\n },\n \"userRoles\": {\n \"did\": \"nostrud proident aliquip consequat\",\n \"role\": \"magna ut mollit\"\n }\n }\n },\n {\n \"username\": \"voluptate irure laborum Excepteur\",\n \"role\": \"enim voluptate deserunt\",\n \"did\": \"adipisicing\",\n \"policyRoles\": {\n \"policy\": {\n \"id\": \"deserunt\",\n \"name\": \"non incididunt\",\n \"version\": \"cillum mollit ame\"\n },\n \"userRoles\": {\n \"did\": \"officia sit\",\n \"role\": \"sit Ut ad\"\n }\n }\n }\n]" }, { - "name": "file", - "item": [ + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/demo/registeredUsers", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "registeredUsers" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Imports new policy from a zip file.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file" - ] - }, - "description": "Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"name\": \"ex ut culpa\",\n \"version\": \"nostrud mollit commodo\",\n \"description\": \"cillum ea\",\n \"topicDescription\": \"ipsum exercitation et do irure\",\n \"config\": {},\n \"topicId\": \"in aute ut\",\n \"policyTag\": \"nisi Excepteur sed amet\",\n \"status\": \"culpa in\",\n \"owner\": \"amet velit veniam\",\n \"policyRoles\": [\n \"adipisicing reprehenderit eu\",\n \"ex fugiat sed in occaecat\"\n ]\n },\n {\n \"name\": \"voluptate in aute\",\n \"version\": \"in cillum aute ut\",\n \"description\": \"ullamco incididunt esse culpa aliqu\",\n \"topicDescription\": \"irure ullamco\",\n \"config\": {},\n \"topicId\": \"aliqua adipisicing dolor\",\n \"policyTag\": \"mollit e\",\n \"status\": \"Excepteur adipisicing cillum\",\n \"owner\": \"occaecat dolore velit et dolor\",\n \"policyRoles\": [\n \"sed esse eu dolore proident\",\n \"enim id exercitation sunt pariatur\"\n ]\n }\n]" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" + } + ] + }, + { + "name": "/demo/randomKey", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/demo/randomKey", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "randomKey" + ] + }, + "description": "Generates a new Hedera account with a random private key." + }, + "response": [ + { + "name": "Successful operation.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/demo/randomKey", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "randomKey" ] - }, + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ { - "name": "Policy preview from a zip file.", - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file", - "preview" - ] - }, - "description": "Previews the policy from a zip file without loading it into the local DB. Only users with the Root Authority role are allowed to make the request." - }, - "response": [ - { - "name": "Successful operation.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file", - "preview" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"policy\": {},\n \"schemas\": [],\n \"tokens\": []\n}" - }, - { - "name": "Unauthorized.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file", - "preview" - ] - } - }, - "status": "Unauthorized", - "code": 401, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Forbidden.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file", - "preview" - ] - } - }, - "status": "Forbidden", - "code": 403, - "_postman_previewlanguage": "text", - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "cookie": [], - "body": "" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "POST", - "header": [ - { - "description": "Added as a part of security scheme: bearer", - "key": "Authorization", - "value": "Bearer " - } - ], - "url": { - "raw": "{{baseUrl}}/policies/import/file/preview", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "import", - "file", - "preview" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"id\": \"mollit in\",\n \"key\": \"aute\"\n}" + }, + { + "name": "Unauthorized.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/demo/randomKey", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "randomKey" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Forbidden.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/demo/randomKey", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "randomKey" ] } - ] + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "text", + "header": [ + { + "key": "Content-Type", + "value": "text/plain" + } + ], + "cookie": [], + "body": "" + }, + { + "name": "Internal server error.", + "originalRequest": { + "method": "GET", + "header": [ + { + "description": "Added as a part of security scheme: bearer", + "key": "Authorization", + "value": "Bearer " + } + ], + "url": { + "raw": "{{baseUrl}}/demo/randomKey", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "demo", + "randomKey" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - }, + } + ] + }, + { + "name": "settings", + "item": [ { - "name": "Return a list of all policies.", + "name": "Returns current settings.", "request": { "auth": { "type": "bearer", @@ -9278,15 +13222,15 @@ } ], "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] }, - "description": "Returns all policies. Only users with the Root Authority and Installer role are allowed to make the request." + "description": "Returns current settings. For users with the Standard Registry role only." }, "response": [ { @@ -9301,12 +13245,12 @@ } ], "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9320,7 +13264,7 @@ } ], "cookie": [], - "body": "[\n {\n \"name\": \"ex ut culpa\",\n \"version\": \"nostrud mollit commodo\",\n \"description\": \"cillum ea\",\n \"topicDescription\": \"ipsum exercitation et do irure\",\n \"config\": {},\n \"topicId\": \"in aute ut\",\n \"policyTag\": \"nisi Excepteur sed amet\",\n \"status\": \"culpa in\",\n \"owner\": \"amet velit veniam\",\n \"policyRoles\": [\n \"adipisicing reprehenderit eu\",\n \"ex fugiat sed in occaecat\"\n ]\n },\n {\n \"name\": \"voluptate in aute\",\n \"version\": \"in cillum aute ut\",\n \"description\": \"ullamco incididunt esse culpa aliqu\",\n \"topicDescription\": \"irure ullamco\",\n \"config\": {},\n \"topicId\": \"aliqua adipisicing dolor\",\n \"policyTag\": \"mollit e\",\n \"status\": \"Excepteur adipisicing cillum\",\n \"owner\": \"occaecat dolore velit et dolor\",\n \"policyRoles\": [\n \"sed esse eu dolore proident\",\n \"enim id exercitation sunt pariatur\"\n ]\n }\n]" + "body": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}" }, { "name": "Unauthorized.", @@ -9334,12 +13278,12 @@ } ], "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9367,12 +13311,12 @@ } ], "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9400,12 +13344,12 @@ } ], "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9419,12 +13363,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "Creates a new policy.", + "name": "Set settings.", "request": { "auth": { "type": "bearer", @@ -9449,7 +13393,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}", "options": { "raw": { "language": "json" @@ -9457,15 +13401,15 @@ } }, "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] }, - "description": "Creates a new policy. Only users with the Root Authority role are allowed to make the request." + "description": "Set settings. For users with the Standard Registry role only." }, "response": [ { @@ -9481,7 +13425,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}", "options": { "raw": { "language": "json" @@ -9489,12 +13433,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9523,7 +13467,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}", "options": { "raw": { "language": "json" @@ -9531,12 +13475,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9565,7 +13509,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}", "options": { "raw": { "language": "json" @@ -9573,12 +13517,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9607,7 +13551,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"operatorId\": \"tempor exercitation\",\n \"operatorKey\": \"fugiat anim\",\n \"nftApiKey\": \"deserunt dolor Lorem\"\n}", "options": { "raw": { "language": "json" @@ -9615,12 +13559,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies", + "raw": "{{baseUrl}}/settings", "host": [ "{{baseUrl}}" ], "path": [ - "policies" + "settings" ] } }, @@ -9634,12 +13578,17 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] - }, + } + ] + }, + { + "name": "logs", + "item": [ { - "name": "Validates policy.", + "name": "Returns logs.", "request": { "auth": { "type": "bearer", @@ -9664,7 +13613,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"type\": \"aliquip reprehenderit exercit\",\n \"startDate\": \"amet sit commodo est\",\n \"endDate\": \"nostrud \",\n \"attributes\": [\n \"sint amet do\",\n \"exercitation minim in\"\n ],\n \"message\": \"sunt commodo\",\n \"pageSize\": -44439281.86013872,\n \"pageIndex\": 64983079.957933396,\n \"sortDirection\": \"ASC\"\n}", "options": { "raw": { "language": "json" @@ -9672,16 +13621,15 @@ } }, "url": { - "raw": "{{baseUrl}}/policies/validate", + "raw": "{{baseUrl}}/logs", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - "validate" + "logs" ] }, - "description": "Validates selected policy. Only users with the Root Authority role are allowed to make the request." + "description": "Returns logs. For users with the Standard Registry role only." }, "response": [ { @@ -9697,7 +13645,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"type\": \"minim magna aliquip\",\n \"startDate\": \"sed Duis\",\n \"endDate\": \"sit sunt\",\n \"attributes\": [\n \"do esse ut\",\n \"e\"\n ],\n \"message\": \"quis Duis\",\n \"pageSize\": -44422113.68446185,\n \"pageIndex\": -48520272.45324546,\n \"sortDirection\": \"DESC\"\n}", "options": { "raw": { "language": "json" @@ -9705,13 +13653,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies/validate", + "raw": "{{baseUrl}}/logs", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - "validate" + "logs" ] } }, @@ -9725,7 +13672,7 @@ } ], "cookie": [], - "body": "{\n \"config\": {},\n \"results\": {}\n}" + "body": "{\n \"totalCount\": 90819890.9807561,\n \"logs\": {\n \"type\": \"sit minim\",\n \"datetime\": \"enim adipisicing exercitation minim\",\n \"message\": \"nulla tempor enim\",\n \"attributes\": [\n \"ut in sit sunt\",\n \"aliquip ullamco\"\n ]\n }\n}" }, { "name": "Unauthorized.", @@ -9740,7 +13687,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"type\": \"minim magna aliquip\",\n \"startDate\": \"sed Duis\",\n \"endDate\": \"sit sunt\",\n \"attributes\": [\n \"do esse ut\",\n \"e\"\n ],\n \"message\": \"quis Duis\",\n \"pageSize\": -44422113.68446185,\n \"pageIndex\": -48520272.45324546,\n \"sortDirection\": \"DESC\"\n}", "options": { "raw": { "language": "json" @@ -9748,13 +13695,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies/validate", + "raw": "{{baseUrl}}/logs", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - "validate" + "logs" ] } }, @@ -9783,7 +13729,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"type\": \"minim magna aliquip\",\n \"startDate\": \"sed Duis\",\n \"endDate\": \"sit sunt\",\n \"attributes\": [\n \"do esse ut\",\n \"e\"\n ],\n \"message\": \"quis Duis\",\n \"pageSize\": -44422113.68446185,\n \"pageIndex\": -48520272.45324546,\n \"sortDirection\": \"DESC\"\n}", "options": { "raw": { "language": "json" @@ -9791,13 +13737,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies/validate", + "raw": "{{baseUrl}}/logs", "host": [ "{{baseUrl}}" ], "path": [ - "policies", - "validate" + "logs" ] } }, @@ -9826,7 +13771,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"name\": \"dolor\",\n \"version\": \"minim ex et cons\",\n \"description\": \"eu laborum\",\n \"topicDescription\": \"Lorem id elit nost\",\n \"config\": {},\n \"topicId\": \"ut mi\",\n \"policyTag\": \"consectetur\",\n \"status\": \"consequat fugiat dolor\",\n \"owner\": \"ipsum magna ut est\",\n \"policyRoles\": [\n \"voluptate in\",\n \"ea dolor velit\"\n ]\n}", + "raw": "{\n \"type\": \"minim magna aliquip\",\n \"startDate\": \"sed Duis\",\n \"endDate\": \"sit sunt\",\n \"attributes\": [\n \"do esse ut\",\n \"e\"\n ],\n \"message\": \"quis Duis\",\n \"pageSize\": -44422113.68446185,\n \"pageIndex\": -48520272.45324546,\n \"sortDirection\": \"DESC\"\n}", "options": { "raw": { "language": "json" @@ -9834,99 +13779,12 @@ } }, "url": { - "raw": "{{baseUrl}}/policies/validate", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "policies", - "validate" - ] - } - }, - "status": "Internal Server Error", - "code": 500, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" - } - ] - } - ] - }, - { - "name": "demo", - "item": [ - { - "name": "/demo/registeredUsers", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/demo/registeredUsers", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "demo", - "registeredUsers" - ] - }, - "description": "Returns all registered user accounts." - }, - "response": [ - { - "name": "All registered user accounts.", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/demo/registeredUsers", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "demo", - "registeredUsers" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "[\n {\n \"username\": \"laboris labore\",\n \"role\": \"reprehenderit Duis dolore\",\n \"did\": \"dolo\"\n },\n {\n \"username\": \"id labore ut\",\n \"role\": \"Ut aliqua voluptate paria\",\n \"did\": \"deserunt occaecat\"\n }\n]" - }, - { - "name": "Internal server error.", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/demo/registeredUsers", + "raw": "{{baseUrl}}/logs", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "registeredUsers" + "logs" ] } }, @@ -9940,12 +13798,12 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, { - "name": "/demo/randomKey", + "name": "Returns logs attributes.", "request": { "auth": { "type": "bearer", @@ -9965,16 +13823,33 @@ } ], "url": { - "raw": "{{baseUrl}}/demo/randomKey", + "raw": "{{baseUrl}}/logs/attributes?name=Lorem ipsum&existingAttributes=su&existingAttributes=sint reprehenderit", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "randomKey" + "logs", + "attributes" + ], + "query": [ + { + "key": "name", + "value": "Lorem ipsum", + "description": "Part of name." + }, + { + "key": "existingAttributes", + "value": "su", + "description": "Attributes to exclude." + }, + { + "key": "existingAttributes", + "value": "sint reprehenderit", + "description": "Attributes to exclude." + } ] }, - "description": "Generates a new Hedera account with a random private key." + "description": "Returns logs attributes. For users with the Standard Registry role only." }, "response": [ { @@ -9989,13 +13864,27 @@ } ], "url": { - "raw": "{{baseUrl}}/demo/randomKey", + "raw": "{{baseUrl}}/logs/attributes?name=Lorem ipsum&existingAttributes=dolor sed&existingAttributes=nostrud sunt aliqua reprehenderit", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "randomKey" + "logs", + "attributes" + ], + "query": [ + { + "key": "name", + "value": "Lorem ipsum" + }, + { + "key": "existingAttributes", + "value": "dolor sed" + }, + { + "key": "existingAttributes", + "value": "nostrud sunt aliqua reprehenderit" + } ] } }, @@ -10009,7 +13898,7 @@ } ], "cookie": [], - "body": "{\n \"id\": \"dolor\",\n \"key\": \"do elit ex cupidatat anim\"\n}" + "body": "[\n \"su\",\n \"sint reprehenderit\"\n]" }, { "name": "Unauthorized.", @@ -10023,13 +13912,27 @@ } ], "url": { - "raw": "{{baseUrl}}/demo/randomKey", + "raw": "{{baseUrl}}/logs/attributes?name=Lorem ipsum&existingAttributes=dolor sed&existingAttributes=nostrud sunt aliqua reprehenderit", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "randomKey" + "logs", + "attributes" + ], + "query": [ + { + "key": "name", + "value": "Lorem ipsum" + }, + { + "key": "existingAttributes", + "value": "dolor sed" + }, + { + "key": "existingAttributes", + "value": "nostrud sunt aliqua reprehenderit" + } ] } }, @@ -10057,13 +13960,27 @@ } ], "url": { - "raw": "{{baseUrl}}/demo/randomKey", + "raw": "{{baseUrl}}/logs/attributes?name=Lorem ipsum&existingAttributes=dolor sed&existingAttributes=nostrud sunt aliqua reprehenderit", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "randomKey" + "logs", + "attributes" + ], + "query": [ + { + "key": "name", + "value": "Lorem ipsum" + }, + { + "key": "existingAttributes", + "value": "dolor sed" + }, + { + "key": "existingAttributes", + "value": "nostrud sunt aliqua reprehenderit" + } ] } }, @@ -10091,13 +14008,27 @@ } ], "url": { - "raw": "{{baseUrl}}/demo/randomKey", + "raw": "{{baseUrl}}/logs/attributes?name=Lorem ipsum&existingAttributes=dolor sed&existingAttributes=nostrud sunt aliqua reprehenderit", "host": [ "{{baseUrl}}" ], "path": [ - "demo", - "randomKey" + "logs", + "attributes" + ], + "query": [ + { + "key": "name", + "value": "Lorem ipsum" + }, + { + "key": "existingAttributes", + "value": "dolor sed" + }, + { + "key": "existingAttributes", + "value": "nostrud sunt aliqua reprehenderit" + } ] } }, @@ -10111,7 +14042,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } @@ -10133,7 +14064,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"owner\": \"do fugiat\",\n \"policyTag\": \"enim ad\",\n \"document\": {}\n}", + "raw": "{\n \"owner\": \"minim deserunt pariatur\",\n \"policyTag\": \"veniam tempor dolor\",\n \"document\": {}\n}", "options": { "raw": { "language": "json" @@ -10159,7 +14090,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"owner\": \"do fugiat\",\n \"policyTag\": \"enim ad\",\n \"document\": {}\n}", + "raw": "{\n \"owner\": \"minim deserunt pariatur\",\n \"policyTag\": \"veniam tempor dolor\",\n \"document\": {}\n}", "options": { "raw": { "language": "json" @@ -10176,8 +14107,8 @@ ] } }, - "status": "Created", - "code": 201, + "status": "OK", + "code": 200, "_postman_previewlanguage": "text", "header": [ { @@ -10195,7 +14126,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"owner\": \"do fugiat\",\n \"policyTag\": \"enim ad\",\n \"document\": {}\n}", + "raw": "{\n \"owner\": \"minim deserunt pariatur\",\n \"policyTag\": \"veniam tempor dolor\",\n \"document\": {}\n}", "options": { "raw": { "language": "json" @@ -10222,7 +14153,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] }, @@ -10293,8 +14224,8 @@ ] } }, - "status": "OK", - "code": 200, + "status": "Created", + "code": 201, "_postman_previewlanguage": "json", "header": [ { @@ -10303,7 +14234,7 @@ } ], "cookie": [], - "body": "\"cupi\"" + "body": "\"laborum Lorem ipsum\"" }, { "name": "Unauthorized.", @@ -10379,7 +14310,7 @@ } ], "cookie": [], - "body": "{\n \"code\": 62027081.239073575,\n \"message\": \"fugiat sunt proi\"\n}" + "body": "{\n \"code\": 70070677.40613353,\n \"message\": \"irure nostrud quis laborum ut\"\n}" } ] } @@ -10391,4 +14322,4 @@ "type": "string" } ] -} \ No newline at end of file +} diff --git a/api-docs/api/swagger/swagger.yaml b/api-docs/api/swagger/swagger.yaml index 787d8a22a6..4de57bf026 100644 --- a/api-docs/api/swagger/swagger.yaml +++ b/api-docs/api/swagger/swagger.yaml @@ -568,10 +568,10 @@ paths: get: tags: - accounts - description: Returns all users except those with roles Root Authority and Auditor. Only users with the Root Authority role are allowed to make the request. + description: Returns all users except those with roles Standard Registry and Auditor. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] - summary: Returns a list of users, excluding Root Authority and Auditors. + summary: Returns a list of users, excluding Standard Registry and Auditors. responses: 200: description: Successful operation. @@ -669,13 +669,40 @@ paths: $ref: '#/components/schemas/Error' /accounts/root-authorities: + get: + deprecated: true + tags: + - accounts + description: Returns all Standard Registries. + security: + - bearerAuth: [] + summary: Returns all Standard Registries. + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Account' + 401: + description: Unauthorized. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + + /accounts/standard-registries: get: tags: - accounts - description: Returns all root authorities. + description: Returns all Standard Registries. security: - bearerAuth: [] - summary: Returns all root authorities. + summary: Returns all Standard Registries. responses: 200: description: Successful operation. @@ -731,7 +758,7 @@ paths: get: tags: - profiles - description: Returns user account information. For users with the Root Authority role it also returns address book and VC document information. + description: Returns user account information. For users with the Standard Registry role it also returns address book and VC document information. parameters: - in: path name: username @@ -762,7 +789,7 @@ paths: put: tags: - profiles - description: Sets Hedera credentials for the user. For users with the Root Authority role it also creates an address book. + description: Sets Hedera credentials for the user. For users with the Standard Registry role it also creates an address book. parameters: - in: path name: username @@ -799,7 +826,7 @@ paths: deprecated: true tags: - schemas - description: Creates new schema. Only users with the Root Authority role are allowed to make the request. + description: Creates new schema. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Create new schema. @@ -878,7 +905,7 @@ paths: post: tags: - schemas - description: Creates new schema. Only users with the Root Authority role are allowed to make the request. + description: Creates new schema. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: topicId @@ -978,7 +1005,7 @@ paths: put: tags: - schemas - description: Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request. + description: Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: schemaId @@ -1023,7 +1050,7 @@ paths: put: tags: - schemas - description: Updates the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request. + description: Updates the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: schemaId @@ -1063,7 +1090,7 @@ paths: delete: tags: - schemas - description: Deletes the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request. + description: Deletes the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: schemaId @@ -1099,7 +1126,7 @@ paths: deprecated: true tags: - schemas - description: Imports new schema from a zip file into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Imports new schema from a zip file. @@ -1136,7 +1163,7 @@ paths: deprecated: true tags: - schemas - description: Imports new schema from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Imports new schema from IPFS. @@ -1174,7 +1201,7 @@ paths: post: tags: - schemas - description: Imports new schema from a zip file into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: topicId @@ -1221,7 +1248,7 @@ paths: post: tags: - schemas - description: Imports new schema from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: topicId @@ -1270,7 +1297,7 @@ paths: post: tags: - schemas - description: Previews the schema from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Previews the schema from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Schema preview from IPFS. @@ -1308,7 +1335,7 @@ paths: post: tags: - schemas - description: Previews the schema from a zip file. Only users with the Root Authority role are allowed to make the request. + description: Previews the schema from a zip file. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Schema preview from a zip file. @@ -1344,7 +1371,7 @@ paths: post: tags: - schemas - description: Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Root Authority role are allowed to make the request. + description: Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: List Hedera message IDs of published schemas. @@ -1377,7 +1404,7 @@ paths: post: tags: - schemas - description: Returns schema files for the schemas. Only users with the Root Authority role are allowed to make the request. + description: Returns schema files for the schemas. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Return zip file with schemas. @@ -1401,12 +1428,285 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - + /schemas/type/{type}: + get: + tags: + - schemas + description: Finds the schema using the json document type. + parameters: + - in: path + name: type + schema: + type: string + required: true + description: JSON type. + security: + - bearerAuth: [] + summary: Returns schema by type. + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /schemas/system/{username}: + post: + tags: + - schemas + description: Creates new system schema. Only users with the Standard Registry role are allowed to make the request. + parameters: + - in: path + name: username + schema: + type: string + required: true + description: Username. + security: + - bearerAuth: [] + summary: Creates new system schema. + requestBody: + description: Object that contains a valid schema. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/Schema" + responses: + 201: + description: Successful operation. + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - schemas + description: Returns all system schemas by username. Only users with the Standard Registry role are allowed to make the request. + security: + - bearerAuth: [] + summary: Returns all system schemas by username. + parameters: + - in: path + name: username + schema: + type: string + required: true + description: Username. + - in: query + name: pageIndex + schema: + type: integer + description: The number of pages to skip before starting to collect the result set. + examples: + pageIndex: + summary: Example of a pageIndex. + value: 0 + - in: query + name: pageSize + schema: + type: integer + description: The number of items to return. + examples: + pageSize: + summary: Example of a pageSize. + value: 100 + responses: + 200: + description: Successful operation. + headers: + x-total-count: + schema: + type: integer + description: Total number of items in the collection. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /schemas/system/{schemaId}: + put: + tags: + - schemas + description: Updates the system schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. + parameters: + - in: path + name: schemaId + schema: + type: string + required: true + description: Schema ID. + security: + - bearerAuth: [] + summary: Updates the schema. + requestBody: + description: Object that contains a valid schema. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/Schema" + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - schemas + description: Deletes the system schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. + parameters: + - in: path + name: schemaId + schema: + type: string + required: true + description: Schema ID. + security: + - bearerAuth: [] + summary: Deletes the schema. + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /schemas/{schemaId}/active: + put: + tags: + - schemas + description: Makes the selected scheme active. Other schemes of the same type become inactive. Only users with the Standard Registry role are allowed to make the request. + parameters: + - in: path + name: schemaId + schema: + type: string + required: true + description: Schema ID. + security: + - bearerAuth: [] + summary: Publishes the schema. + requestBody: + description: Object that contains policy version. + required: true + content: + application/json: + schema: + type: object + properties: + version: + type: string + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /schemas/system/entity/{schemaEntity}: + get: + tags: + - schemas + description: Finds the schema using the schema type. + parameters: + - in: path + name: schemaEntity + schema: + type: string + enum: [STANDARD_REGISTRY, USER, POLICY, MINT_TOKEN, WIPE_TOKEN, MINT_NFTOKEN] + required: true + description: schema type. + security: + - bearerAuth: [] + summary: Returns schema by schema type. + responses: + 200: + description: Successful operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' + 401: + description: Unauthorized. + 403: + description: Forbidden. + 500: + description: Internal server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /tokens: get: tags: - tokens - description: Returns all tokens. For the Root Authority role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role. + description: Returns all tokens. For the Standard Registry role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role. security: - bearerAuth: [] summary: Return a list of tokens. @@ -1439,7 +1739,7 @@ paths: post: tags: - tokens - description: Creates a new token. Only users with the Root Authority role are allowed to make the request. + description: Creates a new token. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Creates a new token. @@ -1487,7 +1787,7 @@ paths: get: tags: - tokens - description: Returns user information for the selected token. Only users with the Root Authority role are allowed to make the request. + description: Returns user information for the selected token. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] parameters: @@ -1589,7 +1889,7 @@ paths: put: tags: - tokens - description: Sets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request. + description: Sets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: tokenId @@ -1634,7 +1934,7 @@ paths: put: tags: - tokens - description: Unsets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request. + description: Unsets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: tokenId @@ -1679,7 +1979,7 @@ paths: put: tags: - tokens - description: Freezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request. + description: Freezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: tokenId @@ -1724,7 +2024,7 @@ paths: put: tags: - tokens - description: Unfreezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request. + description: Unfreezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: tokenId @@ -1830,7 +2130,7 @@ paths: get: tags: - policies - description: Returns all policies. Only users with the Root Authority and Installer role are allowed to make the request. + description: Returns all policies. Only users with the Standard Registry and Installer role are allowed to make the request. security: - bearerAuth: [] summary: Return a list of all policies. @@ -1887,7 +2187,7 @@ paths: post: tags: - policies - description: Creates a new policy. Only users with the Root Authority role are allowed to make the request. + description: Creates a new policy. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Creates a new policy. @@ -1916,7 +2216,7 @@ paths: get: tags: - policies - description: Retrieves policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request. + description: Retrieves policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: policyId @@ -1954,7 +2254,7 @@ paths: put: tags: - policies - description: Updates policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request. + description: Updates policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request. summary: Updates policy configuration. parameters: - in: path @@ -1994,7 +2294,7 @@ paths: put: tags: - policies - description: Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request. + description: Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: policyId @@ -2037,7 +2337,7 @@ paths: post: tags: - policies - description: Validates selected policy. Only users with the Root Authority role are allowed to make the request. + description: Validates selected policy. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Validates policy. @@ -2070,7 +2370,7 @@ paths: get: tags: - policies - description: Returns data from the root policy block. Only users with the Root Authority and Installer role are allowed to make the request. + description: Returns data from the root policy block. Only users with the Standard Registry and Installer role are allowed to make the request. parameters: - in: path name: policyId @@ -2182,7 +2482,7 @@ paths: get: tags: - policies - description: Requests block ID from a policy by tag. Only users with the Root Authority and Installer roles are allowed to make the request. + description: Requests block ID from a policy by tag. Only users with the Standard Registry and Installer roles are allowed to make the request. parameters: - in: path name: policyId @@ -2224,7 +2524,7 @@ paths: get: tags: - policies - description: Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Root Authority role are allowed to make the request. + description: Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: policyId @@ -2257,7 +2557,7 @@ paths: get: tags: - policies - description: Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Root Authority role are allowed to make the request. + description: Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request. parameters: - in: path name: policyId @@ -2290,7 +2590,7 @@ paths: post: tags: - policies - description: Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Imports new policy from IPFS. @@ -2328,7 +2628,7 @@ paths: post: tags: - policies - description: Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. security: - bearerAuth: [] summary: Imports new policy from a zip file. @@ -2364,7 +2664,7 @@ paths: post: tags: - policies - description: Previews the policy from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Previews the policy from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request. summary: Policy preview from IPFS. security: - bearerAuth: [] @@ -2400,7 +2700,7 @@ paths: post: tags: - policies - description: Previews the policy from a zip file without loading it into the local DB. Only users with the Root Authority role are allowed to make the request. + description: Previews the policy from a zip file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request. summary: Policy preview from a zip file. security: - bearerAuth: [] @@ -2560,7 +2860,7 @@ paths: get: tags: - settings - description: Returns current settings. For users with the Root Authority role only. + description: Returns current settings. For users with the Standard Registry role only. security: - bearerAuth: [] summary: Returns current settings. @@ -2584,7 +2884,7 @@ paths: post: tags: - settings - description: Set settings. For users with the Root Authority role only. + description: Set settings. For users with the Standard Registry role only. security: - bearerAuth: [] requestBody: @@ -2613,7 +2913,7 @@ paths: post: tags: - logs - description: Returns logs. For users with the Root Authority role only. + description: Returns logs. For users with the Standard Registry role only. security: - bearerAuth: [] requestBody: @@ -2650,7 +2950,7 @@ paths: get: tags: - logs - description: Returns logs attributes. For users with the Root Authority role only. + description: Returns logs attributes. For users with the Standard Registry role only. parameters: - in: query name: name diff --git a/api-docs/package.json b/api-docs/package.json index 8b2b62946e..04382e2681 100644 --- a/api-docs/package.json +++ b/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "api-docs", - "version": "2.1.0", + "version": "2.2.0-prerelease", "description": "Swagger Documentation", "main": "dist/index.js", "scripts": { @@ -23,5 +23,6 @@ "@types/swagger-ui-express": "^4.1.3", "tslint": "^6.1.3", "typescript": "^4.6.3" - } + }, + "stableVersion": "2.2.0" } diff --git a/api-gateway/Dockerfile b/api-gateway/Dockerfile index 2601cd2d68..6ed1876f14 100644 --- a/api-gateway/Dockerfile +++ b/api-gateway/Dockerfile @@ -5,28 +5,23 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build - -WORKDIR /usr/logger-helper -COPY ./logger-helper/package*.json ./ -COPY ./logger-helper/tsconfig.json ./ +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz RUN npm install -ADD ./logger-helper/src ./src/. -RUN npm run build +RUN npm pack WORKDIR /usr/api-gateway COPY ./api-gateway/package*.json ./ COPY ./api-gateway/tsconfig.json ./ COPY ./api-gateway/.env.docker ./.env +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install ADD ./api-gateway/src ./src/. RUN npm run build diff --git a/api-gateway/nodemon.json b/api-gateway/nodemon.json index 8b879fd87b..660aa69975 100644 --- a/api-gateway/nodemon.json +++ b/api-gateway/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["./dist", "../interfaces/dist", "../common/dist", "../logger-helper/dist"], + "watch": ["./dist", "../interfaces/dist", "../common/dist"], "delay": 2500, "ext": "ts, js", "exec": "node dist/index.js" diff --git a/api-gateway/package-lock.json b/api-gateway/package-lock.json index 0aa94bdfc0..35ea23daa7 100644 --- a/api-gateway/package-lock.json +++ b/api-gateway/package-lock.json @@ -14,7 +14,6 @@ "express": "^4.17.1", "interfaces": "file:../interfaces", "jszip": "^3.7.1", - "logger-helper": "file:../logger-helper", "module-alias": "^2.2.2", "reflect-metadata": "^0.1.13", "ws": "^8.2.1" @@ -63,48 +62,6 @@ "typescript": "^4.5.5" } }, - "../logger-helper": { - "version": "2.0.0", - "license": "Apache-2.0", - "dependencies": { - "common": "file:../common", - "interfaces": "file:../interfaces" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "../vc-modules": { - "version": "1.0.5", - "extraneous": true, - "license": "Apache-2.0", - "dependencies": { - "@hashgraph/did-sdk-js": "0.1.1", - "@hashgraph/sdk": "2.6.0", - "@transmute/credentials-context": "0.7.0-unstable.40", - "@transmute/did-context": "0.7.0-unstable.40", - "@transmute/ed25519-signature-2018": "0.7.0-unstable.40", - "@transmute/json-web-signature": "0.7.0-unstable.40", - "@transmute/jsonld-schema": "0.7.0-unstable.40", - "@transmute/security-context": "0.7.0-unstable.40", - "@transmute/vc.js": "0.7.0-unstable.40", - "ajv": "^8.10.0", - "ajv-formats": "^2.1.1", - "axios": "^0.26.1", - "jose": "4.3.8" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "chai": "4.3.6", - "mocha": "^9.2.0", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "node_modules/@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -2307,10 +2264,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/logger-helper": { - "resolved": "../logger-helper", - "link": true - }, "node_modules/loupe": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", @@ -5884,17 +5837,6 @@ "is-unicode-supported": "^0.1.0" } }, - "logger-helper": { - "version": "file:../logger-helper", - "requires": { - "@types/node": "^17.0.13", - "common": "file:../common", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "loupe": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", diff --git a/api-gateway/package.json b/api-gateway/package.json index 1e41d26c81..01d0f8eb7d 100644 --- a/api-gateway/package.json +++ b/api-gateway/package.json @@ -1,4 +1,5 @@ { + "packageManager": "yarn@3.2.1", "_moduleAliases": { "@api": "dist/api", "@helpers": "dist/helpers", @@ -7,14 +8,13 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { + "@guardian/common": "^2.2.0-prerelease", + "@guardian/interfaces": "^2.2.0-prerelease", "dotenv": "^16.0.0", "express": "^4.17.1", - "interfaces": "file:../interfaces", "jszip": "^3.7.1", "module-alias": "^2.2.2", "reflect-metadata": "^0.1.13", - "logger-helper": "file:../logger-helper", - "common":"file:../common", "ws": "^8.2.1" }, "description": "", @@ -49,5 +49,6 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ui-service.xml" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/api-gateway/src/api/service/account.ts b/api-gateway/src/api/service/account.ts index d4c9e6712c..f13ea0b7bf 100644 --- a/api-gateway/src/api/service/account.ts +++ b/api-gateway/src/api/service/account.ts @@ -1,10 +1,9 @@ -import crypto from 'crypto'; import { Request, Response, Router } from 'express'; import { AuthenticatedRequest } from '@auth/auth.interface'; import { permissionHelper, authorizationHelper } from '@auth/authorizationHelper'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; import { Users } from '@helpers/users'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; /** * User account route @@ -21,19 +20,23 @@ accountAPI.get('/session', async (req: Request, res: Response) => { } else { res.sendStatus(401); } - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message }); } }); accountAPI.post('/register', async (req: Request, res: Response) => { const users = new Users(); try { - const { username, password, role } = req.body; + let { username, password, role } = req.body; + // @deprecated 2022-10-01 + if (role === 'ROOT_AUTHORITY') { + role = UserRole.STANDARD_REGISTRY; + } res.status(201).json(await users.registerNewUser(username, password, role)); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: 500, message: 'Server error' }); } }); @@ -42,33 +45,46 @@ accountAPI.post('/login', async (req: Request, res: Response) => { const users = new Users(); try { const { username, password } = req.body; - const passwordDigest = crypto.createHash('sha256').update(password).digest('hex'); - res.status(200).json(await users.generateNewToken(username, password)); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Server error' }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(error.code).send({ code: error.code, message: error.message }); } }); -accountAPI.get('/', authorizationHelper, permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +accountAPI.get('/', authorizationHelper, permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const users = new Users(); res.status(200).json(await users.getAllUserAccounts()); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: 500, message: 'Server error' }); } }); - +/** + * @deprecated 2022-10-01 + */ accountAPI.get('/root-authorities', authorizationHelper, async (req: Request, res: Response) => { try { const users = new Users(); - const rootAuthorities = await users.getAllRootAuthorityAccounts(); - res.json(rootAuthorities); + const standardRegistries = await users.getAllStandardRegistryAccounts(); + res.json(standardRegistries); } catch (error) { console.error(error); + new Logger().error(error.message, ['API_GATEWAY']); res.json('null'); } -}); \ No newline at end of file +}); + +accountAPI.get('/standard-registries', authorizationHelper, async (req: Request, res: Response) => { + try { + const users = new Users(); + const standardRegistries = await users.getAllStandardRegistryAccounts(); + res.json(standardRegistries); + } catch (error) { + console.error(error); + new Logger().error(error.message, ['API_GATEWAY']); + res.json('null'); + } +}); diff --git a/api-gateway/src/api/service/demo.ts b/api-gateway/src/api/service/demo.ts index f75e1e6079..475d91d0d3 100644 --- a/api-gateway/src/api/service/demo.ts +++ b/api-gateway/src/api/service/demo.ts @@ -1,7 +1,7 @@ import { Request, Response, Router } from 'express'; import { Guardians } from '@helpers/guardians'; import { Users } from '@helpers/users'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; /** * Route for demo api @@ -13,10 +13,10 @@ demoAPI.get('/registeredUsers', async (req: Request, res: Response) => { const guardians = new Guardians(); try { const demoUsers: any = await users.getAllUserAccountsDemo(); - + for (let i = 0; i < demoUsers.length; i++) { const element = demoUsers[i]; - if(element.did) { + if (element.did) { element.policyRoles = await guardians.getUserRoles(element.did); } else { element.policyRoles = []; @@ -25,7 +25,7 @@ demoAPI.get('/registeredUsers', async (req: Request, res: Response) => { res.json(demoUsers); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); console.error(error); res.status(500).send({ code: 500, message: error.message }); } @@ -37,8 +37,8 @@ demoAPI.get('/randomKey', async (req: Request, res: Response) => { const demoKey = await guardians.generateDemoKey(); res.status(200).json(demoKey); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); console.error(error); res.status(500).json({ code: 500, message: error.message }); } -}); \ No newline at end of file +}); diff --git a/api-gateway/src/api/service/external.ts b/api-gateway/src/api/service/external.ts index 1e05123216..be392bddc0 100644 --- a/api-gateway/src/api/service/external.ts +++ b/api-gateway/src/api/service/external.ts @@ -1,7 +1,6 @@ import { Request, Response, Router } from 'express'; import { PolicyEngine } from '@helpers/policyEngine'; -import { Logger } from 'logger-helper'; -// import {PolicyComponentsUtils} from '@policy-engine/policy-components-stuff'; +import { Logger } from '@guardian/common'; /** * Route for demo api @@ -13,9 +12,9 @@ externalAPI.post('/', async (req: Request, res: Response) => { try { res.send(await engineService.recieveExternalData(req.body)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); diff --git a/api-gateway/src/api/service/ipfs.ts b/api-gateway/src/api/service/ipfs.ts index 629a1a257e..7316f35402 100644 --- a/api-gateway/src/api/service/ipfs.ts +++ b/api-gateway/src/api/service/ipfs.ts @@ -1,6 +1,6 @@ import { Response, Router } from 'express'; import { IPFS } from '@helpers/ipfs'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; /** * IPFS route @@ -25,7 +25,7 @@ ipfsAPI.post('/file', async (req: any, res: Response) => { res.status(201).json(cid); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); diff --git a/api-gateway/src/api/service/logger.ts b/api-gateway/src/api/service/logger.ts index 1834aa7598..a4c85dd5a5 100644 --- a/api-gateway/src/api/service/logger.ts +++ b/api-gateway/src/api/service/logger.ts @@ -1,7 +1,7 @@ import { permissionHelper } from '@auth/authorizationHelper'; import { Request, Response, Router } from 'express'; -import { IPageParameters, UserRole } from 'interfaces'; -import { Logger } from 'logger-helper'; +import { IPageParameters, UserRole } from '@guardian/interfaces'; +import { Logger } from '@guardian/common'; /** * Logger route @@ -16,7 +16,7 @@ function escapeRegExp(text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); } -loggerAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Request, res: Response) => { +loggerAPI.post('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: Request, res: Response) => { try { const filters: any = {}; const pageParameters: IPageParameters = {}; @@ -55,7 +55,7 @@ loggerAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Reque } }); -loggerAPI.get('/attributes', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Request, res: Response) => { +loggerAPI.get('/attributes', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: Request, res: Response) => { try { const logger = new Logger(); if (req.query.existingAttributes && !Array.isArray(req.query.existingAttributes)) { diff --git a/api-gateway/src/api/service/policy.ts b/api-gateway/src/api/service/policy.ts index 7b1fd4115a..4f4e787dfe 100644 --- a/api-gateway/src/api/service/policy.ts +++ b/api-gateway/src/api/service/policy.ts @@ -1,9 +1,9 @@ import { Response, Router } from 'express'; import { AuthenticatedRequest } from '@auth/auth.interface'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; import { PolicyEngine } from '@helpers/policyEngine'; import { Users } from '@helpers/users'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; export const policyAPI = Router(); @@ -12,13 +12,17 @@ policyAPI.get('/', async (req: AuthenticatedRequest, res: Response) => { const engineService = new PolicyEngine(); try { const user = await users.getUser(req.user.username); + if (!user.did) { + res.status(200).setHeader('X-Total-Count', 0).json([]); + return; + } let pageIndex: any, pageSize: any; if (req.query && req.query.pageIndex && req.query.pageSize) { pageIndex = req.query.pageIndex; pageSize = req.query.pageSize; } let result: any; - if (user.role === UserRole.ROOT_AUTHORITY) { + if (user.role === UserRole.STANDARD_REGISTRY) { result = await engineService.getPolicies({ filters: { owner: user.did, @@ -43,8 +47,8 @@ policyAPI.get('/', async (req: AuthenticatedRequest, res: Response) => { } const { policies, count } = result; res.status(200).setHeader('X-Total-Count', count).json(policies); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: 500, message: 'Server error' }); } }); @@ -54,9 +58,9 @@ policyAPI.post('/', async (req: AuthenticatedRequest, res: Response) => { try { const policies = await engineService.createPolicy(req.body, req.user) res.status(201).json(policies); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message }); } }); @@ -70,9 +74,9 @@ policyAPI.get('/:policyId', async (req: AuthenticatedRequest, res: Response) => userDid: user.did, })) as any; res.send(model); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message }); } }); @@ -91,9 +95,9 @@ policyAPI.put('/:policyId', async (req: AuthenticatedRequest, res: Response) => model.policyTopics = policy.policyTopics; const result = await engineService.savePolicy(model, req.user, req.params.policyId); res.json(result); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: 500, message: 'Unknown error' }); } }); @@ -102,9 +106,9 @@ policyAPI.put('/:policyId/publish', async (req: AuthenticatedRequest, res: Respo const engineService = new PolicyEngine(); try { res.json(await engineService.publishPolicy(req.body, req.user, req.params.policyId)); - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message || e }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message || error }); } }); @@ -112,10 +116,10 @@ policyAPI.post('/validate', async (req: AuthenticatedRequest, res: Response) => const engineService = new PolicyEngine(); try { res.send(await engineService.validatePolicy(req.body, req.user)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message }); } }); // @@ -123,10 +127,10 @@ policyAPI.get('/:policyId/blocks', async (req: AuthenticatedRequest, res: Respon const engineService = new PolicyEngine(); try { res.send(await engineService.getPolicyBlocks(req.user, req.params.policyId)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -134,10 +138,10 @@ policyAPI.get('/:policyId/blocks/:uuid', async (req: AuthenticatedRequest, res: const engineService = new PolicyEngine(); try { res.send(await engineService.getBlockData(req.user, req.params.policyId, req.params.uuid)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -145,10 +149,10 @@ policyAPI.post('/:policyId/blocks/:uuid', async (req: AuthenticatedRequest, res: const engineService = new PolicyEngine(); try { res.send(await engineService.setBlockData(req.user, req.params.policyId, req.params.uuid, req.body)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -156,10 +160,10 @@ policyAPI.get('/:policyId/tag/:tagName', async (req: AuthenticatedRequest, res: const engineService = new PolicyEngine(); try { res.send(await engineService.getBlockByTagName(req.user, req.params.policyId, req.params.tagName)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -167,10 +171,10 @@ policyAPI.get('/:policyId/blocks/:uuid/parents', async (req: AuthenticatedReques const engineService = new PolicyEngine(); try { res.send(await engineService.getBlockParents(req.user, req.params.policyId, req.params.uuid)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -178,15 +182,14 @@ policyAPI.get('/:policyId/export/file', async (req: AuthenticatedRequest, res: R const engineService = new PolicyEngine(); try { const policyFile: any = await engineService.exportFile(req.user, req.params.policyId); - console.log(policyFile) const policy: any = await engineService.getPolicy({ filters: req.params.policyId }); res.setHeader('Content-disposition', `attachment; filename=${policy.name}`); res.setHeader('Content-type', 'application/zip'); res.send(policyFile); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: error.message }); } }); @@ -194,10 +197,10 @@ policyAPI.get('/:policyId/export/message', async (req: AuthenticatedRequest, res const engineService = new PolicyEngine(); try { res.send(await engineService.exportMessage(req.user, req.params.policyId)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -206,10 +209,10 @@ policyAPI.post('/import/message', async (req: AuthenticatedRequest, res: Respons try { const policies = await engineService.importMessage(req.user, req.body.messageId); res.status(201).send(policies); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -218,10 +221,10 @@ policyAPI.post('/import/file', async (req: AuthenticatedRequest, res: Response) try { const policies = await engineService.importFile(req.user, req.body); res.status(201).send(policies); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -229,10 +232,10 @@ policyAPI.post('/import/message/preview', async (req: AuthenticatedRequest, res: const engineService = new PolicyEngine(); try { res.send(await engineService.importMessagePreview(req.user, req.body.messageId)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); @@ -240,9 +243,21 @@ policyAPI.post('/import/file/preview', async (req: AuthenticatedRequest, res: Re const engineService = new PolicyEngine(); try { res.send(await engineService.importFilePreview(req.user, req.body)); - } catch (e) { - console.error(e); - new Logger().error(e.message, ['API_GATEWAY']); - res.status(500).send({ code: 500, message: 'Unknown error: ' + e.message }); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); } }); + +policyAPI.get('/blocks/about', async (req: AuthenticatedRequest, res: Response) => { + const engineService = new PolicyEngine(); + try { + res.send(await engineService.blockAbout()); + } catch (error) { + console.error(error); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).send({ code: 500, message: 'Unknown error: ' + error.message }); + } +}); + diff --git a/api-gateway/src/api/service/profile.ts b/api-gateway/src/api/service/profile.ts index 36c7015714..313f31cb53 100644 --- a/api-gateway/src/api/service/profile.ts +++ b/api-gateway/src/api/service/profile.ts @@ -3,7 +3,7 @@ import { Guardians } from '@helpers/guardians'; import { Users } from '@helpers/users'; import { KeyType, Wallet } from '@helpers/wallet'; import { Request, Response, Router } from 'express'; -import { DidDocumentStatus, IUser, SchemaEntity, TopicType, UserRole } from 'interfaces'; +import { DidDocumentStatus, IUser, SchemaEntity, TopicType, UserRole } from '@guardian/interfaces'; /** * User profile route @@ -27,11 +27,18 @@ profileAPI.get('/:username/', async (req: AuthenticatedRequest, res: Response) = let vcDocument: any = null; if (user.did) { - const vcDocuments = await guardians.getVcDocuments({ + let vcDocuments = await guardians.getVcDocuments({ owner: user.did, - type: SchemaEntity.ROOT_AUTHORITY + type: SchemaEntity.USER }); - if (vcDocuments) { + if (vcDocuments && vcDocuments.length) { + vcDocument = vcDocuments[vcDocuments.length - 1]; + } + vcDocuments = await guardians.getVcDocuments({ + owner: user.did, + type: SchemaEntity.STANDARD_REGISTRY + }); + if (vcDocuments && vcDocuments.length) { vcDocument = vcDocuments[vcDocuments.length - 1]; } } @@ -39,10 +46,10 @@ profileAPI.get('/:username/', async (req: AuthenticatedRequest, res: Response) = let topic: any; if (user.did || user.parent) { const filters = []; - if(user.did) { + if (user.did) { filters.push(user.did); } - if(user.parent) { + if (user.parent) { filters.push(user.parent); } topic = await guardians.getTopic({ @@ -61,6 +68,7 @@ profileAPI.get('/:username/', async (req: AuthenticatedRequest, res: Response) = failed: !!(didDocument && didDocument.status == DidDocumentStatus.FAILED), hederaAccountKey: null, topicId: topic?.topicId, + parentTopicId: topic?.parent, didDocument: didDocument, vcDocument: vcDocument }; @@ -77,7 +85,7 @@ profileAPI.put('/:username/', async (req: AuthenticatedRequest, res: Response) = const wallet = new Wallet(); const guardians = new Guardians(); - const profile: IUser = req.body; + const profile: any = req.body; const user = await users.getUser(req.user.username); if (!profile.hederaAccountId) { @@ -90,9 +98,11 @@ profileAPI.put('/:username/', async (req: AuthenticatedRequest, res: Response) = } let did: string; - if (user.role === UserRole.ROOT_AUTHORITY) { - did = await guardians.createRootAuthorityProfile(profile); + if (user.role === UserRole.STANDARD_REGISTRY) { + profile.entity = SchemaEntity.STANDARD_REGISTRY; + did = await guardians.createStandardRegistryProfile(profile); } else if (user.role === UserRole.USER) { + profile.entity = SchemaEntity.USER; did = await guardians.createUserProfile(profile); } diff --git a/api-gateway/src/api/service/schema.ts b/api-gateway/src/api/service/schema.ts index a35f02d468..4318774732 100644 --- a/api-gateway/src/api/service/schema.ts +++ b/api-gateway/src/api/service/schema.ts @@ -1,10 +1,10 @@ import { Guardians } from '@helpers/guardians'; import { Request, Response, Router } from 'express'; -import { ISchema, UserRole, SchemaHelper } from 'interfaces'; +import { ISchema, UserRole, SchemaHelper, SchemaEntity } from '@guardian/interfaces'; import { AuthenticatedRequest } from '@auth/auth.interface'; import { permissionHelper } from '@auth/authorizationHelper'; import JSZip from "jszip"; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; import { PolicyEngine } from '@helpers/policyEngine'; export async function parseZipFile(zipFile: any): Promise { @@ -13,13 +13,13 @@ export async function parseZipFile(zipFile: any): Promise { const schemaStringArray = await Promise.all(Object.entries(content.files) .filter(file => !file[1].dir) .map(file => file[1].async('string'))); - const schemes = schemaStringArray.map(item => JSON.parse(item)); - return schemes; + const schemas = schemaStringArray.map(item => JSON.parse(item)); + return schemas; } -export async function generateZipFile(schemes: ISchema[]): Promise { +export async function generateZipFile(schemas: ISchema[]): Promise { const zip = new JSZip(); - for (let schema of schemes) { + for (let schema of schemas) { zip.file(`${schema.iri}.json`, JSON.stringify(schema)); } return zip; @@ -27,8 +27,6 @@ export async function generateZipFile(schemes: ISchema[]): Promise { export async function createSchema(newSchema: ISchema, owner: string, topicId?: string): Promise { const guardians = new Guardians(); - const engineService = new PolicyEngine(); - if (newSchema.id) { const schema = await guardians.getSchemaById(newSchema.id); if (!schema) { @@ -49,9 +47,9 @@ export async function createSchema(newSchema: ISchema, owner: string, topicId?: } SchemaHelper.updateOwner(newSchema, owner); - const schemes = (await guardians.createSchema(newSchema)); - SchemaHelper.updatePermission(schemes, owner); - return schemes; + const schemas = (await guardians.createSchema(newSchema)); + SchemaHelper.updatePermission(schemas, owner); + return schemas; } export async function updateSchema(newSchema: ISchema, owner: string): Promise { @@ -64,24 +62,36 @@ export async function updateSchema(newSchema: ISchema, owner: string): Promise(schemas: T): T { + if (schemas) { + if (Array.isArray(schemas)) { + for (let i = 0; i < schemas.length; i++) { + const schema: any = schemas[i]; + if (schema.document) { + schema.document = JSON.stringify(schema.document); + } + if (schema.context) { + schema.context = JSON.stringify(schema.context); + } + } + return schemas; + } else { + const schema: any = schemas; if (schema.document) { schema.document = JSON.stringify(schema.document); } if (schema.context) { schema.context = JSON.stringify(schema.context); } + return schema; } } - return schemes; + return schemas; } function fromOld(schema: any): any { @@ -102,29 +112,29 @@ export const schemaAPI = Router(); /** * @deprecated 2022-08-04 */ -schemaAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const newSchema = req.body; fromOld(newSchema); - const schemes = await createSchema(newSchema, user.did); - res.status(201).json(toOld(schemes)); + const schemas = await createSchema(newSchema, user.did); + res.status(201).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.post('/:topicId', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/:topicId', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const newSchema = req.body; fromOld(newSchema); const topicId = req.params.topicId as string; - const schemes = await createSchema(newSchema, user.did, topicId); - res.status(201).json(toOld(schemes)); + const schemas = await createSchema(newSchema, user.did, topicId); + res.status(201).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); @@ -139,14 +149,24 @@ schemaAPI.get('/', async (req: AuthenticatedRequest, res: Response) => { pageSize = req.query.pageSize; } let owner = user.parent; - if (user.role == UserRole.ROOT_AUTHORITY) { + if (user.role == UserRole.STANDARD_REGISTRY) { owner = user.did; } - const { schemes, count } = await guardians.getSchemesByOwner(owner, null, pageIndex, pageSize); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).setHeader('X-Total-Count', count).json(toOld(schemes)); + let topicId = null; + const policyId = req.query?.policyId; + if (policyId) { + const engineService = new PolicyEngine(); + const model = (await engineService.getPolicy({ + filters: policyId, + userDid: user.did, + })) as any; + topicId = model?.topicId; + } + const { schemas, count } = await guardians.getSchemasByOwner(owner, topicId, pageIndex, pageSize); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code, message: error.message }); } }); @@ -162,32 +182,46 @@ schemaAPI.get('/:topicId', async (req: AuthenticatedRequest, res: Response) => { pageSize = req.query.pageSize; } let owner = user.parent; - if (user.role == UserRole.ROOT_AUTHORITY) { + if (user.role == UserRole.STANDARD_REGISTRY) { owner = user.did; } - const { schemes, count } = await guardians.getSchemesByOwner(owner, topicId, pageIndex, pageSize); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).setHeader('X-Total-Count', count).json(toOld(schemes)); + const { schemas, count } = await guardians.getSchemasByOwner(owner, topicId, pageIndex, pageSize); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code, message: error.message }); } }); -schemaAPI.put('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.put('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const newSchema = req.body; + const guardians = new Guardians(); + const schema = await guardians.getSchemaById(newSchema.id); + if (!schema) { + res.status(500).json({ code: 500, message: 'Schema does not exist.' }); + return; + } + if (schema.creator != user.did) { + res.status(500).json({ code: 500, message: 'Invalid creator.' }); + return; + } + if (schema.system) { + res.status(500).json({ code: 500, message: 'Schema is system.' }); + return; + } fromOld(newSchema); - const schemes = await updateSchema(newSchema, user.did) - res.status(200).json(toOld(schemes)); + const schemas = await updateSchema(newSchema, user.did) + res.status(200).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.delete('/:schemaId', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.delete('/:schemaId', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const guardians = new Guardians(); @@ -201,16 +235,20 @@ schemaAPI.delete('/:schemaId', permissionHelper(UserRole.ROOT_AUTHORITY), async res.status(500).json({ code: 500, message: 'Invalid creator.' }); return; } - const schemes = (await guardians.deleteSchema(schemaId)); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).json(toOld(schemes)); + if (schema.system) { + res.status(500).json({ code: 500, message: 'Schema is system.' }); + return; + } + const schemas = (await guardians.deleteSchema(schemaId)); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.put('/:schemaId/publish', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.put('/:schemaId/publish', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const guardians = new Guardians(); @@ -224,7 +262,12 @@ schemaAPI.put('/:schemaId/publish', permissionHelper(UserRole.ROOT_AUTHORITY), a res.status(500).json({ code: 500, message: 'Invalid creator.' }); return; } - const allVersion = await guardians.getSchemesByUUID(schema.uuid); + if (schema.system) { + res.status(500).json({ code: 500, message: 'Schema is system.' }); + return; + } + + const allVersion = await guardians.getSchemasByUUID(schema.uuid); const { version } = req.body; if (allVersion.findIndex(s => s.version == version) !== -1) { res.status(500).json({ code: 500, message: 'Version already exists.' }); @@ -232,11 +275,11 @@ schemaAPI.put('/:schemaId/publish', permissionHelper(UserRole.ROOT_AUTHORITY), a const item = await guardians.publishSchema(schemaId, version, user.did); - const { schemes, count } = await guardians.getSchemesByOwner(user.did); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).setHeader('X-Total-Count', count).json(toOld(schemes)); + const { schemas, count } = await guardians.getSchemasByOwner(user.did); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); @@ -244,17 +287,17 @@ schemaAPI.put('/:schemaId/publish', permissionHelper(UserRole.ROOT_AUTHORITY), a /** * @deprecated 2022-08-04 */ -schemaAPI.post('/import/message', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/import/message', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const guardians = new Guardians(); const messageId = req.body.messageId as string; - const map = await guardians.importSchemesByMessages([messageId], req.user.did, null); - const { schemes, count } = await guardians.getSchemesByOwner(user.did); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).setHeader('X-Total-Count', count).json(toOld(schemes)); + const map = await guardians.importSchemasByMessages([messageId], req.user.did, null); + const { schemas, count } = await guardians.getSchemasByOwner(user.did); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); @@ -262,7 +305,7 @@ schemaAPI.post('/import/message', permissionHelper(UserRole.ROOT_AUTHORITY), asy /** * @deprecated 2022-08-04 */ -schemaAPI.post('/import/file', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/import/file', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const guardians = new Guardians(); @@ -271,17 +314,17 @@ schemaAPI.post('/import/file', permissionHelper(UserRole.ROOT_AUTHORITY), async throw new Error('file in body is empty'); } const files = await parseZipFile(zip); - const map = await guardians.importSchemesByFile(files, req.user.did, null); - const { schemes, count } = await guardians.getSchemesByOwner(user.did); - SchemaHelper.updatePermission(schemes, user.did); - res.status(200).setHeader('X-Total-Count', count).json(toOld(schemes)); + const map = await guardians.importSchemasByFile(files, req.user.did, null); + const { schemas, count } = await guardians.getSchemasByOwner(user.did); + SchemaHelper.updatePermission(schemas, user.did); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.post('/import/message/preview', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/import/message/preview', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const messageId = req.body.messageId; if (!messageId) { @@ -289,15 +332,15 @@ schemaAPI.post('/import/message/preview', permissionHelper(UserRole.ROOT_AUTHORI } const user = req.user; const guardians = new Guardians(); - const schemaToPreview = await guardians.previewSchemesByMessages([messageId]); + const schemaToPreview = await guardians.previewSchemasByMessages([messageId]); res.status(200).json(schemaToPreview); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.post('/import/file/preview', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/import/file/preview', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const zip = req.body; if (!zip) { @@ -306,31 +349,31 @@ schemaAPI.post('/import/file/preview', permissionHelper(UserRole.ROOT_AUTHORITY) const user = req.user; const guardians = new Guardians(); const files = await parseZipFile(zip); - const schemaToPreview = await guardians.previewSchemesByFile(files); + const schemaToPreview = await guardians.previewSchemasByFile(files); res.status(200).json(schemaToPreview); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.post('/:topicId/import/message', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/:topicId/import/message', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const topicId = req.params.topicId as string; const guardians = new Guardians(); const messageId = req.body.messageId as string; - const map = await guardians.importSchemesByMessages([messageId], req.user.did, topicId); - const { schemes, count } = await guardians.getSchemesByOwner(user.did); - SchemaHelper.updatePermission(schemes, user.did); - res.status(201).setHeader('X-Total-Count', count).json(toOld(schemes)); + const map = await guardians.importSchemasByMessages([messageId], req.user.did, topicId); + const { schemas, count } = await guardians.getSchemasByOwner(user.did); + SchemaHelper.updatePermission(schemas, user.did); + res.status(201).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.post('/:topicId/import/file', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.post('/:topicId/import/file', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const user = req.user; const guardians = new Guardians(); @@ -340,25 +383,25 @@ schemaAPI.post('/:topicId/import/file', permissionHelper(UserRole.ROOT_AUTHORITY throw new Error('file in body is empty'); } const files = await parseZipFile(zip); - const map = await guardians.importSchemesByFile(files, req.user.did, topicId); - const { schemes, count } = await guardians.getSchemesByOwner(user.did); - SchemaHelper.updatePermission(schemes, user.did); - res.status(201).setHeader('X-Total-Count', count).json(toOld(schemes)); + const map = await guardians.importSchemasByFile(files, req.user.did, topicId); + const { schemas, count } = await guardians.getSchemasByOwner(user.did); + SchemaHelper.updatePermission(schemas, user.did); + res.status(201).setHeader('X-Total-Count', count).json(toOld(schemas)); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.get('/:schemaId/export/message', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Request, res: Response) => { +schemaAPI.get('/:schemaId/export/message', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: Request, res: Response) => { try { if (!req.params.schemaId) { throw new Error("No schemas to export"); } const guardians = new Guardians(); const id = req.params.schemaId as string; - const schemes = await guardians.exportSchemes([id]); - const scheme = schemes[0]; + const schemas = await guardians.exportSchemas([id]); + const scheme = schemas[0]; if (!scheme) { throw new Error(`Cannot export policy ${req.params.schemaId}`); } @@ -371,27 +414,222 @@ schemaAPI.get('/:schemaId/export/message', permissionHelper(UserRole.ROOT_AUTHOR owner: scheme.owner }); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -schemaAPI.get('/:schemaId/export/file', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +schemaAPI.get('/:schemaId/export/file', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { if (!req.params.schemaId) { throw new Error("No schemas to export"); } const guardians = new Guardians(); const id = req.params.schemaId as string; - const schemes = await guardians.exportSchemes([id]); + const schemas = await guardians.exportSchemas([id]); const name = `${Date.now()}`; - const zip = await generateZipFile(schemes); + const zip = await generateZipFile(schemas); const arcStream = zip.generateNodeStream(); res.setHeader('Content-disposition', `attachment; filename=${name}`); res.setHeader('Content-type', 'application/zip'); arcStream.pipe(res); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); + +schemaAPI.get('/type/:schemaType', async (req: AuthenticatedRequest, res: Response) => { + try { + if (!req.params.schemaType) { + throw new Error(`Schema not found: ${req.params.schemaType}`); + } + const guardians = new Guardians(); + const schema = await guardians.getSchemaByType(req.params.schemaType); + if (!schema) { + throw new Error(`Schema not found: ${req.params.schemaType}`); + } + res.status(200).send({ + uuid: schema.uuid, + iri: schema.iri, + name: schema.name, + version: schema.version, + document: schema.document, + documentURL: schema.documentURL, + context: schema.context, + contextURL: schema.contextURL, + }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); + +schemaAPI.post('/system/:username', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { + try { + const user = req.user; + const newSchema = req.body; + + if (!newSchema) { + res.status(500).json({ code: 500, message: 'Schema does not exist.' }); + return; + } + if (newSchema.entity != SchemaEntity.STANDARD_REGISTRY && newSchema.entity != SchemaEntity.USER) { + res.status(500).json({ + code: 500, + message: `Invalid schema types. Entity must be ${SchemaEntity.STANDARD_REGISTRY} or ${SchemaEntity.USER}` + }); + return; + } + + const guardians = new Guardians(); + const owner = user.username; + + fromOld(newSchema); + delete newSchema.version; + delete newSchema.id; + delete newSchema.status; + delete newSchema.topicId; + + SchemaHelper.updateOwner(newSchema, owner); + const schema = await guardians.createSystemSchema(newSchema); + + res.status(201).json(toOld(schema)); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); + +schemaAPI.get('/system/:username', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { + try { + const user = req.user; + const guardians = new Guardians(); + const owner = user.username; + let pageIndex: any, pageSize: any; + if (req.query && req.query.pageIndex && req.query.pageSize) { + pageIndex = req.query.pageIndex; + pageSize = req.query.pageSize; + } + const { schemas, count } = await guardians.getSystemSchemas(owner, pageIndex, pageSize); + schemas.forEach((s) => { s.readonly = s.readonly || s.owner != owner }); + res.status(200).setHeader('X-Total-Count', count).json(toOld(schemas)); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: error.code, message: error.message }); + } +}); + +schemaAPI.delete('/system/:schemaId', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { + try { + const user = req.user; + const guardians = new Guardians(); + const schemaId = req.params.schemaId; + const schema = await guardians.getSchemaById(schemaId); + if (!schema) { + res.status(500).json({ code: 500, message: 'Schema does not exist.' }); + return; + } + if (schema.owner != user.username) { + res.status(500).json({ code: 500, message: 'Invalid creator.' }); + return; + } + if (schema.active) { + res.status(500).json({ code: 500, message: 'Schema is active.' }); + return; + } + if (!schema.system) { + res.status(500).json({ code: 500, message: 'Schema is not system.' }); + return; + } + await guardians.deleteSchema(schemaId); + res.status(200).json(null); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); + +schemaAPI.put('/system/:schemaId', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { + try { + const user = req.user; + const newSchema = req.body; + const guardians = new Guardians(); + const schema = await guardians.getSchemaById(newSchema.id); + if (!schema) { + res.status(500).json({ code: 500, message: 'Schema does not exist.' }); + return; + } + if (schema.owner != user.username) { + res.status(500).json({ code: 500, message: 'Invalid creator.' }); + return; + } + if (schema.active) { + res.status(500).json({ code: 500, message: 'Schema is active.' }); + return; + } + if (!schema.system) { + res.status(500).json({ code: 500, message: 'Schema is not system.' }); + return; + } + fromOld(newSchema); + const schemas = await updateSchema(newSchema, user.did); + res.status(200).json(toOld(schemas)); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); + +schemaAPI.put('/system/:schemaId/active', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { + try { + const user = req.user; + const guardians = new Guardians(); + const schemaId = req.params.schemaId; + const schema = await guardians.getSchemaById(schemaId); + if (!schema) { + res.status(500).json({ code: 500, message: 'Schema does not exist.' }); + return; + } + if (schema.active) { + res.status(500).json({ code: 500, message: 'Schema is active.' }); + return; + } + if (!schema.system) { + res.status(500).json({ code: 500, message: 'Schema is not system.' }); + return; + } + await guardians.activeSchema(schemaId); + res.status(200).json(null); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); + +schemaAPI.get('/system/entity/:schemaEntity', async (req: AuthenticatedRequest, res: Response) => { + try { + if (!req.params.schemaEntity) { + throw new Error(`Schema not found: ${req.params.schemaEntity}`); + } + const guardians = new Guardians(); + const schema = await guardians.getSchemaByEntity(req.params.schemaEntity); + if (!schema) { + res.status(200).send(null); + return; + } + res.status(200).send({ + uuid: schema.uuid, + iri: schema.iri, + name: schema.name, + version: schema.version, + document: schema.document, + documentURL: schema.documentURL, + context: schema.context, + contextURL: schema.contextURL, + }); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + res.status(500).json({ code: 500, message: error.message }); + } +}); \ No newline at end of file diff --git a/api-gateway/src/api/service/settings.ts b/api-gateway/src/api/service/settings.ts index d8fc28fc37..f97bfd98a9 100644 --- a/api-gateway/src/api/service/settings.ts +++ b/api-gateway/src/api/service/settings.ts @@ -2,15 +2,15 @@ import { permissionHelper } from '@auth/authorizationHelper'; import { Guardians } from '@helpers/guardians'; import { IPFS } from '@helpers/ipfs'; import { Request, Response, Router } from 'express'; -import { CommonSettings, UserRole } from 'interfaces'; -import { Logger } from 'logger-helper'; +import { CommonSettings, UserRole } from '@guardian/interfaces'; +import { Logger } from '@guardian/common'; /** * Settings route */ export const settingsAPI = Router(); -settingsAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Request, res: Response) => { +settingsAPI.post('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: Request, res: Response) => { try { const settings = req.body as CommonSettings; if (!settings || Object.keys(settings).length === 0) { @@ -24,16 +24,16 @@ settingsAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Req ]); res.json(null); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); -settingsAPI.get('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Request, res: Response) => { +settingsAPI.get('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: Request, res: Response) => { try { const guardians = new Guardians(); const ipfs = new IPFS(); - const [guardiansSettings, ipfsClientSettings] = await Promise.all([ + const [guardiansSettings, ipfsClientSettings] = await Promise.all([ guardians.getSettings(), ipfs.getSettings() ]); @@ -42,7 +42,7 @@ settingsAPI.get('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Requ ...ipfsClientSettings }); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); diff --git a/api-gateway/src/api/service/tokens.ts b/api-gateway/src/api/service/tokens.ts index ab4a3a7095..b2f1a6eafb 100644 --- a/api-gateway/src/api/service/tokens.ts +++ b/api-gateway/src/api/service/tokens.ts @@ -1,10 +1,9 @@ import { Guardians } from '@helpers/guardians'; -import { KeyType, Wallet } from '@helpers/wallet'; import { AuthenticatedRequest, IAuthUser } from '@auth/auth.interface'; import { permissionHelper } from '@auth/authorizationHelper'; import { Request, Response, Router } from 'express'; -import { ITokenInfo, UserRole } from 'interfaces'; -import { Logger } from 'logger-helper'; +import { ITokenInfo, UserRole } from '@guardian/interfaces'; +import { Logger } from '@guardian/common'; import { PolicyEngine } from '@helpers/policyEngine'; import { findAllEntities } from '@helpers/utils'; @@ -20,13 +19,13 @@ async function setTokensPolicies(tokens: any[], user: IAuthUser) { const engineService = new PolicyEngine(); let result: any; - if (user.role === UserRole.ROOT_AUTHORITY) { + if (user.role === UserRole.STANDARD_REGISTRY) { result = await engineService.getPolicies({ filters: { owner: user.did } }); } else { result = await engineService.getPolicies({ filters: { status: 'PUBLISH' } }); } const { policies, count } = result; - + for (let i = 0; i < tokens.length; i++) { const tokenPolicies = []; const token = tokens[i]; @@ -42,7 +41,7 @@ async function setTokensPolicies(tokens: any[], user: IAuthUser) { } } -tokenAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.post('/', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const user = req.user; @@ -58,18 +57,18 @@ tokenAPI.post('/', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: Authen await setTokensPolicies(tokens, user); res.status(201).json(tokens); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: error.code || 500, message: error.message }); } }); -tokenAPI.get('/', permissionHelper(UserRole.ROOT_AUTHORITY, UserRole.USER), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.get('/', permissionHelper(UserRole.STANDARD_REGISTRY, UserRole.USER), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const user = req.user; let tokens = []; - if (user.role === UserRole.ROOT_AUTHORITY) { + if (user.role === UserRole.STANDARD_REGISTRY) { tokens = await guardians.getTokens({ did: user.did }); @@ -80,7 +79,7 @@ tokenAPI.get('/', permissionHelper(UserRole.ROOT_AUTHORITY, UserRole.USER), asyn await setTokensPolicies(tokens, user); res.status(200).json(tokens); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).send({ code: error.code || 500, message: error.message }); } }); @@ -97,7 +96,7 @@ tokenAPI.put('/:tokenId/associate', permissionHelper(UserRole.USER), async (req: const status = await guardians.associateToken(tokenId, userDID); res.status(200).json(status); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); @@ -114,12 +113,12 @@ tokenAPI.put('/:tokenId/dissociate', permissionHelper(UserRole.USER), async (req const status = await guardians.dissociateToken(tokenId, userDID); res.status(200).json(status); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); -tokenAPI.put('/:tokenId/:username/grantKyc', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.put('/:tokenId/:username/grantKyc', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const tokenId = req.params.tokenId; @@ -132,12 +131,12 @@ tokenAPI.put('/:tokenId/:username/grantKyc', permissionHelper(UserRole.ROOT_AUTH const result = await guardians.grantKycToken(tokenId, username, owner); res.status(200).json(result); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); -tokenAPI.put('/:tokenId/:username/revokeKyc', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.put('/:tokenId/:username/revokeKyc', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const tokenId = req.params.tokenId; @@ -150,12 +149,12 @@ tokenAPI.put('/:tokenId/:username/revokeKyc', permissionHelper(UserRole.ROOT_AUT const result = await guardians.revokeKycToken(tokenId, username, owner); res.status(200).json(result); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); -tokenAPI.put('/:tokenId/:username/freeze', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.put('/:tokenId/:username/freeze', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const tokenId = req.params.tokenId; @@ -168,12 +167,12 @@ tokenAPI.put('/:tokenId/:username/freeze', permissionHelper(UserRole.ROOT_AUTHOR const result = await guardians.freezeToken(tokenId, username, owner); res.status(200).json(result); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); -tokenAPI.put('/:tokenId/:username/unfreeze', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.put('/:tokenId/:username/unfreeze', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const tokenId = req.params.tokenId; @@ -186,12 +185,12 @@ tokenAPI.put('/:tokenId/:username/unfreeze', permissionHelper(UserRole.ROOT_AUTH const result = await guardians.unfreezeToken(tokenId, username, owner); res.status(200).json(result); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } }); -tokenAPI.get('/:tokenId/:username/info', permissionHelper(UserRole.ROOT_AUTHORITY), async (req: AuthenticatedRequest, res: Response) => { +tokenAPI.get('/:tokenId/:username/info', permissionHelper(UserRole.STANDARD_REGISTRY), async (req: AuthenticatedRequest, res: Response) => { try { const guardians = new Guardians(); const tokenId = req.params.tokenId; @@ -204,7 +203,7 @@ tokenAPI.get('/:tokenId/:username/info', permissionHelper(UserRole.ROOT_AUTHORIT const result = await guardians.getInfoToken(tokenId, username, owner); res.status(200).json(result as ITokenInfo); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: error.code || 500, message: error.message }); } -}); \ No newline at end of file +}); diff --git a/api-gateway/src/api/service/trustchains.ts b/api-gateway/src/api/service/trustchains.ts index ff1a64ee4c..b8dbf2183b 100644 --- a/api-gateway/src/api/service/trustchains.ts +++ b/api-gateway/src/api/service/trustchains.ts @@ -1,10 +1,10 @@ import { Guardians } from '@helpers/guardians'; import { Response, Router } from 'express'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; import { AuthenticatedRequest, IAuthUser } from '@auth/auth.interface'; import { permissionHelper } from '@auth/authorizationHelper'; import { Users } from '@helpers/users'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; /** * Audit route @@ -17,7 +17,7 @@ trustchainsAPI.get('/', permissionHelper(UserRole.AUDITOR), async (req: Authenti const vp = await guardians.getVpDocuments(); res.status(200).json(vp); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); @@ -45,7 +45,7 @@ trustchainsAPI.get('/:hash', permissionHelper(UserRole.AUDITOR), async (req: Aut res.status(200).json({ chain, userMap }); } catch (error) { - new Logger().error(error.message, ['API_GATEWAY']); + new Logger().error(error, ['API_GATEWAY']); res.status(500).json({ code: 500, message: error.message }); } }); diff --git a/api-gateway/src/api/service/websockets.ts b/api-gateway/src/api/service/websockets.ts index 5ae7608e8b..efe9034984 100644 --- a/api-gateway/src/api/service/websockets.ts +++ b/api-gateway/src/api/service/websockets.ts @@ -1,12 +1,11 @@ import WebSocket from 'ws'; import { IncomingMessage, Server } from 'http'; import { Users } from '@helpers/users'; -import { Logger } from 'logger-helper'; -import { MessageAPI } from 'interfaces'; +import { MessageAPI } from '@guardian/interfaces'; import { IPFS } from '@helpers/ipfs'; import { Guardians } from '@helpers/guardians'; -import { MessageBrokerChannel, MessageResponse } from 'common'; -import { IUpdateBlockMessage, IErrorBlockMessage } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, Logger } from '@guardian/common'; +import { IUpdateBlockMessage, IErrorBlockMessage } from '@guardian/interfaces'; export class WebSocketsService { private wss: WebSocket.Server; @@ -41,9 +40,9 @@ export class WebSocketsService { if (token) { ws.user = await new Users().getUserByToken(token); } - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - console.error(e.message); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + console.error(error.message); } }); } @@ -75,7 +74,7 @@ export class WebSocketsService { type: MessageAPI.GET_STATUS, data: { LOGGER_SERVICE: LOGGER_SERVICE, - GUARDIANS_SERVICE: GUARDIANS_SERVICE, + GUARDIAN_SERVICE: GUARDIANS_SERVICE, IPFS_CLIENT: IPFS_CLIENT, AUTH_SERVICE: AUTH_SERVICE } @@ -83,7 +82,7 @@ export class WebSocketsService { )); } catch (error) { - logger.error(error.toString(), ['API_GATEWAY']) + logger.error(error, ['API_GATEWAY']) } break; } @@ -97,8 +96,8 @@ export class WebSocketsService { type: MessageAPI.UPDATE_STATUS, data: msg })); - } catch (e) { - console.error('WS Error', e); + } catch (error) { + console.error('WS Error', error); } }); return new MessageResponse({}) @@ -113,8 +112,8 @@ export class WebSocketsService { type: 'update-event', data: msg.uuid })); - } catch (e) { - console.error('WS Error', e); + } catch (error) { + console.error('WS Error', error); } }); return new MessageResponse({}) @@ -132,9 +131,9 @@ export class WebSocketsService { } })); } - } catch (e) { - new Logger().error(e.message, ['API_GATEWAY']); - console.error('WS Error', e); + } catch (error) { + new Logger().error(error, ['API_GATEWAY']); + console.error('WS Error', error); } }); return new MessageResponse({}) diff --git a/api-gateway/src/app.ts b/api-gateway/src/app.ts index 91d5ec270e..0674332aff 100644 --- a/api-gateway/src/app.ts +++ b/api-gateway/src/app.ts @@ -20,8 +20,7 @@ import { Users } from '@helpers/users'; import { Wallet } from '@helpers/wallet'; import { settingsAPI } from '@api/service/settings'; import { loggerAPI } from '@api/service/logger'; -import { Logger } from 'logger-helper'; -import { MessageBrokerChannel } from 'common'; +import { MessageBrokerChannel, Logger } from '@guardian/common'; const PORT = process.env.PORT || 3002; diff --git a/api-gateway/src/auth/auth.interface.ts b/api-gateway/src/auth/auth.interface.ts index a7f8d17a9b..dc3a49ab3c 100644 --- a/api-gateway/src/auth/auth.interface.ts +++ b/api-gateway/src/auth/auth.interface.ts @@ -1,6 +1,6 @@ import { Request } from "express"; import WebSocket from "ws"; -import { UserRole } from "interfaces"; +import { UserRole } from "@guardian/interfaces"; export interface IAuthUser { username: string; diff --git a/api-gateway/src/auth/authorizationHelper.ts b/api-gateway/src/auth/authorizationHelper.ts index 38b82543d2..060f4e66ae 100644 --- a/api-gateway/src/auth/authorizationHelper.ts +++ b/api-gateway/src/auth/authorizationHelper.ts @@ -17,8 +17,8 @@ export async function authorizationHelper(req: AuthenticatedRequest, res: Respon req.user = await users.getUserByToken(token) as IAuthUser; next(); return; - } catch (e) { - console.error(e.message); + } catch (error) { + console.error(error.message); } } res.sendStatus(401); diff --git a/api-gateway/src/config.ts b/api-gateway/src/config.ts index 33f5035e45..cde1bb7337 100644 --- a/api-gateway/src/config.ts +++ b/api-gateway/src/config.ts @@ -1,4 +1,12 @@ +import moduleAlias from 'module-alias'; import dotenv from 'dotenv'; import 'reflect-metadata' +moduleAlias.addAliases({ + "@api": __dirname + "/api", + "@subscribers": __dirname + "dist/subscribers", + "@helpers": __dirname + "/helpers", + "@auth": __dirname + "/auth" +}); + dotenv.config(); diff --git a/api-gateway/src/helpers/guardians.ts b/api-gateway/src/helpers/guardians.ts index ac8d2cd575..c96c285d3a 100644 --- a/api-gateway/src/helpers/guardians.ts +++ b/api-gateway/src/helpers/guardians.ts @@ -12,7 +12,7 @@ import { IVPDocument, MessageAPI, TopicType -} from 'interfaces'; +} from '@guardian/interfaces'; import { ServiceRequestsBase } from './serviceRequestsBase'; type IFilter = any; @@ -101,7 +101,7 @@ export class Guardians extends ServiceRequestsBase { * @returns {IChainItem[]} - trust chain */ public async getChain(id: string): Promise { - return await this.request(MessageAPI.GET_CHAIN, id); + return await this.request(MessageAPI.GET_CHAIN, { id }); } /** @@ -179,7 +179,7 @@ export class Guardians extends ServiceRequestsBase { return await this.request(MessageAPI.GET_ASSOCIATED_TOKENS, { did }); } - public async createRootAuthorityProfile(profile: IUser): Promise { + public async createStandardRegistryProfile(profile: IUser): Promise { return await this.request(MessageAPI.CREATE_USER_PROFILE, profile); } @@ -201,24 +201,24 @@ export class Guardians extends ServiceRequestsBase { } /** - * Return schemes + * Return schemas * @param {string} did * @param {string} [topicId] * @param {string} [pageIndex] * @param {string} [pageSize] - * - * @returns {ISchema[]} - all schemes + * + * @returns {ISchema[]} - all schemas */ - public async getSchemesByOwner( + public async getSchemasByOwner( did: string, topicId?: string, pageIndex?: any, pageSize?: any ): Promise<{ - schemes: ISchema[], + schemas: ISchema[], count: number }> { - return await this.request(MessageAPI.GET_SCHEMES, { + return await this.request(MessageAPI.GET_SCHEMAS, { owner: did, topicId: topicId, pageIndex: pageIndex, @@ -227,15 +227,26 @@ export class Guardians extends ServiceRequestsBase { } /** - * Return schemes + * Return schemas * * @param {Object} uuid - filters * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ - public async getSchemesByUUID(uuid: string): Promise { - const { schemes, count } = await this.request(MessageAPI.GET_SCHEMES, { uuid: uuid }); - return schemes; + public async getSchemasByUUID(uuid: string): Promise { + const { schemas, count } = await this.request(MessageAPI.GET_SCHEMAS, { uuid: uuid }); + return schemas; + } + + /** + * Return schema by type + * + * @param {string} type - schema type + * + * @returns {ISchema} - schema + */ + public async getSchemaByType(type: string): Promise { + return await this.request(MessageAPI.GET_SCHEMA, { type: type }); } /** @@ -255,11 +266,11 @@ export class Guardians extends ServiceRequestsBase { * @param {string[]} messageIds - schema uuid * @param {string} owner * @param {string} topicId - * + * * @returns {any[]} - Schema Document */ - public async importSchemesByMessages(messageIds: string[], owner: string, topicId: string): Promise { - return await this.request(MessageAPI.IMPORT_SCHEMES_BY_MESSAGES, { messageIds, owner, topicId }); + public async importSchemasByMessages(messageIds: string[], owner: string, topicId: string): Promise { + return await this.request(MessageAPI.IMPORT_SCHEMAS_BY_MESSAGES, { messageIds, owner, topicId }); } /** @@ -268,11 +279,11 @@ export class Guardians extends ServiceRequestsBase { * @param {ISchema[]} files * @param {owner} owner * @param {string} topicId - * + * * @returns {any[]} - Schema Document */ - public async importSchemesByFile(files: ISchema[], owner: string, topicId: string): Promise { - return await this.request(MessageAPI.IMPORT_SCHEMES_BY_FILE, { files, owner, topicId }); + public async importSchemasByFile(files: ISchema[], owner: string, topicId: string): Promise { + return await this.request(MessageAPI.IMPORT_SCHEMAS_BY_FILE, { files, owner, topicId }); } /** @@ -282,7 +293,7 @@ export class Guardians extends ServiceRequestsBase { * * @returns {any} Schema preview */ - public async previewSchemesByMessages(messageIds: string[]): Promise { + public async previewSchemasByMessages(messageIds: string[]): Promise { return await this.request(MessageAPI.PREVIEW_SCHEMA, { messageIds }); } @@ -290,10 +301,10 @@ export class Guardians extends ServiceRequestsBase { * Get schema preview * * @param {ISchema[]} files - * + * * @returns {ISchema[]} Schema preview */ - public async previewSchemesByFile(files: ISchema[]): Promise { + public async previewSchemasByFile(files: ISchema[]): Promise { return files; } @@ -302,7 +313,7 @@ export class Guardians extends ServiceRequestsBase { * * @param {ISchema} item - schema * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ public async createSchema(item: ISchema | any): Promise { return await this.request(MessageAPI.CREATE_SCHEMA, item); @@ -313,7 +324,7 @@ export class Guardians extends ServiceRequestsBase { * * @param {ISchema} item - schema * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ public async updateSchema(item: ISchema | any): Promise { return await this.request(MessageAPI.UPDATE_SCHEMA, item); @@ -324,10 +335,10 @@ export class Guardians extends ServiceRequestsBase { * * @param {string} id - schema id * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ public async deleteSchema(id: string): Promise { - return await this.request(MessageAPI.DELETE_SCHEMA, id); + return await this.request(MessageAPI.DELETE_SCHEMA, { id }); } /** @@ -336,7 +347,7 @@ export class Guardians extends ServiceRequestsBase { * @param {string} id - schema id * @param {string} version - schema version * @param {string} owner - schema message - * + * * @returns {ISchema} - message */ public async publishSchema(id: string, version: string, owner: string): Promise { @@ -344,14 +355,14 @@ export class Guardians extends ServiceRequestsBase { } /** - * Export schemes + * Export schemas * * @param {string[]} ids - schema ids * * @returns {any[]} - Exported schemas */ - public async exportSchemes(ids: string[]): Promise { - return await this.request(MessageAPI.EXPORT_SCHEMES, ids); + public async exportSchemas(ids: string[]): Promise { + return await this.request(MessageAPI.EXPORT_SCHEMAS, ids); } @@ -361,7 +372,7 @@ export class Guardians extends ServiceRequestsBase { /** * Get service status - * + * * @returns {ApplicationStates} Service state */ public async getStatus(): Promise { @@ -377,11 +388,66 @@ export class Guardians extends ServiceRequestsBase { * Get user roles in policy * * @param {string} did - User did - * @param {string} policyId - Policy identifier * * @returns {any[]} - Policies and user roles */ public async getUserRoles(did: string): Promise { return await this.request(MessageAPI.GET_USER_ROLES, { did }); } + + /** + * Create system schema + * + * @param {ISchema} item - schema + * + * @returns {ISchema[]} - all schemas + */ + public async createSystemSchema(item: ISchema | any): Promise { + return await this.request(MessageAPI.CREATE_SYSTEM_SCHEMA, item); + } + + /** + * Return schemas + * @param {string} username + * @param {string} [pageIndex] + * @param {string} [pageSize] + * + * @returns {ISchema[]} - all schemas + */ + public async getSystemSchemas( + username: string, + pageIndex?: any, + pageSize?: any + ): Promise<{ + schemas: ISchema[], + count: number + }> { + return await this.request(MessageAPI.GET_SYSTEM_SCHEMAS, { + owner: username, + pageIndex: pageIndex, + pageSize: pageSize + }); + } + + /** + * Changing the status of a schema on active. + * + * @param {string} id - schema id + * + * @returns {ISchema} - message + */ + public async activeSchema(id: string): Promise { + return await this.request(MessageAPI.ACTIVE_SCHEMA, { id }); + } + + /** + * Return schema by entity + * + * @param {string} entity - schema entity + * + * @returns {ISchema} - schema + */ + public async getSchemaByEntity(entity: string): Promise { + return await this.request(MessageAPI.GET_SYSTEM_SCHEMA, { entity: entity }); + } } diff --git a/api-gateway/src/helpers/ipfs.ts b/api-gateway/src/helpers/ipfs.ts index fc2e24f287..ae7494cbea 100644 --- a/api-gateway/src/helpers/ipfs.ts +++ b/api-gateway/src/helpers/ipfs.ts @@ -1,5 +1,5 @@ -import { MessageBrokerChannel } from "common"; -import { ApplicationStates, CommonSettings, MessageAPI, IGetFileMessage, IFileResponse, IAddFileMessage } from "interfaces"; +import { MessageBrokerChannel } from "@guardian/common"; +import { ApplicationStates, CommonSettings, MessageAPI, IGetFileMessage, IFileResponse, IAddFileMessage } from "@guardian/interfaces"; import { Singleton } from "./decorators/singleton"; /** @@ -92,7 +92,7 @@ export class IPFS { /** * Get service status - * + * * @returns {ApplicationStates} Service state */ public async getStatus(): Promise { diff --git a/api-gateway/src/helpers/policyEngine.ts b/api-gateway/src/helpers/policyEngine.ts index 29926a0496..96977ed6a4 100644 --- a/api-gateway/src/helpers/policyEngine.ts +++ b/api-gateway/src/helpers/policyEngine.ts @@ -1,5 +1,5 @@ import { Singleton } from '@helpers/decorators/singleton'; -import { PolicyEngineEvents } from 'interfaces'; +import { PolicyEngineEvents } from '@guardian/interfaces'; import { ServiceRequestsBase } from '@helpers/serviceRequestsBase'; @Singleton @@ -78,4 +78,7 @@ export class PolicyEngine extends ServiceRequestsBase { return await this.request(PolicyEngineEvents.RECEIVE_EXTERNAL_DATA, data); } + public async blockAbout() { + return await this.request(PolicyEngineEvents.BLOCK_ABOUT, null); + } } diff --git a/api-gateway/src/helpers/serviceRequestsBase.ts b/api-gateway/src/helpers/serviceRequestsBase.ts index 8c7341f917..a81a40bd28 100644 --- a/api-gateway/src/helpers/serviceRequestsBase.ts +++ b/api-gateway/src/helpers/serviceRequestsBase.ts @@ -1,4 +1,4 @@ -import { MessageBrokerChannel, BinaryMessageResponse } from "common"; +import { MessageBrokerChannel, BinaryMessageResponse } from "@guardian/common"; export class ServiceError extends Error { public code: number; @@ -39,17 +39,17 @@ export abstract class ServiceRequestsBase { throw response; } return response.body; - } catch (e) { - const err = new ServiceError(`${this.target} (${entity}) send: ` + e.error); - err.code = e.code; + } catch (error) { + const err = new ServiceError(`${this.target} (${entity}) send: ` + error.error); + err.code = error.code; throw err } } /** * Making the request that expect to recieved BinaryMessageResponse - * @param entity - * @param params - * @returns + * @param entity + * @param params + * @returns */ public async rawRequest(entity: string, params?: any): Promise { try { @@ -59,9 +59,9 @@ export abstract class ServiceRequestsBase { throw { error: 'Server is not available' }; } return Buffer.from(response.body, 'base64'); - } catch (e) { - const err = new ServiceError(`${this.target} (${entity}) send: ` + e.error); - err.code = e.code; + } catch (error) { + const err = new ServiceError(`${this.target} (${entity}) send: ` + error.error); + err.code = error.code; throw err } } diff --git a/api-gateway/src/helpers/users.ts b/api-gateway/src/helpers/users.ts index f7f9083075..a84e913303 100644 --- a/api-gateway/src/helpers/users.ts +++ b/api-gateway/src/helpers/users.ts @@ -1,6 +1,6 @@ import {Singleton} from '@helpers/decorators/singleton'; import {Request} from 'express'; -import { ApplicationStates, AuthEvents, MessageAPI, UserRole } from 'interfaces'; +import { ApplicationStates, AuthEvents, MessageAPI, UserRole } from '@guardian/interfaces'; import { ServiceRequestsBase } from '@helpers/serviceRequestsBase'; import { IAuthUser } from '@auth/auth.interface'; @@ -133,13 +133,13 @@ export class Users extends ServiceRequestsBase { return await this.request(AuthEvents.GET_ALL_USER_ACCOUNTS_DEMO); } - public async getAllRootAuthorityAccounts() { - return await this.request(AuthEvents.GET_ALL_ROOT_AUTHORITY_ACCOUNTS); + public async getAllStandardRegistryAccounts() { + return await this.request(AuthEvents.GET_ALL_STANDARD_REGISTRY_ACCOUNTS); } /** * Get service status - * + * * @returns {ApplicationStates} Service state */ public async getStatus(): Promise { diff --git a/api-gateway/src/helpers/wallet.ts b/api-gateway/src/helpers/wallet.ts index 796e4ace9c..d9ec236591 100644 --- a/api-gateway/src/helpers/wallet.ts +++ b/api-gateway/src/helpers/wallet.ts @@ -1,6 +1,6 @@ import { Singleton } from '@helpers/decorators/singleton'; import { ServiceRequestsBase } from '@helpers/serviceRequestsBase'; -import { WalletEvents, IWalletAccount } from 'interfaces'; +import { WalletEvents, IWalletAccount } from '@guardian/interfaces'; export enum KeyType { ID = 'ID', diff --git a/api-gateway/src/index.ts b/api-gateway/src/index.ts index 3feaec3b2e..11b146661a 100644 --- a/api-gateway/src/index.ts +++ b/api-gateway/src/index.ts @@ -1,3 +1,2 @@ -import 'module-alias/register'; import './config'; import './app'; diff --git a/api-gateway/test_results/ui-service.xml b/api-gateway/test_results/ui-service.xml deleted file mode 100644 index 7bafe7225d..0000000000 --- a/api-gateway/test_results/ui-service.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/api-tests/helpers.js b/api-tests/helpers.js index 3d99bd5ff8..ae085658cb 100644 --- a/api-tests/helpers.js +++ b/api-tests/helpers.js @@ -10,7 +10,7 @@ async function GenerateTokens() { result = await axios.post( GetURL('accounts', 'login'), JSON.stringify({ - username: 'RootAuthority', + username: 'StandardRegistry', password: 'test' }), { diff --git a/api-tests/test-suits/accounts.js b/api-tests/test-suits/accounts.js index 4d3dc41063..928181f1f6 100644 --- a/api-tests/test-suits/accounts.js +++ b/api-tests/test-suits/accounts.js @@ -8,7 +8,7 @@ function Accounts() { result = await axios.post( GetURL('accounts', 'login'), JSON.stringify({ - username: 'RootAuthority', + username: 'StandardRegistry', password: 'test' }), { @@ -21,8 +21,8 @@ function Accounts() { delete result.data.accessToken; delete result.data.did; assert.deepEqual(result.data, { - username: 'RootAuthority', - role: 'ROOT_AUTHORITY' + username: 'StandardRegistry', + role: 'STANDARD_REGISTRY' }) result = await axios.post( GetURL('accounts', 'login'), @@ -70,7 +70,7 @@ function Accounts() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -95,13 +95,13 @@ function Accounts() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); delete result.data.did; delete result.data.iat; - assert.deepEqual(result.data, { username: 'RootAuthority', role: 'ROOT_AUTHORITY' }) + assert.deepEqual(result.data, { username: 'StandardRegistry', role: 'STANDARD_REGISTRY' }) result = await axios.get( GetURL('accounts', 'session'), diff --git a/api-tests/test-suits/ipfs.js b/api-tests/test-suits/ipfs.js index c35be17306..de053ba434 100644 --- a/api-tests/test-suits/ipfs.js +++ b/api-tests/test-suits/ipfs.js @@ -11,7 +11,7 @@ function Ipfs() { { headers: { 'Content-Type': 'binary/octet-stream', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); diff --git a/api-tests/test-suits/policies.js b/api-tests/test-suits/policies.js index cbde65bb44..eabba30e34 100644 --- a/api-tests/test-suits/policies.js +++ b/api-tests/test-suits/policies.js @@ -15,7 +15,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -26,10 +26,10 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } - )).data.find(s => s.entity === 'ROOT_AUTHORITY'); + )).data.find(s => s.entity === 'STANDARD_REGISTRY'); result = await axios.post( GetURL('policies'), @@ -132,7 +132,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -150,7 +150,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -163,7 +163,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -180,7 +180,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -200,7 +200,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -215,7 +215,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -230,7 +230,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -273,7 +273,7 @@ function Policies() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, }, responseType: 'arraybuffer' } @@ -290,7 +290,7 @@ function Policies() { { headers: { 'Content-Type': 'binary/octet-stream', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -309,7 +309,7 @@ function Policies() { { headers: { 'Content-Type': 'binary/octet-stream', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); diff --git a/api-tests/test-suits/profiles.js b/api-tests/test-suits/profiles.js index fbebb0dc80..854c7a381e 100644 --- a/api-tests/test-suits/profiles.js +++ b/api-tests/test-suits/profiles.js @@ -1,9 +1,9 @@ const axios = require("axios"); -const {GetURL, GetToken} = require("../helpers"); +const { GetURL, GetToken } = require("../helpers"); const assert = require("assert"); function Profiles() { - it('/profile/balance', async function() { + it('/profile/balance', async function () { this.timeout(60000); const result = await axios.get( GetURL('profile', 'balance'), @@ -16,7 +16,7 @@ function Profiles() { ); }) - it('/profile', async function() { + it('/profile', async function () { this.timeout(120000); let result; @@ -43,11 +43,22 @@ function Profiles() { result = await axios.put( GetURL('profile'), - {"hederaAccountId": result.data.id, "hederaAccountKey":result.data.key, "vcDocument":{"name":"1234","type":"RootAuthority&1.0.0","@context":["https://ipfs.io/ipfs/bafkreibzihfnj67xgs74xfv2ap7rallevyce6uj5sg73j3p2cxlm2qx6ru"]},"addressBook":{"appnetName":"Test Identity SDK appnet","didServerUrl":"http://localhost:3000/api/v1","didTopicMemo":"Test Identity SDK appnet DID topic","vcTopicMemo":"Test Identity SDK appnet VC topic"}}, + { + "hederaAccountId": result.data.id, + "hederaAccountKey": result.data.key, + "vcDocument": { + "name": "1234" + }, + "addressBook": { + "appnetName": "Test Identity SDK appnet", + "didServerUrl": "http://localhost:3000/api/v1", + "didTopicMemo": "Test Identity SDK appnet DID topic", "vcTopicMemo": "Test Identity SDK appnet VC topic" + } + }, { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -65,7 +76,7 @@ function Profiles() { result = await axios.put( GetURL('profile'), - {"hederaAccountId": result.data.id, "hederaAccountKey":result.data.key}, + { "hederaAccountId": result.data.id, "hederaAccountKey": result.data.key }, { headers: { 'Content-Type': 'application/json', diff --git a/api-tests/test-suits/schemas.js b/api-tests/test-suits/schemas.js index 9a6d6adc8d..91c83ee4b1 100644 --- a/api-tests/test-suits/schemas.js +++ b/api-tests/test-suits/schemas.js @@ -14,7 +14,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -28,7 +28,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -92,7 +92,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -109,7 +109,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -123,7 +123,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -146,7 +146,7 @@ function Schemas() { GetURL('schemas', schemaId, 'export', 'file'), { headers: { - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, }, responseType: 'arraybuffer' } @@ -163,7 +163,7 @@ function Schemas() { { headers: { 'Content-Type': 'binary/octet-stream', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -198,7 +198,7 @@ function Schemas() { { headers: { 'Content-Type': 'binary/octet-stream', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -213,7 +213,7 @@ function Schemas() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); diff --git a/api-tests/test-suits/tokens.js b/api-tests/test-suits/tokens.js index 5815505069..982fdb05de 100644 --- a/api-tests/test-suits/tokens.js +++ b/api-tests/test-suits/tokens.js @@ -15,7 +15,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -26,7 +26,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -42,7 +42,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -85,7 +85,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -113,7 +113,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -141,7 +141,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); @@ -169,7 +169,7 @@ function Tokens() { { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${GetToken('RootAuthority')}`, + 'Authorization': `Bearer ${GetToken('StandardRegistry')}`, } } ); diff --git a/auth-service/Dockerfile b/auth-service/Dockerfile index d0ee6f8918..cb6f963447 100644 --- a/auth-service/Dockerfile +++ b/auth-service/Dockerfile @@ -5,28 +5,23 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build - -WORKDIR /usr/logger-helper -COPY ./logger-helper/package*.json ./ -COPY ./logger-helper/tsconfig.json ./ +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz RUN npm install -ADD ./logger-helper/src ./src/. -RUN npm run build +RUN npm pack WORKDIR /usr/auth-service COPY ./auth-service/package*.json ./ COPY ./auth-service/tsconfig.json ./ COPY ./auth-service/.env.docker ./.env +RUN npm install --force /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install --force ADD ./auth-service/src ./src/. RUN npm run build diff --git a/auth-service/nodemon.json b/auth-service/nodemon.json index 8b879fd87b..660aa69975 100644 --- a/auth-service/nodemon.json +++ b/auth-service/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["./dist", "../interfaces/dist", "../common/dist", "../logger-helper/dist"], + "watch": ["./dist", "../interfaces/dist", "../common/dist"], "delay": 2500, "ext": "ts, js", "exec": "node dist/index.js" diff --git a/auth-service/package-lock.json b/auth-service/package-lock.json index 417d7cbd57..8af6cd2dc4 100644 --- a/auth-service/package-lock.json +++ b/auth-service/package-lock.json @@ -1,19 +1,18 @@ { "name": "auth-service", - "version": "2.1.0", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "auth-service", - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "common": "file:../common", "dotenv": "^16.0.0", "interfaces": "file:../interfaces", "jsonwebtoken": "^8.5.1", - "logger-helper": "file:../logger-helper", "module-alias": "^2.2.2", "mongodb": "^4.2.1", "reflect-metadata": "^0.1.13", @@ -32,7 +31,7 @@ } }, "../common": { - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "interfaces": "file:../interfaces", @@ -47,7 +46,7 @@ } }, "../interfaces": { - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "reflect-metadata": "^0.1.13" @@ -59,20 +58,6 @@ "typescript": "^4.5.5" } }, - "../logger-helper": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "common": "file:../common", - "interfaces": "file:../interfaces" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "node_modules/@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", @@ -1572,10 +1557,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/logger-helper": { - "resolved": "../logger-helper", - "link": true - }, "node_modules/loupe": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", @@ -4300,17 +4281,6 @@ "is-unicode-supported": "^0.1.0" } }, - "logger-helper": { - "version": "file:../logger-helper", - "requires": { - "@types/node": "^17.0.13", - "common": "file:../common", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "loupe": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", diff --git a/auth-service/package.json b/auth-service/package.json index c68280df44..c92efed39d 100644 --- a/auth-service/package.json +++ b/auth-service/package.json @@ -1,4 +1,5 @@ { + "packageManager": "yarn@3.2.1", "_moduleAliases": { "@api": "dist/api", "@entity": "dist/entity", @@ -6,15 +7,14 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { + "@guardian/common": "^2.2.0-prerelease", + "@guardian/interfaces": "^2.2.0-prerelease", "dotenv": "^16.0.0", - "interfaces": "file:../interfaces", "jsonwebtoken": "^8.5.1", "module-alias": "^2.2.2", - "mongodb": "^4.2.1", + "mongodb": "4.2.1", "reflect-metadata": "^0.1.13", - "typeorm": "^0.2.41", - "logger-helper": "file:../logger-helper", - "common":"file:../common" + "typeorm": "^0.2.41" }, "description": "", "devDependencies": { @@ -44,5 +44,6 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ui-service.xml" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/auth-service/src/api/accountService.ts b/auth-service/src/api/accountService.ts index c6c31478b3..4b720bf111 100644 --- a/auth-service/src/api/accountService.ts +++ b/auth-service/src/api/accountService.ts @@ -4,8 +4,7 @@ import { getMongoRepository } from 'typeorm'; import { User } from '@entity/user'; import * as util from 'util'; import crypto from 'crypto'; -import { Logger } from 'logger-helper'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; import { AuthEvents, UserRole, IGetUserByTokenMessage, @@ -13,7 +12,6 @@ import { IGenerateTokenMessage, IGenerateTokenResponse, IGetAllUserResponse, - IRootAuthorityUserResponse, IGetDemoUserResponse, IGetUserMessage, IUpdateUserMessage, @@ -21,8 +19,9 @@ import { IGetUserByIdMessage, IGetUsersByIdMessage, IGetUsersByIRoleMessage, - IUser -} from 'interfaces'; + IUser, + IStandardRegistryUserResponse +} from '@guardian/interfaces'; export class AccountService { constructor( @@ -39,8 +38,8 @@ export class AccountService { const decryptedToken = await util.promisify(verify)(token, process.env.ACCESS_TOKEN_SECRET, {}); const user = await getMongoRepository(User).findOne({ username: decryptedToken.username }); return new MessageResponse(user); - } catch (e) { - return new MessageError(e.message); + } catch (error) { + return new MessageError(error); } }); @@ -65,9 +64,9 @@ export class AccountService { }); return new MessageResponse(await getMongoRepository(User).save(user)); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message) + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error) } }); @@ -90,12 +89,12 @@ export class AccountService { accessToken: accessToken }) } else { - return new MessageError('Unauthorized request'); + return new MessageError('Unauthorized request', 401); } - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -107,22 +106,22 @@ export class AccountService { did: e.did })); return new MessageResponse(userAccounts); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); - this.channel.response(AuthEvents.GET_ALL_ROOT_AUTHORITY_ACCOUNTS, async (_) => { + this.channel.response(AuthEvents.GET_ALL_STANDARD_REGISTRY_ACCOUNTS, async (_) => { try { - const userAccounts = (await getMongoRepository(User).find({ role: UserRole.ROOT_AUTHORITY })).map((e) => ({ + const userAccounts = (await getMongoRepository(User).find({ role: UserRole.STANDARD_REGISTRY })).map((e) => ({ username: e.username, did: e.did })); return new MessageResponse(userAccounts); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -136,9 +135,9 @@ export class AccountService { role: e.role })); return new MessageResponse(userAccounts); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -147,9 +146,9 @@ export class AccountService { try { return new MessageResponse(await getMongoRepository(User).findOne({ username })); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -158,9 +157,9 @@ export class AccountService { try { return new MessageResponse(await getMongoRepository(User).findOne({ did })); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -173,9 +172,9 @@ export class AccountService { did: { $in: dids } } })); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -184,9 +183,9 @@ export class AccountService { try { return new MessageResponse(await getMongoRepository(User).find({ role })); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -195,9 +194,9 @@ export class AccountService { try { return new MessageResponse(await getMongoRepository(User).update({ username }, item)); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); @@ -206,9 +205,9 @@ export class AccountService { try { return new MessageResponse(await getMongoRepository(User).save(user)); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message); + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error); } }); } diff --git a/auth-service/src/api/auth.interface.ts b/auth-service/src/api/auth.interface.ts index 8934410c55..a86788458a 100644 --- a/auth-service/src/api/auth.interface.ts +++ b/auth-service/src/api/auth.interface.ts @@ -1,4 +1,4 @@ -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; export interface IAuthUser { username: string; diff --git a/auth-service/src/api/walletService.ts b/auth-service/src/api/walletService.ts index 87e6eb7bb0..2da0c6fb92 100644 --- a/auth-service/src/api/walletService.ts +++ b/auth-service/src/api/walletService.ts @@ -1,8 +1,7 @@ import { getMongoRepository } from 'typeorm'; import { WalletAccount } from '@entity/wallet-account'; -import { Logger } from 'logger-helper'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { WalletEvents, IGetKeyMessage, ISetKeyMessage } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { WalletEvents, IGetKeyMessage, ISetKeyMessage } from '@guardian/interfaces'; export class WalletService { constructor( @@ -17,9 +16,9 @@ export class WalletService { try { return new MessageResponse(await getMongoRepository(WalletAccount).findOne({ token, type: type + '|' + key })); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message) + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error) } }); @@ -33,9 +32,9 @@ export class WalletService { key: value }); return new MessageResponse(await getMongoRepository(WalletAccount).save(walletAcc)); - } catch (e) { - new Logger().error(e.toString(), ['AUTH_SERVICE']); - return new MessageError(e.message) + } catch (error) { + new Logger().error(error, ['AUTH_SERVICE']); + return new MessageError(error) } }); } diff --git a/auth-service/src/app.ts b/auth-service/src/app.ts index 5f9f8047cf..595d7ca94d 100644 --- a/auth-service/src/app.ts +++ b/auth-service/src/app.ts @@ -2,9 +2,8 @@ import { createConnection } from 'typeorm'; import { fixtures } from '@helpers/fixtures'; import { AccountService } from '@api/accountService'; import { WalletService } from '@api/walletService'; -import { Logger } from 'logger-helper'; -import { ApplicationState, MessageBrokerChannel } from 'common'; -import { ApplicationStates } from 'interfaces'; +import { ApplicationState, MessageBrokerChannel, Logger } from '@guardian/common'; +import { ApplicationStates } from '@guardian/interfaces'; Promise.all([ createConnection({ diff --git a/auth-service/src/config.ts b/auth-service/src/config.ts index d2747437e8..1bb4c49be2 100644 --- a/auth-service/src/config.ts +++ b/auth-service/src/config.ts @@ -1,3 +1,10 @@ +import moduleAlias from 'module-alias'; import dotenv from 'dotenv'; +moduleAlias.addAliases({ + "@api": __dirname + "/api", + "@entity": __dirname + "/entity", + "@helpers": __dirname + "/helpers" +}); + dotenv.config(); diff --git a/auth-service/src/entity/user.ts b/auth-service/src/entity/user.ts index 72ecbed048..ab0754787b 100644 --- a/auth-service/src/entity/user.ts +++ b/auth-service/src/entity/user.ts @@ -1,5 +1,5 @@ import {BeforeInsert, Column, Entity, ObjectIdColumn} from 'typeorm'; -import {IUser, UserRole} from 'interfaces'; +import {IUser, UserRole} from '@guardian/interfaces'; /** * User collection diff --git a/auth-service/src/entity/wallet-account.ts b/auth-service/src/entity/wallet-account.ts index c844cb3d17..6da14943f1 100644 --- a/auth-service/src/entity/wallet-account.ts +++ b/auth-service/src/entity/wallet-account.ts @@ -1,5 +1,5 @@ import {Column, Entity, ObjectIdColumn} from 'typeorm'; -import {IWalletAccount} from 'interfaces'; +import {IWalletAccount} from '@guardian/interfaces'; /** * Wallet collection diff --git a/auth-service/src/helpers/fixtures.ts b/auth-service/src/helpers/fixtures.ts index cb713eea24..f7c05f89ef 100644 --- a/auth-service/src/helpers/fixtures.ts +++ b/auth-service/src/helpers/fixtures.ts @@ -1,17 +1,17 @@ import crypto from "crypto"; import {User} from '@entity/user'; import {getMongoRepository} from 'typeorm'; -import {UserRole} from "interfaces"; +import {UserRole} from "@guardian/interfaces"; export const fixtures = async function (): Promise { const usersRepository = getMongoRepository(User); // Fixture user if (await usersRepository.count() === 0) { let user = usersRepository.create({ - username: 'RootAuthority', + username: 'StandardRegistry', password: crypto.createHash('sha256').update('test').digest('hex'), walletToken: crypto.createHash('sha1').update(Math.random().toString()).digest('hex'), - role: UserRole.ROOT_AUTHORITY + role: UserRole.STANDARD_REGISTRY }); let result = await usersRepository.save(user); console.log(result); @@ -74,9 +74,9 @@ export const fixtures = async function (): Promise { username: 'Verra', password: crypto.createHash('sha256').update('test').digest('hex'), walletToken: crypto.createHash('sha1').update(Math.random().toString()).digest('hex'), - role: UserRole.ROOT_AUTHORITY + role: UserRole.STANDARD_REGISTRY }); result = await usersRepository.save(user); console.log(result); } -} \ No newline at end of file +} diff --git a/auth-service/src/index.ts b/auth-service/src/index.ts index 3feaec3b2e..11b146661a 100644 --- a/auth-service/src/index.ts +++ b/auth-service/src/index.ts @@ -1,3 +1,2 @@ -import 'module-alias/register'; import './config'; import './app'; diff --git a/common/package-lock.json b/common/package-lock.json index f9e9d8694c..aa2424e9ef 100644 --- a/common/package-lock.json +++ b/common/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "interfaces": "file:../interfaces", "nats": "^2.6.1", - "reflect-metadata": "^0.1.13" + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" }, "devDependencies": { "@types/node": "^17.0.13", @@ -1564,6 +1565,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } } }, "dependencies": { @@ -2725,6 +2735,11 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "peer": true + }, + "zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=" } } } diff --git a/common/package.json b/common/package.json index 78eb6f71a7..82fcc0bc0b 100644 --- a/common/package.json +++ b/common/package.json @@ -1,11 +1,12 @@ { "author": "Envision Blockchain Solutions ", - "description": "Common package share cross all services", "dependencies": { + "@guardian/interfaces": "^2.2.0-prerelease", "nats": "^2.6.1", "reflect-metadata": "^0.1.13", - "interfaces": "file:../interfaces" + "zlib": "^1.0.5" }, + "description": "Common package share cross all services", "devDependencies": { "@types/node": "^17.0.13", "mocha-junit-reporter": "^2.0.2", @@ -18,12 +19,14 @@ "license": "Apache-2.0", "main": "dist/index.js", "module": "dist/index.js", - "name": "common", + "name": "@guardian/common", "scripts": { "build": "tsc", "dev": "tsc -w", "lint": "tslint --project .", + "prepare": "npm run build", "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/common/src/helpers/application-state.ts b/common/src/helpers/application-state.ts index d4125da213..16dc6dfc6e 100644 --- a/common/src/helpers/application-state.ts +++ b/common/src/helpers/application-state.ts @@ -1,6 +1,6 @@ import { Singleton } from "../decorators/singleton"; import { MessageBrokerChannel } from "../mq"; -import { ApplicationStates, MessageAPI } from "interfaces"; +import { ApplicationStates, MessageAPI } from "@guardian/interfaces"; import { MessageResponse, MessageError } from "../models/message-response"; @Singleton @@ -13,14 +13,14 @@ export class ApplicationState { * Register channel * @param channel: MessageBrokerChannel */ - public setChannel(channel: MessageBrokerChannel): any { + public async setChannel(channel: MessageBrokerChannel): Promise { this.channel = channel; - this.channel.response(MessageAPI.GET_STATUS, async () => { + await this.channel.response(MessageAPI.GET_STATUS, async () => { try { return new MessageResponse(this.state); } - catch (e) { - return new MessageError(e); + catch (error) { + return new MessageError(error); } }); } @@ -40,12 +40,12 @@ export class ApplicationState { return this.state; } - public updateState(state: ApplicationStates): void { + public async updateState(state: ApplicationStates): Promise { this.state = state; if (this.serviceName) { const res = {}; res[this.serviceName] = state; - this.channel.request([this.channel.channelName, MessageAPI.UPDATE_STATUS].join('.'), res); + this.channel.request(['api-gateway', MessageAPI.UPDATE_STATUS].join('.'), res); } } } diff --git a/common/src/helpers/index.ts b/common/src/helpers/index.ts new file mode 100644 index 0000000000..0ffcf902ec --- /dev/null +++ b/common/src/helpers/index.ts @@ -0,0 +1,2 @@ +export * from './application-state'; +export * from './logger'; \ No newline at end of file diff --git a/logger-helper/src/helpers/logger.ts b/common/src/helpers/logger.ts similarity index 70% rename from logger-helper/src/helpers/logger.ts rename to common/src/helpers/logger.ts index 66bab9508f..c78dff11ec 100644 --- a/logger-helper/src/helpers/logger.ts +++ b/common/src/helpers/logger.ts @@ -1,5 +1,7 @@ -import { ApplicationStates, ILog, IPageParameters, LogType, MessageAPI } from 'interfaces'; -import { MessageBrokerChannel, Singleton, IMessageResponse } from 'common'; +import { ApplicationStates, ILog, IPageParameters, LogType, MessageAPI } from '@guardian/interfaces'; +import { Singleton } from '../decorators/singleton'; +import { IMessageResponse } from '../models/message-response'; +import { MessageBrokerChannel } from '../mq'; @Singleton export class Logger { @@ -36,30 +38,32 @@ export class Logger { throw response.error; } return response.body; - } catch (e) { - console.error(e); + } catch (error) { + console.error(error); } } - private async write(type: LogType, message: string, attr?: string[]) { + private async write(type: LogType, message: string, attr?: string[], lvl: number = 1) { const logMessage: ILog = { message: message, type: type, - attributes: attr + attributes: attr, + level: lvl } await this.request(MessageAPI.WRITE_LOG, logMessage); } - public async info(message: string, attr?: string[]): Promise { - await this.write(LogType.INFO, message, attr); + public async info(message: string, attr?: string[], lvl: number = 1): Promise { + await this.write(LogType.INFO, message, attr, lvl); } - public async warn(message: string, attr?: string[]): Promise { - await this.write(LogType.WARN, message, attr); + public async warn(message: string, attr?: string[], lvl: number = 1): Promise { + await this.write(LogType.WARN, message, attr, lvl); } - public async error(message: string, attr?: string[]): Promise { - await this.write(LogType.ERROR, message, attr); + public async error(error: string | Error, attr?: string[], lvl: number = 1): Promise { + const message = typeof error === 'string' ? error : error.stack; + await this.write(LogType.ERROR, message, attr, lvl); } public async getLogs(filters?: any, pageParameters?: IPageParameters, sortDirection?: string): Promise { @@ -74,7 +78,7 @@ export class Logger { /** * Get service status - * + * * @returns {ApplicationStates} Service state */ public async getStatus(): Promise { @@ -90,4 +94,4 @@ export class Logger { return ApplicationStates.STOPPED; } } -} \ No newline at end of file +} diff --git a/common/src/helpers/uuid.ts b/common/src/helpers/uuid.ts new file mode 100644 index 0000000000..1e28bc64c1 --- /dev/null +++ b/common/src/helpers/uuid.ts @@ -0,0 +1,9 @@ +/** + * uuid generator + */ +export function GenerateUUIDv4() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} diff --git a/common/src/index.ts b/common/src/index.ts index c52dc904b6..8bdcb8bbb1 100644 --- a/common/src/index.ts +++ b/common/src/index.ts @@ -1,5 +1,5 @@ import 'reflect-metadata'; export * from './models/message-response'; export * from './decorators/singleton'; -export * from './helpers/application-state'; +export * from './helpers'; export * from './mq'; diff --git a/common/src/models/message-response.ts b/common/src/models/message-response.ts index b8c2ca6c07..add3d00544 100644 --- a/common/src/models/message-response.ts +++ b/common/src/models/message-response.ts @@ -35,13 +35,13 @@ export class MessageError implements IMessageResponse, Error { public name: string; public message: string; - constructor(error: string, code: number = 500) { + constructor(error: string | Error, code: number = 500) { this.code = code; this.body = null; - this.error = error; + this.error = typeof error === 'string' ? error : error.message; - this.name = error; - this.message = error; + this.name = this.error; + this.message = this.error; } } diff --git a/common/src/mq/external-channel.ts b/common/src/mq/external-channel.ts new file mode 100644 index 0000000000..b6ed7078ef --- /dev/null +++ b/common/src/mq/external-channel.ts @@ -0,0 +1,21 @@ +import { MessageBrokerChannel } from "./message-broker-channel"; +import { Singleton } from "../decorators/singleton"; + +@Singleton +export class ExternalEventChannel { + constructor() { } + + private channel: MessageBrokerChannel; + + /** + * Register channel + * @param channel + */ + public setChannel(channel: MessageBrokerChannel): any { + this.channel = channel; + } + + public publishMessage(type: string, data: any) { + this.channel.publish(type, data, true) + } +} \ No newline at end of file diff --git a/common/src/mq/index.ts b/common/src/mq/index.ts index 0eb22e993d..abe2f9a3ee 100644 --- a/common/src/mq/index.ts +++ b/common/src/mq/index.ts @@ -1,92 +1,2 @@ -import assert from 'assert'; -import { JSONCodec, Subscription, NatsConnection, StringCodec, connect } from 'nats'; -import { IMessageResponse, MessageError } from '../models/message-response'; - -const MQ_TIMEOUT = +process.env.MQ_TIMEOUT || 300000; - -export class MessageBrokerChannel { - constructor(private channel: NatsConnection, public channelName: string) { } - - private getTarget(eventType: string) { - if (eventType.includes(this.channelName) || eventType.includes('*')) { - return eventType; - } - return `${this.channelName}.${eventType}`; - } - /** - * Subscribe to the MQ event - * @param eventType : target event type @example ipfs-clients.get-file - * @param handleFunc: the call back function to process the request - */ - public async response(eventType: string, handleFunc: (data: TData) => Promise>) { - const target = this.getTarget(eventType); - console.log('MQ subscribed: %s', target); - const sub = this.channel.subscribe(target); - const sc = JSONCodec<{ payload: TData }>(); - const responseSc = JSONCodec>(); - (async (sub: Subscription) => { - for await (const m of sub) { - console.log('MQ response start: %s', m.subject); - const data = sc.decode(m.data); - let responseMessage: IMessageResponse; - try { - responseMessage = await handleFunc(data.payload || data as any); - } catch (err) { - responseMessage = new MessageError(err.message, err.code); - } - m.respond(responseSc.encode(responseMessage)); - console.log('MQ response end: ', m.subject); - } - })(sub); - } - /** - * sending the request to the MQ and waiting for response - * @param eventType target subscription , it should follow the pattern: target subscription . event type (ex : ipfs-clients.get-file) - * @param payload input data for event - * @param timeout timeout in milliseconds, this will overwrite default env var MQ_TIMEOUT varlue @default 30000 - * @returns MessageResponse or Error response - */ - public async request(eventType: string, payload: T, timeout?: number): Promise> { - try { - const target = eventType; - console.log('MQ request: %s', target); - - const sc = payload && typeof payload === 'string' ? StringCodec() : JSONCodec(); - const msg = await this.channel.request(eventType, sc.encode((payload as any) || {}), { - timeout: timeout || MQ_TIMEOUT, - }); - - const responseSc = JSONCodec>(); - return responseSc.decode(msg.data); - } catch (e) { - // Nats no subscribe error - if (e.code === '503') { - console.warn('No listener for message event type = %s', eventType); - return; - } - console.error(e.message, e.stack, e); - throw e; - } - } - - public publish(eventType: string, data: string) { - const target = this.getTarget(eventType); - console.log('MQ publish: %s', target); - const sc = StringCodec(); - this.channel.publish(target, sc.encode(data)); - } - /** - * Create the Nats MQ connection - * @param connectionName - * @returns - */ - public static async connect(connectionName: string) { - assert(process.env.MQ_ADDRESS, 'Missing MQ_ADDRESS environment variable'); - return connect({ - servers: [process.env.MQ_ADDRESS], - name: connectionName, - reconnectDelayHandler: () => 2000, - maxReconnectAttempts: -1 // reconnect forever - }); - }; -} \ No newline at end of file +export * from './message-broker-channel' +export * from './external-channel' diff --git a/common/src/mq/message-broker-channel.ts b/common/src/mq/message-broker-channel.ts new file mode 100644 index 0000000000..ca3ad691ac --- /dev/null +++ b/common/src/mq/message-broker-channel.ts @@ -0,0 +1,118 @@ +import assert from 'assert'; +import { Subscription, NatsConnection, StringCodec, connect, JSONCodec } from 'nats'; +import { IMessageResponse, MessageError } from '../models/message-response'; +import * as zlib from 'zlib'; + +const MQ_TIMEOUT = +process.env.MQ_TIMEOUT || 300000; + +export class MessageBrokerChannel { + constructor(private channel: NatsConnection, public channelName: string) { } + + private getTarget(eventType: string) { + if (eventType.includes(this.channelName) || eventType.includes('*')) { + return eventType; + } + return `${this.channelName}.${eventType}`; + } + /** + * Subscribe to the MQ event + * @param eventType : target event type @example ipfs-clients.get-file + * @param handleFunc: the call back function to process the request + */ + public async response(eventType: string, handleFunc: (data: TData) => Promise>) { + const target = this.getTarget(eventType); + console.log('MQ subscribed: %s', target); + const sub = this.channel.subscribe(target); + const fn = async (sub: Subscription) => { + for await (const m of sub) { + let responseMessage: IMessageResponse; + try { + responseMessage = await handleFunc(JSON.parse(StringCodec().decode(m.data))); + } catch (error) { + responseMessage = new MessageError(error, error.code); + } + const archResponse = zlib.deflateSync(JSON.stringify(responseMessage)).toString('binary'); + m.respond(StringCodec().encode(archResponse)); + } + }; + try { + await fn(sub); + } catch (error) { + console.error(error.message); + } + } + /** + * sending the request to the MQ and waiting for response + * @param eventType target subscription , it should follow the pattern: target subscription . event type (ex : ipfs-clients.get-file) + * @param payload input data for event + * @param timeout timeout in milliseconds, this will overwrite default env var MQ_TIMEOUT varlue @default 30000 + * @returns MessageResponse or Error response + */ + public async request(eventType: string, payload: T, timeout?: number): Promise> { + try { + let stringPayload: string; + switch (typeof payload) { + case 'string': + stringPayload = payload; + break; + + case 'object': + stringPayload = JSON.stringify(payload); + break; + + default: + stringPayload = '{}'; + } + + const msg = await this.channel.request(eventType, StringCodec().encode(stringPayload), { + timeout: timeout || MQ_TIMEOUT, + }); + + const unpackedString = zlib.inflateSync(new Buffer(StringCodec().decode(msg.data), 'binary')).toString(); + return JSON.parse(unpackedString); + + } catch (error) { + // Nats no subscribe error + if (error.code === '503') { + console.warn('No listener for message event type = %s', eventType); + return; + } + console.error(error.message, error.stack, error); + throw error; + } + } + + /** + * Publish message to all Nats client subscribers + * @param eventType + * @param data + * @param allowError + */ + public publish(eventType: string, data: T, allowError = true) { + try { + console.log('MQ publish: %s', eventType); + const sc = JSONCodec(); + this.channel.publish(eventType, sc.encode(data)); + } catch (e) { + + console.error(e.message, e.stack, e); + if (!allowError) { + throw e; + } + } + } + /** + * Create the Nats MQ connection + * @param connectionName + * @returns + */ + public static async connect(connectionName: string) { + assert(process.env.MQ_ADDRESS, 'Missing MQ_ADDRESS environment variable'); + return connect({ + servers: [process.env.MQ_ADDRESS], + name: connectionName, + reconnectDelayHandler: () => 2000, + maxReconnectAttempts: -1 // reconnect forever + }); + }; +} diff --git a/common/src/mq/sample-external-client.ts b/common/src/mq/sample-external-client.ts new file mode 100644 index 0000000000..909403ef9f --- /dev/null +++ b/common/src/mq/sample-external-client.ts @@ -0,0 +1,29 @@ +import { ExternalMessageEvents } from "@guardian/interfaces"; +import { connect, JSONCodec } from "nats"; +/** + * The sample client implementation how to handle guardian events outside guardian code base + * ts-node ./src/sample-external-client.ts + */ +(async () => { + + const nc = await connect({ servers: "localhost:4222" }); + + const c = JSONCodec(); + + const subscribeEvent = (type: string, cb: (data: any) => void) => { + const sub = nc.subscribe(type); + console.log("√ subscribe to nat event: %s", type); + (async () => { + for await (const m of sub) { + const payload = c.decode(m.data) + console.log(`[${sub.getProcessed()} - ${m.subject}]`, payload); + cb(payload) + } + console.log("subscription closed"); + })(); + }; + subscribeEvent(ExternalMessageEvents.IPFS_ADDED_FILE, console.log); + subscribeEvent(ExternalMessageEvents.TOKEN_MINTED, console.log); + subscribeEvent(ExternalMessageEvents.ERROR_LOG, console.log); + subscribeEvent(ExternalMessageEvents.BLOCK_RUN_EVENTS, console.log); +})() diff --git a/dev.js b/dev.js index c0aecd596f..6a7535eeb1 100644 --- a/dev.js +++ b/dev.js @@ -6,7 +6,7 @@ const fs = require('fs'); const buildAndWatch = async (folder, skipWatch = false) => { const log = (message) => console.log(`${folder}: ${message}`); - await execSync(`npm install --prefix ${folder}`, { stdio: 'inherit', shell: true }); + await execSync(`yarn --cwd ${folder}`, { stdio: 'inherit', shell: true }); if (skipWatch) { log('skip watch project') @@ -14,12 +14,12 @@ const fs = require('fs'); } if (!fs.existsSync(folder + '/dist/')) { - await execSync(`npm run build --prefix ${folder}`, { stdio: 'inherit', shell: true }); + await execSync(`yarn build --cwd ${folder}`, { stdio: 'inherit', shell: true }); } await new Promise((resolve) => { log('Watching changes...'); - const child = spaw('npm', ['run', 'dev', '--prefix', folder], { shell: true }); + const child = spaw('yarn', ['dev', '--cwd', folder], { shell: true }); child.stdout.on('data', log); child.stderr.on('data', log); @@ -34,7 +34,6 @@ const fs = require('fs'); await Promise.all([ "interfaces", "common", - "logger-helper", "logger-service", "frontend", "auth-service", diff --git a/docs/.gitbook/assets/API_6.png b/docs/.gitbook/assets/API_6.png index a97f6a3e37..b34d6c46e3 100644 Binary files a/docs/.gitbook/assets/API_6.png and b/docs/.gitbook/assets/API_6.png differ diff --git a/docs/.gitbook/assets/API_7.png b/docs/.gitbook/assets/API_7.png index 86e9bbc91c..f090743a1a 100644 Binary files a/docs/.gitbook/assets/API_7.png and b/docs/.gitbook/assets/API_7.png differ diff --git a/docs/.gitbook/assets/API_8 (1) (1).png b/docs/.gitbook/assets/API_8 (1) (1).png new file mode 100644 index 0000000000..4d28cb420a Binary files /dev/null and b/docs/.gitbook/assets/API_8 (1) (1).png differ diff --git a/docs/.gitbook/assets/API_8 (1).png b/docs/.gitbook/assets/API_8 (1).png new file mode 100644 index 0000000000..4d28cb420a Binary files /dev/null and b/docs/.gitbook/assets/API_8 (1).png differ diff --git a/docs/.gitbook/assets/API_8.png b/docs/.gitbook/assets/API_8.png index 4d28cb420a..c4b87c8758 100644 Binary files a/docs/.gitbook/assets/API_8.png and b/docs/.gitbook/assets/API_8.png differ diff --git a/docs/.gitbook/assets/DUG_1.png b/docs/.gitbook/assets/DUG_1.png index 414ed0d578..df794aee84 100644 Binary files a/docs/.gitbook/assets/DUG_1.png and b/docs/.gitbook/assets/DUG_1.png differ diff --git a/docs/.gitbook/assets/DUG_10.png b/docs/.gitbook/assets/DUG_10.png index d95de4322e..78ecb4515d 100644 Binary files a/docs/.gitbook/assets/DUG_10.png and b/docs/.gitbook/assets/DUG_10.png differ diff --git a/docs/.gitbook/assets/DUG_11.png b/docs/.gitbook/assets/DUG_11.png index af6a478f62..149cf94b7d 100644 Binary files a/docs/.gitbook/assets/DUG_11.png and b/docs/.gitbook/assets/DUG_11.png differ diff --git a/docs/.gitbook/assets/DUG_12.png b/docs/.gitbook/assets/DUG_12.png index 98673db9aa..07c80e01b2 100644 Binary files a/docs/.gitbook/assets/DUG_12.png and b/docs/.gitbook/assets/DUG_12.png differ diff --git a/docs/.gitbook/assets/DUG_13.png b/docs/.gitbook/assets/DUG_13.png index 5b152d411d..ff97e0d902 100644 Binary files a/docs/.gitbook/assets/DUG_13.png and b/docs/.gitbook/assets/DUG_13.png differ diff --git a/docs/.gitbook/assets/DUG_14.png b/docs/.gitbook/assets/DUG_14.png index 0940a3a2e8..c3f9b77f15 100644 Binary files a/docs/.gitbook/assets/DUG_14.png and b/docs/.gitbook/assets/DUG_14.png differ diff --git a/docs/.gitbook/assets/DUG_15.png b/docs/.gitbook/assets/DUG_15.png index f6bf5ab1f0..0f139a9165 100644 Binary files a/docs/.gitbook/assets/DUG_15.png and b/docs/.gitbook/assets/DUG_15.png differ diff --git a/docs/.gitbook/assets/DUG_16.png b/docs/.gitbook/assets/DUG_16.png index a1c0f9f227..8f57dd1110 100644 Binary files a/docs/.gitbook/assets/DUG_16.png and b/docs/.gitbook/assets/DUG_16.png differ diff --git a/docs/.gitbook/assets/DUG_17.png b/docs/.gitbook/assets/DUG_17.png index 481670bc5f..af5c4560d2 100644 Binary files a/docs/.gitbook/assets/DUG_17.png and b/docs/.gitbook/assets/DUG_17.png differ diff --git a/docs/.gitbook/assets/DUG_18.png b/docs/.gitbook/assets/DUG_18.png index 93aa581d55..052ed28fde 100644 Binary files a/docs/.gitbook/assets/DUG_18.png and b/docs/.gitbook/assets/DUG_18.png differ diff --git a/docs/.gitbook/assets/DUG_19 (1).png b/docs/.gitbook/assets/DUG_19 (1).png deleted file mode 100644 index 435a4fb05e..0000000000 Binary files a/docs/.gitbook/assets/DUG_19 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/DUG_19.png b/docs/.gitbook/assets/DUG_19.png index 435a4fb05e..aab73ff399 100644 Binary files a/docs/.gitbook/assets/DUG_19.png and b/docs/.gitbook/assets/DUG_19.png differ diff --git a/docs/.gitbook/assets/DUG_2.png b/docs/.gitbook/assets/DUG_2.png index bf17bdd5f7..2e6f0ec565 100644 Binary files a/docs/.gitbook/assets/DUG_2.png and b/docs/.gitbook/assets/DUG_2.png differ diff --git a/docs/.gitbook/assets/DUG_20.png b/docs/.gitbook/assets/DUG_20.png index eb35791e7b..156b644de9 100644 Binary files a/docs/.gitbook/assets/DUG_20.png and b/docs/.gitbook/assets/DUG_20.png differ diff --git a/docs/.gitbook/assets/DUG_21.png b/docs/.gitbook/assets/DUG_21.png index 6936515bbc..375aa23683 100644 Binary files a/docs/.gitbook/assets/DUG_21.png and b/docs/.gitbook/assets/DUG_21.png differ diff --git a/docs/.gitbook/assets/DUG_24.png b/docs/.gitbook/assets/DUG_24.png index 461778c926..9ddf977a6f 100644 Binary files a/docs/.gitbook/assets/DUG_24.png and b/docs/.gitbook/assets/DUG_24.png differ diff --git a/docs/.gitbook/assets/DUG_3.png b/docs/.gitbook/assets/DUG_3.png index 62cda54b9b..c58be238ce 100644 Binary files a/docs/.gitbook/assets/DUG_3.png and b/docs/.gitbook/assets/DUG_3.png differ diff --git a/docs/.gitbook/assets/DUG_4.png b/docs/.gitbook/assets/DUG_4.png index 03c19054d2..5cde5516cc 100644 Binary files a/docs/.gitbook/assets/DUG_4.png and b/docs/.gitbook/assets/DUG_4.png differ diff --git a/docs/.gitbook/assets/DUG_5.png b/docs/.gitbook/assets/DUG_5.png index 0d0308968e..ba7ba54433 100644 Binary files a/docs/.gitbook/assets/DUG_5.png and b/docs/.gitbook/assets/DUG_5.png differ diff --git a/docs/.gitbook/assets/DUG_6.png b/docs/.gitbook/assets/DUG_6.png index b4db18dedb..c0dbd6666b 100644 Binary files a/docs/.gitbook/assets/DUG_6.png and b/docs/.gitbook/assets/DUG_6.png differ diff --git a/docs/.gitbook/assets/DUG_7.png b/docs/.gitbook/assets/DUG_7.png index a0b1671124..08a216602d 100644 Binary files a/docs/.gitbook/assets/DUG_7.png and b/docs/.gitbook/assets/DUG_7.png differ diff --git a/docs/.gitbook/assets/DUG_8.png b/docs/.gitbook/assets/DUG_8.png index 2ce226c73d..8cac07c5a6 100644 Binary files a/docs/.gitbook/assets/DUG_8.png and b/docs/.gitbook/assets/DUG_8.png differ diff --git a/docs/.gitbook/assets/DUG_9.png b/docs/.gitbook/assets/DUG_9.png index 6419550e84..8d3999aa32 100644 Binary files a/docs/.gitbook/assets/DUG_9.png and b/docs/.gitbook/assets/DUG_9.png differ diff --git a/docs/.gitbook/assets/Events_1.png b/docs/.gitbook/assets/Events_1.png new file mode 100644 index 0000000000..38f00a7e66 Binary files /dev/null and b/docs/.gitbook/assets/Events_1.png differ diff --git a/docs/.gitbook/assets/Events_10.png b/docs/.gitbook/assets/Events_10.png new file mode 100644 index 0000000000..e93e518218 Binary files /dev/null and b/docs/.gitbook/assets/Events_10.png differ diff --git a/docs/.gitbook/assets/Events_11.png b/docs/.gitbook/assets/Events_11.png new file mode 100644 index 0000000000..09513b9429 Binary files /dev/null and b/docs/.gitbook/assets/Events_11.png differ diff --git a/docs/.gitbook/assets/Events_12.png b/docs/.gitbook/assets/Events_12.png new file mode 100644 index 0000000000..25bd9df0ad Binary files /dev/null and b/docs/.gitbook/assets/Events_12.png differ diff --git a/docs/.gitbook/assets/Events_2.png b/docs/.gitbook/assets/Events_2.png new file mode 100644 index 0000000000..ced41e4094 Binary files /dev/null and b/docs/.gitbook/assets/Events_2.png differ diff --git a/docs/.gitbook/assets/Events_3.png b/docs/.gitbook/assets/Events_3.png new file mode 100644 index 0000000000..637e5f4f60 Binary files /dev/null and b/docs/.gitbook/assets/Events_3.png differ diff --git a/docs/.gitbook/assets/Events_4.png b/docs/.gitbook/assets/Events_4.png new file mode 100644 index 0000000000..423003109a Binary files /dev/null and b/docs/.gitbook/assets/Events_4.png differ diff --git a/docs/.gitbook/assets/Events_5.png b/docs/.gitbook/assets/Events_5.png new file mode 100644 index 0000000000..31cfb99d2e Binary files /dev/null and b/docs/.gitbook/assets/Events_5.png differ diff --git a/docs/.gitbook/assets/Events_6.png b/docs/.gitbook/assets/Events_6.png new file mode 100644 index 0000000000..5f7352bf07 Binary files /dev/null and b/docs/.gitbook/assets/Events_6.png differ diff --git a/docs/.gitbook/assets/Events_7.png b/docs/.gitbook/assets/Events_7.png new file mode 100644 index 0000000000..0672244472 Binary files /dev/null and b/docs/.gitbook/assets/Events_7.png differ diff --git a/docs/.gitbook/assets/Events_8.png b/docs/.gitbook/assets/Events_8.png new file mode 100644 index 0000000000..5e6ca1e236 Binary files /dev/null and b/docs/.gitbook/assets/Events_8.png differ diff --git a/docs/.gitbook/assets/Events_9.png b/docs/.gitbook/assets/Events_9.png new file mode 100644 index 0000000000..dfbab810e1 Binary files /dev/null and b/docs/.gitbook/assets/Events_9.png differ diff --git a/docs/.gitbook/assets/PW_1.png b/docs/.gitbook/assets/PW_1.png deleted file mode 100644 index 6ce4cae8d0..0000000000 Binary files a/docs/.gitbook/assets/PW_1.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_10 (1).png b/docs/.gitbook/assets/PW_10 (1).png deleted file mode 100644 index 96ed874cb0..0000000000 Binary files a/docs/.gitbook/assets/PW_10 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_10.png b/docs/.gitbook/assets/PW_10.png deleted file mode 100644 index 96ed874cb0..0000000000 Binary files a/docs/.gitbook/assets/PW_10.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_11.png b/docs/.gitbook/assets/PW_11.png deleted file mode 100644 index 968151bd46..0000000000 Binary files a/docs/.gitbook/assets/PW_11.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_12.png b/docs/.gitbook/assets/PW_12.png deleted file mode 100644 index 5c80bb7124..0000000000 Binary files a/docs/.gitbook/assets/PW_12.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_13.png b/docs/.gitbook/assets/PW_13.png deleted file mode 100644 index da356de586..0000000000 Binary files a/docs/.gitbook/assets/PW_13.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_14.png b/docs/.gitbook/assets/PW_14.png deleted file mode 100644 index 95072b2228..0000000000 Binary files a/docs/.gitbook/assets/PW_14.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_15.png b/docs/.gitbook/assets/PW_15.png deleted file mode 100644 index 8af011d1fe..0000000000 Binary files a/docs/.gitbook/assets/PW_15.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_16.png b/docs/.gitbook/assets/PW_16.png deleted file mode 100644 index 64c1d13ffa..0000000000 Binary files a/docs/.gitbook/assets/PW_16.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_17.2.png b/docs/.gitbook/assets/PW_17.2.png deleted file mode 100644 index bb63dbce73..0000000000 Binary files a/docs/.gitbook/assets/PW_17.2.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_17.3.png b/docs/.gitbook/assets/PW_17.3.png deleted file mode 100644 index 136eedbbdf..0000000000 Binary files a/docs/.gitbook/assets/PW_17.3.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_17.png b/docs/.gitbook/assets/PW_17.png deleted file mode 100644 index 136eedbbdf..0000000000 Binary files a/docs/.gitbook/assets/PW_17.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_18.png b/docs/.gitbook/assets/PW_18.png deleted file mode 100644 index f73692634e..0000000000 Binary files a/docs/.gitbook/assets/PW_18.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_19.png b/docs/.gitbook/assets/PW_19.png deleted file mode 100644 index 6a62f164c3..0000000000 Binary files a/docs/.gitbook/assets/PW_19.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_2.png b/docs/.gitbook/assets/PW_2.png deleted file mode 100644 index 5bae809a52..0000000000 Binary files a/docs/.gitbook/assets/PW_2.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_20.png b/docs/.gitbook/assets/PW_20.png deleted file mode 100644 index d82df7d207..0000000000 Binary files a/docs/.gitbook/assets/PW_20.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_21.png b/docs/.gitbook/assets/PW_21.png deleted file mode 100644 index 387b116431..0000000000 Binary files a/docs/.gitbook/assets/PW_21.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_22.png b/docs/.gitbook/assets/PW_22.png deleted file mode 100644 index e47ca4d2d4..0000000000 Binary files a/docs/.gitbook/assets/PW_22.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_23.png b/docs/.gitbook/assets/PW_23.png deleted file mode 100644 index af9336f935..0000000000 Binary files a/docs/.gitbook/assets/PW_23.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_24.png b/docs/.gitbook/assets/PW_24.png deleted file mode 100644 index 18681fff3f..0000000000 Binary files a/docs/.gitbook/assets/PW_24.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_25.png b/docs/.gitbook/assets/PW_25.png deleted file mode 100644 index 390852b167..0000000000 Binary files a/docs/.gitbook/assets/PW_25.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26 (1) (1) (1).png b/docs/.gitbook/assets/PW_26 (1) (1) (1).png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26 (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26 (1) (1).png b/docs/.gitbook/assets/PW_26 (1) (1).png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26 (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26 (1).png b/docs/.gitbook/assets/PW_26 (1).png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26 (2) (1).png b/docs/.gitbook/assets/PW_26 (2) (1).png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26 (2) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26 (2).png b/docs/.gitbook/assets/PW_26 (2).png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26 (2).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26.1.png b/docs/.gitbook/assets/PW_26.1.png deleted file mode 100644 index 524e57023a..0000000000 Binary files a/docs/.gitbook/assets/PW_26.1.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_26.png b/docs/.gitbook/assets/PW_26.png deleted file mode 100644 index e544e8a7b2..0000000000 Binary files a/docs/.gitbook/assets/PW_26.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_27.png b/docs/.gitbook/assets/PW_27.png deleted file mode 100644 index ff9ce1e027..0000000000 Binary files a/docs/.gitbook/assets/PW_27.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_28.png b/docs/.gitbook/assets/PW_28.png deleted file mode 100644 index c6dc142c50..0000000000 Binary files a/docs/.gitbook/assets/PW_28.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_29.png b/docs/.gitbook/assets/PW_29.png deleted file mode 100644 index 8a64465dc5..0000000000 Binary files a/docs/.gitbook/assets/PW_29.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_3.png b/docs/.gitbook/assets/PW_3.png deleted file mode 100644 index c55e05a1c3..0000000000 Binary files a/docs/.gitbook/assets/PW_3.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_30.png b/docs/.gitbook/assets/PW_30.png deleted file mode 100644 index 130d8ee9d3..0000000000 Binary files a/docs/.gitbook/assets/PW_30.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_31.png b/docs/.gitbook/assets/PW_31.png deleted file mode 100644 index b6d8c5db30..0000000000 Binary files a/docs/.gitbook/assets/PW_31.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_32.png b/docs/.gitbook/assets/PW_32.png deleted file mode 100644 index f23d04e755..0000000000 Binary files a/docs/.gitbook/assets/PW_32.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_33.png b/docs/.gitbook/assets/PW_33.png deleted file mode 100644 index 698fa5b425..0000000000 Binary files a/docs/.gitbook/assets/PW_33.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_4.png b/docs/.gitbook/assets/PW_4.png deleted file mode 100644 index 4fcfdd0fdd..0000000000 Binary files a/docs/.gitbook/assets/PW_4.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_5.png b/docs/.gitbook/assets/PW_5.png deleted file mode 100644 index eef02cd07b..0000000000 Binary files a/docs/.gitbook/assets/PW_5.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_6 (1).png b/docs/.gitbook/assets/PW_6 (1).png deleted file mode 100644 index a5c9a88468..0000000000 Binary files a/docs/.gitbook/assets/PW_6 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_6.png b/docs/.gitbook/assets/PW_6.png deleted file mode 100644 index a5c9a88468..0000000000 Binary files a/docs/.gitbook/assets/PW_6.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_7.png b/docs/.gitbook/assets/PW_7.png deleted file mode 100644 index 7271732427..0000000000 Binary files a/docs/.gitbook/assets/PW_7.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_8.png b/docs/.gitbook/assets/PW_8.png deleted file mode 100644 index a25da2a8d3..0000000000 Binary files a/docs/.gitbook/assets/PW_8.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_9.png b/docs/.gitbook/assets/PW_9.png deleted file mode 100644 index 37e213bab6..0000000000 Binary files a/docs/.gitbook/assets/PW_9.png and /dev/null differ diff --git a/docs/.gitbook/assets/PW_image_1.png b/docs/.gitbook/assets/PW_image_1.png new file mode 100644 index 0000000000..fb8e05f158 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_1.png differ diff --git a/docs/.gitbook/assets/PW_image_10.png b/docs/.gitbook/assets/PW_image_10.png new file mode 100644 index 0000000000..f8317d2c7f Binary files /dev/null and b/docs/.gitbook/assets/PW_image_10.png differ diff --git a/docs/.gitbook/assets/PW_image_11.png b/docs/.gitbook/assets/PW_image_11.png new file mode 100644 index 0000000000..7acf99884f Binary files /dev/null and b/docs/.gitbook/assets/PW_image_11.png differ diff --git a/docs/.gitbook/assets/PW_image_12.png b/docs/.gitbook/assets/PW_image_12.png new file mode 100644 index 0000000000..71d029ded7 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_12.png differ diff --git a/docs/.gitbook/assets/PW_image_13.png b/docs/.gitbook/assets/PW_image_13.png new file mode 100644 index 0000000000..79d112f8ad Binary files /dev/null and b/docs/.gitbook/assets/PW_image_13.png differ diff --git a/docs/.gitbook/assets/PW_image_14.png b/docs/.gitbook/assets/PW_image_14.png new file mode 100644 index 0000000000..5e6d076761 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_14.png differ diff --git a/docs/.gitbook/assets/PW_image_15.png b/docs/.gitbook/assets/PW_image_15.png new file mode 100644 index 0000000000..75f6309204 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_15.png differ diff --git a/docs/.gitbook/assets/PW_image_16.png b/docs/.gitbook/assets/PW_image_16.png new file mode 100644 index 0000000000..b929b84567 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_16.png differ diff --git a/docs/.gitbook/assets/PW_image_17.png b/docs/.gitbook/assets/PW_image_17.png new file mode 100644 index 0000000000..298d08c473 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_17.png differ diff --git a/docs/.gitbook/assets/PW_image_18.png b/docs/.gitbook/assets/PW_image_18.png new file mode 100644 index 0000000000..0f48b5d582 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_18.png differ diff --git a/docs/.gitbook/assets/PW_image_19.png b/docs/.gitbook/assets/PW_image_19.png new file mode 100644 index 0000000000..da95c268f4 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_19.png differ diff --git a/docs/.gitbook/assets/PW_image_2.png b/docs/.gitbook/assets/PW_image_2.png new file mode 100644 index 0000000000..86a580c6aa Binary files /dev/null and b/docs/.gitbook/assets/PW_image_2.png differ diff --git a/docs/.gitbook/assets/PW_image_20.png b/docs/.gitbook/assets/PW_image_20.png new file mode 100644 index 0000000000..120fa72b73 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_20.png differ diff --git a/docs/.gitbook/assets/PW_image_21.png b/docs/.gitbook/assets/PW_image_21.png new file mode 100644 index 0000000000..7fe0e726ec Binary files /dev/null and b/docs/.gitbook/assets/PW_image_21.png differ diff --git a/docs/.gitbook/assets/PW_image_22.png b/docs/.gitbook/assets/PW_image_22.png new file mode 100644 index 0000000000..99667e6266 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_22.png differ diff --git a/docs/.gitbook/assets/PW_image_23.png b/docs/.gitbook/assets/PW_image_23.png new file mode 100644 index 0000000000..f1e41f8d9c Binary files /dev/null and b/docs/.gitbook/assets/PW_image_23.png differ diff --git a/docs/.gitbook/assets/PW_image_24.png b/docs/.gitbook/assets/PW_image_24.png new file mode 100644 index 0000000000..3417557d28 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_24.png differ diff --git a/docs/.gitbook/assets/PW_image_25.png b/docs/.gitbook/assets/PW_image_25.png new file mode 100644 index 0000000000..f712ed4d94 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_25.png differ diff --git a/docs/.gitbook/assets/PW_image_26.png b/docs/.gitbook/assets/PW_image_26.png new file mode 100644 index 0000000000..9f646700e4 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_26.png differ diff --git a/docs/.gitbook/assets/PW_image_27.png b/docs/.gitbook/assets/PW_image_27.png new file mode 100644 index 0000000000..8af5d9c6a0 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_27.png differ diff --git a/docs/.gitbook/assets/PW_image_28.png b/docs/.gitbook/assets/PW_image_28.png new file mode 100644 index 0000000000..14669c39e6 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_28.png differ diff --git a/docs/.gitbook/assets/PW_image_29.png b/docs/.gitbook/assets/PW_image_29.png new file mode 100644 index 0000000000..e3132eec0a Binary files /dev/null and b/docs/.gitbook/assets/PW_image_29.png differ diff --git a/docs/.gitbook/assets/PW_image_3.png b/docs/.gitbook/assets/PW_image_3.png new file mode 100644 index 0000000000..9ba584786c Binary files /dev/null and b/docs/.gitbook/assets/PW_image_3.png differ diff --git a/docs/.gitbook/assets/PW_image_30.png b/docs/.gitbook/assets/PW_image_30.png new file mode 100644 index 0000000000..ab9e4f739b Binary files /dev/null and b/docs/.gitbook/assets/PW_image_30.png differ diff --git a/docs/.gitbook/assets/PW_image_31.png b/docs/.gitbook/assets/PW_image_31.png new file mode 100644 index 0000000000..e8af42935a Binary files /dev/null and b/docs/.gitbook/assets/PW_image_31.png differ diff --git a/docs/.gitbook/assets/PW_image_32.png b/docs/.gitbook/assets/PW_image_32.png new file mode 100644 index 0000000000..2a6960856c Binary files /dev/null and b/docs/.gitbook/assets/PW_image_32.png differ diff --git a/docs/.gitbook/assets/PW_image_33.png b/docs/.gitbook/assets/PW_image_33.png new file mode 100644 index 0000000000..6945c64bb4 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_33.png differ diff --git a/docs/.gitbook/assets/PW_image_34.png b/docs/.gitbook/assets/PW_image_34.png new file mode 100644 index 0000000000..f382ea1b72 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_34.png differ diff --git a/docs/.gitbook/assets/PW_image_35.png b/docs/.gitbook/assets/PW_image_35.png new file mode 100644 index 0000000000..dc1672b222 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_35.png differ diff --git a/docs/.gitbook/assets/PW_image_4.png b/docs/.gitbook/assets/PW_image_4.png new file mode 100644 index 0000000000..a9d10056c1 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_4.png differ diff --git a/docs/.gitbook/assets/PW_image_5.png b/docs/.gitbook/assets/PW_image_5.png new file mode 100644 index 0000000000..2bdaf2f5d2 Binary files /dev/null and b/docs/.gitbook/assets/PW_image_5.png differ diff --git a/docs/.gitbook/assets/PW_image_6.png b/docs/.gitbook/assets/PW_image_6.png new file mode 100644 index 0000000000..6fc133b6bf Binary files /dev/null and b/docs/.gitbook/assets/PW_image_6.png differ diff --git a/docs/.gitbook/assets/PW_image_7.png b/docs/.gitbook/assets/PW_image_7.png new file mode 100644 index 0000000000..6fc133b6bf Binary files /dev/null and b/docs/.gitbook/assets/PW_image_7.png differ diff --git a/docs/.gitbook/assets/PW_image_8.png b/docs/.gitbook/assets/PW_image_8.png new file mode 100644 index 0000000000..f2e589a43c Binary files /dev/null and b/docs/.gitbook/assets/PW_image_8.png differ diff --git a/docs/.gitbook/assets/PW_image_9.png b/docs/.gitbook/assets/PW_image_9.png new file mode 100644 index 0000000000..22e7885cbf Binary files /dev/null and b/docs/.gitbook/assets/PW_image_9.png differ diff --git a/docs/.gitbook/assets/Verra_2 (1) (1).png b/docs/.gitbook/assets/Verra_2 (1) (1).png deleted file mode 100644 index 380b9ce5c4..0000000000 Binary files a/docs/.gitbook/assets/Verra_2 (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/Verra_2 (1).png b/docs/.gitbook/assets/Verra_2 (1).png deleted file mode 100644 index 380b9ce5c4..0000000000 Binary files a/docs/.gitbook/assets/Verra_2 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/Verra_2.1.png b/docs/.gitbook/assets/Verra_2.1.png new file mode 100644 index 0000000000..3886a60369 Binary files /dev/null and b/docs/.gitbook/assets/Verra_2.1.png differ diff --git a/docs/.gitbook/assets/Verra_2.2.png b/docs/.gitbook/assets/Verra_2.2.png new file mode 100644 index 0000000000..25e7020ce4 Binary files /dev/null and b/docs/.gitbook/assets/Verra_2.2.png differ diff --git a/docs/.gitbook/assets/Verra_2.png b/docs/.gitbook/assets/Verra_2.png index 380b9ce5c4..317989d63f 100644 Binary files a/docs/.gitbook/assets/Verra_2.png and b/docs/.gitbook/assets/Verra_2.png differ diff --git a/docs/.gitbook/assets/iREC_0 (1) (1).png b/docs/.gitbook/assets/iREC_0 (1) (1).png deleted file mode 100644 index 380b9ce5c4..0000000000 Binary files a/docs/.gitbook/assets/iREC_0 (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_0 (1).png b/docs/.gitbook/assets/iREC_0 (1).png deleted file mode 100644 index 380b9ce5c4..0000000000 Binary files a/docs/.gitbook/assets/iREC_0 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_0.png b/docs/.gitbook/assets/iREC_0.png index 380b9ce5c4..8f4c409821 100644 Binary files a/docs/.gitbook/assets/iREC_0.png and b/docs/.gitbook/assets/iREC_0.png differ diff --git a/docs/.gitbook/assets/iREC_1.png b/docs/.gitbook/assets/iREC_1.png index 5152fa0344..8dbcd47b70 100644 Binary files a/docs/.gitbook/assets/iREC_1.png and b/docs/.gitbook/assets/iREC_1.png differ diff --git a/docs/.gitbook/assets/iREC_10.png b/docs/.gitbook/assets/iREC_10.png index f4f7b1d9bf..5b78e62610 100644 Binary files a/docs/.gitbook/assets/iREC_10.png and b/docs/.gitbook/assets/iREC_10.png differ diff --git a/docs/.gitbook/assets/iREC_11.png b/docs/.gitbook/assets/iREC_11.png index 29ce009e3e..dea985f09c 100644 Binary files a/docs/.gitbook/assets/iREC_11.png and b/docs/.gitbook/assets/iREC_11.png differ diff --git a/docs/.gitbook/assets/iREC_12.png b/docs/.gitbook/assets/iREC_12.png index c055c1357e..51d47c6e7d 100644 Binary files a/docs/.gitbook/assets/iREC_12.png and b/docs/.gitbook/assets/iREC_12.png differ diff --git a/docs/.gitbook/assets/iREC_13.png b/docs/.gitbook/assets/iREC_13.png index f7cc5a1d17..d76946f4de 100644 Binary files a/docs/.gitbook/assets/iREC_13.png and b/docs/.gitbook/assets/iREC_13.png differ diff --git a/docs/.gitbook/assets/iREC_14.png b/docs/.gitbook/assets/iREC_14.png index b0b5c018b1..232e6ae66c 100644 Binary files a/docs/.gitbook/assets/iREC_14.png and b/docs/.gitbook/assets/iREC_14.png differ diff --git a/docs/.gitbook/assets/iREC_15.png b/docs/.gitbook/assets/iREC_15.png index 1dc338e72a..56b3c26748 100644 Binary files a/docs/.gitbook/assets/iREC_15.png and b/docs/.gitbook/assets/iREC_15.png differ diff --git a/docs/.gitbook/assets/iREC_16.png b/docs/.gitbook/assets/iREC_16.png index 8a148fd232..346f0bb7c1 100644 Binary files a/docs/.gitbook/assets/iREC_16.png and b/docs/.gitbook/assets/iREC_16.png differ diff --git a/docs/.gitbook/assets/iREC_17 (1).png b/docs/.gitbook/assets/iREC_17 (1).png deleted file mode 100644 index af3b357a7e..0000000000 Binary files a/docs/.gitbook/assets/iREC_17 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_17.2.png b/docs/.gitbook/assets/iREC_17.2.png deleted file mode 100644 index aad6bf685e..0000000000 Binary files a/docs/.gitbook/assets/iREC_17.2.png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_17.png b/docs/.gitbook/assets/iREC_17.png index af3b357a7e..78038e07fc 100644 Binary files a/docs/.gitbook/assets/iREC_17.png and b/docs/.gitbook/assets/iREC_17.png differ diff --git a/docs/.gitbook/assets/iREC_18.png b/docs/.gitbook/assets/iREC_18.png index 20d035d5d0..6190f64492 100644 Binary files a/docs/.gitbook/assets/iREC_18.png and b/docs/.gitbook/assets/iREC_18.png differ diff --git a/docs/.gitbook/assets/iREC_19.png b/docs/.gitbook/assets/iREC_19.png new file mode 100644 index 0000000000..870e6edb7b Binary files /dev/null and b/docs/.gitbook/assets/iREC_19.png differ diff --git a/docs/.gitbook/assets/iREC_2.2 (1).png b/docs/.gitbook/assets/iREC_2.2 (1).png deleted file mode 100644 index d056700c1c..0000000000 Binary files a/docs/.gitbook/assets/iREC_2.2 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_2.2.png b/docs/.gitbook/assets/iREC_2.2.png deleted file mode 100644 index d056700c1c..0000000000 Binary files a/docs/.gitbook/assets/iREC_2.2.png and /dev/null differ diff --git a/docs/.gitbook/assets/iREC_2.png b/docs/.gitbook/assets/iREC_2.png new file mode 100644 index 0000000000..c6e90b5df3 Binary files /dev/null and b/docs/.gitbook/assets/iREC_2.png differ diff --git a/docs/.gitbook/assets/iREC_3.png b/docs/.gitbook/assets/iREC_3.png index c20c5cdd76..74f8e9c18d 100644 Binary files a/docs/.gitbook/assets/iREC_3.png and b/docs/.gitbook/assets/iREC_3.png differ diff --git a/docs/.gitbook/assets/iREC_4.2.png b/docs/.gitbook/assets/iREC_4.2.png new file mode 100644 index 0000000000..25e7020ce4 Binary files /dev/null and b/docs/.gitbook/assets/iREC_4.2.png differ diff --git a/docs/.gitbook/assets/iREC_4.png b/docs/.gitbook/assets/iREC_4.png index e9b3133608..371a68430b 100644 Binary files a/docs/.gitbook/assets/iREC_4.png and b/docs/.gitbook/assets/iREC_4.png differ diff --git a/docs/.gitbook/assets/iREC_5.png b/docs/.gitbook/assets/iREC_5.png index 9d1db3df38..c15a1ecf74 100644 Binary files a/docs/.gitbook/assets/iREC_5.png and b/docs/.gitbook/assets/iREC_5.png differ diff --git a/docs/.gitbook/assets/iREC_6.png b/docs/.gitbook/assets/iREC_6.png index fdf8a15e93..bf104a634a 100644 Binary files a/docs/.gitbook/assets/iREC_6.png and b/docs/.gitbook/assets/iREC_6.png differ diff --git a/docs/.gitbook/assets/iREC_7.png b/docs/.gitbook/assets/iREC_7.png index ba0e701bcd..ea2b0da762 100644 Binary files a/docs/.gitbook/assets/iREC_7.png and b/docs/.gitbook/assets/iREC_7.png differ diff --git a/docs/.gitbook/assets/iREC_8.png b/docs/.gitbook/assets/iREC_8.png index 11984a4676..0dca18041e 100644 Binary files a/docs/.gitbook/assets/iREC_8.png and b/docs/.gitbook/assets/iREC_8.png differ diff --git a/docs/.gitbook/assets/iREC_9.png b/docs/.gitbook/assets/iREC_9.png index 340606faee..ee5645dd89 100644 Binary files a/docs/.gitbook/assets/iREC_9.png and b/docs/.gitbook/assets/iREC_9.png differ diff --git a/docs/.gitbook/assets/image (1) (1) (1) (1).png b/docs/.gitbook/assets/image (1) (1) (1) (1).png deleted file mode 100644 index 6bec942eef..0000000000 Binary files a/docs/.gitbook/assets/image (1) (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (1) (1) (1).png b/docs/.gitbook/assets/image (1) (1) (1).png deleted file mode 100644 index 21df3c2cf8..0000000000 Binary files a/docs/.gitbook/assets/image (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (1) (1).png b/docs/.gitbook/assets/image (1) (1).png index 9292109003..d8af307b2f 100644 Binary files a/docs/.gitbook/assets/image (1) (1).png and b/docs/.gitbook/assets/image (1) (1).png differ diff --git a/docs/.gitbook/assets/image (1).png b/docs/.gitbook/assets/image (1).png index 9292109003..e2ef1d89b6 100644 Binary files a/docs/.gitbook/assets/image (1).png and b/docs/.gitbook/assets/image (1).png differ diff --git a/docs/.gitbook/assets/image (10) (1).png b/docs/.gitbook/assets/image (10) (1).png index 339eb86769..e333d9a622 100644 Binary files a/docs/.gitbook/assets/image (10) (1).png and b/docs/.gitbook/assets/image (10) (1).png differ diff --git a/docs/.gitbook/assets/image (10).png b/docs/.gitbook/assets/image (10).png index 61e515efbc..0ea02589cf 100644 Binary files a/docs/.gitbook/assets/image (10).png and b/docs/.gitbook/assets/image (10).png differ diff --git a/docs/.gitbook/assets/image (11) (1) (1).png b/docs/.gitbook/assets/image (11) (1) (1).png deleted file mode 100644 index 32281311f6..0000000000 Binary files a/docs/.gitbook/assets/image (11) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (11) (1).png b/docs/.gitbook/assets/image (11) (1).png index d0b13385c9..19019ed11a 100644 Binary files a/docs/.gitbook/assets/image (11) (1).png and b/docs/.gitbook/assets/image (11) (1).png differ diff --git a/docs/.gitbook/assets/image (11).png b/docs/.gitbook/assets/image (11).png index 734412e8a4..eb89c1e2de 100644 Binary files a/docs/.gitbook/assets/image (11).png and b/docs/.gitbook/assets/image (11).png differ diff --git a/docs/.gitbook/assets/image (12) (1) (1).png b/docs/.gitbook/assets/image (12) (1) (1).png deleted file mode 100644 index cf28bb9b74..0000000000 Binary files a/docs/.gitbook/assets/image (12) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (12) (1).png b/docs/.gitbook/assets/image (12) (1).png deleted file mode 100644 index cf28bb9b74..0000000000 Binary files a/docs/.gitbook/assets/image (12) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (12).png b/docs/.gitbook/assets/image (12).png index cf28bb9b74..1d50f1b0a2 100644 Binary files a/docs/.gitbook/assets/image (12).png and b/docs/.gitbook/assets/image (12).png differ diff --git a/docs/.gitbook/assets/image (13) (1).png b/docs/.gitbook/assets/image (13) (1).png deleted file mode 100644 index c61fcea5d0..0000000000 Binary files a/docs/.gitbook/assets/image (13) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (13).png b/docs/.gitbook/assets/image (13).png index 5015dd68e8..9192379a75 100644 Binary files a/docs/.gitbook/assets/image (13).png and b/docs/.gitbook/assets/image (13).png differ diff --git a/docs/.gitbook/assets/image (14) (1).png b/docs/.gitbook/assets/image (14) (1).png deleted file mode 100644 index a45277259f..0000000000 Binary files a/docs/.gitbook/assets/image (14) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (14).png b/docs/.gitbook/assets/image (14).png index 5a0a02de9e..6012d60546 100644 Binary files a/docs/.gitbook/assets/image (14).png and b/docs/.gitbook/assets/image (14).png differ diff --git a/docs/.gitbook/assets/image (15).png b/docs/.gitbook/assets/image (15).png index 4926b55e28..b24f8bb287 100644 Binary files a/docs/.gitbook/assets/image (15).png and b/docs/.gitbook/assets/image (15).png differ diff --git a/docs/.gitbook/assets/image (16).png b/docs/.gitbook/assets/image (16).png index 339eb86769..a507d3825d 100644 Binary files a/docs/.gitbook/assets/image (16).png and b/docs/.gitbook/assets/image (16).png differ diff --git a/docs/.gitbook/assets/image (17).png b/docs/.gitbook/assets/image (17).png index 312806b31e..224d756bae 100644 Binary files a/docs/.gitbook/assets/image (17).png and b/docs/.gitbook/assets/image (17).png differ diff --git a/docs/.gitbook/assets/image (18).png b/docs/.gitbook/assets/image (18).png index 4fcfdd0fdd..5a1f48be49 100644 Binary files a/docs/.gitbook/assets/image (18).png and b/docs/.gitbook/assets/image (18).png differ diff --git a/docs/.gitbook/assets/image (19).png b/docs/.gitbook/assets/image (19).png index a8da94b053..ae9dc533e2 100644 Binary files a/docs/.gitbook/assets/image (19).png and b/docs/.gitbook/assets/image (19).png differ diff --git a/docs/.gitbook/assets/image (2) (1) (1) (1).png b/docs/.gitbook/assets/image (2) (1) (1) (1).png deleted file mode 100644 index 4fcfdd0fdd..0000000000 Binary files a/docs/.gitbook/assets/image (2) (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (2) (1) (1).png b/docs/.gitbook/assets/image (2) (1) (1).png deleted file mode 100644 index 44f3ff18e5..0000000000 Binary files a/docs/.gitbook/assets/image (2) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (2) (1).png b/docs/.gitbook/assets/image (2) (1).png index 4d28cb420a..bff8d6d115 100644 Binary files a/docs/.gitbook/assets/image (2) (1).png and b/docs/.gitbook/assets/image (2) (1).png differ diff --git a/docs/.gitbook/assets/image (2).png b/docs/.gitbook/assets/image (2).png index 4d28cb420a..07eddc8c0e 100644 Binary files a/docs/.gitbook/assets/image (2).png and b/docs/.gitbook/assets/image (2).png differ diff --git a/docs/.gitbook/assets/image (20).png b/docs/.gitbook/assets/image (20).png index 1d07621295..aea54690f1 100644 Binary files a/docs/.gitbook/assets/image (20).png and b/docs/.gitbook/assets/image (20).png differ diff --git a/docs/.gitbook/assets/image (21).png b/docs/.gitbook/assets/image (21).png index 725ab9355f..8af8beafdd 100644 Binary files a/docs/.gitbook/assets/image (21).png and b/docs/.gitbook/assets/image (21).png differ diff --git a/docs/.gitbook/assets/image (22).png b/docs/.gitbook/assets/image (22).png index 32281311f6..9b67226606 100644 Binary files a/docs/.gitbook/assets/image (22).png and b/docs/.gitbook/assets/image (22).png differ diff --git a/docs/.gitbook/assets/image (23).png b/docs/.gitbook/assets/image (23).png deleted file mode 100644 index cf28bb9b74..0000000000 Binary files a/docs/.gitbook/assets/image (23).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (24).png b/docs/.gitbook/assets/image (24).png deleted file mode 100644 index c61fcea5d0..0000000000 Binary files a/docs/.gitbook/assets/image (24).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (25).png b/docs/.gitbook/assets/image (25).png deleted file mode 100644 index a45277259f..0000000000 Binary files a/docs/.gitbook/assets/image (25).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (3) (1) (1) (1).png b/docs/.gitbook/assets/image (3) (1) (1) (1).png deleted file mode 100644 index a8da94b053..0000000000 Binary files a/docs/.gitbook/assets/image (3) (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (3) (1) (1).png b/docs/.gitbook/assets/image (3) (1) (1).png deleted file mode 100644 index af9e262c15..0000000000 Binary files a/docs/.gitbook/assets/image (3) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (3) (1).png b/docs/.gitbook/assets/image (3) (1).png index fccf0fd9cd..b10ddaafcd 100644 Binary files a/docs/.gitbook/assets/image (3) (1).png and b/docs/.gitbook/assets/image (3) (1).png differ diff --git a/docs/.gitbook/assets/image (3).png b/docs/.gitbook/assets/image (3).png index 44f3ff18e5..903dc547bd 100644 Binary files a/docs/.gitbook/assets/image (3).png and b/docs/.gitbook/assets/image (3).png differ diff --git a/docs/.gitbook/assets/image (4) (1) (1) (1).png b/docs/.gitbook/assets/image (4) (1) (1) (1).png deleted file mode 100644 index 725ab9355f..0000000000 Binary files a/docs/.gitbook/assets/image (4) (1) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (4) (1) (1).png b/docs/.gitbook/assets/image (4) (1) (1).png deleted file mode 100644 index d521406bb4..0000000000 Binary files a/docs/.gitbook/assets/image (4) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (4) (1).png b/docs/.gitbook/assets/image (4) (1).png index d5fba06e9c..a3104c901a 100644 Binary files a/docs/.gitbook/assets/image (4) (1).png and b/docs/.gitbook/assets/image (4) (1).png differ diff --git a/docs/.gitbook/assets/image (4).png b/docs/.gitbook/assets/image (4).png index 21df3c2cf8..5647d5629c 100644 Binary files a/docs/.gitbook/assets/image (4).png and b/docs/.gitbook/assets/image (4).png differ diff --git a/docs/.gitbook/assets/image (5) (1).png b/docs/.gitbook/assets/image (5) (1).png index d0b13385c9..0ced8413a9 100644 Binary files a/docs/.gitbook/assets/image (5) (1).png and b/docs/.gitbook/assets/image (5) (1).png differ diff --git a/docs/.gitbook/assets/image (5).png b/docs/.gitbook/assets/image (5).png index fccf0fd9cd..885a64735c 100644 Binary files a/docs/.gitbook/assets/image (5).png and b/docs/.gitbook/assets/image (5).png differ diff --git a/docs/.gitbook/assets/image (6) (1) (1).png b/docs/.gitbook/assets/image (6) (1) (1).png deleted file mode 100644 index cf28bb9b74..0000000000 Binary files a/docs/.gitbook/assets/image (6) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (6) (1).png b/docs/.gitbook/assets/image (6) (1).png index 477ad5bbf5..deb83004f2 100644 Binary files a/docs/.gitbook/assets/image (6) (1).png and b/docs/.gitbook/assets/image (6) (1).png differ diff --git a/docs/.gitbook/assets/image (6).png b/docs/.gitbook/assets/image (6).png index d5fba06e9c..4df873e8b3 100644 Binary files a/docs/.gitbook/assets/image (6).png and b/docs/.gitbook/assets/image (6).png differ diff --git a/docs/.gitbook/assets/image (7) (1).png b/docs/.gitbook/assets/image (7) (1).png index 5015dd68e8..b9a83e2aa3 100644 Binary files a/docs/.gitbook/assets/image (7) (1).png and b/docs/.gitbook/assets/image (7) (1).png differ diff --git a/docs/.gitbook/assets/image (7).png b/docs/.gitbook/assets/image (7).png index af9e262c15..e3da9777fd 100644 Binary files a/docs/.gitbook/assets/image (7).png and b/docs/.gitbook/assets/image (7).png differ diff --git a/docs/.gitbook/assets/image (8) (1) (1).png b/docs/.gitbook/assets/image (8) (1) (1).png deleted file mode 100644 index 5a0a02de9e..0000000000 Binary files a/docs/.gitbook/assets/image (8) (1) (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (8) (1).png b/docs/.gitbook/assets/image (8) (1).png index d8666c86f8..cf5ee54e0f 100644 Binary files a/docs/.gitbook/assets/image (8) (1).png and b/docs/.gitbook/assets/image (8) (1).png differ diff --git a/docs/.gitbook/assets/image (8).png b/docs/.gitbook/assets/image (8).png index 6bec942eef..e7c17d613c 100644 Binary files a/docs/.gitbook/assets/image (8).png and b/docs/.gitbook/assets/image (8).png differ diff --git a/docs/.gitbook/assets/image (9) (1).png b/docs/.gitbook/assets/image (9) (1).png index 4926b55e28..79f167b361 100644 Binary files a/docs/.gitbook/assets/image (9) (1).png and b/docs/.gitbook/assets/image (9) (1).png differ diff --git a/docs/.gitbook/assets/image (9).png b/docs/.gitbook/assets/image (9).png index d521406bb4..53452c5f5c 100644 Binary files a/docs/.gitbook/assets/image (9).png and b/docs/.gitbook/assets/image (9).png differ diff --git a/docs/.gitbook/assets/image 1.png b/docs/.gitbook/assets/image 1.png new file mode 100644 index 0000000000..477ad5bbf5 Binary files /dev/null and b/docs/.gitbook/assets/image 1.png differ diff --git a/docs/.gitbook/assets/image 2.png b/docs/.gitbook/assets/image 2.png new file mode 100644 index 0000000000..df8fb553fe Binary files /dev/null and b/docs/.gitbook/assets/image 2.png differ diff --git a/docs/.gitbook/assets/image 3.png b/docs/.gitbook/assets/image 3.png new file mode 100644 index 0000000000..9f1a84da4d Binary files /dev/null and b/docs/.gitbook/assets/image 3.png differ diff --git a/docs/.gitbook/assets/image (15) (1).png b/docs/.gitbook/assets/image 4.png similarity index 100% rename from docs/.gitbook/assets/image (15) (1).png rename to docs/.gitbook/assets/image 4.png diff --git a/docs/.gitbook/assets/image 5.png b/docs/.gitbook/assets/image 5.png new file mode 100644 index 0000000000..a9d10056c1 Binary files /dev/null and b/docs/.gitbook/assets/image 5.png differ diff --git a/docs/.gitbook/assets/image.png b/docs/.gitbook/assets/image.png index 9f1a84da4d..0f096e7e6d 100644 Binary files a/docs/.gitbook/assets/image.png and b/docs/.gitbook/assets/image.png differ diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 4633d7fd35..f6ab517690 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -17,6 +17,14 @@ * [Security](getting-started/security.md) * [Reference Implementation](getting-started/reference-implementation.md) +## Schema Flow + +* [Schema Demo](schema-flow/schema-demo.md) + +## Policy Flow + +* [Policy Demo](policy-flow/policy-demo.md) + ## Demo Guide * [Demo Usage Guide](demo-guide/demo-usage-guide.md) @@ -64,6 +72,10 @@ * [switchBlock](available-policy-workflow-blocks/switchblock.md) * [aggregateDocumentBlock](available-policy-workflow-blocks/aggregatedocumentblock.md) * [TimerBlock](available-policy-workflow-blocks/timerblock.md) +* [revokeBlock](available-policy-workflow-blocks/revokeblock.md) +* [setRelationshipsBlock](available-policy-workflow-blocks/setrelationshipsblock.md) +* [buttonBlock](available-policy-workflow-blocks/buttonblock.md) +* [Events](available-policy-workflow-blocks/events.md) ## Policy Workflow Creation using the Guardian User Interface @@ -132,13 +144,23 @@ * [Importing Zip file containing Schema](schema-creation-using-the-guardian-apis/importing-zip-file-containing-schema.md) * [Importing Schema from IPFS](schema-creation-using-the-guardian-apis/importing-schema-from-ipfs.md) +## System Schemas APIs + +* [Returns Schema by Type](system-schemas-apis/returns-schema-by-type.md) +* [Creates New System Schema](system-schemas-apis/creates-new-system-schema.md) +* [Returns Schema by Username](system-schemas-apis/returns-schema-by-username.md) +* [Updates the Schema](system-schemas-apis/updates-the-schema.md) +* [Delete System Schema](system-schemas-apis/delete-system-schema.md) +* [Publishes the Schema](system-schemas-apis/publishes-the-schema.md) +* [Schema Type](system-schemas-apis/schema-type.md) + ## ACCOUNT APIS -* [User listing except Root Authority and Auditor](account-apis/user-listing-except-root-authority-and-auditor.md) +* [User listing except Standard Registry and Auditor](account-apis/user-listing-except-root-authority-and-auditor.md) * [User Session](account-apis/user-session.md) * [User Login](account-apis/user-login.md) * [Registering new account](account-apis/registering-new-account.md) -* [Returns all root-authorities](account-apis/returns-all-root-authorities.md) +* [Returns all Standard Registries](account-apis/returns-all-root-authorities.md) ## PROFILE APIS @@ -176,3 +198,11 @@ ## External APIs * [Sends Data from External Source](external-apis/sends-data-from-external-source.md) + +## External events + +* [Listen to external event published by guardian](external-events/external-events.md) + +## FAQs + +* [FAQs](faqs/faqs.md) diff --git a/docs/account-apis/returns-all-root-authorities.md b/docs/account-apis/returns-all-root-authorities.md index 439fcf8282..9059dbf2eb 100644 --- a/docs/account-apis/returns-all-root-authorities.md +++ b/docs/account-apis/returns-all-root-authorities.md @@ -1,8 +1,8 @@ -# Returns all root-authorities +# Returns all Standard Registries -{% swagger method="get" path="" baseUrl="/accounts/root-authorities" summary="Returns an array of root authorities for user to select one during registration process" %} +{% swagger method="get" path="" baseUrl="/accounts/standard-registries" summary="Returns an array of Standard Registries for user to select one during registration process" %} {% swagger-description %} -Returns all root authorities +Returns all Standard Registries {% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} diff --git a/docs/account-apis/user-listing-except-root-authority-and-auditor.md b/docs/account-apis/user-listing-except-root-authority-and-auditor.md index 34ba351ec4..8602484008 100644 --- a/docs/account-apis/user-listing-except-root-authority-and-auditor.md +++ b/docs/account-apis/user-listing-except-root-authority-and-auditor.md @@ -1,10 +1,10 @@ -# User listing except Root Authority and Auditor +# User listing except Standard Registry and Auditor ### DISPLAYING USERS -{% swagger method="get" path="" baseUrl="/accounts" summary="Returns a list of users, excluding Root Authority and Auditors" %} +{% swagger method="get" path="" baseUrl="/accounts" summary="Returns a list of users, excluding Standard Registry and Auditors" %} {% swagger-description %} -Returns all users except those with roles Root Authority and Auditor. Only users with the Root Authority role are allowed to make the request. +Returns all users except those with roles Standard Registry and Auditor. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} diff --git a/docs/available-policy-workflow-blocks/action-workflow-block.md b/docs/available-policy-workflow-blocks/action-workflow-block.md index 45509b22ef..b865d772a4 100644 --- a/docs/available-policy-workflow-blocks/action-workflow-block.md +++ b/docs/available-policy-workflow-blocks/action-workflow-block.md @@ -2,30 +2,49 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| type | A block to create custom actions. | **InterfaceAction**Block (Can't be changed). | -| tag | Unique name for the logic block. | download\_config\_btn. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | -| type | Specific the type of action workflow action block. | Current options are: SELECTOR (select an action) and DOWNLOAD (download files) | +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------ | +| type | A block to create custom actions. | **InterfaceAction**Block (Can't be changed). | | +| tag | Unique name for the logic block. | download\_config\_btn. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | +| type | Specific the type of action workflow action block. | Current options are: SELECTOR (select an action) and DOWNLOAD (download files) | | ### UI Properties -| UI Property | Definition | -| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Title | Provides the title. | -| Field | Provides the field name. Action workflow type needs to be SELECTOR. | -| Option Name | Provides the name of the option. Action workflow type needs to be SELECTOR. | -| Option Value | Provides the value of the option. Action workflow type needs to be SELECTOR. | -| Bind Block | Specify which block to pass control to. Action workflow type needs to be SELECTOR. | -| UI Class | Button style. Action workflow type needs to be SELECTOR. | -| Button Content | Provide the content for the button. Action workflow type needs to be DOWNLOAD. | -| Schema | Pre-configured schemas relevant for download to be selected from the drop down of available schemas in your Guardian instance. Only needed in the reference implementation of the Guardian because of the IoT Simulator that is generating MRV data. Action workflow type needs to be DOWNLOAD. | -| Target URL | Set the target URL where the file should be stored. Only needed in the reference implementation of the Guardian because of the IoT Simulator that is generating MRV data. Action workflow type needs to be DOWNLOAD. | -| User | Action workflow type needs to be SELECTOR. It determines who will get update actions (Dependencies property in other blocks) and which user will be used in next Blocks. It can be "Current" or "Owner". "Current" - user under which the action is performed. "Owner" - document owner. | +| UI Property | Definition | Status | +| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| Title | Provides the title. | | +| Field | Provides the field name. Action workflow type needs to be SELECTOR. | | +| Option Name | Provides the name of the option. Action workflow type needs to be SELECTOR. | | +| Option Value | Provides the value of the option. Action workflow type needs to be SELECTOR. | | +| Bind Block | Specify which block to pass control to. Action workflow type needs to be SELECTOR. | Deprecated | +| UI Class | Button style. Action workflow type needs to be SELECTOR. | | +| Button Content | Provide the content for the button. Action workflow type needs to be DOWNLOAD. | | +| Schema | Pre-configured schemas relevant for download to be selected from the drop down of available schemas in your Guardian instance. Only needed in the reference implementation of the Guardian because of the IoT Simulator that is generating MRV data. Action workflow type needs to be DOWNLOAD. | | +| Target URL | Set the target URL where the file should be stored. Only needed in the reference implementation of the Guardian because of the IoT Simulator that is generating MRV data. Action workflow type needs to be DOWNLOAD. | | +| User | Action workflow type needs to be SELECTOR. It determines who will get update actions (Dependencies property in other blocks) and which user will be used in next Blocks. It can be "Current" or "Owner". "Current" - user under which the action is performed. "Owner" - document owner. | | +| Option Tag | Name of the dynamic events | | + + + +![](../.gitbook/assets/Events\_10.png) + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). ### API Parameters diff --git a/docs/available-policy-workflow-blocks/aggregatedocumentblock.md b/docs/available-policy-workflow-blocks/aggregatedocumentblock.md index dc79bbdc31..8e61c88e8e 100644 --- a/docs/available-policy-workflow-blocks/aggregatedocumentblock.md +++ b/docs/available-policy-workflow-blocks/aggregatedocumentblock.md @@ -6,15 +6,15 @@ Input - a document or an array of documents which will be aggregated Output - an array of documents, after the reporting period expired or the condition is met -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| tag | Unique name for the logic block. | aggregateDocumentBlock | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | -| AggregateType | Type of Aggregate |

  • Cumulative Dimension
  • Period
| +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------ | +| tag | Unique name for the logic block. | aggregateDocumentBlock | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | +| AggregateType | Type of Aggregate |

  • Cumulative Dimension
  • Period
| | ``` If ‘Aggregate Type’ = ‘Cumulative Dimension’ @@ -37,3 +37,17 @@ If ‘Aggregate Type’ = ‘Period’ | ----------- | ---------------------------- | ------------------------------------------ | | Rule | Type of Rule | Deprecated | | Threshold | Enter threshold calculations | Deprecated | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/buttonblock.md b/docs/available-policy-workflow-blocks/buttonblock.md new file mode 100644 index 0000000000..fda7289721 --- /dev/null +++ b/docs/available-policy-workflow-blocks/buttonblock.md @@ -0,0 +1,25 @@ +# Button Block + +### Properties + +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | +| tag | Unique name for the logic block. | approve\__reject\_btn_ | | +| permissions | Which entity has rights to interact at this part of the workflow. | VVB | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | + +### Button + +| Block Property | Definition | Example Input | Status | +| ------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ------ | +| Type | Type of the Button |

Two types of buttons:
1. Selector : Simply button. 2. Selector - dialog : button with dialog

| | +| Button Tag | Tag of the button will be chosen in events tab | Button\_0 | | +| Dialog Title | pop - up dialog title. this field gets enabled when button type is Selector-dialog | Reject | | +| Dialog Description | It is the text inside dialog pop up. This field is enabled when button type is Selector - dialog | Enter reject reason | | +| Button Name | Label of the button | Validate | | +| Field | Field of document to change | option.status | | +| Value | Value to set | Validated | | +| UI Class | UI class of the button | btn-approve | | +| Filters | array of addition visible filters |

Field (field) – field of document.

Value (value) – field to compare.

Type (type)– type of comparison.

| | diff --git a/docs/available-policy-workflow-blocks/container-workflow-block.md b/docs/available-policy-workflow-blocks/container-workflow-block.md index 6b670c7d55..3b611e78ec 100644 --- a/docs/available-policy-workflow-blocks/container-workflow-block.md +++ b/docs/available-policy-workflow-blocks/container-workflow-block.md @@ -2,13 +2,17 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | A block which contains and organizes other blocks. | **InterfaceContainer**Block (Can't be changed). | -| tag | Unique name for the logic block. | installer\_header. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the apprioriate block from the dropdown. | +| Block Property | Definition | Example Input | Status | +| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | A block which contains and organizes other blocks. | **InterfaceContainer**Block (Can't be changed). | | +| tag | Unique name for the logic block. | installer\_header. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### **UI Properties** @@ -18,6 +22,20 @@ | Type BLANK | Does not contain any frame, will render all child elements one after the other. | | Type TABS | A container which has a tab for each of the child element. It will render the first child element as type "blank". | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path=" 'InterfaceContainerBlock'" baseUrl="blocktype :" summary="" %} diff --git a/docs/available-policy-workflow-blocks/documentssourceaddonblock.md b/docs/available-policy-workflow-blocks/documentssourceaddonblock.md index 15dd113696..e83b64db77 100644 --- a/docs/available-policy-workflow-blocks/documentssourceaddonblock.md +++ b/docs/available-policy-workflow-blocks/documentssourceaddonblock.md @@ -13,10 +13,17 @@ Note: This block is used for dropdown. You can add multiple blocks to 1 grid to | permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | dependencies | Automatic update. The block is automatically re-rendered if any of the linked components gets updated. | Select the appropriate block from the dropdown. | -| dataType | Specify the table to request the data from. | Current options are: Verifiable Credential, DID, Approve, or Hedera. | -| schema | Filters the VC according to the selected scheme | iRec Application Details (1.0.0) PUBLISHED | +| Data Type | Specify the table to request the data from. | Current options are: Verifiable Credential, DID, Approve, or Hedera. | +| Schema | Filters the VC according to the selected scheme | iRec Application Details (1.0.0) PUBLISHED | | onlyOwnDocuments | When checked, filter out only VCs created by the user | checked or unchecked | | onlyAssignDocuments | When checked, it filter only VCs assigned to the user | checked or unchecked | +| ViewHistory | When checked, documents in the Grid will be displayed with status timeline | checked or unchecked | +| Order Field | name of the field | Source | +| Order Direction | Ascending or Descending direction of the order | ASC/DESC | + +{% hint style="info" %} +Note: If no Order Field is specified, but Order Direction is specified, then Order Field will be automatically filled = createDate and data will be sorted by createDate +{% endhint %} ### Filter Properties diff --git a/docs/available-policy-workflow-blocks/events.md b/docs/available-policy-workflow-blocks/events.md new file mode 100644 index 0000000000..50a9c384c9 --- /dev/null +++ b/docs/available-policy-workflow-blocks/events.md @@ -0,0 +1,118 @@ +# Events + +There is a new tab called ‘Events’ for every block in the GUI where events can be configured. The events allow Policy creators to transfer control/execution on exit from the current block to an arbitrary block and thus build non-linear workflows. + +![](../.gitbook/assets/Events\_1.png) + +### Settings: + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + + + +![](../.gitbook/assets/Events\_1.png) + +![](../.gitbook/assets/Events\_2.png) + +{% hint style="info" %} +Note: The event is shown in both source and target blocks tabs regardless of where it was added initially. +{% endhint %} + +### Default Events + +Default events correspond to the implicit default transfer of execution control from the current to the next (adjacent) block graphically represented by the block immediately below the current one. + +Default events can be switched off by setting ‘Disabled’ to ‘true’ on the Events tab, or ‘Stop Propagation’ to ‘true’ on the Properties tab as in the older Guardian versions. + +![](../.gitbook/assets/Events\_3.png) + +### Output Events + +Output events are events which are created by the ‘Source’ blocks. + +**Output Event (enum):** + +**All Blocks:** + +* RunEvent - appears upon the completion of main logic of the block. +* RefreshEvent - triggered upon the changes in the state of the block. + +![](../.gitbook/assets/Events\_9.png) + +**TimerBlock:** + +* TimerEvent – triggered upon each ‘tick’ of the timer + +**switchBlock:** + +* Condition 1..N - each condition expression in the switch block maps to the corresponding event created upon the evaluation of its condition into ‘true’ + +![](../.gitbook/assets/Events\_11.png) + +**InterfaceActionBlock:** + +* Option 1..N - each Option (button) triggers a corresponding event upon the button press action from the user + +![](../.gitbook/assets/Events\_10.png) + +### Input Events + +Input Events are received and processed by the egress interface of the ‘Target’ block. + +**Input Event (enum):** + +**All Blocks:** + +* RunEvent - triggers the execution of the main logic of the block. +* RefreshEvent - triggers the refresh of the block (in the UI it re-draws the component) + +**aggregateDocumentBlock:** + +* TimerEvent - triggers the execution of the time(period)-activated aggregation logic, and passes the aggregated data further + +![](../.gitbook/assets/Events\_12.png) + +**timerBlock:** + +* StartTimerEvent - starts the timer for the user (to ‘tick’ for the time-activated aggregation logic) +* StopTimerEvent – stops the ‘ticking’ timer for the user + +### Event Actor + +Allows to change the user-context of the execution + +_For example_: in the situation where the Standard Registry confirms the form data from the user and the Policy author would like to come back to the execution of the StepBlock as the original user the ‘Document Owner’ should be configured here instead of the ‘Event Initiator’. + +* Event Initiator - Actor which triggered the event. +* Document Owner- Actor is changed to the owner of the document. +* Document Issuer - Actor is changed to the user who signed (confirmed) the document. + +### Viewer + +#### Output events + +![](../.gitbook/assets/Events\_4.png) + +#### Input events + +![](../.gitbook/assets/Events\_5.png) + +#### Default Events + +![](../.gitbook/assets/Events\_6.png) + +#### Tooltips + +![](../.gitbook/assets/Events\_7.png) + +#### Filters + +![](../.gitbook/assets/Events\_8.png) diff --git a/docs/available-policy-workflow-blocks/external-data-workflow-block.md b/docs/available-policy-workflow-blocks/external-data-workflow-block.md index ff9d58d3bc..e8ada792d9 100644 --- a/docs/available-policy-workflow-blocks/external-data-workflow-block.md +++ b/docs/available-policy-workflow-blocks/external-data-workflow-block.md @@ -2,13 +2,26 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------- | -| type | Receives data from the external source and passes them over the the next block. | **externalData**Block (Can't be changed). | -| tag | Unique name for the logic block. | mrv\_source. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| entityType | Specify the type of Entity this workflow block is for. | MRV. | -| schema | Pre-configured schemas relevant for download to be selected from the drop down of available schemas in your Guardian instance. | MRV. | +| Block Property | Definition | Example Input | Status | +| -------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------- | ------------------------------------------ | +| type | Receives data from the external source and passes them over the the next block. | **externalData**Block (Can't be changed). | | +| tag | Unique name for the logic block. | mrv\_source. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| entityType | Specify the type of Entity this workflow block is for. | MRV. | | +| schema | Pre-configured schemas relevant for download to be selected from the drop down of available schemas in your Guardian instance. | MRV. | | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/information-workflow-block.md b/docs/available-policy-workflow-blocks/information-workflow-block.md index 462cbd9f55..0819424ec0 100644 --- a/docs/available-policy-workflow-blocks/information-workflow-block.md +++ b/docs/available-policy-workflow-blocks/information-workflow-block.md @@ -2,14 +2,18 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | A block type which can display a notification or a progress bar. | **InformationBlock** (Can't be changed). | -| tag | Unique name for the logic block. | wait\_for\_approval. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | A block type which can display a notification or a progress bar. | **InformationBlock** (Can't be changed). | | +| tag | Unique name for the logic block. | wait\_for\_approval. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### UI Properties @@ -19,6 +23,24 @@ | Title | Provides the Loader or Text box a title. | | Description | Provides the Loader or Text box a description. | +### Events + + + + + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path="" baseUrl="blockType: 'InformationBlock'" summary="" %} diff --git a/docs/available-policy-workflow-blocks/interfacedocumentssourceblock.md b/docs/available-policy-workflow-blocks/interfacedocumentssourceblock.md index 520c7bc0d3..b61de6245c 100644 --- a/docs/available-policy-workflow-blocks/interfacedocumentssourceblock.md +++ b/docs/available-policy-workflow-blocks/interfacedocumentssourceblock.md @@ -2,14 +2,18 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -| type | A block type which outputs information from the DB as grid. | **InterfaceDocumentsSource** Block (Can't be changed). | -| tag | Unique name for the logic block. | sensors\_grid. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Automatic update. The block is automatically re-rendered if any of the linked components gets updated. | Select the appropriate block from the dropdown. | -| dataType | Specify the table to request the data from. | Current options are: Verifiable Credential, DID, Approve, or Hedera. | +| Block Property | Definition | Example Input | Status | +| -------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------ | +| type | A block type which outputs information from the DB as grid. | **InterfaceDocumentsSource** Block (Can't be changed). | | +| tag | Unique name for the logic block. | sensors\_grid. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Automatic update. The block is automatically re-rendered if any of the linked components gets updated. | Select the appropriate block from the dropdown. | Deprecated | +| dataType | Specify the table to request the data from. | Current options are: Verifiable Credential, DID, Approve, or Hedera. | | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### UI Properties @@ -30,6 +34,20 @@ | Dialogue Content | Provide content for the dialogue box. Needs for the field type to be a BUTTON and Action to be DIALOGUE. | | Dialogue Class | Dialog style. Needs for the field type to be a BUTTON and Action to be DIALOGUE. | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path="" baseUrl="blockType: 'InterfaceDocumentsSource'" summary="" %} diff --git a/docs/available-policy-workflow-blocks/introduction.md b/docs/available-policy-workflow-blocks/introduction.md index fe7fbccc5b..1906b1f286 100644 --- a/docs/available-policy-workflow-blocks/introduction.md +++ b/docs/available-policy-workflow-blocks/introduction.md @@ -28,3 +28,6 @@ Starting with the [Wikipedia definition](https://en.wikipedia.org/wiki/Workflow\ | Switch Block | This block transfers execution to one or more blocks depending on the parameters | [switchblock.md](switchblock.md "mention") | | timerBlock | timer object which triggers the event | [timerblock.md](timerblock.md "mention") | | aggregateDocumentBlock | block responsible for aggregation of the documents | [aggregatedocumentblock.md](aggregatedocumentblock.md "mention") | +| revokeBlock | This Block finds related messages in policy topics, and revokes those messages and sends it to Hedera topic, but it doesn’t save documents in DB | [revokeblock.md](revokeblock.md "mention") | +| setRelationshipsBlock | Contains DocumentSourceAddOn Block and set relationships for input document. | [setrelationshipsblock.md](setrelationshipsblock.md "mention") | +| buttonBlock | Block responsible for creating buttons | [buttonblock.md](buttonblock.md "mention") | diff --git a/docs/available-policy-workflow-blocks/reassigningblock.md b/docs/available-policy-workflow-blocks/reassigningblock.md index 10ee139de8..a89a8b9fdc 100644 --- a/docs/available-policy-workflow-blocks/reassigningblock.md +++ b/docs/available-policy-workflow-blocks/reassigningblock.md @@ -2,14 +2,31 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| type | A block type which re-signs the document and change the user to document owner. | **reassigningBlock** (Can't be changed). | -| tag | Unique name for the logic block. | wait\_for\_approval. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | -| issuer | Person, who will be a Signer |

not set - Current User
owner - document Owner
policyOwner - Policy Owner

| -| actor | Person, who will be next Block Owner |

not set - Current User
owner - document Owner
issuer - document Issuer

| +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------ | +| type | A block type which re-signs the document and change the user to document owner. | **reassigningBlock** (Can't be changed). | | +| tag | Unique name for the logic block. | wait\_for\_approval. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | | +| issuer | Person, who will be a Signer |

not set - Current User
owner - document Owner
policyOwner - Policy Owner

| | +| actor | Person, who will be next Block Owner |

not set - Current User
owner - document Owner
issuer - document Issuer

| | +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/reportblock-and-reportitemblock.md b/docs/available-policy-workflow-blocks/reportblock-and-reportitemblock.md index 8cdc7e58ae..a58edb2102 100644 --- a/docs/available-policy-workflow-blocks/reportblock-and-reportitemblock.md +++ b/docs/available-policy-workflow-blocks/reportblock-and-reportitemblock.md @@ -4,13 +4,27 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | Type of workflow logic | **report**Block(Can't be changed). | -| tag | Unique name for the logic block. | report. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | +| Block Property | Definition | Example Input | Status | +| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | Type of workflow logic | **report**Block(Can't be changed). | | +| tag | Unique name for the logic block. | report. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). ## reportItemBlock diff --git a/docs/available-policy-workflow-blocks/request-workflow-block.md b/docs/available-policy-workflow-blocks/request-workflow-block.md index 7bf3f5f773..d1f3bc454d 100644 --- a/docs/available-policy-workflow-blocks/request-workflow-block.md +++ b/docs/available-policy-workflow-blocks/request-workflow-block.md @@ -2,16 +2,20 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -| type | A type of the block which creates a form from the schema, and sends the document to the server. | **requestVCDocument**Block (Can't be changed). | -| tag | Unique name for the logic block. | add\_new\_installer\_request. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| schema | Pre-configured schemas for the document relevant for policy action requests. Technically, it's the uuid of the schema, which will be used to build the form. | IRec-Application-Details (to be selected from the drop down of available schemas in your Guardian instance). | -| ID Type | Select the type of ID that is populated in the ID field of the Verifiable Credential document. | Current Options are: DID (creates a new DID), UUID (creates a new UUID), and Owner (which uses the DID of the current user). | -| stop propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | +| Block Property | Definition | Example Input | Status | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| type | A type of the block which creates a form from the schema, and sends the document to the server. | **requestVCDocument**Block (Can't be changed). | | +| tag | Unique name for the logic block. | add\_new\_installer\_request. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| schema | Pre-configured schemas for the document relevant for policy action requests. Technically, it's the uuid of the schema, which will be used to build the form. | IRec-Application-Details (to be selected from the drop down of available schemas in your Guardian instance). | | +| ID Type | Select the type of ID that is populated in the ID field of the Verifiable Credential document. | Current Options are: DID (creates a new DID), UUID (creates a new UUID), and Owner (which uses the DID of the current user). | | +| stop propagation | End processing here, don't pass control to the next block. | Checked or Unchecked. | | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### UI Properties @@ -26,6 +30,20 @@ | Dialogue Class | Need to fill out. | | Fields | Need to fill out. | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path="" baseUrl="blockType: 'requestVcDocument'" summary="" %} diff --git a/docs/available-policy-workflow-blocks/retirementdocumentblock.md b/docs/available-policy-workflow-blocks/retirementdocumentblock.md index ccd3b337da..44ceeb8622 100644 --- a/docs/available-policy-workflow-blocks/retirementdocumentblock.md +++ b/docs/available-policy-workflow-blocks/retirementdocumentblock.md @@ -2,14 +2,14 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | Receives the VC from the previous block and retires based on the rule(s). | **retirementDocument**Block(Can't be changed). | -| tag | Unique name for the logic block. | retire\_token. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | Receives the VC from the previous block and retires based on the rule(s). | **retirementDocument**Block(Can't be changed). | | +| tag | Unique name for the logic block. | retire\_token. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | ### UI Properties @@ -17,3 +17,17 @@ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Token | Select which token to retire. The token must exist in the Guardian instance. | | Rule | Rules under which the number of tokens is calculated. Math operations are supported, e.g. the following will result in 20 tokens: data = { amount: 2 } rule = "amount \* 10" | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/revokeblock.md b/docs/available-policy-workflow-blocks/revokeblock.md new file mode 100644 index 0000000000..5c620ddf5d --- /dev/null +++ b/docs/available-policy-workflow-blocks/revokeblock.md @@ -0,0 +1,15 @@ +# revokeBlock + +This Block finds related messages in policy topics, and revokes those messages and sends it to Hedera topic, but it doesn’t save documents in DB. Output of this Block is the documents array. + +### Properties + +| Block Property | Definition | Example Input | Status | +| ------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | +| tag | Unique name for the logic block. | revoke\__issue\_device_ | | +| permissions | Which entity has rights to interact at this part of the workflow. | Registrant | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | +| Update previous document status | flag which updates previous document status. | Checked or unchecked. | | +| Status value | Value of the Previous document status | Waiting for approval | | diff --git a/docs/available-policy-workflow-blocks/roles-workflow-block.md b/docs/available-policy-workflow-blocks/roles-workflow-block.md index eae7551920..1c16f30a61 100644 --- a/docs/available-policy-workflow-blocks/roles-workflow-block.md +++ b/docs/available-policy-workflow-blocks/roles-workflow-block.md @@ -2,14 +2,18 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | A block which determines a role for the user. | **PolicyRoles**Block (Can't be changed). | -| tag | Unique name for the logic block. | choose\_role. | -| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| roles | Available roles from which the user can choose. | Select the appropriate roles from the dropdown. | +| Block Property | Definition | Example Input | Status | +| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | A block which determines a role for the user. | **PolicyRoles**Block (Can't be changed). | | +| tag | Unique name for the logic block. | choose\_role. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Installer. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| roles | Available roles from which the user can choose. | Select the appropriate roles from the dropdown. | | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### UI Properties @@ -18,6 +22,20 @@ | Title | Provide the a title for the role selector. | | Description | Provide a description on the role selection. | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path="" baseUrl="blockType: 'PolicyRolesBlock'" summary="" %} diff --git a/docs/available-policy-workflow-blocks/send-workflow-block.md b/docs/available-policy-workflow-blocks/send-workflow-block.md index 1e59161fd1..d8b901b521 100644 --- a/docs/available-policy-workflow-blocks/send-workflow-block.md +++ b/docs/available-policy-workflow-blocks/send-workflow-block.md @@ -6,9 +6,9 @@ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | | type | A type of the block which can save a new or updated document. | **sendToGuardian**Block (Can't be changed). | | | tag | Unique name for the logic block. | save\_new\_approved\_document. | | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | | defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | | dataType | Where to save the document. | Currently only options are: Verifiable Credential (send to the vc-documents DB table), DID (did-documents DB table), Approve (send to the approve DB table), or Hedera (document would be sent to the corresponding Policy topic in Hedera). | Deprecated | | entityType | Gives the document a label in the DB. Needed for filtering. | Installer. | | | forceNewDocument | Need to fill this out. | Checked or Unchecked. | | @@ -19,3 +19,20 @@ | topic | Topic to send a document if 'dataSource' = 'Hedera' | topic | | | topicOwner | if ‘Hedera Topic’ is selected for the ‘Source Type’ a new optional property ‘Topic Owner’ appears which shows which field determines the User, who will own the topic of the document. This is because in ‘Hedera Topic’ only the template of Topic is selected, not the the topic itself. |

Current User - user whose credentials were used to make the current post request

Document Owner - creator of the document (has default value)

Document Issuer - user which was the last to sign the document

| | +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/setrelationshipsblock.md b/docs/available-policy-workflow-blocks/setrelationshipsblock.md new file mode 100644 index 0000000000..149eedbe33 --- /dev/null +++ b/docs/available-policy-workflow-blocks/setrelationshipsblock.md @@ -0,0 +1,13 @@ +# setRelationshipsBlock + +This Block contains DocumentsSourceAddOn and **set relationships** for input document from DocumentsSourceAddOn documents (messageId’s). It doesn’t save document to database. + +### Properties + +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | +| tag | Unique name for the logic block. | set\__relationships\_to\_rejected\_vvb_ | | +| permissions | Which entity has rights to interact at this part of the workflow. | VVB | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | diff --git a/docs/available-policy-workflow-blocks/step-workflow-block.md b/docs/available-policy-workflow-blocks/step-workflow-block.md index 254d511fe8..fd21f348fc 100644 --- a/docs/available-policy-workflow-blocks/step-workflow-block.md +++ b/docs/available-policy-workflow-blocks/step-workflow-block.md @@ -2,14 +2,18 @@ ### Properties -| Block Property | Definition | Example Input | -| -------------- | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | Similar to the **InterfaceContainer**Block, with the difference that it can only render a single child element. | **InterfaceStep**Block (Can't be changed). | -| tag | Unique name for the logic block. | CSD01 Document. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| cyclic | Go back one step to enable the creation of the previous object. | Checked or unchecked. | +| Block Property | Definition | Example Input | Status | +| -------------- | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | Similar to the **InterfaceContainer**Block, with the difference that it can only render a single child element. | **InterfaceStep**Block (Can't be changed). | | +| tag | Unique name for the logic block. | CSD01 Document. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| cyclic | Go back one step to enable the creation of the previous object. | Checked or unchecked. | | + +{% hint style="info" %} +RefreshEvents are used to refreshing the UI, instead of "dependencies" property. +{% endhint %} ### UI Properties @@ -18,6 +22,20 @@ | Type BLANK | Does not contain any frame, will render all child elements one after the other. | | Type TABS | A container which has a tab for each of the child element. It will render the first child element as type "blank". | +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------- | +| Event Type | - |

Input Event

Output Event

| Type of the event - determines whether this is ingress or egress event for the current block. | | +| Source | "source" | Block tag(string) | The block which initiates the event. | | +| Target | "target" | Block tag(string) | The block which receives the event. | | +| Output Event | "output" | Event name(string) | Action or issue that caused the event. | | +| Input Event | "input" | Event name(string) | Action which will be triggered by the event. | | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | | +| Disabled | "disabled" | True/False | Allows to disable the event without deleting it. | | + +To know more information about events, please look at [events.md](events.md "mention"). + ### API Parameters {% swagger method="get" path="" baseUrl="blockType: 'InterfaceStepBlock'" summary="" %} diff --git a/docs/available-policy-workflow-blocks/switchblock.md b/docs/available-policy-workflow-blocks/switchblock.md index b8bdac0a77..c3d1dbe3d1 100644 --- a/docs/available-policy-workflow-blocks/switchblock.md +++ b/docs/available-policy-workflow-blocks/switchblock.md @@ -2,16 +2,33 @@ ### Properties -| Block Property | Definition | Example Input | -| ------------------ | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| tag | Unique name for the logic Block. | SwitchBlock | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or Unchecked | -| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| -| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked | -| Execution Flow | Flow of Execution |
  1. First True - only the ‘branch’ under the first ‘true’ condition gets executed.
  2. 2. All True - branches under all conditions evaluated as ‘true’ get executed.
| -| Condition(i) | number of the condition | if (field(0))>1 | -| Condition Type | Type of the condition | Equal - resolves as true if the condition is true - Not Equal - resolved as true if the condition is false - Unconditional - always true | -| Condition (String) | condition expression which can contain math formulas | field0 > 0 | -| Actor | the permissions/role context of the execution of the next block | Current User - user under whom the condition is evaluated - Document Owner - the creator of the document - Document Issuer - the signator of the document | -| Target Block | the block which gets executed when the condition is true | Block\_1 | +| Block Property | Definition | Example Input | Status | +| ------------------ | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| tag | Unique name for the logic Block. | SwitchBlock | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or Unchecked | | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or Unchecked | | +| Execution Flow | Flow of Execution |
  1. First True - only the ‘branch’ under the first ‘true’ condition gets executed.
  2. 2. All True - branches under all conditions evaluated as ‘true’ get executed.
| | +| Condition(i) | number of the condition | if (field(0))>1 | | +| Condition Type | Type of the condition | Equal - resolves as true if the condition is true - Not Equal - resolved as true if the condition is false - Unconditional - always true | | +| Condition (String) | condition expression which can contain math formulas | field0 > 0 | | +| Actor | the permissions/role context of the execution of the next block | Current User - user under whom the condition is evaluated - Document Owner - the creator of the document - Document Issuer - the signator of the document | | +| Target Block | the block which gets executed when the condition is true | Block\_1 | Deprecated | +| Condition Tag | The name of the dynamic events to use | Condition 1 | | + +![](../.gitbook/assets/Events\_11.png) + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/timerblock.md b/docs/available-policy-workflow-blocks/timerblock.md index 6fa8707ff3..faaa3f6b96 100644 --- a/docs/available-policy-workflow-blocks/timerblock.md +++ b/docs/available-policy-workflow-blocks/timerblock.md @@ -4,15 +4,29 @@ Input - document which is needed to start the timer for different users separately. -| Block Property | Definition | Example Input | -| ---------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| tag | Unique name for the logic block. | timerBlock | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | -| Start Date | date/time to start the timer | 16-05-2022 16:00 (UTC+04:00) | -| End Date | date/time to stop the timer | 16-05-2022 16:00 (UTC+04:00) | -| Period | specification of the period which which timer triggers (starting from the Start Date) |

Yearly

Monthly

Weekly

Daily

Hourly

Custom - advanced period

configuration

If ‘Period’ = ‘Custom’
Mask - cron mask for timer (example: https://crontab.guru/)
Interval (number) - trigger timer on every tick
(e.g. every two days)

| -| Custom Period | open dialogue window to set Mask and Interval | 0 12 \*\*\*\* 4 | +| Block Property | Definition | Example Input | Status | +| ---------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| tag | Unique name for the logic block. | timerBlock | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| On errors | Called if the system error has occurs in the Block |

  • No action
  • Retry
  • Go to step
  • Go to tag
| | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | +| Start Date | date/time to start the timer | 16-05-2022 16:00 (UTC+04:00) | | +| End Date | date/time to stop the timer | 16-05-2022 16:00 (UTC+04:00) | | +| Period | specification of the period which which timer triggers (starting from the Start Date) |

Yearly

Monthly

Weekly

Daily

Hourly

Custom - advanced period

configuration

If ‘Period’ = ‘Custom’
Mask - cron mask for timer (example: https://crontab.guru/)
Interval (number) - trigger timer on every tick
(e.g. every two days)

| | +| Custom Period | open dialogue window to set Mask and Interval | 0 12 \*\*\*\* 4 | | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/token-mint-workflow-block.md b/docs/available-policy-workflow-blocks/token-mint-workflow-block.md index 698ac402d1..95262cf634 100644 --- a/docs/available-policy-workflow-blocks/token-mint-workflow-block.md +++ b/docs/available-policy-workflow-blocks/token-mint-workflow-block.md @@ -2,14 +2,14 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| tag | Unique name for the logic block. | mint\_token. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| On errors | | | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| tag | Unique name for the logic block. | mint\_token. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| On errors | | | | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | ### UI Properties @@ -17,3 +17,17 @@ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Token | Select which token to mint. The token must exist in the Guardian instance. | | Rule | Rules under which the number of tokens is calculated. Math operations are supported, e.g. the following will result in 20 tokens: data = { amount: 2 } rule = "amount \* 10" | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/available-policy-workflow-blocks/token-wipe-workflow-block.md b/docs/available-policy-workflow-blocks/token-wipe-workflow-block.md index c4e883f329..a3e5b84f82 100644 --- a/docs/available-policy-workflow-blocks/token-wipe-workflow-block.md +++ b/docs/available-policy-workflow-blocks/token-wipe-workflow-block.md @@ -2,14 +2,14 @@ ### Properties -| Block Property | Definition | Example Input | -| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | -| type | Type of workflow logic block. | **wipeDocument**Block (Can't be changed). | -| tag | Unique name for the logic block. | wipe\_token. | -| permissions | Which entity has rights to interact at this part of the workflow. | Root Authority. | -| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | -| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | -| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | +| Block Property | Definition | Example Input | Status | +| ---------------- | --------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------ | +| type | Type of workflow logic block. | **wipeDocument**Block (Can't be changed). | | +| tag | Unique name for the logic block. | wipe\_token. | | +| permissions | Which entity has rights to interact at this part of the workflow. | Standard Registry. | | +| defaultActive | Shows whether this block is active at this time and whether it needs to be shown. | Checked or unchecked. | | +| dependencies | Establish workflow dependancies that need to be completed prior. | Select the appropriate block from the dropdown. | Deprecated | +| stop Propagation | End processing here, don't pass control to the next block. | Checked or unchecked. | | ### UI Properties @@ -17,3 +17,17 @@ | ----------- | -------------------------------------------------------------------------- | | Token | Select which token to wipe. The token must exist in the Guardian instance. | | Rule | Enter any wiping calculations. | + +### Events + +| Property Name | Name in JSON | Property Value | Value in JSON | Description | +| ------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Event Type | - |

Input Event

Output Event

| - | Type of the event - determines whether this is ingress or egress event for the current block. | +| Source | "source" | Block tag(string) | "block\_tag" | The block which initiates the event. | +| Target | "target" | Block tag(string) | "block\_tag" | The block which receives the event. | +| Output Event | "output" | Event name(string) | "event\_name" | Action or issue that caused the event. | +| Input Event | "input" | Event name(string) | "event\_name" | Action which will be triggered by the event. | +| Event Actor | "actor" |

Event Initiator

Document Owner

Document Issuer

|

""

"owner"

"issuer"

| Allows to transfer control of the block (execution context) to another user. Empty field leaves control at the Event Initiator. | +| Disabled | "disabled" | True/False | true/false | Allows to disable the event without deleting it. | + +To know more information about events, please look at [events.md](events.md "mention"). diff --git a/docs/demo-guide/api-workflow-of-irec-demo.md b/docs/demo-guide/api-workflow-of-irec-demo.md index a1a6cb87dd..b0779ee702 100644 --- a/docs/demo-guide/api-workflow-of-irec-demo.md +++ b/docs/demo-guide/api-workflow-of-irec-demo.md @@ -1,10 +1,10 @@ # iREC 2 API Demo Guide -## Root Authority +## Standard Registry ### Create Root Account -{% swagger method="post" path="" baseUrl="/account/register" summary="Creating Root Authority" %} +{% swagger method="post" path="" baseUrl="/account/register" summary="Creating Standard Registry" %} {% swagger-description %} To create a Root Account {% endswagger-description %} @@ -18,7 +18,7 @@ rootPassword {% endswagger-parameter %} {% swagger-parameter in="body" name="role" type="String" required="true" %} -ROOT_AUTHORITY +STANDARD_REGISTRY {% endswagger-parameter %} {% swagger-response status="201: Created" description="Successful Operation" %} @@ -28,18 +28,18 @@ ROOT_AUTHORITY "password": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "did": null, "parent": null, - "role": "ROOT_AUTHORITY", + "role": "STANDARD_REGISTRY", "id": "627d4b99ab3cae7c07025893" } ``` {% endswagger-response %} {% endswagger %} -### Login as Root Authority +### Login as Standard Registry {% swagger method="post" path="" baseUrl="/accounts/login" summary="Login to the Root Account" %} {% swagger-description %} -Login as Root Authority +Login as Standard Registry {% endswagger-description %} {% swagger-parameter in="body" name="username" type="String" required="true" %} @@ -55,7 +55,7 @@ Password { "username": "1tckto80", "did": null, - "role": "ROOT_AUTHORITY", + "role": "STANDARD_REGISTRY", "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjF0Y2t0bzgwIiwiZGlkIjpudWxsLCJyb2xlIjoiUk9PVF9BVVRIT1JJVFkiLCJpYXQiOjE2NTIzNzk5MDR9.xo6WrNhW5uPfpxBICgTHqyip7TFk2GnrUHtMTJ-TKgU" } ``` @@ -81,7 +81,7 @@ Generating Root Key ### Update Root Profile -{% swagger method="put" path="{rootUsername}" baseUrl="/profiles/" summary="Updating Profile of Root Authority" %} +{% swagger method="put" path="{rootUsername}" baseUrl="/profiles/" summary="Updating Profile of Standard Registry" %} {% swagger-description %} {% endswagger-description %} @@ -101,7 +101,7 @@ rootKey ### Get Root Profile -{% swagger method="get" path="" baseUrl="/profiles/{rootUsername}" summary="Getting Root Authority Profile Details" %} +{% swagger method="get" path="" baseUrl="/profiles/{rootUsername}" summary="Getting Standard Registry Profile Details" %} {% swagger-description %} {% endswagger-description %} @@ -110,7 +110,7 @@ rootKey ```javascript { "username": "1tckto80", - "role": "ROOT_AUTHORITY", + "role": "STANDARD_REGISTRY", "did": "did:hedera:testnet:F9Nhh3jSvVX6sErMuy95WkEr2fqCuWzZFsoq8YWRQdvD;hedera:testnet:tid=0.0.34751333", "parent": null, "hederaAccountId": "0.0.34751301", @@ -177,7 +177,7 @@ rootKey "updateDate": "2022-05-12T18:43:09.924Z", "hederaStatus": "ISSUE", "signature": 0, - "type": "ROOT_AUTHORITY", + "type": "STANDARD_REGISTRY", "option": {}, "messageId": "1652380995.021714404", "topicId": "0.0.34751333" @@ -9604,2565 +9604,9817 @@ null {% endswagger-response %} {% endswagger %} -#### +#### Getting Device Schema -### Setting up the User Role - -BLOCK : choose\_role - -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="User Role" %} -{% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/88ea01cb-35ae-4e4d-87ce-ec93d577cd30 -{% endswagger-description %} - -{% swagger-parameter in="body" name="role" type="String" required="true" %} -Registrant -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Submitting Registrant Application Form - -BLOCK : create\_application - -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Registrant Application form to be submitted" %} +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{create_device_form_uuid}}" summary="Device Schema Details" %} {% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/8ae8f020-42ed-4692-9d93-4d700d467bd0 -{% endswagger-description %} - -{% swagger-parameter in="body" name="document" %} - "field0":"2022-04-01", - - "field1":{ - - "field0":"Applicant Legal Name", - - "field1":"Registered address line 1", - - "field2":"Registered address line 2", - - "field3":"Registered address line 3", - - "field4":"Postal (ZIP) code", - - "field5":"Country", - - "field6":"Legal Status", - - "field7":"Country of company registration/private residence", - - "field8":"Corporate registration number/passport number", - - "field9":"VAT number", - - "field10":"Website URL", - - "field11":"Main business (e.g. food retailer)", - - "field12":2022, - - "field13":1, - - "field14":"Name of the Chief Executive Officer/General Manager", - - "field15":"Chief Executive Officer/General Manager passport number", - - "field16":"Please state in which countries the organization is active", - - "field17":"Please list the main (>10%) shareholders", - - "field18":1, - - "field19":"test@mail.ru", - - "type":"4510d95d-ed9d-4785-a5ed-5c1e334611dd", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field2":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field3":{ - - "field0":"Family Name (surname)", - - "field1":"Other (Given) Names", - - "field2":"Title", - - "field3":"test@mail.ru", - - "field4":"Telephone", - - "field5":"Fax", - - "type":"fb8c1458-e86f-444a-a408-665149bda777", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "type":"762694d6-8fbb-4377-ae3e-ef400bbc3ea5&1.0.0", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="ref" %} -null -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Root Authority (Get Registrant Application to Approve) - -#### Make GET request and get data\[i] and change option.status = “Approved” - -BLOCK : registrants\_grid - -{% swagger method="get" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Getting Registrant Application for approval" %} -{% swagger-description %} -/policies/626c0490d24497fe1b1e415d/blocks/2f237418-9ed5-4a1e-a2ea-c7f978554784 {% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - "data":[ - { - "id":"626c056cd24497fe1b1e4163", - "owner":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "hash":"GkX1mNd5wxWKCdkBYC6PBGHm9jmkNzsjb9ycqcP4jgPb", - "document":{ - "id":"9d537f1d-c906-4013-9ac6-c6a0fd211e4a", - "type":[ - "VerifiableCredential" - ], - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "issuanceDate":"2022-04-29T15:33:48.168Z", - "@context":[ - "https://www.w3.org/2018/credentials/v1" - ], - "credentialSubject":[ - { - "field0":"2022-04-08", - "field1":{ - "field0":"Applicant Legal Name", - "field1":"Registered address line 1", - "field2":"Registered address line 2", - "field3":"Registered address line 3", - "field4":"Postal (ZIP) code", - "field5":"Country", - "field6":"Legal Status", - "field7":"Country of company registration/private residence", - "field8":"Corporate registration number/passport number", - "field9":"VAT number", - "field10":"Website URL", - "field11":"Main business (e.g. food retailer)", - "field12":1, - "field13":1, - "field14":"Name of the Chief Executive Officer/General Manager", - "field15":"Chief Executive Officer/General Manager passport number", - "field16":"Please state in which countries the organization is active", - "field17":"Please list the main (>10%) shareholders", - "field18":1, - "field19":"test@mail.ru", - "type":"f7bd122d-4220-4d9d-abb2-fa9366e79975", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "field2":{ - "field0":"Organization Name", - "field1":"Address line 1", - "field2":"Address line 2", - "field3":"Address line 3", - "field4":"Postal code", - "field5":"Country", - "field6":"Contact person", - "field7":"test@mail.ru", - "field8":"Telephone", - "field9":"Fax", - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - "type":"a68073e6-bf56-43e3-99c4-5b433c983654", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "field3":{ - "field0":"Family Name (surname)", - "field1":"Other (Given) Names", - "field2":"Title", - "field3":"test@mail.ru", - "field4":"Telephone", - "field5":"Fax", - "type":"9dca2898-d548-48a4-beec-fefd308f93cf", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "policyId":"626c0490d24497fe1b1e415d", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ], - "id":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "type":"7b652d73-5978-45b4-992e-cc3ce732e27a&1.0.0" - } + "id": "fa1688ba-85de-4944-b7d4-698da4338fb4", + "blockType": "requestVcDocumentBlock", + "schema": { + "userDID": null, + "id": "628d2751b51d44b0198a30ad", + "uuid": "00526b15-79e2-4432-90d6-c895cee289b1", + "hash": "", + "name": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "version": "1.0.0", + "creator": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "owner": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "topicId": "0.0.34904155", + "messageId": "1653417825.201434396", + "documentURL": "https://ipfs.io/ipfs/bafkreihesagko7flofgvb3smausrt5nejp4zxm5puwj4cgsyehtfeilyu4", + "contextURL": "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e", + "iri": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "document": { + "$id": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "$comment": "{\"term\": \"00526b15-79e2-4432-90d6-c895cee289b1&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0\"}", + "title": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Date", + "description": "Date", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field2": { + "title": "Is the Registrant also the owner of the Device? (provide evidence) ", + "description": "Is the Registrant also the owner of the Device? (provide evidence) ", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "$ref": "#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field4": { + "title": "Production Device Details", + "description": "Production Device Details", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#11496321-dbb9-423c-ba00-883983e0859f\"}", + "$ref": "#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field5": { + "title": "Energy Sources", + "description": "Energy Sources", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#c20662fc-7d19-4f9f-b190-d7b219dda16f\"}", + "$ref": "#c20662fc-7d19-4f9f-b190-d7b219dda16f" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field3", + "field4", + "field5", + "policyId" ], - "proof":{ - "type":"Ed25519Signature2018", - "created":"2022-04-29T15:33:48Z", - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - "proofPurpose":"assertionMethod", - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..GaOyMZ9dR5J0-iu6SICVNlWifON3DT0ytz2z_eCHeOSRY5oQ7Jb3219G7aUrztIEppMcfzG6teO-YvuNPiAfBw" - } - }, - "createDate":"2022-04-29T15:34:04.021Z", - "updateDate":"2022-04-29T15:34:04.021Z", - "hederaStatus":"ISSUE", - "signature":0, - "type":"registrant", - "policyId":"626c0490d24497fe1b1e415d", - "tag":"create_application(db)", - "option":{ - "status":"Waiting for approval" - }, - "schema":"#7b652d73-5978-45b4-992e-cc3ce732e27a&1.0.0", - "messageId":"1651246443.516813000", - "topicId":"0.0.34352381", - "relationships":[ - - ], - "__sourceTag__":"registrants_source(need_approve)" - } - ], - "blocks":[ - - ], - "commonAddons":[ - { - "id":"c0dbe6b1-6963-4010-9dc4-c676679376dd", - "blockType":"documentsSourceAddon" - }, - { - "id":"540a115b-a94e-4d16-af46-e4b817f07b98", - "blockType":"documentsSourceAddon" - } - ], - "fields":[ - { - "title":"Legal Name", - "name":"document.credentialSubject.0.field1.field0", - "type":"text" - }, - { - "title":"Organization Name", - "name":"document.credentialSubject.0.field2.field0", - "type":"text" - }, - { - "title":"Operation", - "name":"option.status", - "type":"text", - "width":"250px", - "bindGroup":"registrants_source(approved)", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"" - }, - { - "title":"Operation", - "name":"option.status", - "tooltip":"", - "type":"block", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"approve_registrant_btn", - "width":"250px", - "bindGroup":"registrants_source(need_approve)" - }, - { - "name":"document", - "title":"Document", - "tooltip":"", - "type":"button", - "action":"dialog", - "content":"View Document", - "uiClass":"link", - "dialogContent":"VC", - "dialogClass":"", - "dialogType":"json" - } - ] -} - -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Root Authority (Approve Registrant Application) - -BLOCK : approve\_registrant\_btn - -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Approving Registrant Application" %} -{% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/7f091726-126e-4bc7-8e2e-9cd7bb220ed0 -{% endswagger-description %} - -{% swagger-parameter in="body" name="id" %} -626bf6ddd24497fe1b1e413f -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="owner" %} -did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="hash" %} -25J2gLm7phAEFu5yyQtVa8WqjUd8pDaxX1n6CtKR91rQ -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="document" %} - "id":"ebdc5776-e756-4cda-8e10-04c04adc535b", - - "type":\[ - - "VerifiableCredential" - - ], - - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "issuanceDate":"2022-04-29T14:31:39.500Z", - - "@context":\[ - - "https://www.w3.org/2018/credentials/v1" - - ], - - "credentialSubject":\[ - - { - - "field0":"2022-04-01", - - "field1":{ - - "field0":"Applicant Legal Name", - - "field1":"Registered address line 1", - - "field2":"Registered address line 2", - - "field3":"Registered address line 3", - - "field4":"Postal (ZIP) code", - - "field5":"Country", - - "field6":"Legal Status", - - "field7":"Country of company registration/private residence", - - "field8":"Corporate registration number/passport number", - - "field9":"VAT number", - - "field10":"Website URL", - - "field11":"Main business (e.g. food retailer)", - - "field12":2022, - - "field13":1, - - "field14":"Name of the Chief Executive Officer/General Manager", - - "field15":"Chief Executive Officer/General Manager passport number", - - "field16":"Please state in which countries the organization is active", - - "field17":"Please list the main (>10%) shareholders", - - "field18":1, - - "field19":"test@mail.ru", - - "type":"4510d95d-ed9d-4785-a5ed-5c1e334611dd", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field2":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field3":{ - - "field0":"Family Name (surname)", - - "field1":"Other (Given) Names", - - "field2":"Title", - - "field3":"test@mail.ru", - - "field4":"Telephone", - - "field5":"Fax", - - "type":"fb8c1458-e86f-444a-a408-665149bda777", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "policyId":"626bf178d24497fe1b1e4139", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ], - - "id":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "type":"762694d6-8fbb-4377-ae3e-ef400bbc3ea5&1.0.0" - - } - - ], - - "proof":{ - - "type":"Ed25519Signature2018", - - "created":"2022-04-29T14:31:39Z", - - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - - "proofPurpose":"assertionMethod", - - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..I1EzRS7Ct-CaDMaNYuMKi\_GseppZm9jtIJMZbilchmWlV7W3mNsapSSche8UzAWYfKnhwjQuwvlMr0c8HlVEBQ" - - } -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="createDate" %} -2022-04-29T14:31:57.918Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="updateDate" %} -2022-04-29T14:31:57.918Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="hederaStatus" %} -ISSUE -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="signature" %} -0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="type" %} -registrant -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="policyID" %} -626bf178d24497fe1b1e4139 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="tag" %} -create_application(db) -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="option" %} -{ - - "status":"Approved" - - }, -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="schema" %} -\#762694d6-8fbb-4377-ae3e-ef400bbc3ea5&1.0.0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="messageId" %} -1651242715.948867898 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="topidId" %} -0.0.34350746 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="relationships" %} -null -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="__sourceTag__" %} -registrants_source(need_approve) -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### User (CREATE DEVICE) - -BLOCK : create\_device\_form - -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Creating Device" %} -{% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/3db29027-8753-4e7f-af40-ca31b72ce95c -{% endswagger-description %} - -{% swagger-parameter in="body" name="document" %} -"field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "field1":"2022-04-08", - - "field2":"Is the Registrant also the owner of the Device? (provide evidence)", - - "field3":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "field4":{ - - "field0":"Device Name", - - "field1":"Address", - - "field2":"Postal code", - - "field3":"Country", - - "field4":"Longitude", - - "field5":"Latitude", - - "field6":"TSO’s ID for measurement point", - - "field7":1, - - "field8":1, - - "field9":"2022-04-29", - - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - - "field12":"Expected form of volume evidence", - - "field13":"If other please specify", - - "type":"fd49e6e4-58d7-425a-9518-9a2c4a178b15", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "field5":{ - - "field0":"Energy Source (Input) – see Appendix 2", - - "field1":"Technology – see Appendix 2", - - "field2":true, - - "field3":"If yes give details", - - "field4":true, - - "field5":"If yes give details", - - "field6":"Please give details of how the site can import electricity by means other than through the meter(s) specified above", - - "field7":"Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", - - "field8":"Please identify any labeling schemes for which the Device is accredited", - - "field9":true, - - "field10":"If public (government) funding has been received when did/will it finish?", - - "field11":"2022-04-29", - - "field12":"Preferred I-REC Device Verifier", - - "type":"d7a15512-bb46-4826-864d-1e37bf7b321f", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "type":"4713cc2e-4036-49b6-ba19-6475ed590c33&1.0.0", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="ref" %} - "id":"626bf76ad24497fe1b1e4140", - - "owner":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "hash":"BQTRbH4qtRfAXWW8T7EAa5vEncnNEEnaj8CT2ax7YJBs", - - "document":{ - - "id":"849228e1-4c7d-4bf4-8eb4-df1f3c24429b", - - "type":\[ - - "VerifiableCredential" - - ], - - "issuer":"did:hedera:testnet:A7cP5xLNaF5LPtXkDUTsP6fATh4uarAjCujnZ3qR2vcw;hedera:testnet:tid=0.0.34349531", - - "issuanceDate":"2022-04-29T14:34:10.327Z", - - "@context":\[ - - "https://www.w3.org/2018/credentials/v1" - - ], - - "credentialSubject":\[ - - { - - "field0":"2022-04-01", - - "field1":{ - - "field0":"Applicant Legal Name", - - "field1":"Registered address line 1", - - "field2":"Registered address line 2", - - "field3":"Registered address line 3", - - "field4":"Postal (ZIP) code", - - "field5":"Country", - - "field6":"Legal Status", - - "field7":"Country of company registration/private residence", - - "field8":"Corporate registration number/passport number", - - "field9":"VAT number", - - "field10":"Website URL", - - "field11":"Main business (e.g. food retailer)", - - "field12":2022, - - "field13":1, - - "field14":"Name of the Chief Executive Officer/General Manager", - - "field15":"Chief Executive Officer/General Manager passport number", - - "field16":"Please state in which countries the organization is active", - - "field17":"Please list the main (>10%) shareholders", - - "field18":1, - - "field19":"test@mail.ru", - - "type":"4510d95d-ed9d-4785-a5ed-5c1e334611dd", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field2":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "field3":{ - - "field0":"Family Name (surname)", - - "field1":"Other (Given) Names", - - "field2":"Title", - - "field3":"test@mail.ru", - - "field4":"Telephone", - - "field5":"Fax", - - "type":"fb8c1458-e86f-444a-a408-665149bda777", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ] - - }, - - "policyId":"626bf178d24497fe1b1e4139", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreighh26v7eg7xsfzie674yhgz4ph3wf5yjadbec4wynyfevoshtdty" - - ], - - "id":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "type":"762694d6-8fbb-4377-ae3e-ef400bbc3ea5&1.0.0" - - } - - ], - - "proof":{ - - "type":"Ed25519Signature2018", - - "created":"2022-04-29T14:34:10Z", - - "verificationMethod":"did:hedera:testnet:A7cP5xLNaF5LPtXkDUTsP6fATh4uarAjCujnZ3qR2vcw;hedera:testnet:tid=0.0.34349531#did-root-key", - - "proofPurpose":"assertionMethod", - - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..rjry6W0iAoXzRx7Upb6hxeu0LbxjuNwDULq2p4IIQsOFwY5h4zxBCOVZIGmwIJ\_xY2a0V0-pyX1xTwTUV8aPDQ" - - } - - }, - - "createDate":"2022-04-29T14:34:18.048Z", - - "updateDate":"2022-04-29T14:34:18.048Z", - - "hederaStatus":"ISSUE", - - "signature":0, - - "type":"registrant(Approved)", - - "policyId":"626bf178d24497fe1b1e4139", - - "tag":"save\_copy\_application", - - "option":{ - - "status":"Approved" - - }, - - "schema":"#762694d6-8fbb-4377-ae3e-ef400bbc3ea5&1.0.0", - - "messageId":"1651242856.179215415", - - "topicId":"0.0.34350746", - - "relationships":\[ - - "1651242715.948867898" - - ], - - "\_\_sourceTag\_\_":"current\_registrant" - - } -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Root Authority (Get Device to Approve) - -#### Make GET request and get data\[i] and change option.status = “Approved”: - -BLOCK : approve\_devices\_grid - -{% swagger method="get" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Submitting Device for Approval" %} -{% swagger-description %} -/policies/626c0490d24497fe1b1e415d/blocks/2d99bfd9-38d3-4777-abda-f1ea5cecb613 -{% endswagger-description %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - "data":[ - { - "id":"626c056cd24497fe1b1e4163", - "owner":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "hash":"GkX1mNd5wxWKCdkBYC6PBGHm9jmkNzsjb9ycqcP4jgPb", - "document":{ - "id":"9d537f1d-c906-4013-9ac6-c6a0fd211e4a", - "type":[ - "VerifiableCredential" + "additionalProperties": false, + "$defs": { + "#74a38111-b583-47c3-93b9-e453132ecbb5": { + "$id": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "$comment": "{\"term\": \"74a38111-b583-47c3-93b9-e453132ecbb5\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#11496321-dbb9-423c-ba00-883983e0859f": { + "$id": "#11496321-dbb9-423c-ba00-883983e0859f", + "$comment": "{\"term\": \"11496321-dbb9-423c-ba00-883983e0859f\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#c20662fc-7d19-4f9f-b190-d7b219dda16f": { + "$id": "#c20662fc-7d19-4f9f-b190-d7b219dda16f", + "$comment": "{\"term\": \"c20662fc-7d19-4f9f-b190-d7b219dda16f\", \"@id\": \"https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#c20662fc-7d19-4f9f-b190-d7b219dda16f\"}", + "title": "Energy Sources", + "description": "Energy Sources", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Energy Source (Input) – see Appendix 2", + "description": "Energy Source (Input) – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Technology – see Appendix 2", + "description": "Technology – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "On-site consumer present?", + "description": "On-site consumer present?", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field3": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Auxiliary/standby energy sources present?", + "description": "Auxiliary/standby energy sources present?", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field5": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "description": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "description": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field8": { + "title": "Please identify any labeling schemes for which the Device is accredited", + "description": "Please identify any labeling schemes for which the Device is accredited", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "description": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field10": { + "title": "If public (government) funding has been received when did/will it finish?", + "description": "If public (government) funding has been received when did/will it finish?", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "description": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field12": { + "title": "Preferred I-REC Device Verifier", + "description": "Preferred I-REC Device Verifier", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "74a38111-b583-47c3-93b9-e453132ecbb5": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "11496321-dbb9-423c-ba00-883983e0859f": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "c20662fc-7d19-4f9f-b190-d7b219dda16f": { + "@id": "https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#c20662fc-7d19-4f9f-b190-d7b219dda16f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + } + } + }, + "00526b15-79e2-4432-90d6-c895cee289b1&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field4": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field5": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#c20662fc-7d19-4f9f-b190-d7b219dda16f" + } + } + } + } + }, + "type": "00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "fields": [ + { + "name": "field0", + "title": "Registrant Id", + "description": "Registrant Id", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Date", + "description": "Date", + "type": "string", + "format": "date", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Is the Registrant also the owner of the Device? (provide evidence) ", + "description": "Is the Registrant also the owner of the Device? (provide evidence) ", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "Registrant Details", + "description": "Registrant Details", + "type": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "format": null, + "pattern": null, + "required": true, + "isRef": true, + "isArray": false, + "readOnly": false, + "fields": [ + { + "name": "field0", + "title": "Organization Name", + "description": "Organization Name", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Address line 1", + "description": "Address line 1", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Address line 2", + "description": "Address line 2", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "Address line 3", + "description": "Address line 3", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field4", + "title": "Postal code", + "description": "Postal code", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "Country", + "description": "Country", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "Contact person", + "description": "Contact person", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "e-mail", + "description": "e-mail", + "type": "string", + "format": "email", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Telephone", + "description": "Telephone", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Fax", + "description": "Fax", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "context": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ] + }, + "conditions": [] + }, + { + "name": "field4", + "title": "Production Device Details", + "description": "Production Device Details", + "type": "#11496321-dbb9-423c-ba00-883983e0859f", + "format": null, + "pattern": null, + "required": true, + "isRef": true, + "isArray": false, + "readOnly": false, + "fields": [ + { + "name": "field0", + "title": "Device Name", + "description": "Device Name", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Address", + "description": "Address", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Postal code", + "description": "Postal code", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "Country", + "description": "Country", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field4", + "title": "Longitude", + "description": "Longitude", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "Latitude", + "description": "Latitude", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "type": "number", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Number of generating units", + "description": "Number of generating units", + "type": "integer", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Date of commissioning", + "description": "Date of commissioning", + "type": "string", + "format": "date", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field11", + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field12", + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field13", + "title": "If other please specify", + "description": "If other please specify", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "context": { + "type": "11496321-dbb9-423c-ba00-883983e0859f", + "context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ] + }, + "conditions": [] + }, + { + "name": "field5", + "title": "Energy Sources", + "description": "Energy Sources", + "type": "#c20662fc-7d19-4f9f-b190-d7b219dda16f", + "format": null, + "pattern": null, + "required": true, + "isRef": true, + "isArray": false, + "readOnly": false, + "fields": [ + { + "name": "field0", + "title": "Energy Source (Input) – see Appendix 2", + "description": "Energy Source (Input) – see Appendix 2", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Technology – see Appendix 2", + "description": "Technology – see Appendix 2", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "On-site consumer present?", + "description": "On-site consumer present?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "If yes give details", + "description": "If yes give details", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field4", + "title": "Auxiliary/standby energy sources present?", + "description": "Auxiliary/standby energy sources present?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "If yes give details", + "description": "If yes give details", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "description": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "description": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Please identify any labeling schemes for which the Device is accredited", + "description": "Please identify any labeling schemes for which the Device is accredited", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "description": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "If public (government) funding has been received when did/will it finish?", + "description": "If public (government) funding has been received when did/will it finish?", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field11", + "title": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "description": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "type": "string", + "format": "date", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field12", + "title": "Preferred I-REC Device Verifier", + "description": "Preferred I-REC Device Verifier", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "context": { + "type": "c20662fc-7d19-4f9f-b190-d7b219dda16f", + "context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ] + }, + "conditions": [] + } + ], + "conditions": [] + }, + "presetSchema": "#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0", + "presetFields": [ + { + "name": "field0", + "title": "Registrant Id", + "value": "id", + "readonly": false + }, + { + "name": "field1", + "title": "Date", + "readonly": false + }, + { + "name": "field2", + "title": "Is the Registrant also the owner of the Device? (provide evidence) ", + "readonly": false + }, + { + "name": "field3", + "title": "Registrant Details", + "value": "field2", + "readonly": false + }, + { + "name": "field4", + "title": "Production Device Details", + "readonly": false + }, + { + "name": "field5", + "title": "Energy Sources", + "readonly": false + } + ], + "uiMetaData": { + "type": "dialog", + "content": "Create New Device", + "dialogContent": "Device Registration" + }, + "hideFields": [], + "active": true, + "data": { + "id": "628d281cb51d44b0198a30bb", + "owner": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "hash": "2qN3ZbP2h7YaNXpE8vJuaPLkMRBoo9vrL2kQhkHSA71d", + "document": { + "id": "47cb8d81-1dea-429c-b627-190afba7ea74", + "type": [ + "VerifiableCredential" ], - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "issuanceDate":"2022-04-29T15:33:48.168Z", - "@context":[ - "https://www.w3.org/2018/credentials/v1" + "issuer": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "issuanceDate": "2022-05-24T18:46:48.165Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" ], - "credentialSubject":[ - { - "field0":"2022-04-08", - "field1":{ - "field0":"Applicant Legal Name", - "field1":"Registered address line 1", - "field2":"Registered address line 2", - "field3":"Registered address line 3", - "field4":"Postal (ZIP) code", - "field5":"Country", - "field6":"Legal Status", - "field7":"Country of company registration/private residence", - "field8":"Corporate registration number/passport number", - "field9":"VAT number", - "field10":"Website URL", - "field11":"Main business (e.g. food retailer)", - "field12":1, - "field13":1, - "field14":"Name of the Chief Executive Officer/General Manager", - "field15":"Chief Executive Officer/General Manager passport number", - "field16":"Please state in which countries the organization is active", - "field17":"Please list the main (>10%) shareholders", - "field18":1, - "field19":"test@mail.ru", - "type":"f7bd122d-4220-4d9d-abb2-fa9366e79975", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "field2":{ - "field0":"Organization Name", - "field1":"Address line 1", - "field2":"Address line 2", - "field3":"Address line 3", - "field4":"Postal code", - "field5":"Country", - "field6":"Contact person", - "field7":"test@mail.ru", - "field8":"Telephone", - "field9":"Fax", - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - "type":"a68073e6-bf56-43e3-99c4-5b433c983654", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "field3":{ - "field0":"Family Name (surname)", - "field1":"Other (Given) Names", - "field2":"Title", - "field3":"test@mail.ru", - "field4":"Telephone", - "field5":"Fax", - "type":"9dca2898-d548-48a4-beec-fefd308f93cf", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ] - }, - "policyId":"626c0490d24497fe1b1e415d", - "@context":[ - "https://ipfs.io/ipfs/bafkreiess6ak6lwlhar55ezckdwo6y7ki3wlyzyl3a7tadda2zuqaxwmbm" - ], - "id":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "type":"7b652d73-5978-45b4-992e-cc3ce732e27a&1.0.0" - } + "credentialSubject": [ + { + "field0": "2022-05-11", + "field1": { + "type": "4e8d5404-892d-48ed-b63f-b7a009c0eba1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiecxdjqan75ufso7ofgc65ywrx7ettqigvtuovr4jl7rtss4abx2u" + ], + "field0": "Applicant Legal Name", + "field1": "Registered address line 1", + "field2": "Registered address line 2", + "field3": "Registered address line 3", + "field4": "Postal (ZIP) code", + "field5": "Country", + "field6": "Legal Status", + "field7": "Country of company registration/private residence", + "field8": "Corporate registration number/passport number", + "field9": "VAT number", + "field10": "Website URL", + "field11": "Main business (e.g. food retailer)", + "field12": 1, + "field13": 1, + "field14": "Name of the Chief Executive Officer/General Manager", + "field15": "Chief Executive Officer/General Manager passport number", + "field16": "Please state in which countries the organization is active", + "field17": "Please list the main (>10%) shareholders", + "field18": 1, + "field19": "email@email.com" + }, + "field2": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": [ + "https://ipfs.io/ipfs/bafkreiecxdjqan75ufso7ofgc65ywrx7ettqigvtuovr4jl7rtss4abx2u" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "a772f46e-2764-4909-b1a1-287c09d7a785", + "@context": [ + "https://ipfs.io/ipfs/bafkreiecxdjqan75ufso7ofgc65ywrx7ettqigvtuovr4jl7rtss4abx2u" + ], + "field0": "Family Name (surname)", + "field1": "Other (Given) Names", + "field2": "Title", + "field3": "email@email.com", + "field4": "123456789", + "field5": "Fax" + }, + "policyId": "628d2752b51d44b0198a30af", + "@context": [ + "https://ipfs.io/ipfs/bafkreiecxdjqan75ufso7ofgc65ywrx7ettqigvtuovr4jl7rtss4abx2u" + ], + "id": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "type": "ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0" + } ], - "proof":{ - "type":"Ed25519Signature2018", - "created":"2022-04-29T15:33:48Z", - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - "proofPurpose":"assertionMethod", - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..GaOyMZ9dR5J0-iu6SICVNlWifON3DT0ytz2z_eCHeOSRY5oQ7Jb3219G7aUrztIEppMcfzG6teO-YvuNPiAfBw" + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-24T18:46:48Z", + "verificationMethod": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..w0WCNVC15mRZuLtbGBNk2GymjkJ1yyoBAXzWtgDlofjWut8y-E5D160If_47oTCW2mRc5mi3LtqTLBEPeaFeCg" } - }, - "createDate":"2022-04-29T15:34:04.021Z", - "updateDate":"2022-04-29T15:34:04.021Z", - "hederaStatus":"ISSUE", - "signature":0, - "type":"registrant", - "policyId":"626c0490d24497fe1b1e415d", - "tag":"create_application(db)", - "option":{ - "status":"Waiting for approval" - }, - "schema":"#7b652d73-5978-45b4-992e-cc3ce732e27a&1.0.0", - "messageId":"1651246443.516813000", - "topicId":"0.0.34352381", - "relationships":[ - - ], - "__sourceTag__":"registrants_source(need_approve)" - } - ], - "blocks":[ - - ], - "commonAddons":[ - { - "id":"c0dbe6b1-6963-4010-9dc4-c676679376dd", - "blockType":"documentsSourceAddon" - }, - { - "id":"540a115b-a94e-4d16-af46-e4b817f07b98", - "blockType":"documentsSourceAddon" - } - ], - "fields":[ - { - "title":"Legal Name", - "name":"document.credentialSubject.0.field1.field0", - "type":"text" - }, - { - "title":"Organization Name", - "name":"document.credentialSubject.0.field2.field0", - "type":"text" - }, - { - "title":"Operation", - "name":"option.status", - "type":"text", - "width":"250px", - "bindGroup":"registrants_source(approved)", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"" - }, - { - "title":"Operation", - "name":"option.status", - "tooltip":"", - "type":"block", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"approve_registrant_btn", - "width":"250px", - "bindGroup":"registrants_source(need_approve)" - }, - { - "name":"document", - "title":"Document", - "tooltip":"", - "type":"button", - "action":"dialog", - "content":"View Document", - "uiClass":"link", - "dialogContent":"VC", - "dialogClass":"", - "dialogType":"json" - } - ] -} - -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + }, + "createDate": "2022-05-24T18:46:52.166Z", + "updateDate": "2022-05-24T18:46:52.166Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "registrant(Approved)", + "policyId": "628d2752b51d44b0198a30af", + "tag": "save_copy_application", + "option": { + "status": "Approved" + }, + "schema": "#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0", + "messageId": "1653418010.298843156", + "topicId": "0.0.34904161", + "relationships": [ + "1653417988.611662000" + ], + "__sourceTag__": "current_registrant" + } } ``` {% endswagger-response %} {% endswagger %} -### Root Authority (Approve Device) +#### Create Device -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Device Approval" %} +{% swagger method="post" path="" baseUrl="/policies/{{policyId}}/blocks/{{create_device_form_uuid}}" summary="Creating Device" %} {% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/918a113d-a88b-4595-806e-823e4fbb8bf6 -{% endswagger-description %} - -{% swagger-parameter in="body" name="id" %} -626bf826d24497fe1b1e4144 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="owner" %} -did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316 -{% endswagger-parameter %} -{% swagger-parameter in="body" name="hash" %} -2qUPLPToSW3S33DAyY2wyJe5YPpWNuZKLLhTZRBowCAn -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="document" %} -"id":"c48ffb77-58d9-4809-aaa9-ff80950142ea", - - "type":\[ - - "VerifiableCredential" - - ], - - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "issuanceDate":"2022-04-29T14:37:18.619Z", - - "@context":\[ - - "https://www.w3.org/2018/credentials/v1" - - ], - - "credentialSubject":\[ - - { - - "field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "field1":"2022-04-08", - - "field2":"Is the Registrant also the owner of the Device? (provide evidence)", - - "field3":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "field4":{ - - "field0":"Device Name", - - "field1":"Address", - - "field2":"Postal code", - - "field3":"Country", - - "field4":"Longitude", - - "field5":"Latitude", - - "field6":"TSO’s ID for measurement point", - - "field7":1, - - "field8":1, - - "field9":"2022-04-29", - - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - - "field12":"Expected form of volume evidence", - - "field13":"If other please specify", - - "type":"fd49e6e4-58d7-425a-9518-9a2c4a178b15", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "field5":{ - - "field0":"Energy Source (Input) – see Appendix 2", - - "field1":"Technology – see Appendix 2", - - "field2":true, - - "field3":"If yes give details", - - "field4":true, - - "field5":"If yes give details", - - "field6":"Please give details of how the site can import electricity by means other than through the meter(s) specified above", - - "field7":"Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", - - "field8":"Please identify any labeling schemes for which the Device is accredited", - - "field9":true, - - "field10":"If public (government) funding has been received when did/will it finish?", - - "field11":"2022-04-29", - - "field12":"Preferred I-REC Device Verifier", - - "type":"d7a15512-bb46-4826-864d-1e37bf7b321f", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "ref":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "policyId":"626bf178d24497fe1b1e4139", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ], - - "id":"did:hedera:testnet:2PNs5TABEKMm7WNMSLrFQDSaBqkhppjPqcj9ovkbzkrq;hedera:testnet:tid=0.0.34350724", - - "type":"4713cc2e-4036-49b6-ba19-6475ed590c33&1.0.0" - - } - - ], - - "proof":{ - - "type":"Ed25519Signature2018", - - "created":"2022-04-29T14:37:18Z", - - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - - "proofPurpose":"assertionMethod", - - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..fH8UEbWTElaBYZ-mznxFndkZU29h45Px1BL8lwzL73PUpmDeDEc2iJINx6Kmh\_uxcMpm7lhkf9JKQxADEl5-Dg" - - } -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="createDate" %} -2022-04-29T14:37:26.605Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="updateDate" %} -2022-04-29T14:37:26.605Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="hederaStatus" %} -ISSUE -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="signature" %} -0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="type" %} -device -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="policyId" %} -626bf178d24497fe1b1e4139 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="tag" %} -create_device -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="option" %} -{ - - "status":"Approved" - - }, -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="schema" %} -\#4713cc2e-4036-49b6-ba19-6475ed590c33&1.0.0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="messageId" %} -1651243044.613728925 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="topicId" %} -0.0.34350746 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="relationships" %} -\[ - - "1651242856.179215415 - -] -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="__sourceTag__" %} -approve_devices_source(need_approve) -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} +{% endswagger-description %} + +{% swagger-parameter in="body" required="true" %} +\{{req_body}} +{% endswagger-parameter %} -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +{% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { // Response } ``` {% endswagger-response %} +{% endswagger %} + +#### Getting Approve Device Button UUID + +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/approve_device_btn" summary="Getting UUID of Approved Device Button" %} +{% swagger-description %} -{% swagger-response status="403: Forbidden" description="Forbidden" %} +{% endswagger-description %} + +{% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - // Response + "id": "329a1412-4206-4b99-840c-fdb82dfb4cd8" } ``` {% endswagger-response %} +{% endswagger %} + +#### Getting Approve Device Grid UUID + +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/approve_devices_grid" summary="Getting UUID of Approve Device Grid" %} +{% swagger-description %} -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +{% endswagger-description %} + +{% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + "id": "9fb94eaa-ecc9-441b-9fb0-5f163989aa35" } ``` {% endswagger-response %} {% endswagger %} -### User (CREATE ISSUE) - -BLOCK : create\_issue\_request\_form +#### Get Grid Documents -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Creating Issue" %} +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{approve_devices_grid_uuid}}" summary="Getting Grid Documents" %} {% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/8bd8c3da-043a-4ef0-8bb4-10f60bd80832 -{% endswagger-description %} - -{% swagger-parameter in="body" name="document" %} - "field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "field1":"did:hedera:testnet:2PNs5TABEKMm7WNMSLrFQDSaBqkhppjPqcj9ovkbzkrq;hedera:testnet:tid=0.0.34350724", - - "field2":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ] - - }, - - "field3":{ - - "field0":"Device Name", - - "field1":"Address", - - "field2":"Postal code", - - "field3":"Country", - - "field4":"Longitude", - - "field5":"Latitude", - - "field6":"TSO’s ID for measurement point", - - "field7":1, - - "field8":1, - - "field9":"2022-04-29", - - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - - "field12":"Expected form of volume evidence", - - "field13":"If other please specify", - - "type":"fd49e6e4-58d7-425a-9518-9a2c4a178b15", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ] - - }, - - "field4":" labeling scheme(s)", - - "field5":"2022-04-29", - - "field6":"2022-04-29", - - "field7":1, - - "field8":"2022-04-29", - - "field9":1, - - "field10":"Type a: Settlement Metering data", - - "field11":"Type b: Non-settlement Metering data", - - "field12":"Type c: Measured Volume Transfer documentation", - - "field13":"Type d: Other", - - "field14":true, - - "field15":true, - - "field16":true, - - "field17":"Installer", - - "field18":"0.0.34235315", - - "type":"88f6b2ad-5945-4086-b15c-8181654948c8&1.0.0", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ] -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="ref" %} - "id":"626bf95ed24497fe1b1e4145", - - "owner":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "hash":"Gq2osAVHzB6LpFEDXKQkeVbpcteV7pBDdFhL93SmyPt7", - - "document":{ - - "id":"aebb99c3-a897-4d71-8819-2362a43944ea", - - "type":\[ - - "VerifiableCredential" - - ], - - "issuer":"did:hedera:testnet:A7cP5xLNaF5LPtXkDUTsP6fATh4uarAjCujnZ3qR2vcw;hedera:testnet:tid=0.0.34349531", - - "iszw2suanceDate":"2022-04-29T14:42:27.523Z", - - "@context":\[ - - "https://www.w3.org/2018/credentials/v1" - - ], - - "credentialSubject":\[ - - { - - "field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "field1":"2022-04-08", - - "field2":"Is the Registrant also the owner of the Device? (provide evidence)", - - "field3":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" - - ] - - }, - - "field4":{ - - "field0":"Device Name", - - "field1":"Address", - - "field2":"Postal code", - - "field3":"Country", - - "field4":"Longitude", - - "field5":"Latitude", - - "field6":"TSO’s ID for measurement point", - - "field7":1, - - "field8":1, - "field9":"2022-04-29", - - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - - "field12":"Expected form of volume evidence", - - "field13":"If other please specify", - - "type":"fd49e6e4-58d7-425a-9518-9a2c4a178b15", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" +{% endswagger-description %} - ] +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "data": [ + { + "id": "628d29bfb51d44b0198a30bf", + "owner": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "hash": "HTpkqCA8tbNtgQm8i8vxSuXFGDYDGWFojN4LUq4NVqve", + "document": { + "id": "143a95f5-cddf-49fa-b8f3-eab99c44acad", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "issuanceDate": "2022-05-24T18:53:47.383Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field1": "2022-05-11", + "field2": "Is the Registrant also the owner of the Device? (provide evidence)", + "field3": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field4": { + "type": "11496321-dbb9-423c-ba00-883983e0859f", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field5": { + "type": "c20662fc-7d19-4f9f-b190-d7b219dda16f", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Energy Source (Input) – see Appendix 2", + "field1": "Technology – see Appendix 2", + "field2": true, + "field3": "If yes give details", + "field4": true, + "field5": "If yes give details", + "field6": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "field7": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "field8": "Please identify any labeling schemes for which the Device is accredited", + "field9": true, + "field10": "If public (government) funding has been received when did/will it finish?", + "field11": "2022-05-11", + "field12": "Preferred I-REC Device Verifier" + }, + "field0": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "ref": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "policyId": "628d2752b51d44b0198a30af", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "id": "did:hedera:testnet:DM9kVHFEQXNfCXVtXfgK76hW4QSzyEKjiFGffq1ULWdF;hedera:testnet:tid=0.0.34904157", + "type": "00526b15-79e2-4432-90d6-c895cee289b1&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-24T18:53:47Z", + "verificationMethod": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..1XGieppJpfZJaCkdKtBhrrCaNNd9eedq4KrgbLqfdsLTg4DDpjrFPvfQIkiiCpu0GLXGwVn27ZXeByQPS4U7CA" + } + }, + "createDate": "2022-05-24T18:53:51.863Z", + "updateDate": "2022-05-24T18:53:51.863Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "device", + "policyId": "628d2752b51d44b0198a30af", + "tag": "create_device", + "option": { + "status": "Waiting for approval" + }, + "schema": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "messageId": "1653418430.203299704", + "topicId": "0.0.34904161", + "relationships": [ + "1653418010.298843156" + ], + "__sourceTag__": "approve_devices_source(need_approve)" + } + ], + "blocks": [], + "commonAddons": [ + { + "id": "6f79fcbc-6f28-4af8-9cd1-0f35b08844e2", + "blockType": "documentsSourceAddon" + }, + { + "id": "10efbf45-f397-482e-abef-a51ed7fe4540", + "blockType": "documentsSourceAddon" + } + ], + "fields": [ + { + "title": "Organization Name", + "name": "document.credentialSubject.0.field3.field0", + "type": "text" + }, + { + "title": "Device Name", + "name": "document.credentialSubject.0.field4.field0", + "type": "text" + }, + { + "title": "Address", + "name": "document.credentialSubject.0.field4.field1", + "type": "text" + }, + { + "title": "Longitude", + "name": "document.credentialSubject.0.field4.field4", + "type": "text" + }, + { + "title": "Latitude", + "name": "document.credentialSubject.0.field4.field5", + "type": "text" + }, + { + "title": "Capacity (kW)", + "name": "document.credentialSubject.0.field4.field7", + "type": "text" + }, + { + "name": "option.status", + "title": "Operation", + "type": "text", + "width": "250px", + "bindGroup": "approve_devices_source(approved)", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "" + }, + { + "title": "Operation", + "name": "option.status", + "tooltip": "", + "type": "block", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "approve_device_btn", + "width": "250px", + "bindGroup": "approve_devices_source(need_approve)" + }, + { + "name": "document", + "title": "Document", + "tooltip": "", + "type": "button", + "action": "dialog", + "content": "View Document", + "uiClass": "link", + "dialogContent": "VC", + "dialogClass": "", + "dialogType": "json" + } + ] +} +``` +{% endswagger-response %} +{% endswagger %} - }, +#### Approve Device - "field5":{ +{% swagger method="post" path="" baseUrl="/policies/{{policyId}}/blocks/{{approve_device_btn_uuid}}" summary="Approving Device" %} +{% swagger-description %} - "field0":"Energy Source (Input) – see Appendix 2", +{% endswagger-description %} - "field1":"Technology – see Appendix 2", +{% swagger-parameter in="body" %} +\{{req_body}} +{% endswagger-parameter %} - "field2":true, +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} +{% endswagger %} - "field3":"If yes give details", +#### Getting UUID of Create Issue Request - "field4":true, +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/create_issue_request_form" summary="Getting Create Issue Request UUID" %} +{% swagger-description %} - "field5":"If yes give details", +{% endswagger-description %} - "field6":"Please give details of how the site can import electricity by means other than through the meter(s) specified above", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "d3f0c4dd-26fa-47e0-8b30-d16713591926" +} +``` +{% endswagger-response %} +{% endswagger %} - "field7":"Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", +#### Getting Grid UUID - "field8":"Please identify any labeling schemes for which the Device is accredited", +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/approve_devices_grid" summary="Getting Grid UUID" %} +{% swagger-description %} - "field9":true, +{% endswagger-description %} - "field10":"If public (government) funding has been received when did/will it finish?", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "9fb94eaa-ecc9-441b-9fb0-5f163989aa35" +} +``` +{% endswagger-response %} +{% endswagger %} - "field11":"2022-04-29", +#### Getting Grid Documents - "field12":"Preferred I-REC Device Verifier", +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{issue_grid_uuid}}" summary="Displaying Grid Documents" %} +{% swagger-description %} - "type":"d7a15512-bb46-4826-864d-1e37bf7b321f", +{% endswagger-description %} - "@context":\[ +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{{ + "data": [ + { + "id": "628d29bfb51d44b0198a30bf", + "owner": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "assign": null, + "hash": "HTpkqCA8tbNtgQm8i8vxSuXFGDYDGWFojN4LUq4NVqve", + "document": { + "id": "143a95f5-cddf-49fa-b8f3-eab99c44acad", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "issuanceDate": "2022-05-24T18:53:47.383Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field1": "2022-05-11", + "field2": "Is the Registrant also the owner of the Device? (provide evidence)", + "field3": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field4": { + "type": "11496321-dbb9-423c-ba00-883983e0859f", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field5": { + "type": "c20662fc-7d19-4f9f-b190-d7b219dda16f", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "field0": "Energy Source (Input) – see Appendix 2", + "field1": "Technology – see Appendix 2", + "field2": true, + "field3": "If yes give details", + "field4": true, + "field5": "If yes give details", + "field6": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "field7": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "field8": "Please identify any labeling schemes for which the Device is accredited", + "field9": true, + "field10": "If public (government) funding has been received when did/will it finish?", + "field11": "2022-05-11", + "field12": "Preferred I-REC Device Verifier" + }, + "field0": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "ref": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "policyId": "628d2752b51d44b0198a30af", + "@context": [ + "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e" + ], + "id": "did:hedera:testnet:DM9kVHFEQXNfCXVtXfgK76hW4QSzyEKjiFGffq1ULWdF;hedera:testnet:tid=0.0.34904157", + "type": "00526b15-79e2-4432-90d6-c895cee289b1&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-24T18:53:47Z", + "verificationMethod": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..1XGieppJpfZJaCkdKtBhrrCaNNd9eedq4KrgbLqfdsLTg4DDpjrFPvfQIkiiCpu0GLXGwVn27ZXeByQPS4U7CA" + } + }, + "createDate": "2022-05-24T18:53:51.863Z", + "updateDate": "2022-05-24T18:53:51.863Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "device", + "policyId": "628d2752b51d44b0198a30af", + "tag": "save_device_status(approved)", + "option": { + "status": "Approved" + }, + "schema": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "messageId": "1653418430.203299704", + "topicId": "0.0.34904161", + "relationships": [ + "1653418010.298843156" + ], + "__sourceTag__": "approve_devices_source(approved)" + } + ], + "blocks": [], + "commonAddons": [ + { + "id": "6f79fcbc-6f28-4af8-9cd1-0f35b08844e2", + "blockType": "documentsSourceAddon" + }, + { + "id": "10efbf45-f397-482e-abef-a51ed7fe4540", + "blockType": "documentsSourceAddon" + } + ], + "fields": [ + { + "title": "Organization Name", + "name": "document.credentialSubject.0.field3.field0", + "type": "text" + }, + { + "title": "Device Name", + "name": "document.credentialSubject.0.field4.field0", + "type": "text" + }, + { + "title": "Address", + "name": "document.credentialSubject.0.field4.field1", + "type": "text" + }, + { + "title": "Longitude", + "name": "document.credentialSubject.0.field4.field4", + "type": "text" + }, + { + "title": "Latitude", + "name": "document.credentialSubject.0.field4.field5", + "type": "text" + }, + { + "title": "Capacity (kW)", + "name": "document.credentialSubject.0.field4.field7", + "type": "text" + }, + { + "name": "option.status", + "title": "Operation", + "type": "text", + "width": "250px", + "bindGroup": "approve_devices_source(approved)", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "" + }, + { + "title": "Operation", + "name": "option.status", + "tooltip": "", + "type": "block", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "approve_device_btn", + "width": "250px", + "bindGroup": "approve_devices_source(need_approve)" + }, + { + "name": "document", + "title": "Document", + "tooltip": "", + "type": "button", + "action": "dialog", + "content": "View Document", + "uiClass": "link", + "dialogContent": "VC", + "dialogClass": "", + "dialogType": "json" + } + ] +} +``` +{% endswagger-response %} +{% endswagger %} - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" +#### Getting Issue Schema - ] +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{create_issue_request_form_uuid}}" summary="Getting Schema of Issue Request" %} +{% swagger-description %} - }, +{% endswagger-description %} - "ref":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "d3f0c4dd-26fa-47e0-8b30-d16713591926", + "blockType": "requestVcDocumentBlock", + "schema": { + "userDID": null, + "id": "628d2752b51d44b0198a30ae", + "uuid": "7cf248b0-7f04-40df-ac1f-46903f07123b", + "hash": "", + "name": "I-REC Issue Request", + "description": "I-REC Issue Request", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "version": "1.0.0", + "creator": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "owner": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "topicId": "0.0.34904155", + "messageId": "1653417831.371325000", + "documentURL": "https://ipfs.io/ipfs/bafkreie2o56rs5zgwnw3z6effsgiotgeelsnrhzrhofpf2vejd6b2b5pjy", + "contextURL": "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla", + "iri": "#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "document": { + "$id": "#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "$comment": "{\"term\": \"7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0\"}", + "title": "I-REC Issue Request", + "description": "I-REC Issue Request", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Production Device/Production Group Id", + "description": "Production Device/Production Group Id", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "$ref": "#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "title": "Production Device/Production Group", + "description": "Production Device/Production Group", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#11496321-dbb9-423c-ba00-883983e0859f\"}", + "$ref": "#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field4": { + "title": "Labelling scheme(s)", + "description": "labeling scheme(s)", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Last registration date", + "description": "Last registration date", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field6": { + "title": "Production Period Start Date", + "description": "Production Period Start Date", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field7": { + "title": "Total kWh Produced in this period", + "description": "Total kWh Produced in this period", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Production Period End Date", + "description": "Production Period End Date", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field9": { + "title": "Percentage of eligible total applied for", + "description": "Percentage of eligible total applied for", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field10": { + "title": "Type a: Settlement Metering data", + "description": "Type a: Settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Type b: Non-settlement Metering data", + "description": "Type b: Non-settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Type c: Measured Volume Transfer documentation", + "description": "Type c: Measured Volume Transfer documentation", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "Type d: Other", + "description": "Type d: Other", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field14": { + "title": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "description": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "readOnly": false, + "$comment": "{\"term\": \"field14\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field15": { + "title": "Is any of this production subject to a public consumption obligation?", + "description": "Is any of this production subject to a public consumption obligation?", + "readOnly": false, + "$comment": "{\"term\": \"field15\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field16": { + "title": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "description": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "readOnly": false, + "$comment": "{\"term\": \"field16\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field17": { + "title": "I-REC Participant name", + "description": "I-REC Participant name", + "readOnly": false, + "$comment": "{\"term\": \"field17\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field18": { + "title": "Account number", + "description": "Account number", + "readOnly": false, + "$comment": "{\"term\": \"field18\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field2", + "field3", + "field6", + "field7", + "field8", + "field17", + "field18", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#74a38111-b583-47c3-93b9-e453132ecbb5": { + "$id": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "$comment": "{\"term\": \"74a38111-b583-47c3-93b9-e453132ecbb5\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#11496321-dbb9-423c-ba00-883983e0859f": { + "$id": "#11496321-dbb9-423c-ba00-883983e0859f", + "$comment": "{\"term\": \"11496321-dbb9-423c-ba00-883983e0859f\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "74a38111-b583-47c3-93b9-e453132ecbb5": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "11496321-dbb9-423c-ba00-883983e0859f": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + }, + "field14": { + "@id": "https://www.schema.org/text" + }, + "field15": { + "@id": "https://www.schema.org/text" + }, + "field16": { + "@id": "https://www.schema.org/text" + }, + "field17": { + "@id": "https://www.schema.org/text" + }, + "field18": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#11496321-dbb9-423c-ba00-883983e0859f" + } + } + } + } + }, + "type": "7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "fields": [ + { + "name": "field0", + "title": "Registrant Id", + "description": "Registrant Id", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Production Device/Production Group Id", + "description": "Production Device/Production Group Id", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Registrant Details", + "description": "Registrant Details", + "type": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "format": null, + "pattern": null, + "required": true, + "isRef": true, + "isArray": false, + "readOnly": false, + "fields": [ + { + "name": "field0", + "title": "Organization Name", + "description": "Organization Name", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Address line 1", + "description": "Address line 1", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Address line 2", + "description": "Address line 2", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "Address line 3", + "description": "Address line 3", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field4", + "title": "Postal code", + "description": "Postal code", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "Country", + "description": "Country", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "Contact person", + "description": "Contact person", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "e-mail", + "description": "e-mail", + "type": "string", + "format": "email", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Telephone", + "description": "Telephone", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Fax", + "description": "Fax", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "context": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "context": [ + "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla" + ] + }, + "conditions": [] + }, + { + "name": "field3", + "title": "Production Device/Production Group", + "description": "Production Device/Production Group", + "type": "#11496321-dbb9-423c-ba00-883983e0859f", + "format": null, + "pattern": null, + "required": true, + "isRef": true, + "isArray": false, + "readOnly": false, + "fields": [ + { + "name": "field0", + "title": "Device Name", + "description": "Device Name", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field1", + "title": "Address", + "description": "Address", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field2", + "title": "Postal code", + "description": "Postal code", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field3", + "title": "Country", + "description": "Country", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field4", + "title": "Longitude", + "description": "Longitude", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "Latitude", + "description": "Latitude", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "type": "number", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Number of generating units", + "description": "Number of generating units", + "type": "integer", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Date of commissioning", + "description": "Date of commissioning", + "type": "string", + "format": "date", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field11", + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field12", + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field13", + "title": "If other please specify", + "description": "If other please specify", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "context": { + "type": "11496321-dbb9-423c-ba00-883983e0859f", + "context": [ + "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla" + ] + }, + "conditions": [] + }, + { + "name": "field4", + "title": "Labelling scheme(s)", + "description": "labeling scheme(s)", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field5", + "title": "Last registration date", + "description": "Last registration date", + "type": "string", + "format": "date", + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field6", + "title": "Production Period Start Date", + "description": "Production Period Start Date", + "type": "string", + "format": "date", + "pattern": null, + "required": true, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field7", + "title": "Total kWh Produced in this period", + "description": "Total kWh Produced in this period", + "type": "number", + "format": null, + "pattern": null, + "required": true, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field8", + "title": "Production Period End Date", + "description": "Production Period End Date", + "type": "string", + "format": "date", + "pattern": null, + "required": true, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field9", + "title": "Percentage of eligible total applied for", + "description": "Percentage of eligible total applied for", + "type": "integer", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field10", + "title": "Type a: Settlement Metering data", + "description": "Type a: Settlement Metering data", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field11", + "title": "Type b: Non-settlement Metering data", + "description": "Type b: Non-settlement Metering data", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field12", + "title": "Type c: Measured Volume Transfer documentation", + "description": "Type c: Measured Volume Transfer documentation", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field13", + "title": "Type d: Other", + "description": "Type d: Other", + "type": "string", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field14", + "title": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "description": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field15", + "title": "Is any of this production subject to a public consumption obligation?", + "description": "Is any of this production subject to a public consumption obligation?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field16", + "title": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "description": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "type": "boolean", + "format": null, + "pattern": null, + "required": false, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field17", + "title": "I-REC Participant name", + "description": "I-REC Participant name", + "type": "string", + "format": null, + "pattern": null, + "required": true, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + }, + { + "name": "field18", + "title": "Account number", + "description": "Account number", + "type": "string", + "format": null, + "pattern": null, + "required": true, + "isRef": false, + "isArray": false, + "readOnly": false, + "fields": null, + "context": null, + "conditions": null + } + ], + "conditions": [] + }, + "presetSchema": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "presetFields": [ + { + "name": "field0", + "title": "Registrant Id", + "value": "field0", + "readonly": false + }, + { + "name": "field1", + "title": "Production Device/Production Group Id", + "value": "id", + "readonly": false + }, + { + "name": "field2", + "title": "Registrant Details", + "value": "field3", + "readonly": false + }, + { + "name": "field3", + "title": "Production Device/Production Group", + "value": "field4", + "readonly": false + }, + { + "name": "field4", + "title": "Labelling scheme(s)", + "readonly": false + }, + { + "name": "field5", + "title": "Last registration date", + "readonly": false + }, + { + "name": "field6", + "title": "Production Period Start Date", + "readonly": false + }, + { + "name": "field7", + "title": "Total kWh Produced in this period", + "readonly": false + }, + { + "name": "field8", + "title": "Production Period End Date", + "readonly": false + }, + { + "name": "field9", + "title": "Percentage of eligible total applied for", + "readonly": false + }, + { + "name": "field10", + "title": "Type a: Settlement Metering data", + "readonly": false + }, + { + "name": "field11", + "title": "Type b: Non-settlement Metering data", + "readonly": false + }, + { + "name": "field12", + "title": "Type c: Measured Volume Transfer documentation", + "readonly": false + }, + { + "name": "field13", + "title": "Type d: Other", + "readonly": false + }, + { + "name": "field14", + "title": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "readonly": false + }, + { + "name": "field15", + "title": "Is any of this production subject to a public consumption obligation?", + "readonly": false + }, + { + "name": "field16", + "title": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "readonly": false + }, + { + "name": "field17", + "title": "I-REC Participant name", + "value": "username", + "readonly": false + }, + { + "name": "field18", + "title": "Account number", + "value": "hederaAccountId", + "readonly": false + } + ], + "uiMetaData": { + "type": "dialog", + "content": "Create Issue Request", + "dialogContent": "New Issue Request", + "buttonClass": "link" + }, + "hideFields": [], + "active": true, + "data": null +} +``` +{% endswagger-response %} +{% endswagger %} - "policyId":"626bf178d24497fe1b1e4139", +#### Create Issue Request - "@context":\[ +{% swagger method="post" path="" baseUrl="/policies/{{policyId}}/blocks/{{create_issue_request_form_uuid}}" summary="Creating Issue Request" %} +{% swagger-description %} - "https://ipfs.io/ipfs/bafkreicra2ajpwjpukzhch3ienkqcyzi7fnnjwp65nom6vq25lwra6gx4i" +{% endswagger-description %} - ], +{% swagger-parameter in="body" %} +\{{req_body}} +{% endswagger-parameter %} - "id":"did:hedera:testnet:2PNs5TABEKMm7WNMSLrFQDSaBqkhppjPqcj9ovkbzkrq;hedera:testnet:tid=0.0.34350724", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} +{% endswagger %} - "type":"4713cc2e-4036-49b6-ba19-6475ed590c33&1.0.0" +#### Getting Approve Request Button UUID - } +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/approve_issue_requests_btn" summary="Getting Approve Request Button UUID" %} +{% swagger-description %} - ], +{% endswagger-description %} - "proof":{ +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "c99c6ba4-3a1e-41f6-8347-c158a44c9833" +} +``` +{% endswagger-response %} +{% endswagger %} - "type":"Ed25519Signature2018", +#### Getting Issue Request Grid UUID - "created":"2022-04-29T14:42:27Z", +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/issue_requests_grid(evident)" summary="Getting Issue Request Gird UUID" %} +{% swagger-description %} - "verificationMethod":"did:hedera:testnet:A7cP5xLNaF5LPtXkDUTsP6fATh4uarAjCujnZ3qR2vcw;hedera:testnet:tid=0.0.34349531#did-root-key", +{% endswagger-description %} - "proofPurpose":"assertionMethod", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "f0e06628-47c8-435f-bd82-08fdaea6a8cd" +} +``` +{% endswagger-response %} +{% endswagger %} - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..\_o526p84cDF4qa1z5obliK-9WGVxsadhtCIIlq8fnjTiiOlYk54lrBZ4EeOw5xJ7DTMJ2ukLEp3PvTKVqIL3CQ" +#### Getting Approve Issue Grid Documents - } +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{approve_issue_grid_uuid}}" summary="Getting Grid Documents of Approve Issue" %} +{% swagger-description %} - }, +{% endswagger-description %} - "createDate":"2022-04-29T14:42:38.469Z", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "data": [ + { + "id": "628d362db51d44b0198a30c3", + "owner": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "hash": "FzhpChPCcdhT8PhH72Kzx5Zh2xHGQnw5CeUTGDUYyBZm", + "document": { + "id": "652b6ffd-2e84-4fc0-9590-33d6d555d0a9", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "issuanceDate": "2022-05-24T19:46:49.957Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field2": { + "type": "74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": [ + "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "11496321-dbb9-423c-ba00-883983e0859f", + "@context": [ + "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field4": "labeling scheme(s)", + "field5": "2022-05-01", + "field6": "2022-05-01", + "field7": 1, + "field8": "2022-05-31", + "field9": 1, + "field10": "Type a: Settlement Metering data", + "field11": "Type b: Non-settlement Metering data", + "field12": "Type c: Measured Volume Transfer documentation", + "field13": "Type d: Other", + "field14": true, + "field15": true, + "field16": true, + "field17": "67dlgjka", + "field18": "0.0.34904158", + "field0": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159", + "field1": "did:hedera:testnet:DM9kVHFEQXNfCXVtXfgK76hW4QSzyEKjiFGffq1ULWdF;hedera:testnet:tid=0.0.34904157", + "ref": "did:hedera:testnet:DM9kVHFEQXNfCXVtXfgK76hW4QSzyEKjiFGffq1ULWdF;hedera:testnet:tid=0.0.34904157", + "policyId": "628d2752b51d44b0198a30af", + "@context": [ + "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla" + ], + "id": "54f62f47-334c-4b37-afec-7a060ce03215", + "type": "7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-24T19:46:49Z", + "verificationMethod": "did:hedera:testnet:8BfeSEAX2ksCwyp8fsA8vnqEkzBADmVYpP5aN4qEYwJ6;hedera:testnet:tid=0.0.34904159#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..ZN76q3nGFcyQpxiUMZkWTibQ-2i9DR55idvCKbAlmXwbhKlsD4zeSx_OmxOxwXhL2O5Xs3jtvoygeb3Zxs_BAw" + } + }, + "createDate": "2022-05-24T19:46:53.208Z", + "updateDate": "2022-05-24T19:46:53.208Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "issue_request", + "policyId": "628d2752b51d44b0198a30af", + "tag": "create_issue_request", + "option": { + "status": "Waiting for approval" + }, + "schema": "#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "messageId": "1653421612.228129000", + "topicId": "0.0.34904161", + "relationships": [ + "1653418430.203299704" + ], + "__sourceTag__": "issue_requests_source(need_approve)" + } + ], + "blocks": [], + "commonAddons": [ + { + "id": "df1a9db2-7ef1-40be-83bb-a85fc5ca677f", + "blockType": "documentsSourceAddon" + }, + { + "id": "0fcbb180-771f-4669-8081-ead92b36f7e2", + "blockType": "documentsSourceAddon" + } + ], + "fields": [ + { + "title": "Organization Name", + "name": "document.credentialSubject.0.field2.field0", + "type": "text" + }, + { + "title": "Production Period Start Date", + "name": "document.credentialSubject.0.field6", + "type": "text" + }, + { + "title": "Production Period End Date", + "name": "document.credentialSubject.0.field8", + "type": "text" + }, + { + "title": "Total kWh Produced in this period", + "name": "document.credentialSubject.0.field7", + "type": "text" + }, + { + "title": "Date", + "name": "document.issuanceDate", + "type": "text" + }, + { + "name": "option.status", + "title": "Operation", + "type": "text", + "width": "250px", + "bindGroup": "issue_requests_source(approved)", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "" + }, + { + "title": "Operation", + "name": "option.status", + "tooltip": "", + "type": "block", + "action": "", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "approve_issue_requests_btn", + "width": "250px", + "bindGroup": "issue_requests_source(need_approve)" + }, + { + "name": "document", + "title": "Document", + "tooltip": "", + "type": "button", + "action": "dialog", + "content": "View Document", + "uiClass": "link", + "dialogContent": "VC", + "dialogClass": "", + "dialogType": "json" + } + ] +} +``` +{% endswagger-response %} +{% endswagger %} - "updateDate":"2022-04-29T14:42:38.469Z", +#### Approve Issue Request - "hederaStatus":"ISSUE", +{% swagger method="post" path="" baseUrl="policies/{{policyId}}/blocks/{{approve_issue_requests_btn_uuid}}" summary="Approving Issue Request" %} +{% swagger-description %} - "signature":0, +{% endswagger-description %} - "type":"device(Approved)", +{% swagger-parameter in="body" %} +\{{req_body}} +{% endswagger-parameter %} - "policyId":"626bf178d24497fe1b1e4139", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} +{% endswagger %} - "tag":"save\_copy\_device", +### TrustChain - "option":{ +#### Getting Grid UUID - "status":"Approved" +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/vp_grid" summary="Getting Grid UUID" %} +{% swagger-description %} - }, +{% endswagger-description %} - "schema":"#4713cc2e-4036-49b6-ba19-6475ed590c33&1.0.0", +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "id": "a5bd02f3-2427-47d8-bb1a-2b0eca38be06" +} +``` +{% endswagger-response %} +{% endswagger %} - "messageId":"1651243356.729744000", +#### Getting Grid Documents - "topicId":"0.0.34350746", +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{vpGridBlock_uuid}}" summary="Getting Grid Documents" %} +{% swagger-description %} - "relationships":\[ +{% endswagger-description %} - "1651243044.613728925" +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + "data": [ + { + "id": "628fae64b51d44b0198a30e7", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "hash": "GChWHiV7Ef1e6Gec9dLjcVHVkn2SCxceBQbSndwMmL91", + "document": { + "id": "90c00f1d-aae7-4a60-a0f3-907da02f30a1", + "type": [ + "VerifiablePresentation" + ], + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "verifiableCredential": [ + { + "id": "dca9415a-505e-4050-b524-b2bea0eba1f6", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:08.941Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "field1": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field4": "labeling scheme(s)", + "field5": "2022-05-01", + "field6": "2022-05-01", + "field7": 1, + "field8": "2022-05-31", + "field9": 1, + "field10": "Type a: Settlement Metering data", + "field11": "Type b: Non-settlement Metering data", + "field12": "Type c: Measured Volume Transfer documentation", + "field13": "Type d: Other", + "field14": true, + "field15": true, + "field16": true, + "field17": "ikapqhvd", + "field18": "0.0.34920818", + "policyId": "628fad58b51d44b0198a30d5", + "ref": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "id": "a91c0d59-94cd-47fd-8e20-6dec9217c404", + "type": "43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:08Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..nekiIoY2eGxrMWsEK272nKGeQihC84N_3Ne1EqS0RZ87CfBp-LSwBvxrArvgBYEVWqeVMiURjWq4d43eM-sCCg" + } + }, + { + "id": "973b16cb-ed03-48c8-ab22-6ed70d127797", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:12.783Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "date": "2022-05-26T16:44:12.779Z", + "tokenId": "0.0.34920820", + "amount": "1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza" + ], + "type": "MintToken&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3fM9mKooHcW7GMgMmkgoXATFcRnzmpdL6y9DqZ3EtNyLvbfWVRwUiFq_nGz7R2p3AqyP7OxogiHNjIsJGRJzDA" + } + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "authentication", + "challenge": "123", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..K_uamuxowiPFUMD2x1NQj1akhJhCSBthrLgx71Q9v2OouIfJrhFdDF6EltDMUl64B8mjPXL-bS9kNwUcpW-HAA" + } + }, + "createDate": "2022-05-26T16:44:20.864Z", + "updateDate": "2022-05-26T16:44:20.864Z", + "status": "NEW", + "signature": 0, + "type": "mint", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "mint_token", + "messageId": "1653583459.200350695", + "topicId": "0.0.34920825", + "__sourceTag__": "vp_source" + } + ], + "blocks": [], + "commonAddons": [ + { + "id": "1241639b-ddd4-491b-8c0a-8db9f781d3eb", + "blockType": "documentsSourceAddon" + } + ], + "fields": [ + { + "title": "HASH", + "name": "hash", + "tooltip": "", + "type": "text" + }, + { + "title": "Date", + "name": "document.verifiableCredential.1.credentialSubject.0.date", + "tooltip": "", + "type": "text" + }, + { + "title": "Token Id", + "name": "document.verifiableCredential.1.credentialSubject.0.tokenId", + "tooltip": "", + "type": "text" + }, + { + "title": "Serials", + "name": "document.verifiableCredential.1.credentialSubject.0.serials", + "tooltip": "", + "type": "text" + }, + { + "title": "TrustChain", + "name": "hash", + "tooltip": "", + "type": "button", + "action": "link", + "url": "", + "dialogContent": "", + "dialogClass": "", + "dialogType": "", + "bindBlock": "trustChainBlock", + "content": "View TrustChain", + "width": "150px" + } + ] +} +``` +{% endswagger-response %} +{% endswagger %} - ], +#### Getting TrustChain Block UUID - "\_\_sourceTag\_\_":"devices\_source(approved)" +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/tag/trustChainBlock" summary="Getting TrustChain Block UUID" %} +{% swagger-description %} - } -{% endswagger-parameter %} +{% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - // Response + "id": "2b9978c8-fb7e-4b60-b1d0-21eae5ef0d8f" } ``` {% endswagger-response %} +{% endswagger %} -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} +#### Setting Hash Filter -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} +{% swagger method="post" path="" baseUrl="/policies/{{policyId}}/blocks/{{trustChainBlock_uuid}}" summary="Setting Hash Filter" %} +{% swagger-description %} + +{% endswagger-description %} -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +{% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + // Response } ``` {% endswagger-response %} {% endswagger %} -### Root Authority (GET ISSUE TO APPROVE) - -#### Make GET request and get data\[i] and change option.status = “Approved”: +#### Getting TrustChain Block Data -BLOCK issue\_requests\_grid(evident) - -{% swagger method="get" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="" %} +{% swagger method="get" path="" baseUrl="/policies/{{policyId}}/blocks/{{trustChainBlock_uuid}}" summary="Getting TrustChain Block Data" %} {% swagger-description %} -/policies/626c0490d24497fe1b1e415d/blocks/4838bdc7-f141-4c64-a5e0-a40c2b268766 + {% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} ```javascript { - "data":[ - { - "id":"626c0a7cd24497fe1b1e416c", - "owner":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "hash":"44XX8ok6Y9gy6FRaTzQzaewDGPLqArqvAaWKQBrXKNqi", - "document":{ - "id":"2d20d104-35ad-49f5-8530-7444e3228c13", - "type":[ - "VerifiableCredential" - ], - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "issuanceDate":"2022-04-29T15:55:31.487Z", - "@context":[ - "https://www.w3.org/2018/credentials/v1" - ], - "credentialSubject":[ - { - "field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - "field1":"did:hedera:testnet:HyjFdpTRX2mBpiHuHHWb45hMsGejYCS6Njecy2YBXEfu;hedera:testnet:tid=0.0.34352260", - "field2":{ - "field0":"Organization Name", - "field1":"Address line 1", - "field2":"Address line 2", - "field3":"Address line 3", - "field4":"Postal code", - "field5":"Country", - "field6":"Contact person", - "field7":"test@mail.ru", - "field8":"Telephone", - "field9":"Fax", - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - "type":"a68073e6-bf56-43e3-99c4-5b433c983654", - "@context":[ - "https://ipfs.io/ipfs/bafkreidnvwylajvvgaza7fxg57fjf5dvdbgvylfkw3tsxjlbiffincxsdq" - ] - }, - "field3":{ - "field0":"Device Name", - "field1":"Address", - "field2":"Postal code", - "field3":"Country", - "field4":"Longitude", - "field5":"Latitude", - "field6":"TSO’s ID for measurement point", - "field7":1, - "field8":1, - "field9":"2022-04-29", - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - "field12":"Expected form of volume evidence", - "field13":"If other please specify", - "type":"a35f095b-ebc6-4006-a551-1f1d22c329b8", - "@context":[ - "https://ipfs.io/ipfs/bafkreidnvwylajvvgaza7fxg57fjf5dvdbgvylfkw3tsxjlbiffincxsdq" - ] - }, - "field4":"labeling scheme(s)", - "field5":"2022-04-29", - "field6":"2022-04-29", - "field7":1, - "field8":"2022-04-29", - "field9":1, - "field10":"Type a: Settlement Metering data", - "field11":"Type b: Non-settlement Metering data", - "field12":"Type c: Measured Volume Transfer documentation", - "field13":"Type d: Other", - "field14":true, - "field15":true, - "field16":true, - "field17":"Installer", - "field18":"0.0.34235315", - "ref":"did:hedera:testnet:HyjFdpTRX2mBpiHuHHWb45hMsGejYCS6Njecy2YBXEfu;hedera:testnet:tid=0.0.34352260", - "policyId":"626c0490d24497fe1b1e415d", - "@context":[ - "https://ipfs.io/ipfs/bafkreidnvwylajvvgaza7fxg57fjf5dvdbgvylfkw3tsxjlbiffincxsdq" - ], - "id":"3d31e722-7a17-4f13-a66d-c21c0042b6d3", - "type":"c8a8aae3-2125-4872-9396-ac6b4dba8c2f&1.0.0" - } - ], - "proof":{ - "type":"Ed25519Signature2018", - "created":"2022-04-29T15:55:31Z", - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - "proofPurpose":"assertionMethod", - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..2MmXAW9khzXExyU2NVfBWTAQxro_eLWO6zxyABGb2nWvdsg5RcjmV-e_8HggxclU9wVECDW337gVFv_hkT0ZBA" + "hash": "GChWHiV7Ef1e6Gec9dLjcVHVkn2SCxceBQbSndwMmL91", + "schemes": [ + { + "id": "628bde88b51d44b0198a3092", + "uuid": "MintNFToken", + "hash": "", + "name": "MintNFToken", + "entity": "MINT_NFTOKEN", + "status": "PUBLISHED", + "readonly": true, + "document": { + "$id": "#MintNFToken&1.0.0", + "$comment": "{ \"term\": \"MintNFToken&1.0.0\", \"@id\": \"undefined#MintNFToken&1.0.0\" }", + "title": "MintNFToken", + "description": "MintNFToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "serials": { + "$comment": "{\"term\": \"serials\", \"@id\": \"https://www.schema.org/text\"}", + "title": "serials", + "description": "serials", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "serials", + "tokenId" + ], + "additionalProperties": false + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "MintNFToken&1.0.0": { + "@id": "undefined#MintNFToken&1.0.0", + "@context": { + "date": { + "@id": "https://www.schema.org/text" + }, + "serials": { + "@id": "https://www.schema.org/text" + }, + "tokenId": { + "@id": "https://www.schema.org/text" + } + } + } + } + }, + "version": "1.0.0", + "creator": null, + "owner": null, + "topicId": "0.0.29614911", + "messageId": "1648050452.168946122", + "documentURL": "https://ipfs.io/ipfs/bafkreifqbo5ncushds37awkwpkwwqs2mimprz2dlyhxzzsv4xxytnw2y4i", + "contextURL": "https://ipfs.io/ipfs/bafkreiczty4owaqfkhyrjo2mzntkewcg4kwewgvhmwap662gvgj4cggwwy", + "iri": "#MintNFToken&1.0.0", + "createDate": "2022-05-23T19:20:40.553Z", + "category": "SYSTEM" + }, + { + "id": "628bde89b51d44b0198a3093", + "uuid": "MintToken", + "hash": "", + "name": "MintToken", + "entity": "MINT_TOKEN", + "status": "PUBLISHED", + "readonly": true, + "document": { + "$id": "#MintToken&1.0.0", + "$comment": "{ \"term\": \"MintToken&1.0.0\", \"@id\": \"undefined#MintToken&1.0.0\" }", + "title": "MintToken", + "description": "MintToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "amount": { + "$comment": "{\"term\": \"amount\", \"@id\": \"https://www.schema.org/text\"}", + "title": "amount", + "description": "amount", + "type": "string", + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "amount", + "tokenId" + ], + "additionalProperties": false + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "MintToken&1.0.0": { + "@id": "undefined#MintToken&1.0.0", + "@context": { + "date": { + "@id": "https://www.schema.org/text" + }, + "amount": { + "@id": "https://www.schema.org/text" + }, + "tokenId": { + "@id": "https://www.schema.org/text" + } + } + } + } + }, + "version": "1.0.0", + "creator": null, + "owner": null, + "topicId": "0.0.29614911", + "messageId": "1648050464.170190891", + "documentURL": "https://ipfs.io/ipfs/bafkreiflfkyh4fhft7yyrq7g7rnvqwac3mengo555vlz72qtsnqmhcy77q", + "contextURL": "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza", + "iri": "#MintToken&1.0.0", + "createDate": "2022-05-23T19:20:41.086Z", + "category": "SYSTEM" + }, + { + "id": "628bde8eb51d44b0198a3094", + "uuid": "Policy", + "hash": "", + "name": "Policy", + "entity": "POLICY", + "status": "PUBLISHED", + "readonly": true, + "document": { + "$id": "#Policy&1.0.0", + "$comment": "{ \"term\": \"Policy&1.0.0\", \"@id\": \"undefined#Policy&1.0.0\" }", + "title": "Policy", + "description": "Policy", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "$comment": "{\"term\": \"name\", \"@id\": \"https://www.schema.org/text\"}", + "title": "name", + "description": "name", + "type": "string", + "readOnly": false + }, + "description": { + "$comment": "{\"term\": \"description\", \"@id\": \"https://www.schema.org/text\"}", + "title": "description", + "description": "description", + "type": "string", + "readOnly": false + }, + "topicDescription": { + "$comment": "{\"term\": \"topicDescription\", \"@id\": \"https://www.schema.org/text\"}", + "title": "topicDescription", + "description": "topicDescription", + "type": "string", + "readOnly": false + }, + "version": { + "$comment": "{\"term\": \"version\", \"@id\": \"https://www.schema.org/text\"}", + "title": "version", + "description": "version", + "type": "string", + "readOnly": false + }, + "policyTag": { + "$comment": "{\"term\": \"policyTag\", \"@id\": \"https://www.schema.org/text\"}", + "title": "policyTag", + "description": "policyTag", + "type": "string", + "readOnly": false + }, + "owner": { + "$comment": "{\"term\": \"owner\", \"@id\": \"https://www.schema.org/text\"}", + "title": "owner", + "description": "owner", + "type": "string", + "readOnly": false + }, + "cid": { + "$comment": "{\"term\": \"cid\", \"@id\": \"https://www.schema.org/text\"}", + "title": "cid", + "description": "cid", + "type": "string", + "readOnly": false + }, + "url": { + "$comment": "{\"term\": \"url\", \"@id\": \"https://www.schema.org/text\"}", + "title": "url", + "description": "url", + "type": "string", + "readOnly": false + }, + "uuid": { + "$comment": "{\"term\": \"uuid\", \"@id\": \"https://www.schema.org/text\"}", + "title": "uuid", + "description": "uuid", + "type": "string", + "readOnly": false + }, + "operation": { + "$comment": "{\"term\": \"operation\", \"@id\": \"https://www.schema.org/text\"}", + "title": "operation", + "description": "operation", + "type": "string", + "readOnly": false + } + }, + "required": [ + "name", + "description", + "topicDescription", + "version", + "policyTag", + "owner", + "cid", + "url", + "uuid", + "operation" + ], + "additionalProperties": false + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "Policy&1.0.0": { + "@id": "undefined#Policy&1.0.0", + "@context": { + "name": { + "@id": "https://www.schema.org/text" + }, + "description": { + "@id": "https://www.schema.org/text" + }, + "topicDescription": { + "@id": "https://www.schema.org/text" + }, + "version": { + "@id": "https://www.schema.org/text" + }, + "policyTag": { + "@id": "https://www.schema.org/text" + }, + "owner": { + "@id": "https://www.schema.org/text" + }, + "cid": { + "@id": "https://www.schema.org/text" + }, + "url": { + "@id": "https://www.schema.org/text" + }, + "uuid": { + "@id": "https://www.schema.org/text" + }, + "operation": { + "@id": "https://www.schema.org/text" + } + } + } + } + }, + "version": "1.0.0", + "creator": null, + "owner": null, + "topicId": "0.0.29614911", + "messageId": "1648050474.194518992", + "documentURL": "https://ipfs.io/ipfs/bafkreianlv66ew6dcrjzyryrbh6hkkkyly7axdrtxybuw5t52zw64ccu3a", + "contextURL": "https://ipfs.io/ipfs/bafkreif342gfzasmqaayyhs7rdcc7mxzcbxw3jxer22ws3eoatgdqjorbi", + "iri": "#Policy&1.0.0", + "createDate": "2022-05-23T19:20:46.429Z", + "category": "SYSTEM" + }, + { + "id": "628bde8fb51d44b0198a3095", + "uuid": "StandardRegistry", + "hash": "", + "name": "StandardRegistry", + "entity": "STANDARD_REGISTRY", + "status": "PUBLISHED", + "readonly": true, + "document": { + "$id": "#StandardRegistry&1.0.0", + "$comment": "{ \"term\": \"StandardRegistry&1.0.0\", \"@id\": \"undefined#StandardRegistry&1.0.0\" }", + "title": "StandardRegistry", + "description": "StandardRegistry", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "name", + "description": "name", + "type": "string", + "readOnly": false + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "StandardRegistry&1.0.0": { + "@id": "undefined#StandardRegistry&1.0.0", + "@context": { + "date": { + "@id": "https://www.schema.org/text" + } + } + } + } + }, + "version": "1.0.0", + "creator": null, + "owner": null, + "topicId": "0.0.29614911", + "messageId": "1648050485.461249427", + "documentURL": "https://ipfs.io/ipfs/bafkreibvid2tikh3nv5rblgvqcj6zcskpm5w65iszkofnhqnipdjrfgji4", + "contextURL": "https://ipfs.io/ipfs/bafkreibzihfnj67xgs74xfv2ap7rallevyce6uj5sg73j3p2cxlm2qx6ru", + "iri": "#StandardRegistry&1.0.0", + "createDate": "2022-05-23T19:20:47.324Z", + "category": "SYSTEM" + }, + { + "id": "628bde9ab51d44b0198a3096", + "uuid": "WipeToken", + "hash": "", + "name": "WipeToken", + "entity": "WIPE_TOKEN", + "status": "PUBLISHED", + "readonly": true, + "document": { + "$id": "#WipeToken&1.0.0", + "$comment": "{ \"term\": \"WipeToken&1.0.0\", \"@id\": \"undefined#WipeToken&1.0.0\" }", + "title": "WipeToken", + "description": "WipeToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "amount": { + "$comment": "{\"term\": \"amount\", \"@id\": \"https://www.schema.org/text\"}", + "title": "amount", + "description": "amount", + "type": "string", + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "amount", + "tokenId" + ], + "additionalProperties": false + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "WipeToken&1.0.0": { + "@id": "undefined#WipeToken&1.0.0", + "@context": { + "date": { + "@id": "https://www.schema.org/text" + }, + "amount": { + "@id": "https://www.schema.org/text" + }, + "tokenId": { + "@id": "https://www.schema.org/text" + } + } + } + } + }, + "version": "1.0.0", + "creator": null, + "owner": null, + "topicId": "0.0.29614911", + "messageId": "1648050495.614894000", + "documentURL": "https://ipfs.io/ipfs/bafkreigjygpnik6azk5f4zvnxvjjqgceestej3voybjaoqlebfu2hi6nvq", + "contextURL": "https://ipfs.io/ipfs/bafkreihgj2td6c4faf5zibq7rrkbkkqryxxflfednbvbahvjft4brsco6q", + "iri": "#WipeToken&1.0.0", + "createDate": "2022-05-23T19:20:58.055Z", + "category": "SYSTEM" + }, + { + "id": "628d274eb51d44b0198a30ac", + "uuid": "ef5fa54f-ef88-4e4e-8d0e-29904bd222f2", + "hash": "", + "name": "I-REC Registrant & Participant App", + "description": "I-REC Registrant & Participant App", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0", + "$comment": "{\"term\": \"ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreiejsgxjj4ntamvgattviac5vtf5rtpvnvmojk444lyawutwsfnvwi#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0\"}", + "title": "I-REC Registrant & Participant App", + "description": "I-REC Registrant & Participant App", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Date", + "description": "Date", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field1": { + "title": "Applicant Details", + "description": "Applicant Details", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#4e8d5404-892d-48ed-b63f-b7a009c0eba1\"}", + "$ref": "#4e8d5404-892d-48ed-b63f-b7a009c0eba1" + }, + "field2": { + "title": "Primary Contact Details", + "description": "Primary Contact Details", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "$ref": "#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "title": "Lead User Details\t", + "description": "Lead User Details\t", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#a772f46e-2764-4909-b1a1-287c09d7a785\"}", + "$ref": "#a772f46e-2764-4909-b1a1-287c09d7a785" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field1", + "field2", + "field3", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#4e8d5404-892d-48ed-b63f-b7a009c0eba1": { + "$id": "#4e8d5404-892d-48ed-b63f-b7a009c0eba1", + "$comment": "{\"term\": \"4e8d5404-892d-48ed-b63f-b7a009c0eba1\", \"@id\": \"https://ipfs.io/ipfs/bafkreihe55hxacf32sxuybe3s3otblhfs3y5qlk3lccjvksh7kncwf6ura#4e8d5404-892d-48ed-b63f-b7a009c0eba1\"}", + "title": "Applicant Details", + "description": " Applicant Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Applicant Legal Name", + "description": "Applicant Legal Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Registered address line 1", + "description": "Registered address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Registered address line 2", + "description": "Registered address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Registered address line 3", + "description": "Registered address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal (ZIP) code", + "description": "Postal (ZIP) code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Legal Status", + "description": "Legal Status", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Country of company registration/private residence", + "description": "Country of company registration/private residence", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field8": { + "title": "Corporate registration number/passport number", + "description": "Corporate registration number/passport number", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "VAT number", + "description": "VAT number", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Website URL", + "description": "Website URL", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Main business (e.g. food retailer)", + "description": "Main business (e.g. food retailer)", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Year of registration", + "description": "Year of registration", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field13": { + "title": "Approximate number of employees", + "description": "Approximate number of employees", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field14": { + "title": "Name of the Chief Executive Officer/General Manager", + "description": "Name of the Chief Executive Officer/General Manager", + "readOnly": false, + "$comment": "{\"term\": \"field14\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field15": { + "title": "Chief Executive Officer/General Manager passport number", + "description": "Chief Executive Officer/General Manager passport number", + "readOnly": false, + "$comment": "{\"term\": \"field15\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field16": { + "title": "Please state in which countries the organization is active", + "description": "Please state in which countries the organization is active", + "readOnly": false, + "$comment": "{\"term\": \"field16\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field17": { + "title": "Please list the main (>10%) shareholders ", + "description": "Please list the main (>10%) shareholders ", + "readOnly": false, + "$comment": "{\"term\": \"field17\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field18": { + "title": "Balance sheet total for last financial year (in USD)", + "description": "Balance sheet total for last financial year (in USD)", + "readOnly": false, + "$comment": "{\"term\": \"field18\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field19": { + "title": "Email address for Accounts Department", + "description": "Email address for Accounts Department", + "readOnly": false, + "$comment": "{\"term\": \"field19\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#74a38111-b583-47c3-93b9-e453132ecbb5": { + "$id": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "$comment": "{\"term\": \"74a38111-b583-47c3-93b9-e453132ecbb5\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#a772f46e-2764-4909-b1a1-287c09d7a785": { + "$id": "#a772f46e-2764-4909-b1a1-287c09d7a785", + "$comment": "{\"term\": \"a772f46e-2764-4909-b1a1-287c09d7a785\", \"@id\": \"https://ipfs.io/ipfs/bafkreicwhwmdbu4r3zv3cfifbb47dd7y5bf7l6qzycf66ll6pskk2r7gyq#a772f46e-2764-4909-b1a1-287c09d7a785\"}", + "title": "Lead User Details", + "description": "Lead User Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Family Name (surname)", + "description": "Family Name (surname)", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Other (Given) Names", + "description": "Other (Given) Names", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Title", + "description": "Title", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field4": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "4e8d5404-892d-48ed-b63f-b7a009c0eba1": { + "@id": "https://ipfs.io/ipfs/bafkreihe55hxacf32sxuybe3s3otblhfs3y5qlk3lccjvksh7kncwf6ura#4e8d5404-892d-48ed-b63f-b7a009c0eba1", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + }, + "field14": { + "@id": "https://www.schema.org/text" + }, + "field15": { + "@id": "https://www.schema.org/text" + }, + "field16": { + "@id": "https://www.schema.org/text" + }, + "field17": { + "@id": "https://www.schema.org/text" + }, + "field18": { + "@id": "https://www.schema.org/text" + }, + "field19": { + "@id": "https://www.schema.org/text" + } + } + }, + "74a38111-b583-47c3-93b9-e453132ecbb5": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "a772f46e-2764-4909-b1a1-287c09d7a785": { + "@id": "https://ipfs.io/ipfs/bafkreicwhwmdbu4r3zv3cfifbb47dd7y5bf7l6qzycf66ll6pskk2r7gyq#a772f46e-2764-4909-b1a1-287c09d7a785", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + } + } + }, + "ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreiejsgxjj4ntamvgattviac5vtf5rtpvnvmojk444lyawutwsfnvwi#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#4e8d5404-892d-48ed-b63f-b7a009c0eba1" + }, + "field2": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#a772f46e-2764-4909-b1a1-287c09d7a785" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "owner": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "topicId": "0.0.34904155", + "messageId": "1653417819.330557775", + "documentURL": "https://ipfs.io/ipfs/bafkreidgia4grz7wu75uk63o7tmkfs3eho2gfai4hswuaftiwwhkazviqu", + "contextURL": "https://ipfs.io/ipfs/bafkreiecxdjqan75ufso7ofgc65ywrx7ettqigvtuovr4jl7rtss4abx2u", + "iri": "#ef5fa54f-ef88-4e4e-8d0e-29904bd222f2&1.0.0", + "createDate": "2022-05-24T18:43:26.925Z", + "category": "USER" + }, + { + "id": "628d2751b51d44b0198a30ad", + "uuid": "00526b15-79e2-4432-90d6-c895cee289b1", + "hash": "", + "name": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "$comment": "{\"term\": \"00526b15-79e2-4432-90d6-c895cee289b1&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0\"}", + "title": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Date", + "description": "Date", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field2": { + "title": "Is the Registrant also the owner of the Device? (provide evidence) ", + "description": "Is the Registrant also the owner of the Device? (provide evidence) ", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "$ref": "#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field4": { + "title": "Production Device Details", + "description": "Production Device Details", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#11496321-dbb9-423c-ba00-883983e0859f\"}", + "$ref": "#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field5": { + "title": "Energy Sources", + "description": "Energy Sources", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#c20662fc-7d19-4f9f-b190-d7b219dda16f\"}", + "$ref": "#c20662fc-7d19-4f9f-b190-d7b219dda16f" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field3", + "field4", + "field5", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#74a38111-b583-47c3-93b9-e453132ecbb5": { + "$id": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "$comment": "{\"term\": \"74a38111-b583-47c3-93b9-e453132ecbb5\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#11496321-dbb9-423c-ba00-883983e0859f": { + "$id": "#11496321-dbb9-423c-ba00-883983e0859f", + "$comment": "{\"term\": \"11496321-dbb9-423c-ba00-883983e0859f\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#c20662fc-7d19-4f9f-b190-d7b219dda16f": { + "$id": "#c20662fc-7d19-4f9f-b190-d7b219dda16f", + "$comment": "{\"term\": \"c20662fc-7d19-4f9f-b190-d7b219dda16f\", \"@id\": \"https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#c20662fc-7d19-4f9f-b190-d7b219dda16f\"}", + "title": "Energy Sources", + "description": "Energy Sources", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Energy Source (Input) – see Appendix 2", + "description": "Energy Source (Input) – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Technology – see Appendix 2", + "description": "Technology – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "On-site consumer present?", + "description": "On-site consumer present?", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field3": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Auxiliary/standby energy sources present?", + "description": "Auxiliary/standby energy sources present?", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field5": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "description": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "description": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field8": { + "title": "Please identify any labeling schemes for which the Device is accredited", + "description": "Please identify any labeling schemes for which the Device is accredited", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "description": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field10": { + "title": "If public (government) funding has been received when did/will it finish?", + "description": "If public (government) funding has been received when did/will it finish?", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "description": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field12": { + "title": "Preferred I-REC Device Verifier", + "description": "Preferred I-REC Device Verifier", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "74a38111-b583-47c3-93b9-e453132ecbb5": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "11496321-dbb9-423c-ba00-883983e0859f": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "c20662fc-7d19-4f9f-b190-d7b219dda16f": { + "@id": "https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#c20662fc-7d19-4f9f-b190-d7b219dda16f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + } + } + }, + "00526b15-79e2-4432-90d6-c895cee289b1&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field4": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field5": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#c20662fc-7d19-4f9f-b190-d7b219dda16f" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "owner": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "topicId": "0.0.34904155", + "messageId": "1653417825.201434396", + "documentURL": "https://ipfs.io/ipfs/bafkreihesagko7flofgvb3smausrt5nejp4zxm5puwj4cgsyehtfeilyu4", + "contextURL": "https://ipfs.io/ipfs/bafkreigdplzcs6ljxtaxlnkffq6mby5o4l5ckwx4vkqoo4ja36wn5g6k2e", + "iri": "#00526b15-79e2-4432-90d6-c895cee289b1&1.0.0", + "createDate": "2022-05-24T18:43:29.078Z", + "category": "USER" + }, + { + "id": "628d2752b51d44b0198a30ae", + "uuid": "7cf248b0-7f04-40df-ac1f-46903f07123b", + "hash": "", + "name": "I-REC Issue Request", + "description": "I-REC Issue Request", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "$comment": "{\"term\": \"7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0\"}", + "title": "I-REC Issue Request", + "description": "I-REC Issue Request", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Production Device/Production Group Id", + "description": "Production Device/Production Group Id", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "$ref": "#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "title": "Production Device/Production Group", + "description": "Production Device/Production Group", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#11496321-dbb9-423c-ba00-883983e0859f\"}", + "$ref": "#11496321-dbb9-423c-ba00-883983e0859f" + }, + "field4": { + "title": "Labelling scheme(s)", + "description": "labeling scheme(s)", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Last registration date", + "description": "Last registration date", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field6": { + "title": "Production Period Start Date", + "description": "Production Period Start Date", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field7": { + "title": "Total kWh Produced in this period", + "description": "Total kWh Produced in this period", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Production Period End Date", + "description": "Production Period End Date", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field9": { + "title": "Percentage of eligible total applied for", + "description": "Percentage of eligible total applied for", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field10": { + "title": "Type a: Settlement Metering data", + "description": "Type a: Settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Type b: Non-settlement Metering data", + "description": "Type b: Non-settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Type c: Measured Volume Transfer documentation", + "description": "Type c: Measured Volume Transfer documentation", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "Type d: Other", + "description": "Type d: Other", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field14": { + "title": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "description": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "readOnly": false, + "$comment": "{\"term\": \"field14\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field15": { + "title": "Is any of this production subject to a public consumption obligation?", + "description": "Is any of this production subject to a public consumption obligation?", + "readOnly": false, + "$comment": "{\"term\": \"field15\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field16": { + "title": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "description": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "readOnly": false, + "$comment": "{\"term\": \"field16\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field17": { + "title": "I-REC Participant name", + "description": "I-REC Participant name", + "readOnly": false, + "$comment": "{\"term\": \"field17\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field18": { + "title": "Account number", + "description": "Account number", + "readOnly": false, + "$comment": "{\"term\": \"field18\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field2", + "field3", + "field6", + "field7", + "field8", + "field17", + "field18", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#74a38111-b583-47c3-93b9-e453132ecbb5": { + "$id": "#74a38111-b583-47c3-93b9-e453132ecbb5", + "$comment": "{\"term\": \"74a38111-b583-47c3-93b9-e453132ecbb5\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#11496321-dbb9-423c-ba00-883983e0859f": { + "$id": "#11496321-dbb9-423c-ba00-883983e0859f", + "$comment": "{\"term\": \"11496321-dbb9-423c-ba00-883983e0859f\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "74a38111-b583-47c3-93b9-e453132ecbb5": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#74a38111-b583-47c3-93b9-e453132ecbb5", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "11496321-dbb9-423c-ba00-883983e0859f": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#11496321-dbb9-423c-ba00-883983e0859f", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + }, + "field14": { + "@id": "https://www.schema.org/text" + }, + "field15": { + "@id": "https://www.schema.org/text" + }, + "field16": { + "@id": "https://www.schema.org/text" + }, + "field17": { + "@id": "https://www.schema.org/text" + }, + "field18": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#74a38111-b583-47c3-93b9-e453132ecbb5" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#11496321-dbb9-423c-ba00-883983e0859f" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "owner": "did:hedera:testnet:DxUh34RvLVnepXjKmQK9q46remcasWfxtSaj3BcwbCGG;hedera:testnet:tid=0.0.34895921", + "topicId": "0.0.34904155", + "messageId": "1653417831.371325000", + "documentURL": "https://ipfs.io/ipfs/bafkreie2o56rs5zgwnw3z6effsgiotgeelsnrhzrhofpf2vejd6b2b5pjy", + "contextURL": "https://ipfs.io/ipfs/bafkreia47khrdqlcstlf6rxfcnaou7v4bjyswqn7kj2vm3gfuci5ivmdla", + "iri": "#7cf248b0-7f04-40df-ac1f-46903f07123b&1.0.0", + "createDate": "2022-05-24T18:43:30.919Z", + "category": "USER" + }, + { + "id": "628fad54b51d44b0198a30d2", + "uuid": "1af5b61a-7f1f-410e-87cc-a3c74823d74e", + "hash": "", + "name": "I-REC Registrant & Participant App", + "description": "I-REC Registrant & Participant App", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0", + "$comment": "{\"term\": \"1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreiejsgxjj4ntamvgattviac5vtf5rtpvnvmojk444lyawutwsfnvwi#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0\"}", + "title": "I-REC Registrant & Participant App", + "description": "I-REC Registrant & Participant App", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Date", + "description": "Date", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field1": { + "title": "Applicant Details", + "description": "Applicant Details", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#689e077b-07b6-40af-8fe9-0228ab4b94a4\"}", + "$ref": "#689e077b-07b6-40af-8fe9-0228ab4b94a4" + }, + "field2": { + "title": "Primary Contact Details", + "description": "Primary Contact Details", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "$ref": "#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field3": { + "title": "Lead User Details\t", + "description": "Lead User Details\t", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#40e734f4-befb-4962-bef4-cce68932f35d\"}", + "$ref": "#40e734f4-befb-4962-bef4-cce68932f35d" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field1", + "field2", + "field3", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#689e077b-07b6-40af-8fe9-0228ab4b94a4": { + "$id": "#689e077b-07b6-40af-8fe9-0228ab4b94a4", + "$comment": "{\"term\": \"689e077b-07b6-40af-8fe9-0228ab4b94a4\", \"@id\": \"https://ipfs.io/ipfs/bafkreihe55hxacf32sxuybe3s3otblhfs3y5qlk3lccjvksh7kncwf6ura#689e077b-07b6-40af-8fe9-0228ab4b94a4\"}", + "title": "Applicant Details", + "description": " Applicant Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Applicant Legal Name", + "description": "Applicant Legal Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Registered address line 1", + "description": "Registered address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Registered address line 2", + "description": "Registered address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Registered address line 3", + "description": "Registered address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal (ZIP) code", + "description": "Postal (ZIP) code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Legal Status", + "description": "Legal Status", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Country of company registration/private residence", + "description": "Country of company registration/private residence", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field8": { + "title": "Corporate registration number/passport number", + "description": "Corporate registration number/passport number", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "VAT number", + "description": "VAT number", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Website URL", + "description": "Website URL", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Main business (e.g. food retailer)", + "description": "Main business (e.g. food retailer)", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Year of registration", + "description": "Year of registration", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field13": { + "title": "Approximate number of employees", + "description": "Approximate number of employees", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field14": { + "title": "Name of the Chief Executive Officer/General Manager", + "description": "Name of the Chief Executive Officer/General Manager", + "readOnly": false, + "$comment": "{\"term\": \"field14\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field15": { + "title": "Chief Executive Officer/General Manager passport number", + "description": "Chief Executive Officer/General Manager passport number", + "readOnly": false, + "$comment": "{\"term\": \"field15\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field16": { + "title": "Please state in which countries the organization is active", + "description": "Please state in which countries the organization is active", + "readOnly": false, + "$comment": "{\"term\": \"field16\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field17": { + "title": "Please list the main (>10%) shareholders ", + "description": "Please list the main (>10%) shareholders ", + "readOnly": false, + "$comment": "{\"term\": \"field17\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field18": { + "title": "Balance sheet total for last financial year (in USD)", + "description": "Balance sheet total for last financial year (in USD)", + "readOnly": false, + "$comment": "{\"term\": \"field18\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field19": { + "title": "Email address for Accounts Department", + "description": "Email address for Accounts Department", + "readOnly": false, + "$comment": "{\"term\": \"field19\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#7a022a66-7912-46e8-b634-a636a08bbb19": { + "$id": "#7a022a66-7912-46e8-b634-a636a08bbb19", + "$comment": "{\"term\": \"7a022a66-7912-46e8-b634-a636a08bbb19\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#40e734f4-befb-4962-bef4-cce68932f35d": { + "$id": "#40e734f4-befb-4962-bef4-cce68932f35d", + "$comment": "{\"term\": \"40e734f4-befb-4962-bef4-cce68932f35d\", \"@id\": \"https://ipfs.io/ipfs/bafkreicwhwmdbu4r3zv3cfifbb47dd7y5bf7l6qzycf66ll6pskk2r7gyq#40e734f4-befb-4962-bef4-cce68932f35d\"}", + "title": "Lead User Details", + "description": "Lead User Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Family Name (surname)", + "description": "Family Name (surname)", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Other (Given) Names", + "description": "Other (Given) Names", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Title", + "description": "Title", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field4": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "689e077b-07b6-40af-8fe9-0228ab4b94a4": { + "@id": "https://ipfs.io/ipfs/bafkreihe55hxacf32sxuybe3s3otblhfs3y5qlk3lccjvksh7kncwf6ura#689e077b-07b6-40af-8fe9-0228ab4b94a4", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + }, + "field14": { + "@id": "https://www.schema.org/text" + }, + "field15": { + "@id": "https://www.schema.org/text" + }, + "field16": { + "@id": "https://www.schema.org/text" + }, + "field17": { + "@id": "https://www.schema.org/text" + }, + "field18": { + "@id": "https://www.schema.org/text" + }, + "field19": { + "@id": "https://www.schema.org/text" + } + } + }, + "7a022a66-7912-46e8-b634-a636a08bbb19": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "40e734f4-befb-4962-bef4-cce68932f35d": { + "@id": "https://ipfs.io/ipfs/bafkreicwhwmdbu4r3zv3cfifbb47dd7y5bf7l6qzycf66ll6pskk2r7gyq#40e734f4-befb-4962-bef4-cce68932f35d", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + } + } + }, + "1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreiejsgxjj4ntamvgattviac5vtf5rtpvnvmojk444lyawutwsfnvwi#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#689e077b-07b6-40af-8fe9-0228ab4b94a4" + }, + "field2": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreihxsmllnneje7shxerizd4nmjj3mg4mexaskixzkskqpdsksyd6qe#40e734f4-befb-4962-bef4-cce68932f35d" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "topicId": "0.0.34920819", + "messageId": "1653583202.782128916", + "documentURL": "https://ipfs.io/ipfs/bafkreib2rt6ud4dhkurf7auoa7bpihz42k65vqb43vhnhd5ibr2sh3h4h4", + "contextURL": "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri", + "iri": "#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0", + "createDate": "2022-05-26T16:39:48.593Z", + "category": "USER" + }, + { + "id": "628fad56b51d44b0198a30d3", + "uuid": "7fcd8807-0450-4eab-8ba5-d35b4cce48ba", + "hash": "", + "name": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0", + "$comment": "{\"term\": \"7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0\"}", + "title": "I-REC Facility & Device Reg", + "description": "I-REC Facility & Device Reg", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Date", + "description": "Date", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field2": { + "title": "Is the Registrant also the owner of the Device? (provide evidence) ", + "description": "Is the Registrant also the owner of the Device? (provide evidence) ", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "$ref": "#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field4": { + "title": "Production Device Details", + "description": "Production Device Details", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#45abb4cb-7503-4ac4-9d31-44c468d64741\"}", + "$ref": "#45abb4cb-7503-4ac4-9d31-44c468d64741" + }, + "field5": { + "title": "Energy Sources", + "description": "Energy Sources", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#a68191f7-7b10-486e-b3f2-19ab2aa41742\"}", + "$ref": "#a68191f7-7b10-486e-b3f2-19ab2aa41742" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field3", + "field4", + "field5", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#7a022a66-7912-46e8-b634-a636a08bbb19": { + "$id": "#7a022a66-7912-46e8-b634-a636a08bbb19", + "$comment": "{\"term\": \"7a022a66-7912-46e8-b634-a636a08bbb19\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#45abb4cb-7503-4ac4-9d31-44c468d64741": { + "$id": "#45abb4cb-7503-4ac4-9d31-44c468d64741", + "$comment": "{\"term\": \"45abb4cb-7503-4ac4-9d31-44c468d64741\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#45abb4cb-7503-4ac4-9d31-44c468d64741\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#a68191f7-7b10-486e-b3f2-19ab2aa41742": { + "$id": "#a68191f7-7b10-486e-b3f2-19ab2aa41742", + "$comment": "{\"term\": \"a68191f7-7b10-486e-b3f2-19ab2aa41742\", \"@id\": \"https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#a68191f7-7b10-486e-b3f2-19ab2aa41742\"}", + "title": "Energy Sources", + "description": "Energy Sources", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Energy Source (Input) – see Appendix 2", + "description": "Energy Source (Input) – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Technology – see Appendix 2", + "description": "Technology – see Appendix 2", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "On-site consumer present?", + "description": "On-site consumer present?", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field3": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Auxiliary/standby energy sources present?", + "description": "Auxiliary/standby energy sources present?", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field5": { + "title": "If yes give details", + "description": "If yes give details", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "description": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "description": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field8": { + "title": "Please identify any labeling schemes for which the Device is accredited", + "description": "Please identify any labeling schemes for which the Device is accredited", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "description": "Has the Device ever received public (government) funding (e.g. Feed in Tariff)?", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field10": { + "title": "If public (government) funding has been received when did/will it finish?", + "description": "If public (government) funding has been received when did/will it finish?", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "description": "Requested effective date of registration (no earlier than 12 months prior to submitting this form)", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field12": { + "title": "Preferred I-REC Device Verifier", + "description": "Preferred I-REC Device Verifier", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "7a022a66-7912-46e8-b634-a636a08bbb19": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "45abb4cb-7503-4ac4-9d31-44c468d64741": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "a68191f7-7b10-486e-b3f2-19ab2aa41742": { + "@id": "https://ipfs.io/ipfs/bafkreicdymqudwen65zkey2eoirbvkbszcs75yr3b6x52zihmdro6dbmlm#a68191f7-7b10-486e-b3f2-19ab2aa41742", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + } + } + }, + "7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreiarfdavk3bq23pay336sekvlhalvklot2egjenotiy5cigc37xhzy#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field4": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#45abb4cb-7503-4ac4-9d31-44c468d64741" + }, + "field5": { + "@id": "https://ipfs.io/ipfs/bafkreie567lxme4xxcz7gjyyj7lk2jhf3oa5hnbukqctyjjx42y2pfrqx4#a68191f7-7b10-486e-b3f2-19ab2aa41742" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "topicId": "0.0.34920819", + "messageId": "1653583208.436214000", + "documentURL": "https://ipfs.io/ipfs/bafkreicwqzpahxtokrrorefcf555fqcmmncssie4gifreozeedmw4kq5aa", + "contextURL": "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda", + "iri": "#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0", + "createDate": "2022-05-26T16:39:50.767Z", + "category": "USER" + }, + { + "id": "628fad58b51d44b0198a30d4", + "uuid": "43c55ee0-6a1e-4d33-8bbf-710b1b4749be", + "hash": "", + "name": "I-REC Issue Request", + "description": "I-REC Issue Request", + "entity": "VC", + "status": "PUBLISHED", + "readonly": false, + "document": { + "$id": "#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0", + "$comment": "{\"term\": \"43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0\", \"@id\": \"https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0\"}", + "title": "I-REC Issue Request", + "description": "I-REC Issue Request", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Registrant Id", + "description": "Registrant Id", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Production Device/Production Group Id", + "description": "Production Device/Production Group Id", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Registrant Details", + "description": "Registrant Details", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "$ref": "#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field3": { + "title": "Production Device/Production Group", + "description": "Production Device/Production Group", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#45abb4cb-7503-4ac4-9d31-44c468d64741\"}", + "$ref": "#45abb4cb-7503-4ac4-9d31-44c468d64741" + }, + "field4": { + "title": "Labelling scheme(s)", + "description": "labeling scheme(s)", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Last registration date", + "description": "Last registration date", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field6": { + "title": "Production Period Start Date", + "description": "Production Period Start Date", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field7": { + "title": "Total kWh Produced in this period", + "description": "Total kWh Produced in this period", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Production Period End Date", + "description": "Production Period End Date", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field9": { + "title": "Percentage of eligible total applied for", + "description": "Percentage of eligible total applied for", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field10": { + "title": "Type a: Settlement Metering data", + "description": "Type a: Settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "Type b: Non-settlement Metering data", + "description": "Type b: Non-settlement Metering data", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Type c: Measured Volume Transfer documentation", + "description": "Type c: Measured Volume Transfer documentation", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "Type d: Other", + "description": "Type d: Other", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field14": { + "title": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "description": "Is the production of this electricity counted towards a national, sub-national or regulatory target?", + "readOnly": false, + "$comment": "{\"term\": \"field14\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field15": { + "title": "Is any of this production subject to a public consumption obligation?", + "description": "Is any of this production subject to a public consumption obligation?", + "readOnly": false, + "$comment": "{\"term\": \"field15\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field16": { + "title": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "description": "Do you retain the right to obtain emissions reduction certificates or carbon offsets for the energy nominated in this Issue Request?", + "readOnly": false, + "$comment": "{\"term\": \"field16\", \"@id\": \"https://www.schema.org/text\"}", + "type": "boolean" + }, + "field17": { + "title": "I-REC Participant name", + "description": "I-REC Participant name", + "readOnly": false, + "$comment": "{\"term\": \"field17\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field18": { + "title": "Account number", + "description": "Account number", + "readOnly": false, + "$comment": "{\"term\": \"field18\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "policyId": { + "title": "policyId", + "description": "policyId", + "readOnly": true, + "$comment": "{\"term\": \"policyId\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "ref": { + "title": "ref", + "description": "ref", + "readOnly": true, + "$comment": "{\"term\": \"ref\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type", + "field2", + "field3", + "field6", + "field7", + "field8", + "field17", + "field18", + "policyId" + ], + "additionalProperties": false, + "$defs": { + "#7a022a66-7912-46e8-b634-a636a08bbb19": { + "$id": "#7a022a66-7912-46e8-b634-a636a08bbb19", + "$comment": "{\"term\": \"7a022a66-7912-46e8-b634-a636a08bbb19\", \"@id\": \"https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19\"}", + "title": "Contact Details", + "description": "Contact Details", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Organization Name", + "description": "Organization Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address line 1", + "description": "Address line 1", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Address line 2", + "description": "Address line 2", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Address line 3", + "description": "Address line 3", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "Contact person", + "description": "Contact person", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "e-mail", + "description": "e-mail", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "email" + }, + "field8": { + "title": "Telephone", + "description": "Telephone", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field9": { + "title": "Fax", + "description": "Fax", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field10": { + "title": "Existing I-REC Registry organization(s) to become subsidiary", + "description": "Existing I-REC Registry organization(s) to become subsidiary", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + }, + "#45abb4cb-7503-4ac4-9d31-44c468d64741": { + "$id": "#45abb4cb-7503-4ac4-9d31-44c468d64741", + "$comment": "{\"term\": \"45abb4cb-7503-4ac4-9d31-44c468d64741\", \"@id\": \"https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#45abb4cb-7503-4ac4-9d31-44c468d64741\"}", + "title": "Production Device", + "description": "Production Device", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "field0": { + "title": "Device Name", + "description": "Device Name", + "readOnly": false, + "$comment": "{\"term\": \"field0\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field1": { + "title": "Address", + "description": "Address", + "readOnly": false, + "$comment": "{\"term\": \"field1\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field2": { + "title": "Postal code", + "description": "Postal code", + "readOnly": false, + "$comment": "{\"term\": \"field2\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field3": { + "title": "Country", + "description": "Country", + "readOnly": false, + "$comment": "{\"term\": \"field3\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field4": { + "title": "Longitude", + "description": "Longitude", + "readOnly": false, + "$comment": "{\"term\": \"field4\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field5": { + "title": "Latitude", + "description": "Latitude", + "readOnly": false, + "$comment": "{\"term\": \"field5\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field6": { + "title": "TSO’s ID for measurement point", + "description": "TSO’s ID for measurement point", + "readOnly": false, + "$comment": "{\"term\": \"field6\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field7": { + "title": "Installed capacity (kW)", + "description": "Installed capacity (kW)", + "readOnly": false, + "$comment": "{\"term\": \"field7\", \"@id\": \"https://www.schema.org/text\"}", + "type": "number" + }, + "field8": { + "title": "Number of generating units", + "description": "Number of generating units", + "readOnly": false, + "$comment": "{\"term\": \"field8\", \"@id\": \"https://www.schema.org/text\"}", + "type": "integer" + }, + "field9": { + "title": "Date of commissioning", + "description": "Date of commissioning", + "readOnly": false, + "$comment": "{\"term\": \"field9\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string", + "format": "date" + }, + "field10": { + "title": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "description": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "readOnly": false, + "$comment": "{\"term\": \"field10\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field11": { + "title": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "description": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "readOnly": false, + "$comment": "{\"term\": \"field11\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field12": { + "title": "Expected form of volume evidence", + "description": "Expected form of volume evidence", + "readOnly": false, + "$comment": "{\"term\": \"field12\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + }, + "field13": { + "title": "If other please specify", + "description": "If other please specify", + "readOnly": false, + "$comment": "{\"term\": \"field13\", \"@id\": \"https://www.schema.org/text\"}", + "type": "string" + } + }, + "required": [ + "@context", + "type" + ], + "additionalProperties": false + } + } + }, + "context": { + "@context": { + "@version": 1.1, + "@vocab": "https://w3id.org/traceability/#undefinedTerm", + "id": "@id", + "type": "@type", + "7a022a66-7912-46e8-b634-a636a08bbb19": { + "@id": "https://ipfs.io/ipfs/bafkreidwms3pistbvq472d3zkhpll7eth7azpwmftour4xmzrntvibhk2u#7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + } + } + }, + "45abb4cb-7503-4ac4-9d31-44c468d64741": { + "@id": "https://ipfs.io/ipfs/bafkreibfmmst6ivkxzdcpmxf75lmtlhewgniohcexyhnbdqzg3lbnsgmte#45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://www.schema.org/text" + }, + "field3": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + } + } + }, + "43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0": { + "@id": "https://ipfs.io/ipfs/bafkreihyzgmwkeaizxlvwc7kvvj2l7xjaajp6gnaejx7gvqumtsmc3o2he#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0", + "@context": { + "field0": { + "@id": "https://www.schema.org/text" + }, + "field1": { + "@id": "https://www.schema.org/text" + }, + "field4": { + "@id": "https://www.schema.org/text" + }, + "field5": { + "@id": "https://www.schema.org/text" + }, + "field6": { + "@id": "https://www.schema.org/text" + }, + "field7": { + "@id": "https://www.schema.org/text" + }, + "field8": { + "@id": "https://www.schema.org/text" + }, + "field9": { + "@id": "https://www.schema.org/text" + }, + "field10": { + "@id": "https://www.schema.org/text" + }, + "field11": { + "@id": "https://www.schema.org/text" + }, + "field12": { + "@id": "https://www.schema.org/text" + }, + "field13": { + "@id": "https://www.schema.org/text" + }, + "field14": { + "@id": "https://www.schema.org/text" + }, + "field15": { + "@id": "https://www.schema.org/text" + }, + "field16": { + "@id": "https://www.schema.org/text" + }, + "field17": { + "@id": "https://www.schema.org/text" + }, + "field18": { + "@id": "https://www.schema.org/text" + }, + "policyId": { + "@id": "https://www.schema.org/text" + }, + "ref": { + "@id": "https://www.schema.org/text" + }, + "field2": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#7a022a66-7912-46e8-b634-a636a08bbb19" + }, + "field3": { + "@id": "https://ipfs.io/ipfs/bafkreigvosme6ktbnfrbjcmttddtqqvvjzvoxjiakum4ahxuq3s4owswgq#45abb4cb-7503-4ac4-9d31-44c468d64741" + } + } + } + } + }, + "version": "1.0.0", + "creator": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "topicId": "0.0.34920819", + "messageId": "1653583213.755742489", + "documentURL": "https://ipfs.io/ipfs/bafkreic7wli3enjozefcs2556j7ru74ba73sooufkalzqna6beojhghcy4", + "contextURL": "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi", + "iri": "#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0", + "createDate": "2022-05-26T16:39:52.946Z", + "category": "USER" + } + ], + "data": { + "vpDocument": { + "type": "VP", + "title": "Verified Presentation", + "tag": "mint_token", + "hash": "GChWHiV7Ef1e6Gec9dLjcVHVkn2SCxceBQbSndwMmL91", + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "username": "ikapqhvd", + "document": { + "id": "628fae64b51d44b0198a30e7", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "hash": "GChWHiV7Ef1e6Gec9dLjcVHVkn2SCxceBQbSndwMmL91", + "document": { + "id": "90c00f1d-aae7-4a60-a0f3-907da02f30a1", + "type": [ + "VerifiablePresentation" + ], + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "verifiableCredential": [ + { + "id": "dca9415a-505e-4050-b524-b2bea0eba1f6", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:08.941Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "field1": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field4": "labeling scheme(s)", + "field5": "2022-05-01", + "field6": "2022-05-01", + "field7": 1, + "field8": "2022-05-31", + "field9": 1, + "field10": "Type a: Settlement Metering data", + "field11": "Type b: Non-settlement Metering data", + "field12": "Type c: Measured Volume Transfer documentation", + "field13": "Type d: Other", + "field14": true, + "field15": true, + "field16": true, + "field17": "ikapqhvd", + "field18": "0.0.34920818", + "policyId": "628fad58b51d44b0198a30d5", + "ref": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "id": "a91c0d59-94cd-47fd-8e20-6dec9217c404", + "type": "43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:08Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..nekiIoY2eGxrMWsEK272nKGeQihC84N_3Ne1EqS0RZ87CfBp-LSwBvxrArvgBYEVWqeVMiURjWq4d43eM-sCCg" + } + }, + { + "id": "973b16cb-ed03-48c8-ab22-6ed70d127797", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:12.783Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "date": "2022-05-26T16:44:12.779Z", + "tokenId": "0.0.34920820", + "amount": "1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza" + ], + "type": "MintToken&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3fM9mKooHcW7GMgMmkgoXATFcRnzmpdL6y9DqZ3EtNyLvbfWVRwUiFq_nGz7R2p3AqyP7OxogiHNjIsJGRJzDA" + } + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "authentication", + "challenge": "123", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..K_uamuxowiPFUMD2x1NQj1akhJhCSBthrLgx71Q9v2OouIfJrhFdDF6EltDMUl64B8mjPXL-bS9kNwUcpW-HAA" + } + }, + "createDate": "2022-05-26T16:44:20.864Z", + "updateDate": "2022-05-26T16:44:20.864Z", + "status": "NEW", + "signature": 0, + "type": "mint", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "mint_token", + "messageId": "1653583459.200350695", + "topicId": "0.0.34920825" + } + }, + "vcDocument": null, + "mintDocument": { + "type": "VC", + "tokenId": "0.0.34920820", + "date": "2022-05-26T16:44:12.779Z", + "tag": "mint_token", + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "username": "ikapqhvd", + "document": { + "owner": null, + "hash": null, + "type": null, + "policyId": null, + "tag": null, + "option": null, + "document": { + "id": "973b16cb-ed03-48c8-ab22-6ed70d127797", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:12.783Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "date": "2022-05-26T16:44:12.779Z", + "tokenId": "0.0.34920820", + "amount": "1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza" + ], + "type": "MintToken&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3fM9mKooHcW7GMgMmkgoXATFcRnzmpdL6y9DqZ3EtNyLvbfWVRwUiFq_nGz7R2p3AqyP7OxogiHNjIsJGRJzDA" + } + } + } + }, + "policyDocument": { + "type": "VC", + "name": "iRec_2_1650456840748_1653583192967", + "description": "iRec Description", + "version": "1.0.0", + "tag": "Policy Created", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fad77b51d44b0198a30d7", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "hash": "7EzEWBcxuXXMTkDsroou62gsXUvX8kNYYkk4kDHDCAiJ", + "document": { + "id": "0c8b519c-ea10-4ca1-9102-7bd020d9af05", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:40:23.553Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "name": "iRec_2_1650456840748_1653583192967", + "description": "iRec Description", + "topicDescription": "iRec Description", + "version": "1.0.0", + "policyTag": "Tag_1653583170544", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "cid": "bafkreiav4oc2w2ftj32uj7yzysoszacgd2j7w4qvlqcz3gwas2spg2wkcm", + "url": "https://ipfs.io/ipfs/bafkreiav4oc2w2ftj32uj7yzysoszacgd2j7w4qvlqcz3gwas2spg2wkcm", + "uuid": "3d4f1bfc-e128-438b-aedd-5728541927bd", + "operation": "PUBLISH", + "@context": [ + "https://ipfs.io/ipfs/bafkreif342gfzasmqaayyhs7rdcc7mxzcbxw3jxer22ws3eoatgdqjorbi" + ], + "id": "1653583219.617650000", + "type": "Policy&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:40:23Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Z_DLoz13hfNN4k0vxhLCbcOZ1PQWY284YkfFBMCr56AJk3nkyGFqYbYlyLRMy7bYdz3ompo8Q0xFchuTrQD8Bg" + } + }, + "createDate": "2022-05-26T16:40:23.581Z", + "updateDate": "2022-05-26T16:40:23.581Z", + "hederaStatus": "NEW", + "signature": 0, + "type": "POLICY", + "policyId": "628fad58b51d44b0198a30d5", + "option": {} + } + }, + "policyCreatorDocument": { + "type": "VC", + "title": "StandardRegistry", + "description": "Account Creation", + "visible": true, + "tag": "Account Creation", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fad77b51d44b0198a30d7", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "hash": "7EzEWBcxuXXMTkDsroou62gsXUvX8kNYYkk4kDHDCAiJ", + "document": { + "id": "0c8b519c-ea10-4ca1-9102-7bd020d9af05", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:40:23.553Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "name": "iRec_2_1650456840748_1653583192967", + "description": "iRec Description", + "topicDescription": "iRec Description", + "version": "1.0.0", + "policyTag": "Tag_1653583170544", + "owner": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "cid": "bafkreiav4oc2w2ftj32uj7yzysoszacgd2j7w4qvlqcz3gwas2spg2wkcm", + "url": "https://ipfs.io/ipfs/bafkreiav4oc2w2ftj32uj7yzysoszacgd2j7w4qvlqcz3gwas2spg2wkcm", + "uuid": "3d4f1bfc-e128-438b-aedd-5728541927bd", + "operation": "PUBLISH", + "@context": [ + "https://ipfs.io/ipfs/bafkreif342gfzasmqaayyhs7rdcc7mxzcbxw3jxer22ws3eoatgdqjorbi" + ], + "id": "1653583219.617650000", + "type": "Policy&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:40:23Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Z_DLoz13hfNN4k0vxhLCbcOZ1PQWY284YkfFBMCr56AJk3nkyGFqYbYlyLRMy7bYdz3ompo8Q0xFchuTrQD8Bg" + } + }, + "createDate": "2022-05-26T16:40:23.581Z", + "updateDate": "2022-05-26T16:40:23.581Z", + "hederaStatus": "NEW", + "signature": 0, + "type": "POLICY", + "policyId": "628fad58b51d44b0198a30d5", + "option": {} + } + }, + "documents": [ + { + "type": "VC", + "title": "Token", + "description": "Token[s] minted.", + "visible": true, + "tag": "mint_token", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fae60b51d44b0198a30e6", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "hash": "G2ugkfkZrLUZcF5U5PrNWrBCRtKS2PZSdhMFE4tYzXGS", + "document": { + "id": "973b16cb-ed03-48c8-ab22-6ed70d127797", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:12.783Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "date": "2022-05-26T16:44:12.779Z", + "tokenId": "0.0.34920820", + "amount": "1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza" + ], + "type": "MintToken&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:12Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3fM9mKooHcW7GMgMmkgoXATFcRnzmpdL6y9DqZ3EtNyLvbfWVRwUiFq_nGz7R2p3AqyP7OxogiHNjIsJGRJzDA" + } + }, + "createDate": "2022-05-26T16:44:16.845Z", + "updateDate": "2022-05-26T16:44:16.845Z", + "hederaStatus": "NEW", + "signature": 0, + "type": "mint", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "mint_token", + "option": {}, + "schema": "#MintToken&1.0.0", + "messageId": "1653583455.269819728", + "topicId": "0.0.34920825" + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Issue Request Review", + "description": "Issue Request processed.", + "visible": true, + "tag": "save_issue_status(minted)", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fae5cb51d44b0198a30e5", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "assign": null, + "hash": "6GGKsBMp4b3dHowKv7oy67U5YHytU2XxjmpvK5gvz8oC", + "document": { + "id": "dca9415a-505e-4050-b524-b2bea0eba1f6", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:44:08.941Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "field1": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field4": "labeling scheme(s)", + "field5": "2022-05-01", + "field6": "2022-05-01", + "field7": 1, + "field8": "2022-05-31", + "field9": 1, + "field10": "Type a: Settlement Metering data", + "field11": "Type b: Non-settlement Metering data", + "field12": "Type c: Measured Volume Transfer documentation", + "field13": "Type d: Other", + "field14": true, + "field15": true, + "field16": true, + "field17": "ikapqhvd", + "field18": "0.0.34920818", + "policyId": "628fad58b51d44b0198a30d5", + "ref": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "id": "a91c0d59-94cd-47fd-8e20-6dec9217c404", + "type": "43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:44:08Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..nekiIoY2eGxrMWsEK272nKGeQihC84N_3Ne1EqS0RZ87CfBp-LSwBvxrArvgBYEVWqeVMiURjWq4d43eM-sCCg" + } + }, + "createDate": "2022-05-26T16:44:12.736Z", + "updateDate": "2022-05-26T16:44:12.736Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "issue_request(Approved)", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_issue_status(minted)", + "option": { + "status": "Minted" + }, + "schema": "#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0", + "messageId": "1653583451.120936000", + "topicId": "0.0.34920825", + "relationships": [ + "1653583432.992626000" + ] + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Issue Request", + "description": "Registrant submitted Issue Request to Issuer.", + "visible": true, + "tag": "save_issue_status(approved)", + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "username": "ikapqhvd", + "document": { + "id": "628fae4ab51d44b0198a30e4", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "assign": null, + "hash": "HhvMGWusV4a7gJgaaiAognXLePh72wYZj4sGonXvdthf", + "document": { + "id": "287c2af2-875f-42b6-b460-95727f405a6e", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:43:50.514Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field4": "labeling scheme(s)", + "field5": "2022-05-01", + "field6": "2022-05-01", + "field7": 1, + "field8": "2022-05-31", + "field9": 1, + "field10": "Type a: Settlement Metering data", + "field11": "Type b: Non-settlement Metering data", + "field12": "Type c: Measured Volume Transfer documentation", + "field13": "Type d: Other", + "field14": true, + "field15": true, + "field16": true, + "field17": "ikapqhvd", + "field18": "0.0.34920818", + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "field1": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "ref": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "policyId": "628fad58b51d44b0198a30d5", + "@context": [ + "https://ipfs.io/ipfs/bafkreihyatvhddgxby6lauuutjuon777rrk46yzwpp7dvrr3g4sjmyo3qi" + ], + "id": "a91c0d59-94cd-47fd-8e20-6dec9217c404", + "type": "43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:43:50Z", + "verificationMethod": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..oaOfVfnc54-us4fYfJYKkjtuPKJ6JNoAFadkkpivSOwVfx6g9q6YpWbefb52z0d_SDhVw847GZdX8gBUnIOMDg" + } + }, + "createDate": "2022-05-26T16:43:54.973Z", + "updateDate": "2022-05-26T16:43:54.973Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "issue_request", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_issue_status(approved)", + "option": { + "status": "Approved" + }, + "schema": "#43c55ee0-6a1e-4d33-8bbf-710b1b4749be&1.0.0", + "messageId": "1653583432.992626000", + "topicId": "0.0.34920825", + "relationships": [ + "1653583321.808582000" + ] + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Device Review", + "description": "Device registration request processed.", + "visible": true, + "tag": "save_copy_device", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fae36b51d44b0198a30e1", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "hash": "GfXVzcjHQqZBm4wuZimtCQBui2oyHkpysVc4nFZWEo6r", + "document": { + "id": "0c29a512-8771-46eb-bc63-7c6622d267af", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:43:29.699Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field1": "2022-05-11", + "field2": "Is the Registrant also the owner of the Device? (provide evidence)", + "field3": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field4": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field5": { + "type": "a68191f7-7b10-486e-b3f2-19ab2aa41742", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Energy Source (Input) – see Appendix 2", + "field1": "Technology – see Appendix 2", + "field2": true, + "field3": "If yes give details", + "field4": true, + "field5": "If yes give details", + "field6": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "field7": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "field8": "Please identify any labeling schemes for which the Device is accredited", + "field9": true, + "field10": "If public (government) funding has been received when did/will it finish?", + "field11": "2022-05-11", + "field12": "Preferred I-REC Device Verifier" + }, + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "ref": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "policyId": "628fad58b51d44b0198a30d5", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "id": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "type": "7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:43:29Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..p7ywR4ihGyQfTqy94VVsA3SWE72Oth2833mSIo3pPqRF65z0XCx1z1ptwwm5IMGpFJ1ARCLgKK4nDiiPbnv2BQ" + } + }, + "createDate": "2022-05-26T16:43:34.307Z", + "updateDate": "2022-05-26T16:43:34.307Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "device(Approved)", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_copy_device", + "option": { + "status": "Approved" + }, + "schema": "#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0", + "messageId": "1653583412.047133000", + "topicId": "0.0.34920825", + "relationships": [ + "1653583321.808582000" + ] + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Device Registration", + "description": "Production Facility/Device registration request submitted to Issuer.", + "visible": true, + "tag": "save_device_status(approved)", + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "username": "ikapqhvd", + "document": { + "id": "628faddbb51d44b0198a30e0", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "assign": null, + "hash": "JC8N24KUYD1SN312ueH12zxEovQYN5utBhK3wU2Xozmk", + "document": { + "id": "8994cbc1-8c5f-4e34-a599-4c5f33ac8cf8", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:41:58.595Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field1": "2022-05-11", + "field2": "Is the Registrant also the owner of the Device? (provide evidence)", + "field3": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field4": { + "type": "45abb4cb-7503-4ac4-9d31-44c468d64741", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Device Name", + "field1": "Address", + "field2": "Postal code", + "field3": "Country", + "field4": "Longitude", + "field5": "Latitude", + "field6": "TSO’s ID for measurement point", + "field7": 1, + "field8": 1, + "field9": "2022-05-11", + "field10": "Owner of the network to which the Production Device is connected and the voltage of that connection", + "field11": "If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", + "field12": "Expected form of volume evidence", + "field13": "If other please specify" + }, + "field5": { + "type": "a68191f7-7b10-486e-b3f2-19ab2aa41742", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "field0": "Energy Source (Input) – see Appendix 2", + "field1": "Technology – see Appendix 2", + "field2": true, + "field3": "If yes give details", + "field4": true, + "field5": "If yes give details", + "field6": "Please give details of how the site can import electricity by means other than through the meter(s) specified above", + "field7": "Please give details (including registration id) of any carbon offset or energy tracking scheme for which the Production Device is registered. State ‘None’ if that is the case", + "field8": "Please identify any labeling schemes for which the Device is accredited", + "field9": true, + "field10": "If public (government) funding has been received when did/will it finish?", + "field11": "2022-05-11", + "field12": "Preferred I-REC Device Verifier" + }, + "field0": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "ref": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "policyId": "628fad58b51d44b0198a30d5", + "@context": [ + "https://ipfs.io/ipfs/bafkreifkvs7ubenmxnn6qs5gjvshsewidv23wipxqndjtgbi6mbglywuda" + ], + "id": "did:hedera:testnet:7cQxoxXvaH8ELCpJC3qUYkrnY7HCKrC3FsjW41atZDXm;hedera:testnet:tid=0.0.34920823", + "type": "7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:41:58Z", + "verificationMethod": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3yNZxti1L2kuk4yLv8bbVX83BuLbyo0zYFsNc0ey8DZj5T6xnyTnKStKQc7Q-URW1L8SBu3iqnWvBhLjcNT0Dw" + } + }, + "createDate": "2022-05-26T16:42:03.632Z", + "updateDate": "2022-05-26T16:42:03.632Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "device", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_device_status(approved)", + "option": { + "status": "Approved" + }, + "schema": "#7fcd8807-0450-4eab-8ba5-d35b4cce48ba&1.0.0", + "messageId": "1653583321.808582000", + "topicId": "0.0.34920825", + "relationships": [ + "1653583293.497344059" + ] + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Application Review", + "description": "Application/KYC processed.", + "visible": true, + "tag": "save_copy_application", + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "username": "pwjhazo2", + "document": { + "id": "628fadbfb51d44b0198a30dc", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "hash": "9wwqSWouE2Dgz5QLGWWvQvdHFbDZrHQ7AQibyNBvBthA", + "document": { + "id": "0c3081ec-6e93-4a21-ae96-9f29a1783087", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:41:31.077Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "2022-05-11", + "field1": { + "type": "689e077b-07b6-40af-8fe9-0228ab4b94a4", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Applicant Legal Name", + "field1": "Registered address line 1", + "field2": "Registered address line 2", + "field3": "Registered address line 3", + "field4": "Postal (ZIP) code", + "field5": "Country", + "field6": "Legal Status", + "field7": "Country of company registration/private residence", + "field8": "Corporate registration number/passport number", + "field9": "VAT number", + "field10": "Website URL", + "field11": "Main business (e.g. food retailer)", + "field12": 1, + "field13": 1, + "field14": "Name of the Chief Executive Officer/General Manager", + "field15": "Chief Executive Officer/General Manager passport number", + "field16": "Please state in which countries the organization is active", + "field17": "Please list the main (>10%) shareholders", + "field18": 1, + "field19": "email@email.com" + }, + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "40e734f4-befb-4962-bef4-cce68932f35d", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Family Name (surname)", + "field1": "Other (Given) Names", + "field2": "Title", + "field3": "email@email.com", + "field4": "123456789", + "field5": "Fax" + }, + "policyId": "628fad58b51d44b0198a30d5", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "id": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "type": "1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:41:31Z", + "verificationMethod": "did:hedera:testnet:CtcLfcnrP4BDEHBFmWRHpEovwr8v1U6BNLrrVhSHjeuv;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..rTayqUFES8Gs0BW9wIZZxdhWWsS3p1VJ57X94ZIlyKGrbIy0q7AXTaA9h8yRSTREZ4y5viqDpbnuKeSd_2E1Dw" + } + }, + "createDate": "2022-05-26T16:41:35.298Z", + "updateDate": "2022-05-26T16:41:35.298Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "registrant(Approved)", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_copy_application", + "option": { + "status": "Approved" + }, + "schema": "#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0", + "messageId": "1653583293.497344059", + "topicId": "0.0.34920825", + "relationships": [ + "1653583276.830802000" + ] + }, + "iconType": "COMMON" + }, + { + "type": "VC", + "title": "Registrant Application", + "description": "Application submitted to Issuer.", + "visible": true, + "tag": "save_application_status(approve)", + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "username": "ikapqhvd", + "document": { + "id": "628fadadb51d44b0198a30db", + "owner": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "assign": null, + "hash": "8jqdsF8Sg4GdQcj7Rs2cUFjW1Mbf1V9KAJLZmzt33kDo", + "document": { + "id": "e0ff7f8d-0317-4684-ac9f-543b3f2ff804", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "issuanceDate": "2022-05-26T16:41:08.141Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "2022-05-11", + "field1": { + "type": "689e077b-07b6-40af-8fe9-0228ab4b94a4", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Applicant Legal Name", + "field1": "Registered address line 1", + "field2": "Registered address line 2", + "field3": "Registered address line 3", + "field4": "Postal (ZIP) code", + "field5": "Country", + "field6": "Legal Status", + "field7": "Country of company registration/private residence", + "field8": "Corporate registration number/passport number", + "field9": "VAT number", + "field10": "Website URL", + "field11": "Main business (e.g. food retailer)", + "field12": 1, + "field13": 1, + "field14": "Name of the Chief Executive Officer/General Manager", + "field15": "Chief Executive Officer/General Manager passport number", + "field16": "Please state in which countries the organization is active", + "field17": "Please list the main (>10%) shareholders", + "field18": 1, + "field19": "email@email.com" + }, + "field2": { + "type": "7a022a66-7912-46e8-b634-a636a08bbb19", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Organization Name", + "field1": "Address line 1", + "field2": "Address line 2", + "field3": "Address line 3", + "field4": "Postal code", + "field5": "Country", + "field6": "Contact person", + "field7": "email@email.com", + "field8": "123456789", + "field9": "Fax", + "field10": "Existing I-REC Registry organization(s) to become subsidiary" + }, + "field3": { + "type": "40e734f4-befb-4962-bef4-cce68932f35d", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "field0": "Family Name (surname)", + "field1": "Other (Given) Names", + "field2": "Title", + "field3": "email@email.com", + "field4": "123456789", + "field5": "Fax" + }, + "policyId": "628fad58b51d44b0198a30d5", + "@context": [ + "https://ipfs.io/ipfs/bafkreicwr4u55lbcod3czcbwhfoyx7qy5en27orscjv3mpr3puvzwsptri" + ], + "id": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817", + "type": "1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-05-26T16:41:08Z", + "verificationMethod": "did:hedera:testnet:5NfLUfbgJk4KdoiCsWTGz4U2JcFbu2vfn3aYryqCgqR2;hedera:testnet:tid=0.0.34920817#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..qDwai3thhJkBjJmflrqcrgs2Ka64QGRRXHcvHVoChYPTs2bjVOJhSqqfYDQ7KYqBmTpgdLhioTSOKDxQeqTvAQ" + } + }, + "createDate": "2022-05-26T16:41:17.687Z", + "updateDate": "2022-05-26T16:41:17.687Z", + "hederaStatus": "ISSUE", + "signature": 0, + "type": "registrant", + "policyId": "628fad58b51d44b0198a30d5", + "tag": "save_application_status(approve)", + "option": { + "status": "Approved" + }, + "schema": "#1af5b61a-7f1f-410e-87cc-a3c74823d74e&1.0.0", + "messageId": "1653583276.830802000", + "topicId": "0.0.34920825", + "relationships": [] + }, + "iconType": "COMMON" } - }, - "createDate":"2022-04-29T15:55:40.477Z", - "updateDate":"2022-04-29T15:55:40.477Z", - "hederaStatus":"ISSUE", - "signature":0, - "type":"issue_request", - "policyId":"626c0490d24497fe1b1e415d", - "tag":"create_issue_request", - "option":{ - "status":"Waiting for approval" - }, - "schema":"#c8a8aae3-2125-4872-9396-ac6b4dba8c2f&1.0.0", - "messageId":"1651247740.133346000", - "topicId":"0.0.34352381", - "relationships":[ - "1651247655.671887000" - ], - "__sourceTag__":"issue_requests_source(need_approve)" - } - ], - "blocks":[ - - ], - "commonAddons":[ - { - "id":"03aa71e0-8c5c-4685-aac4-250f4bd72206", - "blockType":"documentsSourceAddon" - }, - { - "id":"cdcf0d38-f2a0-4678-95bb-5489d65b3dec", - "blockType":"documentsSourceAddon" - } - ], - "fields":[ - { - "title":"Organization Name", - "name":"document.credentialSubject.0.field2.field0", - "type":"text" - }, - { - "title":"Production Period Start Date", - "name":"document.credentialSubject.0.field6", - "type":"text" - }, - { - "title":"Production Period End Date", - "name":"document.credentialSubject.0.field8", - "type":"text" - }, - { - "title":"Total kWh Produced in this period", - "name":"document.credentialSubject.0.field7", - "type":"text" - }, - { - "title":"Date", - "name":"document.issuanceDate", - "type":"text" - }, - { - "name":"option.status", - "title":"Operation", - "type":"text", - "width":"250px", - "bindGroup":"issue_requests_source(approved)", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"" - }, - { - "title":"Operation", - "name":"option.status", - "tooltip":"", - "type":"block", - "action":"", - "url":"", - "dialogContent":"", - "dialogClass":"", - "dialogType":"", - "bindBlock":"approve_issue_requests_btn", - "width":"250px", - "bindGroup":"issue_requests_source(need_approve)" - }, - { - "name":"document", - "title":"Document", - "tooltip":"", - "type":"button", - "action":"dialog", - "content":"View Document", - "uiClass":"link", - "dialogContent":"VC", - "dialogClass":"", - "dialogType":"json" - } - ] -} - -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Root Authority (Approve Issue) - -BLOCK approve\_issue\_requests\_btn - -{% swagger method="post" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Approving Issue" %} -{% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/4185c3b7-f200-4219-a503-17c84fea752f -{% endswagger-description %} - -{% swagger-parameter in="body" name="id" %} -626bf9e1d24497fe1b1e4148 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="owner" %} -did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="hash" %} -9Ny3w8HaH6ukaUnRgKrdWadbRM1by5rgn2nS8MQLJipm -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="document" %} - - - "id":"e676b23e-61b9-4243-98fc-349fd9708d67", - - "type":\[ - - "VerifiableCredential" - - ], - - "issuer":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "issuanceDate":"2022-04-29T14:44:38.373Z", - - "@context":\[ - - "https://www.w3.org/2018/credentials/v1" - - ], - - "credentialSubject":\[ - - { - - "field0":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316", - - "field1":"did:hedera:testnet:2PNs5TABEKMm7WNMSLrFQDSaBqkhppjPqcj9ovkbzkrq;hedera:testnet:tid=0.0.34350724", - - "field2":{ - - "field0":"Organization Name", - - "field1":"Address line 1", - - "field2":"Address line 2", - - "field3":"Address line 3", - - "field4":"Postal code", - - "field5":"Country", - - "field6":"Contact person", - - "field7":"test@mail.ru", - - "field8":"Telephone", - - "field9":"Fax", - - "field10":"Existing I-REC Registry organization(s) to become subsidiary", - - "type":"56ce048d-8e24-4aec-b76d-802688f651e8", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ] - - }, - - "field3":{ - - "field0":"Device Name", - - "field1":"Address", - - "field2":"Postal code", - - "field3":"Country", - - "field4":"Longitude", - - "field5":"Latitude", - - "field6":"TSO’s ID for measurement point", - - "field7":1, - - "field8":1, - - "field9":"2022-04-29", - - "field10":"Owner of the network to which the Production Device is connected and the voltage of that connection", - - "field11":"If the Production Device is not connected directly to the grid, specify the circumstances, and additional relevant meter registration numbers", - - "field12":"Expected form of volume evidence", - - "field13":"If other please specify", - - "type":"fd49e6e4-58d7-425a-9518-9a2c4a178b15", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ] - - }, - - "field4":" labeling scheme(s)", - - "field5":"2022-04-29", - - "field6":"2022-04-29", - - "field7":1, - - "field8":"2022-04-29", - - "field9":1, - - "field10":"Type a: Settlement Metering data", - - "field11":"Type b: Non-settlement Metering data", - - "field12":"Type c: Measured Volume Transfer documentation", - - "field13":"Type d: Other", - - "field14":true, - - "field15":true, - - "field16":true, - - "field17":"Installer", - - "field18":"0.0.34235315", - - "ref":"did:hedera:testnet:2PNs5TABEKMm7WNMSLrFQDSaBqkhppjPqcj9ovkbzkrq;hedera:testnet:tid=0.0.34350724", - - "policyId":"626bf178d24497fe1b1e4139", - - "@context":\[ - - "https://ipfs.io/ipfs/bafkreigth2xnezvhywqijetrzvi6czxvfduyfn5f7cbln7n5u6kds2vypq" - - ], - - "id":"a69c8c0e-6fcd-4c63-b4a6-57b44cff63db", - - "type":"88f6b2ad-5945-4086-b15c-8181654948c8&1.0.0" - - } - - ], - - "proof":{ - - "type":"Ed25519Signature2018", - - "created":"2022-04-29T14:44:38Z", - - "verificationMethod":"did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316#did-root-key", - - "proofPurpose":"assertionMethod", - - "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..rEWtgLl9X\_t2EdAYZhKE2ITptj9wEnihu1DhDPLoBBVZN7aV-bgedyDYYOLigPxV580gfm6NJztq\_wXFC4noAA" - - } - - }, - - -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="createDate" %} -2022-04-29T14:44:49.331Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="updateDate" %} -2022-04-29T14:44:49.331Z -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="hederaStatus" %} -ISSUE -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="signature" %} -0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="type" %} -issue_request -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="policyId" %} -626bf178d24497fe1b1e4139 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="tag" %} -create_issue_request -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="option" %} -{ - - "status":"Approved" - - }, -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="schema" %} -\#88f6b2ad-5945-4086-b15c-8181654948c8&1.0.0 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="messageId" %} -1651243487.331059459 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="topicId" %} -0.0.34350746 -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="relationships" %} -\[ - - "1651243356.729744000" - - ], -{% endswagger-parameter %} - -{% swagger-parameter in="body" name="__sourceTag__" %} -issue_requests_source(need_approve) -{% endswagger-parameter %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -} -``` -{% endswagger-response %} -{% endswagger %} - -### Root Authority (Get TrustChain) - -BLOCK trustChainBlock - -{% swagger method="get" path="" baseUrl="/policies/{policyId}/blocks/{blockId}" summary="Displaying TrustChain" %} -{% swagger-description %} -/policies/626bf178d24497fe1b1e4139/blocks/61235b3d-b793-4363-b51d-62df371493cd -{% endswagger-description %} - -{% swagger-response status="200: OK" description="Successful Operation" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/PolicyBlockData' -} -``` -{% endswagger-response %} - -{% swagger-response status="401: Unauthorized" description="Unauthorized" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="403: Forbidden" description="Forbidden" %} -```javascript -{ - // Response -} -``` -{% endswagger-response %} - -{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} -```javascript -{ - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + ] + } } ``` {% endswagger-response %} diff --git a/docs/demo-guide/demo-usage-guide.md b/docs/demo-guide/demo-usage-guide.md index 09ecf7db8c..1f4e474b6d 100644 --- a/docs/demo-guide/demo-usage-guide.md +++ b/docs/demo-guide/demo-usage-guide.md @@ -4,19 +4,20 @@ This folder contains sample files that are referenced in the Demo Usage Guide -1. Sample Schema for iRec Policy (`iRec_Application_Details.zip`) -2. Sample Policy Workflow configuration file (`irec-policy-config.txt`) +1. Sample Schema for iRec Policy (`iREC Schema.zip`) +2. Sample of iREC Policy (`IRec Policy 3.zip`) +3. Sample Policy Workflow configuration file (`irec-policy-config.txt`) 1.The Guardian reference implementation comes with two predefined users: -* **Root Authority**: A standard registry, or a Root Authority in our scenario, is an organization that establishes science-based standards for measuring, reporting, and verifying (MRV) ecological benefit claims and issues value in the form of credit for claims that meet the standard set. A standard registry also authorizes validation and verification bodies (VVBs) to collect and process claims based on the established standard. The creation of scientific-based standards for MRV is a rigorous discipline that requires independence from commercial influence in the pursuit of accurate accounting of benefit or emissions claims. A standard registry organization can also maintain a central registry of credits they have issued that can be sold directly via the registry itself or established as reference value on networks, exchanges, or marketplaces. +* **Standard Registry**: A standard registry, or a Standard Registry in our scenario, is an organization that establishes science-based standards for measuring, reporting, and verifying (MRV) ecological benefit claims and issues value in the form of credit for claims that meet the standard set. A standard registry also authorizes validation and verification bodies (VVBs) to collect and process claims based on the established standard. The creation of scientific-based standards for MRV is a rigorous discipline that requires independence from commercial influence in the pursuit of accurate accounting of benefit or emissions claims. A standard registry organization can also maintain a central registry of credits they have issued that can be sold directly via the registry itself or established as reference value on networks, exchanges, or marketplaces. * **Auditor**: This is a 3rd part who will need to view/audit the entire chain of events; from the establishment of the science-based standards through creation of the credit. There is also a _Custom Role_ which is called _User_. This role can be used to create any role which is necessary in a specific policy. For the reference implement below, we created a custom role called _Installer_ (later explained when we create a policy down below). ![](../.gitbook/assets/DUG\_1.png) -2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000). Typically the way we start the reference implementation demonstration is by logging in as the Root Authority. Click the **Demo Admin Panel** drop-down located in the upper right-hand corner of the login screen and select the **Root Authority** user. +2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000). Typically the way we start the reference implementation demonstration is by logging in as the Standard Registry. Click the **Demo Admin Panel** drop-down located in the upper right-hand corner of the login screen and select the **Standard Registry** user. ![](../.gitbook/assets/DUG\_2.png) @@ -24,19 +25,19 @@ There is also a _Custom Role_ which is called _User_. This role can be used to c **Note**: Please wait for the Initialization Process to be completed. {% endhint %} -3\. You'll now be prompted to configure your Root Authority account. Press the **Generate** button to generate a Hedera Operator ID and an Operator Key and enter the name of your Root Authority. Press **Connect** when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. +3\. You'll now be prompted to configure your Standard Registry account. Enter all the mandatory fields and then Press the **Generate** button to generate a Hedera Operator ID and an Operator Key. Press **Connect** when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. -![](../.gitbook/assets/DUG\_3.png) +![](../.gitbook/assets/iREC\_4.2.png) **NOTE** -There is a new feature as of version 1.0.2 which allows for the _Importing of Policies_ from the Root Authority Policy Tab. When you import a policy you will be able to skip steps 4, 5, 6, and 7. The steps 4 through 7 will be applicable if you want to create a policy from scratch. As of release 1.0.5 we have implemented the functionality to import a policy that has been uploaded to IPFS. This is done via a Hedera message ID. You will need to find the Hedera message ID for the demo policy in step 6 below. +There is a new feature as of version 1.0.2 which allows for the _Importing of Policies_ from the Standard Registry Policy Tab. When you import a policy you will be able to skip steps 4, 5, 6, and 7. The steps 4 through 7 will be applicable if you want to create a policy from scratch. As of release 1.0.5 we have implemented the functionality to import a policy that has been uploaded to IPFS. This is done via a Hedera message ID. You will need to find the Hedera message ID for the demo policy in step 6 below. 4\. Next, we move over to the **Schemas** tab. Schemas are the structure of which Verifiable Credentials will be filled out. Remember the iRec Policy we mentioned at the beginning of the section? We will be creating the first step of that Policy; which is to create the following schemas: iRec registration applicant details, Inverter, and MRV Schemas. The current version of the solution allows you to either build schemas from scratch or import schemas. Please note, that when you build schemas from scratch and publish them, they will be uploaded into IPFS and then the message containing the IPFS CID is sent into the corresponding Hedera topic. In this guide, we have already uploaded sample schemas for you to use. To import the sample schemas, please click on the **Import** button and paste the following Hedera message IDs one by one: ![](../.gitbook/assets/DUG\_4.png) -* `1644847084.945541771` (iRec Application Details) +* `1644847084.945541771` (iRec Schema) * `1644847093.979895804` (Inverter) * `1644847107.415192828` (MRV) @@ -91,23 +92,23 @@ We will now press the **Save** button and the **Publish** button. ![](../.gitbook/assets/DUG\_11.png) -8\. Click on the Root Authority's profile icon and select "Log Out." We will now go back into the **Admin Panel**. This time we will select **Installer** +8\. Click on the Standard Registry's profile icon and select "Log Out." We will now go back into the **Admin Panel**. This time we will select **Installer** ![](../.gitbook/assets/DUG\_12.png) -9\. When signing into the User profile (soon to be the Installer Role), follow similar configuration steps as the Root Authority. Click the **Generate** button, then select **Submit**. After generating the Hedera Operating ID and Key, the Installer profile will be configured, test HBAR will be credited to the account, and a DID will be created. +9\. When signing into the User profile (soon to be the Installer Role), follow similar configuration steps as the Standard Registry. Click the **Generate** button, then select **Submit**. After generating the Hedera Operating ID and Key, the Installer profile will be configured, test HBAR will be credited to the account, and a DID will be created. ![](../.gitbook/assets/DUG\_13.png) -10\. Next, navigate to the **Token** tab and click the **link** icon to associate the user to the token we created as the Root Authority. +10\. Next, navigate to the **Token** tab and click the **link** icon to associate the user to the token we created as the Standard Registry. ![](../.gitbook/assets/DUG\_14.png) -11\. Now, we can click on the **Policies** tab. This is where the specific actions required by the Policy Workflow will be found. We can click the **Open** button to the right of the iRec Policy the Root Authority created. +11\. Now, we can click on the **Policies** tab. This is where the specific actions required by the Policy Workflow will be found. We can click the **Open** button to the right of the iRec Policy the Standard Registry created. ![](../.gitbook/assets/DUG\_15.png) -This is where the custom user will be able to assign the role that was created by the Root Authority during the workflow creation process. In our case, we created the custom role of _Installer_ so the user will need to select the _Installer_ role from the drop down. +This is where the custom user will be able to assign the role that was created by the Standard Registry during the workflow creation process. In our case, we created the custom role of _Installer_ so the user will need to select the _Installer_ role from the drop down. ![](../.gitbook/assets/DUG\_16.png) @@ -115,15 +116,15 @@ After selecting the Installer role, we will see the form that is based on the im ![](../.gitbook/assets/DUG\_17.png) -12\. The next step of our flow is to log out and sign back in as the Root Authority. Navigate to the **Policies** tab and click the **Open** button on the far right. Here you will find the approval actions based on our Policy Workflow required by the Root Authority. You will be able to view the Verifiable Credential prior to approval by selecting the **View Document** link. Once you are ready to approve the document, you can click on the **Approve** button. +12\. The next step of our flow is to log out and sign back in as the Standard Registry. Navigate to the **Policies** tab and click the **Open** button on the far right. Here you will find the approval actions based on our Policy Workflow required by the Standard Registry. You will be able to view the Verifiable Credential prior to approval by selecting the **View Document** link. Once you are ready to approve the document, you can click on the **Approve** button. ![](../.gitbook/assets/DUG\_18.png) -13\. Navigate to the **Tokens** tab and click on the blue people icon on the far right. This view shows the Root Authority all of the users who have been associated with the tokens the Root Authority created. We will now click the **Grant KYC** button. +13\. Navigate to the **Tokens** tab and click on the blue people icon on the far right. This view shows the Standard Registry all of the users who have been associated with the tokens the Standard Registry created. We will now click the **Grant KYC** button. ![](../.gitbook/assets/DUG\_19.png) -14\. We can now log out of the Root Authority account and back in as the Installer. Navigate to the **Policies** tab and click the **Open** button on the far right. The next Policy Workflow Action required by the Installer is to register their sensors. Click the **New Sensors** button, fill out the required information in the dialog box, and select **OK**. +14\. We can now log out of the Standard Registry account and back in as the Installer. Navigate to the **Policies** tab and click the **Open** button on the far right. The next Policy Workflow Action required by the Installer is to register their sensors. Click the **New Sensors** button, fill out the required information in the dialog box, and select **OK**. ![](../.gitbook/assets/DUG\_20.png) @@ -151,6 +152,6 @@ There are two tabs in this view: **Audit** and **Trust Chain**. Clicking into th ![](../.gitbook/assets/DUG\_26.png) -The **Trust Chain** view displays important elements that can be publicly discovered. Elements include token information, Policy information, and all of the important information regarding the Verifiable Credentials that make up the Verifiable Presentation. You'll notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. For example, you will see when the Root Authority was created, when the policy was created, when the Installer submitted documentation, etc. Feel free to explore! +The **Trust Chain** view displays important elements that can be publicly discovered. Elements include token information, Policy information, and all of the important information regarding the Verifiable Credentials that make up the Verifiable Presentation. You'll notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. For example, you will see when the Standard Registry was created, when the policy was created, when the Installer submitted documentation, etc. Feel free to explore! ![](../.gitbook/assets/DUG\_27.png) diff --git a/docs/demo-guide/demo-using-apis.md b/docs/demo-guide/demo-using-apis.md index d3dc84b282..f360164c8c 100644 --- a/docs/demo-guide/demo-using-apis.md +++ b/docs/demo-guide/demo-using-apis.md @@ -74,7 +74,7 @@ ### 1.5 At present only PolicyRolesBlock is available to the user. Select the "INSTALLER" role. -{% swagger method="post" path="" baseUrl="/api/v1/policies/621376c8e6763a0014fb0de4/blocks/bb342b37-8bb6-4595-93fc-98fd63a23c16" summary="Registering the role as "Installer"" %} +{% swagger method="post" path="" baseUrl="/api/v1/policies/621376c8e6763a0014fb0de4/blocks/bb342b37-8bb6-4595-93fc-98fd63a23c16" summary="Registering the role as " %} {% swagger-description %} Request the role {% endswagger-description %} @@ -297,9 +297,9 @@ Years of registration {% endswagger-response %} {% endswagger %} -![](<../.gitbook/assets/image (6) (1).png>) +![](../.gitbook/assets/API\_5.png) -## 2. Login as a Root Authority +## 2. Login as a Standard Registry ### 2.1 Request the list of policies. @@ -389,7 +389,7 @@ Years of registration {% endswagger-response %} {% endswagger %} -#### 2.2.4 Requesting Approval +#### 2.2.4 Requesting Approval {% swagger method="get" path="" baseUrl="/api/v1/policies/621376c8e6763a0014fb0de4/blocks/d5c7c788-696d-457d-985e-dce3886b726" summary="Requesting Approval" %} {% swagger-description %} @@ -473,7 +473,7 @@ POST /api/v1/policies/621376c8e6763a0014fb0de4/blocks/6f0f37c0-b62b-4be5-b1d0-e ![](../.gitbook/assets/API\_7.png) -![](<../.gitbook/assets/image (2) (1).png>) +![](<../.gitbook/assets/image 2.png>) ## 3. Login as the User @@ -632,7 +632,7 @@ POST /api/v1/policies/621376c8e6763a0014fb0de4/blocks/6f0f37c0-b62b-4be5-b1d0-e {% endswagger-response %} {% endswagger %} -### 3.2 In the fields of the grid there is a link to the "download\_config\_btn" bloc. +### 3.2 In the fields of the grid there is a link to the "download\_config\_btn" bloc. {% swagger method="get" path="" baseUrl="/api/v1/policies/621376c8e6763a0014fb0de4/tag/download_config_btn" summary="Requesting BlockID" %} {% swagger-description %} @@ -699,9 +699,9 @@ capacity {% endswagger-parameter %} {% endswagger %} -![](../.gitbook/assets/Sensor.png) +![](../.gitbook/assets/API\_9.png) -![](../.gitbook/assets/image.png) +!\[]\(../.gitbook/assets/image 3.png) ### 3.4 Refresh the Blocks @@ -717,7 +717,7 @@ record in the grid (data[0]) {% endswagger-parameter %} {% endswagger %} -![](<../.gitbook/assets/image (15) (1).png>) +![](../.gitbook/assets/API\_11.png) ### 3.6 Sample MRV Sender Data @@ -726,15 +726,15 @@ record in the grid (data[0]) Sending MRV Data {% endswagger-description %} -{% swagger-parameter in="body" name="document" %} +{% swagger-parameter in="body" name="document" required="false" %} "id":"8d8e8a0a-211d-4180-8001-2e30cd7b915f", "type":[ "VerifiableCredential" ], "issuer":"did:hedera:testnet:3G7JYDvL5QsbBz5u9531UyMKWPJHdDQ5B6nRMK3zqoUm;hedera:testnet:tid=0.0.34404759", "issuanceDate":"2022-05-05T12:30:14.909Z", "@context":[ "https://www.w3.org/2018/credentials/v1" ], "credentialSubject":[ { "type":"5b4cdcee-ba73-4234-bddd-2988b050552c&1.0.0", "@context":[ "https://ipfs.io/ipfs/bafkreiaihnzlo7ahhr6wqnnyqprrl7onqdogkfzyum6poixba5ptjptowu" ], "field0":"2", "field1":"8", "field2":"1", "policyId":"6273c027d79555ef171b550d", "accountId":"0.0.34235315" } ], "proof":{ "type":"Ed25519Signature2018", "created":"2022-05-05T12:30:14Z", "verificationMethod":"did:hedera:testnet:3G7JYDvL5QsbBz5u9531UyMKWPJHdDQ5B6nRMK3zqoUm;hedera:testnet:tid=0.0.34404759#did-root-key", "proofPurpose":"assertionMethod", "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..awGmfcQzVefihEkoLT7zrqltRoEkuluVV8PALFc7ftlOckY0K7wQOwmdZMG479IZ1g4mW0todYmcLueNgTruAQ" } {% endswagger-parameter %} -{% swagger-parameter in="body" name="owner" %} +{% swagger-parameter in="body" name="owner" required="false" %} did:hedera:testnet:CV94CdDeDK5J361y1ocNMVxVbYjRZvSJChDkKCz88my;hedera:testnet:tid=0.0.34235316 {% endswagger-parameter %} -{% swagger-parameter in="body" name="policyTag" %} +{% swagger-parameter in="body" name="policyTag" required="false" %} Tag_1651752987100 {% endswagger-parameter %} diff --git a/docs/demo-guide/irec-demo-guide.md b/docs/demo-guide/irec-demo-guide.md index 5d92d0a3f8..eaa933ce05 100644 --- a/docs/demo-guide/irec-demo-guide.md +++ b/docs/demo-guide/irec-demo-guide.md @@ -1,33 +1,33 @@ -# iREC Demo Guide +# iREC Demo UI Guide -This folder contains a sample file that is referenced in the Demo Guide +This folder contains a sample file that is referenced in the Demo Guide -1. New iREC Policy ([iRec Policy 2.zip)](https://github.com/hashgraph/guardian/blob/main/Demo%20Artifacts/iRec%20Policy%202.zip) +1. New iREC Policy ([iRec Policy 3.zip)](https://github.com/hashgraph/guardian/tree/main/Demo%20Artifacts) -1.The Guardian reference implementation comes with two predefined users: +1.The Guardian reference implementation comes with two predefined users: -1. Issuer (Root Authority) -2. Participant +1. Issuer (Standard Registry) +2. Participant -2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000/). Typically, the way we start the reference implementation demonstration is by logging in as an Issuer. Click the Demo Admin Panel drop-down located in the upper right-hand corner of the login screen and select the Issuer user. +2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000/). Typically, the way we start the reference implementation demonstration is by logging in as an Issuer. Click the Demo Admin Panel drop-down located in the upper right-hand corner of the login screen and select the Issuer user. -3\. You will now be prompted to configure your Issuer account. Press the Generate button to generate a Hedera Operator ID and an Operator Key and enter the name of your Root Authority. Press Connect when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. +3\. You will now be prompted to configure your Issuer account. Press the Generate button to generate a Hedera Operator ID and an Operator Key and enter the details of your Standard Registry. Press Connect when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. -![](<../.gitbook/assets/Verra\_2 (1).png>) +![](../.gitbook/assets/iREC\_4.2.png) 4\. This could be one of the most interesting parts of the reference implementation. Now we will be creating the Policy. We have two ways to "create policies." The first way is to import an existing policy. This is the easiest way to get started. When you import a policy, all schemas and tokens that are required in the policy are automatically populated. To do this, you can use the sample policy that we have already uploaded to IPFS by entering the Hedera Message IDs. ``` -1650456996.975798214 (new iREC Policy) +1655293847.166673000 (new iREC Policy) ``` ![](../.gitbook/assets/iREC\_1.png) -![](<../.gitbook/assets/iREC\_2.2 (1).png>) +Once Policy is imported successfully, click on "Publish" button to publish the policy. -5\. Click on Issuer’s profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select Registrant. +5\. Click on Issuer’s profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select Registrant. -6\. Now, we can click on the Policies tab. This is where the specific actions required by the Policy Workflow will be found. We can click the Open button to the right of the iREC Policy, the Issuer created. This is where the custom user will be able to assign the role that was created by Issuer during the workflow creation process. In our case, we created the custom role of Registrant so the user will need to select the Registrant role from the drop down. +6\. Now, we can click on the Policies tab. This is where the specific actions required by the Policy Workflow will be found. We can click the Open button to the right of the iREC Policy, the Issuer created. This is where the custom user will be able to assign the role that was created by Issuer during the workflow creation process. In our case, we created the custom role of Registrant so the user will need to select the Registrant role from the drop down. ![](../.gitbook/assets/iREC\_3.png) @@ -35,9 +35,9 @@ After selecting the Registrant role, we will see the form that is based on the i ![](../.gitbook/assets/iREC\_4.png) -Once Submitted, Registrant waits for the approval of the application by Issuer. +Once Submitted, Registrant waits for the approval of the application by Issuer. -7\. Registrant associates the Token by going to Profile tab and clicking on Associated icon. +7\. Registrant associates the Token by going to Profile tab and clicking on Associated icon. ![](../.gitbook/assets/iREC\_5.png) @@ -85,15 +85,14 @@ After submitting the data, the Registrant is waiting for approval from the Issue 15\. We can also check Token Balance in the Tokens tab under Profile. -![](../.gitbook/assets/iREC\_17.2.png) +![](../.gitbook/assets/iREC\_17.png) 16\. We can also check Token History by logging back as Issuer. -![](<../.gitbook/assets/iREC\_17 (1).png>) - -We have the option of viewing TrustChain. You can view TrustChain by clicking on View TrustChain button. +![](../.gitbook/assets/iREC\_18.png) -The Trust Chain view displays essential elements that can be publicly discovered. Elements include token information, Policy information, and all the essential information regarding the Verifiable Credentials that make up the Verifiable Presentation. You will notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. +We have the option of viewing TrustChain. You can view TrustChain by clicking on View TrustChain button. -![](../.gitbook/assets/iREC\_18.png) +The Trust Chain view displays essential elements that can be publicly discovered. Elements include token information, Policy information, and all the essential information regarding the Verifiable Credentials that make up the Verifiable Presentation. You will notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. +![](../.gitbook/assets/iREC\_19.png) diff --git a/docs/demo-guide/verra-redd+-demo-guide.md b/docs/demo-guide/verra-redd+-demo-guide.md index 86e50aa33c..c8fc9bb18c 100644 --- a/docs/demo-guide/verra-redd+-demo-guide.md +++ b/docs/demo-guide/verra-redd+-demo-guide.md @@ -1,35 +1,35 @@ # Verra Redd+ Demo Guide -This folder contains a sample file that is referenced in the Demo Usage Guide +This folder contains a sample file that is referenced in the Demo Usage Guide -1. Sample of Verra REDD Policy (Verra REDD.zip) -2. Sample Schema design template for Verra REDD Policy (REDD APD Schema Design Template.xlsx) +1. Sample of Verra REDD Policy (`Verra REDD Policy 2.zip`) +2. Sample Schema design template for Verra REDD Policy (`REDD APD Schema Design Template.xlsx`) -1.The Guardian reference implementation comes with three predefined users: +1.The Guardian reference implementation comes with three predefined users: -* **Verra (Root Authority)** +* **Verra (Standard Registry)** * **Project Proponent** * **VVB** -2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000/). Typically, the way we start the reference implementation demonstration is by logging in as Verra. Click the Demo Admin Panel drop-down located in the upper right-hand corner of the login screen and select the Verra user. +2\. After running the installation commands, open a tab on your browser and navigate to [http://localhost:3000/](http://localhost:3000/). Typically, the way we start the reference implementation demonstration is by logging in as Verra. Click the Demo Admin Panel drop-down located in the upper right-hand corner of the login screen and select the Verra user. ![](../.gitbook/assets/Verra\_1.png) -3\. You'll now be prompted to configure your Verra account. Press the Generate button to generate a Hedera Operator ID and an Operator Key and enter the name of your Root Authority. Press Connect when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. +3\. You'll now be prompted to configure your Verra account. Enter the details and then press the Generate button to generate a Hedera Operator ID and an Operator Key and enter the name of your Standard Registry. Press Connect when finished. This will now create Hedera Consensus Service Topics, fill the account with test hBar, create a DID document, create a Verifiable Credential, etc. -![](../.gitbook/assets/Verra\_2.png) +![](../.gitbook/assets/Verra\_2.2.png) -4\. This could be one of the most interesting parts of the reference implementation. Now we will be creating the Policy. We have two ways to "create policies." The first way is to import an existing policy. This is the easiest way to get started. When you import a policy, all schemas and tokens that are required in the policy are automatically populated. To do this, you can use the sample policy that we have already uploaded to IPFS. Click on the import button and enter the following Hedera message ID: +4\. This could be one of the most interesting parts of the reference implementation. Now we will be creating the Policy. We have two ways to "create policies." The first way is to import an existing policy. This is the easiest way to get started. When you import a policy, all schemas and tokens that are required in the policy are automatically populated. To do this, you can use the sample policy that we have already uploaded to IPFS. Click on the import button and enter the following Hedera message ID: ``` -1650372697.590064000(Verra REDD+ Policy) +1655294125.233515155 (Verra REDD+ Policy) ``` -Once you have done that, you can move onto the next step. +Once Policy is imported successfully, click on "Publish" button to publish the policy. -5\. Click on Verra's profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select VVB. +5\. Click on Verra's profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select VVB. -6\. Now, we can click on the Policies tab. This is where the specific actions required by the Policy Workflow will be found. We can click Open button to the right of the Verra Policy, the Verra created. +6\. Now, we can click on the Policies tab. This is where the specific actions required by the Policy Workflow will be found. We can click Open button to the right of the Verra Policy, the Verra created. ![](../.gitbook/assets/Verra\_3.png) @@ -45,9 +45,9 @@ After selecting the VVB role, we will see the form that is based on the imported ![](../.gitbook/assets/Verra\_6.png) ![](../.gitbook/assets/Verra\_7.png) -9\. Click on Verra's profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select Project Proponent. +9\. Click on Verra's profile icon and select "Log Out." We will now go back into the Admin Panel. This time we will select Project Proponent. -10\. This is where the custom user will be able to assign the role that was created by the Verra during the workflow creation process. In our case, we created the custom role of Project Proponent so the user will need to select the Project Proponent role from the drop down. +10\. This is where the custom user will be able to assign the role that was created by the Verra during the workflow creation process. In our case, we created the custom role of Project Proponent so the user will need to select the Project Proponent role from the drop down. ![](../.gitbook/assets/Verra\_8.png) @@ -85,6 +85,6 @@ After selecting the Project Proponent role, we will see the New Project button. ![](../.gitbook/assets/Verra\_17.png) -The Trust Chain view displays essential elements that can be publicly discovered. Elements include token information, Policy information, and all the essential information regarding the Verifiable Credentials that make up the Verifiable Presentation. You will notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. +The Trust Chain view displays essential elements that can be publicly discovered. Elements include token information, Policy information, and all the essential information regarding the Verifiable Credentials that make up the Verifiable Presentation. You will notice "Cards" on the bottom of the screen. Those cards are Verifiable Credentials displayed in chronological order. ![](../.gitbook/assets/Verra\_18.png) diff --git a/docs/external-events/external-events.md b/docs/external-events/external-events.md new file mode 100644 index 0000000000..5350ea73c6 --- /dev/null +++ b/docs/external-events/external-events.md @@ -0,0 +1,41 @@ +# Listen to external event published by guardian + +### Introduction + +Guardian will publish number of events to Nats server so that you can hooks into those event when it happen to extend the function that suitable for your solution + +### Hooks to external event + +To hooks into guardian events, you need to have a client that connect to same NATS instance with guardian and implement the response function for a specific event. Below are sample to use nodejs, if you are using other language please refer to Nats.io for document + +Guardian uses publish/subscribe pattern so the same message can be received by multiple clients. If you have multiple clients make sure you handle duplicated message processing. + +```js +import { connect, JSONCodec } from "nats"; + +(async () => { + const nc = await connect({ servers: "localhost:4222" }); + + const c = JSONCodec(); + const sub = nc.subscribe("externals-events.ipfs_added_file"); + + (async () => { + for await (const m of sub) { + console.log(`[${sub.getProcessed()}]`, c.decode(m.data)); + } + console.log("subscription closed"); + })(); +})(); +``` + +Please read more at [https://github.com/nats-io/nats.js#publish-and-subscribe](https://github.com/nats-io/nats.js#publish-and-subscribe) + +### External events list + +| event | payload | notes | +| ----------------------------------------- | :---------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------- | +| externals-events.ipfs\_added\_file | {cid, url} | Event published when ipfs filf is added | +| external-events.token\_minted | { tokenId, tokenValue, memo } | When token minted successfully | +| external-events.error\_logs | {message, type, attributes} | when any error send to logger service | +| external-events.block\_run\_action\_event | {blockType, blockTag, uuid ,data, result} | event emit for these block `aggregateDocumentBlock` `mintDocumentBlock` `sendToGuardianBlock` `timerBlock` after runAction finish | + diff --git a/docs/faqs/faqs.md b/docs/faqs/faqs.md new file mode 100644 index 0000000000..086d9867af --- /dev/null +++ b/docs/faqs/faqs.md @@ -0,0 +1,243 @@ +# FAQs + +**1.How can I get started with the Guardian?** + +We recommend spending some time and reading carefully through the docs here: https://docs.hedera.com/guardian/getting-started/readme. You will find setup instructions, a glossary of important terms, demo walk throughs, and more. + +**2. How can I create policies?** + +You can use the UI policy editor or APIs to create a policy workflow. Examples are found in the guardian docs here: https://docs.hedera.com/guardian/getting-started/readme + +**3. Is there a demo to create a policy without importing it?** + +{% embed url="https://docs.hedera.com/guardian/policy-workflow-creation-using-the-guardian-user-interface/getting-started-with-the-policy-workflows" %} + +**4. Can I see the Guardian product roadmap and the current backlog?** + +yes! just install the free chrome extension called zenhub https://www.zenhub.com/. When installed you will be able to see the "zenhub" tab in the Guardian's github repo + +**5. Where can I get notified of sprint updates and demos?** + +Every two weeks we publish sprint updates to this youtube playlist: [https://youtube.com/playlist?list=PLnld0e1pwLhqb69cELqQrW87JFVIDfocL/](https://youtube.com/playlist?list=PLnld0e1pwLhqb69cELqQrW87JFVIDfocL/) + +**6. Where can I see the most recent changes made to the Guardian?** + +You can see the high level release notes here: [https://github.com/hashgraph/guardian/releases](https://github.com/hashgraph/guardian/releases). Also, you can find the full changelog at the bottom on the release notes to view for yourself via Github compare. + +**7. How do I request a policy or an issue to be worked on?** + +You can submit an issue in our Github or directly email us at info@envisionblockchain.com. + +**8. Whats the difference between iREC Policy and iREC Policy 2 in demo artifacts?** + +iREC Policy 2 is the up-to-date version of iREC Policy + +**9. How do I launch the IoT simulator in the reference implementation to generate demo MRV data?** + +You can visit : http://localhost:3000/mrv-sender/ + +**10. how I can avoid the field name being "off by one" ?** + +Add an additional short name to the description in the schema configurator. If short name is not set then install field1...N. + +**11. How can I access the swagger docs for Guardian v2 ?** + +[http://localhost:3000/api-docs/v1/ ](http://localhost:3000/api-docs/v1/)(note that this URL is only available for the docker build) + +**12. What is the difference between requestVcDocumentBlock and externalDataBlock to report data?** + +Both are for reporting data, both are producing VCs at the ‘exit.’ 1. requestVcDocumentBlock requires authorization, but the actual document is just json. 2. externalDataBlock does not require authorization, but the document must already be a VC and be correctly signed. + +**13. Why do I get the error INSUFFICENT\_TX\_FEE?** + +The fee in the transaction is too small and needs to be increased**.** + +**14. How are we linking topics to stored ipfs data after mongodb goes away? Is there somewhere I can read this?** + +MongoDB does not go away, we will keep the local DB for drafts etc. Hedera messages in topics are linked to the ‘published’ policies which are immutable stored in IPFS - messages contain CID of the file in IPFS. + +**15. Is MRV an existing data architecture used in I-REC or Carbon Offset standards?** + +A standard registry is an organization that establishes science-based standards for measuring, reporting, and verifying (MRV) ecological benefit claims and issues value in the form of credit for claims that meet the standard set. A standard registry also authorizes validation and verification bodies (VVBs) to collect and process claims based on the established standard. The creation of scientific-based standards for MRV is a rigorous discipline that requires independence from commercial influence in the pursuit of accurate accounting of benefit or emissions claims. In this case iREC is a standards registry, however oftentimes folks implement the iREC standard in a voluntary way and leverage iREC certification for sign off. Some markets, like Dubai, make it a compliance standard**.** + +**16. How Guardian uses IPFS for Verifiable Presentation (VP) storage?** + +When a policy is published a message is sent to the policy topic (on the policies page) where the policy (VP) and schemas are stored. + +In the guardian a VP is a VP. It's just an object with schemas and dids inside of it. + +**17. How does Guardian Provenance works?** + +Here are the steps you should follow to get a VP from a token mint transaction. + +Look for a token mint transaction on [DragonGlass](https://app.dragonglass.me/).\ +For the transaction `00341948921649942497135549961` the link will be [https://testnet.dragonglass.me/transactions/00341948921649942497135549961](https://testnet.dragonglass.me/transactions/00341948921649942497135549961)\ +Transaction data will contain data similar to this: + +``` +TRANSACTION DETAILS 0.0.34194892@1649942497-135549961 (SUCCESS) +TRANSACTION TYPE Mint Token +TRANSACTION HASH 8ec781457fbd0ab6124eb04396cdcff153868f4f52b1836e42158fd3f23fc0139f1fd7b7ee18915124eab74d49c9d0ad +PAYER 0.0.34194892 +MEMO 1649942508.776446488 +``` + +Take the MEMO value (which is the Hedera message timestamp) and add it to the URL after the `/messages/` to get a message from a Hedera Mirror Node.\ +In our case it will be [https://testnet.mirrornode.hedera.com/api/v1/topics/messages/1649942508.776446488](https://testnet.mirrornode.hedera.com/api/v1/topics/messages/1649942508.776446488)\ +You will get a message content: + +``` +{ + "chunk_info": { + "initial_transaction_id": { + "account_id": "0.0.34194892", + "nonce": 0, + "scheduled": false, + "transaction_valid_start": "1649942496.012855213" + }, + "number": 1, + "total": 1 + }, + "consensus_timestamp": "1649942508.776446488", + "message": "eyJpZCI6IjEzNTZlMDNhLTk5NGEtNGU5ZC1iNTFmLWNlMGY4NzBmZDk1MiIsInN0YXR1cyI6IklTU1VFIiwidHlwZSI6IlZQLURvY3VtZW50IiwiYWN0aW9uIjoiY3JlYXRlLWNwLWRvY3VtZW50IiwiaXNzdWVyIjpudWxsLCJyZWxhdGlvbnNoaXBzIjpbIjE2NDk5NDI0OTYuMDEwMjExMDAwIl0sImNpZCI6ImJhZmtyZWlhNWkzYnJ1bWNpMzVzNzMzcTRndWEzNjNpaHhyaXNyNm56aWFmN2g3aGd4aHlhbmg2dnlhIiwidXJsIjoiaHR0cHM6Ly9pcGZzLmlvL2lwZnMvYmFma3JlaWE1aTNicnVtY2kzNXM3MzNxNGd1YTM2M2loeHJpc3I2bnppYWY3aDdoZ3hoeWFuaDZ2eWEifQ==", + "payer_account_id": "0.0.34194892", + "running_hash": "P0i9GNaL1qUoPQmNHOumV/3x8K4voPmOUNJOfXDJl9K89u/7Qa7GgqKR3kmaTcAF", + "running_hash_version": 3, + "sequence_number": 9, + "topic_id": "0.0.34204397" +} +``` + +Take the `message` attribute value and parse it to a JSON representation:\ +`JSON.parse(atob(message)) // JSON.parse(atob(eyJpZCI6IjEzN.........WFuaDZ2eWEifQ==))`\ +You will have a JSON similar to that one: + +``` +{ + "id": "1356e03a-994a-4e9d-b51f-ce0f870fd952", + "status": "ISSUE", + "type": "VP-Document", + "action": "create-cp-document", + "issuer": null, + "relationships": [ + "1649942496.010211000" + ], + "cid": "bafkreia5i3brumci35s733q4gua363ihxrisr6nziaf7h7hgxhyanh6vya", + "url": "https://ipfs.io/ipfs/bafkreia5i3brumci35s733q4gua363ihxrisr6nziaf7h7hgxhyanh6vya" +} +``` + +Take the `url` attribute value and paste it to a browser:\ +[https://ipfs.io/ipfs/bafkreia5i3brumci35s733q4gua363ihxrisr6nziaf7h7hgxhyanh6vya](https://ipfs.io/ipfs/bafkreia5i3brumci35s733q4gua363ihxrisr6nziaf7h7hgxhyanh6vya)\ +You’ll have a VP of this token. + +``` +{ + "id": "db698146-38e2-48f6-8819-6f596647f970", + "type": [ + "VerifiablePresentation" + ], + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "verifiableCredential": [ + { + "id": "2f6ca45d-7f0d-405a-a011-b736db93e511", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:9ZJXR58X9XQUgwiuxQQiTUt5yY2vX2Tw5Uph4xXsnkfM;hedera:testnet:tid=0.0.34194893", + "issuanceDate": "2022-04-14T13:21:28.918Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "field0": "did:hedera:testnet:F55HnMGMzS3TkuqBjLaUxcYvm86oGfTFViXELD4GNFAo;hedera:testnet:tid=0.0.34194893", + "field1": "did:hedera:testnet:8jjgRqbr2YRYccxMrvhupyu543izSe8N1J6UHbgWkhiA;hedera:testnet:tid=0.0.34204397", + "field2": { + "type": "706bb8da-7f39-4518-85c3-b4b23a6ef28a", + "@context": [ + "https://ipfs.io/ipfs/bafkreidcyabsha6frnfqie7bpa5o3yrb6cllglsxd4krjksvreg35ygluy" + ] + }, + "field3": { + "type": "64c171a2-ac60-4972-b796-8596381c65a8", + "@context": [ + "https://ipfs.io/ipfs/bafkreidcyabsha6frnfqie7bpa5o3yrb6cllglsxd4krjksvreg35ygluy" + ] + }, + "field6": "2022-04-07", + "field7": 1, + "field8": "2022-04-28", + "field17": "nu81uxel", + "field18": "0.0.34194895", + "ref": "did:hedera:testnet:8jjgRqbr2YRYccxMrvhupyu543izSe8N1J6UHbgWkhiA;hedera:testnet:tid=0.0.34204397", + "policyId": "62581e42a7303b7ff96a8012", + "@context": [ + "https://ipfs.io/ipfs/bafkreidcyabsha6frnfqie7bpa5o3yrb6cllglsxd4krjksvreg35ygluy" + ], + "id": "6a730bc5-19e2-427d-b132-b9b49359ea20", + "type": "143e109a-a089-48a1-8a7b-534bfaf79c4d&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-04-14T13:21:28Z", + "verificationMethod": "did:hedera:testnet:9ZJXR58X9XQUgwiuxQQiTUt5yY2vX2Tw5Uph4xXsnkfM;hedera:testnet:tid=0.0.34194893#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..hw6O674MalfXIlD3RyOd1BLhvH_xBYIudK1UQ-cAvZxYYejdMjU2TYfjC-sUa7ZYcioZ_CfSBsMwI7WCO3hGAw" + } + }, + { + "id": "c0c0d496-4f86-4ca9-94cc-80552d838168", + "type": [ + "VerifiableCredential" + ], + "issuer": "did:hedera:testnet:9ZJXR58X9XQUgwiuxQQiTUt5yY2vX2Tw5Uph4xXsnkfM;hedera:testnet:tid=0.0.34194893", + "issuanceDate": "2022-04-14T13:21:36.139Z", + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "credentialSubject": [ + { + "date": "2022-04-14T13:21:36.134Z", + "tokenId": "0.0.34194898", + "amount": "1", + "@context": [ + "https://ipfs.io/ipfs/bafkreiaamzhmh3l5pn5nneib5yifb3gjwlotf6fr6vb65j7tfi4tefxcza" + ], + "type": "MintToken&1.0.0" + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-04-14T13:21:36Z", + "verificationMethod": "did:hedera:testnet:9ZJXR58X9XQUgwiuxQQiTUt5yY2vX2Tw5Uph4xXsnkfM;hedera:testnet:tid=0.0.34194893#did-root-key", + "proofPurpose": "assertionMethod", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..3uhxt-NAuLaIGTDXlqkD92QOTUZOjJgHNjFwP6jrrGchFLwxuDDnhz5VzMMLv1k3_VkVLvIKx1V-E1aewSI5Bw" + } + } + ], + "proof": { + "type": "Ed25519Signature2018", + "created": "2022-04-14T13:21:36Z", + "verificationMethod": "did:hedera:testnet:9ZJXR58X9XQUgwiuxQQiTUt5yY2vX2Tw5Uph4xXsnkfM;hedera:testnet:tid=0.0.34194893#did-root-key", + "proofPurpose": "authentication", + "challenge": "123", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..-yNpvBHaDnFk-T5OWY516WBsBnsE40E-4-z-d54BhwanRBN15D6VbKGUjRG4kkKhEp-7jh8WIO2VRsYY4-SOBQ" + } +} +``` + +**18. The VCs that are generated as part of the Guardian workflow, have you found any use cases where the status of the VC might change? For example, is there ever a time where a VC might be revoked or expires? If so, does the status get updated on the ledger?** + +there are many use-cases where the VCs and various other artefacts produced in the course of the policy functioning of the guardian might need to be revoked. One of the obvious examples of such situation is malfunctioning sensor generating invalid MRV data. But there are many others**.** + +**19. Is it possible to see a Guardian-minted token's value in hbar as well as its associated CO2e? If so, where does this information come from/how can we access it?** + +The value of the token in hbar (or USD) will be set by the market, and thus external to the token itself (so there is no way to see in the token what it is worth in \$$). And what the token represents (CO2e etc) is determined by the policy under which it was minted. These tokens are the NFTs, and the metadata can include this data if the policy under which the tokens are minted has provisions for it. + +**20. What is the semantic of the DID in the message? Is it that the standard registry signs VCs etc with the corresponding private key?** + +DID is the the DID of the RA, i.e. is a globally unique reference linking to a DID document which is the identity - all VCs issued to or by an entity would then be ‘bound’ to this DID as per the ‘self-sovereign identity’ architecture. diff --git a/docs/getting-started/getting-started/installation.md b/docs/getting-started/getting-started/installation.md index 6f44fd8802..04ef739bc7 100644 --- a/docs/getting-started/getting-started/installation.md +++ b/docs/getting-started/getting-started/installation.md @@ -56,7 +56,7 @@ npm install npm run build ``` -#### **From the logger-helper folder** +#### **From the common folder** Build package diff --git a/docs/logs-apis/returning-log-attributes.md b/docs/logs-apis/returning-log-attributes.md index 2bca02dc66..9c97b7b08e 100644 --- a/docs/logs-apis/returning-log-attributes.md +++ b/docs/logs-apis/returning-log-attributes.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/logs/attributes" summary="Returns logs attributes" %} {% swagger-description %} -Returns logs attributes. For users with the Root Authority role only. +Returns logs attributes. For users with the Standard Registry role only. {% endswagger-description %} {% swagger-parameter in="query" name="name" type="String" required="true" %} diff --git a/docs/logs-apis/returning-logs.md b/docs/logs-apis/returning-logs.md index d60e88dda9..e9dceb5925 100644 --- a/docs/logs-apis/returning-logs.md +++ b/docs/logs-apis/returning-logs.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/logs" summary="Returns logs." %} {% swagger-description %} -Returns logs. For users with the Root Authority role only. +Returns logs. For users with the Standard Registry role only. {% endswagger-description %} {% swagger-parameter in="body" type="String" name="type" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/creation-of-a-policy.md b/docs/policy-creation-using-the-guardian-apis/creation-of-a-policy.md index 95d6db93db..7cc23116d0 100644 --- a/docs/policy-creation-using-the-guardian-apis/creation-of-a-policy.md +++ b/docs/policy-creation-using-the-guardian-apis/creation-of-a-policy.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/policies" summary="Creates a new policy" %} {% swagger-description %} -Creates a new policy. Only users with the Root Authority role are allowed to make the request +Creates a new policy. Only users with the Standard Registry role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="body" type="Object" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/export-to-zip-file.md b/docs/policy-creation-using-the-guardian-apis/export-to-zip-file.md index 9af7116fb7..3f1ffbc889 100644 --- a/docs/policy-creation-using-the-guardian-apis/export-to-zip-file.md +++ b/docs/policy-creation-using-the-guardian-apis/export-to-zip-file.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/policies/{policyId}/export/file" summary="Return policy and its artifacts in a zip file format for the specified policy" %} {% swagger-description %} -Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Root Authority role are allowed to make the request. +Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/exporting-message-id.md b/docs/policy-creation-using-the-guardian-apis/exporting-message-id.md index 77845d36af..033014c10f 100644 --- a/docs/policy-creation-using-the-guardian-apis/exporting-message-id.md +++ b/docs/policy-creation-using-the-guardian-apis/exporting-message-id.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/policies/{policyId}/export/message" summary="Return Hedera message ID for the specified published policy" %} {% swagger-description %} -Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Root Authority role are allowed to make the request. +Returns the Hedera message ID for the specified policy published onto IPFS. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/import-a-policy.md b/docs/policy-creation-using-the-guardian-apis/import-a-policy.md index 42a2c53b7a..6438812d98 100644 --- a/docs/policy-creation-using-the-guardian-apis/import-a-policy.md +++ b/docs/policy-creation-using-the-guardian-apis/import-a-policy.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="policies/import/message" summary="Imports new policy from IPFS." %} {% swagger-description %} -Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new policy and all associated artifacts from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" type="Object" required="true" name="schema" %} diff --git a/docs/policy-creation-using-the-guardian-apis/import-from-zip-file.md b/docs/policy-creation-using-the-guardian-apis/import-from-zip-file.md index 23e18ac17a..1297503a9e 100644 --- a/docs/policy-creation-using-the-guardian-apis/import-from-zip-file.md +++ b/docs/policy-creation-using-the-guardian-apis/import-from-zip-file.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/policies/import/file" summary="Imports new policy from a zip file" %} {% swagger-description %} -Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new policy and all associated artifacts, such as schemas and VCs, from the provided zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/policy-listing.md b/docs/policy-creation-using-the-guardian-apis/policy-listing.md index e71464f482..2ed4c127b1 100644 --- a/docs/policy-creation-using-the-guardian-apis/policy-listing.md +++ b/docs/policy-creation-using-the-guardian-apis/policy-listing.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/policies" summary="Return a list of all policies" %} {% swagger-description %} -Returns all policies. Only users with the Root Authority and Installer role are allowed to make the request +Returns all policies. Only users with the Standard Registry and Installer role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="query" name="pageIndex" type="Integer" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/policy-preview-from-ipfs.md b/docs/policy-creation-using-the-guardian-apis/policy-preview-from-ipfs.md index e72621768e..61c747cc48 100644 --- a/docs/policy-creation-using-the-guardian-apis/policy-preview-from-ipfs.md +++ b/docs/policy-creation-using-the-guardian-apis/policy-preview-from-ipfs.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/policies/import/message/preview" summary="Policy preview from IPFS" %} {% swagger-description %} -Previews the policy from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request. +Previews the policy from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" type="Object" name="messageID" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/policy-validation.md b/docs/policy-creation-using-the-guardian-apis/policy-validation.md index 935e4e61b1..87a1d68958 100644 --- a/docs/policy-creation-using-the-guardian-apis/policy-validation.md +++ b/docs/policy-creation-using-the-guardian-apis/policy-validation.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/policies/validate" summary="Validates policy" %} {% swagger-description %} -Validates selected policy. Only users with the Root Authority role are allowed to make the request +Validates selected policy. Only users with the Standard Registry role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="body" type="application/jsonn" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/prerequesite-steps.md b/docs/policy-creation-using-the-guardian-apis/prerequesite-steps.md index ad8a2e553f..d5b0f92b83 100644 --- a/docs/policy-creation-using-the-guardian-apis/prerequesite-steps.md +++ b/docs/policy-creation-using-the-guardian-apis/prerequesite-steps.md @@ -2,7 +2,7 @@ Prior to creating a policy there are a few steps that need to be done first. Please see below for the prerequesite steps: -### **New Root Authority registration** +### **New Standard Registry registration** {% swagger method="post" path="" baseUrl="/api/v1/accounts/register" summary="" %} {% swagger-description %} @@ -18,7 +18,7 @@ test {% endswagger-parameter %} {% swagger-parameter in="body" name="role" type="String" required="true" %} -ROOT_AUTHORITY +STANDARD_REGISTRY {% endswagger-parameter %} {% endswagger %} @@ -43,7 +43,7 @@ test { "username":"njkgur8x", "did":null, - "role":"ROOT_AUTHORITY", + "role":"STANDARD_REGISTRY", "accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Im5qa2d1cjh4IiwiZGlkIjpudWxsLCJyb2xlIjoiUk9PVF9BVVRIT1JJVFkiLCJpYXQiOjE2NDMwMTkxMDh9.Z4l77uhaPu09gkjSZpqcF2H0S27oGvFfOA-bytzrsL4" } } @@ -90,7 +90,7 @@ DD {% endswagger-parameter %} {% swagger-parameter in="body" name="type" type="String" required="true" %} -RootAuthority +StandardRegistry {% endswagger-parameter %} {% swagger-parameter in="body" name="context" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/publish-a-policy.md b/docs/policy-creation-using-the-guardian-apis/publish-a-policy.md index c661cd16ef..49091ff079 100644 --- a/docs/policy-creation-using-the-guardian-apis/publish-a-policy.md +++ b/docs/policy-creation-using-the-guardian-apis/publish-a-policy.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/policies/{policyId}/publish" summary="Publishes the policy onto IPFS" %} {% swagger-description %} -Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request. +Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/retrieval-of-data-from-root-policy-block.md b/docs/policy-creation-using-the-guardian-apis/retrieval-of-data-from-root-policy-block.md index 0149306a28..e71de8ea01 100644 --- a/docs/policy-creation-using-the-guardian-apis/retrieval-of-data-from-root-policy-block.md +++ b/docs/policy-creation-using-the-guardian-apis/retrieval-of-data-from-root-policy-block.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/policies/{policyId}/blocks" summary="Retrieves data for the policy root block" %} {% swagger-description %} -Returns data from the root policy block. Only users with the Root Authority and Installer role are allowed to make the request +Returns data from the root policy block. Only users with the Standard Registry and Installer role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/retrieves-policy-configuration.md b/docs/policy-creation-using-the-guardian-apis/retrieves-policy-configuration.md index d6b33f1fee..60e17fc7ac 100644 --- a/docs/policy-creation-using-the-guardian-apis/retrieves-policy-configuration.md +++ b/docs/policy-creation-using-the-guardian-apis/retrieves-policy-configuration.md @@ -4,7 +4,7 @@ {% swagger method="get" path="policies/{policyId}" baseUrl="/" summary="Retrieves policy configuration" %} {% swagger-description %} -Retrieves policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request. +Retrieves policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="query" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/returns-block-id-by-tag.md b/docs/policy-creation-using-the-guardian-apis/returns-block-id-by-tag.md index 253a20f33e..4e3535a267 100644 --- a/docs/policy-creation-using-the-guardian-apis/returns-block-id-by-tag.md +++ b/docs/policy-creation-using-the-guardian-apis/returns-block-id-by-tag.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/policies/{policyId}/tag/{tag}" summary="Requests block ID from a policy by tag" %} {% swagger-description %} -Requests block ID from a policy by tag. Only users with the Root Authority and Installer roles are allowed to make the request +Requests block ID from a policy by tag. Only users with the Standard Registry and Installer roles are allowed to make the request {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-creation-using-the-guardian-apis/updates-policy-configuration.md b/docs/policy-creation-using-the-guardian-apis/updates-policy-configuration.md index 656142ed3c..5d87e40f58 100644 --- a/docs/policy-creation-using-the-guardian-apis/updates-policy-configuration.md +++ b/docs/policy-creation-using-the-guardian-apis/updates-policy-configuration.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/policies/{policyId}" summary="Updates policy configuration" %} {% swagger-description %} -Updates policy configuration for the specified policy ID. Only users with the Root Authority role are allowed to make the request. +Updates policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="policyID" type="String" required="true" %} diff --git a/docs/policy-flow/policy-demo.md b/docs/policy-flow/policy-demo.md new file mode 100644 index 0000000000..204ae4429a --- /dev/null +++ b/docs/policy-flow/policy-demo.md @@ -0,0 +1,72 @@ +# Policy Demo + +Once you login as a Standard Registry and finish the setup, click on Policies tab. + +![](<../.gitbook/assets/image (4) (1).png>) + +We have two options to create Policy : + +1. Creating Policy from scratch +2. Importing Policy either from file or from IPFS. + +### 1. Creating Policy from Scratch + +1.1 To create Policy from scratch, we need to click on "Create Policy" button. + +![](<../.gitbook/assets/image (1).png>) + +1.2 Once you click on Create Policy , you get a dialog box to fill out basic Policy details. + +![](<../.gitbook/assets/image (10) (1).png>) + +1.3 Once the details are filled and clicked on OK. Initially, Policy is created in Draft status. + +![](<../.gitbook/assets/image (1) (1).png>) + +1.4 You can even edit the Policy by clicking Edit button. + +![](<../.gitbook/assets/image (2) (1).png>) + +1.5 When clicked on Edit, the screen is navigated to Policies configuration tab, which gives an option to add/remove any block from the Policy. + +![](<../.gitbook/assets/image (7) (1).png>) + +1.6 Once the Policy is configured, you can go to Policies tab and click on Publish. + +![](<../.gitbook/assets/image (6) (1).png>) + +### 2. Importing Policy either from File or from IPFS + +Instead of creating Policy from scratch, there is an option of importing the Policy zip file from Local system. + +![](<../.gitbook/assets/image (11) (1).png>) + +2.1 Once the .zip file is selected, we get the Policy Import Review screen. Once everything looks good, click on Import Button. + +![](<../.gitbook/assets/image (8) (1).png>) + +2.2 The Policy can also be imported by importing it from IPFS. + +![](<../.gitbook/assets/image (3) (1).png>) + +2.3 To do this, you can use the sample policy that we have already uploaded to IPFS by entering the Hedera Message IDs. + +``` +1655293847.166673000 (new iREC Policy) +``` + +![](<../.gitbook/assets/image (5) (1).png>) + +2.4 If the timestamp entered is correct, we get Policy Import Preview screen. If the imported Policy looks good, click on **Import** button. + +![](<../.gitbook/assets/image (9) (1).png>) + +2.5 Once the Policy is imported, if everything looks good, click on Publish button. Policy will be published and it is represented by changing the status as Published. + +![](<../.gitbook/assets/image (12).png>) + +2.6 There is also an option to Export the Policy. To export the policy click on Export button. Once, you click on Export, you get Export dialog, where we have two exporting options: Copy message Identifier and saving the Policy as file. + +![](<../.gitbook/assets/image (10).png>) + +When you click on Save to file, Policy is exported as a .zip file. diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/getting-started-with-the-policy-workflows.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/getting-started-with-the-policy-workflows.md index f1f3fe3f27..9e3c209ec2 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/getting-started-with-the-policy-workflows.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/getting-started-with-the-policy-workflows.md @@ -1,31 +1,31 @@ # Getting Started with the Policy Workflows -First, note that we are in the Policies Configuration Tab of the Guardian interface, and we have the role of the RootAuthority since only the RootAuthority can create a new policy. +First, note that we are in the Policies Configuration Tab of the Guardian interface, and we have the role of the Standard Registry since only the Standard Registry can create a new policy. Second, you click on the blue **Create Policy** button! -![](../.gitbook/assets/PW\_1.png) +![](../.gitbook/assets/PW\_image\_1.png) {% hint style="info" %} **Note :** The "tag" field is important to be able to reference this policy in possibly other policies as a dependent policy {% endhint %} -![](../.gitbook/assets/PW\_2.png) +![](../.gitbook/assets/PW\_image\_2.png) Once we have created the Draft of the policy – notice the status field showing draft – click on the “Edit” link on the right. -![](../.gitbook/assets/PW\_3.png) +![](../.gitbook/assets/PW\_image\_3.png) The edit screen will open and you will notice two boxes on the right side of the screen. The top Policy box is static and offers the ability to add high-level “Policy properties.” You can edit the name, Policy Tag, etc. Note that you can also create custom roles that are specific to your policy. -![](<../.gitbook/assets/image (18).png>) +![](../.gitbook/assets/PW\_image\_4.png) The second Interface ContainerBlock is specific to the first workflow block. We will begin editing this block to build our policy! Let’s start with “Permissions” There are currently 3 permissions or roles with permissions configured that can be applied to a policy:\ -1\. Root Authority with the highest level of permissions, equivalent to an administrator of the policy,\ +1\. Standard Registry with the highest level of permissions, equivalent to an administrator of the policy,\ 2\. User which is the entity applying to receive the Renewable Energy Credits from iRec,\ 3\. Auditor as the entity that can view the “Trust Chain” or all of the important events that led to the creation of the Renewable Energy Credit @@ -33,7 +33,7 @@ But in the Permissions we can choose only: policy roles, any role, no role, owne Then we select the “type” of UI we want to utilize. In our example, we choose the “Blank” template. -![](../.gitbook/assets/PW\_5.png) +![](<../.gitbook/assets/image 5.png>) **Programmatically you begin like this:** @@ -70,7 +70,7 @@ Then we select the “type” of UI we want to utilize. In our example, we choos **Note:** In Guardian Version 1.0.2 there was new functionality implemented that allows for creation of choose Role Block. {% endhint %} -![](../.gitbook/assets/PW\_33.png) +![](../.gitbook/assets/PW\_image\_5.png) **Programmatically you begin like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-1.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-1.md index db093c155e..93bb01ad97 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-1.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-1.md @@ -12,7 +12,7 @@ We then select “Default Active” as true since this policy action must always Now we have a Policy Action defined, however, without any specific actions -![](<../.gitbook/assets/PW\_6 (1).png>) +![](../.gitbook/assets/PW\_image\_7.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-10.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-10.md index 9b7689f7bf..3e62f0c51a 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-10.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-10.md @@ -14,7 +14,7 @@ Lastly, we add custom fields to the form. \[When Field 2 is shown]: Note, that when we choose the Type button, we can now determine the Action this button will perform. In our case, it opens a Dialog Box. The Dialog Content is VC since we are again dealing with Verifiable Credentials in this form. -![](../.gitbook/assets/PW\_15.png) +![](../.gitbook/assets/PW\_image\_15.png) Below are screenshots of the UI field inputs diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-11.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-11.md index 2cb7d28286..217b5fa2ca 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-11.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-11.md @@ -6,13 +6,13 @@ As before, we set the tag, the permissions, and stop advancing the process until We then need to select the file schema for the download, MRV. And, then we need to set the target URL where the file is stored. And finally, we select, button title and content. -![](../.gitbook/assets/PW\_16.png) +![](../.gitbook/assets/PW\_image\_16.png) We now need to connect the download action to the sensor grid block we defined before. To do that, we click on the “sensors\_grid” button, and then click on “Bind Block” for Field 3 and select the “download\_config\_btn” action to bind the action to the actual definition of the button. -![](../.gitbook/assets/PW\_17.2.png) +![](../.gitbook/assets/PW\_image\_17.png) **Programmatically workflow step 10 and 11 will looks like this:** @@ -34,7 +34,7 @@ To do that, we click on the “sensors\_grid” button, and then click on “Bin // "did-documents". // "vp-documents". // "approve". - // "root-authorities" - list of users with the RootAuthority role. + // "standard-registries" - list of users with the Standard Registry role. "dataType": "vc-documents", // Custom filters, based on any existing fields. "filters": { diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-12.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-12.md index 069af64aee..d669374fb4 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-12.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-12.md @@ -4,7 +4,7 @@ We then click back to the “sensors\_page” button on the left side to add a We name the tag, add permissions – again installer since this action will still be performed by the installer, select the UI type as “Blank” and set the cyclic flag since we want to add more than one sensor to the grid. -![](../.gitbook/assets/PW\_17.png) +![](../.gitbook/assets/PW\_image\_18.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-13.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-13.md index 85069a6e74..fb5599c044 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-13.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-13.md @@ -8,7 +8,7 @@ Again we add a tag, set the permissions, make this step active by default since Next, we select the UI as a “Dialog” as we have done before from the drop-down. We then add content and title. -![](../.gitbook/assets/PW\_18.png) +![](../.gitbook/assets/PW\_image\_19.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-14.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-14.md index a486760862..8ea735b1de 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-14.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-14.md @@ -4,7 +4,7 @@ Next, we need to add another step. To do this we click back to the “create\_ne Again we add a tag, data type – Hedera to be compliant with the Hedera transaction format, and entity type (Inverter) which indicates the sensor. -![](../.gitbook/assets/PW\_19.png) +![](../.gitbook/assets/PW\_image\_20.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-15.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-15.md index f0a8e3ca72..225e7ba0c7 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-15.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-15.md @@ -6,7 +6,7 @@ We click back to the “create\_new\_sensors\_steps” process step and add a We then add a tag, type - of course, a verifiable credential, and entity – our inverter sensor. And done. We have completed the steps to add an inverter sensor to a project. -![](../.gitbook/assets/PW\_20.png) +![](../.gitbook/assets/PW\_image\_21.png) **Programmatically this workflow step looks like this:** @@ -31,7 +31,7 @@ We then add a tag, type - of course, a verifiable credential, and entity – our Lastly, just create a new Container Block to group all components on the page with MRV data. -![](https://i.imgur.com/3Ggu3yV.png) +![](../.gitbook/assets/PW\_image\_35.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-16.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-16.md index fe4c3451ec..b05ac9d38c 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-16.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-16.md @@ -6,7 +6,7 @@ We configure the “mrv\_grid” UI page in the same way as we did the “sensor Note that in contrast to the download functionality for Field 2 for the “sensors\_grid” we are now using the link functionality to view the document. -![](../.gitbook/assets/PW\_21.png) +![](../.gitbook/assets/PW\_image\_22.png) Below are screenshots of the field inputs diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-17.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-17.md index 863a0b4f9d..da979ceac4 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-17.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-17.md @@ -4,12 +4,12 @@ Next, we need to add an information block to our policy to specify what happens We then name the block through the tag, set permissions, activate by default such that rejection notifications are caught, stop the process if received, and then name the notification and define the message. -![](../.gitbook/assets/PW\_22.png) +![](../.gitbook/assets/PW\_image\_23.png) **Programmatically this workflow step looks like this:** ``` - // Block to display rejection info (i.e. the INSTALLER was not approved by RootAuthority). + // Block to display rejection info (i.e. the INSTALLER was not approved by StandardRegistry). { "tag": "installer_rejected", "blockType": "InformationBlock", diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-18.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-18.md index a11789be52..e8fc8c0505 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-18.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-18.md @@ -1,16 +1,16 @@ # Policy Workflow Step 18 -Next, we add a sequence of policy action steps for the RootAuthority. We do this by first clicking on the top policy field, and then we add a container for all the RootAuthority policy action steps by clicking on the Container button in the top navigation bar. +Next, we add a sequence of policy action steps for the Standard Registry. We do this by first clicking on the top policy field, and then we add a container for all the Standard Registry policy action steps by clicking on the Container button in the top navigation bar. -![](../.gitbook/assets/PW\_23.png) +![](../.gitbook/assets/PW\_image\_24.png) **Programmatically this workflow step looks like this:** ``` -// This Policy branch is used by users with the RootAuthority roles. +// This Policy branch is used by users with the Standard Registry roles. //Starting with the ContainerBlock. { - "tag": "root_authority_header", + "tag": "standard_registry_header", "defaultActive": true, "permissions": [ "OWNER" diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-19.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-19.md index 14111b4411..35da9aafaa 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-19.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-19.md @@ -1,10 +1,10 @@ # Policy Workflow Step 19 -After we added the “root\_authority\_header”, we add another container block by clicking on the Container button in the top navigation bar. +After we added the “standard\_registry\_header”, we add another container block by clicking on the Container button in the top navigation bar. -We then fill in the fields as we did for the installer, except now the permission is for the RootAuthority. +We then fill in the fields as we did for the installer, except now the permission is for the Standard Registry. -![](../.gitbook/assets/PW\_24.png) +![](../.gitbook/assets/PW\_image\_25.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-2.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-2.md index bf4906504d..717f5a9b85 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-2.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-2.md @@ -8,7 +8,7 @@ First, we give this new action the name we want. We then set the “Default Active” and add “Installer” as permission. -As a next step, we set the “Schema” field through a drop-down based on pre-configured schemas for the document relevant for this policy action request – in our case we select “IRec-Application-Details” as the required data schema for the request. +As a next step, we set the “Schema” field through a drop-down based on pre-configured schemas for the document relevant for this policy action request – in our case we select “IRec-Application-Details” as the required data schema for the request. Note - the creation of schemas is a prerequisite to policy creation. @@ -16,7 +16,7 @@ We then set the Id Type using the drop-down, and select “Owner” as the type Next, we select the “Type” drop-down in the UI box and select “PAGE” indicating that the UI used for this request will be a full UI window. This will open up the Title and Description fields which we will fill in next. -![](../.gitbook/assets/PW\_7.png) +![](../.gitbook/assets/PW\_image\_6.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-20.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-20.md index 77ac6aa637..83ff7bf661 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-20.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-20.md @@ -2,13 +2,13 @@ An “approve\_page” needs a document source to approve a document. Therefore, we are adding a document source below the “approve\_page” by clicking on the “Documents” button in the top navigation bar. -The “approve\_documents\_grid” has the permission for the Root Authority, must be active by default is of data type “approve.” +The “approve\_documents\_grid” has the permission for the Standard Registry, must be active by default is of data type “approve.” In contrast to the installer case where we create documents and send them for approval, we have no dependencies on the incoming documents. We take account of this by adding the “save\_new\_approve\_documents” dependency. Next, we add the required custom UI fields on the approval UI form. Note that since this is a general approval form we do not have to specify a schema or an entity type for the UI. -![](../.gitbook/assets/PW\_25.png) +![](../.gitbook/assets/PW\_image\_26.png) Below are the screenshots of the field inputs @@ -25,7 +25,7 @@ Below are the screenshots of the field inputs **Programmatically this workflow step looks like this:** ``` - // Grid listing VCs of the Installers, which require approval from the RootAuthority. + // Grid listing VCs of the Installers, which require approval from the Standard Registry. { "tag": "approve_documents_grid", "defaultActive": true, diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-21.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-21.md index 43317e29d4..fc45256595 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-21.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-21.md @@ -8,11 +8,11 @@ Note that for the approve option we are binding the action to the “update\_app Note that for the reject option we are binding the action to the “installer\_rejected” action we previously defined. -![](<../.gitbook/assets/PW\_26 (1).png>) +![](<../.gitbook/assets/PW\_image\_27.png>) Next, we return to the “approve\_documents\_grid” step and add the “approve\_documents\_btn” action as a binding block to Field 4 since Field 4 captures the approval or rejection of the document. Note, the choice of block for Field 4 makes sense now, because the bound action is a block itself. -![](../.gitbook/assets/PW\_26.1.png) +![](../.gitbook/assets/PW\_image\_28.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-22.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-22.md index 2517b8a422..73d2414d68 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-22.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-22.md @@ -2,7 +2,7 @@ Next, we return to the top field in our policy to add our final policy action block – minting of tokens – by clicking on the “Container” button in the top navigation bar. -![](../.gitbook/assets/PW\_27.png) +![](../.gitbook/assets/PW\_image\_29.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-23.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-23.md index 292e2f177b..5a191844cc 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-23.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-23.md @@ -4,7 +4,7 @@ Then we add another workflow block below the “mint\_events” block by clickin We enter the Entity type as MRV and select the Schema from the drop-down as “MRV” -![](../.gitbook/assets/PW\_28.png) +![](../.gitbook/assets/PW\_image\_30.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24-1.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24-1.md index 8adc48798b..0899c842b7 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24-1.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24-1.md @@ -8,7 +8,7 @@ You can use the rule field to enter minting calculations that are specific to yo Then we click on the “Save” button on the left side in the top navigation bar. -![](../.gitbook/assets/PW\_30.png) +![](../.gitbook/assets/PW\_image\_31.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24.md index e0b33fcb54..0450d83d69 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-24.md @@ -2,7 +2,7 @@ Next, we click on the “mint\_events”, and then add a send action by clicking on the “Send” button in the top navigation bar to send the MRV data in the CSD004 form – Requesting IREC Issuance for tokens to be issued to the Guardian. -![](../.gitbook/assets/PW\_29.png) +![](../.gitbook/assets/PW\_image\_32.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-3.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-3.md index 3f2a3116fd..bcfc1eb566 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-3.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-3.md @@ -14,7 +14,7 @@ Note, that we do not select a “Permission” because anyone should be able to Also, note, that this step does not create a new document, so the “Force New Document” is unchecked. And since we want to send the document, the “Stop Propagation” function is also not enabled. -![](../.gitbook/assets/PW\_8.png) +![](../.gitbook/assets/PW\_image\_8.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-4.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-4.md index 73139e37fe..6af9835b70 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-4.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-4.md @@ -16,7 +16,7 @@ For the approval UI, we then specify what Type it is from the drop-down. In our We then finish by giving the UI a Title and Description. -![](../.gitbook/assets/PW\_9.png) +![](../.gitbook/assets/PW\_image\_9.png) **Programmatically this workflow step looks like this:** @@ -39,7 +39,7 @@ We then finish by giving the UI a Title and Description. "permissions": [ "INSTALLER" ], - // Do not pass control to the next block after displaying the message as need to wait for RootAuthority approval. + // Do not pass control to the next block after displaying the message as need to wait for Standard Registry approval. "stopPropagation": true, "defaultActive": true }, diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-5.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-5.md index e84020e331..131f0b75d1 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-5.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-5.md @@ -6,7 +6,7 @@ Again we need a Send step since we need to send the approval we obtained from th We now proceed as with the previous “Send” step “save\_new\_approve\_document” to configure the policy action step. -![](<../.gitbook/assets/PW\_10 (1).png>) +![](<../.gitbook/assets/PW\_image\_10.png>) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-6.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-6.md index a96348e486..0bc9c95166 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-6.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-6.md @@ -8,7 +8,7 @@ We now proceed in the same way as with the “Send” step from “save\_new\_ap Note that the data type must be “Hedera” since the document is to be sent as a verifiable credential for permanent storage to Hedera. -![](../.gitbook/assets/PW\_11.png) +![](../.gitbook/assets/PW\_image\_11.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-7.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-7.md index 77ff4a4c81..9327eaff0c 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-7.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-7.md @@ -6,7 +6,7 @@ Again we need a Send step since we now have to submit the CSD01, the official IR Note that compared to the previous “Send” step, the Data Type is now a VC since we are submitting the official form as a verifiable credential but not to Hedera. This form is stored on the Guardian for auditors to review in the trust chain. -![](../.gitbook/assets/PW\_12.png) +![](../.gitbook/assets/PW\_image\_12.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-8.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-8.md index ea46712a4b..efa13e5a6c 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-8.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-8.md @@ -6,7 +6,7 @@ At this point, we need to create a sub Policy Action process as a dependent work We now configure this new container block through the “Tag”, Permissions, setting the Default Active (since this step must be initiated), and selecting the UI type (TABS in our case since we will have to fill in different types of information in different sections). -![](../.gitbook/assets/PW\_13.png) +![](../.gitbook/assets/PW\_image\_13.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-9.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-9.md index 753bc72232..05f29c1e61 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-9.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-step-9.md @@ -4,7 +4,7 @@ Next, we add another container block by clicking on the “Container” button i This block is to set up sensors by the Installer and, therefore the page of the UI should be BLANK to be able to add data. -![](../.gitbook/assets/PW\_14.png) +![](../.gitbook/assets/PW\_image\_14.png) **Programmatically this workflow step looks like this:** diff --git a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-wrap-up.md b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-wrap-up.md index 9b082f231a..6bdc2b70a0 100644 --- a/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-wrap-up.md +++ b/docs/policy-workflow-creation-using-the-guardian-user-interface/policy-workflow-wrap-up.md @@ -4,11 +4,11 @@ We can then look at the entire process. -![](../.gitbook/assets/PW\_31.png) +![](../.gitbook/assets/PW\_image\_33.png) We can also look at the code that has been created programmatically from the defined workflow by clicking on the “<>” button in the three-button chevron on the right-hand side. -![](../.gitbook/assets/PW\_32.png) +![](../.gitbook/assets/PW\_image\_34.png) The full coded version of the policy we just demoed is below (Reminder the coded version of this policy is for Guardian verison 1.0.2): @@ -147,7 +147,7 @@ The full coded version of the policy we just demoed is below (Reminder the coded "permissions": [ "INSTALLER" ], - // Do not pass control to the next block after displaying the message as need to wait for RootAuthority approval. + // Do not pass control to the next block after displaying the message as need to wait for Standard Registry approval. "stopPropagation": true, "defaultActive": true }, @@ -222,7 +222,7 @@ The full coded version of the policy we just demoed is below (Reminder the coded // "did-documents". // "vp-documents". // "approve". - // "root-authorities" - list of users with the RootAuthority role. + // "standard-registries" - list of users with the Standard Registry role. "dataType": "vc-documents", // Custom filters, based on any existing fields. "filters": { @@ -432,7 +432,7 @@ The full coded version of the policy we just demoed is below (Reminder the coded } ] }, - // Block to display rejection info (i.e. the INSTALLER was not approved by RootAuthority). + // Block to display rejection info (i.e. the INSTALLER was not approved by Standard Registry). { "tag": "installer_rejected", "blockType": "InformationBlock", @@ -450,10 +450,10 @@ The full coded version of the policy we just demoed is below (Reminder the coded } ] }, - // This Policy branch is used by users with the RootAuthority roles. + // This Policy branch is used by users with the Standard Registry roles. //Starting with the ContainerBlock. { - "tag": "root_authority_header", + "tag": "standard_registry_header", "defaultActive": true, "permissions": [ "OWNER" @@ -476,7 +476,7 @@ The full coded version of the policy we just demoed is below (Reminder the coded "title": "Approve Documents" }, "children": [ - // Grid listing VCs of the Installers, which require approval from the RootAuthority. + // Grid listing VCs of the Installers, which require approval from the Standard Registry. { "tag": "approve_documents_grid", "defaultActive": true, diff --git a/docs/profile-apis/setting-user-credentials.md b/docs/profile-apis/setting-user-credentials.md index 10ab1fc51b..4577db5336 100644 --- a/docs/profile-apis/setting-user-credentials.md +++ b/docs/profile-apis/setting-user-credentials.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/profiles/{username}" summary="Sets Hedera credentials for the user" %} {% swagger-description %} -Sets Hedera credentials for the user. For users with the Root Authority role it also creates an address book +Sets Hedera credentials for the user. For users with the Standard Registry role it also creates an address book {% endswagger-description %} {% swagger-parameter in="path" name="username" type="String" required="true" %} diff --git a/docs/profile-apis/user-account-information.md b/docs/profile-apis/user-account-information.md index 362c55757c..841219d2f5 100644 --- a/docs/profile-apis/user-account-information.md +++ b/docs/profile-apis/user-account-information.md @@ -1,10 +1,10 @@ # User Account Information -### RETURNS USER'S ACCOUNT BALANCE +### RETURNS USER'S ACCOUNT INFORMATION {% swagger method="get" path="" baseUrl="/profiles/{username}" summary="Returns user account info" %} {% swagger-description %} -Returns user account information. For users with the Root Authority role it also returns address book and VC document information +Returns user account information. For users with the Standard Registry role it also returns address book and VC document information {% endswagger-description %} {% swagger-parameter in="path" name="username" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/creation-of-a-schema.md b/docs/schema-creation-using-the-guardian-apis/creation-of-a-schema.md index 2886b40744..5af1621f5f 100644 --- a/docs/schema-creation-using-the-guardian-apis/creation-of-a-schema.md +++ b/docs/schema-creation-using-the-guardian-apis/creation-of-a-schema.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas" summary="Create new schema" %} {% swagger-description %} -Creates new schema. Only users with the Root Authority role are allowed to make the request. +Creates new schema. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" type="Object" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/creation-of-schema-related-to-the-topic.md b/docs/schema-creation-using-the-guardian-apis/creation-of-schema-related-to-the-topic.md index d223447a12..174e0cf7e0 100644 --- a/docs/schema-creation-using-the-guardian-apis/creation-of-schema-related-to-the-topic.md +++ b/docs/schema-creation-using-the-guardian-apis/creation-of-schema-related-to-the-topic.md @@ -2,7 +2,7 @@ {% swagger method="post" path="" baseUrl="/schemas/{topicId}" summary="Creates a schema related to the topic (policy)" %} {% swagger-description %} -Creates new schema. Only users with the Root Authority role are allowed to make the request. +Creates new schema. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="topicId" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/deleting-a-schema.md b/docs/schema-creation-using-the-guardian-apis/deleting-a-schema.md index 744b67ed4a..763dce6805 100644 --- a/docs/schema-creation-using-the-guardian-apis/deleting-a-schema.md +++ b/docs/schema-creation-using-the-guardian-apis/deleting-a-schema.md @@ -4,7 +4,7 @@ {% swagger method="delete" path="" baseUrl="/schema/{schemaID}" summary="Deletes the schema" %} {% swagger-description %} -Deletes the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request. +Deletes the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" type="String" name="schemaID" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/export-a-schema-1.md b/docs/schema-creation-using-the-guardian-apis/export-a-schema-1.md index c5e650728d..1212eecfa1 100644 --- a/docs/schema-creation-using-the-guardian-apis/export-a-schema-1.md +++ b/docs/schema-creation-using-the-guardian-apis/export-a-schema-1.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/{schemaId}/export/file" summary="Return zip file with schemas" %} {% swagger-description %} -Returns schema files for the schemas. Only users with the Root Authority role are allowed to make the request. +Returns schema files for the schemas. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="schemaID" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/export-a-schema.md b/docs/schema-creation-using-the-guardian-apis/export-a-schema.md index c6c4826c31..ddb1f8f626 100644 --- a/docs/schema-creation-using-the-guardian-apis/export-a-schema.md +++ b/docs/schema-creation-using-the-guardian-apis/export-a-schema.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/{schemaId}/export/message" summary="Hedera message IDs of published schemas" %} {% swagger-description %} -Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Root Authority role are allowed to make the request. +Returns Hedera message IDs of the published schemas, these messages contain IPFS CIDs of these schema files. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="schemaID" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs-1.md b/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs-1.md index 200c9568c7..91057666da 100644 --- a/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs-1.md +++ b/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs-1.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/import/message" summary="Imports new schema from IPFS" %} {% swagger-description %} -Imports new schema from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" required="true" type="Object" name="messageID" %} diff --git a/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs.md b/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs.md index 94ebf3d057..62b2cb507c 100644 --- a/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs.md +++ b/docs/schema-creation-using-the-guardian-apis/import-schema-from-ipfs.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/import/file" summary="Imports new schema from a zip file" %} {% swagger-description %} -Imports new schema from a zip file into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" required="true" type=".zip file" %} diff --git a/docs/schema-creation-using-the-guardian-apis/importing-schema-from-ipfs.md b/docs/schema-creation-using-the-guardian-apis/importing-schema-from-ipfs.md index 7d485c8fce..e9aa27a911 100644 --- a/docs/schema-creation-using-the-guardian-apis/importing-schema-from-ipfs.md +++ b/docs/schema-creation-using-the-guardian-apis/importing-schema-from-ipfs.md @@ -2,7 +2,7 @@ {% swagger method="post" path="" baseUrl="/schemas/{topicId}/import/message" summary="Imports schemas from a message for the selected topic (policy)" %} {% swagger-description %} -Imports new schema from IPFS into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new schema from IPFS into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="topicID" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/importing-zip-file-containing-schema.md b/docs/schema-creation-using-the-guardian-apis/importing-zip-file-containing-schema.md index 3558b2592f..de14fa3e69 100644 --- a/docs/schema-creation-using-the-guardian-apis/importing-zip-file-containing-schema.md +++ b/docs/schema-creation-using-the-guardian-apis/importing-zip-file-containing-schema.md @@ -2,7 +2,7 @@ {% swagger method="post" path="" baseUrl="/schemas/{topicId}/import/file" summary="Imports schemas from a file for the selected topic (policy)" %} {% swagger-description %} -Imports new schema from a zip file into the local DB. Only users with the Root Authority role are allowed to make the request. +Imports new schema from a zip file into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="topicId" type="Integer" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/publishing-schema-based-on-schema-id.md b/docs/schema-creation-using-the-guardian-apis/publishing-schema-based-on-schema-id.md index 4ba42b1952..5a7a299f90 100644 --- a/docs/schema-creation-using-the-guardian-apis/publishing-schema-based-on-schema-id.md +++ b/docs/schema-creation-using-the-guardian-apis/publishing-schema-based-on-schema-id.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/schemas/{schemaId}/publish" summary="Publishes the schema" %} {% swagger-description %} -Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Root Authority role are allowed to make the request. +Publishes the schema with the provided (internal) schema ID onto IPFS, sends a message featuring IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="schemaID" type="String" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/schema-preview-from-ipfs.md b/docs/schema-creation-using-the-guardian-apis/schema-preview-from-ipfs.md index a902206872..217403d335 100644 --- a/docs/schema-creation-using-the-guardian-apis/schema-preview-from-ipfs.md +++ b/docs/schema-creation-using-the-guardian-apis/schema-preview-from-ipfs.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/import/message/preview" summary="Schema preview from IPFS" %} {% swagger-description %} -Previews the schema from IPFS without loading it into the local DB. Only users with the Root Authority role are allowed to make the request. +Previews the schema from IPFS without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" name="" type="Object" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/schema-preview-from-zip.md b/docs/schema-creation-using-the-guardian-apis/schema-preview-from-zip.md index 3975b155bb..6da35c15cb 100644 --- a/docs/schema-creation-using-the-guardian-apis/schema-preview-from-zip.md +++ b/docs/schema-creation-using-the-guardian-apis/schema-preview-from-zip.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/schemas/import/file/preview" summary="Schema preview from a zip file" %} {% swagger-description %} -Previews the schema from a zip file. Only users with the Root Authority role are allowed to make the request. +Previews the schema from a zip file. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" name="" type="" required="true" %} diff --git a/docs/schema-creation-using-the-guardian-apis/updating-schema.md b/docs/schema-creation-using-the-guardian-apis/updating-schema.md index 549a649e9a..3149d46c3e 100644 --- a/docs/schema-creation-using-the-guardian-apis/updating-schema.md +++ b/docs/schema-creation-using-the-guardian-apis/updating-schema.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/schemas/{schemaId}" summary="Updates the schema" %} {% swagger-description %} -Updates the schema with the provided schema ID. Only users with the Root Authority role are allowed to make the request. +Updates the schema with the provided schema ID. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="schemaID" type="String" required="true" %} diff --git a/docs/schema-flow/schema-demo.md b/docs/schema-flow/schema-demo.md new file mode 100644 index 0000000000..0d146b8c5e --- /dev/null +++ b/docs/schema-flow/schema-demo.md @@ -0,0 +1,121 @@ +# Schema Demo + +There are two types of Schemas: + +1. System Schemas +2. Policy Schemas + +To display System / Policy Schemas in the GUI, we have added a toggle in the Schemas tab. + +![](<../.gitbook/assets/image (3).png>) + +### System Schemas + +Whenever an account is created, System Schemas are generated automatically. + +![](<../.gitbook/assets/image (13).png>) + +{% hint style="info" %} +Note: By default System Schemas cannot be edited / deleted. +{% endhint %} + +To create a new System Schemas, click on the **New** button at the top right corner. + +![](<../.gitbook/assets/image (16).png>) + +After clicking on the New button, you will be asked to enter Schema details such as Schema Name, Entity : Standard\_Registry / User, Schema Description and any other required fields. + +![](<../.gitbook/assets/image (4).png>) + +Once the above details are added, click on the Create button. + +![](<../.gitbook/assets/image (15).png>) + +Once the System Schema is created, we have options for activating, deleting, editing and viewing JSON documents. + +![](<../.gitbook/assets/image (9).png>) + +### 2. Policy Schemas + +This is the second option in the Schemas tab. This option displays all the Policy Schemas related to all the created / imported Policies in the Policies tab. + +The below screenshot shows the Policy Schemas of an imported Policy (iRec). + +![](<../.gitbook/assets/image (19).png>) + +We also have a filter, where by default, all the Schemas of Policies are shown. We can also select a particular Policy to show the Schemas of the selected Policy. + +![](<../.gitbook/assets/image (8).png>) + +Policy Schema can also be created by clicking on the New button. + +![](<../.gitbook/assets/image (21).png>) + +Once the New button is clicked, we get a dialog box that asks for the following information:\ +1\. Schema Name + +2\. Policy Dropdown: To select any of the imported Policy + +3\. Entity Dropdown: To select any of the Entity: VC / MRV + +4\. Description of Schema. + +5\. Add Field: To add any fields required for the Schema. + +Instead of creating a new Schema from scratch, there is also an option to import it via File or via IPFS. + +To import the Schema, click on the Import button. + +![](<../.gitbook/assets/image (7).png>) + +Once the Import button is clicked, we get two options: Import from file and Import from IPFS + +![](../.gitbook/assets/image.png) + +Import from file: You can select the required Schema .zip file from your local machine. Sample iREC Schema (iREC Schema.zip) is provided in the link: [https://github.com/hashgraph/guardian/tree/main/Demo%20Artifacts](https://github.com/hashgraph/guardian/tree/main/Demo%20Artifacts) + +![](<../.gitbook/assets/image (17).png>) + +Import from IPFS: You can also import Schema from IPFS by entering the correct Schema timestamp. Sample iREC Schema timestamp is below:\ + + +``` +1644847084.945541771 (iREC 3 Policy) +``` + +![](<../.gitbook/assets/image (14).png>) + +Once the Schema is imported, we need to select the Policy from the Policy dropdown to connect the Schema and the Policy. + +![](<../.gitbook/assets/image (2).png>) + +![](<../.gitbook/assets/image (11).png>) + +After selecting the required Policy, click on the Import button. + +When the Schema is imported, it will be in draft status. + +{% hint style="info" %} +Note: Initially when the Schema is created/imported, it will be in draft status. +{% endhint %} + +Once the Schema is imported, we will have the following options:\ +1\. Export the Schema and save it as .zip file in the local machine + +2\. Editing the Schema + +3\. Deleting the Schema + +4\. Displaying JSON document + +To Publish the Schema, click on Publish button. + +![](<../.gitbook/assets/image (22).png>) + +After clicking on Publish, you will be prompted to enter the version. After entering the Version and pressing the submit button, the status will change to Published. + +![](<../.gitbook/assets/image (18).png>) + +{% hint style="info" %} +Note: All Schemas connected to a Policy gets published automatically when Policy gets published. +{% endhint %} diff --git a/docs/settings-apis/adding-settings.md b/docs/settings-apis/adding-settings.md index 07edf0b4f4..7a058e2ce2 100644 --- a/docs/settings-apis/adding-settings.md +++ b/docs/settings-apis/adding-settings.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/settings" summary="Set settings." %} {% swagger-description %} -Set settings. For users with the Root Authority role only. +Set settings. For users with the Standard Registry role only. {% endswagger-description %} {% swagger-parameter in="body" type="String" required="true" name="operatorID" %} diff --git a/docs/settings-apis/displaying-current-settings.md b/docs/settings-apis/displaying-current-settings.md index c47d81f6f1..ec19e29fae 100644 --- a/docs/settings-apis/displaying-current-settings.md +++ b/docs/settings-apis/displaying-current-settings.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/settings" summary="Returns current settings" %} {% swagger-description %} -Returns current settings. For users with the Root Authority role only +Returns current settings. For users with the Standard Registry role only {% endswagger-description %} {% swagger-response status="200: OK" description="Success Operation" %} diff --git a/docs/system-schemas-apis/creates-new-system-schema.md b/docs/system-schemas-apis/creates-new-system-schema.md new file mode 100644 index 0000000000..b031849e51 --- /dev/null +++ b/docs/system-schemas-apis/creates-new-system-schema.md @@ -0,0 +1,52 @@ +# Creates New System Schema + +### CREATES NEW SYSTEM SCHEMA + +{% swagger method="post" path="" baseUrl="/schemas/system/{username}" summary="Creates new System Schema" %} +{% swagger-description %} +Creates new system schema. Only users with the Standard Registry role are allowed to make the request. +{% endswagger-description %} + +{% swagger-parameter in="path" name="username" type="String" required="true" %} +Username +{% endswagger-parameter %} + +{% swagger-parameter in="body" required="true" %} +Object that contains valid Schema +{% endswagger-parameter %} + +{% swagger-response status="201: Created" description="Successful Operation" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/delete-system-schema.md b/docs/system-schemas-apis/delete-system-schema.md new file mode 100644 index 0000000000..bf2f8c38bc --- /dev/null +++ b/docs/system-schemas-apis/delete-system-schema.md @@ -0,0 +1,53 @@ +# Delete System Schema + +### DELETE THE SYSTEM SCHEMA WITH THE PROVIDED SCHEMA ID + +{% swagger method="delete" path="" baseUrl="/schemas/system/{schemaId}" summary="Deletes the Schema" %} +{% swagger-description %} +Deletes the system schema with the provided Schema ID. Only users with the Standard Registry role are allowed to make a request. +{% endswagger-description %} + +{% swagger-parameter in="path" name="schemaId" type="String" required="true" %} +SchemaID +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/publishes-the-schema.md b/docs/system-schemas-apis/publishes-the-schema.md new file mode 100644 index 0000000000..1bed323817 --- /dev/null +++ b/docs/system-schemas-apis/publishes-the-schema.md @@ -0,0 +1,57 @@ +# Publishes the Schema + +### PUBLISHES THE SCHEMA + +{% swagger method="put" path="" baseUrl="/schemas/{schemaId}/active" summary="Publishes the Schema" %} +{% swagger-description %} +Makes the selected schema active. Other schemas of the same type become inactive. Only suers with the Standard Registry role are allowed to make the request. +{% endswagger-description %} + +{% swagger-parameter in="path" name="schemaID" type="String" required="true" %} +schema ID +{% endswagger-parameter %} + +{% swagger-parameter in="body" required="true" %} +Object that contains Policy Version +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/returns-schema-by-type.md b/docs/system-schemas-apis/returns-schema-by-type.md new file mode 100644 index 0000000000..95b11a8cc5 --- /dev/null +++ b/docs/system-schemas-apis/returns-schema-by-type.md @@ -0,0 +1,51 @@ +# Returns Schema by Type + +### FINDING SCHEMA USING JSON DOCUMENT + +{% swagger method="get" path="" baseUrl="/schemas/type/{type}" summary="Returns Schema by Type" %} +{% swagger-description %} +Finds the schema using the json document type. +{% endswagger-description %} + +{% swagger-parameter in="path" name="type" type="String" %} +JSON type +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/returns-schema-by-username.md b/docs/system-schemas-apis/returns-schema-by-username.md new file mode 100644 index 0000000000..107d9cb243 --- /dev/null +++ b/docs/system-schemas-apis/returns-schema-by-username.md @@ -0,0 +1,66 @@ +# Returns Schema by Username + +### RETURNS ALL SYSTEM SCHEMAS BY USERNAME + +{% swagger method="get" path="" baseUrl="/schemas/system/{username}" summary="Returns all System Schemas by Username" %} +{% swagger-description %} +Return all system schemas by username. Only user with the Standard Registry are allowed to make the request. +{% endswagger-description %} + +{% swagger-parameter in="path" name="username" type="String" required="true" %} +Username +{% endswagger-parameter %} + +{% swagger-parameter in="query" name="pageIndex" type="Integer" %} +The number of pages to skip before starting to collect the result set. +{% endswagger-parameter %} + +{% swagger-parameter in="query" name="pageSize" type="Integer" %} +The number of items to return. +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + headers: + x-total-count: + schema: + type: integer + description: Total number of items in the collection. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/schema-type.md b/docs/system-schemas-apis/schema-type.md new file mode 100644 index 0000000000..6738aba5c2 --- /dev/null +++ b/docs/system-schemas-apis/schema-type.md @@ -0,0 +1,51 @@ +# Schema Type + +### FINDS THE SCHEMA USING SCHEMA TYPE + +{% swagger method="get" path="" baseUrl="/schemas/system/entity/{schemaEntity}" summary="Returns Schema by Schema Type" %} +{% swagger-description %} +Finds the schema using Schema Type. +{% endswagger-description %} + +{% swagger-parameter in="path" name="schemaEntity" type="String" required="true" %} +Schema Type +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/system-schemas-apis/updates-the-schema.md b/docs/system-schemas-apis/updates-the-schema.md new file mode 100644 index 0000000000..642e908d31 --- /dev/null +++ b/docs/system-schemas-apis/updates-the-schema.md @@ -0,0 +1,57 @@ +# Updates the Schema + +### UPDATES THE SCHEMA + +{% swagger method="put" path="" baseUrl="/schemas/system/{schemaId}" summary="Updates the Schema" %} +{% swagger-description %} +Updates the system Schema with the provided Schema ID. Only users with the Standard Registry role are allowed to make the request. +{% endswagger-description %} + +{% swagger-parameter in="path" name="schemaId" type="String" required="true" %} +SchemaID +{% endswagger-parameter %} + +{% swagger-parameter in="path" required="true" %} +Object that contains valid Schema +{% endswagger-parameter %} + +{% swagger-response status="200: OK" description="Successful Operation" %} +```javascript +{ + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Schema' +} +``` +{% endswagger-response %} + +{% swagger-response status="401: Unauthorized" description="Unauthorized" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="403: Forbidden" description="Forbidden" %} +```javascript +{ + // Response +} +``` +{% endswagger-response %} + +{% swagger-response status="500: Internal Server Error" description="Internal Server Error" %} +```javascript +{ + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +} +``` +{% endswagger-response %} +{% endswagger %} diff --git a/docs/token-apis/freeze-tokens-of-a-user.md b/docs/token-apis/freeze-tokens-of-a-user.md index 8e38318659..8ff962b697 100644 --- a/docs/token-apis/freeze-tokens-of-a-user.md +++ b/docs/token-apis/freeze-tokens-of-a-user.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/tokens/{tokenId}/{username}/freeze" summary="Freeze transfers of the specified token for the user" %} {% swagger-description %} -Freezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request +Freezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="path" name="tokenID" type="String" required="true" %} diff --git a/docs/token-apis/grants-kyc-for-the-user.md b/docs/token-apis/grants-kyc-for-the-user.md index c5a72b9a45..955b8bf50e 100644 --- a/docs/token-apis/grants-kyc-for-the-user.md +++ b/docs/token-apis/grants-kyc-for-the-user.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/tokens/{tokenId}/{username}/grantKyc" summary="Sets the KYC flag for the user." %} {% swagger-description %} -Sets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request. +Sets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="tokenID" type="String" required="true" %} diff --git a/docs/token-apis/revoke-kyc-of-the-user.md b/docs/token-apis/revoke-kyc-of-the-user.md index 8cd9eb74f0..4cb4f71eb4 100644 --- a/docs/token-apis/revoke-kyc-of-the-user.md +++ b/docs/token-apis/revoke-kyc-of-the-user.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/tokens/{tokenId}/{username}/revokeKyc" summary="Unsets the KYC flag for the user." %} {% swagger-description %} -Unsets the KYC flag for the user. Only users with the Root Authority role are allowed to make the request. +Unsets the KYC flag for the user. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="tokenID" type="String" required="true" %} diff --git a/docs/token-apis/token-listing-1.md b/docs/token-apis/token-listing-1.md index d4482dd25b..4bad25a260 100644 --- a/docs/token-apis/token-listing-1.md +++ b/docs/token-apis/token-listing-1.md @@ -4,7 +4,7 @@ {% swagger method="post" path="" baseUrl="/tokens" summary="Creates a new token" %} {% swagger-description %} -Creates a new token. Only users with the Root Authority role are allowed to make the request. +Creates a new token. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="body" required="true" %} diff --git a/docs/token-apis/token-listing.md b/docs/token-apis/token-listing.md index de32d1daa2..82e8539eb1 100644 --- a/docs/token-apis/token-listing.md +++ b/docs/token-apis/token-listing.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/tokens" summary="Return a list of tokens" %} {% swagger-description %} -Returns all tokens. For the Root Authority role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role. +Returns all tokens. For the Standard Registry role it returns only the list of tokens, for other users it also returns token balances as well as the KYC, Freeze, and Association statuses. Not allowed for the Auditor role. {% endswagger-description %} {% swagger-response status="200: OK" description="Successful Operation" %} diff --git a/docs/token-apis/unfreeze-tokens-of-a-user.md b/docs/token-apis/unfreeze-tokens-of-a-user.md index 6a3e351a2a..7e1040f71c 100644 --- a/docs/token-apis/unfreeze-tokens-of-a-user.md +++ b/docs/token-apis/unfreeze-tokens-of-a-user.md @@ -4,7 +4,7 @@ {% swagger method="put" path="" baseUrl="/tokens/{tokenId}/{username}/unfreeze" summary="Unfreezes transfers of the specified token for the user" %} {% swagger-description %} -Unfreezes transfers of the specified token for the user. Only users with the Root Authority role are allowed to make the request +Unfreezes transfers of the specified token for the user. Only users with the Standard Registry role are allowed to make the request {% endswagger-description %} {% swagger-parameter in="path" name="tokenID" type="String" required="true" %} diff --git a/docs/token-apis/user-info-for-selected-token.md b/docs/token-apis/user-info-for-selected-token.md index 18b22fedf2..7bc9b2a616 100644 --- a/docs/token-apis/user-info-for-selected-token.md +++ b/docs/token-apis/user-info-for-selected-token.md @@ -4,7 +4,7 @@ {% swagger method="get" path="" baseUrl="/tokens/{tokenId}/{username}/info" summary="Returns User information" %} {% swagger-description %} -Returns user information for the selected token. Only users with the Root Authority role are allowed to make the request. +Returns user information for the selected token. Only users with the Standard Registry role are allowed to make the request. {% endswagger-description %} {% swagger-parameter in="path" name="tokenID" type="String" required="true" %} diff --git a/docs/user-guide-glossary/policy-glossary.md b/docs/user-guide-glossary/policy-glossary.md index ca2755ce34..69c65feec7 100644 --- a/docs/user-guide-glossary/policy-glossary.md +++ b/docs/user-guide-glossary/policy-glossary.md @@ -7,7 +7,7 @@ Next, we discuss the terms that need to be understood to create Policies within | Block | Either a Policy Workflow or a Policy Action | MRVDataVerification (Policy Workflow) | | `children` | Defines a list of Blocks that are grouped into a Policy Workflow | List of Blocks | | `defaultActive` | Determines if Policy Workflow or a Policy Action can be executed | `true` | -| `permissions` | Security Policy associated with a specific role | `ROOT_AUTHORITY` | +| `permissions` | Security Policy associated with a specific role | `STANDARD_REGISTRY` | | `blockType` | Specifies the type of Policy Workflow or Policy Action | `interfaceContainerBlock` (policy workflow name) | | `uiMetaData` | Specifies the data of the policy workflow and/or Policy Action to be displayed | `type: header___` `fields:___________` `name: document.issuer` `title: Owner_____` `type: text` | | `tag` | Specifies the ID of a policy action which can be referenced in other blocks as a dependency | `Request` | diff --git a/docs/versioning-and-deprecation-policy/policy-versioning-and-deprecation-policy.md b/docs/versioning-and-deprecation-policy/policy-versioning-and-deprecation-policy.md index 448971109d..6f337d92c4 100644 --- a/docs/versioning-and-deprecation-policy/policy-versioning-and-deprecation-policy.md +++ b/docs/versioning-and-deprecation-policy/policy-versioning-and-deprecation-policy.md @@ -25,7 +25,7 @@ The Guardian Policies are versioned using semantic versioning in the major.minor * minor: the Policy version contains notable new capabilities and non-breaking changes. * micro: the Policy release contains non-breaking changes only. -Guardian system does not generate versions automatically, it is the responsibility of the Policy authors (Root Authority) to keep track of its policies/versions and correctly reflect changes in the version number. +Guardian system does not generate versions automatically, it is the responsibility of the Policy authors (Standard Registry) to keep track of its policies/versions and correctly reflect changes in the version number. Wherever possible and relevant, Guardian Policy version header contains a reference to the original (paper) document version from the guiding which this policy represents. @@ -57,11 +57,17 @@ The notice is issued via a notice message in the corresponding Hedera Topic, and A Policy may be discontinued without prior warning if the existing behavior if incorrect or to patch a security vulnerability. -### Policy Definition language +### Policy Definition language (PDL) -For the purposes of backwards compatibility Guardian differentiates between existing policies and the creation of new policies, and implements separate rules accordingly. +For the purposes of backwards compatibility Guardian differentiates between existing policies and the creation of new policies and implements separate rules accordingly. -At this time Guardian does not version policy language definition separately from the Guardian, for the purposes over distinguishing the language definitions it is recommended to use Guardian release version numbers. +Guardian Policy documents feature two independent version numbers, one describing the version, in other words ‘iteration’, of the policy itself (as described in the section above), and the other one describing the version of the PDL that this version of the policy is expressed in. Like the former, the latter uses semantic versioning in the major.minor.micro format. Each number incremented sequentially, the difference in numbers between two documents denote the following differences: + +* major: PDL in documents contains breaking changes, manual conversion on import is required. +* minor: PDL in the newer document contains notable new capabilities and non-breaking changes, the policy will be converted into the new format on import automatically. +* micro: the PDL versions contains non-breaking changes only. + +Guardian generates PDL versions for Policy document automatically. Each new release of Guardian may or may not bring a new PDL version. However, new PDL versions can only be introduced as part of the new release of Guardian. ### Existing Policies diff --git a/docs/versioning-and-deprecation-policy/schema-versioning-and-deprecation-policy.md b/docs/versioning-and-deprecation-policy/schema-versioning-and-deprecation-policy.md index 41471b043c..d13b393905 100644 --- a/docs/versioning-and-deprecation-policy/schema-versioning-and-deprecation-policy.md +++ b/docs/versioning-and-deprecation-policy/schema-versioning-and-deprecation-policy.md @@ -25,7 +25,7 @@ Guardian Schemas are versioned using semantic versioning in the major.minor.micr * minor: the Schema version contains notable new capabilities and non-breaking changes. * micro: the Schema release contains non-breaking changes only. -Guardian system does not generate versions automatically, it is the responsibility of the Schema authors (Root Authority) to keep track of its policies/versions and correctly reflect changes in the version number. +Guardian system does not generate versions automatically, it is the responsibility of the Schema authors (Standard Registry) to keep track of its policies/versions and correctly reflect changes in the version number. Wherever possible and relevant, Guardian Schema version header contains a reference to the original (paper) document version from the guiding which this schema represents. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index f07597a570..c1723cfbd6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "guardian", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "guardian", - "version": "2.0.0", + "version": "2.1.0", "license": "Apache-2.0", "dependencies": { "@angular-material-components/datetime-picker": "^6.0.3", @@ -23,16 +23,11 @@ "@angular/router": "~12.1.1", "@ctrl/ngx-codemirror": "^5.1.1", "@enonic/global-polyfill": "^1.0.0", - "@transmute/credentials-context": "^0.7.0-unstable.5", - "@transmute/did-context": "^0.7.0-unstable.5", - "@transmute/ed25519-signature-2018": "^0.7.0-unstable.5", - "@transmute/security-context": "^0.7.0-unstable.5", - "@transmute/vc.js": "^0.7.0-unstable.5", + "@guardian/interfaces": "file:../interfaces", "codemirror": "^5.65.0", "cronstrue": "^2.4.0", "crypto-browserify": "^3.12.0", "file-saver": "^2.0.5", - "interfaces": "file:../interfaces", "js-yaml": "^4.1.0", "moment": "^2.29.1", "ngx-file-drop": "^12.0.0", @@ -61,7 +56,8 @@ } }, "../interfaces": { - "version": "2.0.0", + "name": "@guardian/interfaces", + "version": "2.1.3", "license": "Apache-2.0", "dependencies": { "reflect-metadata": "^0.1.13" @@ -2340,14 +2336,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bitauth/libauth": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@bitauth/libauth/-/libauth-1.19.1.tgz", - "integrity": "sha512-R524tD5VwOt3QRHr7N518nqTVR/HKgfWL4LypekcGuNQN8R4PWScvuRcRzrY39A28kLztMv+TJdiKuMNbkU1ug==", - "engines": { - "node": ">=8.9" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -2380,47 +2368,6 @@ "codemirror": ">=5.63.3" } }, - "node_modules/@did-core/data-model": { - "version": "0.1.1-unstable.15", - "resolved": "https://registry.npmjs.org/@did-core/data-model/-/data-model-0.1.1-unstable.15.tgz", - "integrity": "sha512-l7gxLxegcXW7389G+j6o+S24lS8uasmJx5txWpW3QadNvOawKwvWn8bV59SdHSK806xNzIZaCLKmXKxebs8yAQ==", - "dependencies": { - "factory.ts": "^0.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@did-core/did-ld-json": { - "version": "0.1.1-unstable.15", - "resolved": "https://registry.npmjs.org/@did-core/did-ld-json/-/did-ld-json-0.1.1-unstable.15.tgz", - "integrity": "sha512-p2jKRxSU+eJJqd+ewCklYp/XZ6ysISk8VU2/kANCoB/WwUy/kVgw2rUNScRDXw2utr9Qj36P8EZTYi4aj7vRCQ==", - "dependencies": { - "@transmute/did-context": "^0.6.1-unstable.25", - "jsonld-checker": "^0.1.6" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@did-core/did-ld-json/node_modules/@transmute/did-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" - }, - "node_modules/@digitalbazaar/http-client": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-1.2.0.tgz", - "integrity": "sha512-W9KQQ5pUJcaR0I4c2HPJC0a7kRbZApIorZgPnEDwMBgj16iQzutGLrCXYaZOmxqVLVNqqlQ4aUJh+HBQZy4W6Q==", - "dependencies": { - "esm": "^3.2.22", - "ky": "^0.25.1", - "ky-universal": "^0.8.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", @@ -2435,6 +2382,10 @@ "resolved": "https://registry.npmjs.org/@enonic/global-polyfill/-/global-polyfill-1.0.0.tgz", "integrity": "sha512-UYw+d/dNC9z8CqrTc9zHzOrDr9xypFN0hu5fhc8dKxdhtvzfsf1EipwG1wB5XRm61G6KOeK/wEM1vqeGM/0dag==" }, + "node_modules/@guardian/interfaces": { + "resolved": "../interfaces", + "link": true + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2457,39 +2408,6 @@ "schema-utils": "^2.7.0" } }, - "node_modules/@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "optionalDependencies": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "node_modules/@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "dependencies": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "node_modules/@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - }, - "engines": { - "node": ">=10", - "yarn": "1.x" - } - }, "node_modules/@ngtools/webpack": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.1.4.tgz", @@ -2631,43 +2549,6 @@ "read-package-json-fast": "^2.0.1" } }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", - "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", - "dependencies": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.3.2.tgz", - "integrity": "sha512-oUgNj+8oT7uROEMEpZZ3U+kZjyxj1KXuvA8P5kiMUveTya9eyS8KTqu/dzdEtYC3u7dvjknVz+0sUfkWOBHfQg==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1", - "webcrypto-core": "^1.7.1" - }, - "engines": { - "node": ">=10.12.0" - } - }, "node_modules/@schematics/angular": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.1.4.tgz", @@ -2693,171 +2574,6 @@ "node": ">= 0.6.0" } }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "dependencies": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "dependencies": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz", - "integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -2867,277 +2583,6 @@ "node": ">= 6" } }, - "node_modules/@transmute/bls12381-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-X1SgUW/uAVCGiDHA8SQD1wqygt/A32GSJ5b8fceW4P0SBJYWQZmK2bowqsUiAZkvvD82S/ErcxCY9Qz9SFdPCQ==", - "dependencies": { - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.54" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/credentials-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-PK8jQHUsZ1y7c7TT8CiyuhK/BzW8gZ8bXqsLsVdOC2LoC8AGZLywN29ttdXklPiwNRufLZXwCYRzzRKlHlfg+w==" - }, - "node_modules/@transmute/did-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-qfdzrksimhp+Hgzgn37zM3+0zrwR6AjQyRv0M5I/VrFD1mZ48SEgYuzKJsSNo0/zBQHMiJOHU8OgWBC1mjPptw==" - }, - "node_modules/@transmute/did-key-common": { - "version": "0.3.0-unstable.5", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.3.0-unstable.5.tgz", - "integrity": "sha512-8g8rPwzw8phRcO6j7Pdef7POB8Q+2mQRg+7rB6PX1wqxsAR6qFsaQRN5q1Odb6UOih1bZ2Dbnas1eArp6lNoSQ==", - "dependencies": { - "@did-core/data-model": "^0.1.1-unstable.13", - "@did-core/did-ld-json": "^0.1.1-unstable.13", - "@transmute/did-context": "^0.6.1-unstable.36", - "@transmute/ld-key-pair": "^0.6.1-unstable.36", - "@transmute/security-context": "^0.6.1-unstable.36" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@transmute/did-key-common/node_modules/@transmute/did-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" - }, - "node_modules/@transmute/did-key-common/node_modules/@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "node_modules/@transmute/did-key-common/node_modules/@transmute/security-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-GtLmG65qlORrz/2S4I74DT+vA4+qXsFxrMr0cNOXjUqZBd/AW1PTrFnryLF9907BfoiD58HC9qb1WVGWjSlBYw==" - }, - "node_modules/@transmute/did-key-ed25519": { - "version": "0.3.0-unstable.5", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.3.0-unstable.5.tgz", - "integrity": "sha512-yYnuCEZMVa7b+zmYgKby+49Rgnq045RWoR5ddG9n6UxDowFxrKuwZeN9imInCZcBY9mzYXm2yutqTXULuptUow==", - "dependencies": { - "@transmute/did-key-common": "^0.3.0-unstable.5", - "@transmute/ed25519-key-pair": "^0.6.1-unstable.37" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/ed25519-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-l34yzE/QnQwmdk5xY9g2kD55e4XPp/jTZQzPu7I6J4Ar+bMaL/0RLL/pgvwyI7qUpsddxRf4WPZCCcZveqPcdA==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "@transmute/x25519-key-pair": "^0.6.1-unstable.37" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/x25519-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-j6zR9IoJmgVhUCVH8YVGpsgQf99SxPKZ00LGnUheBAQzgj2lULGBQ44G+GqBCdzfT0qweptTfp1RjqqHEpizeA==", - "dependencies": { - "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.6.1-unstable.37" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.2", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.2.tgz", - "integrity": "sha512-B0jg348Z8F0+lGWQic28xVxBZiXOJYbisWp6EfP4fQdMV3G4sES9YubpdiuoZHjesDZrf6xZ7cEB81mjGJMUkA==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.2", - "@transmute/x25519-key-pair": "^0.7.0-unstable.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/ed25519-signature-2018": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.54.tgz", - "integrity": "sha512-tZsisYd3dbNZkoZg2qNmg0iuaGsH+MOJXP26F0z+a1iUfMQd99Z6NlMWo+9xAlY2sRf3RDZWBrpS/a5jigy8bg==", - "dependencies": { - "@transmute/ed25519-key-pair": "0.7.0-unstable.2", - "@transmute/jose-ld": "^0.7.0-unstable.54", - "@transmute/security-context": "^0.7.0-unstable.54", - "jsonld": "^5.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@transmute/jose-ld": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.54.tgz", - "integrity": "sha512-0h6fs2CaaAF6plQVdkP6ZLQfok40xDintvsba+eHxSO8BGdRO8MjdHu0YGejZvj2QY82Kvj2wzqrU1KamRxgEQ==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.6", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "base64url": "^3.0.1", - "jose": "^4.3.8", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/json-web-signature": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.54.tgz", - "integrity": "sha512-KpLnGaUdo6fgt9ARTVHMc+duWMciQsnOeq9ADdiNZ/Orns/FMHXjN04UyFkTP9EdTz0L5zdojMseAheWJG5W0A==", - "dependencies": { - "@transmute/bls12381-key-pair": "^0.7.0-unstable.54", - "@transmute/ed25519-key-pair": "^0.7.0-unstable.54", - "@transmute/jose-ld": "^0.7.0-unstable.54", - "@transmute/secp256k1-key-pair": "^0.7.0-unstable.54", - "@transmute/security-context": "^0.7.0-unstable.54", - "@transmute/web-crypto-key-pair": "^0.7.0-unstable.54", - "jsonld": "^5.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/json-web-signature/node_modules/@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-AdRXM3x+W/k470WXgxLqpZBGMX44Nq+/outRnmKhrgYcmAjwAotFyTbX8p5qfcsbGsWlXRSsirsgODX/SHZ9QQ==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "@transmute/x25519-key-pair": "^0.7.0-unstable.54" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/jsonld-schema": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.54.tgz", - "integrity": "sha512-HN7wr2gJxEFO+AzQ+1VqeBKXophFGKhZCQK1tj/QNLgEyjR9p7fs3HmYI9cmAOV22HQfF/nSfUa0iWyTstjuqA==", - "dependencies": { - "ajv": "^8.6.1", - "genson-js": "0.0.5", - "jsonld": "^5.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/jsonld-schema/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@transmute/ld-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-8t0OGYuUPGGzPFxMZpk6Tnsnv/1/3cVUOHDfHexat0iAL42f/48UctLras6HwY6LoTZWDZDDZGy2SDH8BTNXmg==" - }, - "node_modules/@transmute/linked-data-proof": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.54.tgz", - "integrity": "sha512-fYelGj9FvItsNYw9mnkk034Z6qavOa/gChNDfSj0gFOLiSWu4AbPaNPY1qn3oCGVDj3M/WFXJ7pSjE0lh+YGbA==", - "dependencies": { - "@transmute/did-key-ed25519": "^0.3.0-unstable.5", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/secp256k1-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-KjGl9LIwNz9geFDyMFBB1d4fw0p1aa5fYjwtgYHxRDLS8HUCUuQeD0Jtp2jk0WS3lCz8b+TCYQKWSngEItRjcw==", - "dependencies": { - "@bitauth/libauth": "^1.18.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "secp256k1": "^4.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/security-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-2U5Q6mPM3DzMBKHwKAVLNFLjfaPIS9rLNafG06LHA/gXiz5cUHbokWrbqpGpBoCeHBTC0B+YPwjA4JuhGXPlJw==" - }, - "node_modules/@transmute/vc.js": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.54.tgz", - "integrity": "sha512-eA1qVZcVMOl3/76nC7CYVYUOlvPMvEgCLydpyVi9VNh7ZMi9B2l57y0ViCVm0XQhIhZaH2uD2IK7ZATj22A5eQ==", - "dependencies": { - "@transmute/did-key-ed25519": "^0.3.0-unstable.5", - "@transmute/json-web-signature": "^0.7.0-unstable.54", - "@transmute/jsonld-schema": "^0.7.0-unstable.54", - "@transmute/linked-data-proof": "^0.7.0-unstable.54", - "jsonld": "^5.2.0", - "moment": "^2.29.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/web-crypto-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-+w+xTwRZMC3BRtJG2SJe350d6/9aElrJvrKEfFtGsTT+cHwVu30+e4VAqq5OibGNlcrDHJo6CC6y19T0r2dzGg==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "big-integer": "^1.6.48" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/x25519-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-PpqfH9jya0TuvSllrl2LqsH2hzFaoIiisJ66f/MDoSn3x8tEmYuZv1Pk+A0wLPWfm3RuqcweocSHWjfoqiBGoA==", - "dependencies": { - "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.54" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -3147,11 +2592,6 @@ "node": ">=10.13.0" } }, - "node_modules/@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, "node_modules/@types/codemirror": { "version": "5.60.5", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", @@ -3269,11 +2709,6 @@ "@types/estree": "*" } }, - "node_modules/@types/web": { - "version": "0.0.55", - "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.55.tgz", - "integrity": "sha512-YMH9aZrSJIMRMioCUwrgauI3iS/w2wRFN45Xxm0FE9Tt3hqaqkvOzjDFGsNjyKZzz7GJC0ilb+0tv59ytSUbrQ==" - }, "node_modules/@types/webpack-sources": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz", @@ -3468,18 +2903,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "devOptional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } + "dev": true }, "node_modules/accepts": { "version": "1.3.8", @@ -3609,27 +3033,6 @@ "node": ">=6" } }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3661,7 +3064,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -3670,7 +3073,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "devOptional": true, + "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -3695,13 +3098,13 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "devOptional": true + "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "devOptional": true, + "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -3711,7 +3114,7 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, + "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3726,13 +3129,13 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true + "dev": true }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, + "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -3769,18 +3172,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", @@ -3818,6 +3209,7 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -3838,21 +3230,11 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/asn1js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz", - "integrity": "sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA==", - "dependencies": { - "pvutils": "latest" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, "engines": { "node": ">=0.8" } @@ -3890,7 +3272,8 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "node_modules/atob": { "version": "2.1.2", @@ -3962,6 +3345,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, "engines": { "node": "*" } @@ -3969,7 +3353,8 @@ "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true }, "node_modules/babel-loader": { "version": "8.2.2", @@ -4077,7 +3462,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "node_modules/base": { "version": "0.11.2", @@ -4097,14 +3482,6 @@ "node": ">=0.10.0" } }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -4146,14 +3523,6 @@ "node": "^4.5.0 || >= 5.9" } }, - "node_modules/base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -4164,18 +3533,11 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4280,7 +3642,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4385,14 +3747,6 @@ "url": "https://opencollective.com/browserslist" } }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4420,7 +3774,8 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/buffer-indexof": { "version": "1.1.1", @@ -4437,7 +3792,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "devOptional": true + "dev": true }, "node_modules/bytes": { "version": "3.1.2", @@ -4500,6 +3855,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -4554,15 +3910,11 @@ "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, - "node_modules/canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "node_modules/chalk": { "version": "2.4.2", @@ -4814,6 +4166,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -4827,7 +4180,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4854,7 +4207,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "devOptional": true, + "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -4863,7 +4216,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "devOptional": true + "dev": true }, "node_modules/colord": { "version": "2.9.2", @@ -4881,6 +4234,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4888,47 +4242,6 @@ "node": ">= 0.8" } }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" - } - }, - "node_modules/command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -5014,7 +4327,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": true + "dev": true }, "node_modules/connect": { "version": "3.7.0", @@ -5059,7 +4372,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "devOptional": true + "dev": true }, "node_modules/content-disposition": { "version": "0.5.4", @@ -5256,7 +4569,8 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "node_modules/cors": { "version": "2.8.5", @@ -6047,6 +5361,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -6054,14 +5369,6 @@ "node": ">=0.10" } }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, "node_modules/date-format": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.5.tgz", @@ -6123,15 +5430,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -6167,6 +5465,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "dependencies": { "object-keys": "^1.0.12" }, @@ -6276,6 +5575,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, "engines": { "node": ">=0.4.0" } @@ -6284,7 +5584,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "devOptional": true + "dev": true }, "node_modules/depd": { "version": "1.1.2", @@ -6319,18 +5619,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -6466,6 +5754,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -6506,7 +5795,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -6530,6 +5819,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -6539,6 +5829,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -6653,61 +5944,12 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-module-lexer": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", "dev": true }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -6727,7 +5969,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.8.0" } @@ -6745,14 +5987,6 @@ "node": ">=8.0.0" } }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -6801,14 +6035,6 @@ "node": ">= 0.6" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7065,7 +6291,8 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "node_modules/extend-shallow": { "version": "3.0.2", @@ -7150,26 +6377,16 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, "engines": [ "node >=0.6.0" ] }, - "node_modules/factory.ts": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/factory.ts/-/factory.ts-0.5.2.tgz", - "integrity": "sha512-I4YDKuyMW+s2PocnWh/Ekv9wSStt/MNN1ZRb1qhy0Kv056ndlzbLHDsW9KEmTAqMpLI3BtjSqEdZ7ZfdnaXn9w==", - "dependencies": { - "clone-deep": "^4.0.1", - "source-map-support": "^0.5.19" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.2.11", @@ -7190,7 +6407,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fastq": { "version": "1.13.0", @@ -7213,19 +6431,6 @@ "node": ">=0.8.0" } }, - "node_modules/fetch-blob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", - "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==", - "engines": { - "node": "^10.17.0 || >=12.3.0" - }, - "peerDependenciesMeta": { - "domexception": { - "optional": true - } - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -7315,31 +6520,6 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -7399,6 +6579,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, "engines": { "node": "*" } @@ -7407,6 +6588,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -7482,7 +6664,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "devOptional": true + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -7501,13 +6683,14 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "devOptional": true, + "dev": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -7523,7 +6706,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -7532,7 +6715,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "devOptional": true, + "dev": true, "dependencies": { "number-is-nan": "^1.0.0" }, @@ -7544,7 +6727,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "devOptional": true, + "dev": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7558,7 +6741,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "devOptional": true, + "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -7566,11 +6749,6 @@ "node": ">=0.10.0" } }, - "node_modules/genson-js": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/genson-js/-/genson-js-0.0.5.tgz", - "integrity": "sha512-1i1y9MIGzTRkn4TusWQwLWLu8IJGHgSE+fbQRt1fy68ZKEq2GjDZI/7NUSZFOfTbHz8bgjP4iCIOcdYrgEsMBA==" - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7593,6 +6771,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7614,21 +6793,6 @@ "node": ">=6" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -7642,24 +6806,16 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "dependencies": { "assert-plus": "^1.0.0" } }, - "node_modules/git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "dependencies": { - "iniparser": "~1.0.5" - } - }, "node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "devOptional": true, + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7734,40 +6890,11 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, "engines": { "node": ">=4" } @@ -7777,6 +6904,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", + "dev": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -7789,6 +6917,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7803,12 +6932,14 @@ "node_modules/har-validator/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -7816,14 +6947,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -7837,6 +6960,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -7848,6 +6972,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -7862,7 +6987,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "devOptional": true + "dev": true }, "node_modules/has-value": { "version": "1.0.0", @@ -8236,6 +7361,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -8272,7 +7398,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "devOptional": true, + "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8325,7 +7451,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "devOptional": true, + "dev": true, "dependencies": { "minimatch": "^3.0.4" } @@ -8482,7 +7608,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8502,15 +7628,6 @@ "node": ">=10" } }, - "node_modules/iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true, - "engines": { - "node": "*" - } - }, "node_modules/inquirer": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.1.tgz", @@ -8606,10 +7723,6 @@ "node": ">=8" } }, - "node_modules/interfaces": { - "resolved": "../interfaces", - "link": true - }, "node_modules/internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -8623,19 +7736,6 @@ "node": ">=6" } }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -8703,17 +7803,6 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -8726,38 +7815,12 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", @@ -8786,6 +7849,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8850,7 +7914,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -8882,17 +7946,6 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8902,20 +7955,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -8953,6 +7992,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -8964,6 +8004,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8975,14 +8016,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -8992,38 +8025,11 @@ "node": ">=0.10.0" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "node_modules/is-unicode-supported": { "version": "0.1.0", @@ -9037,17 +8043,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -9079,7 +8074,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "devOptional": true + "dev": true }, "node_modules/isbinaryfile": { "version": "4.0.8", @@ -9103,6 +8098,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9110,7 +8106,8 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -9260,14 +8257,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jose": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.6.0.tgz", - "integrity": "sha512-0hNAkhMBNi4soKSAX4zYOFV+aqJlEz/4j4fregvasJzEVtjDChvWqRjPvHwLqr5hx28Ayr6bsOs1Kuj87V0O8w==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9288,7 +8277,8 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, "node_modules/jsesc": { "version": "2.5.2", @@ -9317,17 +8307,20 @@ "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "node_modules/json5": { "version": "2.2.0", @@ -9362,82 +8355,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonld": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-5.2.0.tgz", - "integrity": "sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw==", - "dependencies": { - "@digitalbazaar/http-client": "^1.1.0", - "canonicalize": "^1.0.1", - "lru-cache": "^6.0.0", - "rdf-canonize": "^3.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jsonld-checker": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/jsonld-checker/-/jsonld-checker-0.1.7.tgz", - "integrity": "sha512-AFBFjRttHzB5Q78SATl5Qhc3hQEnmiEqLuUIpfVx8bn5ODhO1M0IiV9PRPUMe6IZjedGWOZEmzieNIBs88EDVg==", - "dependencies": { - "jsonld": "^3.1.1", - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonld-checker/node_modules/jsonld": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-3.3.2.tgz", - "integrity": "sha512-DXqG/fdiG7eJ8FzvSd58bW8DQsulQR/gjLYUz9PxBP/WTTpB2HzjjdxSAx5aBHewJ0RiFAV/QcqGCJjxHvuIzw==", - "dependencies": { - "canonicalize": "^1.0.1", - "lru-cache": "^5.1.1", - "object.fromentries": "^2.0.2", - "rdf-canonize": "^2.0.1", - "request": "^2.88.0", - "semver": "^6.3.0", - "xmldom": "0.1.19" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonld-checker/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/jsonld-checker/node_modules/rdf-canonize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", - "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", - "dependencies": { - "semver": "^6.3.0", - "setimmediate": "^1.0.5" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonld-checker/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/jsonld-checker/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -9451,6 +8368,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -9630,6 +8548,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9643,57 +8562,6 @@ "node": ">= 8" } }, - "node_modules/ky": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", - "integrity": "sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/ky?sponsor=1" - } - }, - "node_modules/ky-universal": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.8.2.tgz", - "integrity": "sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "node-fetch": "3.0.0-beta.9" - }, - "engines": { - "node": ">=10.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/ky-universal?sponsor=1" - }, - "peerDependencies": { - "ky": ">=0.17.0", - "web-streams-polyfill": ">=2.0.0" - }, - "peerDependenciesMeta": { - "web-streams-polyfill": { - "optional": true - } - } - }, - "node_modules/ky-universal/node_modules/node-fetch": { - "version": "3.0.0-beta.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", - "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==", - "dependencies": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^2.1.1" - }, - "engines": { - "node": "^10.17 || >=12.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/less": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", @@ -9872,7 +8740,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "devOptional": true + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -9886,12 +8754,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -10034,6 +8896,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10330,6 +9193,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -10338,6 +9202,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -10438,7 +9303,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "devOptional": true, + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10450,7 +9315,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "devOptional": true + "dev": true }, "node_modules/minipass": { "version": "3.1.6", @@ -10589,7 +9454,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "dev": true }, "node_modules/multicast-dns": { "version": "6.2.3", @@ -10661,6 +9526,7 @@ "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, "optional": true, "dependencies": { "debug": "^3.2.6", @@ -10678,6 +9544,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "optional": true, "dependencies": { "ms": "^2.1.1" @@ -10696,336 +9563,50 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true + "dev": true }, - "node_modules/neon-cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", - "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", - "optional": true, + "node_modules/ngx-file-drop": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-12.0.0.tgz", + "integrity": "sha512-ywoKbGLX4rPc9cNfAKpSl1YhFcx9qB56XrcQHL1vkJ0WSwDYFo8CIpy2iCjFXqOyY+03NkRIb8d8RIDS+ZMv7Q==", "dependencies": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "bin": { - "neon": "bin/cli.js" + "tslib": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10.0.0", + "npm": ">= 6.9.0" + }, + "peerDependencies": { + "@angular/common": ">=12.0.0", + "@angular/core": ">=12.0.0" } }, - "node_modules/neon-cli/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true, - "engines": { - "node": ">=4" + "node_modules/ngx-toastr": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-14.2.2.tgz", + "integrity": "sha512-/Ajr9E0llr51Zij8WgnxQpe7a5JK+k1n07/uWJcQ112OBH0GCktHi8M8QfGvw5Ih67hG8iowrT+aHXHS49gZcQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=12.0.0-0", + "@angular/core": ">=12.0.0-0", + "@angular/platform-browser": ">=12.0.0-0" } }, - "node_modules/neon-cli/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true, - "engines": { - "node": ">=4" - } + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, - "node_modules/neon-cli/node_modules/chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "node_modules/neon-cli/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "node_modules/neon-cli/node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/neon-cli/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/neon-cli/node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/neon-cli/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/neon-cli/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "optional": true - }, - "node_modules/neon-cli/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/neon-cli/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/neon-cli/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "optional": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ngx-file-drop": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-12.0.0.tgz", - "integrity": "sha512-ywoKbGLX4rPc9cNfAKpSl1YhFcx9qB56XrcQHL1vkJ0WSwDYFo8CIpy2iCjFXqOyY+03NkRIb8d8RIDS+ZMv7Q==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 6.9.0" - }, - "peerDependencies": { - "@angular/common": ">=12.0.0", - "@angular/core": ">=12.0.0" - } - }, - "node_modules/ngx-toastr": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-14.2.2.tgz", - "integrity": "sha512-/Ajr9E0llr51Zij8WgnxQpe7a5JK+k1n07/uWJcQ112OBH0GCktHi8M8QfGvw5Ih67hG8iowrT+aHXHS49gZcQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": ">=12.0.0-0", - "@angular/core": ">=12.0.0-0", - "@angular/platform-browser": ">=12.0.0-0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" + "node": ">= 6.0.0" } }, "node_modules/node-gyp": { @@ -11052,16 +9633,6 @@ "node": ">= 10.12.0" } }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, "node_modules/node-gyp/node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -11092,138 +9663,12 @@ "node": ">= 8" } }, - "node_modules/node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "node_modules/node-pre-gyp/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/node-pre-gyp/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/node-pre-gyp/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/node-pre-gyp/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, "node_modules/node-releases": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11258,7 +9703,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "devOptional": true, + "dev": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } @@ -11279,7 +9724,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "devOptional": true + "dev": true }, "node_modules/npm-package-arg": { "version": "8.1.5", @@ -11295,17 +9740,6 @@ "node": ">=10" } }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "node_modules/npm-pick-manifest": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", @@ -11351,7 +9785,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "devOptional": true, + "dev": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -11381,7 +9815,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11390,6 +9824,7 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, "engines": { "node": "*" } @@ -11398,7 +9833,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11488,14 +9923,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", @@ -11516,6 +9943,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { "node": ">= 0.4" } @@ -11536,6 +9964,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -11549,22 +9978,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -11608,7 +10021,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, + "dev": true, "dependencies": { "wrappy": "1" } @@ -11768,34 +10181,15 @@ "url-parse": "^1.4.3" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -12083,7 +10477,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -12142,7 +10536,8 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "node_modules/picocolors": { "version": "1.0.0", @@ -14258,7 +12653,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true + "dev": true }, "node_modules/promise-inflight": { "version": "1.0.1", @@ -14301,7 +12696,8 @@ "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -14335,26 +12731,11 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/pvtsutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.2.tgz", - "integrity": "sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -14412,27 +12793,6 @@ } ] }, - "node_modules/quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.0" - } - }, - "node_modules/quickly-copy-file/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14543,38 +12903,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true - }, - "node_modules/rdf-canonize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.0.0.tgz", - "integrity": "sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w==", - "dependencies": { - "setimmediate": "^1.0.5" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -14622,15 +12950,6 @@ "node": ">=8.10.0" } }, - "node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -14778,6 +13097,7 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -14808,6 +13128,7 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, "engines": { "node": ">=0.6" } @@ -14817,6 +13138,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, "bin": { "uuid": "bin/uuid" } @@ -14834,6 +13156,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -15001,11 +13324,6 @@ "node": ">=0.10.0" } }, - "node_modules/rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", @@ -15036,20 +13354,11 @@ "inherits": "^2.0.1" } }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "optional": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.12.0" } @@ -15077,21 +13386,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "dependencies": { - "rx-lite": "*" - } - }, "node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -15194,7 +13488,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "devOptional": true + "dev": true }, "node_modules/schema-utils": { "version": "2.7.1", @@ -15245,20 +13539,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -15346,31 +13626,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", @@ -15459,7 +13714,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "devOptional": true + "dev": true }, "node_modules/set-value": { "version": "2.0.1", @@ -15497,11 +13752,6 @@ "node": ">=0.10.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -15524,6 +13774,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, "dependencies": { "kind-of": "^6.0.2" }, @@ -15552,24 +13803,11 @@ "node": ">=0.10.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true + "dev": true }, "node_modules/slash": { "version": "3.0.0", @@ -15994,6 +14232,7 @@ "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16003,6 +14242,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -16020,38 +14260,6 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "optional": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "optional": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "optional": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "optional": true - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -16098,6 +14306,7 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -16293,7 +14502,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16303,35 +14512,11 @@ "node": ">=8" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16348,15 +14533,6 @@ "node": ">=0.10.0" } }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/style-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", @@ -16552,22 +14728,6 @@ "node": ">=0.10" } }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -16699,31 +14859,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -16734,7 +14869,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "devOptional": true + "dev": true }, "node_modules/thunky": { "version": "1.1.0", @@ -16752,7 +14887,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "devOptional": true, + "dev": true, "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -16829,16 +14964,11 @@ "node": ">=0.6" } }, - "node_modules/toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -16847,11 +14977,6 @@ "node": ">=0.8" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -16861,24 +14986,6 @@ "tree-kill": "cli.js" } }, - "node_modules/ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "dependencies": { - "rsvp": "^3.5.0" - } - }, - "node_modules/ts-typed-json/node_modules/rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true, - "engines": { - "node": "0.12.* || 4.* || 6.* || >= 7.*" - } - }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -16888,6 +14995,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -16898,7 +15006,8 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true }, "node_modules/type-fest": { "version": "0.21.3", @@ -16938,12 +15047,6 @@ "node": ">=4.2.0" } }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, "node_modules/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", @@ -16963,32 +15066,6 @@ "node": "*" } }, - "node_modules/uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -17157,6 +15234,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -17223,24 +15301,14 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "optional": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "uuid": "dist/bin/uuid" } }, "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "devOptional": true, + "dev": true, "dependencies": { "builtins": "^1.0.3" } @@ -17258,6 +15326,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "engines": [ "node >=0.6.0" ], @@ -17307,32 +15376,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webcrypto-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.1.tgz", - "integrity": "sha512-Gw2zLzYSJ7Imp5lLDu3CcWB5oTTACMDEE2PjoLfttGgIhd7BfackBdVgEzd9ZM/i65gpNq0+IelL0JZ48QwzNg==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "@types/web": "^0.0.55", - "asn1js": "^2.2.0", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, "node_modules/webpack": { "version": "5.44.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.44.0.tgz", @@ -18312,15 +16355,6 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -18333,21 +16367,6 @@ "which": "bin/which" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -18358,7 +16377,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "devOptional": true, + "dev": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -18369,25 +16388,6 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "optional": true - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -18442,7 +16442,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true + "dev": true }, "node_modules/ws": { "version": "8.2.3", @@ -18465,15 +16465,6 @@ } } }, - "node_modules/xmldom": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", - "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=", - "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", - "engines": { - "node": ">=0.1" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -18486,7 +16477,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yaml": { "version": "1.10.2", @@ -20120,11 +18112,6 @@ "to-fast-properties": "^2.0.0" } }, - "@bitauth/libauth": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@bitauth/libauth/-/libauth-1.19.1.tgz", - "integrity": "sha512-R524tD5VwOt3QRHr7N518nqTVR/HKgfWL4LypekcGuNQN8R4PWScvuRcRzrY39A28kLztMv+TJdiKuMNbkU1ug==" - }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -20146,40 +18133,6 @@ "tslib": "^2.3.0" } }, - "@did-core/data-model": { - "version": "0.1.1-unstable.15", - "resolved": "https://registry.npmjs.org/@did-core/data-model/-/data-model-0.1.1-unstable.15.tgz", - "integrity": "sha512-l7gxLxegcXW7389G+j6o+S24lS8uasmJx5txWpW3QadNvOawKwvWn8bV59SdHSK806xNzIZaCLKmXKxebs8yAQ==", - "requires": { - "factory.ts": "^0.5.1" - } - }, - "@did-core/did-ld-json": { - "version": "0.1.1-unstable.15", - "resolved": "https://registry.npmjs.org/@did-core/did-ld-json/-/did-ld-json-0.1.1-unstable.15.tgz", - "integrity": "sha512-p2jKRxSU+eJJqd+ewCklYp/XZ6ysISk8VU2/kANCoB/WwUy/kVgw2rUNScRDXw2utr9Qj36P8EZTYi4aj7vRCQ==", - "requires": { - "@transmute/did-context": "^0.6.1-unstable.25", - "jsonld-checker": "^0.1.6" - }, - "dependencies": { - "@transmute/did-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" - } - } - }, - "@digitalbazaar/http-client": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-1.2.0.tgz", - "integrity": "sha512-W9KQQ5pUJcaR0I4c2HPJC0a7kRbZApIorZgPnEDwMBgj16iQzutGLrCXYaZOmxqVLVNqqlQ4aUJh+HBQZy4W6Q==", - "requires": { - "esm": "^3.2.22", - "ky": "^0.25.1", - "ky-universal": "^0.8.2" - } - }, "@discoveryjs/json-ext": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", @@ -20191,6 +18144,16 @@ "resolved": "https://registry.npmjs.org/@enonic/global-polyfill/-/global-polyfill-1.0.0.tgz", "integrity": "sha512-UYw+d/dNC9z8CqrTc9zHzOrDr9xypFN0hu5fhc8dKxdhtvzfsf1EipwG1wB5XRm61G6KOeK/wEM1vqeGM/0dag==" }, + "@guardian/interfaces": { + "version": "file:../interfaces", + "requires": { + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -20210,34 +18173,6 @@ "schema-utils": "^2.7.0" } }, - "@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "requires": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "requires": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "optional": true, - "requires": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - } - }, "@ngtools/webpack": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.1.4.tgz", @@ -20330,480 +18265,52 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "requires": { - "infer-owner": "^1.0.4" - } - }, - "@npmcli/run-script": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", - "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - } - }, - "@peculiar/asn1-schema": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", - "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", - "requires": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.0" - } - }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@peculiar/webcrypto": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.3.2.tgz", - "integrity": "sha512-oUgNj+8oT7uROEMEpZZ3U+kZjyxj1KXuvA8P5kiMUveTya9eyS8KTqu/dzdEtYC3u7dvjknVz+0sUfkWOBHfQg==", - "requires": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1", - "webcrypto-core": "^1.7.1" - } - }, - "@schematics/angular": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.1.4.tgz", - "integrity": "sha512-xGqgGI6GWk4EFdKis8FmSESxoLgjnLQbaRE1t1KZCkSKJzqkOj0R9wiDrtZfcrbPxIkLL+3fAk2ThwwPznT6yw==", - "dev": true, - "requires": { - "@angular-devkit/core": "12.1.4", - "@angular-devkit/schematics": "12.1.4", - "jsonc-parser": "3.0.0" - } - }, - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", - "dev": true - }, - "@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "requires": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "requires": { - "@stablelib/int": "^1.0.1" - } - }, - "@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "requires": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "requires": { - "@stablelib/bytes": "^1.0.1" - } - }, - "@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "@stablelib/x25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz", - "integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==", - "requires": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@transmute/bls12381-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-X1SgUW/uAVCGiDHA8SQD1wqygt/A32GSJ5b8fceW4P0SBJYWQZmK2bowqsUiAZkvvD82S/ErcxCY9Qz9SFdPCQ==", - "requires": { - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.54" - } - }, - "@transmute/credentials-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-PK8jQHUsZ1y7c7TT8CiyuhK/BzW8gZ8bXqsLsVdOC2LoC8AGZLywN29ttdXklPiwNRufLZXwCYRzzRKlHlfg+w==" - }, - "@transmute/did-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-qfdzrksimhp+Hgzgn37zM3+0zrwR6AjQyRv0M5I/VrFD1mZ48SEgYuzKJsSNo0/zBQHMiJOHU8OgWBC1mjPptw==" - }, - "@transmute/did-key-common": { - "version": "0.3.0-unstable.5", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.3.0-unstable.5.tgz", - "integrity": "sha512-8g8rPwzw8phRcO6j7Pdef7POB8Q+2mQRg+7rB6PX1wqxsAR6qFsaQRN5q1Odb6UOih1bZ2Dbnas1eArp6lNoSQ==", - "requires": { - "@did-core/data-model": "^0.1.1-unstable.13", - "@did-core/did-ld-json": "^0.1.1-unstable.13", - "@transmute/did-context": "^0.6.1-unstable.36", - "@transmute/ld-key-pair": "^0.6.1-unstable.36", - "@transmute/security-context": "^0.6.1-unstable.36" - }, - "dependencies": { - "@transmute/did-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" - }, - "@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "@transmute/security-context": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.6.1-unstable.37.tgz", - "integrity": "sha512-GtLmG65qlORrz/2S4I74DT+vA4+qXsFxrMr0cNOXjUqZBd/AW1PTrFnryLF9907BfoiD58HC9qb1WVGWjSlBYw==" - } - } - }, - "@transmute/did-key-ed25519": { - "version": "0.3.0-unstable.5", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.3.0-unstable.5.tgz", - "integrity": "sha512-yYnuCEZMVa7b+zmYgKby+49Rgnq045RWoR5ddG9n6UxDowFxrKuwZeN9imInCZcBY9mzYXm2yutqTXULuptUow==", - "requires": { - "@transmute/did-key-common": "^0.3.0-unstable.5", - "@transmute/ed25519-key-pair": "^0.6.1-unstable.37" - }, - "dependencies": { - "@transmute/ed25519-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-l34yzE/QnQwmdk5xY9g2kD55e4XPp/jTZQzPu7I6J4Ar+bMaL/0RLL/pgvwyI7qUpsddxRf4WPZCCcZveqPcdA==", - "requires": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "@transmute/x25519-key-pair": "^0.6.1-unstable.37" - } - }, - "@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "@transmute/x25519-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-j6zR9IoJmgVhUCVH8YVGpsgQf99SxPKZ00LGnUheBAQzgj2lULGBQ44G+GqBCdzfT0qweptTfp1RjqqHEpizeA==", - "requires": { - "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.6.1-unstable.37" - } - } - } - }, - "@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.2", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.2.tgz", - "integrity": "sha512-B0jg348Z8F0+lGWQic28xVxBZiXOJYbisWp6EfP4fQdMV3G4sES9YubpdiuoZHjesDZrf6xZ7cEB81mjGJMUkA==", - "requires": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.2", - "@transmute/x25519-key-pair": "^0.7.0-unstable.2" - } - }, - "@transmute/ed25519-signature-2018": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.54.tgz", - "integrity": "sha512-tZsisYd3dbNZkoZg2qNmg0iuaGsH+MOJXP26F0z+a1iUfMQd99Z6NlMWo+9xAlY2sRf3RDZWBrpS/a5jigy8bg==", - "requires": { - "@transmute/ed25519-key-pair": "0.7.0-unstable.2", - "@transmute/jose-ld": "^0.7.0-unstable.54", - "@transmute/security-context": "^0.7.0-unstable.54", - "jsonld": "^5.2.0" - } - }, - "@transmute/jose-ld": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.54.tgz", - "integrity": "sha512-0h6fs2CaaAF6plQVdkP6ZLQfok40xDintvsba+eHxSO8BGdRO8MjdHu0YGejZvj2QY82Kvj2wzqrU1KamRxgEQ==", - "requires": { - "@peculiar/webcrypto": "^1.1.6", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "base64url": "^3.0.1", - "jose": "^4.3.8", - "web-streams-polyfill": "^3.0.3" - } - }, - "@transmute/json-web-signature": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.54.tgz", - "integrity": "sha512-KpLnGaUdo6fgt9ARTVHMc+duWMciQsnOeq9ADdiNZ/Orns/FMHXjN04UyFkTP9EdTz0L5zdojMseAheWJG5W0A==", - "requires": { - "@transmute/bls12381-key-pair": "^0.7.0-unstable.54", - "@transmute/ed25519-key-pair": "^0.7.0-unstable.54", - "@transmute/jose-ld": "^0.7.0-unstable.54", - "@transmute/secp256k1-key-pair": "^0.7.0-unstable.54", - "@transmute/security-context": "^0.7.0-unstable.54", - "@transmute/web-crypto-key-pair": "^0.7.0-unstable.54", - "jsonld": "^5.2.0" - }, - "dependencies": { - "@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-AdRXM3x+W/k470WXgxLqpZBGMX44Nq+/outRnmKhrgYcmAjwAotFyTbX8p5qfcsbGsWlXRSsirsgODX/SHZ9QQ==", - "requires": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "@transmute/x25519-key-pair": "^0.7.0-unstable.54" - } - } - } - }, - "@transmute/jsonld-schema": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.54.tgz", - "integrity": "sha512-HN7wr2gJxEFO+AzQ+1VqeBKXophFGKhZCQK1tj/QNLgEyjR9p7fs3HmYI9cmAOV22HQfF/nSfUa0iWyTstjuqA==", - "requires": { - "ajv": "^8.6.1", - "genson-js": "0.0.5", - "jsonld": "^5.2.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - } - } - }, - "@transmute/ld-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-8t0OGYuUPGGzPFxMZpk6Tnsnv/1/3cVUOHDfHexat0iAL42f/48UctLras6HwY6LoTZWDZDDZGy2SDH8BTNXmg==" - }, - "@transmute/linked-data-proof": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.54.tgz", - "integrity": "sha512-fYelGj9FvItsNYw9mnkk034Z6qavOa/gChNDfSj0gFOLiSWu4AbPaNPY1qn3oCGVDj3M/WFXJ7pSjE0lh+YGbA==", - "requires": { - "@transmute/did-key-ed25519": "^0.3.0-unstable.5", - "serialize-error": "^7.0.1" - } - }, - "@transmute/secp256k1-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-KjGl9LIwNz9geFDyMFBB1d4fw0p1aa5fYjwtgYHxRDLS8HUCUuQeD0Jtp2jk0WS3lCz8b+TCYQKWSngEItRjcw==", - "requires": { - "@bitauth/libauth": "^1.18.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "secp256k1": "^4.0.2" - } - }, - "@transmute/security-context": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.54.tgz", - "integrity": "sha512-2U5Q6mPM3DzMBKHwKAVLNFLjfaPIS9rLNafG06LHA/gXiz5cUHbokWrbqpGpBoCeHBTC0B+YPwjA4JuhGXPlJw==" - }, - "@transmute/vc.js": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.54.tgz", - "integrity": "sha512-eA1qVZcVMOl3/76nC7CYVYUOlvPMvEgCLydpyVi9VNh7ZMi9B2l57y0ViCVm0XQhIhZaH2uD2IK7ZATj22A5eQ==", + "dev": true, "requires": { - "@transmute/did-key-ed25519": "^0.3.0-unstable.5", - "@transmute/json-web-signature": "^0.7.0-unstable.54", - "@transmute/jsonld-schema": "^0.7.0-unstable.54", - "@transmute/linked-data-proof": "^0.7.0-unstable.54", - "jsonld": "^5.2.0", - "moment": "^2.29.1" + "infer-owner": "^1.0.4" } }, - "@transmute/web-crypto-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-+w+xTwRZMC3BRtJG2SJe350d6/9aElrJvrKEfFtGsTT+cHwVu30+e4VAqq5OibGNlcrDHJo6CC6y19T0r2dzGg==", + "@npmcli/run-script": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", + "dev": true, "requires": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.7.0-unstable.54", - "big-integer": "^1.6.48" + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" } }, - "@transmute/x25519-key-pair": { - "version": "0.7.0-unstable.54", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.54.tgz", - "integrity": "sha512-PpqfH9jya0TuvSllrl2LqsH2hzFaoIiisJ66f/MDoSn3x8tEmYuZv1Pk+A0wLPWfm3RuqcweocSHWjfoqiBGoA==", + "@schematics/angular": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.1.4.tgz", + "integrity": "sha512-xGqgGI6GWk4EFdKis8FmSESxoLgjnLQbaRE1t1KZCkSKJzqkOj0R9wiDrtZfcrbPxIkLL+3fAk2ThwwPznT6yw==", + "dev": true, "requires": { - "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.54" + "@angular-devkit/core": "12.1.4", + "@angular-devkit/schematics": "12.1.4", + "jsonc-parser": "3.0.0" } }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true }, - "@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, "@types/codemirror": { "version": "5.60.5", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", @@ -20921,11 +18428,6 @@ "@types/estree": "*" } }, - "@types/web": { - "version": "0.0.55", - "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.55.tgz", - "integrity": "sha512-YMH9aZrSJIMRMioCUwrgauI3iS/w2wRFN45Xxm0FE9Tt3hqaqkvOzjDFGsNjyKZzz7GJC0ilb+0tv59ytSUbrQ==" - }, "@types/webpack-sources": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz", @@ -21119,15 +18621,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "devOptional": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } + "dev": true }, "accepts": { "version": "1.3.8", @@ -21219,23 +18713,6 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true - } - } - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -21255,13 +18732,13 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true + "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "devOptional": true, + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -21280,13 +18757,13 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "devOptional": true + "dev": true }, "are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "devOptional": true, + "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -21296,7 +18773,7 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -21311,13 +18788,13 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true + "dev": true }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -21347,15 +18824,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "requires": { - "typical": "^2.6.1" - } - }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", @@ -21384,6 +18852,7 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -21406,18 +18875,11 @@ } } }, - "asn1js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz", - "integrity": "sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA==", - "requires": { - "pvutils": "latest" - } - }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -21449,7 +18911,8 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "atob": { "version": "2.1.2", @@ -21499,12 +18962,14 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true }, "babel-loader": { "version": "8.2.2", @@ -21591,7 +19056,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "base": { "version": "0.11.2", @@ -21619,14 +19084,6 @@ } } }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -21639,11 +19096,6 @@ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, - "base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" - }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -21654,15 +19106,11 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -21760,7 +19208,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -21852,14 +19300,6 @@ "picocolors": "^1.0.0" } }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -21873,7 +19313,8 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "buffer-indexof": { "version": "1.1.1", @@ -21890,7 +19331,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "devOptional": true + "dev": true }, "bytes": { "version": "3.1.2", @@ -21944,6 +19385,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -21985,15 +19427,11 @@ "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, - "canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "chalk": { "version": "2.4.2", @@ -22184,6 +19622,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, "requires": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -22194,7 +19633,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "devOptional": true + "dev": true }, "codemirror": { "version": "5.65.2", @@ -22215,7 +19654,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "devOptional": true, + "dev": true, "requires": { "color-name": "1.1.3" } @@ -22224,7 +19663,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "devOptional": true + "dev": true }, "colord": { "version": "2.9.2", @@ -22242,42 +19681,11 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, - "command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "requires": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - } - }, - "command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "requires": { - "array-back": "^2.0.0" - } - }, - "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - } - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -22353,7 +19761,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": true + "dev": true }, "connect": { "version": "3.7.0", @@ -22394,7 +19802,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "devOptional": true + "dev": true }, "content-disposition": { "version": "0.5.4", @@ -22544,7 +19952,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cors": { "version": "2.8.5", @@ -23149,15 +20558,11 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, "date-format": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.5.tgz", @@ -23199,12 +20604,6 @@ "regexp.prototype.flags": "^1.2.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true - }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -23234,6 +20633,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -23319,13 +20719,14 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "devOptional": true + "dev": true }, "depd": { "version": "1.1.2", @@ -23354,12 +20755,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true - }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -23476,6 +20871,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -23518,7 +20914,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true + "dev": true }, "emojis-list": { "version": "3.0.0", @@ -23536,6 +20932,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, "optional": true, "requires": { "iconv-lite": "^0.6.2" @@ -23545,6 +20942,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -23640,49 +21038,12 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, "es-module-lexer": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", "dev": true }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -23699,7 +21060,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "devOptional": true + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -23711,11 +21072,6 @@ "estraverse": "^4.1.1" } }, - "esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" - }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -23751,11 +21107,6 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -23978,7 +21329,8 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "extend-shallow": { "version": "3.0.2", @@ -24046,21 +21398,14 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "factory.ts": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/factory.ts/-/factory.ts-0.5.2.tgz", - "integrity": "sha512-I4YDKuyMW+s2PocnWh/Ekv9wSStt/MNN1ZRb1qhy0Kv056ndlzbLHDsW9KEmTAqMpLI3BtjSqEdZ7ZfdnaXn9w==", - "requires": { - "clone-deep": "^4.0.1", - "source-map-support": "^0.5.19" - } + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "fast-glob": { "version": "3.2.11", @@ -24078,7 +21423,8 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fastq": { "version": "1.13.0", @@ -24098,11 +21444,6 @@ "websocket-driver": ">=0.5.1" } }, - "fetch-blob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", - "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==" - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -24176,27 +21517,6 @@ "pkg-dir": "^4.1.0" } }, - "find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "requires": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -24234,12 +21554,14 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -24297,7 +21619,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "devOptional": true + "dev": true }, "fsevents": { "version": "2.3.2", @@ -24309,13 +21631,14 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "devOptional": true, + "dev": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -24331,13 +21654,13 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "devOptional": true + "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "devOptional": true, + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -24346,7 +21669,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "devOptional": true, + "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -24357,18 +21680,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "devOptional": true, + "dev": true, "requires": { "ansi-regex": "^2.0.0" } } } }, - "genson-js": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/genson-js/-/genson-js-0.0.5.tgz", - "integrity": "sha512-1i1y9MIGzTRkn4TusWQwLWLu8IJGHgSE+fbQRt1fy68ZKEq2GjDZI/7NUSZFOfTbHz8bgjP4iCIOcdYrgEsMBA==" - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -24385,6 +21703,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -24400,15 +21719,6 @@ "pump": "^3.0.0" } }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -24419,24 +21729,16 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, - "git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "requires": { - "iniparser": "~1.0.5" - } - }, "glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "devOptional": true, + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -24493,36 +21795,17 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } - } - }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -24532,6 +21815,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -24542,7 +21826,8 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -24550,15 +21835,11 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -24568,12 +21849,14 @@ "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -24582,7 +21865,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "devOptional": true + "dev": true }, "has-value": { "version": "1.0.0", @@ -24910,6 +22193,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -24939,7 +22223,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "devOptional": true, + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -24967,7 +22251,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "devOptional": true, + "dev": true, "requires": { "minimatch": "^3.0.4" } @@ -25081,7 +22365,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -25098,12 +22382,6 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, - "iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true - }, "inquirer": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.1.tgz", @@ -25177,16 +22455,6 @@ } } }, - "interfaces": { - "version": "file:../interfaces", - "requires": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -25197,16 +22465,6 @@ "ipaddr.js": "^1.9.0" } }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -25256,14 +22514,6 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -25273,26 +22523,12 @@ "binary-extensions": "^2.0.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, "is-core-module": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", @@ -25315,6 +22551,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -25355,7 +22592,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true + "dev": true }, "is-glob": { "version": "4.0.3", @@ -25378,25 +22615,12 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -25425,6 +22649,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "requires": { "isobject": "^3.0.1" } @@ -25433,42 +22658,23 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-unicode-supported": { "version": "0.1.0", @@ -25476,14 +22682,6 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, "is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -25509,7 +22707,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "devOptional": true + "dev": true }, "isbinaryfile": { "version": "4.0.8", @@ -25526,12 +22724,14 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -25650,11 +22850,6 @@ } } }, - "jose": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.6.0.tgz", - "integrity": "sha512-0hNAkhMBNi4soKSAX4zYOFV+aqJlEz/4j4fregvasJzEVtjDChvWqRjPvHwLqr5hx28Ayr6bsOs1Kuj87V0O8w==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -25672,7 +22867,8 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, "jsesc": { "version": "2.5.2", @@ -25695,17 +22891,20 @@ "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json5": { "version": "2.2.0", @@ -25732,69 +22931,6 @@ "universalify": "^2.0.0" } }, - "jsonld": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-5.2.0.tgz", - "integrity": "sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw==", - "requires": { - "@digitalbazaar/http-client": "^1.1.0", - "canonicalize": "^1.0.1", - "lru-cache": "^6.0.0", - "rdf-canonize": "^3.0.0" - } - }, - "jsonld-checker": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/jsonld-checker/-/jsonld-checker-0.1.7.tgz", - "integrity": "sha512-AFBFjRttHzB5Q78SATl5Qhc3hQEnmiEqLuUIpfVx8bn5ODhO1M0IiV9PRPUMe6IZjedGWOZEmzieNIBs88EDVg==", - "requires": { - "jsonld": "^3.1.1", - "node-fetch": "^2.6.1" - }, - "dependencies": { - "jsonld": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-3.3.2.tgz", - "integrity": "sha512-DXqG/fdiG7eJ8FzvSd58bW8DQsulQR/gjLYUz9PxBP/WTTpB2HzjjdxSAx5aBHewJ0RiFAV/QcqGCJjxHvuIzw==", - "requires": { - "canonicalize": "^1.0.1", - "lru-cache": "^5.1.1", - "object.fromentries": "^2.0.2", - "rdf-canonize": "^2.0.1", - "request": "^2.88.0", - "semver": "^6.3.0", - "xmldom": "0.1.19" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "rdf-canonize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", - "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", - "requires": { - "semver": "^6.3.0", - "setimmediate": "^1.0.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -25805,6 +22941,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -25948,7 +23085,8 @@ "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, "klona": { "version": "2.0.5", @@ -25956,31 +23094,6 @@ "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true }, - "ky": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", - "integrity": "sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==" - }, - "ky-universal": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.8.2.tgz", - "integrity": "sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==", - "requires": { - "abort-controller": "^3.0.0", - "node-fetch": "3.0.0-beta.9" - }, - "dependencies": { - "node-fetch": { - "version": "3.0.0-beta.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", - "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==", - "requires": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^2.1.1" - } - } - } - }, "less": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", @@ -26107,7 +23220,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "devOptional": true + "dev": true }, "lodash.debounce": { "version": "4.0.8", @@ -26121,12 +23234,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -26228,6 +23335,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -26473,12 +23581,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -26552,7 +23662,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "devOptional": true, + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -26561,7 +23671,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "devOptional": true + "dev": true }, "minipass": { "version": "3.1.6", @@ -26665,7 +23775,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "dev": true }, "multicast-dns": { "version": "6.2.3", @@ -26725,6 +23835,7 @@ "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, "optional": true, "requires": { "debug": "^3.2.6", @@ -26736,6 +23847,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "optional": true, "requires": { "ms": "^2.1.1" @@ -26753,214 +23865,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true - }, - "neon-cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", - "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", - "optional": true, - "requires": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true - }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "optional": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "optional": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "optional": true - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "optional": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "optional": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } + "dev": true }, "ngx-file-drop": { "version": "12.0.0", @@ -26984,19 +23889,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", @@ -27025,123 +23917,19 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, + "dev": true, "requires": { - "glob": "^7.1.3" + "abbrev": "1" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "isexe": "^2.0.0" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true } } }, @@ -27151,16 +23939,6 @@ "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -27183,7 +23961,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "devOptional": true, + "dev": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -27201,7 +23979,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "devOptional": true + "dev": true }, "npm-package-arg": { "version": "8.1.5", @@ -27214,17 +23992,6 @@ "validate-npm-package-name": "^3.0.0" } }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "npm-pick-manifest": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", @@ -27264,7 +24031,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "devOptional": true, + "dev": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -27291,18 +24058,19 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "devOptional": true + "dev": true }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "devOptional": true + "dev": true }, "object-copy": { "version": "0.1.0", @@ -27372,11 +24140,6 @@ } } }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, "object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", @@ -27390,7 +24153,8 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -27405,6 +24169,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -27412,16 +24177,6 @@ "object-keys": "^1.1.1" } }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -27456,7 +24211,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, + "dev": true, "requires": { "wrappy": "1" } @@ -27575,27 +24330,11 @@ "url-parse": "^1.4.3" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "devOptional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "dev": true }, "p-defer": { "version": "1.0.0", @@ -27828,7 +24567,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "devOptional": true + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -27875,7 +24614,8 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "picocolors": { "version": "1.0.0", @@ -29414,7 +26154,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true + "dev": true }, "promise-inflight": { "version": "1.0.1", @@ -29451,7 +26191,8 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true }, "public-encrypt": { "version": "4.0.3", @@ -29486,20 +26227,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pvtsutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.2.tgz", - "integrity": "sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "qjobs": { "version": "1.2.0", @@ -29531,26 +26260,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "requires": { - "mkdirp": "~0.5.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -29634,34 +26343,6 @@ } } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true - } - } - }, - "rdf-canonize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.0.0.tgz", - "integrity": "sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w==", - "requires": { - "setimmediate": "^1.0.5" - } - }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -29700,12 +26381,6 @@ "picomatch": "^2.2.1" } }, - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true - }, "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -29827,6 +26502,7 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -29853,12 +26529,14 @@ "qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, @@ -29871,7 +26549,8 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true }, "require-main-filename": { "version": "2.0.0", @@ -29989,11 +26668,6 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", @@ -30018,17 +26692,11 @@ "inherits": "^2.0.1" } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "optional": true - }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "devOptional": true + "dev": true }, "run-parallel": { "version": "1.2.0", @@ -30039,21 +26707,6 @@ "queue-microtask": "^1.2.2" } }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "requires": { - "rx-lite": "*" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -30111,7 +26764,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "devOptional": true + "dev": true }, "schema-utils": { "version": "2.7.1", @@ -30151,16 +26804,6 @@ } } }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -30237,21 +26880,6 @@ } } }, - "serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "requires": { - "type-fest": "^0.13.1" - }, - "dependencies": { - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - } - } - }, "serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", @@ -30333,7 +26961,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "devOptional": true + "dev": true }, "set-value": { "version": "2.0.1", @@ -30364,11 +26992,6 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -30388,6 +27011,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, "requires": { "kind-of": "^6.0.2" } @@ -30407,21 +27031,11 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true + "dev": true }, "slash": { "version": "3.0.0", @@ -30762,6 +27376,7 @@ "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -30770,7 +27385,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -30786,38 +27402,6 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "optional": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "optional": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "optional": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "optional": true - }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -30858,6 +27442,7 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -31012,36 +27597,18 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -31052,12 +27619,6 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true - }, "style-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", @@ -31196,19 +27757,6 @@ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true }, - "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - } - }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -31306,27 +27854,6 @@ } } }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -31337,7 +27864,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "devOptional": true + "dev": true }, "thunky": { "version": "1.1.0", @@ -31355,7 +27882,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "devOptional": true, + "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -31413,49 +27940,22 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, - "toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, - "ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "requires": { - "rsvp": "^3.5.0" - }, - "dependencies": { - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true - } - } - }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -31465,6 +27965,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -31472,7 +27973,8 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true }, "type-fest": { "version": "0.21.3", @@ -31496,35 +27998,12 @@ "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, - "uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", - "optional": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -31659,6 +28138,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -31720,21 +28200,11 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "optional": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "devOptional": true, + "dev": true, "requires": { "builtins": "^1.0.3" } @@ -31749,6 +28219,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -31789,29 +28260,6 @@ "defaults": "^1.0.3" } }, - "web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" - }, - "webcrypto-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.1.tgz", - "integrity": "sha512-Gw2zLzYSJ7Imp5lLDu3CcWB5oTTACMDEE2PjoLfttGgIhd7BfackBdVgEzd9ZM/i65gpNq0+IelL0JZ48QwzNg==", - "requires": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "@types/web": "^0.0.55", - "asn1js": "^2.2.0", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, "webpack": { "version": "5.44.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.44.0.tgz", @@ -32584,15 +29032,6 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -32602,18 +29041,6 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -32624,7 +29051,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "devOptional": true, + "dev": true, "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -32635,22 +29062,6 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "optional": true - }, - "wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "requires": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - } - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -32692,7 +29103,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true + "dev": true }, "ws": { "version": "8.2.3", @@ -32701,11 +29112,6 @@ "dev": true, "requires": {} }, - "xmldom": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", - "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=" - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -32715,7 +29121,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yaml": { "version": "1.10.2", diff --git a/frontend/package.json b/frontend/package.json index cba36f3c69..9c2b43c35c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,16 +15,11 @@ "@angular/router": "~12.1.1", "@ctrl/ngx-codemirror": "^5.1.1", "@enonic/global-polyfill": "^1.0.0", - "@transmute/credentials-context": "^0.7.0-unstable.5", - "@transmute/did-context": "^0.7.0-unstable.5", - "@transmute/ed25519-signature-2018": "^0.7.0-unstable.5", - "@transmute/security-context": "^0.7.0-unstable.5", - "@transmute/vc.js": "^0.7.0-unstable.5", "codemirror": "^5.65.0", "cronstrue": "^2.4.0", "crypto-browserify": "^3.12.0", "file-saver": "^2.0.5", - "interfaces": "file:../interfaces", + "@guardian/interfaces": "file:../interfaces", "js-yaml": "^4.1.0", "moment": "^2.29.1", "ngx-file-drop": "^12.0.0", @@ -62,5 +57,5 @@ "test": "ng test", "watch": "ng build --watch --configuration development --output-path ../www-data" }, - "version": "2.1.0" + "version": "2.2.0-prerelease" } diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts index 83b7ff33ec..32cfaea033 100644 --- a/frontend/src/app/app-routing.module.ts +++ b/frontend/src/app/app-routing.module.ts @@ -1,6 +1,6 @@ import { Injectable, NgModule } from '@angular/core'; import { CanActivate, Router, RouterModule, Routes } from '@angular/router'; -import { ISession, IUser, UserRole } from 'interfaces'; +import { ISession, IUser, UserRole } from '@guardian/interfaces'; import { of } from 'rxjs'; import { catchError, map } from 'rxjs/operators'; import { PolicyConfigurationComponent } from './policy-engine/policy-configuration/policy-configuration/policy-configuration.component'; @@ -20,7 +20,9 @@ import { LogsViewComponent } from './views/admin/logs-view/logs-view.component'; import { SettingsViewComponent } from './views/admin/settings-view/settings-viewcomponent'; import { ServiceStatusComponent } from './views/admin/service-status/service-status.component'; import { StatusService } from './services/status.service'; +import { InfoComponent } from './components/info/info/info.component'; +const USER_IS_NOT_RA = "Page is avaliable for admin only"; class Guard { private router: Router; @@ -44,7 +46,18 @@ class Guard { return this.auth.sessions().pipe( map((res: IUser | null) => { if (res) { - return res.role == this.role; + if (res.role != this.role) { + this.router.navigate(['/info'], + { + skipLocationChange: true, + queryParams: { + message: USER_IS_NOT_RA + } + } + ); + return false; + } + return true; } else { return this.router.parseUrl(this.defaultPage); } @@ -59,7 +72,18 @@ class Guard { return this.auth.sessions().pipe( map((res: IUser | null) => { if (res) { - return res.role == this.role; + if (res.role != this.role) { + this.router.navigate(['/info'], + { + skipLocationChange: true, + queryParams: { + message: USER_IS_NOT_RA + } + } + ); + return false; + } + return true; } else { return this.router.parseUrl(this.defaultPage); } @@ -83,9 +107,9 @@ export class UserGuard extends Guard implements CanActivate { @Injectable({ providedIn: 'root' }) -export class RootAuthorityGuard extends Guard implements CanActivate { +export class StandardRegistryGuard extends Guard implements CanActivate { constructor(router: Router, auth: AuthService) { - super(router, auth, UserRole.ROOT_AUTHORITY, '/login'); + super(router, auth, UserRole.STANDARD_REGISTRY, '/login'); } } @@ -121,15 +145,15 @@ const routes: Routes = [ { path: 'user-profile', component: UserProfileComponent, canActivate: [UserGuard, ServicesStatusGuard] }, - { path: 'config', component: RootConfigComponent, canActivate: [RootAuthorityGuard, ServicesStatusGuard] }, - { path: 'tokens', component: TokenConfigComponent, canActivate: [RootAuthorityGuard, ServicesStatusGuard] }, - { path: 'schemes', component: SchemaConfigComponent, canActivate: [RootAuthorityGuard, ServicesStatusGuard] }, + { path: 'config', component: RootConfigComponent, canActivate: [StandardRegistryGuard, ServicesStatusGuard] }, + { path: 'tokens', component: TokenConfigComponent, canActivate: [StandardRegistryGuard, ServicesStatusGuard] }, + { path: 'schemas', component: SchemaConfigComponent, canActivate: [StandardRegistryGuard, ServicesStatusGuard] }, { - path: 'admin', component: AdminHeaderComponent, canActivate: [RootAuthorityGuard], canActivateChild: [RootAuthorityGuard], + path: 'admin', component: AdminHeaderComponent, canActivate: [StandardRegistryGuard], canActivateChild: [StandardRegistryGuard], children: [ { path: 'status', component: ServiceStatusComponent }, { path: 'settings', component: SettingsViewComponent, canActivate: [ServicesStatusGuard] }, - { path: 'logs', component: LogsViewComponent, canActivate: [ServicesStatusGuard] } + { path: 'logs', component: LogsViewComponent } ] }, { path: 'status', component: ServiceStatusComponent }, @@ -140,6 +164,7 @@ const routes: Routes = [ { path: 'policy-configuration', component: PolicyConfigurationComponent, canActivate: [ServicesStatusGuard] }, { path: '', component: HomeComponent }, + { path: 'info', component: InfoComponent }, { path: '**', redirectTo: '', pathMatch: 'full' }, ]; diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index 74d6197460..a344dc20a7 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -5,7 +5,7 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { CommonModule } from '@angular/common'; import { ToastrModule } from 'ngx-toastr'; -import { AppRoutingModule, AuditorGuard, UserGuard, RootAuthorityGuard } from './app-routing.module'; +import { AppRoutingModule, AuditorGuard, UserGuard, StandardRegistryGuard } from './app-routing.module'; import { AppComponent } from './app.component'; import { AuthInterceptor, AuthService } from "./services/auth.service"; import { ProfileService } from "./services/profile.service"; @@ -41,6 +41,7 @@ import { DetailsLogDialog } from './views/admin/details-log-dialog/details-log-d import { ServiceStatusComponent } from './views/admin/service-status/service-status.component'; import { CommonComponentsModule } from './common-components.module'; import { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component'; +import { InfoComponent } from './components/info/info/info.component'; @NgModule({ declarations: [ @@ -63,7 +64,8 @@ import { ConfirmationDialogComponent } from './components/confirmation-dialog/co IconPreviewDialog, DetailsLogDialog, ServiceStatusComponent, - ConfirmationDialogComponent + ConfirmationDialogComponent, + InfoComponent ], imports: [ BrowserModule, @@ -80,7 +82,7 @@ import { ConfirmationDialogComponent } from './components/confirmation-dialog/co exports: [], providers: [ UserGuard, - RootAuthorityGuard, + StandardRegistryGuard, AuditorGuard, AuthService, ProfileService, diff --git a/frontend/src/app/components/file-drag-n-drop/file-drag-n-drop.component.ts b/frontend/src/app/components/file-drag-n-drop/file-drag-n-drop.component.ts index f4d437ed11..7a97b1fc02 100644 --- a/frontend/src/app/components/file-drag-n-drop/file-drag-n-drop.component.ts +++ b/frontend/src/app/components/file-drag-n-drop/file-drag-n-drop.component.ts @@ -11,6 +11,7 @@ export class FileDragNDropComponent implements OnInit { @Output() onFileLoaded: EventEmitter = new EventEmitter(); @Input() dropZoneLabel: string = ""; + @Input() fileExtension: string = 'zip'; constructor( private toastr: ToastrService @@ -30,7 +31,7 @@ export class FileDragNDropComponent implements OnInit { this.onFileLoaded.emit(file); }); } else { - this.toastr.error("Only files in '.zip' format are accepted", "File import error", { positionClass: 'toast-bottom-right' }); + this.toastr.error(`Only files in '.${this.fileExtension}' format are accepted`, "File import error", { positionClass: 'toast-bottom-right' }); } } } @@ -38,7 +39,7 @@ export class FileDragNDropComponent implements OnInit { public importFromFile() { const input = document.createElement('input'); input.type = 'file'; - input.accept = '.zip'; + input.accept = `.${this.fileExtension}`; input.click(); input.onchange = (e: any) => { const file = e.target.files[0]; @@ -48,7 +49,7 @@ export class FileDragNDropComponent implements OnInit { private isFileAllowed(fileName: string) { let isFileAllowed = false; - const allowedFiles = ['.zip']; + const allowedFiles = [`.${this.fileExtension}`]; const regex = /(?:\.([^.]+))?$/; const extension = regex.exec(fileName); if (extension) { diff --git a/frontend/src/app/components/info/info/info.component.css b/frontend/src/app/components/info/info/info.component.css new file mode 100644 index 0000000000..0445ad2b4e --- /dev/null +++ b/frontend/src/app/components/info/info/info.component.css @@ -0,0 +1,8 @@ +.info-message { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + font-size: 20px; + color: darkgrey; +} \ No newline at end of file diff --git a/frontend/src/app/components/info/info/info.component.html b/frontend/src/app/components/info/info/info.component.html new file mode 100644 index 0000000000..dfeb971f16 --- /dev/null +++ b/frontend/src/app/components/info/info/info.component.html @@ -0,0 +1 @@ +
{{message}}
diff --git a/frontend/src/app/components/info/info/info.component.ts b/frontend/src/app/components/info/info/info.component.ts new file mode 100644 index 0000000000..15f0d0170e --- /dev/null +++ b/frontend/src/app/components/info/info/info.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'app-info', + templateUrl: './info.component.html', + styleUrls: ['./info.component.css'] +}) +export class InfoComponent implements OnInit { + + message: string = ""; + + constructor(private route: ActivatedRoute) { } + + ngOnInit(): void { + this.route.queryParams.subscribe(params => { + this.message = params['message']; + }); + } +} diff --git a/frontend/src/app/material.module.ts b/frontend/src/app/material.module.ts index 51da7207c2..28d0db3e23 100644 --- a/frontend/src/app/material.module.ts +++ b/frontend/src/app/material.module.ts @@ -28,6 +28,7 @@ import { MatPaginatorModule } from '@angular/material/paginator'; import { MatSortModule } from '@angular/material/sort'; import { MatChipsModule } from '@angular/material/chips'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import {MatButtonToggleModule} from '@angular/material/button-toggle'; @NgModule({ declarations: [], @@ -56,7 +57,8 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete'; MatTreeModule, MatTooltipModule, MatSlideToggleModule, - MatPaginatorModule + MatPaginatorModule, + MatButtonToggleModule ], exports: [ MatTabsModule, @@ -86,7 +88,8 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete'; MatPaginatorModule, MatSortModule, MatChipsModule, - MatAutocompleteModule + MatAutocompleteModule, + MatButtonToggleModule ] }) export class MaterialModule { } \ No newline at end of file diff --git a/frontend/src/app/policy-engine/helpers/events-overview/events-overview.css b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.css new file mode 100644 index 0000000000..b9c9e751cb --- /dev/null +++ b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.css @@ -0,0 +1,33 @@ +.tooltip { + position: absolute; + left: 0px; + top: 0px; + pointer-events: none; + transform: translate(-50%, -100%) translate(0, -5px); + background: #fff; + padding: 2px 10px; + border: 1px solid #7c7c7c; + border-radius: 4px; + z-index: 9999; + box-shadow: -1px 2px 3px 0px rgb(0 0 0 / 30%); + min-width: 250px; +} + +.tooltip::ng-deep span { + font-weight: 500; +} + +.tooltip::ng-deep .s1 span, +.tooltip::ng-deep .s2 span { + color: #c53227; +} + +.tooltip::ng-deep .s3 span, +.tooltip::ng-deep .s4 span { + color: #35a307; +} + +.tooltip::ng-deep .s2, +.tooltip::ng-deep .s4 { + margin-bottom: 5px; +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/helpers/events-overview/events-overview.html b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.html new file mode 100644 index 0000000000..1e23cb5e1d --- /dev/null +++ b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.html @@ -0,0 +1,4 @@ +
+ +
+
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/helpers/events-overview/events-overview.ts b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.ts new file mode 100644 index 0000000000..68fa84c37e --- /dev/null +++ b/frontend/src/app/policy-engine/helpers/events-overview/events-overview.ts @@ -0,0 +1,474 @@ +import { Component, ElementRef, EventEmitter, HostListener, Injectable, Input, Output, SimpleChanges, ViewChild } from '@angular/core'; +import { PolicyBlockModel, PolicyEventModel, PolicyModel } from '../../policy-model'; +import { RegisteredBlocks } from '../../registered-blocks'; +import { TreeFlatOverview } from '../tree-flat-overview/tree-flat-overview'; + +@Component({ + selector: 'events-overview', + templateUrl: 'events-overview.html', + styleUrls: ['events-overview.css'] +}) +export class EventsOverview { + @Input('policy') policy!: PolicyModel; + @Input('active') active!: string; + @Input('selected') selected!: any; + @Input('context') context!: any; + + @ViewChild('canvas') canvasRef!: ElementRef; + @ViewChild('tooltip') tooltipRef!: ElementRef; + @Output('init') init = new EventEmitter(); + + _parent!: Element; + _canvas!: HTMLCanvasElement; + _context!: CanvasRenderingContext2D | null; + _tooltip!: HTMLDivElement; + + blockMap: any; + lastImages: any; + actorMap: any; + + constructor( + private element: ElementRef, + private registeredBlocks: RegisteredBlocks) { + this.actorMap = {}; + this.actorMap[''] = 'Event Initiator'; + this.actorMap['owner'] = 'Document Owner'; + this.actorMap['issuer'] = 'Document Issuer'; + } + + ngOnChanges(changes: SimpleChanges) { + if (changes.context) { + this.setContext(this.context); + } + if (changes.active) { + if (this.active !== 'None') { + this.render() + } else { + this.refreshCanvas(); + } + } + } + + ngAfterViewInit(): void { + this._tooltip = this.tooltipRef?.nativeElement; + this._canvas = this.canvasRef?.nativeElement; + this._context = this._canvas?.getContext('2d'); + this.refreshCanvas(); + this.init.emit(this); + } + + ngOnDestroy(): void { + this.init.emit(null); + } + + private setContext(context: TreeFlatOverview) { + if (context && context.context) { + this._parent = context.context.nativeElement; + } + } + + public render(): void { + if (this.active === 'None' || !this._canvas || !this._context) { + return; + } + const boxCanvas = this.refreshCanvas(); + const map = this.getBlockSize(this.policy.allBlocks, boxCanvas); + const lines = this.getLines(map, this.policy.allBlocks, this.policy.allEvents); + const renderLine = this.sortLine(lines); + this.renderData(renderLine); + this.renderLine(); + } + + private renderData(renderLine: any[]) { + if (!this._canvas || !this._context) { + return; + } + for (let index = 0; index < renderLine.length; index++) { + const line = renderLine[index]; + line.index = index + 1; + this.drawData(line); + } + const data = this._context.getImageData(0, 0, this._canvas.width, this._canvas.height).data; + this.lastImages = { + context: this._context, + lines: renderLine, + width: this._canvas.width, + height: this._canvas.height, + data: data + } + } + + private renderLine() { + if (!this._canvas || !this._context || !this.lastImages) { + return; + } + + this.lastImages.context.clearRect(0, 0, this.lastImages.width, this.lastImages.height); + + for (let index = 0; index < this.lastImages.lines.length; index++) { + const line = this.lastImages.lines[index]; + const selected = this.lastImages.index == line.index; + this.drawArrow(line, line.dash, selected); + } + } + + private refreshCanvas() { + if (this._canvas && this._parent) { + this._canvas.setAttribute('id', 'tree-canvas'); + this._canvas.style.position = 'absolute'; + this._canvas.style.top = '0px'; + this._canvas.style.left = '0px'; + // this._canvas.style.pointerEvents = 'none'; + const box = this._parent.getBoundingClientRect(); + this._canvas.style.width = `${box.width}px`; + this._canvas.style.height = `${box.height}px`; + this._canvas.width = box.width; + this._canvas.height = box.height; + if (this._context) { + this._context.clearRect(0, 0, this._canvas.width, this._canvas.height); + } + return this._canvas.getBoundingClientRect(); + } + return { left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0 }; + } + + private getBlockSize(blocks: PolicyBlockModel[], boxCanvas: any) { + const blockMap: any = {}; + for (const block of blocks) { + const item: any = { + tag: block.tag, + events: block.events, + next: block.next?.tag, + prev: block.prev?.tag, + } + const div = document.querySelector(`*[block-instance="${block.tag}"]`); + if (div) { + const box = div.getBoundingClientRect(); + item.div = div; + item.leftOffset = boxCanvas.left; + item.topOffset = boxCanvas.top; + item.left = box.left || 0; + item.right = box.right || 0; + item.top = box.top || 0; + item.bottom = box.bottom || 0; + item.width = box.width || 0; + item.height = box.height || 0; + } + blockMap[item.tag] = item; + } + return blockMap; + } + + private getLines(blockMap: any, allBlocks: PolicyBlockModel[], allEvents: PolicyEventModel[]) { + let minWidthOffset = 0; + for (const item of allBlocks) { + const block = blockMap[item.tag]; + if (block.div) { + minWidthOffset = Math.max(minWidthOffset, block.right - block.leftOffset); + } + } + minWidthOffset += 50; + + const lines = []; + if (allBlocks) { + for (const item of allBlocks) { + const block = blockMap[item.tag]; + const about = this.registeredBlocks.getAbout(item.blockType, item); + if (!item.properties.stopPropagation && about.defaultEvent && this.checkType(item)) { + const line = this.createLine(blockMap, item.tag, block.next); + if (line) { + line.actor = ''; + line.input = 'RunEvent'; + line.output = 'RunEvent'; + line.dash = false; + line.default = true; + line.widthOffset = minWidthOffset; + lines.push(line); + } + } + } + } + if (allEvents) { + for (const item of allEvents) { + if (!item.disabled && this.checkType(item)) { + const line = this.createLine(blockMap, item.sourceTag, item.targetTag); + if (line) { + line.actor = item.actor; + line.input = item.input; + line.output = item.output; + line.dash = item.input == 'RefreshEvent'; + line.widthOffset = minWidthOffset; + lines.push(line); + } + } + } + } + + return lines; + } + + private checkType(item: any): boolean { + if (this.active === 'All') { + return true; + } + if (this.active === 'Action') { + return item.input !== 'RefreshEvent'; + } + if (this.active === 'Refresh') { + return item.input === 'RefreshEvent'; + } + return false; + } + + private createLine(blockMap: any, startTag: string, endTag: string): any { + if (!startTag || !endTag) { + return null; + } + const start = blockMap[startTag]; + const end = blockMap[endTag]; + if (!start || !start.div || !end || !end.div) { + return null; + } + const minWidth = 150; + return { + start_top_x: Math.round(start.left + (minWidth / 2) - start.leftOffset), + start_top_y: Math.round(start.top - start.topOffset - 6), + start_bottom_x: Math.round(start.left + (minWidth / 2) - start.leftOffset), + start_bottom_y: Math.round(start.top + start.height - start.topOffset + 2), + start_right_x: Math.round(start.right - start.leftOffset + 32), + start_right_y: Math.round(start.top - start.topOffset + 16 + 6), + end_top_x: Math.round(end.left + (minWidth / 2) - start.leftOffset), + end_top_y: Math.round(end.top - start.topOffset - 6), + end_bottom_x: Math.round(end.left + (minWidth / 2) - start.leftOffset), + end_bottom_y: Math.round(end.top + end.height - start.topOffset + 2), + end_right_x: Math.round(end.right - start.leftOffset + 32), + end_right_y: Math.round(end.top - start.topOffset + 16 - 6), + startTag: startTag, + endTag: endTag, + offset: 4, + widthOffset: 0, + direction: start.top < end.top, + height: Math.abs(start.top - end.top), + default: false, + selected: false, + selectedS: false, + selectedE: false, + color: [136, 136, 136], + points: null, + dash: false + } + } + + private sortLine(lines: any[]): any[] { + let defaultLines = []; + let shortLines = []; + let otherLines = []; + for (const line of lines) { + line.selectedS = line.startTag == this.selected?.tag; + line.selectedE = line.endTag == this.selected?.tag; + line.selected = line.selectedS || line.selectedE; + if (line.selectedS) { + line.color = [225, 0, 0]; + } else if (line.selectedE) { + line.color = [0, 128, 0]; + } else { + line.color = [136, 136, 136]; + } + + if (line.default && line.height < 55) { + defaultLines.push(line); + } else if (line.height < 55) { + shortLines.push(line); + } else { + otherLines.push(line); + } + } + otherLines = otherLines.sort((a, b) => a.height > b.height ? 1 : -1); + const mapRight: any = {}; + for (const line of otherLines) { + for (let i = 0; mapRight[line.widthOffset] && i < 100; i++) { + line.widthOffset = line.widthOffset + 8; + } + mapRight[line.widthOffset] = true; + } + + const renderLine = []; + for (const line of defaultLines) { + if (line.direction) { + line.points = [ + line.start_bottom_x, line.start_bottom_y, + line.end_top_x, line.end_top_y + ] + } else { + line.points = [ + line.start_top_x, line.start_top_y, + line.end_bottom_x, line.end_bottom_y + ] + } + if (line.selected) { + renderLine.push(line); + } else { + renderLine.unshift(line); + } + } + for (const line of shortLines) { + line.points = [ + line.start_right_x, line.start_right_y, + line.widthOffset, line.start_right_y, + line.widthOffset, line.end_right_y, + line.end_right_x, line.end_right_y + ] + + if (line.selected) { + renderLine.push(line); + } else { + renderLine.unshift(line); + } + } + for (const line of otherLines) { + line.points = [ + line.start_right_x, line.start_right_y, + line.widthOffset, line.start_right_y, + line.widthOffset, line.end_right_y, + line.end_right_x, line.end_right_y + ] + + if (line.selected) { + renderLine.push(line); + } else { + renderLine.unshift(line); + } + } + return renderLine; + } + + private drawData(line: any) { + if (!this._context) { + return; + } + const ctx = this._context; + const points = line.points; + const color = this.toColor(line.index); + ctx.save(); + ctx.strokeStyle = `rgba(${color.r},${color.g},${color.b},255)`; + ctx.lineWidth = 8; + ctx.beginPath(); + ctx.setLineDash([]); + let fx: number = 0, fy: number = 0, tx: number = 0, ty: number = 0; + for (let i = 0; i < points.length - 3; i += 2) { + fx = points[i]; + fy = points[i + 1]; + tx = points[i + 2]; + ty = points[i + 3]; + ctx.moveTo(fx, fy); + ctx.lineTo(tx, ty); + } + ctx.stroke(); + ctx.restore(); + } + + private drawArrow(line: any, dash: boolean = false, selected: boolean = false) { + if (!this._context) { + return; + } + + const ctx = this._context; + const points = line.points; + + ctx.save(); + if (selected) { + ctx.strokeStyle = `rgb(0,0,255)`; + ctx.lineWidth = 3; + } else { + ctx.strokeStyle = `rgb(${line.color[0]},${line.color[1]},${line.color[2]})`; + ctx.lineWidth = line.selected ? 3 : 1; + } + ctx.beginPath(); + if (dash) { + ctx.setLineDash([10, 5]); + } else { + ctx.setLineDash([]); + } + + let fx: number = 0, fy: number = 0, tx: number = 0, ty: number = 0; + for (let i = 0; i < points.length - 3; i += 2) { + fx = points[i]; + fy = points[i + 1]; + tx = points[i + 2]; + ty = points[i + 3]; + ctx.moveTo(fx, fy); + ctx.lineTo(tx, ty); + } + const angle = Math.atan2(ty - fy, tx - fx); + const k = Math.PI / 7; + const headlen = 5; + ctx.stroke(); + ctx.lineWidth = 3; + ctx.beginPath(); + ctx.setLineDash([]); + ctx.moveTo(tx, ty); + ctx.lineTo(tx - headlen * Math.cos(angle - k), ty - headlen * Math.sin(angle - k)); + ctx.lineTo(tx - headlen * Math.cos(angle + k), ty - headlen * Math.sin(angle + k)); + ctx.lineTo(tx, ty); + ctx.lineTo(tx - headlen * Math.cos(angle - k), ty - headlen * Math.sin(angle - k)); + ctx.stroke(); + ctx.restore(); + } + + mousemove(event: MouseEvent) { + if (this.lastImages) { + const idx = (event.offsetY * this.lastImages.width + event.offsetX) * 4; + const a = this.lastImages.data[idx + 3]; + let index = 0; + if (a == 255) { + const r = this.lastImages.data[idx]; + const g = this.lastImages.data[idx + 1]; + const b = this.lastImages.data[idx + 2]; + index = this.fromColor(r, g, b); + } + if (this.lastImages.index != index) { + this.lastImages.index = index; + if (index) { + const line = this.lastImages.lines[this.lastImages.index - 1]; + this._tooltip.innerHTML = ` +
Source (Block Tag): ${line.startTag}
+
Output (Event): ${line.output}
+
Target (Block Tag): ${line.endTag}
+
Input (Event): ${line.input}
+
Event Actor: ${this.actorMap[line.actor]}
+ ` + } else { + this._tooltip.innerHTML = ''; + } + this.renderLine(); + } + } + this.renderTooltip(event); + } + + renderTooltip(event: MouseEvent) { + if (this._tooltip) { + if (this.lastImages && this.lastImages.index) { + this._tooltip.style.display = 'block'; + this._tooltip.style.left = `${event.offsetX}px`; + this._tooltip.style.top = `${event.offsetY}px`; + } else { + this._tooltip.style.display = 'none'; + } + } + } + + toColor(index: number) { + let offset = index; + const b = offset % 255; + offset = Math.floor(offset / 255); + const g = offset % 255; + offset = Math.floor(offset / 255); + const r = offset % 255; + return { r, g, b }; + } + + fromColor(r: number, g: number, b: number) { + return 65025 * r + 255 * g + b; + } +} diff --git a/frontend/src/app/policy-engine/helpers/export-policy-dialog/export-policy-dialog.component.ts b/frontend/src/app/policy-engine/helpers/export-policy-dialog/export-policy-dialog.component.ts index 0be0135091..9340749bbb 100644 --- a/frontend/src/app/policy-engine/helpers/export-policy-dialog/export-policy-dialog.component.ts +++ b/frontend/src/app/policy-engine/helpers/export-policy-dialog/export-policy-dialog.component.ts @@ -37,10 +37,12 @@ export class ExportPolicyDialog { saveToFile() { this.loading = true; this.policyEngineService.exportInFile(this.policy.id) - .subscribe(result => { + .subscribe(fileBuffer => { let downloadLink = document.createElement('a'); - downloadLink.href = window.URL.createObjectURL(result); - downloadLink.setAttribute('download', `policy_${Date.now()}.zip`); + downloadLink.href = window.URL.createObjectURL(new Blob([new Uint8Array(fileBuffer)], { + type: 'application/guardian-policy' + })); + downloadLink.setAttribute('download', `policy_${Date.now()}.policy`); document.body.appendChild(downloadLink); downloadLink.click(); setTimeout(() => { diff --git a/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.html b/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.html index 35f9645f78..0cdf334115 100644 --- a/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.html +++ b/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.html @@ -1,7 +1,7 @@
- +

@@ -36,8 +36,8 @@

- +
- \ No newline at end of file + diff --git a/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.ts b/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.ts index 81cc708dd6..ad92e63b53 100644 --- a/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.ts +++ b/frontend/src/app/policy-engine/helpers/import-policy-dialog/import-policy-dialog.component.ts @@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { FormBuilder, Validators } from '@angular/forms'; import { PolicyEngineService } from 'src/app/services/policy-engine.service'; -import { ImportType } from 'interfaces'; +import { ImportType } from '@guardian/interfaces'; /** * Dialog for creating policy. diff --git a/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.html b/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.html index 0a7afadd1b..010f37fcdf 100644 --- a/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.html +++ b/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.html @@ -57,14 +57,14 @@
Involved Roles
-
Root Authority, {{policyRoles}}
+
Standard Registry, {{policyRoles}}
-
+
-
-
Schemes Overview
-
{{schemes}}
+
+
Schemas Overview
+
{{schemas}}
diff --git a/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.ts b/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.ts index 06bb7261d4..c07bd1945e 100644 --- a/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.ts +++ b/frontend/src/app/policy-engine/helpers/preview-policy-dialog/preview-policy-dialog.component.ts @@ -14,7 +14,7 @@ export class PreviewPolicyDialog { loading = true; policyId!: any; policy!: any; - schemes!: string; + schemas!: string; tokens!: string; policyRoles!: string; newVersions: any[] = []; @@ -30,10 +30,10 @@ export class PreviewPolicyDialog { this.policy = data.policy.policy; this.policyRoles = (this.policy.policyRoles || []).join(', '); - const schemes = data.policy.schemes || []; + const schemas = data.policy.schemas || []; const tokens = data.policy.tokens || []; - this.schemes = schemes.map((s: any) => { + this.schemas = schemas.map((s: any) => { if (s.version) { return `${s.name} (${s.version})`; } diff --git a/frontend/src/app/policy-engine/helpers/tree-data-source/block.ts b/frontend/src/app/policy-engine/helpers/tree-data-source/block.ts index 167801bf22..1ca01d37cc 100644 --- a/frontend/src/app/policy-engine/helpers/tree-data-source/block.ts +++ b/frontend/src/app/policy-engine/helpers/tree-data-source/block.ts @@ -4,7 +4,6 @@ export interface IBlock { blockType: string; defaultActive: boolean; permissions: string[]; - dependencies: string[]; stateMutation: Object; onlyOwnDocuments: boolean; uiMetaData: U; diff --git a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.css b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.css index 0147aabb27..0aa0558397 100644 --- a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.css +++ b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.css @@ -1,3 +1,23 @@ +:host { + pointer-events: none; +} + +:host * { + pointer-events: none; +} + +:host mat-tree-node * { + pointer-events: all !important; +} + +.expand-menu { + pointer-events: all !important; +} + +.expand-menu * { + pointer-events: all !important; +} + .block { background: #fff; border: 1px solid #000; diff --git a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.html b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.html index bbe4d0eddd..b6d232c7af 100644 --- a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.html +++ b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.html @@ -36,9 +36,7 @@ [attr.error]="isError(node)" [attr.control]="node.about.control" [attr.root]="node.root" - [attr.output]="node.about.output" - [attr.input]="node.about.input" - [attr.stop-propagation]="node.node.stopPropagation" + [attr.block-instance]="node.node.tag" >
{{node.icon}} @@ -49,19 +47,5 @@
delete
-
- arrow_downward -
-
- arrow_downward - arrow_downward -
-
- -
-
- -
-
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.ts b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.ts index ecc37c06c0..1f835497f4 100644 --- a/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.ts +++ b/frontend/src/app/policy-engine/helpers/tree-flat-overview/tree-flat-overview.ts @@ -1,5 +1,5 @@ import { FlatTreeControl } from '@angular/cdk/tree'; -import { Component, EventEmitter, Injectable, Input, Output, SimpleChanges } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Injectable, Input, Output, SimpleChanges } from '@angular/core'; import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; import { BehaviorSubject, Observable, of as observableOf } from 'rxjs'; import { CdkDragDrop } from '@angular/cdk/drag-drop'; @@ -38,8 +38,10 @@ export class TreeFlatOverview { @Output('delete') delete = new EventEmitter(); @Output('select') select = new EventEmitter(); @Output('reorder') reorder = new EventEmitter(); + @Output('change') change = new EventEmitter(); + @Output('init') init = new EventEmitter(); - currentBlock!: BlockNode; + currentBlock: any; root!: BlockNode; treeControl: FlatTreeControl; @@ -53,16 +55,31 @@ export class TreeFlatOverview { validateDrop = false; isCollapseAll = true; - constructor(private registeredBlocks: RegisteredBlocks) { + public readonly context: ElementRef; + + constructor( + private element: ElementRef, + private registeredBlocks: RegisteredBlocks + ) { + this.context = element; this.treeFlattener = new MatTreeFlattener(this.transformer, this._getLevel, this._isExpandable, this._getChildren); this.treeControl = new FlatTreeControl(this._getLevel, this._isExpandable); this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); this.treeControl.expansionModel.changed.subscribe(e => { this.isCollapseAll = !e.source.selected.length; + this.change.emit(); }) } + ngAfterViewInit(): void { + this.init.emit(this); + } + + ngOnDestroy(): void { + this.init.emit(null); + } + ngOnChanges(changes: SimpleChanges) { this.rebuildTreeForData(this.blocks); if (changes.errors && this.errors) { @@ -118,7 +135,7 @@ export class TreeFlatOverview { const visibleNodes = this.visibleNodes(); // deep clone the data source so we can mutate it - const changedData: BlockNode[] = JSON.parse(JSON.stringify(this.dataSource.data)); + const changedData: BlockNode[] = this.dataSource.data; // recursive find function to find siblings of node function findNodeSiblings(arr: Array, block: BlockNode, compare: any): Array { @@ -162,6 +179,7 @@ export class TreeFlatOverview { // rebuild tree with mutated data // this.rebuildTreeForData(changedData); this.reorder.emit(changedData); + this.change.emit(); } setErrors(errors: any) { @@ -243,26 +261,23 @@ export class TreeFlatOverview { rebuildTreeForData(data: BlockNode[]) { this.blocks = data; this.root = data[0]; - this.currentBlock = this.root; this.dataSource.data = data; - - for (let index = 0; index < this.treeControl.dataNodes.length; index++) { - const p = this.treeControl.dataNodes[index - 1]; - const e = this.treeControl.dataNodes[index]; - const n = this.treeControl.dataNodes[index + 1]; - if (p && e.level == p.level) { - e.about.prev = p.about; - } else { - e.about.prev = null; - } - e.about.next = !!(n && e.level == n.level); - } - this.treeControl.expansionModel.clear(); this.expansionModel.selected.forEach((id) => { const node: any = this.treeControl.dataNodes.find((n) => n.node.id === id); this.treeControl.expand(node); }); + if (this.currentBlock) { + const node: any = this.treeControl.dataNodes.find((n) => n.node.id === this.currentBlock.id); + if (node) { + this.currentBlock = node.node; + } else { + this.currentBlock = this.root; + } + } else { + this.currentBlock = this.root; + } + } getName(node: FlatBlockNode) { @@ -282,6 +297,7 @@ export class TreeFlatOverview { event.stopPropagation(); this.currentBlock = node.node; this.select.emit(this.currentBlock); + this.change.emit(); return false; } @@ -289,6 +305,7 @@ export class TreeFlatOverview { event.preventDefault(); event.stopPropagation(); this.delete.emit(block.node); + this.change.emit(); return false; } @@ -315,4 +332,17 @@ export class TreeFlatOverview { this.treeControl.collapseAll(); this.expansionModel.clear(); } + + public selectItem(block: any) { + if (block) { + const node: any = this.treeControl.dataNodes.find((n) => n.node.id === block.id); + if(node) { + this.currentBlock = node.node; + } else { + this.currentBlock = this.root; + } + } else { + this.currentBlock = this.root; + } + } } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.html index 48f0f5be90..8efcd03a36 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.html @@ -19,7 +19,7 @@ Input Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) @@ -56,7 +56,7 @@ Output Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.ts index b346c2166b..f886d47a6a 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-config/calculate-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, SchemaField, Token } from 'interfaces'; +import { Schema, SchemaField, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +15,13 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class CalculateConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; + + @Output() onInit = new EventEmitter(); propHidden: any = { @@ -28,22 +29,22 @@ export class CalculateConfigComponent implements OnInit { outputSchemaGroup: false }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.inputFields = this.block.inputFields || []; this.block.outputFields = this.block.outputFields || []; if (!this.block.inputSchema) { @@ -60,7 +61,7 @@ export class CalculateConfigComponent implements OnInit { onSelectInput() { this.block.inputFields = []; - const schema = this.schemes.find(e => e.iri == this.block.inputSchema) + const schema = this.schemas.find(e => e.iri == this.block.inputSchema) if (schema) { for (let i = 0; i < schema.fields.length; i++) { const field = schema.fields[i]; @@ -73,37 +74,9 @@ export class CalculateConfigComponent implements OnInit { } } - private setFields(result: any[], fields: SchemaField[], name: string, index: number, lvl: number) { - for (let i = 0; i < fields.length; i++) { - const field = fields[i]; - const fieldName = name ? `${name}.${field.name}` : field.name; - if (field.isRef) { - result.push({ - lvl: lvl, - name: fieldName, - title: field.description, - value: null, - enable: false - }) - if (field.fields) { - index = this.setFields(result, field.fields, fieldName, index, lvl + 1); - } - } else { - result.push({ - lvl: lvl, - name: fieldName, - title: field.description, - value: `field${index++}`, - enable: true - }) - } - } - return index; - } - onSelectOutput() { this.block.outputFields = []; - const schema = this.schemes.find(e => e.iri == this.block.outputSchema) + const schema = this.schemas.find(e => e.iri == this.block.outputSchema) if (schema) { for (let i = 0; i < schema.fields.length; i++) { const field = schema.fields[i]; diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-math-config/calculate-math-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-math-config/calculate-math-config.component.ts index fa4f7427b1..3b697be6e1 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-math-config/calculate-math-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/calculate-math-config/calculate-math-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +15,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class CalculateMathConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -28,22 +27,22 @@ export class CalculateMathConfigComponent implements OnInit { equations: {}, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.equations = this.block.equations || []; } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.html index c32128a608..f53a13c0c2 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.html @@ -5,7 +5,7 @@ Output Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.ts index 4308c18ba9..7f81b5d8c8 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component.ts @@ -2,7 +2,8 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; import { MatDialog } from '@angular/material/dialog'; import { CodeEditorDialogComponent } from '../../../../helpers/code-editor-dialog/code-editor-dialog.component'; -import { Schema, Token, SchemaField } from 'interfaces'; +import { Schema, Token, SchemaField } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; @Component({ selector: 'app-custom-logic-config', @@ -13,17 +14,14 @@ import { Schema, Token, SchemaField } from 'interfaces'; ] }) export class CustomLogicConfigComponent implements OnInit { - - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); - block!: BlockNode; + block!: any; propHidden: any = { outputSchemaGroup: false @@ -35,11 +33,11 @@ export class CustomLogicConfigComponent implements OnInit { ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} this.block.expression = this.block.expression || '' } @@ -62,7 +60,7 @@ export class CustomLogicConfigComponent implements OnInit { onSelectOutput() { this.block.inputFields = []; - const schema = this.schemes.find(e => e.iri == this.block.outputSchema) + const schema = this.schemas.find(e => e.iri == this.block.outputSchema) if (schema) { for (let i = 0; i < schema.fields.length; i++) { const field = schema.fields[i]; diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.html index c267d334f6..233352a047 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.html @@ -1,13 +1,5 @@ - - - - - - - - - - - diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.ts index d2a52f418d..b3f06796fe 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/aggregate-config/aggregate-config.component.ts @@ -1,8 +1,9 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; import { MatDialog } from '@angular/material/dialog'; import { CronConfigDialog } from '../../../../helpers/cron-config-dialog/cron-config-dialog.component'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; /** * Settings for block of 'aggregateDocument' type. @@ -16,23 +17,21 @@ import { CronConfigDialog } from '../../../../helpers/cron-config-dialog/cron-co ] }) export class AggregateConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, - options:false, + options: false, expressionsGroup: false, expressions: {}, }; - block!: BlockNode; + block!: any; allTimer!: BlockNode[]; constructor(private dialog: MatDialog) { @@ -40,16 +39,15 @@ export class AggregateConfigComponent implements OnInit { ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.allTimer = this.all?.filter(e=>e.blockType=='timerBlock'); - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.expressions = this.block.expressions || []; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.html index 8dd0592b60..8dd9770ab6 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.html @@ -1,7 +1,5 @@
Stop Propagation - -
@@ -28,15 +20,6 @@
Timer - - {{item.tag}} - -
Empty Data
- - - - - - - @@ -107,6 +91,27 @@ + + + + + @@ -134,7 +139,19 @@ @@ -171,7 +188,19 @@ @@ -188,7 +217,17 @@ diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.ts index 9d44b099f0..0342f29405 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/document-viewer-config/document-viewer-config.component.ts @@ -1,5 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; +import { RegisteredBlocks } from 'src/app/policy-engine/registered-blocks'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +16,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class DocumentSourceComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -29,18 +29,19 @@ export class DocumentSourceComponent implements OnInit { insertGroup: false }; - block!: BlockNode; + block!: any; + allBlocks!: any[]; - constructor() { + constructor(public registeredBlocks: RegisteredBlocks) { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } parseField(document: any, fields: any[], prefix?: string) { @@ -68,8 +69,19 @@ export class DocumentSourceComponent implements OnInit { }) } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + if (this.policy?.allBlocks) { + this.allBlocks = this.policy.allBlocks.map(item => { + return { + name: item.tag, + icon: this.getIcon(item), + value: item.tag + } + }); + } else { + this.allBlocks = []; + } + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {}; this.block.uiMetaData.fields = this.block.uiMetaData.fields || []; } @@ -86,4 +98,8 @@ export class DocumentSourceComponent implements OnInit { field.dialogType = ""; field.bindBlock = ""; } + + getIcon(block: any) { + return this.registeredBlocks.getIcon(block.blockType); + } } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.html index eee3fc00e1..d9cfacca2a 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.html @@ -12,7 +12,7 @@
expand_more @@ -58,20 +56,6 @@
- - add_link - - Bind Group - - - {{item.tag}} - -
Title
+ add_link Bind Group + + + + {{field?.bindGroup}} + + +
+
+ {{item.icon}} +
+ {{item.name}} +
+
+
+
- {{item.tag}} + + + {{field?.bindBlock}} + + + +
+
+ {{item.icon}} +
+ {{item.name}} +
+
- {{item.tag}} + + + {{field?.bindBlock}} + + + +
+
+ {{item.icon}} +
+ {{item.name}} +
+
- {{item.tag}} + + {{field?.bindBlock}} + + +
+
+ {{item.icon}} +
+ {{item.name}} +
+
Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.ts index 5aec447957..303a5eb80f 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/external-data-config/external-data-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,35 +15,33 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class ExternalDataConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.html index 6d3a3186f9..4adb139681 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.html @@ -1,12 +1,5 @@ - - - - - diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.ts index 0060285a83..2e5c89180d 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/filters-addon-config/filters-addon-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +15,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class FiltersAddonConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -34,22 +33,22 @@ export class FiltersAddonConfigComponent implements OnInit { unelectedGroup: false }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {}; this.block.uiMetaData.options = this.block.uiMetaData.options || []; this.block.type = 'dropdown'; diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.html index 960bb383e5..a796ef879c 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.html @@ -1,12 +1,5 @@
Stop Propagation - -
Type
- - - - - diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.ts index 2c74086f3e..869afb3b82 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/reassigning-config/reassigning-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,35 +15,33 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class ReassigningConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.html index 0cb3cca404..3c77eeaa4f 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.html @@ -5,7 +5,7 @@ - - - - - - - + @@ -138,7 +130,7 @@ @@ -50,11 +51,8 @@ Policy Instance - + {{topic.name}} @@ -88,13 +86,6 @@ - - - - - + + + + + + + + + + + + + + + +
Stop Propagation - -
IssuerSchema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) @@ -26,15 +26,7 @@
Stop Propagation - -
PresetPreset Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.ts index 23a12eb9c4..172f7807eb 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/request-config/request-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +15,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class RequestConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -30,7 +29,7 @@ export class RequestConfigComponent implements OnInit { presetFields: {} }; - block!: BlockNode; + block!: any; presetMap: any; @@ -40,20 +39,20 @@ export class RequestConfigComponent implements OnInit { ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {}; this.block.uiMetaData.type = this.block.uiMetaData.type || 'page'; this.block.presetFields = this.block.presetFields || []; - const schema = this.schemes.find(e => e.iri == this.block.schema); - const presetSchema = this.schemes.find(e => e.iri == this.block.presetSchema); + const schema = this.schemas.find(e => e.iri == this.block.schema); + const presetSchema = this.schemas.find(e => e.iri == this.block.presetSchema); if (!schema || !presetSchema) { this.block.presetFields = []; } @@ -77,8 +76,8 @@ export class RequestConfigComponent implements OnInit { this.block.presetFields = []; this.presetMap = []; - const schema = this.schemes.find(e => e.iri == this.block.schema); - const presetSchema = this.schemes.find(e => e.iri == this.block.presetSchema); + const schema = this.schemas.find(e => e.iri == this.block.schema); + const presetSchema = this.schemas.find(e => e.iri == this.block.presetSchema); if (schema && presetSchema && schema.fields) { for (let i = 0; i < schema.fields.length; i++) { const field = schema.fields[i]; @@ -103,7 +102,7 @@ export class RequestConfigComponent implements OnInit { }); } } - + const dMap:any = {}; for (let i = 0; i < this.presetMap.length; i++) { const f = this.presetMap[i]; diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.css b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.html new file mode 100644 index 0000000000..b85004dc32 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + +
Update previous document status + +
Status value + +
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.ts new file mode 100644 index 0000000000..1a23ec1dbf --- /dev/null +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/revoke-config/revoke-config.component.ts @@ -0,0 +1,58 @@ +import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel } from 'src/app/policy-engine/policy-model'; +import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; + +/** + * Settings for block of 'interfaceAction' type. + */ +@Component({ + selector: 'revoke-config', + templateUrl: './revoke-config.component.html', + styleUrls: [ + './../../../common-properties/common-properties.component.css', + './revoke-config.component.css' + ] +}) +export class RevokeConfigComponent implements OnInit { + @Input('all') all!: BlockNode[]; + @Input('schemes') schemes!: Schema[]; + @Input('tokens') tokens!: Token[]; + @Input('readonly') readonly!: boolean; + @Input('roles') roles!: string[]; + @Input('topics') topics!: any[]; + @Input('block') currentBlock!: PolicyBlockModel; + @Output() onInit = new EventEmitter(); + + propHidden: any = { + main: false, + optionsGroup: false, + fileGroup: false, + options: {}, + dropdownGroup: false + }; + + block!: any; + + constructor() { + } + + ngOnInit(): void { + this.onInit.emit(this); + this.load(this.currentBlock); + } + + ngOnChanges(changes: SimpleChanges) { + this.load(this.currentBlock); + } + + load(block: PolicyBlockModel) { + this.block = block.properties; + this.block.uiMetaData = this.block.uiMetaData || {}; + this.block.uiMetaData.options = this.block.uiMetaData.options || []; + } + + onHide(item: any, prop: any) { + item[prop] = !item[prop]; + } +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.html index c6d771be67..3058ccc41d 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.html @@ -34,6 +34,7 @@ VC Document DID Document VP Document + Take From Input Document
Stop Propagation - -
diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.ts index ef618ca3ef..454a33c09c 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/send-config/send-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +15,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class SendConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -29,22 +28,22 @@ export class SendConfigComponent implements OnInit { options: {} }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {}; this.block.options = this.block.options || []; } @@ -66,8 +65,8 @@ export class SendConfigComponent implements OnInit { selectTopic(event: any) { if (event.value === 'new') { - const name = `New Topic ${this.topics.length}` - this.topics.push({ + const name = `New Topic ${this.policy.policyTopics.length}`; + this.policy.createTopic({ name: name, description: "", type: "any", diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.html index fb9be6e129..4bd3dab98b 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.html @@ -17,7 +17,7 @@ Schema - + {{schema.name}} ({{schema.version}}) ({{schema.status}}) @@ -40,6 +40,32 @@
View History + +
Order Field + +
Order Direction + + + ASC + DESC + +
diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.ts index 34cdb20122..f459518e51 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/source-addon-config/source-addon-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,12 +15,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class SourceAddonConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -28,22 +28,22 @@ export class SourceAddonConfigComponent implements OnInit { filters: {}, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.filters = this.block.filters || []; } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.html index 1d08868aef..ee0bf808be 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.html @@ -1,13 +1,5 @@ - - - - - -
Stop Propagation - -
diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.ts index f3d1928965..e911ef6680 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/documents/timer-config/timer-config.component.ts @@ -1,8 +1,9 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; import { MatDialog } from '@angular/material/dialog'; import { CronConfigDialog } from '../../../../helpers/cron-config-dialog/cron-config-dialog.component'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; /** * Settings for block of 'timer' type. @@ -16,13 +17,11 @@ import { CronConfigDialog } from '../../../../helpers/cron-config-dialog/cron-co ] }) export class TimerConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -32,22 +31,22 @@ export class TimerConfigComponent implements OnInit { expressions: {}, }; - block!: BlockNode; + block!: any; constructor(private dialog: MatDialog) { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; } onHide(item: any, prop: any) { diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.html index dc6508bb7a..f0d7bab149 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.html @@ -1,12 +1,5 @@ - - - - - @@ -18,7 +11,7 @@ - + + + + + + + @@ -82,15 +84,11 @@ - + @@ -102,59 +100,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -193,19 +141,43 @@ - + + + + - + + + + + + + + + + + + + + +
Stop Propagation - -
Type
expand_more @@ -63,6 +56,15 @@ Options {{i}} {{option.name}}
Option Tag + +
- - add_link - - Bind Block - User - - {{item.tag}} + + Owner + Current
User - - Owner - Current - -
Button Content - -
- expand_more - File Options -
Schema - - - {{schema.name}} - ({{schema.version}}) - ({{schema.status}}) - - -
Target Url - -
- - add_link - - Bind Block + Button Content +
+ expand_more + File Options +
Schema - - {{item.tag}} + + + {{schema.name}} + ({{schema.version}}) + ({{schema.status}}) +
Target Url + +
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.ts index 9b56969331..b1e5fbe742 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/action-config/action-config.component.ts @@ -1,5 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token, UserType } from 'interfaces'; +import { Schema, Token, UserType } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; +import { RegisteredBlocks } from 'src/app/policy-engine/registered-blocks'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,13 +16,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class ActionConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { @@ -31,22 +31,22 @@ export class ActionConfigComponent implements OnInit { dropdownGroup: false }; - block!: BlockNode; + block!: any; - constructor() { + constructor(public registeredBlocks: RegisteredBlocks) { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {}; this.block.uiMetaData.options = this.block.uiMetaData.options || []; } @@ -57,6 +57,7 @@ export class ActionConfigComponent implements OnInit { addOptions() { this.block.uiMetaData.options.push({ + tag: `Option_${this.block.uiMetaData.options.length}`, title: '', name: '', tooltip: '', @@ -66,7 +67,7 @@ export class ActionConfigComponent implements OnInit { } addFilters() { - if(!this.block.filters) { + if (!this.block.filters) { this.block.filters = []; } this.block.filters.push({ @@ -76,4 +77,8 @@ export class ActionConfigComponent implements OnInit { type: 'text', }) } + + getIcon(block: any) { + return this.registeredBlocks.getIcon(block.blockType); + } } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.css b/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.html new file mode 100644 index 0000000000..55c24311d0 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ expand_more + Buttons +
+ add + Add Button +
+
+ expand_more + Button {{i}} + {{button.name}} + + delete + +
Type + + Selector + Selector Dialog + +
Button Tag + +
Dialog Title + +
Dialog Description + +
Button Name + +
Field + +
Value + +
UI Class + +
+ + expand_more + + Filters Option {{i}} +
+ add + Add Filter +
+
+ + expand_more + + Filter {{j}} + + {{filter.field}} {{filter.type}} {{filter.value}} + + + delete + +
Type + + Equal + Not Equal + In + Not In + +
Field + +
Value + +
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.ts new file mode 100644 index 0000000000..e495c3d384 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/button-config/button-config.component.ts @@ -0,0 +1,87 @@ +import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; +import { Schema, Token, UserType } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; +import { RegisteredBlocks } from 'src/app/policy-engine/registered-blocks'; +import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; + +/** + * Settings for block of 'interfaceAction' type. + */ +@Component({ + selector: 'button-config', + templateUrl: './button-config.component.html', + styleUrls: [ + './../../../common-properties/common-properties.component.css', + './button-config.component.css' + ] +}) +export class ButtonConfigComponent implements OnInit { + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; + @Input('tokens') tokens!: Token[]; + @Input('readonly') readonly!: boolean; + @Output() onInit = new EventEmitter(); + + propHidden: any = { + buttonsGroup: false, + buttons: {} + }; + + block!: any; + + constructor(public registeredBlocks: RegisteredBlocks) { + } + + ngOnInit(): void { + this.onInit.emit(this); + this.load(this.currentBlock); + } + + ngOnChanges(changes: SimpleChanges) { + this.load(this.currentBlock); + } + + load(block: PolicyBlockModel) { + this.block = block.properties; + this.block.uiMetaData = this.block.uiMetaData || {}; + this.block.uiMetaData.buttons = this.block.uiMetaData.buttons || []; + for (const i in this.block.uiMetaData.buttons) { + this.propHidden.buttons[i] = {}; + } + } + + onHide(item: any, prop: any) { + item[prop] = !item[prop]; + } + + addButton() { + this.block.uiMetaData.buttons.push({ + tag: `Button_${this.block.uiMetaData.buttons.length}`, + name: '', + type: 'selector', + filters: [] + }) + this.propHidden.buttons[this.block.uiMetaData.buttons.length-1] = {}; + } + + getIcon(block: any) { + return this.registeredBlocks.getIcon(block.blockType); + } + + addFilter(button: any) { + button.filters.push({ + value: '', + field: '', + type: 'equal', + }) + } + + onRemoveButton(i: number) { + this.block.uiMetaData.buttons.splice(i, 1); + } + + onRemoveFilter(button: any, i: number) { + button.filters.splice(i, 1); + } +} diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/container-config/container-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/container-config/container-config.component.ts index 8067095edc..6b91bfcf15 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/container-config/container-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/container-config/container-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,35 +15,33 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class ContainerConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} this.block.uiMetaData.type = this.block.uiMetaData.type || 'blank'; } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.html index a67c22579a..0f438d4ee9 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.html @@ -1,13 +1,5 @@ - - - - - - diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.ts index fb86c09d37..653a94bb5b 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,35 +15,33 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class RolesConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.html index d2eddbbac3..fa87aa3b45 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.html @@ -52,6 +52,14 @@ + + + + + @@ -84,20 +92,5 @@ - - - - -
Stop Propagation - -
expand_more diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.ts index fe829faa01..57cbf765ac 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/information-config/information-config.component.ts @@ -1,5 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; +import { RegisteredBlocks } from 'src/app/policy-engine/registered-blocks'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,35 +16,35 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class InformationConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; - constructor() { + constructor( + public registeredBlocks: RegisteredBlocks + ) { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.html index 5582bac313..7243b3b2d4 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/roles-config/roles-config.component.html @@ -5,7 +5,7 @@ Available Roles - {{item}} + {{item.name}}
Condition Tag + +
- - add_link - - Target Block - - - {{item.tag}} - -
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.ts index 288a6f52d1..47e38656f0 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/main/switch-config/switch-config.component.ts @@ -1,5 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; +import { RegisteredBlocks } from 'src/app/policy-engine/registered-blocks'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; /** @@ -14,38 +16,36 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class SwitchConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, - options:false, + options: false, conditionsGroup: false, conditions: {}, }; - block!: BlockNode; + block!: any; - constructor() { + constructor(public registeredBlocks: RegisteredBlocks) { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.executionFlow = this.block.executionFlow || 'firstTrue'; this.block.conditions = this.block.conditions || []; } @@ -56,6 +56,7 @@ export class SwitchConfigComponent implements OnInit { addCondition() { this.block.conditions.push({ + tag: `Condition_${this.block.conditions.length}`, type: 'equal', value: '', actor: '', @@ -65,4 +66,8 @@ export class SwitchConfigComponent implements OnInit { onRemoveCondition(i: number) { this.block.conditions.splice(i, 1); } + + getIcon(block: any) { + return this.registeredBlocks.getIcon(block.blockType); + } } diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/report/report-item-config/report-item-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/report/report-item-config/report-item-config.component.ts index 36bf6aa883..2e65c80759 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/report/report-item-config/report-item-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/report/report-item-config/report-item-config.component.ts @@ -1,7 +1,8 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; import { IconPreviewDialog } from 'src/app/components/icon-preview-dialog/icon-preview-dialog.component'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; import { API_IPFS_GATEWAY_URL } from 'src/app/services/api'; import { IPFSService } from 'src/app/services/ipfs.service'; import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; @@ -18,13 +19,11 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class ReportItemConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); fileLoading = false; @@ -37,7 +36,7 @@ export class ReportItemConfigComponent implements OnInit { variables: {} }; - block!: BlockNode; + block!: any; constructor( private ipfs: IPFSService, @@ -46,19 +45,19 @@ export class ReportItemConfigComponent implements OnInit { ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.filters = this.block.filters || []; this.block.variables = this.block.variables || []; - this.block.visible = block.visible !== false; - this.block.iconType = block.iconType; + this.block.visible = this.block.visible !== false; + this.block.iconType = this.block.iconType; } onHide(item: any, prop: any) { diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.html b/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.html index 5e59e14079..3e8424f60c 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.html @@ -1,13 +1,5 @@ - - - - - - @@ -99,8 +99,8 @@ @@ -118,7 +118,7 @@ diff --git a/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.ts b/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.ts index d9bfb8d7df..330b4cae8e 100644 --- a/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.ts @@ -1,4 +1,5 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core'; +import { PolicyModel, PolicyRoleModel, PolicyTopicModel } from '../../policy-model'; /** * Settings for policy. @@ -12,7 +13,7 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChang ] }) export class PolicyPropertiesComponent implements OnInit { - @Input('policy') policy!: any; + @Input('policy') policy!: PolicyModel; @Input('readonly') readonly!: boolean; @Input('type') type!: string; @@ -25,8 +26,8 @@ export class PolicyPropertiesComponent implements OnInit { rolesGroup: false, topicsGroup: {} }; - roles: any[] = []; - topics: any[] = []; + roles: PolicyRoleModel[] = []; + topics: PolicyTopicModel[] = []; constructor() { } @@ -36,14 +37,7 @@ export class PolicyPropertiesComponent implements OnInit { } ngOnChanges(changes: SimpleChanges) { - this.roles = []; - if (this.policy.policyRoles) { - for (let i = 0; i < this.policy.policyRoles.length; i++) { - this.roles.push({ - name: this.policy.policyRoles[i] - }) - } - } + this.roles = this.policy.policyRoles; this.topics = this.policy.policyTopics; } @@ -52,15 +46,7 @@ export class PolicyPropertiesComponent implements OnInit { } addRoles() { - if (!this.policy.policyRoles) { - this.policy.policyRoles = []; - } - this.roles.push({ - name: "" - }); - for (let i = 0; i < this.roles.length; i++) { - this.policy.policyRoles[i] = this.roles[i].name; - } + this.policy.createRole(""); setTimeout(() => { if (this.body) { this.body.nativeElement.scrollTop = 10000; @@ -68,20 +54,16 @@ export class PolicyPropertiesComponent implements OnInit { }); } - onEditRole(i: number) { - if (!this.policy.policyRoles) { - this.policy.policyRoles = []; - } - this.policy.policyRoles[i] = this.roles[i].name; + onEditRole(role: PolicyRoleModel) { + role.emitUpdate(); } - onRemoveRole(i: number) { - this.policy.policyRoles.splice(i, 1); - this.roles.splice(i, 1); + onRemoveRole(role: PolicyRoleModel) { + this.policy.removeRole(role) } addTopic() { - this.topics.push({ + this.policy.createTopic({ name: "", description: "", type: "any", @@ -89,7 +71,7 @@ export class PolicyPropertiesComponent implements OnInit { }); } - onRemoveTopic(i: number) { - this.topics.splice(i, 1); + onRemoveTopic(topic: PolicyTopicModel) { + this.policy.removeTopic(topic) } } diff --git a/frontend/src/app/policy-engine/policy-engine.module.ts b/frontend/src/app/policy-engine/policy-engine.module.ts index 6bfbc6c5ac..71f894eb2c 100644 --- a/frontend/src/app/policy-engine/policy-engine.module.ts +++ b/frontend/src/app/policy-engine/policy-engine.module.ts @@ -53,6 +53,11 @@ import { TimerConfigComponent } from './policy-configuration/blocks/documents/ti import { CustomLogicConfigComponent } from './policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component'; import { CodeEditorDialogComponent } from './helpers/code-editor-dialog/code-editor-dialog.component'; import { SwitchConfigComponent } from './policy-configuration/blocks/main/switch-config/switch-config.component'; +import { ConfirmationDialog } from './policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component'; +import { RevokeConfigComponent } from './policy-configuration/blocks/documents/revoke-config/revoke-config.component'; +import { EventsOverview } from './helpers/events-overview/events-overview'; +import { ButtonConfigComponent } from './policy-configuration/blocks/main/button-config/button-config.component'; +import { ButtonBlockComponent } from './policy-viewer/blocks/button-block/button-block.component'; @NgModule({ declarations: [ @@ -100,7 +105,12 @@ import { SwitchConfigComponent } from './policy-configuration/blocks/main/switch TimerConfigComponent, CustomLogicConfigComponent, CodeEditorDialogComponent, - SwitchConfigComponent + SwitchConfigComponent, + EventsOverview, + ConfirmationDialog, + RevokeConfigComponent, + ButtonConfigComponent, + ButtonBlockComponent ], imports: [ CommonModule, @@ -113,6 +123,9 @@ import { SwitchConfigComponent } from './policy-configuration/blocks/main/switch DragDropModule ], exports: [ + ButtonBlockComponent, + ButtonConfigComponent, + RevokeConfigComponent, PolicyConfigurationComponent, DocumentSourceComponent, CommonPropertiesComponent, @@ -150,7 +163,8 @@ import { SwitchConfigComponent } from './policy-configuration/blocks/main/switch CalculateMathConfigComponent, JsonPropertiesComponent, ReassigningConfigComponent, - CronConfigDialog + CronConfigDialog, + EventsOverview ], providers: [ RegisteredBlocks diff --git a/frontend/src/app/policy-engine/policy-model.ts b/frontend/src/app/policy-engine/policy-model.ts new file mode 100644 index 0000000000..c749a41eaf --- /dev/null +++ b/frontend/src/app/policy-engine/policy-model.ts @@ -0,0 +1,895 @@ +export const generateUUIDv4 = function () { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} + + +export class PolicyRoleModel { + private readonly policy: PolicyModel; + + public readonly id: string; + + private _name: string; + + private _changed: boolean; + + constructor(name: string, policy: PolicyModel) { + this._changed = false; + this.policy = policy; + this.id = generateUUIDv4(); + this._name = name; + } + + public get name(): string { + return this._name; + } + + public set name(value: string) { + this._name = value; + this.changed = true; + } + + public get changed(): boolean { + return this._changed; + } + + public set changed(value: boolean) { + this._changed = value; + if (this.policy) { + this.policy.changed = true; + } + } + + public emitUpdate() { + this._changed = false; + this.policy.emitUpdate(); + } + + public getJSON(): string { + return this.name; + } + + public checkChange() { + if (this._changed) { + this.emitUpdate(); + } + } +} + +export class PolicyTopicModel { + private readonly policy: PolicyModel; + + public readonly id: string; + + private _name: string; + private _description: string; + private _type: string; + private _static: boolean; + + private _changed: boolean; + + constructor(topic: any, policy: PolicyModel) { + this._changed = false; + + this.policy = policy; + this.id = topic.id || generateUUIDv4(); + + this._name = topic.name; + this._description = topic.description; + this._type = topic.type; + this._static = topic.static; + } + + public get name(): string { + return this._name; + } + + public set name(value: string) { + this._name = value; + this.changed = true; + } + + public get description(): string { + return this._description; + } + + public set description(value: string) { + this._description = value; + this.changed = true; + } + + public get type(): string { + return this._type; + } + + public set type(value: string) { + this._type = value; + this.changed = true; + } + + public get static(): boolean { + return this._static; + } + + public set static(value: boolean) { + this._static = value; + this.changed = true; + } + + public get changed(): boolean { + return this._changed; + } + + public set changed(value: boolean) { + this._changed = value; + if (this.policy) { + this.policy.changed = true; + } + } + + public emitUpdate() { + this._changed = false; + this.policy.emitUpdate(); + } + + public getJSON(): any { + const json = { + type: this.type, + name: this.name, + description: this.description, + static: this.static + } + return json; + } + + public checkChange() { + if (this._changed) { + this.emitUpdate(); + } + } +} + +export class PolicyEventModel { + private readonly block: PolicyBlockModel; + + public readonly id: string; + + private _actor: string; + private _disabled: boolean; + private _input: string; + private _output: string; + private _source: PolicyBlockModel | null; + private _sourceTag: string; + private _target: PolicyBlockModel | null; + private _targetTag: string; + + private _changed: boolean; + + constructor(event: any, block: PolicyBlockModel) { + this._changed = false; + + this.block = block; + this.id = event.id || generateUUIDv4(); + + this._actor = event.actor || ""; + this._disabled = !!event.disabled; + this._input = event.input || ""; + this._output = event.output || ""; + + if (typeof event.source == "string") { + this._source = null; + this._sourceTag = event.source || ""; + } else { + this._source = event.source; + this._sourceTag = ""; + } + + if (typeof event.target == "string") { + this._target = null; + this._targetTag = event.target || ""; + } else { + this._target = event.target; + this._targetTag = ""; + } + } + public get actor(): string { + return this._actor; + } + + public set actor(value: string) { + this._actor = value; + this.changed = true; + } + + public get disabled(): boolean { + return this._disabled; + } + + public set disabled(value: boolean) { + this._disabled = value; + this.changed = true; + } + + public get input(): string { + return this._input; + } + + public set input(value: string) { + this._input = value; + this.changed = true; + } + + public get output(): string { + return this._output; + } + + public set output(value: string) { + this._output = value; + this.changed = true; + } + + public get source(): PolicyBlockModel | null { + return this._source; + } + + public set source(value: PolicyBlockModel | null) { + this._source = value; + this.changed = true; + } + + public get sourceTag(): string { + if (this._source) { + return this._source.tag; + } + return this._sourceTag; + } + + public get target(): PolicyBlockModel | null { + return this._target; + } + + public set target(value: PolicyBlockModel | null) { + this._target = value; + this.changed = true; + } + + public get targetTag(): string { + if (this._target) { + return this._target.tag; + } + return this._targetTag; + } + + public get changed(): boolean { + return this._changed; + } + + public set changed(value: boolean) { + this._changed = value; + if (this.block) { + this.block.changed = true; + } + } + + public emitUpdate() { + this._changed = false; + this.block.emitUpdate(); + } + + public getJSON(): any { + const json = { + target: this.targetTag, + source: this.sourceTag, + input: this.input, + output: this.output, + actor: this.actor, + disabled: this.disabled + } + return json; + } + + public check(block: PolicyBlockModel): boolean { + return block.id == this.target?.id || block.id == this.source?.id; + } + + public isTarget(block: PolicyBlockModel): boolean { + return block.id == this.target?.id; + } + + public isSource(block: PolicyBlockModel): boolean { + return block.id == this.source?.id; + } + + public remove() { + if (this.block) { + this.block.removeEvent(this); + } + } + + public checkChange() { + if (this._changed) { + this.emitUpdate(); + } + } +} + +export class PolicyBlockModel { + private readonly policy: PolicyModel; + + public readonly id: string; + public readonly blockType: string; + + private _parent: PolicyBlockModel | null; + private _children: PolicyBlockModel[]; + private _events: PolicyEventModel[]; + + public readonly properties: { [name: string]: any }; + + private _changed: boolean; + + constructor(block: any, parent: PolicyBlockModel | null, policy: PolicyModel) { + this._changed = false; + + this.policy = policy; + + this.id = block.id || generateUUIDv4(); + this.blockType = block.blockType; + + block.tag = block.tag || ""; + if (!Array.isArray(block.permissions)) { + block.permissions = []; + } + + this._parent = parent; + + const clone = { ...block }; + delete clone.children; + delete clone.events; + + this.properties = clone; + + this._children = []; + if (Array.isArray(block.children)) { + for (const child of block.children) { + this._children.push( + new PolicyBlockModel(child, this, this.policy) + ) + } + } + + this._events = []; + if (Array.isArray(block.events)) { + for (const event of block.events) { + this._events.push( + new PolicyEventModel(event, this) + ) + } + } + } + + public get tag(): string { + return this.properties.tag; + } + + public set tag(value: string) { + this.properties.tag = value; + this.changed = true; + } + + public get permissions(): string[] { + return this.properties.permissions; + } + + public set permissions(value: string[]) { + if (Array.isArray(value)) { + this.properties.permissions = value; + } else { + this.properties.permissions = []; + } + this.changed = true; + } + + public get children(): PolicyBlockModel[] { + return this._children; + } + + public get events(): PolicyEventModel[] { + return this._events; + } + + public get parent(): PolicyBlockModel | null { + return this._parent; + } + + public get changed(): boolean { + return this._changed; + } + + public set changed(value: boolean) { + this._changed = value; + if (this.policy) { + this.policy.changed = true; + } + } + + public get next(): PolicyBlockModel | undefined { + if (this.parent) { + const index = this.parent.children.findIndex(c => c.id == this.id); + let next = this.parent.children[index + 1]; + return next; + } + return undefined; + } + + public get prev(): PolicyBlockModel | undefined { + if (this.parent) { + const index = this.parent.children.findIndex(c => c.id == this.id); + return this.parent.children[index - 1]; + } + return undefined; + } + + public remove() { + if (this.parent) { + this.parent._removeChild(this); + } + this._parent = null; + + this.policy.refresh(); + } + + public removeChild(child: PolicyBlockModel) { + this._removeChild(child); + child._parent = null; + + this.policy.refresh(); + } + + public createChild(block: any) { + delete block.children; + const child = new PolicyBlockModel(block, this, this.policy); + if (!child.permissions || !child.permissions.length) { + child.permissions = this.permissions.slice(); + } + this._addChild(child); + + this.policy.refresh(); + } + + public copyChild(block: any) { + this._copyChild(block); + this.policy.refresh(); + } + + public addChild(child: PolicyBlockModel) { + this._addChild(child); + + this.policy.refresh(); + } + + private _copyChild(block: any) { + block.id = generateUUIDv4(); + const children = block.children; + delete block.children; + delete block.events; + + const newBlock = new PolicyBlockModel(block, this, this.policy); + newBlock.tag = this.policy.getNewTag(newBlock); + this._addChild(newBlock); + + if (Array.isArray(children)) { + for (const child of children) { + newBlock._copyChild(child); + } + } + } + + private _addChild(child: PolicyBlockModel) { + this._children.push(child); + } + + private _removeChild(child: PolicyBlockModel) { + const index = this._children.findIndex((c) => c.id == child.id); + if (index !== -1) { + this._children.splice(index, 1); + } + } + + public createEvent(event: any) { + const e = new PolicyEventModel(event, this); + this._addEvent(e); + + this.policy.refresh(); + } + + public addEvent(event: PolicyEventModel) { + this._addEvent(event); + + this.policy.refresh(); + } + + private _addEvent(event: PolicyEventModel) { + this._events.push(event); + } + + public removeEvent(event: PolicyEventModel) { + const index = this._events.findIndex((c) => c.id == event.id); + if (index !== -1) { + this._events.splice(index, 1); + this.policy.refresh(); + } + } + + public emitUpdate() { + this._changed = false; + this.policy.emitUpdate(); + } + + public getJSON(): any { + const json: any = { ...this.properties }; + json.id = this.id; + json.blockType = this.blockType; + json.tag = this.tag; + json.children = []; + json.events = []; + + for (const block of this.children) { + json.children.push(block.getJSON()); + } + for (const event of this.policy.allEvents) { + if (event.isSource(this)) { + json.events.push(event.getJSON()); + } + } + + return json; + } + + public rebuild(object: any) { + delete object.children; + delete object.events; + + const keys = Object.keys(object); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + this.properties[key] = object[key]; + } + + this.policy.emitUpdate(); + } + + public checkChange() { + if (this._changed) { + this.emitUpdate(); + } + } +} + +export class PolicyModel { + public readonly valid: boolean; + public readonly id!: string; + public readonly uuid!: string; + public readonly codeVersion!: string; + public readonly creator!: string; + public readonly owner!: string; + public readonly createDate!: string; + public readonly status!: string; + public readonly topicId!: string; + public readonly instanceTopicId!: string; + public readonly messageId!: string; + public readonly version!: string; + public readonly previousVersion!: string; + + private _policyTag!: string; + private _name!: string; + private _description!: string; + private _topicDescription!: string; + private _config!: PolicyBlockModel; + private _policyRoles!: PolicyRoleModel[]; + private _policyTopics!: PolicyTopicModel[]; + + private _tagMap: { [tag: string]: PolicyBlockModel; } = {}; + private _idMap: { [tag: string]: PolicyBlockModel; } = {}; + private _allBlocks!: PolicyBlockModel[]; + private _allEvents!: PolicyEventModel[]; + private _dataSource!: PolicyBlockModel[]; + + private _changed: boolean; + + constructor(policy?: any) { + this._changed = false; + + if (!policy) { + this.valid = false; + return; + } + this.valid = true; + + this.id = policy.id; + this.uuid = policy.uuid || generateUUIDv4(); + this.codeVersion = policy.codeVersion; + this.creator = policy.creator; + this.owner = policy.owner; + this.createDate = policy.createDate; + this.status = policy.status; + this.topicId = policy.topicId; + this.instanceTopicId = policy.instanceTopicId; + this.messageId = policy.messageId; + this.version = policy.version; + this.previousVersion = policy.previousVersion; + + this.buildPolicy(policy); + this.buildBlock(policy.config); + } + + public get policyTag(): string { + return this._policyTag; + } + + public set policyTag(value: string) { + this._policyTag = value; + this.changed = true; + } + + public get name(): string { + return this._name; + } + + public set name(value: string) { + this._name = value; + this.changed = true; + } + + public get description(): string { + return this._description; + } + + public set description(value: string) { + this._description = value; + this.changed = true; + } + + public get topicDescription(): string { + return this._topicDescription; + } + + public set topicDescription(value: string) { + this._topicDescription = value; + this.changed = true; + } + + public get allBlocks(): PolicyBlockModel[] { + return this._allBlocks; + } + + public get allEvents(): PolicyEventModel[] { + return this._allEvents; + } + + public get root(): PolicyBlockModel { + return this._config; + } + + public get dataSource(): PolicyBlockModel[] { + return this._dataSource; + } + + public get readonly(): boolean { + return this.status == 'PUBLISH'; + } + + public get policyRoles(): PolicyRoleModel[] { + return this._policyRoles; + } + + public get policyTopics(): PolicyTopicModel[] { + return this._policyTopics; + } + + public get changed(): boolean { + return this._changed; + } + + public set changed(value: boolean) { + this._changed = value; + } + + public getBlock(block: any): PolicyBlockModel | undefined { + return this._idMap[block.id]; + } + + public createTopic(topic: any) { + const e = new PolicyTopicModel(topic, this); + this.addTopic(e); + } + + public addTopic(topic: PolicyTopicModel) { + this._policyTopics.push(topic); + this.emitUpdate(); + } + + public removeTopic(topic: PolicyTopicModel) { + const index = this._policyTopics.findIndex((c) => c.id == topic.id); + if (index !== -1) { + this._policyTopics.splice(index, 1); + this.emitUpdate(); + } + } + + public createRole(name: string) { + const e = new PolicyRoleModel(name, this); + this.addRole(e); + } + + public addRole(role: PolicyRoleModel) { + this._policyRoles.push(role); + this.emitUpdate(); + } + + public removeRole(role: PolicyRoleModel) { + const index = this._policyRoles.findIndex((c) => c.id == role.id); + if (index !== -1) { + this._policyRoles.splice(index, 1); + this.emitUpdate(); + } + } + + private registeredBlock(block: PolicyBlockModel) { + this._allBlocks.push(block); + for (const event of block.events) { + this._allEvents.push(event); + } + for (const child of block.children) { + this.registeredBlock(child); + } + } + + public removeBlock(block: any) { + const item = this._idMap[block.id]; + if (item) { + item.remove(); + } + } + + public removeEvent(event: any) { + const item = this._allEvents.find(e => e.id == event.id); + if (item) { + item.remove(); + } + } + + private buildPolicy(policy: any) { + this._policyTag = policy.policyTag; + this._name = policy.name; + this._description = policy.description; + this._topicDescription = policy.topicDescription; + + this._policyRoles = []; + if (Array.isArray(policy.policyRoles)) { + for (const role of policy.policyRoles) { + this._policyRoles.push(new PolicyRoleModel(role, this)); + } + } + + this._policyTopics = []; + if (Array.isArray(policy.policyTopics)) { + for (const topic of policy.policyTopics) { + this._policyTopics.push(new PolicyTopicModel(topic, this)); + } + } + } + + private buildBlock(config: any) { + if (config) { + this._config = new PolicyBlockModel(config, null, this); + } else { + this._config = new PolicyBlockModel({ + blockType: "interfaceContainerBlock" + }, null, this); + } + this._refresh(); + } + + public rebuild(object?: any) { + if (object) { + if (object.config) { + this.buildPolicy(object); + this.buildBlock(object.config); + } else { + this.buildBlock(object); + } + } + this.emitUpdate(); + } + + private _refresh() { + this._tagMap = {}; + this._idMap = {}; + this._allBlocks = []; + this._allEvents = []; + this.registeredBlock(this._config); + + for (const block of this._allBlocks) { + this._tagMap[block.tag] = block; + this._idMap[block.id] = block; + } + + for (const event of this._allEvents) { + event.source = this._tagMap[event.sourceTag]; + event.target = this._tagMap[event.targetTag]; + } + + this._dataSource = [this._config]; + } + + public refresh() { + this._refresh(); + this.emitUpdate(); + } + + public getNewTag(block?: PolicyBlockModel): string { + let name = 'Block'; + for (let i = 1; i < 1000; i++) { + name = `Block_${i}`; + if (!this._tagMap[name]) { + if (block) { + this._tagMap[name] = block; + } + return name; + } + } + return 'Block'; + } + + public getJSON(): any { + const json = { + id: this.id, + uuid: this.uuid, + name: this.name, + version: this.version, + previousVersion: this.previousVersion, + description: this.description, + topicDescription: this.topicDescription, + status: this.status, + creator: this.creator, + owner: this.owner, + topicId: this.topicId, + instanceTopicId: this.instanceTopicId, + policyTag: this.policyTag, + messageId: this.messageId, + codeVersion: this.codeVersion, + createDate: this.createDate, + policyRoles: Array(), + policyTopics: Array(), + config: null, + }; + for (const role of this.policyRoles) { + json.policyRoles.push(role.getJSON()); + } + for (const topic of this._policyTopics) { + json.policyTopics.push(topic.getJSON()); + } + json.config = this._config.getJSON(); + return json; + } + + public emitUpdate() { + this._changed = false; + if (this._subscriber) { + this._subscriber(); + } + } + + private _subscriber!: Function; + public subscribe(fn: Function) { + this._subscriber = fn; + } + + public checkChange() { + if (this._changed) { + this.emitUpdate(); + } + } +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-storage.ts b/frontend/src/app/policy-engine/policy-storage.ts new file mode 100644 index 0000000000..e32e2a26a4 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-storage.ts @@ -0,0 +1,230 @@ +interface PolicyStorageItem { + view: string; + value: string; +} + + +/** + * Base class for storing states + * + * @export + * @class Stack + * @template T + */ +export class Stack { + private MAX_STACK_SIZE = 100; + private stack: Array; + private stackSize: number; + private stackIndex: number; + private maxSize: number; + + constructor(maxSize: number) { + if (maxSize > 0 && maxSize < this.MAX_STACK_SIZE) { + this.maxSize = maxSize + 1; + } else { + this.maxSize = this.MAX_STACK_SIZE; + } + this.stack = new Array(this.maxSize); + this.stackSize = 0; + this.stackIndex = 0; + } + + public push(item: T): void { + if (this.stackIndex > 0) { + this.stackSize = this.stackSize - this.stackIndex; + for (let index = 0; index < this.stackSize; index++) { + this.stack[index] = this.stack[this.stackIndex]; + this.stackIndex++; + } + } + this.stackSize++; + this.stackIndex = 0; + if (this.stackSize > this.maxSize) { + this.stackSize = this.maxSize; + } + if (this.stackSize < 0) { + this.stackSize = 0; + } + for (let index = this.maxSize - 1; index > 0; index--) { + if (index > this.stackSize) { + this.stack[index] = null; + } else { + this.stack[index] = this.stack[index - 1]; + } + } + this.stack[0] = item; + } + + public pop(): T | null { + if (this.stackSize < 1) { + return null; + } + this.stackIndex = 0; + let item = this.stack[0]; + for (let index = 0; index < this.maxSize; index++) { + if (index >= this.stackSize) { + this.stack[index] = null; + } else { + this.stack[index] = this.stack[index + 1]; + } + } + this.stackSize--; + return item; + } + + public undo(): T | null { + if (this.stackSize < 1) { + return null; + } + this.stackIndex++; + if (this.stackIndex > this.stackSize) { + this.stackIndex = this.stackSize; + } + return this.stack[this.stackIndex]; + } + + public redo(): T | null { + if (this.stackSize < 1) { + return null; + } + this.stackIndex--; + if (this.stackIndex < 0) { + this.stackIndex = 0; + } + return this.stack[this.stackIndex]; + } + + public current(): T | null { + if (this.stackSize < 1) { + return null; + } + if (this.stackIndex < 0) { + this.stackIndex = 0; + } + return this.stack[this.stackIndex]; + } + + public clear(): void { + this.stack = new Array(this.maxSize); + this.stackSize = 0; + this.stackIndex = 0; + } + + public isUndo(): boolean { + return this.stackIndex < this.stackSize - 1; + } + + public isRedo(): boolean { + return this.stackIndex > 0; + } +} + +export class PolicyStorage { + private readonly STORAGE_NAME = 'POLICY_STORAGE'; + + private _storage: Storage; + private _policyStorage: Stack; + private _policyId!: string; + + constructor(storage: Storage) { + this._storage = storage; + this._policyStorage = new Stack(10); + } + + public load(policyId: string) { + this._policyId = policyId; + this._policyStorage.clear(); + + const storageMap = this.getMap(); + const item = storageMap[policyId]; + if (item) { + this._policyStorage.push(item); + } + } + + public get current(): PolicyStorageItem | null { + return this._policyStorage.current(); + } + + public get isUndo(): boolean { + return this._policyStorage.isUndo(); + } + + public get isRedo(): boolean { + return this._policyStorage.isRedo(); + } + + public undo(): PolicyStorageItem | null { + const item = this._policyStorage.undo(); + this.save(); + return item; + } + + public redo(): PolicyStorageItem | null { + const item = this._policyStorage.redo(); + this.save(); + return item; + } + + public push(view: string, value: string) { + const current = this._policyStorage.current(); + if ( + current && + current.value == value && + current.view == view + ) { + return; + } + this._policyStorage.push({ + value: value, + view: view + }); + this.save(); + } + + public set(view: string, value: string) { + this._policyStorage.clear(); + this._policyStorage.push({ + value: value, + view: view + }); + this.save(); + } + + public save() { + if (this._policyId) { + this.setMap(this._policyId, this._policyStorage.current()); + } + } + + private setMap(policyId: string, value: any): any { + const storageMap = this.getMap(); + try { + storageMap[policyId] = value; + const storageValue = JSON.stringify(storageMap); + this._storage.setItem(this.STORAGE_NAME, storageValue); + } catch (error) { + delete storageMap[policyId]; + const storageValue = JSON.stringify(storageMap); + this._storage.setItem(this.STORAGE_NAME, storageValue); + } + } + + private getMap(): any { + try { + const storageValue = this._storage.getItem(this.STORAGE_NAME); + let storageMap = {}; + if (storageValue) { + storageMap = JSON.parse(storageValue); + } else { + storageMap = {}; + this._storage.setItem(this.STORAGE_NAME, JSON.stringify(storageMap)); + } + return storageMap; + } catch (error) { + let storageMap = {}; + this._storage.setItem(this.STORAGE_NAME, JSON.stringify(storageMap)); + return storageMap; + } + } +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.css b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.css new file mode 100644 index 0000000000..0705aeace6 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.css @@ -0,0 +1,78 @@ +.loading { + background: #fff; + position: fixed; + z-index: 99; + top: var(--header-height-policy); + left: 0; + bottom: 0; + right: 0; + display: flex; + align-items: center; + justify-items: center; + justify-content: center; + align-content: center; +} + +.btn-approve { + background: #4caf50; + border-radius: 6px; + color: #fff; + display: inline-block; + padding: 2px 8px; + margin: 0px 5px; + cursor: pointer; + font-weight: 500; +} + +.btn-reject { + background: #f44336; + border-radius: 6px; + color: #fff; + display: inline-block; + padding: 2px 8px; + margin: 0px 5px; + cursor: pointer; + font-weight: 500; +} + +.status-NEW { + color: #0000ee; +} +.status-APPROVED { + color: #4caf50; +} +.status-REJECTED { + color: #f44336; +} + +.btn-link { + cursor: pointer; + width: auto; + font-size: 20px; + color: #0B73F8; + text-decoration: none; + display: inline-block; + border-bottom: 3px solid #0C77FF; + padding-bottom: 3px; + font-weight: normal; + text-transform: capitalize; +} + +.content .btn-option { + height: 26px; + text-align: center; + border-radius: 60px !important; + position: relative; + margin-right: 10px; + height: 38px; + box-shadow: 0px 3px 6px #00000029; + border-radius: 24px !important; + padding: 8px 20px !important; + box-sizing: border-box; + font-size: 20px; +} + +.content { + display: flex; + justify-content: center; +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.html b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.html new file mode 100644 index 0000000000..0b9399573d --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.html @@ -0,0 +1,19 @@ +
+ +
+ +
+ +
+
+ {{button.name}} +
+
+ +
+
+ {{button.name}} +
+
+
+
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.ts b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.ts new file mode 100644 index 0000000000..7d7aec31b8 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/button-block/button-block.component.ts @@ -0,0 +1,183 @@ +import { AfterContentChecked, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { PolicyEngineService } from 'src/app/services/policy-engine.service'; +import { PolicyHelper } from 'src/app/services/policy-helper.service'; +import { ConfirmationDialog } from '../confirmation-dialog/confirmation-dialog.component'; + +/** + * Component for display block of 'Buttons' type. + */ +@Component({ + selector: 'button-block', + templateUrl: './button-block.component.html', + styleUrls: ['./button-block.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ButtonBlockComponent implements OnInit, AfterContentChecked { + @Input('id') id!: string; + @Input('policyId') policyId!: string; + @Input('static') static!: any; + + loading: boolean = true; + socket: any; + data: any; + uiMetaData: any; + buttons: any; + commonVisible: boolean = true; + private readonly _commentField: string = 'comment'; + + constructor( + private policyEngineService: PolicyEngineService, + private policyHelper: PolicyHelper, + public dialog: MatDialog, + private cdref: ChangeDetectorRef + ) { + } + ngAfterContentChecked(): void { + if (!this.buttons) { + return; + } + for (let i = 0; i < this.buttons.length; i++) { + let button = this.buttons[i]; + button.visible = this.checkVisible(button); + } + this.cdref.detectChanges(); + } + + ngOnInit(): void { + if (!this.static) { + this.socket = this.policyEngineService.subscribe(this.onUpdate.bind(this)); + } + this.loadData(); + } + + ngOnDestroy(): void { + if (this.socket) { + this.socket.unsubscribe(); + } + } + + onUpdate(id: string): void { + if (this.id == id) { + this.loadData(); + } + } + + loadData() { + this.loading = true; + if (this.static) { + this.setData(this.static); + setTimeout(() => { + this.loading = false; + }, 500); + } else { + this.policyEngineService.getBlockData(this.id, this.policyId).subscribe((data: any) => { + this.setData(data); + setTimeout(() => { + this.loading = false; + }, 1000); + }, (e) => { + console.error(e.error); + this.loading = false; + }); + } + } + + setData(data: any) { + if (data) { + this.data = data.data; + this.uiMetaData = data.uiMetaData; + this.buttons = this.uiMetaData.buttons || []; + } else { + this.data = null; + } + } + + checkVisible(button: any) { + let result = true; + if (!this.data) { + return result; + } + if (button.field) { + result = this.getObjectValue(this.data, button.field) !== button.value; + } + if (!result) { + return result; + } + if (!button.filters) { + return result; + } + for (const filter of button.filters) { + const fieldValue = this.getObjectValue(this.data, filter.field); + switch (filter.type) { + case 'equal': + result = result && (fieldValue == filter.value); + break; + case 'not_equal': + result = result && (fieldValue != filter.value); + break; + case 'in': + filter.value.split(',').foreach((val: any) => result = result && (val == fieldValue)); + break; + case 'not_in': + filter.value.split(',').foreach((val: any) => result = result && (val != fieldValue)); + break; + } + } + return result; + } + + getObjectValue(data: any, value: any) { + let result: any = null; + if (data && value) { + const keys = value.split('.'); + result = data; + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + result = result[key]; + } + } + return result; + } + + setObjectValue(data: any, field: any, value: any) { + let result: any = null; + if (data && field) { + const keys = field.split('.'); + result = data; + for (let i = 0; i < keys.length - 1; i++) { + const key = keys[i]; + result = result[key]; + } + result[keys[keys.length - 1]] = value; + } + return result; + } + + onSelect(button: any) { + this.setObjectValue(this.data, button.field, button.value); + this.commonVisible = false; + this.policyEngineService.setBlockData(this.id, this.policyId, { document: this.data, tag: button.tag }).subscribe(() => { + this.loadData(); + }, (e) => { + console.error(e.error); + this.loading = false; + }); + } + + onSelectDialog(button: any) { + const dialogRef = this.dialog.open(ConfirmationDialog, { + data: { + title: button.title, + description: button.description + } + }); + + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.setObjectValue(this.data, this._commentField, result); + this.onSelect(button); + } + }); + } +} diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.css b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.css new file mode 100644 index 0000000000..c7d24cc423 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.css @@ -0,0 +1,3 @@ +.content { + overflow: visible; +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.html b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.html new file mode 100644 index 0000000000..0830e69387 --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.html @@ -0,0 +1,13 @@ +

{{this.title}}

+
+
{{this.description}}
+
+ + + +
+
+ + +
+
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.ts b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.ts new file mode 100644 index 0000000000..7c341aa5ef --- /dev/null +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/confirmation-dialog/confirmation-dialog.component.ts @@ -0,0 +1,36 @@ +import { Component, Inject } from '@angular/core'; +import { FormControl, Validators } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; + +/** + * Dialog allowing you to select a file and load schemes. + */ +@Component({ + selector: 'confirmation-dialog', + templateUrl: './confirmation-dialog.component.html', + styleUrls: ['./confirmation-dialog.component.css'] +}) +export class ConfirmationDialog { + value: FormControl = new FormControl(''); + title: string = ""; + description: string = ""; + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any + ) { + this.title = data.title; + this.description = data.description; + } + + ngOnInit() { + } + + onNoClick(): void { + this.dialogRef.close(null); + } + + onSubmit() { + this.dialogRef.close(this.value.value); + } +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.css b/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.css index 27e00470c8..7f66aa93d7 100644 --- a/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.css +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.css @@ -103,4 +103,81 @@ max-width: 40vw; display: inline-block; text-overflow: ellipsis; +} + +tr.detailed-row { + height: 0; +} + +.expanded-detail { + max-width: unset !important; +} + +.table-row td { + border-bottom-width: 0; +} + +.timeline-container { + max-width: 1024px; + width: 90%; + margin: 0 auto; +} + +.timeline-item { + padding: 3em 2em 2em; + position: relative; + color: rgba(0, 0, 0, 0.7); + border-left: 2px solid rgba(0, 0, 0, 0.3); +} +.timeline-item p { + font-size: 1rem; +} +.timeline-item::before { + content: attr(date-is); + position: absolute; + left: 2em; + font-weight: bold; + top: 1em; + display: block; + font-family: "Roboto", sans-serif; + font-weight: 700; + font-size: 0.785rem; +} + +.timeline-item::after { + width: 10px; + height: 10px; + display: block; + top: 1em; + position: absolute; + left: -7px; + border-radius: 10px; + content: ""; + border: 2px solid rgba(0, 0, 0, 0.3); + background: white; +} + +.timeline-item:last-child { + border-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 60%, rgba(0, 0, 0, 0)) 1 100%; +} + +.has-history-row { + cursor: pointer; +} + +.mat-column-history { + width: 30px; +} + +tr.revoked td { + position: relative; +} + +tr.revoked td:not(.mat-column-history):before { + content: " "; + position: absolute; + top: 50%; + left: 0; + border-bottom: 2px solid rgb(105, 105, 105); + width: 100%; } \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.html b/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.html index 6a44d2bb61..eb76fd4362 100644 --- a/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.html +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/documents-source-block/documents-source-block.component.html @@ -9,7 +9,18 @@
-
Stop Propagation - -
expand_more diff --git a/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.ts b/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.ts index 2ba7082cce..1ff8c721bd 100644 --- a/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/blocks/tokens/mint-config/mint-config.component.ts @@ -1,7 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; -import { Schema, Token } from 'interfaces'; -import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source'; - +import { Schema, Token } from '@guardian/interfaces'; +import { PolicyBlockModel, PolicyModel } from 'src/app/policy-engine/policy-model'; /** * Settings for block of 'mintDocument' and 'wipeDocument' types. */ @@ -14,35 +13,33 @@ import { BlockNode } from '../../../../helpers/tree-data-source/tree-data-source ] }) export class MintConfigComponent implements OnInit { - @Input('target') target!: BlockNode; - @Input('all') all!: BlockNode[]; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; @Output() onInit = new EventEmitter(); propHidden: any = { main: false, }; - block!: BlockNode; + block!: any; constructor() { } ngOnInit(): void { this.onInit.emit(this); - this.load(this.target); + this.load(this.currentBlock); } ngOnChanges(changes: SimpleChanges) { - this.load(this.target); + this.load(this.currentBlock); } - load(block: BlockNode) { - this.block = block; + load(block: PolicyBlockModel) { + this.block = block.properties; this.block.uiMetaData = this.block.uiMetaData || {} } diff --git a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.css b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.css index 1b39da554f..c5ddc4835d 100644 --- a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.css +++ b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.css @@ -63,6 +63,7 @@ padding-top: 26px; background: #3f51b5; } + .table-body { overflow-y: scroll; max-height: 100%; @@ -76,14 +77,17 @@ left: 0; top: 0; } + .header .propHeader { background: #3f51b5; color: #fff; position: relative; } + .header .propHeader .propHeaderCell { font-weight: 500; } + .header .propRowCol { background: #3f51b5; width: 18px; @@ -95,6 +99,7 @@ margin: 0px; background: #e5e5e5; } + .propHeader { background: #e5e5e5; color: black; @@ -102,6 +107,7 @@ font-weight: 500; position: relative; } + .properties .propHeader::after, .table-body .propHeader::after { position: absolute; @@ -127,26 +133,45 @@ box-sizing: border-box; box-shadow: 0px -1px 0 0 #919191; } + .propRow .propRowCell { background: #fff; position: relative; } + .propRow:nth-child(2n) .propRowCell { background: #f7f7f7; } + .cellName { width: 160px; padding-left: 5px; } + +.table-body .cellName { + height: 24px; +} + .subRow .cellName { padding-left: 20px; width: 145px; } + .subRow-2 .cellName { padding-left: 40px; width: 125px; } +.subRow-3 .cellName { + padding-left: 60px; + width: 105px; +} + +.subRow-4 .cellName { + padding-left: 80px; + width: 85px; +} + .cellTitle { font-weight: 500; } @@ -158,7 +183,8 @@ cursor: pointer; user-select: none; } -.propRowCol mat-icon { + +.propRowCol mat-icon { position: absolute; left: -1px; top: -1px; @@ -166,10 +192,12 @@ width: 20px; pointer-events: none; } -.propRowCol[collapse="true"] mat-icon { + +.propRowCol[collapse="true"] mat-icon { transform: rotate(-90deg); top: 2px; } + .propRow[collapse="true"] { display: none; } @@ -191,6 +219,7 @@ position: relative; width: 24px; } + .ui-properties .ui-prop-row-header { height: 18px; background: #e5e5e5; @@ -232,6 +261,7 @@ font-size: 20px; pointer-events: none; } + .propAdd span { pointer-events: none; } @@ -306,7 +336,8 @@ input[readonly][type="checkbox"] { } .readonly-prop { - padding-left: 4px; + padding-left: 2px; + color: rgba(0,0,0,.45); } .remove-prop { @@ -329,22 +360,27 @@ input[readonly][type="checkbox"] { padding-left: 0px !important; width: 140px !important; } + .lvl[lvl="1"] { padding-left: 8px !important; width: 132px !important; } + .lvl[lvl="2"] { padding-left: 16px !important; width: 124px !important; } + .lvl[lvl="3"] { padding-left: 24px !important; width: 116px !important; } + .lvl[lvl="3"] { padding-left: 32px !important; width: 108px !important; } + .lvl[lvl="4"] { padding-left: 40px !important; width: 100px !important; @@ -354,9 +390,90 @@ input[readonly][type="checkbox"] { color: #6166ff; } + .mat-option-link mat-icon { margin-right: 2px; top: -2px; left: -4px; position: relative; } + +.prop-icon { + display: inline-block !important; + height: 18px !important; + width: auto !important; + line-height: 18px !important; + overflow: hidden !important; +} + +.prop-icon-text { + display: inline-block !important; + height: 16px !important; + width: auto !important; + line-height: 16px !important; + overflow: hidden !important; +} + +.prop-icon mat-icon { + position: relative !important; + font-size: 20px !important; +} + +div[disabled="true"] { + filter: grayscale(1); + opacity: 0.7; +} + +.prop-icon-event { + color: #bd9012; + width: 20px !important; +} +.prop-icon-event[invalid="true"] { + color: #f00; +} + +.block-name { + padding-left: 32px; + position: relative; +} + +.block-icon { + position: absolute; + left: 0px; + top: 0px; +} + +.prop-icon-output-event { + display: inline-block !important; + height: 18px !important; + width: auto !important; + line-height: 18px !important; + overflow: hidden !important; + top: 4px; + left: 3px; + position: relative; +} + +.prop-icon-input-event { + display: inline-block !important; + height: 18px !important; + width: auto !important; + line-height: 18px !important; + overflow: hidden !important; + top: 3px; + left: 1px; + position: relative; +} +.prop-icon-output-event mat-icon, +.prop-icon-input-event mat-icon { + position: relative !important; + font-size: 18px !important; + top: 0px; +} + +.custom { + height: 14px; + line-height: 14px; + display: inline-block; + min-width: 1px; +} \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.html b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.html index e8169dc5f9..dd725132e1 100644 --- a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.html @@ -1,4 +1,4 @@ -
+
@@ -87,20 +87,19 @@ @@ -108,58 +107,308 @@ - - - - - - + + - + + - + - + - +
Tag - +
Permissions - + Owner No Role Any Role - - {{item}} - + {{item.name}} +
Default Active - -
Dependencies - - {{item.tag}} - +
Follow UserStop Propagation - +
On errors - + {{item.label}}
Timeout - +
Fallback step - +
Fallback tag - +
+
+ +
+
+ + + + + + +
PropertyValue
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ add + Add Event +
+
+
+ expand_more + +
+ + flash_on + + + arrow_upward + + Default Event +
+
Event Type + Output Event +
Source + Current Block +
+ Output Event + + RunEvent +
Target + Next Block +
+ Input Event + + RunEvent +
+ Event Actor + + Event Initiator +
Disabled + +
+ expand_more + +
+ + flash_on + + + arrow_downward + + + arrow_upward + + Input Event + Output Event +
+
+ + delete + +
Event Type + + Input Event + Output Event + +
Source + Current Block +
Source + + + + {{item.sourceTag}} + + + +
+
+ {{getIcon(item)}} +
+ {{item.tag}} +
+
+
+
Output Event + + + + {{e}} + + +
Target + + + + {{item.targetTag}} + + + +
+
+ {{getIcon(item)}} +
+ {{item.tag}} +
+
+
+
Target + Current Block +
Input Event + + + + {{e}} + + +
Event Actor + + Event Initiator + Document Owner + Document Issuer + +
Disabled + +
+
+
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.ts b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.ts index ae34ebab8f..b09419506b 100644 --- a/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/common-properties/common-properties.component.ts @@ -1,7 +1,8 @@ import { Component, ComponentFactoryResolver, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core'; -import { BlockErrorActions, Schema, Token } from 'interfaces'; +import { BlockErrorActions, Schema, Token } from '@guardian/interfaces'; import { IBlockAbout, RegisteredBlocks } from '../../registered-blocks'; import { BlockNode } from '../../helpers/tree-data-source/tree-data-source'; +import { PolicyBlockModel, PolicyEventModel, PolicyModel } from '../../policy-model'; /** * Settings for all blocks. @@ -14,21 +15,23 @@ import { BlockNode } from '../../helpers/tree-data-source/tree-data-source'; export class CommonPropertiesComponent implements OnInit { @ViewChild("configContainer", { read: ViewContainerRef }) configContainer!: ViewContainerRef; - @Input('block') currentBlock!: BlockNode; - @Input('schemes') schemes!: Schema[]; + @Input('policy') policy!: PolicyModel; + @Input('block') currentBlock!: PolicyBlockModel; + + @Input('schemas') schemas!: Schema[]; @Input('tokens') tokens!: Token[]; - @Input('all') allBlocks!: BlockNode[]; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; + @Input('type') type!: string; + @Output() onInit = new EventEmitter(); propHidden: any = { about: true, metaData: false, + eventsGroup: {} }; - block!: BlockNode; + block!: PolicyBlockModel; about!: IBlockAbout; errorActions = [ { @@ -48,6 +51,10 @@ export class CommonPropertiesComponent implements OnInit { value: BlockErrorActions.GOTO_TAG } ]; + events: PolicyEventModel[] = []; + inputEvents: any[] = []; + outputEvents: any[] = []; + defaultEvent: boolean = false; constructor( public registeredBlocks: RegisteredBlocks, @@ -72,20 +79,106 @@ export class CommonPropertiesComponent implements OnInit { item[prop] = !item[prop]; } - load(block: BlockNode) { - if (!this.configContainer) { - return; + isOutputEvent(event: PolicyEventModel) { + return event.isSource(this.block); + } + + isInputEvent(event: PolicyEventModel) { + return event.isTarget(this.block) && !this.isOutputEvent(event); + } + + chanceType(event: any, item: PolicyEventModel) { + if (event.value != this.isInputEvent(item)) { + const s = item.source; + item.source = item.target; + item.target = s; + item.output = ""; + item.input = ""; + } + this.onSave(); + } + + isInvalid(item: PolicyEventModel) { + return ( + !item.target || + !item.source || + !item.output || + !item.input || + (item.target == item.source) + ); + } + + addEvent() { + const event = { + id: this.registeredBlocks.generateUUIDv4(), + source: this.block, + target: null, + output: "", + input: "", + disabled: false + } + this.block.createEvent(event); + } + + onRemoveEvent(event: PolicyEventModel) { + this.policy.removeEvent(event); + } + + load(block: PolicyBlockModel) { + if (this.block != block && this.type == 'Events') { + this.block = block; + this.loadEvents(block); } - if (this.block != block) { + if (this.block != block && this.type != 'Events') { + this.loadEvents(block); this.loadComponent(block); } } - loadComponent(block: BlockNode) { + loadEvents(block: PolicyBlockModel) { + this.events = block.events; + const about = this.registeredBlocks.getAbout(block.blockType, block); + this.inputEvents = about.input; + this.outputEvents = about.output; + this.defaultEvent = about.defaultEvent; + } + + getIcon(block: PolicyBlockModel) { + return this.registeredBlocks.getIcon(block.blockType); + } + + getOutputEvents(event: PolicyEventModel) { + try { + if (event.source && event.source.blockType) { + const about = this.registeredBlocks.getAbout(event.source.blockType, event.source); + return about.output || []; + } + return []; + } catch (error) { + return []; + } + } + + getInputEvents(event: PolicyEventModel) { + try { + if (event.target && event.target.blockType) { + const about = this.registeredBlocks.getAbout(event.target.blockType, event.target); + return about.input || []; + } + return []; + } catch (error) { + return []; + } + } + + loadComponent(block: PolicyBlockModel) { + if (!this.configContainer) { + return; + } setTimeout(() => { this.block = block; - if (!this.block.onErrorAction) { - this.block.onErrorAction = BlockErrorActions.NO_ACTION; + if (!this.block.properties.onErrorAction) { + this.block.properties.onErrorAction = BlockErrorActions.NO_ACTION; } this.configContainer.clear(); const factory: any = this.registeredBlocks.getProperties(block.blockType); @@ -93,14 +186,18 @@ export class CommonPropertiesComponent implements OnInit { if (factory) { let componentFactory = this.componentFactoryResolver.resolveComponentFactory(factory); let componentRef: any = this.configContainer.createComponent(componentFactory); - componentRef.instance.target = this.currentBlock; - componentRef.instance.schemes = this.schemes; - componentRef.instance.all = this.allBlocks; - componentRef.instance.readonly = this.readonly; + componentRef.instance.policy = this.policy; + componentRef.instance.currentBlock = this.currentBlock; + componentRef.instance.schemas = this.schemas; componentRef.instance.tokens = this.tokens; - componentRef.instance.roles = this.roles; - componentRef.instance.topics = this.topics; + componentRef.instance.readonly = this.readonly; } }) } + + onSave() { + if(this.block) { + this.block.emitUpdate(); + } + } } diff --git a/frontend/src/app/policy-engine/policy-configuration/json-properties/json-properties.component.ts b/frontend/src/app/policy-engine/policy-configuration/json-properties/json-properties.component.ts index 12e1d2fdbf..a0ffa46aa7 100644 --- a/frontend/src/app/policy-engine/policy-configuration/json-properties/json-properties.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/json-properties/json-properties.component.ts @@ -1,7 +1,8 @@ import { Component, ComponentFactoryResolver, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core'; -import { Schema, Token } from 'interfaces'; +import { Schema, Token } from '@guardian/interfaces'; import { RegisteredBlocks } from '../../registered-blocks'; import { BlockNode } from '../../helpers/tree-data-source/tree-data-source'; +import { PolicyBlockModel } from '../../policy-model'; /** * Settings for all blocks. @@ -14,20 +15,16 @@ import { BlockNode } from '../../helpers/tree-data-source/tree-data-source'; export class JsonPropertiesComponent implements OnInit { @ViewChild("configContainer", { read: ViewContainerRef }) configContainer!: ViewContainerRef; - @Input('block') currentBlock!: BlockNode; - @Input('schemes') schemes!: Schema[]; - @Input('tokens') tokens!: Token[]; - @Input('all') allBlocks!: BlockNode[]; + @Input('block') currentBlock!: PolicyBlockModel; @Input('readonly') readonly!: boolean; - @Input('roles') roles!: string[]; - @Input('topics') topics!: any[]; + @Output() onInit = new EventEmitter(); propHidden: any = { metaData: false, }; - block!: BlockNode; + block!: PolicyBlockModel; codeMirrorOptions: any = { theme: 'default', @@ -71,38 +68,24 @@ export class JsonPropertiesComponent implements OnInit { item[prop] = !item[prop]; } - load(block: BlockNode) { + load(block: PolicyBlockModel) { this.errors = []; this.block = block; if (this.block) { - const block = { ...this.block } as any; - delete block.children; - this.code = JSON.stringify(block, null, 2); + this.code = JSON.stringify(block.getJSON(), null, 2); } else { this.code = ''; } } onClose() { - this.errors = []; - if (this.block) { - const block = { ...this.block } as any; - delete block.children; - this.code = JSON.stringify(block, null, 2); - } else { - this.code = ''; - } + this.load(this.block); } onSave() { try { const block = JSON.parse(this.code); - delete block.children; - const keys = Object.keys(block); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - this.block[key] = block[key]; - } + this.block.rebuild(block) } catch (error: any) { this.errors = [error.message]; } diff --git a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.css b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.css index 4ee689ab92..4670f13e84 100644 --- a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.css +++ b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.css @@ -1,5 +1,3 @@ - - .content { width: 100%; height: 100%; @@ -66,7 +64,7 @@ padding-left: 40px; } -.example-tree div[role=group] > .mat-tree-node { +.example-tree div[role=group]>.mat-tree-node { padding-left: 40px; } @@ -243,7 +241,7 @@ user-select: none; } -.group[col-group="true"] .group-col mat-icon{ +.group[col-group="true"] .group-col mat-icon { transform: rotate(-90deg); } @@ -300,6 +298,7 @@ .btn-group { min-width: 52px; } + .btn-new-block { min-width: 60px; } @@ -348,6 +347,7 @@ border-bottom-right-radius: 6px; border-left: 1px solid rgb(220 220 220); } + .btn-group .expand-group mat-icon { position: absolute; top: 14px; @@ -372,7 +372,7 @@ color: #b9b9b9; } -.btn-new-block > .error-count { +.btn-new-block>.error-count { position: absolute; top: 0; color: white; @@ -468,7 +468,7 @@ input[readonly] { overflow: scroll; } -.code-container-yaml, +.code-container-yaml, .code-container-json { overflow: hidden; } @@ -476,12 +476,12 @@ input[readonly] { .view-menu { position: absolute; top: 90px; - right: 8px; + right: 12px; background: #fff; border: 1px solid; display: flex; height: 28px; - width: 90px; + width: 121px; overflow: hidden; z-index: 9; } @@ -496,6 +496,15 @@ input[readonly] { color: #3f51b5; } +.btn-view-menu-sep { + height: 20px; + width: 2px; + background: #3f51b5; + box-sizing: border-box; + padding-left: 1px; + margin-top: 4px; +} + .btn-view-menu:hover { background: rgb(63 81 181 / 3%); border: 1px solid #3f51b5; @@ -530,7 +539,7 @@ input[readonly] { color: darkgrey; } -.btn-status-edit[readonly="true"] > .error-count { +.btn-status-edit[readonly="true"]>.error-count { display: none; } @@ -588,6 +597,7 @@ input[readonly] { padding: 0px 8px; position: relative; } + .block-group-header span { position: relative; z-index: 1; @@ -595,6 +605,7 @@ input[readonly] { padding: 0px 2px 0px 2px; margin: 0px 2px 0px 2px; } + .block-group-header::after { display: block; position: absolute; @@ -625,4 +636,10 @@ input[readonly] { .copy-blocks-mode-active:hover { background-color: #d1d1d1; +} + +*[storage-active="false"] { + pointer-events: none; + filter: grayscale(1); + opacity: 0.6; } \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.html b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.html index 10da7485a1..2e2ec9499e 100644 --- a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.html @@ -2,10 +2,10 @@
-
+
Policy doesn't exist
-
+
@@ -42,12 +42,14 @@ Open
-
+
undo Undo
-
+
redo Redo
@@ -61,7 +63,8 @@
-
+
home Main
@@ -69,7 +72,8 @@
-
+
description Verifiable Credential
@@ -77,7 +81,8 @@
-
+
paid Tokens
@@ -85,7 +90,8 @@
-
+
calculate Calculate
@@ -93,7 +99,8 @@
-
+
addchart Report
@@ -102,8 +109,7 @@
-
+
{{item.icon}} {{item.name}}
@@ -111,6 +117,20 @@
+
+ flash_on +
+
+
+
+ flash_off +
+ +
+
view_agenda @@ -135,9 +155,16 @@ {{item}}
- - +
+ + + + +
@@ -152,13 +179,15 @@
- + + - + + - +
@@ -191,16 +220,17 @@
- + - - + + + + +
@@ -211,6 +241,9 @@
JSON
+
+ Events +
@@ -280,4 +313,26 @@ {{item.name}}
+ + + +
+ flash_on + Show All Events +
+ +
+
+ Show Action Events +
+ +
+
+ Show Refresh Events +
+ +
+ flash_off + Hide All Events +
\ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.ts b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.ts index 2be076b506..a28cbee39f 100644 --- a/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.ts +++ b/frontend/src/app/policy-engine/policy-configuration/policy-configuration/policy-configuration.component.ts @@ -1,7 +1,7 @@ -import { Component, HostListener, OnInit } from '@angular/core'; +import { Component, HostListener, OnInit, ViewChild } from '@angular/core'; import { BlockNode } from '../../helpers/tree-data-source/tree-data-source'; import { SchemaService } from 'src/app/services/schema.service'; -import { Schema, SchemaHelper, SchemaStatus, Token } from 'interfaces'; +import { Schema, SchemaHelper, SchemaStatus, Token } from '@guardian/interfaces'; import { PolicyEngineService } from 'src/app/services/policy-engine.service'; import { forkJoin } from 'rxjs'; import { ActivatedRoute, Router } from '@angular/router'; @@ -13,6 +13,11 @@ import { SetVersionDialog } from 'src/app/schema-engine/set-version-dialog/set-v import * as yaml from 'js-yaml'; import { Clipboard } from '@angular/cdk/clipboard'; import { ConfirmationDialogComponent } from 'src/app/components/confirmation-dialog/confirmation-dialog.component'; +import { EventsOverview } from '../../helpers/events-overview/events-overview'; +import { PolicyBlockModel, PolicyModel } from '../../policy-model'; +import { PolicyStorage } from '../../policy-storage'; +import { TreeFlatOverview } from '../../helpers/tree-flat-overview/tree-flat-overview'; + /** * The page for editing the policy and blocks. @@ -23,49 +28,15 @@ import { ConfirmationDialogComponent } from 'src/app/components/confirmation-dia styleUrls: ['./policy-configuration.component.css'] }) export class PolicyConfigurationComponent implements OnInit { - @HostListener('document:copy', ['$event']) - copy(event: ClipboardEvent) { - if (this.currentBlock - && this.copyBlocksMode - && this.currentView === 'blocks' - && !this.readonly) { - event.preventDefault(); - navigator.clipboard.writeText(JSON.stringify(this.currentBlock)); - } - } - - @HostListener('document:paste', ['$event']) - paste(evt: ClipboardEvent) { - if (this.currentBlock - && this.copyBlocksMode - && this.currentView === 'blocks' - && !this.readonly) { - evt.preventDefault(); - try { - const parsedBlockData = JSON.parse(evt.clipboardData?.getData('text') || "null"); - this.onCopyBlock(parsedBlockData); - } - catch { - console.warn("Block data is incorrect"); - return; - } - - - } - } - loading: boolean = true; - - blocks: BlockNode[] = []; - allBlocks: BlockNode[] = []; - root!: BlockNode; + policyModel: PolicyModel; + currentBlock: PolicyBlockModel | undefined; newBlockType: string; - policy!: any; readonly!: boolean; currentView: string = 'blocks'; code!: string; - currentBlock!: BlockNode; - schemes!: Schema[]; + + schemas!: Schema[]; tokens!: Token[]; policyId!: string; errors: any[] = []; @@ -95,9 +66,10 @@ export class PolicyConfigurationComponent implements OnInit { readOnly: false, viewportMargin: Infinity }; + propTab: string = 'Properties'; policyTab: string = 'Description'; - private blockToCopy?: BlockNode; + blockToCopy?: BlockNode; copyBlocksMode: boolean = false; groupBlocks: any = { Main: [], @@ -106,7 +78,12 @@ export class PolicyConfigurationComponent implements OnInit { Calculate: [], Report: [], UnGroupedBlocks: [] - } + }; + allEvents: any[] = []; + eventVisible: string = 'All'; + eventsOverview!: EventsOverview; + treeFlatOverview!: TreeFlatOverview; + policyStorage: PolicyStorage; constructor( public registeredBlocks: RegisteredBlocks, @@ -118,6 +95,8 @@ export class PolicyConfigurationComponent implements OnInit { private dialog: MatDialog ) { this.newBlockType = 'interfaceContainerBlock'; + this.policyModel = new PolicyModel(); + this.policyStorage = new PolicyStorage(localStorage); } ngOnInit() { @@ -130,7 +109,7 @@ export class PolicyConfigurationComponent implements OnInit { loadPolicy(): void { const policyId = this.route.snapshot.queryParams['policyId']; if (!policyId) { - this.policy = null; + this.policyModel = new PolicyModel(); this.loading = false; return; } @@ -138,49 +117,35 @@ export class PolicyConfigurationComponent implements OnInit { this.policyId = policyId; forkJoin([ this.tokenService.getTokens(), + this.policyEngineService.blockAbout(), this.policyEngineService.policy(policyId) ]).subscribe((data: any) => { const tokens = data[0] || []; - const policy = data[1]; + const blockAbout = data[1] || {}; + const policy = data[2]; + + this.registeredBlocks.registerConfig(blockAbout); this.tokens = tokens.map((e: any) => new Token(e)); + this.setPolicy(policy); - if (!policy) { + + if (!this.policyModel.valid) { setTimeout(() => { this.loading = false; }, 500); return; } - if (!this.compareStateAndConfig(this.objectToJson(policy?.config)) && !this.readonly) { - const applyChanesDialog = this.dialog.open(ConfirmationDialogComponent, { - data: { - dialogTitle: "Apply latest changes", - dialogText: "Do you want to apply latest changes?" - }, - disableClose: true - }) - applyChanesDialog.afterClosed().subscribe((result) => { - if (result) { - this.loadState(); - } - else { - this.clearState(); - this.saveState(); - } - }) - - } else { - this.clearState(); - this.saveState(); - } - - this.schemaService.getSchemes(policy.topicId).subscribe((data2: any) => { - const schemes = data2 || []; - this.schemes = SchemaHelper.map(schemes) || []; - this.schemes.unshift({ type: "" } as any); + this.schemaService.getSchemas(this.policyModel.topicId).subscribe((data2: any) => { + const schemas = data2 || []; + this.schemas = SchemaHelper.map(schemas) || []; + this.schemas.unshift({ type: "" } as any); setTimeout(() => { this.loading = false; }, 500); }, (e) => { this.loading = false; console.error(e.error); }); + + this.policyStorage.load(this.policyModel.id); + this.checkState(); }, (error) => { this.loading = false; console.error(error); @@ -189,55 +154,36 @@ export class PolicyConfigurationComponent implements OnInit { setPolicy(policy: any) { if (!policy) { + this.policyModel = new PolicyModel(); return; } - policy.policyRoles = policy.policyRoles || []; - policy.policyTopics = policy.policyTopics || []; - policy.config = policy.config || { - blockType: 'interfaceContainerBlock', - }; - const root = policy.config; + this.policyModel = new PolicyModel(policy); this.currentView = 'blocks'; - this.readonly = policy.status == 'PUBLISH'; - this.policy = policy; - this.setBlocks(root); + this.readonly = this.policyModel.readonly; this.errors = []; this.errorsCount = -1; this.errorsMap = {}; this.codeMirrorOptions.readOnly = this.readonly; + this.onSelect(this.policyModel.root); + this.policyModel.subscribe(() => { + this.saveState(); + setTimeout(() => { + if (this.eventsOverview) { + this.eventsOverview.render(); + } + }, 10); + }) + if (this.treeFlatOverview) { + this.treeFlatOverview.selectItem(this.currentBlock); + } } - setBlocks(root: BlockNode) { - this.root = root; - this.blocks = [root]; - this.onSelect(this.root); - this.allBlocks = this.all(root); - this.allBlocks.forEach((b => { - if (!b.id) b.id = this.registeredBlocks.generateUUIDv4(); - })); - } - - all(block: BlockNode) { - let allBlocks: BlockNode[] = []; - this.children(block, allBlocks); - allBlocks = allBlocks.sort((a, b) => (a.tag < b.tag ? -1 : 1)); - return allBlocks; - } - - children(block: BlockNode, allBlocks: BlockNode[]) { - allBlocks.push(block); - if (block.children) { - for (let index = 0; index < block.children.length; index++) { - const element = block.children[index]; - this.children(element, allBlocks); - } + updateTopMenu(block?: PolicyBlockModel) { + if (!block) { + return; } - return allBlocks; - } - onSelect(block: BlockNode) { - this.currentBlock = block; - const allowedChildren = this.registeredBlocks.allowedChildren[block.blockType]; + const allowedChildren = this.registeredBlocks.getAllowedChildren(block.blockType); const groupBlocks: any = {}; const unGroupedBlocks: any[] = []; for (const key in BlockGroup) { @@ -248,16 +194,16 @@ export class PolicyConfigurationComponent implements OnInit { const allowedChild = allowedChildren[i]; const type = allowedChild.type; if (!allowedChild.group) { - allowedChild.group = this.registeredBlocks.blocks[allowedChild.type].group; + allowedChild.group = this.registeredBlocks.getGroup(allowedChild.type); } if (!allowedChild.header) { - allowedChild.header = this.registeredBlocks.blocks[allowedChild.type].header; + allowedChild.header = this.registeredBlocks.getHeader(allowedChild.type); } if (!groupBlocks[allowedChild.group]) { groupBlocks[allowedChild.group] = {}; } if (allowedChild.group === BlockGroup.UnGrouped) { - unGroupedBlocks.push({ + unGroupedBlocks.push({ type: type, icon: this.registeredBlocks.getIcon(type), name: this.registeredBlocks.getName(type), @@ -268,7 +214,7 @@ export class PolicyConfigurationComponent implements OnInit { if (!groupBlocks[allowedChild.group][allowedChild.header]) { groupBlocks[allowedChild.group][allowedChild.header] = []; } - groupBlocks[allowedChild.group][allowedChild.header].push({ + groupBlocks[allowedChild.group][allowedChild.header].push({ type: type, icon: this.registeredBlocks.getIcon(type), name: this.registeredBlocks.getName(type), @@ -292,217 +238,165 @@ export class PolicyConfigurationComponent implements OnInit { } this.groupBlocks.unGroupedBlocks = unGroupedBlocks; - return false; } - prepareChildrenBlockToCopy(blocks: BlockNode[]) { - if (!blocks) { - return; - } + public onInitViewer(event: EventsOverview) { + this.eventsOverview = event; + } - for (let i = 0; i < blocks.length; i++) { - const block = blocks[i]; - block.id = this.registeredBlocks.generateUUIDv4(); - block.tag = this.getNewTag(); - this.prepareChildrenBlockToCopy(block.children); - } + public onInitTree(event: TreeFlatOverview) { + this.treeFlatOverview = event; } - onCopyBlock(block?: BlockNode) { - if (this.currentBlock && block) { - block.id = this.registeredBlocks.generateUUIDv4(); - block.tag = this.getNewTag(); - this.prepareChildrenBlockToCopy(block.children); - this.currentBlock.children = this.currentBlock.children || []; - this.currentBlock.children.push(block); - this.setBlocks(this.blocks[0]); - this.saveState(); - } + public onSelect(block: any) { + this.currentBlock = this.policyModel.getBlock(block); + this.policyModel.checkChange(); + this.updateTopMenu(this.currentBlock) + return false; } - onAdd(type: any) { + public onAdd(type: string) { + this.currentBlock = this.policyModel.getBlock(this.currentBlock); if (this.currentBlock) { - this.currentBlock.children = this.currentBlock.children || []; - let permissions = undefined; - if (this.currentBlock.permissions) { - permissions = this.currentBlock.permissions.slice(); - } - const newBlock = this.registeredBlocks.newBlock(type, permissions); - newBlock.tag = this.getNewTag(); - this.currentBlock.children.push(newBlock); - this.setBlocks(this.blocks[0]); - this.saveState(); + const newBlock = this.registeredBlocks.newBlock(type as any); + newBlock.tag = this.policyModel.getNewTag(); + this.currentBlock.createChild(newBlock); } } - getNewTag(): string { - const nameMap: any = {}; - for (let block of this.allBlocks) { - nameMap[block.tag] = true; - } - let name = 'Block'; - for (let i = 1; i < 1000; i++) { - name = `Block_${i}`; - if (!nameMap[name]) { - return name; - } + public onDelete(block: BlockNode) { + this.policyModel.removeBlock(block); + this.onSelect(this.policyModel.root); + if (this.treeFlatOverview) { + this.treeFlatOverview.selectItem(this.currentBlock); } - return 'Block'; - } - - onDelete(block: BlockNode) { - this.removeBlock(this.blocks, block); - this.setBlocks(this.blocks[0]); - this.saveState(); return false; } - removeBlock(blocks: BlockNode[], block: BlockNode) { - for (let index = 0; index < blocks.length; index++) { - const element = blocks[index]; - if (element.id == block.id) { - blocks.splice(index, 1); - return blocks; - } - if (element.children) { - element.children = this.removeBlock(element.children, block); - } - } - return blocks; - } - - onReorder(blocks: BlockNode[]) { - this.setBlocks(blocks[0]); - this.saveState(); - } - - compareStateAndConfig(JSONconfig: string) { - const states = localStorage[this.policyId] && JSON.parse(localStorage[this.policyId]); - if (!states) { - return true; - } - - const state = states[states.length - 1] && JSON.parse(states[states.length - 1]); - if (!state) { - return true; - } - if (state.view === 'json' || state.view === 'blocks') { - return state.value === JSONconfig; + public onReorder(blocks: BlockNode[]) { + const root = blocks[0]; + if (root) { + this.policyModel.rebuild(root.getJSON()); + } else { + this.policyModel.rebuild(); } - if (state.view === 'yaml') { - return this.yamlToJson(state.value) === JSONconfig; + this.onSelect(this.policyModel.root); + if (this.treeFlatOverview) { + this.treeFlatOverview.selectItem(this.currentBlock); } - - return true; } - async loadState(states?: any, number?: number) { - let stateValues = states || (localStorage[this.policyId] && JSON.parse(localStorage[this.policyId])); - if (!stateValues) { - return false; + public onColGroup(n: number) { + if (n == 1) { + this.colGroup1 = !this.colGroup1; + } else if (n == 2) { + this.colGroup2 = !this.colGroup2; + } else { + this.colGroup3 = !this.colGroup3; } + } - let root: any = {}; - if (typeof number !== 'number') { - root = JSON.parse(stateValues[stateValues.length - 1]); - } else if (number >= 0) { - const stateValue = stateValues[number]; - if (!stateValue) { - return false; + onTreeChange(event: any) { + setTimeout(() => { + if (this.eventsOverview) { + this.eventsOverview.render(); } + }, 10); + } - root = JSON.parse(stateValue); - } - - if (!root.view) { - return false; - } - if (this.currentView !== root.view) { - this.currentView = root.view; - await this.onView(root.view); - } - if (root.view === 'yaml' || root.view === 'json') { - this.code = root.value; - } - if (root.view === 'blocks') { - const rootBlock = this.jsonToObject(root.value); - this.setBlocks(rootBlock); - this.errors = []; - this.errorsCount = -1; - this.errorsMap = {}; - } - - return true; + onShowEvent(type: string) { + this.eventVisible = type; } - clearState() { - localStorage.removeItem(this.policyId); + onView(type: string) { + this.loading = true; + setTimeout(() => { + this.chanceView(type); + this.loading = false; + }, 0); } - saveState() { - if (this.readonly) { + private chanceView(type: string) { + if (type == this.currentView) { return; } - - let stateValue = localStorage[this.policyId] && JSON.parse(localStorage[this.policyId]); - if (stateValue && stateValue.length > 5) { - stateValue.shift(); - localStorage.setItem(this.policyId, JSON.stringify(stateValue)); - } - else if (!stateValue) { - stateValue = []; + this.errors = []; + this.errorsCount = -1; + this.errorsMap = {}; + try { + if (type == 'blocks') { + let root = null; + if (this.currentView == 'json') { + root = this.jsonToObject(this.code); + } else if (this.currentView == 'yaml') { + root = this.yamlToObject(this.code); + } + this.policyModel.rebuild(root); + } else if (type == 'json') { + let code = ""; + if (this.currentView == 'blocks') { + code = this.objectToJson(this.policyModel.getJSON()); + } else if (this.currentView == 'yaml') { + code = this.yamlToJson(this.code); + } + this.code = code; + this.codeMirrorOptions.mode = 'application/ld+json'; + } else if (type == 'yaml') { + let code = ""; + if (this.currentView == 'blocks') { + code = this.objectToYaml(this.policyModel.getJSON()); + } + if (this.currentView == 'json') { + code = this.jsonToYaml(this.code); + } + this.code = code; + this.codeMirrorOptions.mode = 'text/x-yaml'; + } + this.currentView = type; + } catch (error: any) { + this.errors = [error.message]; } + } - let state = ""; - if (this.currentView == 'blocks') { - state = JSON.stringify({ - view: this.currentView, - value: this.objectToJson(this.root) - }); - } - if (this.currentView == 'yaml') { - state = JSON.stringify({ - view: this.currentView, - value: this.code - }); - } - if (this.currentView == 'json') { - state = JSON.stringify({ - view: this.currentView, - value: this.code - }); - } + private jsonToObject(json: string): any { + return JSON.parse(json); + } - if (this._undoDepth) { - stateValue.slice(0, stateValue.length - this._undoDepth - 1); - this._undoDepth = 0; - } + private yamlToObject(yamlString: string): any { + return yaml.load(yamlString); + } - stateValue.push(state); - localStorage.setItem(this.policyId, JSON.stringify(stateValue)); + private objectToJson(root: any): string { + return JSON.stringify(root, null, 2); } - hasChild(_: number, node: BlockNode) { - return !!node.children && node.children.length > 0 - }; + private yamlToJson(yaml: string): string { + const root = this.yamlToObject(yaml); + return this.objectToJson(root); + } - getChildren = (node: BlockNode) => node.children; + private objectToYaml(root: any): string { + return yaml.dump(root, { + indent: 4, + lineWidth: -1, + noRefs: false, + noCompatMode: true + }); + } - isSelect(block: BlockNode) { - return this.currentBlock == block; + private jsonToYaml(json: string): string { + const root = this.jsonToObject(json); + return this.objectToYaml(root); } - async savePolicy() { - await this.onView('blocks'); - const root = this.blocks[0]; + public savePolicy() { + this.chanceView('blocks'); + const root = this.policyModel.getJSON(); if (root) { this.loading = true; - this.policy.config = root; - this.policyEngineService.update(this.policyId, this.policy).subscribe((policy) => { + this.policyEngineService.update(this.policyId, root).subscribe((policy) => { this.setPolicy(policy); - if (this.compareStateAndConfig(this.objectToJson(root))) { - this.clearState(); - } + this.clearState(); this.loading = false; }, (e) => { console.error(e.error); @@ -511,7 +405,7 @@ export class PolicyConfigurationComponent implements OnInit { } } - setVersion() { + public setVersion() { const dialogRef = this.dialog.open(SetVersionDialog, { width: '350px', disableClose: true, @@ -548,19 +442,22 @@ export class PolicyConfigurationComponent implements OnInit { }); } - validationPolicy() { + public validationPolicy() { this.loading = true; - this.policyEngineService.validate({ - policyRoles: this.policy?.policyRoles, - policyTopics: this.policy?.policyTopics, - config: this.root - }).subscribe((data: any) => { + const json = this.policyModel.getJSON(); + const object = { + topicId: this.policyModel.topicId, + policyRoles: json?.policyRoles, + policyTopics: json?.policyTopics, + config: json?.config + } + this.policyEngineService.validate(object).subscribe((data: any) => { const { policy, results } = data; - const root = policy.config; - this.setBlocks(root); - const blocks = results.blocks; - const errors = blocks.filter((block: any) => !block.isValid); + const config = policy.config; + this.policyModel.rebuild(config); + + const errors = results.blocks.filter((block: any) => !block.isValid); this.errors = errors; this.errorsCount = errors.length; this.errorsMap = {}; @@ -568,30 +465,32 @@ export class PolicyConfigurationComponent implements OnInit { const element = errors[i]; this.errorsMap[element.id] = element.errors; } - this.blocks = [this.root]; - this.onSelect(this.root); + + this.onSelect(this.policyModel.root); this.loading = false; }, (e) => { this.loading = false; }); } - saveAsPolicy() { + public saveAsPolicy() { const dialogRef = this.dialog.open(SavePolicyDialog, { width: '500px', disableClose: true, data: { - policy: this.policy, - action: this.policy.status === 'DRAFT' + policy: this.policyModel, + action: this.policyModel.status === 'DRAFT' ? PolicyAction.CREATE_NEW_POLICY : null }, autoFocus: false }); dialogRef.afterClosed().subscribe(async (result) => { - if (result) { + if (result && this.policyModel) { this.loading = true; - const policy = Object.assign({}, this.policy, result.policy); + const json = this.policyModel.getJSON(); + + const policy = Object.assign({}, json, result.policy); delete policy.id; delete policy.status; delete policy.owner; @@ -599,9 +498,8 @@ export class PolicyConfigurationComponent implements OnInit { if (result.action === PolicyAction.CREATE_NEW_POLICY) { delete policy.uuid; - } - else if (result.action === PolicyAction.CREATE_NEW_VERSION) { - policy.previousVersion = this.policy.version; + } else if (result.action === PolicyAction.CREATE_NEW_VERSION) { + policy.previousVersion = json.version; } this.policyEngineService.create(policy).subscribe((policies: any) => { @@ -615,129 +513,130 @@ export class PolicyConfigurationComponent implements OnInit { }); } - onColGroup(n: number) { - if (n == 1) { - this.colGroup1 = !this.colGroup1; - } else if (n == 2) { - this.colGroup2 = !this.colGroup2; + private checkState() { + if (!this.readonly && + !this.compareState( + this.policyModel.getJSON(), + this.policyStorage.current + ) + ) { + const applyChangesDialog = this.dialog.open(ConfirmationDialogComponent, { + data: { + dialogTitle: "Apply latest changes", + dialogText: "Do you want to apply latest changes?" + }, + disableClose: true + }) + applyChangesDialog.afterClosed().subscribe((result) => { + if (result) { + this.loadState(this.policyStorage.current); + } else { + this.clearState(); + } + }) } else { - this.colGroup3 = !this.colGroup3; + this.clearState(); } } - async onView(type: string) { - if (type == this.currentView) { - return; - } - - this.errors = []; - this.errorsCount = -1; - this.errorsMap = {}; - this.loading = true; - if (type == 'blocks') { - let root = null; - try { - if (this.currentView == 'json') { - root = this.jsonToObject(this.code); - } - if (this.currentView == 'yaml') { - root = this.yamlToObject(this.code); - } - } catch (error: any) { - this.errors = [error.message]; - this.loading = false; - return; - } - this.setBlocks(root); + private compareState(policy: any, storageItem: any): boolean { + const JSONconfig = this.objectToJson(policy); + if (!storageItem) { + return true; } - if (type == 'json') { - let code = ""; - try { - if (this.currentView == 'blocks') { - code = this.objectToJson(this.root); - } - if (this.currentView == 'yaml') { - code = this.yamlToJson(this.code); - } - } catch (error: any) { - this.errors = [error.message]; - this.loading = false; - return; - } - this.code = code; - this.codeMirrorOptions.mode = 'application/ld+json'; + if (storageItem.view === 'json' || storageItem.view === 'blocks') { + return storageItem.value === JSONconfig; } - if (type == 'yaml') { - let code = ""; - try { - if (this.currentView == 'blocks') { - code = this.objectToYaml(this.root); - } - if (this.currentView == 'json') { - code = this.jsonToYaml(this.code); - } - } catch (error: any) { - this.errors = [error.message]; - this.loading = false; - return; - } - this.code = code; - this.codeMirrorOptions.mode = 'text/x-yaml'; + if (storageItem.view === 'yaml') { + return this.yamlToJson(storageItem.value) === JSONconfig; } - this.currentView = type; - this.loading = false; - } - - objectToJson(root: any): string { - return JSON.stringify(root, null, 2); + return true; } - jsonToObject(json: string): any { - return JSON.parse(json); + private clearState() { + const json = this.policyModel.getJSON(); + const value = this.objectToJson(json); + this.policyStorage.set('blocks', value); } - objectToYaml(root: any): string { - return yaml.dump(root, { - indent: 4, - lineWidth: -1, - noRefs: false, - noCompatMode: true - }); + private loadState(root: any) { + if (!root) { + return; + } + if (this.currentView !== root.view) { + this.currentView = root.view; + this.chanceView(root.view); + } + if (root.view === 'yaml' || root.view === 'json') { + this.code = root.value; + } + if (root.view === 'blocks') { + const policy = this.jsonToObject(root.value); + this.policyModel.rebuild(policy); + this.errors = []; + this.errorsCount = -1; + this.errorsMap = {}; + this.currentBlock = this.policyModel.getBlock(this.currentBlock); + } + return true; } - yamlToObject(yamlString: string): any { - return yaml.load(yamlString); + public saveState() { + if (this.readonly) { + return; + } + if (this.currentView == 'blocks') { + const json = this.objectToJson(this.policyModel.getJSON()); + this.policyStorage.push(this.currentView, json); + } else if (this.currentView == 'yaml') { + this.policyStorage.push(this.currentView, this.code); + } else if (this.currentView == 'json') { + this.policyStorage.push(this.currentView, this.code); + } } - yamlToJson(yaml: string): string { - const root = this.yamlToObject(yaml); - return this.objectToJson(root); + public undoPolicy() { + const item = this.policyStorage.undo(); + this.loadState(item); } - jsonToYaml(json: string): string { - const root = this.jsonToObject(json); - return this.objectToYaml(root); + public redoPolicy() { + const item = this.policyStorage.redo(); + this.loadState(item); } - async undoPolicy() { - const stateValues = localStorage[this.policyId] && JSON.parse(localStorage[this.policyId]); - if (!stateValues) { - return; - } - - if (await this.loadState(stateValues, stateValues.length - 2 - this._undoDepth)) { - this._undoDepth++; + onCopyBlock(block?: any) { + if (this.currentBlock && block) { + this.currentBlock.copyChild(block); } } - async redoPolicy() { - const stateValues = localStorage[this.policyId] && JSON.parse(localStorage[this.policyId]); - if (!stateValues) { - return; + @HostListener('document:copy', ['$event']) + copy(event: ClipboardEvent) { + if (this.currentBlock + && this.copyBlocksMode + && this.currentView === 'blocks' + && !this.readonly) { + event.preventDefault(); + navigator.clipboard.writeText(JSON.stringify(this.currentBlock)); } + } - if (await this.loadState(stateValues, stateValues.length - this._undoDepth)) { - this._undoDepth--; + @HostListener('document:paste', ['$event']) + paste(evt: ClipboardEvent) { + if (this.currentBlock + && this.copyBlocksMode + && this.currentView === 'blocks' + && !this.readonly) { + evt.preventDefault(); + try { + const parsedBlockData = JSON.parse(evt.clipboardData?.getData('text') || "null"); + this.onCopyBlock(parsedBlockData); + } + catch { + console.warn("Block data is incorrect"); + return; + } } } } diff --git a/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.html b/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.html index da7157d084..37cb061a32 100644 --- a/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.html +++ b/frontend/src/app/policy-engine/policy-configuration/policy-properties/policy-properties.component.html @@ -53,14 +53,14 @@
Previous Version - +
Version - +
Role {{i}} - - + + delete Topic
{{item.name}}
- + delete
+
+ + + + + + + - + +
+ History + +
+ {{statusDetailed === element? 'keyboard_arrow_down' : 'keyboard_arrow_right'}} +
+
{{field.title}} @@ -21,11 +32,11 @@ {{getText(element, option)}} - +
{{getText(element, option)}}
-
+
@@ -34,8 +45,27 @@
+ + +
+
+
+
+

{{historyElem.status}}

+

{{historyElem.reason}}

+
+
+
+
+
+ warning + Revoked with reason: "{{item.document.comment}}" +
{{item.description}}
diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/report-block/report-block.component.ts b/frontend/src/app/policy-engine/policy-viewer/blocks/report-block/report-block.component.ts index dcaaa3f7e7..2560a6bfa8 100644 --- a/frontend/src/app/policy-engine/policy-viewer/blocks/report-block/report-block.component.ts +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/report-block/report-block.component.ts @@ -3,14 +3,9 @@ import { FormBuilder, Validators } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { MatIconRegistry } from '@angular/material/icon'; import { DomSanitizer } from '@angular/platform-browser'; -import { ActivatedRoute, Router } from '@angular/router'; -import { IPolicyReport, IReport, IReportItem, ITokenReport, IVC, IVCReport, IVPReport, Schema, SchemaHelper } from 'interfaces'; +import { IPolicyReport, IReport, IReportItem, ITokenReport, IVC, IVCReport, IVPReport, Schema, SchemaHelper } from '@guardian/interfaces'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; -import { AuditService } from 'src/app/services/audit.service'; -import { AuthService } from 'src/app/services/auth.service'; import { PolicyEngineService } from 'src/app/services/policy-engine.service'; -import { PolicyHelper } from 'src/app/services/policy-helper.service'; -import { SchemaService } from 'src/app/services/schema.service'; const icons = [ { @@ -53,19 +48,12 @@ export class ReportBlockComponent implements OnInit { policyDocument: IPolicyReport | undefined; documents: IReportItem[] | undefined; policyCreatorDocument: IReportItem | undefined; - schemes!: Schema[]; searchForm = this.fb.group({ value: ['', Validators.required], }); constructor( private policyEngineService: PolicyEngineService, - private policyHelper: PolicyHelper, - private auth: AuthService, - private schemaService: SchemaService, - private auditService: AuditService, - private route: ActivatedRoute, - private router: Router, private fb: FormBuilder, public dialog: MatDialog, iconRegistry: MatIconRegistry, @@ -129,14 +117,12 @@ export class ReportBlockComponent implements OnInit { this.mintDocument = undefined; this.policyDocument = undefined; this.documents = undefined; - this.schemes = []; this.hash = ""; } } loadTrustChainData(data: any) { const uiMetaData = data.uiMetaData || {}; - const schemes = data.schemes || []; const report = data.data as IReport; this.hash = data.hash; this.searchForm.patchValue({ @@ -148,7 +134,6 @@ export class ReportBlockComponent implements OnInit { this.policyDocument = report.policyDocument; this.policyCreatorDocument = report.policyCreatorDocument; this.documents = report.documents || []; - this.schemes = SchemaHelper.map(schemes); if (this.policyDocument) { this.documents.push({ type: this.policyDocument.type, @@ -177,8 +162,7 @@ export class ReportBlockComponent implements OnInit { viewDocument: true, document: item.document.document, title: item.type, - type: 'VC', - schemas: this.schemes, + type: 'VC' } }); dialogRef.afterClosed().subscribe(async (result) => { }); @@ -191,8 +175,7 @@ export class ReportBlockComponent implements OnInit { viewDocument: true, document: item.document.document, title: item.type, - type: 'VP', - schemas: this.schemes, + type: 'VP' } }); dialogRef.afterClosed().subscribe(async (result) => { }); diff --git a/frontend/src/app/policy-engine/policy-viewer/blocks/request-document-block/request-document-block.component.ts b/frontend/src/app/policy-engine/policy-viewer/blocks/request-document-block/request-document-block.component.ts index 4533aacb15..06a746bcc5 100644 --- a/frontend/src/app/policy-engine/policy-viewer/blocks/request-document-block/request-document-block.component.ts +++ b/frontend/src/app/policy-engine/policy-viewer/blocks/request-document-block/request-document-block.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; -import { IUser } from 'interfaces'; +import { IUser } from '@guardian/interfaces'; import { PolicyEngineService } from 'src/app/services/policy-engine.service'; import { PolicyHelper } from 'src/app/services/policy-helper.service'; import { ProfileService } from 'src/app/services/profile.service'; diff --git a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.css b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.css index 220e9b5213..15dc2cdc82 100644 --- a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.css +++ b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.css @@ -153,6 +153,7 @@ a.go-back-link mat-icon { padding-left: 24px; } +.table-container .mat-column-schemas, .table-container .mat-column-topic, .table-container .mat-column-version, .table-container .mat-column-description, @@ -191,10 +192,12 @@ a.go-back-link mat-icon { position: relative; z-index: 0; } +.table-container[role='STANDARD_REGISTRY'], .table-container[role='ROOT_AUTHORITY'] { max-height: calc(100vh - var(--header-height) - 170px); } +.actions-container[role='STANDARD_REGISTRY'], .actions-container[role='ROOT_AUTHORITY'] { display: block; } diff --git a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.html b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.html index d3bb43eace..0f994a1f69 100644 --- a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.html +++ b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.html @@ -23,7 +23,8 @@ : {{policyInfo.description}} ({{policyInfo.version}}) - Roles: {{policyInfo.userRoles.join(', ')}} + Roles: + {{policyInfo.userRoles.join(', ')}}
@@ -32,8 +33,10 @@
- - + +
@@ -43,6 +46,13 @@ {{element.topicId}} + + + + - @@ -127,4 +138,4 @@ - + \ No newline at end of file diff --git a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.ts b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.ts index b5c86c7219..e8edbd2ca7 100644 --- a/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.ts +++ b/frontend/src/app/policy-engine/policy-viewer/policy-viewer/policy-viewer.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import { IToken, IUser } from 'interfaces'; +import { IToken, IUser, UserRole } from '@guardian/interfaces'; import { ToastrService } from 'ngx-toastr'; import { forkJoin } from 'rxjs'; import { SetVersionDialog } from 'src/app/schema-engine/set-version-dialog/set-version-dialog.component'; @@ -28,27 +28,7 @@ export class PolicyViewerComponent implements OnInit { policyInfo: any | null; policies: any[] | null; columns: string[] = []; - columnsRole = { - "ROOT_AUTHORITY": [ - 'name', - 'description', - 'roles', - 'topic', - 'version', - 'status', - 'operation', - 'export', - 'edit', - 'open' - ], - "USER": [ - 'name', - 'description', - 'roles', - 'version', - 'open', - ] - }; + columnsRole: any = {}; role!: any; loading: boolean = true; isConfirmed: boolean = false; @@ -70,6 +50,28 @@ export class PolicyViewerComponent implements OnInit { this.pageIndex = 0; this.pageSize = 100; this.policyCount = 0; + this.columnsRole = {}; + this.columnsRole[UserRole.STANDARD_REGISTRY] = [ + 'name', + 'description', + 'roles', + 'topic', + 'schemas', + 'version', + 'status', + 'operation', + 'export', + 'edit', + 'open' + ] + this.columnsRole[UserRole.USER] = [ + 'name', + 'description', + 'roles', + 'version', + 'open', + ] + } ngOnInit() { @@ -93,10 +95,10 @@ export class PolicyViewerComponent implements OnInit { this.profileService.getProfile().subscribe((profile: IUser | null) => { this.isConfirmed = !!(profile && profile.confirmed); this.role = profile ? profile.role : null; - if (this.role == 'ROOT_AUTHORITY') { - this.columns = this.columnsRole['ROOT_AUTHORITY']; + if (this.role == UserRole.STANDARD_REGISTRY) { + this.columns = this.columnsRole[UserRole.STANDARD_REGISTRY]; } else { - this.columns = this.columnsRole['USER']; + this.columns = this.columnsRole[UserRole.USER]; } if (this.isConfirmed) { if (this.policyId) { diff --git a/frontend/src/app/policy-engine/registered-blocks.ts b/frontend/src/app/policy-engine/registered-blocks.ts index d541a0949b..7fd2d8adf1 100644 --- a/frontend/src/app/policy-engine/registered-blocks.ts +++ b/frontend/src/app/policy-engine/registered-blocks.ts @@ -29,6 +29,10 @@ import { ReassigningConfigComponent } from "./policy-configuration/blocks/docume import { TimerConfigComponent } from "./policy-configuration/blocks/documents/timer-config/timer-config.component"; import { CustomLogicConfigComponent } from './policy-configuration/blocks/calculate/custom-logic-config/custom-logic-config.component'; import { SwitchConfigComponent } from "./policy-configuration/blocks/main/switch-config/switch-config.component"; +import { PolicyBlockModel } from "./policy-model"; +import { RevokeConfigComponent } from "./policy-configuration/blocks/documents/revoke-config/revoke-config.component"; +import { ButtonConfigComponent } from "./policy-configuration/blocks/main/button-config/button-config.component"; +import { ButtonBlockComponent } from "./policy-viewer/blocks/button-block/button-block.component"; export enum BlockType { Container = 'interfaceContainerBlock', @@ -54,6 +58,9 @@ export enum BlockType { TimerBlock = 'timerBlock', CustomLogicBlock = 'customLogicBlock', Switch = 'switchBlock', + RevokeBlock = 'revokeBlock', + SetRelationshipsBlock = 'setRelationshipsBlock', + ButtonBlock = 'buttonBlock' } export enum BlockGroup { @@ -74,30 +81,35 @@ export enum BlockHeaders { export interface IBlockAbout { post: boolean; get: boolean; - input: InputType; - output: InputType; + input: any; + output: any; children: ChildrenType; control: ControlType; + defaultEvent: boolean; prev?: IBlockAbout; next?: boolean; } -type ConfigFunction = ((block: any, prev?: IBlockAbout, next?: boolean) => T) | T; +type ConfigFunction = ((value: any, block: PolicyBlockModel, prev?: IBlockAbout, next?: boolean) => T) | T; export interface IBlockAboutConfig { - post: ConfigFunction; - get: ConfigFunction; - input: ConfigFunction; - output: ConfigFunction; - children: ConfigFunction; - control: ConfigFunction; + post: boolean; + get: boolean; + input: any; + output: any; + children: ChildrenType; + control: ControlType; + defaultEvent: boolean; } -export enum InputType { - None = 'None', - Single = 'Single', - Multiple = 'Multiple', - Any = 'Any', +export interface IBlockDynamicAboutConfig { + post?: ConfigFunction; + get?: ConfigFunction; + input?: ConfigFunction; + output?: ConfigFunction; + children?: ConfigFunction; + control?: ConfigFunction; + defaultEvent?: ConfigFunction; } export enum ChildrenType { @@ -114,67 +126,68 @@ export enum ControlType { } export class BlockAbout { - private _propFunc: { [x: string]: ConfigFunction } = {}; + private _propFunc: { [x: string]: Function } = {}; private _propVal: { [x: string]: any } = {}; - private _setProp(about: any, name: string) { - if (typeof about[name] == 'function') { - this._propFunc[name] = about[name]; + private _setProp(about: any, dynamic: any, name: string) { + this._propVal[name] = about[name]; + if (dynamic && dynamic[name]) { + this._propFunc[name] = dynamic[name]; } else { - this._propVal[name] = about[name]; - this._propFunc[name] = (block: any, prev?: IBlockAbout, next?: boolean) => { + this._propFunc[name] = (value: any, block: any, prev?: IBlockAbout, next?: boolean) => { return this._propVal[name]; }; } } - constructor(about: IBlockAboutConfig) { - this._setProp(about, 'post'); - this._setProp(about, 'get'); - this._setProp(about, 'input'); - this._setProp(about, 'output'); - this._setProp(about, 'children'); - this._setProp(about, 'control'); + constructor(about: IBlockAboutConfig, dynamic?: IBlockDynamicAboutConfig) { + this._setProp(about, dynamic, 'post'); + this._setProp(about, dynamic, 'get'); + this._setProp(about, dynamic, 'input'); + this._setProp(about, dynamic, 'output'); + this._setProp(about, dynamic, 'children'); + this._setProp(about, dynamic, 'control'); + this._setProp(about, dynamic, 'defaultEvent'); } - public get(block: any): IBlockAbout { + public get(block: PolicyBlockModel): IBlockAbout { return { - post: this._propFunc.post(block), - get: this._propFunc.get(block), - input: this._propFunc.input(block), - output: this._propFunc.output(block), - children: this._propFunc.children(block), - control: this._propFunc.control(block), + post: this._propFunc.post(this._propVal.post, block), + get: this._propFunc.get(this._propVal.get, block), + input: this._propFunc.input(this._propVal.input, block), + output: this._propFunc.output(this._propVal.output, block), + children: this._propFunc.children(this._propVal.children, block), + control: this._propFunc.control(this._propVal.control, block), + defaultEvent: this._propFunc.defaultEvent(this._propVal.defaultEvent, block), } } - public bind(block: any, prev?: IBlockAbout, next?: boolean): IBlockAbout { + public bind(block: PolicyBlockModel, prev?: IBlockAbout, next?: boolean): IBlockAbout { const bind = { _block: block, _prev: prev, _next: next, - _post: this._propFunc.post, - _get: this._propFunc.get, - _input: this._propFunc.input, - _output: this._propFunc.output, - _children: this._propFunc.children, - _control: this._propFunc.control, + _func: this._propFunc, + _val: this._propVal, get post() { - return this._post(this._block, this._prev, this._next); + return this._func.post(this._val.post, this._block, this._prev, this._next); }, get get() { - return this._get(this._block, this._prev, this._next); + return this._func.get(this._val.get, this._block, this._prev, this._next); }, get input() { - return this._input(this._block, this._prev, this._next); + return this._func.input(this._val.input, this._block, this._prev, this._next); }, get output() { - return this._output(this._block, this._prev, this._next); + return this._func.output(this._val.output, this._block, this._prev, this._next); }, get children() { - return this._children(this._block, this._prev, this._next); + return this._func.children(this._val.children, this._block, this._prev, this._next); }, get control() { - return this._control(this._block, this._prev, this._next); + return this._func.control(this._val.control, this._block, this._prev, this._next); + }, + get defaultEvent() { + return this._func.defaultEvent(this._val.defaultEvent, this._block, this._prev, this._next); }, set prev(value: IBlockAbout) { this._prev = value; @@ -190,14 +203,12 @@ export class BlockAbout { export interface IBlockSetting { type: BlockType; icon: string; - name: string; - title: string; group: BlockGroup; header: BlockHeaders; factory: any; property: any; - about: IBlockAboutConfig; allowedChildren?: ChildrenDisplaySettings[]; + about?: IBlockDynamicAboutConfig } export interface ChildrenDisplaySettings { @@ -208,26 +219,30 @@ export interface ChildrenDisplaySettings { @Injectable() export class RegisteredBlocks { - public readonly blocks: any; - public readonly icons: any; - public readonly names: any; - public readonly titles: any; - public readonly factories: any; - public readonly properties: any; - public readonly about: any; - public readonly allowedChildren: any; + private group: any; + private header: any; + private icons: any; + private names: any; + private titles: any; + private factories: any; + private properties: any; + private about: any; + private allowedChildren: any; + private dynamicAbout: any; private readonly defaultA = new BlockAbout({ post: false, get: false, - input: InputType.None, - output: InputType.None, + input: null, + output: null, children: ChildrenType.None, control: ControlType.None, + defaultEvent: false }) constructor() { - this.blocks = {}; + this.group = {}; + this.header = {}; this.icons = {}; this.names = {}; this.titles = {}; @@ -235,656 +250,392 @@ export class RegisteredBlocks { this.properties = {}; this.about = {}; this.allowedChildren = {}; + this.dynamicAbout = {}; const allowedChildrenStepContainerBlocks = [ - { - type: BlockType.Information - }, - { - type: BlockType.PolicyRoles - }, - { - type: BlockType.Action - }, - { - type: BlockType.Container - }, - { - type: BlockType.Step - }, - { - type: BlockType.Switch - }, - { - type: BlockType.DocumentsViewer - }, - { - type: BlockType.Request - }, - { - type: BlockType.SendToGuardian - }, - { - type: BlockType.ExternalData - }, - { - type: BlockType.AggregateDocument - }, - { - type: BlockType.ReassigningBlock - }, - { - type: BlockType.TimerBlock - }, - { - type: BlockType.Mint - }, - { - type: BlockType.Wipe - }, - { - type: BlockType.Calculate - }, - { - type: BlockType.CustomLogicBlock - }, - { - type: BlockType.Report - } + { type: BlockType.Information }, + { type: BlockType.PolicyRoles }, + { type: BlockType.Action }, + { type: BlockType.Container }, + { type: BlockType.Step }, + { type: BlockType.Switch }, + { type: BlockType.DocumentsViewer }, + { type: BlockType.Request }, + { type: BlockType.SendToGuardian }, + { type: BlockType.ExternalData }, + { type: BlockType.AggregateDocument }, + { type: BlockType.ReassigningBlock }, + { type: BlockType.TimerBlock }, + { type: BlockType.Mint }, + { type: BlockType.Wipe }, + { type: BlockType.Calculate }, + { type: BlockType.CustomLogicBlock }, + { type: BlockType.Report }, + { type: BlockType.RevokeBlock }, + { type: BlockType.SetRelationshipsBlock }, + { type: BlockType.ButtonBlock } ]; // Main, UI Components - this.addBlock({ + this.registerBlock({ type: BlockType.Container, icon: 'tab', - name: 'Container', - title: `Add 'Container' Block`, group: BlockGroup.Main, header: BlockHeaders.UIComponents, factory: ContainerBlockComponent, property: ContainerConfigComponent, - about: { - post: false, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Any, - control: ControlType.UI, - }, allowedChildren: allowedChildrenStepContainerBlocks }); - this.addBlock({ + this.registerBlock({ type: BlockType.Step, icon: 'vertical_split', - name: 'Step', - title: `Add 'Step' Block`, group: BlockGroup.Main, header: BlockHeaders.UIComponents, factory: StepBlockComponent, property: ContainerConfigComponent, - about: { - post: false, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Any, - control: ControlType.UI, - }, allowedChildren: allowedChildrenStepContainerBlocks }); - this.addBlock({ + this.registerBlock({ type: BlockType.PolicyRoles, icon: 'manage_accounts', - name: 'Roles', - title: `Add 'Choice Of Roles' Block`, group: BlockGroup.Main, header: BlockHeaders.UIComponents, factory: RolesBlockComponent, - property: RolesConfigComponent, - about: { - post: true, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.None, - control: ControlType.UI, - } + property: RolesConfigComponent }); - this.addBlock({ + this.registerBlock({ type: BlockType.Information, icon: 'info', - name: 'Information', - title: `Add 'Information' Block`, group: BlockGroup.Main, header: BlockHeaders.UIComponents, factory: InformationBlockComponent, property: InformationConfigComponent, - about: { - post: false, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.None, - control: ControlType.UI, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.Action, icon: 'flash_on', - name: 'Action', - title: `Add 'Action' Block`, group: BlockGroup.Main, header: BlockHeaders.UIComponents, factory: ActionBlockComponent, property: ActionConfigComponent, + allowedChildren: [{ + type: BlockType.DocumentsSourceAddon, + group: BlockGroup.UnGrouped + }], about: { - post: true, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Special, - control: ControlType.UI, - }, - allowedChildren: [ - { - type: BlockType.DocumentsSourceAddon, - group: BlockGroup.UnGrouped + output: (value: any, block: PolicyBlockModel, prev?: IBlockAbout, next?: boolean) => { + const result = value ? value.slice() : []; + if (block.properties.type == 'selector') { + if (block.properties.uiMetaData?.options) { + for (const c of block.properties.uiMetaData.options) { + if (c.tag) { + result.push(c.tag); + } + + } + } + } + if (block.properties.type == 'dropdown') { + result.push("DropdownEvent"); + } + return result; } - ] + } + }); + + this.registerBlock({ + type: BlockType.ButtonBlock, + icon: 'radio_button_checked', + group: BlockGroup.Main, + header: BlockHeaders.UIComponents, + factory: ButtonBlockComponent, + property: ButtonConfigComponent, + about: { + output: (value: any, block: PolicyBlockModel, prev?: IBlockAbout, next?: boolean) => { + const result = value ? value.slice() : []; + if (block.properties.uiMetaData?.buttons) { + for (const c of block.properties.uiMetaData.buttons) { + if (c.tag) { + result.push(c.tag); + } + + } + } + return result; + } + } }); // Main, Server Blocks - this.addBlock({ + this.registerBlock({ type: BlockType.Switch, icon: 'rule', - name: 'Switch', - title: `Add 'Switch' Block`, group: BlockGroup.Main, header: BlockHeaders.ServerBlocks, factory: null, property: SwitchConfigComponent, about: { - post: false, - get: false, - input: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (prev && prev.output != InputType.None) { - return prev.output; + output: (value: any, block: PolicyBlockModel, prev?: IBlockAbout, next?: boolean) => { + const result = value ? value.slice() : []; + if (block.properties.conditions) { + for (const c of block.properties.conditions) { + if (c.tag) { + result.push(c.tag); + } + } } - return InputType.Single; - }, - output: InputType.None, - children: ChildrenType.None, - control: ControlType.Server, + return result; + } } }); // Documents, UI Components - this.addBlock({ + this.registerBlock({ type: BlockType.DocumentsViewer, icon: 'table_view', - name: 'Documents', - title: `Add 'Documents Source' Block`, group: BlockGroup.Documents, header: BlockHeaders.UIComponents, factory: DocumentsSourceBlockComponent, property: DocumentSourceComponent, - about: { - post: false, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Special, - control: ControlType.UI, - }, - allowedChildren: [ - { - type: BlockType.DocumentsSourceAddon, - group: BlockGroup.UnGrouped - }, - { - type: BlockType.PaginationAddon, - group: BlockGroup.UnGrouped - } - ] + allowedChildren: [{ + type: BlockType.FiltersAddon, + group: BlockGroup.UnGrouped + },{ + type: BlockType.DocumentsSourceAddon, + group: BlockGroup.UnGrouped + }, { + type: BlockType.PaginationAddon, + group: BlockGroup.UnGrouped + }] }); - this.addBlock({ + this.registerBlock({ type: BlockType.Request, icon: 'dynamic_form', - name: 'Request', - title: `Add 'Request' Block`, group: BlockGroup.Documents, header: BlockHeaders.UIComponents, factory: RequestDocumentBlockComponent, property: RequestConfigComponent, - about: { - post: true, - get: true, - input: InputType.None, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - return InputType.Single; - }, - children: ChildrenType.Special, - control: ControlType.UI, - }, - allowedChildren: [ - { - type: BlockType.DocumentsSourceAddon, - group: BlockGroup.UnGrouped - } - ] + allowedChildren: [{ + type: BlockType.DocumentsSourceAddon, + group: BlockGroup.UnGrouped + }] }); // Documents, Server Blocks - this.addBlock({ + this.registerBlock({ type: BlockType.SendToGuardian, icon: 'send', - name: 'Send', - title: `Add 'Send' Block`, group: BlockGroup.Documents, header: BlockHeaders.ServerBlocks, factory: null, property: SendConfigComponent, - about: { - post: false, - get: false, - input: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (prev && prev.output != InputType.None) { - return prev.output; - } - return InputType.Single; - }, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - if (prev && prev.output != InputType.None) { - return prev.output; - } - return InputType.Single; - }, - children: ChildrenType.None, - control: ControlType.Server, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.ExternalData, icon: 'cloud', - name: 'External Data', - title: `Add 'External Data' Block`, group: BlockGroup.Documents, header: BlockHeaders.ServerBlocks, factory: null, property: ExternalDataConfigComponent, - about: { - post: true, - get: false, - input: InputType.Single, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - return InputType.Single; - }, - children: ChildrenType.None, - control: ControlType.Server, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.AggregateDocument, icon: 'calendar_month', - name: 'Aggregate Data', - title: `Add 'Aggregate' Block`, group: BlockGroup.Documents, header: BlockHeaders.ServerBlocks, factory: null, property: AggregateConfigComponent, - about: { - post: false, - get: false, - input: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (prev && prev.output != InputType.None) { - return prev.output; - } - return InputType.Single; - }, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - return InputType.Multiple; - }, - children: ChildrenType.None, - control: ControlType.Server, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.ReassigningBlock, icon: 'content_copy', - name: 'Reassigning', - title: `Add 'Reassigning' Block`, group: BlockGroup.Documents, header: BlockHeaders.ServerBlocks, factory: null, property: ReassigningConfigComponent, - about: { - post: false, - get: false, - input: InputType.Single, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - return InputType.Single; - }, - children: ChildrenType.None, - control: ControlType.Server, - } + }); + this.registerBlock({ + type: BlockType.RevokeBlock, + icon: 'restart_alt', + group: BlockGroup.Documents, + header: BlockHeaders.ServerBlocks, + factory: null, + property: RevokeConfigComponent, + }); + this.registerBlock({ + type: BlockType.SetRelationshipsBlock, + icon: 'settings', + group: BlockGroup.Documents, + header: BlockHeaders.ServerBlocks, + factory: null, + property: null, + allowedChildren: [ + { + type: BlockType.DocumentsSourceAddon, + group: BlockGroup.UnGrouped + } + ] }); // Documents, Addons - this.addBlock({ + this.registerBlock({ type: BlockType.FiltersAddon, icon: 'filter_alt', - name: 'Filters Addon', - title: `Add 'Filters' Addon`, group: BlockGroup.Documents, header: BlockHeaders.Addons, factory: FiltersAddonBlockComponent, property: FiltersAddonConfigComponent, - about: { - post: true, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Special, - control: ControlType.Special, - }, - allowedChildren: [ - { - type: BlockType.DocumentsSourceAddon, - group: BlockGroup.UnGrouped - } - ] + allowedChildren: [{ + type: BlockType.DocumentsSourceAddon, + group: BlockGroup.UnGrouped + }] }); - this.addBlock({ + this.registerBlock({ type: BlockType.DocumentsSourceAddon, icon: 'source', - name: 'Source', - title: `Add 'DocumentsSourceAddon' Addon`, group: BlockGroup.Documents, header: BlockHeaders.Addons, factory: null, property: SourceAddonConfigComponent, - about: { - post: false, - get: false, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Special, - control: ControlType.Special, - }, - allowedChildren: [ - { - type: BlockType.FiltersAddon, - group: BlockGroup.UnGrouped - } - ] + allowedChildren: [{ + type: BlockType.FiltersAddon, + group: BlockGroup.UnGrouped + }] }); - this.addBlock({ + this.registerBlock({ type: BlockType.PaginationAddon, icon: 'pages', - name: 'Pagination', - title: `Add 'Pagination' Addon`, group: BlockGroup.Documents, header: BlockHeaders.Addons, factory: PaginationAddonBlockComponent, property: null, - about: { - post: true, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.None, - control: ControlType.Special, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.TimerBlock, icon: 'schedule', - name: 'Timer', - title: `Add 'Timer' Block`, group: BlockGroup.Documents, header: BlockHeaders.Addons, factory: null, property: TimerConfigComponent, - about: { - post: false, - get: false, - input: InputType.Single, - output: function (block: any, prev?: IBlockAbout, next?: boolean): InputType { - if (next === false) { - return InputType.None; - } - return InputType.Single; - }, - children: ChildrenType.None, - control: ControlType.Special, - } }); // Tokens, Server Blocks - this.addBlock({ + this.registerBlock({ type: BlockType.Mint, icon: 'paid', - name: 'Mint', - title: `Add 'Mint' Block`, group: BlockGroup.Tokens, header: BlockHeaders.ServerBlocks, factory: null, property: MintConfigComponent, - about: { - post: false, - get: false, - input: InputType.Any, - output: InputType.Any, - children: ChildrenType.None, - control: ControlType.Server, - } }); - this.addBlock({ + this.registerBlock({ type: BlockType.Wipe, icon: 'delete', - name: 'Wipe', - title: `Add 'Wipe' Block`, group: BlockGroup.Tokens, header: BlockHeaders.ServerBlocks, factory: null, property: MintConfigComponent, - about: { - post: false, - get: false, - input: InputType.Any, - output: InputType.Any, - children: ChildrenType.None, - control: ControlType.Server, - } }); // Calculate, Server Blocks - this.addBlock({ + this.registerBlock({ type: BlockType.Calculate, icon: 'bar_chart', - name: 'Calculate', - title: `Add 'Calculate' Block`, group: BlockGroup.Calculate, header: BlockHeaders.ServerBlocks, factory: null, property: CalculateConfigComponent, - about: { - post: false, - get: false, - input: InputType.Any, - output: function (block: any): InputType { - return block.inputDocuments == "separate" ? - InputType.Multiple : InputType.Single; - }, - children: ChildrenType.Special, - control: ControlType.Server, - }, - allowedChildren: [ - { - type: BlockType.CalculateMathAddon, - group: BlockGroup.UnGrouped, - } - ] + allowedChildren: [{ + type: BlockType.CalculateMathAddon, + group: BlockGroup.UnGrouped, + }] }); - this.addBlock({ + this.registerBlock({ type: BlockType.CustomLogicBlock, icon: 'bar_chart', - name: 'Custom Logic', - title: `Add 'Custom Logic' Block`, group: BlockGroup.Calculate, header: BlockHeaders.ServerBlocks, factory: null, property: CustomLogicConfigComponent, - about: { - post: false, - get: false, - input: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (prev && prev.output != InputType.None) { - return prev.output; - } - return InputType.Single; - }, - output: function (block: any, prev?: IBlockAbout, next?: boolean): InputType { - if (next === false) { - return InputType.None; - } - if (prev && prev.output != InputType.None) { - return prev.output; - } - return InputType.Single; - }, - children: ChildrenType.Special, - control: ControlType.Server, - } }); // Calculate, Addons - this.addBlock({ + this.registerBlock({ type: BlockType.CalculateMathAddon, icon: 'calculate', - name: 'Math Addon', - title: `Add 'Math' Addon`, group: BlockGroup.Calculate, header: BlockHeaders.Addons, factory: null, property: CalculateMathConfigComponent, - about: { - post: false, - get: false, - input: InputType.Single, - output: function (block: any, prev?: IBlockAbout, next?: boolean) { - if (next === false) { - return InputType.None; - } - return InputType.Single; - }, - children: ChildrenType.None, - control: ControlType.Special, - } }); // Report, UIComponents - this.addBlock({ + this.registerBlock({ type: BlockType.Report, icon: 'addchart', - name: 'Report', - title: `Add 'Report' Block`, group: BlockGroup.Report, header: BlockHeaders.UIComponents, factory: ReportBlockComponent, property: null, - about: { - post: true, - get: true, - input: InputType.None, - output: InputType.None, - children: ChildrenType.Special, - control: ControlType.UI, - }, - allowedChildren: [ - { - type: BlockType.ReportItem, - group: BlockGroup.UnGrouped - } - ] + allowedChildren: [{ + type: BlockType.ReportItem, + group: BlockGroup.UnGrouped + }] }); // Report, Addons - this.addBlock({ + this.registerBlock({ type: BlockType.ReportItem, icon: 'list_alt', - name: 'Report Item', - title: `Add 'Report Item' Block`, group: BlockGroup.Report, header: BlockHeaders.Addons, factory: null, - property: ReportItemConfigComponent, - about: { - post: false, - get: false, - input: InputType.None, - output: InputType.None, - children: ChildrenType.None, - control: ControlType.Special, - } + property: ReportItemConfigComponent }); } - public addBlock(setting: IBlockSetting) { - this.register( - setting.type, - setting.icon, - setting.name, - setting.title, - setting.allowedChildren, - setting.group, - setting.header - ); - - if (setting.factory) { - this.registerFactory(setting.type, setting.factory); - } + public registerBlock(setting: IBlockSetting) { + const type: BlockType = setting.type; + this.icons[type] = setting.icon; + this.group[type] = setting.group; + this.header[type] = setting.header; + this.allowedChildren[type] = setting.allowedChildren; + this.factories[type] = setting.factory; + this.properties[type] = setting.property; + this.dynamicAbout[type] = setting.about; + } - if (setting.property) { - this.registerProperties(setting.type, setting.property); + public registerConfig(config: any) { + this.clear(); + const types: BlockType[] = Object.keys(config) as BlockType[]; + for (let type of types) { + const setting = config[type]; + this.names[type] = setting.label; + this.titles[type] = setting.title; + this.about[type] = new BlockAbout({ + post: setting.post, + get: setting.get, + input: setting.input, + output: setting.output, + children: setting.children, + control: setting.control, + defaultEvent: setting.defaultEvent + }, this.dynamicAbout[type]); } + } - if (setting.about) { - this.registerAbout(setting.type, setting.about); - } + private clear() { + this.names = {}; + this.titles = {}; + this.about = {}; } - public register( - type: BlockType, - icon: string, - name: string, - title: string, - allowedChildren: ChildrenDisplaySettings[] = [], - group: BlockGroup = BlockGroup.UnGrouped, - header?: BlockHeaders - ) { - this.blocks[type] = { - type, group, header - }; - this.icons[type] = icon; - this.names[type] = name; - this.titles[type] = title; - this.allowedChildren[type] = allowedChildren; + public getHeader(blockType: string): string { + return this.header[blockType] || ''; + } + + public getGroup(blockType: string): string { + return this.group[blockType] || ''; } public getIcon(blockType: string): string { @@ -899,28 +650,22 @@ export class RegisteredBlocks { return this.titles[blockType] || ''; } - - public registerFactory(type: BlockType, factory: any) { - this.factories[type] = factory; + public getAllowedChildren(blockType: string): { + type: string, + header?: string + group?: string + }[] { + return this.allowedChildren[blockType] || []; } public getFactory(blockType: string): any { return this.factories[blockType]; } - public registerProperties(type: BlockType, factory: any) { - this.properties[type] = factory; - } - public getProperties(blockType: string): any { return this.properties[blockType]; } - - public registerAbout(type: BlockType, about: IBlockAboutConfig) { - this.about[type] = new BlockAbout(about); - } - public getAbout(blockType: string, block: any): IBlockAbout { const f: BlockAbout = this.about[blockType] || this.defaultA; return f.get(block); @@ -931,14 +676,14 @@ export class RegisteredBlocks { return f.bind(block, prev, next); } - public newBlock(type: BlockType, permissions: any): BlockNode { + public newBlock(type: BlockType): BlockNode { return { id: this.generateUUIDv4(), - tag: `Block`, + tag: '', blockType: type, defaultActive: !!this.factories[type], children: [], - permissions: permissions + permissions: [] }; } diff --git a/frontend/src/app/schema-engine/document-view/document-view.component.css b/frontend/src/app/schema-engine/document-view/document-view.component.css index ce350f9ba3..3ca4823806 100644 --- a/frontend/src/app/schema-engine/document-view/document-view.component.css +++ b/frontend/src/app/schema-engine/document-view/document-view.component.css @@ -1,116 +1,133 @@ form { - display: flex; - flex-direction: column; - width: 100%; + display: flex; + flex-direction: column; + width: 100%; + position: relative; + min-height: 400px; +} + +.loading { + background: #fff; + position: absolute; + z-index: 99; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: flex; + align-items: center; + justify-items: center; + justify-content: center; + align-content: center; } .group-label { - color: rgba(0,0,0,.6); + color: rgba(0, 0, 0, .6); } .group-form { - margin-left: 16px; - margin-top: 10px; + margin-left: 16px; + margin-top: 10px; } .form-field { - display: block; - width: 100%; - position: relative; - margin-bottom: 10px; + display: block; + width: 100%; + position: relative; + margin-bottom: 10px; } .form-field mat-form-field { - width: 100%; + width: 100%; } .form-field-group, .form-field-array { - display: block; - width: 100%; - position: relative; - box-sizing: border-box; + display: block; + width: 100%; + position: relative; + box-sizing: border-box; } .group-label, .array-label { - color: rgba(0,0,0,.6); - background: #fff; - top: -10px; - left: 5px; - padding-left: 5px; - padding-right: 5px; + color: rgba(0, 0, 0, .6); + background: #fff; + top: -10px; + left: 5px; + padding-left: 5px; + padding-right: 5px; } .form-field-array-item { - padding-right: 5px; - position: relative; - display: table; - width: 100%; - box-sizing: border-box; - min-height: 50px; + padding-right: 5px; + position: relative; + display: table; + width: 100%; + box-sizing: border-box; + min-height: 50px; } .group-label { - color: gray; - font-size: 14px; + color: gray; + font-size: 14px; } .label-field { - font-size: 18px; - margin-bottom: 10px; + font-size: 18px; + margin-bottom: 10px; } .label-header { - font-size: 18px; - margin-bottom: 30px; - font-weight: 500; + font-size: 18px; + margin-bottom: 30px; + font-weight: 500; } .delimiter { - padding: 30px 50px 50px 50px; - width: 100%; - height: 80px; - box-sizing: border-box; - position: relative; + padding: 30px 50px 50px 50px; + width: 100%; + height: 80px; + box-sizing: border-box; + position: relative; } .delimiter::after { - content: ''; - position: absolute; - height: 2px; - top: 30px; - left: 0px; - right: 0px; - border-top: 1px solid #c8c8c8; + content: ''; + position: absolute; + height: 2px; + top: 30px; + left: 0px; + right: 0px; + border-top: 1px solid #c8c8c8; } .short-delimiter-container { - width: 50%; - margin: 0 auto; + width: 50%; + margin: 0 auto; } :host .mat-input-element { - font-size: 18px; + font-size: 18px; } :host ::ng-deep mat-radio-button { - margin-right: 20px; + margin-right: 20px; } -.form-field-array-item > .form-field-group { - padding-left: 40px; +.form-field-array-item>.form-field-group { + padding-left: 40px; } -.schema-form-field-array-group > .form-field-array-item > .form-field-group, -.form-field-array-item > .schema-form-field-group { - border-left: 2px dashed #c8c8c8; +.schema-form-field-array-group>.form-field-array-item>.form-field-group, +.form-field-array-item>.schema-form-field-group { + border-left: 2px dashed #c8c8c8; } -.form-field-group > .form-field-array-item { - padding-right: 0; +.form-field-group>.form-field-array-item { + padding-right: 0; } :host mat-form-field { - cursor: not-allowed; -} + cursor: not-allowed; +} \ No newline at end of file diff --git a/frontend/src/app/schema-engine/document-view/document-view.component.html b/frontend/src/app/schema-engine/document-view/document-view.component.html index a66805a9f4..8f47799078 100644 --- a/frontend/src/app/schema-engine/document-view/document-view.component.html +++ b/frontend/src/app/schema-engine/document-view/document-view.component.html @@ -1,73 +1,76 @@
-
-
-
Id
- - - +
+
+
+
+
Id
+ + + +
-
+
- -
-
Issuer
- - + +
+
Issuer
+ + - -
-
-
-
Issuance Date
- - - - - -
-
-
+
+
+
+
+
Issuance Date
+ + + + + +
+
+
-
-
Proof
- - - -
+
+
Proof
+ + + +
-
+
-
- -
Credential Subject
-
-
- - -
-
-
-
-
-
+
+ +
Credential Subject
+
+
+ + +
+
+
+
+
+
- -
Verifiable Credential
-
-
- - -
-
-
-
+ +
Verifiable Credential
+
+
+ + +
+
+
+
+
+
-
-
\ No newline at end of file diff --git a/frontend/src/app/schema-engine/document-view/document-view.component.ts b/frontend/src/app/schema-engine/document-view/document-view.component.ts index 16ec1ae7e9..20d484e0ce 100644 --- a/frontend/src/app/schema-engine/document-view/document-view.component.ts +++ b/frontend/src/app/schema-engine/document-view/document-view.component.ts @@ -1,56 +1,83 @@ -import { ChangeDetectionStrategy, Component, Input, OnInit, } from '@angular/core'; -import { Schema } from 'interfaces'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, } from '@angular/core'; +import { Schema } from '@guardian/interfaces'; +import { SchemaService } from 'src/app/services/schema.service'; /** * View document */ @Component({ - selector: 'app-document-view', - templateUrl: './document-view.component.html', - styleUrls: ['./document-view.component.css'], - changeDetection: ChangeDetectionStrategy.OnPush + selector: 'app-document-view', + templateUrl: './document-view.component.html', + styleUrls: ['./document-view.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush }) export class DocumentViewComponent implements OnInit { - @Input('document') document: any; - @Input('hide-fields') hideFields!: { [x: string]: boolean }; - @Input('schemas') schemas!: Schema[]; - @Input('type') type!: 'VC' | 'VP'; + @Input('document') document: any; + @Input('hide-fields') hideFields!: { [x: string]: boolean }; + @Input('type') type!: 'VC' | 'VP'; - subjects: any[] = [] - proofJson!: string; + subjects: any[] = [] + proofJson!: string; + schemaMap: any = {}; + loading: number = 0; - constructor() { } + constructor( + private schemaService: SchemaService, + private ref: ChangeDetectorRef + ) { - ngOnInit(): void { - this.proofJson = this.document.proof - ? JSON.stringify(this.document.proof, null, 4) - : ""; + } - switch (this.type) { - case 'VC': - if (Object.getPrototypeOf(this.document.credentialSubject) === Object.prototype) { - this.subjects.push(this.document.credentialSubject); - } - else { - for (let i = 0; i < this.document.credentialSubject.length; i++) { - this.subjects.push(this.document.credentialSubject[i]); - } - } - break; - case 'VP': - if (Object.getPrototypeOf(this.document.verifiableCredential) === Object.prototype) { - this.subjects.push(this.document.verifiableCredential); - } - else { - for (let i = 0; i < this.document.verifiableCredential.length; i++) { - this.subjects.push(this.document.verifiableCredential[i]); - } + ngOnInit(): void { + this.proofJson = this.document.proof + ? JSON.stringify(this.document.proof, null, 4) + : ""; + + switch (this.type) { + case 'VC': + if (Object.getPrototypeOf(this.document.credentialSubject) === Object.prototype) { + this.subjects.push(this.document.credentialSubject); + } else { + for (let i = 0; i < this.document.credentialSubject.length; i++) { + this.subjects.push(this.document.credentialSubject[i]); + } + } + for (const credentialSubject of this.subjects) { + this.loading++; + this.loadSchema(credentialSubject.type); + } + break; + case 'VP': + if (Object.getPrototypeOf(this.document.verifiableCredential) === Object.prototype) { + this.subjects.push(this.document.verifiableCredential); + } else { + for (let i = 0; i < this.document.verifiableCredential.length; i++) { + this.subjects.push(this.document.verifiableCredential[i]); + } + } + break; } - break; } - } - getSchema(type: string): any { - return this.schemas.find((schema) => schema.type === type); - } -} \ No newline at end of file + loadSchema(type: string) { + if (type) { + this.schemaService.getSchemasByType(type).subscribe((result) => { + if(result) { + this.schemaMap[type] = new Schema(result); + } else { + this.schemaMap[type] = null; + } + this.loading--; + this.ref.detectChanges(); + }, (error) => { + this.schemaMap[type] = null; + this.loading--; + this.ref.detectChanges(); + }); + } else { + this.schemaMap[type] = null; + this.loading--; + this.ref.detectChanges(); + } + } +} diff --git a/frontend/src/app/schema-engine/export-schema-dialog/export-schema-dialog.component.ts b/frontend/src/app/schema-engine/export-schema-dialog/export-schema-dialog.component.ts index 8924b5e034..14287851a1 100644 --- a/frontend/src/app/schema-engine/export-schema-dialog/export-schema-dialog.component.ts +++ b/frontend/src/app/schema-engine/export-schema-dialog/export-schema-dialog.component.ts @@ -34,10 +34,12 @@ export class ExportSchemaDialog { saveToFile() { this.loading = true; this.schemaService.exportInFile(this.schema.id) - .subscribe((result) => { + .subscribe((fileBuffer) => { let downloadLink = document.createElement('a'); - downloadLink.href = window.URL.createObjectURL(result); - downloadLink.setAttribute('download', `schemes_${Date.now()}.zip`); + downloadLink.href = window.URL.createObjectURL(new Blob([new Uint8Array(fileBuffer)], { + type: 'application/guardian-schema' + })); + downloadLink.setAttribute('download', `schemas_${Date.now()}.schema`); document.body.appendChild(downloadLink); downloadLink.click(); setTimeout(() => { diff --git a/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.html b/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.html index 9b94c5ed1d..ced0b6ed37 100644 --- a/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.html +++ b/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.html @@ -1,7 +1,7 @@
- +

@@ -35,8 +35,8 @@

- +
-
\ No newline at end of file +
diff --git a/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.ts b/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.ts index ea2d17e443..c8f45502f2 100644 --- a/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.ts +++ b/frontend/src/app/schema-engine/import-schema/import-schema-dialog.component.ts @@ -1,11 +1,11 @@ import { Component, Inject } from '@angular/core'; import { FormBuilder, Validators } from '@angular/forms'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { ImportType, Schema, SchemaHelper } from 'interfaces'; +import { ImportType, Schema, SchemaHelper } from '@guardian/interfaces'; import { Observable, ReplaySubject } from 'rxjs'; import { SchemaService } from 'src/app/services/schema.service'; /** - * Dialog allowing you to select a file and load schemes. + * Dialog allowing you to select a file and load schemas. */ @Component({ selector: 'import-schema-dialog', @@ -59,13 +59,13 @@ export class ImportSchemaDialog { this.dialogRef.close({ type: 'message', data: messageId, - schemes: result + schemas: result }); }, error => { this.loading = false; }); } - + importFromFile(file: any) { const reader = new FileReader() reader.readAsArrayBuffer(file); @@ -77,7 +77,7 @@ export class ImportSchemaDialog { this.dialogRef.close({ type: 'file', data: arrayBuffer, - schemes: result + schemas: result }); }, (e) => { this.loading = false; diff --git a/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.html b/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.html index f3914baaed..101b82e102 100644 --- a/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.html +++ b/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.html @@ -5,7 +5,7 @@
- + * Policy {{policy.name}} @@ -14,7 +14,11 @@ For (Entity) - + + STANDARD REGISTRY + USER + + NONE VC MRV @@ -31,38 +35,9 @@
-
-
- - * Field name - - -
-
- - Field type - - - {{type.name}} - - - {{type.name}} - - - -
-
- Required Field -
-
- Allow multiple answers -
-
-
- delete -
-
-
+ +
@@ -81,9 +56,11 @@
IF - + *Field - + {{field.controlName.value}} @@ -92,35 +69,41 @@ = - - {{condition.ifControl.field.value.controlRequired.value ? "* Field value" : "Field value"}} + {{condition.ifControl.field.value.controlRequired.value ? "* Field value" : + "Field value"}} - + class="example-full-width required-form-field" appearance="outline"> - + class="example-full-width required-form-field" appearance="outline"> Choose a date & time - + - + class="example-full-width required-form-field" appearance="outline"> Choose a date @@ -130,109 +113,53 @@
- True - False + True + + False +
- -
-

THEN

-
-
- - * Field name - - -
-
- - Field type - - - {{type.name}} - - - {{type.name}} - - - -
-
- Required Field -
-
- Allow multiple answers -
-
-
- delete -
-
-
+ +
- - add Add THEN Field - + + add Add THEN Field +

ELSE

-
-
- - * Field name - - -
-
- - Field type - - - {{type.name}} - - - {{type.name}} - - - -
-
- Required Field -
-
- Allow multiple answers -
-
-
- delete -
-
-
+ +
-
- - add Add ELSE Field - + + add Add ELSE Field +
- - remove Remove Condition - + + remove Remove Condition +
@@ -240,9 +167,9 @@
- - add Add Condition - + + add Add Condition +
- + \ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.ts b/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.ts index b258febe88..47637f7a1a 100644 --- a/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.ts +++ b/frontend/src/app/schema-engine/schema-configuration/schema-configuration.component.ts @@ -1,15 +1,30 @@ import { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker'; import { NgxMatMomentAdapter } from '@angular-material-components/moment-adapter'; -import { Component, Input, OnInit, SimpleChanges } from '@angular/core'; -import { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; -import { Schema, SchemaCondition, SchemaField } from 'interfaces'; +import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'; +import { + AbstractControl, + FormBuilder, + FormControl, + FormGroup, + ValidationErrors, + ValidatorFn, + Validators +} from '@angular/forms'; +import { + Schema, + SchemaCondition, + SchemaField, + FieldTypesDictionary, + UnitSystem, + SchemaEntity +} from '@guardian/interfaces'; import * as moment from 'moment'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { DATETIME_FORMATS } from '../schema-form/schema-form.component'; /** - * Schemes constructor + * Schemas constructor */ @Component({ selector: 'app-schema-configuration', @@ -23,9 +38,12 @@ import { DATETIME_FORMATS } from '../schema-form/schema-form.component'; export class SchemaConfigurationComponent implements OnInit { @Input('value') value!: Schema; @Input('type') type!: string; - @Input('schemes-map') schemesMap!: { [x: string]: Schema[] }; + @Input('schemas-map') schemasMap!: { [x: string]: Schema[] }; @Input('policies') policies!: any[]; @Input('topicId') topicId!: any; + @Input('system') system!: boolean; + + @Output('change-form') changeForm = new EventEmitter(); started = false; fieldsForm!: FormGroup; @@ -35,12 +53,13 @@ export class SchemaConfigurationComponent implements OnInit { defaultFieldsMap!: any; typesMap!: any; types!: any[]; + measureTypes!: any[]; fields!: any[]; conditions!: any[]; - schemaTypes!: any; + schemaTypes!: any[]; schemaTypeMap!: any; destroy$: Subject = new Subject(); - schemes!: Schema[]; + schemas!: Schema[]; private _patternByNumberType: any = { duration: /^[0-9]+$/, @@ -53,152 +72,90 @@ export class SchemaConfigurationComponent implements OnInit { ) { this.defaultFieldsMap = {}; - this.defaultFieldsMap["NONE"] = []; - this.defaultFieldsMap["VC"] = [ - { - name: 'policyId', - description: '', - required: true, - isArray: false, - isRef: false, - type: 'string', - format: undefined, - pattern: undefined, - readOnly: true - }, - { - name: 'ref', - description: '', - required: false, - isArray: false, - isRef: false, - type: 'string', - format: undefined, - pattern: undefined, - readOnly: true - } - ]; - this.defaultFieldsMap["MRV"] = [ - { - name: 'accountId', - description: '', - required: true, - isArray: false, - isRef: false, - type: 'string', - format: undefined, - pattern: undefined, - readOnly: true - }, - { - name: 'policyId', - description: '', - required: true, - isArray: false, - isRef: false, - type: 'string', - format: undefined, - pattern: undefined, - readOnly: true - } - ]; - this.defaultFieldsMap["TOKEN"] = []; - - this.types = [ - { name: "Number", value: "1" }, - { name: "Integer", value: "2" }, - { name: "String", value: "3" }, - { name: "Boolean", value: "4" }, - { name: "Date", value: "5" }, - { name: "Time", value: "6" }, - { name: "DateTime", value: "7" }, - { name: "Duration", value: "8" }, - { name: "URL", value: "9" }, - { name: "Email", value: "10" }, - { name: "Image", value: "11" } - ]; - this.schemaTypeMap = {}; - this.schemaTypeMap["1"] = { - type: 'number', - format: undefined, - pattern: undefined, - isRef: false - }; - this.schemaTypeMap["2"] = { - type: 'integer', - format: undefined, - pattern: undefined, - isRef: false - }; - this.schemaTypeMap["3"] = { + this.defaultFieldsMap[SchemaEntity.VC] = [{ + name: 'policyId', + description: '', + required: true, + isArray: false, + isRef: false, type: 'string', format: undefined, pattern: undefined, - isRef: false - }; - this.schemaTypeMap["4"] = { - type: 'boolean', - format: undefined, - pattern: undefined, - isRef: false - }; - this.schemaTypeMap["5"] = { - type: 'string', - format: 'date', - pattern: undefined, - isRef: false - }; - this.schemaTypeMap["6"] = { - type: 'string', - format: 'time', - pattern: undefined, - isRef: false - }; - this.schemaTypeMap["7"] = { + readOnly: true + }, { + name: 'ref', + description: '', + required: false, + isArray: false, + isRef: false, type: 'string', - format: 'date-time', + format: undefined, pattern: undefined, - isRef: false - }; - this.schemaTypeMap["8"] = { + readOnly: true + }]; + this.defaultFieldsMap[SchemaEntity.MRV] = [{ + name: 'accountId', + description: '', + required: true, + isArray: false, + isRef: false, type: 'string', - format: 'duration', + format: undefined, pattern: undefined, - isRef: false - }; - this.schemaTypeMap["9"] = { + readOnly: true + }, { + name: 'policyId', + description: '', + required: true, + isArray: false, + isRef: false, type: 'string', - format: 'url', + format: undefined, pattern: undefined, - isRef: false - }; - this.schemaTypeMap["10"] = { - type: 'string', - format: 'email', + readOnly: true + }]; + + this.types = []; + this.measureTypes = []; + this.schemaTypeMap = {}; + for (const type of FieldTypesDictionary.FieldTypes) { + const value = this.getId('default'); + this.types.push({ name: type.name, value: value }); + this.schemaTypeMap[value] = { ...type }; + } + this.schemaTypeMap[UnitSystem.Postfix] = { + name: UnitSystem.Postfix, + type: 'number', + format: undefined, pattern: undefined, - isRef: false + isRef: false, + unit: "", + unitSystem: UnitSystem.Postfix }; - this.schemaTypeMap["11"] = { - type: 'string', + this.schemaTypeMap[UnitSystem.Prefix] = { + name: UnitSystem.Prefix, + type: 'number', format: undefined, - pattern: '^((https):\/\/)?ipfs.io\/ipfs\/.+', - isRef: false + pattern: undefined, + isRef: false, + unit: "", + unitSystem: UnitSystem.Prefix }; + } - this.fieldsForm = this.fb.group({}); - this.conditionsForm = new FormGroup({}); - this.defaultFields = new FormControl("VC", Validators.required); - this.dataForm = this.fb.group({ - name: ['', Validators.required], - description: [''], - topicId: ['', Validators.required], - entity: this.defaultFields, - fields: this.fieldsForm, - conditions: this.conditionsForm - }); - this.fields = []; - this.conditions = []; - this.schemes = []; + getId(type: 'default' | 'measure' | 'schemas'): string { + switch (type) { + case 'default': + return String(this.types.length); + case 'measure': + return String(this.types.length + this.measureTypes.length); + case 'schemas': + return String( + this.types.length + + this.measureTypes.length + + this.schemaTypes.length + ); + } } ngOnInit(): void { @@ -208,46 +165,155 @@ export class SchemaConfigurationComponent implements OnInit { } ngOnChanges(changes: SimpleChanges): void { - this.updateSubSchemes(this.value?.topicId || this.topicId); - this.dataForm.setValue({ - name: '', - description: '', - entity: 'VC', - topicId: this.topicId, - fields: {}, - conditions: {} - }) + if (this.system) { + this.updateSubSchemas(undefined); + } else { + this.updateSubSchemas(this.value?.topicId || this.topicId); + } + if (this.dataForm) { + if (this.system) { + this.dataForm.setValue({ + name: '', + description: '', + entity: SchemaEntity.STANDARD_REGISTRY, + fields: {}, + conditions: {} + }); + } else { + this.dataForm.setValue({ + name: '', + description: '', + entity: SchemaEntity.VC, + topicId: this.topicId, + fields: {}, + conditions: {} + }); + } + } else { + this.fieldsForm = this.fb.group({}); + this.conditionsForm = new FormGroup({}); + if (this.system) { + this.defaultFields = new FormControl(SchemaEntity.STANDARD_REGISTRY, Validators.required); + this.dataForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + entity: this.defaultFields, + fields: this.fieldsForm, + conditions: this.conditionsForm + }); + this.dataForm.valueChanges.subscribe(() => { + this.changeForm.emit(this); + }) + } else { + this.defaultFields = new FormControl(SchemaEntity.VC, Validators.required); + this.dataForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + topicId: [this.topicId, Validators.required], + entity: this.defaultFields, + fields: this.fieldsForm, + conditions: this.conditionsForm + }); + this.dataForm.valueChanges.subscribe(() => { + this.changeForm.emit(this); + }) + } + this.fields = []; + this.conditions = []; + this.schemas = []; + } if (changes.value && this.value) { this.updateFormControls(); } + this.changeForm.emit(this); + } + + private createFieldControl(field: SchemaField | null, index: number) { + const fieldName = "fieldName" + index; + const fieldType = "fieldType" + index; + const fieldRequired = "fieldRequired" + index; + const fieldArray = "fieldArray" + index; + const fieldUnit = "fieldUnit" + index; + const control: any = { + name: null, + fieldName: fieldName, + fieldType: fieldType, + fieldRequired: fieldRequired, + fieldArray: fieldArray, + fieldUnit: fieldUnit, + required: false, + isArray: false, + controlName: null, + controlType: null, + controlRequired: null, + controlArray: null, + controlUnit: null, + } + + if (field) { + const typeIndex = this.getType(field); + control.name = field.name; + control.controlName = new FormControl(field.description, Validators.required); + control.controlType = new FormControl(typeIndex, Validators.required); + control.controlRequired = new FormControl(field.required); + control.controlArray = new FormControl(field.isArray); + control.controlUnit = new FormControl(field.unit); + } else { + control.name = ''; + control.controlName = new FormControl('', Validators.required); + control.controlType = new FormControl(this.types[0].value, Validators.required); + control.controlRequired = new FormControl(false); + control.controlArray = new FormControl(false); + control.controlUnit = new FormControl(''); + } + return control; + } + + private registerFieldControl(control: any, form: FormGroup, controls: any[]) { + controls.push(control); + form.addControl(control.fieldName, control.controlName); + form.addControl(control.fieldType, control.controlType); + form.addControl(control.fieldRequired, control.controlRequired); + form.addControl(control.fieldArray, control.controlArray); + form.addControl(control.fieldUnit, control.controlUnit); + } + + private registerFieldGroup(control: any) { + return new FormGroup({ + fieldName: control.controlName, + fieldType: control.controlType, + fieldRequired: control.controlRequired, + fieldArray: control.controlArray, + fieldUnit: control.controlUnit, + }); } onFilter(event: any) { const topicId = event.value; - this.updateSubSchemes(topicId); + this.updateSubSchemas(topicId); } - updateSubSchemes(topicId: any) { + updateSubSchemas(topicId: any) { this.schemaTypes = []; - if (this.schemesMap) { - this.schemes = this.schemesMap[topicId]; + if (this.schemasMap) { + this.schemas = this.schemasMap[topicId]; } - if (this.schemes) { - for (let i = 0; i < this.schemes.length; i++) { - const index = String(this.types.length + i + 1); + if (this.schemas) { + for (let i = 0; i < this.schemas.length; i++) { + const value = this.getId('schemas'); this.schemaTypes.push({ - name: this.schemes[i].name, - value: index + name: this.schemas[i].name, + value: value }); - this.schemaTypeMap[index] = { - type: this.schemes[i].iri, + this.schemaTypeMap[value] = { + type: this.schemas[i].iri, format: undefined, pattern: undefined, isRef: true, } } } else { - this.schemes = []; + this.schemas = []; } } @@ -273,53 +339,15 @@ export class SchemaConfigurationComponent implements OnInit { const thenFieldsControls = new FormGroup({}); const elseFieldsControls = new FormGroup({}); - condition.thenFields.forEach((field: any) => { - const type = this.getType(field); - const controlName = new FormControl(field.description, Validators.required); - const controlType = new FormControl(type, Validators.required); - const controlRequired = new FormControl(field.required); - const controlArray = new FormControl(field.isArray); - - const fieldValue = { - fieldName: field.name, - controlName: controlName, - controlType: controlType, - controlRequired: controlRequired, - controlArray: controlArray - } - - thenFieldsControls.addControl(fieldValue.fieldName, new FormGroup({ - fieldName: fieldValue.controlName, - fieldType: fieldValue.controlType, - fieldRequired: fieldValue.controlRequired, - fieldArray: fieldValue.controlArray - })); - + condition.thenFields.forEach((field: any, index: number) => { + const fieldValue = this.createFieldControl(field, index); + thenFieldsControls.addControl(fieldValue.fieldName, this.registerFieldGroup(fieldValue)); newCondition.thenControls.push(fieldValue); }); - condition.elseFields?.forEach((field: any) => { - const type = this.getType(field); - const controlName = new FormControl(field.description, Validators.required); - const controlType = new FormControl(type, Validators.required); - const controlRequired = new FormControl(field.required); - const controlArray = new FormControl(field.isArray); - - const fieldValue = { - fieldName: field.name, - controlName: controlName, - controlType: controlType, - controlRequired: controlRequired, - controlArray: controlArray - } - - elseFieldsControls.addControl(fieldValue.fieldName, new FormGroup({ - fieldName: fieldValue.controlName, - fieldType: fieldValue.controlType, - fieldRequired: fieldValue.controlRequired, - fieldArray: fieldValue.controlArray - })); - + condition.elseFields?.forEach((field: any, index: number) => { + const fieldValue = this.createFieldControl(field, index); + elseFieldsControls.addControl(fieldValue.fieldName, this.registerFieldGroup(fieldValue)); newCondition.elseControls.push(fieldValue); }); @@ -344,33 +372,8 @@ export class SchemaConfigurationComponent implements OnInit { if (field.readOnly || conditionsFields.find(elem => elem === field.name)) { continue; } - const type = this.getType(field); - const fieldName = "fieldName" + this.fields.length; - const fieldType = "fieldType" + this.fields.length; - const fieldRequired = "fieldRequired" + this.fields.length; - const fieldArray = "fieldArray" + this.fields.length; - const controlName = new FormControl(field.description, Validators.required); - const controlType = new FormControl(type, Validators.required); - const controlRequired = new FormControl(field.required); - const controlArray = new FormControl(field.isArray); - - this.fields.push({ - name: field.name, - fieldName: fieldName, - fieldType: fieldType, - fieldRequired: fieldRequired, - fieldArray: fieldArray, - controlName: controlName, - controlType: controlType, - controlRequired: controlRequired, - controlArray: controlArray, - required: false, - isArray: false - }); - this.fieldsForm.addControl(fieldName, controlName); - this.fieldsForm.addControl(fieldType, controlType); - this.fieldsForm.addControl(fieldRequired, controlRequired); - this.fieldsForm.addControl(fieldArray, controlArray); + const control = this.createFieldControl(field, this.fields.length); + this.registerFieldControl(control, this.fieldsForm, this.fields); } } @@ -412,7 +415,13 @@ export class SchemaConfigurationComponent implements OnInit { }; } - getType(field: SchemaField) { + getType(field: SchemaField): string { + if (field.unitSystem == UnitSystem.Prefix) { + return UnitSystem.Prefix; + } + if (field.unitSystem == UnitSystem.Postfix) { + return UnitSystem.Postfix; + } const keys = Object.keys(this.schemaTypeMap); for (let i = 0; i < keys.length; i++) { const key = keys[i]; @@ -426,7 +435,7 @@ export class SchemaConfigurationComponent implements OnInit { return key; } } - return null; + return ''; } onConditionFieldRemove(condition: any, conditionField: any, type: 'then' | 'else') { @@ -447,41 +456,17 @@ export class SchemaConfigurationComponent implements OnInit { onConditionFieldAdd(condition: any, type: 'then' | 'else') { const conditionControl = this.conditionsForm.get(condition.name); - const fieldName = "field" + Date.now(); - const controlName = new FormControl('', Validators.required); - const controlType = new FormControl("3", Validators.required); - const controlRequired = new FormControl(false); - const controlArray = new FormControl(false); - const field = { - fieldName: fieldName, - controlName: controlName, - controlType: controlType, - controlRequired: controlRequired, - controlArray: controlArray - } - - switch (type) { - case 'then': - (conditionControl!.get("thenFieldControls") as FormGroup).addControl(fieldName, new FormGroup({ - fieldName: field.controlName, - fieldType: field.controlType, - fieldRequired: field.controlRequired, - fieldArray: field.controlArray - })); - - condition.thenControls.push(field); - break; - case 'else': - (conditionControl!.get("elseFieldControls") as FormGroup).addControl(fieldName, new FormGroup({ - fieldName: field.controlName, - fieldType: field.controlType, - fieldRequired: field.controlRequired, - fieldArray: field.controlArray - })); - - condition.elseControls.push(field); - break; + if (type == 'then') { + const field = this.createFieldControl(null, condition.thenControls.length); + field.name = "field" + Date.now(); + (conditionControl!.get("thenFieldControls") as FormGroup).addControl(field.name, this.registerFieldGroup(field)); + condition.thenControls.push(field); + } else { + const field = this.createFieldControl(null, condition.elseControls.length); + field.name = "field" + Date.now(); + (conditionControl!.get("elseFieldControls") as FormGroup).addControl(field.name, this.registerFieldGroup(field)); + condition.elseControls.push(field); } } @@ -514,32 +499,8 @@ export class SchemaConfigurationComponent implements OnInit { onAdd(event: MouseEvent) { event.preventDefault(); - - const fieldName = "fieldName" + this.fields.length; - const fieldType = "fieldType" + this.fields.length; - const fieldRequired = "fieldRequired" + this.fields.length; - const fieldArray = "fieldArray" + this.fields.length; - const controlName = new FormControl('', Validators.required); - const controlType = new FormControl("3", Validators.required); - const controlRequired = new FormControl(false); - const controlArray = new FormControl(false); - this.fields.push({ - name: "", - fieldName: fieldName, - fieldType: fieldType, - fieldRequired: fieldRequired, - fieldArray: fieldArray, - controlName: controlName, - controlType: controlType, - controlRequired: controlRequired, - controlArray: controlArray, - required: false, - isArray: false - }); - this.fieldsForm.addControl(fieldName, controlName); - this.fieldsForm.addControl(fieldType, controlType); - this.fieldsForm.addControl(fieldRequired, controlRequired); - this.fieldsForm.addControl(fieldArray, controlArray); + const control = this.createFieldControl(null, this.fields.length); + this.registerFieldControl(control, this.fieldsForm, this.fields); this.fields = this.fields.slice(); } @@ -550,7 +511,7 @@ export class SchemaConfigurationComponent implements OnInit { this.fieldsForm.removeControl(item.fieldType); this.fieldsForm.removeControl(item.fieldRequired); this.fieldsForm.removeControl(item.fieldArray); - + this.fieldsForm.removeControl(item.fieldUnit); } private removeConditionsByField(field: any) { @@ -572,13 +533,14 @@ export class SchemaConfigurationComponent implements OnInit { const fields: SchemaField[] = []; const fieldsWithNames: any[] = [] for (let i = 0; i < this.fields.length; i++) { - const element = this.fields[i]; - const name = value.fields[element.fieldName]; - const typeIndex = value.fields[element.fieldType]; - const required = value.fields[element.fieldRequired]; - const isArray = value.fields[element.fieldArray]; + const fieldConfig = this.fields[i]; + const name = value.fields[fieldConfig.fieldName]; + const typeIndex = value.fields[fieldConfig.fieldType]; + const required = value.fields[fieldConfig.fieldRequired]; + const isArray = value.fields[fieldConfig.fieldArray]; + const unit = value.fields[fieldConfig.fieldUnit]; const type = this.schemaTypeMap[typeIndex]; - const field = { + const schemaField: SchemaField = { name: name, title: name, description: name, @@ -588,53 +550,63 @@ export class SchemaConfigurationComponent implements OnInit { type: type.type, format: type.format, pattern: type.pattern, + unit: type.unitSystem ? unit : undefined, + unitSystem: type.unitSystem, readOnly: false, } - fields.push(field); + fields.push(schemaField); fieldsWithNames.push({ - field: field, - name: element.fieldName + field: schemaField, + name: fieldConfig.fieldName }) - } - const defaultFields = this.defaultFieldsMap[value.entity]; + + const defaultFields = this.defaultFieldsMap[value.entity] || []; for (let i = 0; i < defaultFields.length; i++) { - const element = defaultFields[i]; - fields.push({ - name: element.name, + const fieldConfig = defaultFields[i]; + const schemaField: SchemaField = { + name: fieldConfig.name, title: '', description: '', - required: element.required, - isArray: element.isArray, - isRef: element.isRef, - type: element.type, - format: element.format, - pattern: element.pattern, + required: fieldConfig.required, + isArray: fieldConfig.isArray, + isRef: fieldConfig.isRef, + type: fieldConfig.type, + format: fieldConfig.format, + pattern: fieldConfig.pattern, + unit: fieldConfig.unit, + unitSystem: fieldConfig.unitSystem, readOnly: true, - }); + } + fields.push(schemaField); } const conditions: SchemaCondition[] = []; for (let i = 0; i < this.conditions.length; i++) { const element = this.conditions[i]; const conditionValue = value.conditions[element.name]; - const thenFields = []; const thenFieldsControls = conditionValue.thenFieldControls; const thenFieldNames = Object.keys(thenFieldsControls); + for (let j = 0; j < thenFieldNames.length; j++) { - const typeIndex = thenFieldsControls[thenFieldNames[j]].fieldType; + const name = thenFieldNames[j]; + const fieldConfig = thenFieldsControls[name]; + const typeIndex = fieldConfig.fieldType; const type = this.schemaTypeMap[typeIndex]; + const schemaField: SchemaField = { - name: thenFieldNames[j], - title: thenFieldsControls[thenFieldNames[j]].fieldName, - description: thenFieldsControls[thenFieldNames[j]].fieldName, - required: thenFieldsControls[thenFieldNames[j]].fieldRequired, - isArray: thenFieldsControls[thenFieldNames[j]].fieldArray, + name: name, + title: fieldConfig.fieldName, + description: fieldConfig.fieldName, + required: fieldConfig.fieldRequired, + isArray: fieldConfig.fieldArray, isRef: type.isRef, type: type.type, format: type.format, pattern: type.pattern, + unit: type.unitSystem ? fieldConfig.fieldUnit : undefined, + unitSystem: type.unitSystem, readOnly: false, } thenFields.push(schemaField); @@ -644,18 +616,23 @@ export class SchemaConfigurationComponent implements OnInit { const elseFieldsControls = conditionValue.elseFieldControls; const elseFieldNames = Object.keys(elseFieldsControls); for (let j = 0; j < elseFieldNames.length; j++) { - const typeIndex = elseFieldsControls[elseFieldNames[j]].fieldType; + const name = elseFieldNames[j]; + const fieldConfig = elseFieldsControls[name]; + const typeIndex = fieldConfig.fieldType; const type = this.schemaTypeMap[typeIndex]; + const schemaField: SchemaField = { - name: elseFieldNames[j], - title: elseFieldsControls[elseFieldNames[j]].fieldName, - description: elseFieldsControls[elseFieldNames[j]].fieldName, - required: elseFieldsControls[elseFieldNames[j]].fieldRequired, - isArray: elseFieldsControls[elseFieldNames[j]].fieldArray, + name: name, + title: fieldConfig.fieldName, + description: fieldConfig.fieldName, + required: fieldConfig.fieldRequired, + isArray: fieldConfig.fieldArray, isRef: type.isRef, type: type.type, format: type.format, pattern: type.pattern, + unit: type.unitSystem ? fieldConfig.fieldUnit : undefined, + unitSystem: type.unitSystem, readOnly: false, } elseFields.push(schemaField); @@ -670,8 +647,9 @@ export class SchemaConfigurationComponent implements OnInit { elseFields: elseFields }); } + schema.update(fields, conditions); - schema.updateRefs(this.schemes); + schema.updateRefs(this.schemas); return schema; } @@ -679,13 +657,12 @@ export class SchemaConfigurationComponent implements OnInit { const value = this.dataForm.value; const schema = this.buildSchema(value); schema.topicId = value.topicId; + schema.system = this.system; + schema.active = false; + schema.readonly = false; return schema; } - public get valid() { - return this.dataForm.valid; - } - onIfConditionFieldChange(condition: any, field: any) { if (condition.changeEvents) { condition.ifControl.fieldValue.patchValue('', { @@ -850,4 +827,11 @@ export class SchemaConfigurationComponent implements OnInit { this.destroy$.next(true); this.destroy$.unsubscribe(); } + + public isValid(): boolean { + if (this.dataForm) { + return this.dataForm.valid; + } + return false; + } } diff --git a/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.html b/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.html index 5989a90113..51e464ce04 100644 --- a/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.html +++ b/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.html @@ -15,10 +15,10 @@ New Version
-
+
Create
-
+
Save
@@ -27,10 +27,13 @@
+ [topicId]="topicId" + [system]="system" + (change-form)="onChangeForm($event)" + >
diff --git a/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.ts b/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.ts index a182b9471b..7db56f5604 100644 --- a/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.ts +++ b/frontend/src/app/schema-engine/schema-dialog/schema-dialog.component.ts @@ -2,10 +2,10 @@ import { Component, Inject, ViewChild } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { FormBuilder } from '@angular/forms'; import { SchemaConfigurationComponent } from '../schema-configuration/schema-configuration.component'; -import { Schema } from 'interfaces'; +import { Schema } from '@guardian/interfaces'; /** - * Dialog for creating and editing schemes. + * Dialog for creating and editing schemas. */ @Component({ selector: 'schema-dialog', @@ -16,21 +16,24 @@ export class SchemaDialog { @ViewChild('document') schemaControl!: SchemaConfigurationComponent; scheme: Schema; - schemesMap: any; + schemasMap: any; started: boolean = false; type: 'new' | 'edit' | 'version' = 'new'; topicId: any; policies: any[]; + system: boolean = false; + valid: boolean = true; constructor( public dialogRef: MatDialogRef, private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) public data: any) { - this.schemesMap = data.schemesMap || {}; + this.schemasMap = data.schemasMap || {}; this.scheme = data.scheme || null; this.type = data.type || null; this.topicId = data.topicId || null; this.policies = data.policies || []; + this.system = data.system || false; } ngOnInit(): void { @@ -51,4 +54,8 @@ export class SchemaDialog { const schema = this.schemaControl?.getSchema(); this.dialogRef.close(schema); } -} \ No newline at end of file + + onChangeForm(schemaControl: SchemaConfigurationComponent) { + this.valid = schemaControl.isValid(); + } +} diff --git a/frontend/src/app/schema-engine/schema-engine.module.ts b/frontend/src/app/schema-engine/schema-engine.module.ts index fee01e1e40..d7c4bb6518 100644 --- a/frontend/src/app/schema-engine/schema-engine.module.ts +++ b/frontend/src/app/schema-engine/schema-engine.module.ts @@ -16,6 +16,7 @@ import { SchemaViewDialog } from './schema-view-dialog/schema-view-dialog.compon import { ExportSchemaDialog } from './export-schema-dialog/export-schema-dialog.component'; import { NgxFileDropModule } from 'ngx-file-drop'; import { FileDragNDropComponent } from '../components/file-drag-n-drop/file-drag-n-drop.component'; +import { SchemaFieldConfigurationComponent } from './schema-field-configuration/schema-field-configuration.component'; @NgModule({ declarations: [ @@ -29,7 +30,8 @@ import { FileDragNDropComponent } from '../components/file-drag-n-drop/file-drag VCViewerDialog, SchemaViewDialog, ExportSchemaDialog, - FileDragNDropComponent + FileDragNDropComponent, + SchemaFieldConfigurationComponent ], imports: [ CommonModule, @@ -51,7 +53,8 @@ import { FileDragNDropComponent } from '../components/file-drag-n-drop/file-drag SetVersionDialog, VCViewerDialog, ExportSchemaDialog, - FileDragNDropComponent + FileDragNDropComponent, + SchemaFieldConfigurationComponent ] }) export class SchemaEngineModule { } diff --git a/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.css b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.css new file mode 100644 index 0000000000..df72d746ad --- /dev/null +++ b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.css @@ -0,0 +1,95 @@ +.custom-field { + width: 100%; + display: flex; + flex-wrap: wrap; + grid-gap: 6px; + column-gap: 14px; + position: relative; + margin-bottom: 30px; +} + +.custom-field-name { + position: relative; + display: flex; + flex-direction: column; + overflow: hidden; + height: 65px; + margin-bottom: 5px; + margin-right: 65px; + flex: 100%; +} + +.custom-field-type { + position: relative; + display: flex; + flex-direction: column; + overflow: hidden; + height: 65px; + flex: 24; + padding: 0; + margin: 0; +} + +.custom-field-unit { + position: relative; + display: flex; + flex-direction: column; + overflow: hidden; + height: 65px; + flex: 10; + padding: 0; + margin: 0; +} + +.custom-field-required { + flex: 14; + padding: 15px 20px; + margin: 3px 0 0 0; + border: 1px solid #e9e9e9; + border-radius: 6px; + height: 60px; + position: relative; + display: flex; + flex-direction: column; + overflow: hidden; + box-sizing: border-box; +} + +.custom-field-isArray { + flex: 22; + padding: 15px 20px; + margin: 3px 0 0 0; + border: 1px solid #e9e9e9; + border-radius: 6px; + height: 60px; + position: relative; + display: flex; + flex-direction: column; + overflow: hidden; + box-sizing: border-box; +} + +.custom-field-remove { + position: absolute; + right: 3px; + bottom: 100px; + z-index: 1; +} + +.custom-fields-remove { + width: 24px; + height: 36px; + margin: 0px 20px; + justify-content: center; + justify-items: center; + align-content: center; + align-items: center; + display: flex; + color: #f00; + cursor: pointer; + font-size: 25px; +} + +.custom-fields-remove mat-icon { + font-size: 30px; +} \ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.html b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.html new file mode 100644 index 0000000000..37341913aa --- /dev/null +++ b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.html @@ -0,0 +1,50 @@ +
+
+ + * Field name + + +
+
+ + Field type + + + + {{type.name}} + + + + Prefix + Postfix + + + + {{type.name}} + + + + +
+
+ + Unit + + +
+
+ + Required Field + +
+
+ + Allow multiple answers + +
+
+
+ delete +
+
+
\ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.ts b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.ts new file mode 100644 index 0000000000..1db7ba030a --- /dev/null +++ b/frontend/src/app/schema-engine/schema-field-configuration/schema-field-configuration.component.ts @@ -0,0 +1,79 @@ +import { + Component, + Input, + OnInit, + SimpleChanges, + EventEmitter, + Output +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, +} from '@angular/forms'; +import { UnitSystem } from '@guardian/interfaces'; + +/** + * Schemas constructor + */ +@Component({ + selector: 'schema-field-configuration', + templateUrl: './schema-field-configuration.component.html', + styleUrls: ['./schema-field-configuration.component.css'], +}) +export class SchemaFieldConfigurationComponent implements OnInit { + @Input('form') form!: FormGroup; + @Input('field') field!: { + name: string; + fieldName: string; + fieldType: string; + fieldRequired: string; + fieldArray: string; + controlName: FormControl; + controlType: FormControl; + controlRequired: FormControl; + controlArray: FormControl; + required: boolean; + isArray: boolean; + controlUnit: FormControl + }; + + @Input('types') types!: any[]; + @Input('measureTypes') measureTypes!: any[]; + @Input('schemaTypes') schemaTypes!: any[]; + + @Output('remove') remove = new EventEmitter(); + + unit: boolean = true; + + constructor(private fb: FormBuilder) { + + } + + ngOnInit(): void { + + } + + ngOnChanges(changes: SimpleChanges): void { + const type = this.field.controlType.value; + this.onTypeChange(type); + } + + ngOnDestroy() { + } + + onRemove(field: any) { + this.remove.emit(field); + } + + onTypeChange(event: any) { + const item = this.types.find(e => e.value == event); + if (item && item.name == 'Boolean') { + this.field.controlArray.setValue(false); + this.field.controlArray.disable(); + } else { + this.field.controlArray.enable(); + } + this.unit = event == UnitSystem.Prefix || event == UnitSystem.Postfix; + } +} diff --git a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.css b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.css index 167efd63cd..9b65868031 100644 --- a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.css +++ b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.css @@ -137,4 +137,22 @@ form { .invalid-type { color: red; margin-bottom: 10px; +} + + +.form-field-value { + display: flex; + flex-direction: row; +} + + +.form-field-prefix { + padding: 22px 14px 1px 4px; + font-size: 20px; +} + + +.form-field-postfix { + padding: 22px 4px 1px 14px; + font-size: 20px; } \ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.html b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.html index 18bc71c61c..2b33c0b695 100644 --- a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.html +++ b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.html @@ -4,79 +4,59 @@
{{item.description}}
- - -
-
- - -
- -
+
+
{{item.unit}}
+ + + +
+
+ + +
+ +
+ +
- - - - - - - - - - - - - - - - - - -
- - True - False - Unset - -
+ + + + + + + + + + + + + + + + +
+ + True + False + Unset + +
+ +
{{item.unit}}
+
{{item.description}}
-
+
-
@@ -87,83 +67,63 @@
{{item.description}}
- The field type does not match the field type in the schema + The field type does not match the field type in the schema
- - -
-
- - -
- +
+
{{item.unit}}
+ + + +
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + +
+ + True + False + Unset + + +
+ +
{{item.unit}}
- - - - - - - - - - - - - - - - - - -
- - True - False - Unset - -
-
- +
@@ -173,10 +133,7 @@
-
@@ -185,12 +142,8 @@
- +
@@ -199,4 +152,4 @@
- + \ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.ts b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.ts index 7153f58ba5..ce92ad3817 100644 --- a/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.ts +++ b/frontend/src/app/schema-engine/schema-form-view/schema-form-view.component.ts @@ -2,138 +2,182 @@ import { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from '@angular-material-compo import { NgxMatMomentAdapter } from '@angular-material-components/moment-adapter'; import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; import { PageEvent } from '@angular/material/paginator'; -import { Schema, SchemaField } from 'interfaces'; +import { Schema, SchemaField, UnitSystem } from '@guardian/interfaces'; import { DATETIME_FORMATS } from '../schema-form/schema-form.component'; /** * Form view by schema */ @Component({ - selector: 'app-schema-form-view', - templateUrl: './schema-form-view.component.html', - styleUrls: ['./schema-form-view.component.css'], - providers: [ - { provide: NgxMatDateAdapter, useClass: NgxMatMomentAdapter }, - { provide: NGX_MAT_DATE_FORMATS, useValue: DATETIME_FORMATS } - ], - changeDetection: ChangeDetectionStrategy.OnPush + selector: 'app-schema-form-view', + templateUrl: './schema-form-view.component.html', + styleUrls: ['./schema-form-view.component.css'], + providers: [ + { provide: NgxMatDateAdapter, useClass: NgxMatMomentAdapter }, + { provide: NGX_MAT_DATE_FORMATS, useValue: DATETIME_FORMATS } + ], + changeDetection: ChangeDetectionStrategy.OnPush }) export class SchemaFormViewComponent implements OnInit { - @Input('private-fields') hide!: { [x: string]: boolean }; - @Input('schema') schema!: Schema; - @Input('fields') schemaFields!: SchemaField[]; - @Input('delimiter-hide') delimiterHide: boolean = false; - @Input('values') values: any; - - fields: any[] | undefined = []; - pageSize: number = 20; - - constructor() { } - - - ngOnInit(): void { - } - - ngOnChanges() { - this.hide = this.hide || {}; - if (this.schemaFields) { - this.update(this.schemaFields); - return; - } else if (this.schema) { - this.update(this.schema.fields); - return; + @Input('private-fields') hide!: { [x: string]: boolean }; + @Input('schema') schema: Schema | null | undefined; + @Input('fields') schemaFields!: SchemaField[]; + @Input('delimiter-hide') delimiterHide: boolean = false; + @Input('values') values: any; + + fields: any[] | undefined = []; + pageSize: number = 20; + + constructor() { } + + + ngOnInit(): void { + } + + ngOnChanges() { + this.hide = this.hide || {}; + if (this.schemaFields) { + this.update(this.schemaFields); + return; + } else if (this.schema) { + this.update(this.schema.fields); + return; + } + this.update(); + } + + update(schemaFields?: SchemaField[]) { + if (!schemaFields) { + return; + } + + const fields: any[] = []; + for (let i = 0; i < schemaFields.length; i++) { + const field = schemaFields[i]; + if (this.hide[field.name]) { + continue + } + const item: any = { + name: field.name, + description: field.description, + required: field.required, + isArray: field.isArray, + isRef: field.isRef, + hide: false, + type: field.type, + format: field.format, + pattern: field.pattern, + unit: field.unit, + unitSystem: field.unitSystem, + isInvalidType: false + } + if (!field.isArray && !field.isRef) { + item.value = !this.values + || this.values[item.name] === null + || this.values[item.name] === undefined + ? "" + : this.values[item.name]; + } + if (!field.isArray && field.isRef) { + item.fields = field.fields; + } + + if (field.isArray && !field.isRef) { + let value = []; + if (this.values + && this.values[item.name] !== null + && this.values[item.name] !== undefined + ) { + const fieldValue = this.values[item.name]; + if (Array.isArray(fieldValue)) { + value = fieldValue; + } + else { + value = [fieldValue] + item.isInvalidType = true; + } + } + + item.list = value; + } + + if (field.isArray && field.isRef) { + item.fields = field.fields; + let value = []; + if (this.values && this.values[item.name]) { + value = this.values[item.name]; + } + + item.list = value; + } + fields.push(item); + } + this.fields = fields; } - this.update(); - } - update(schemaFields?: SchemaField[]) { - if (!schemaFields) { - return; + getCID(link: string): string { + let matches = link.match(/Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,}/); + return matches + ? matches[0] + : ""; } - const fields: any[] = []; - for (let i = 0; i < schemaFields.length; i++) { - const field = schemaFields[i]; - if (this.hide[field.name]) { - continue - } - const item: any = { - name: field.name, - description: field.description, - required: field.required, - isArray: field.isArray, - isRef: field.isRef, - hide: false, - type: field.type, - format: field.format, - pattern: field.pattern, - isInvalidType: false - } - if (!field.isArray && !field.isRef) { - item.value = !this.values - || this.values[item.name] === null - || this.values[item.name] === undefined - ? "" - : this.values[item.name]; - } - if (!field.isArray && field.isRef) { - item.fields = field.fields; - } - - if (field.isArray && !field.isRef) { - let value = []; - if (this.values - && this.values[item.name] !== null - && this.values[item.name] !== undefined - ) { - const fieldValue = this.values[item.name]; - if (Array.isArray(fieldValue)) { - value = fieldValue; - } - else { - value = [fieldValue] - item.isInvalidType = true; - } + getItemsPage(item: any, pageEvent?: PageEvent) { + const result = []; + if (!pageEvent) { + for (let i = 0; i < this.pageSize && i < item.list.length; i++) { + result.push(item.list[i]); + } + return result; } - item.list = value; - } - - if (field.isArray && field.isRef) { - item.fields = field.fields; - let value = []; - if (this.values && this.values[item.name]) { - value = this.values[item.name]; + const startIndex = pageEvent.pageIndex * pageEvent.pageSize; + const endIndex = startIndex + pageEvent.pageSize; + for (let i = startIndex; i < endIndex && i < item.list.length; i++) { + result.push(item.list[i]); } + return result; + } + + isTime(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'time'; + } + + isDate(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'date'; + } - item.list = value; - } - fields.push(item); + isDateTime(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'date-time'; } - this.fields = fields; - } - - getCID(link: string): string { - let matches = link.match(/Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,}/); - return matches - ? matches[0] - : ""; - } - - getItemsPage(item: any, pageEvent?: PageEvent) { - const result = []; - if (!pageEvent){ - for (let i = 0; i < this.pageSize && i < item.list.length; i++) { - result.push(item.list[i]); - } - return result; + + isBoolean(item: SchemaField): boolean { + return item.type === 'boolean'; + } + + isIPFS(item: SchemaField): boolean { + return item.pattern === '^((https):\/\/)?ipfs.io\/ipfs\/.+'; + } + + isInput(item: SchemaField): boolean { + return ( + ( + item.type === 'string' || + item.type === 'number' || + item.type === 'integer' + ) && ( + item.format !== 'date' && + item.format !== 'time' && + item.format !== 'date-time' + ) + ); + } + + isPrefix(item: SchemaField): boolean { + return item.unitSystem === UnitSystem.Prefix; } - const startIndex = pageEvent.pageIndex*pageEvent.pageSize; - const endIndex = startIndex + pageEvent.pageSize; - for (let i = startIndex; i < endIndex && i < item.list.length; i++) { - result.push(item.list[i]); + isPostfix(item: SchemaField): boolean { + return item.unitSystem === UnitSystem.Postfix; } - return result; - } } diff --git a/frontend/src/app/schema-engine/schema-form/schema-form.component.css b/frontend/src/app/schema-engine/schema-form/schema-form.component.css index 7bea41a831..e7e037a6ac 100644 --- a/frontend/src/app/schema-engine/schema-form/schema-form.component.css +++ b/frontend/src/app/schema-engine/schema-form/schema-form.component.css @@ -5,7 +5,7 @@ form { } .group-label { - color: rgba(0,0,0,.6); + color: rgba(0, 0, 0, .6); } .group-form { @@ -34,7 +34,7 @@ form { .group-label, .array-label { - color: rgba(0,0,0,.6); + color: rgba(0, 0, 0, .6); background: #fff; top: -10px; left: 5px; @@ -47,7 +47,7 @@ form { } .remove-btn { - color:red; + color: red; } .add-btn, @@ -117,11 +117,11 @@ form { padding-right: 0; } -.form-field-array-item[index='0'][required='true'] > .fields-remove { +.form-field-array-item[index='0'][required='true']>.fields-remove { display: none; } -.form-field-array-item[index='0'][required='true'] > .form-field-group > .remove-btn { +.form-field-array-item[index='0'][required='true']>.form-field-group>.remove-btn { display: none; } @@ -177,16 +177,16 @@ form { margin-right: 20px; } -.form-field-array-item > .form-field-group { +.form-field-array-item>.form-field-group { padding-left: 40px; } -.schema-form-field-array-group > .form-field-array-item , -.form-field-array-item > .schema-form-field-group { +.schema-form-field-array-group>.form-field-array-item, +.form-field-array-item>.schema-form-field-group { border-left: 2px dashed #c8c8c8; } -.form-field-group > .form-field-array-item { +.form-field-group>.form-field-array-item { padding-right: 0; } @@ -213,3 +213,20 @@ form { .ipfs-url ::ng-deep .mat-form-field-infix { padding-right: 35px; } + +.form-field-value { + display: flex; + flex-direction: row; +} + + +.form-field-prefix { + padding: 22px 14px 1px 1px; + font-size: 20px; +} + + +.form-field-postfix { + padding: 22px 1px 1px 14px; + font-size: 20px; +} \ No newline at end of file diff --git a/frontend/src/app/schema-engine/schema-form/schema-form.component.html b/frontend/src/app/schema-engine/schema-form/schema-form.component.html index d81554442e..01f9326d6e 100644 --- a/frontend/src/app/schema-engine/schema-form/schema-form.component.html +++ b/frontend/src/app/schema-engine/schema-form/schema-form.component.html @@ -7,63 +7,64 @@ *ngIf="options.controls[item.name] && !options.controls[item.name].valid"> arrow_circle_right - {{GetInvalidMessageByFieldType(item.format || item.type)}} + {{GetInvalidMessageByFieldType(item)}}
* Required
{{item.description}}
- - - - -
- -
- - - - +
+
{{item.unit}}
+ + + +
+ +
+ + + + +
+
+ + + + + + + Choose a date & time + + + + + + + Choose a date + + + + + +
+ + True + False + Unset +
- - - - - - - - Choose a date & time - - - - - - - Choose a date - - - - - -
- - True - False - Unset - + +
{{item.unit}}
@@ -100,7 +101,7 @@
arrow_circle_right - {{GetInvalidMessageByFieldType(item.format || item.type, true)}} + {{GetInvalidMessageByFieldType(item)}}
* Required
@@ -108,61 +109,65 @@
- - - - -
- -
- - - - +
+
{{item.unit}}
+ + + + +
+ +
+ + + + +
+
+ + + + + + + Choose a date & time + + + + + + + + Choose a date + + + + + +
+ + True + False + Unset + +
- - - - - - - - Choose a date & time - - - - - - - Choose a date - - - - - -
- - True - False - Unset - - -
+
{{item.unit}}
+
delete diff --git a/frontend/src/app/schema-engine/schema-form/schema-form.component.ts b/frontend/src/app/schema-engine/schema-form/schema-form.component.ts index db67b66fb8..392cb37e0f 100644 --- a/frontend/src/app/schema-engine/schema-form/schema-form.component.ts +++ b/frontend/src/app/schema-engine/schema-form/schema-form.component.ts @@ -2,7 +2,7 @@ import { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from '@angular-material-compo import { NgxMatMomentAdapter } from '@angular-material-components/moment-adapter'; import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; -import { Schema, SchemaCondition, SchemaField } from 'interfaces'; +import { Schema, SchemaCondition, SchemaField, UnitSystem } from '@guardian/interfaces'; import * as moment from 'moment'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -185,6 +185,8 @@ export class SchemaFormComponent implements OnInit { format: field.format, pattern: field.pattern, conditions: field.conditions, + unit: field.unit, + unitSystem: field.unitSystem, hide: false } @@ -415,15 +417,11 @@ export class SchemaFormComponent implements OnInit { }); } - GetInvalidMessageByFieldType(type: string, isArray: boolean = false): string { - if (!type) { - return ""; - } - - const messages = isArray + GetInvalidMessageByFieldType(item: SchemaField): string { + const type = item.format || item.type; + const messages = item.isArray ? ErrorArrayMessageByFieldType : ErrorFieldMessageByFieldType; - switch (type) { case 'email': return messages.Email; @@ -444,7 +442,9 @@ export class SchemaFormComponent implements OnInit { } } - GetPlaceholderByFieldType(type: string, pattern: string = ""): string { + GetPlaceholderByFieldType(item: SchemaField): string { + const type = item.format || item.type; + const pattern = item.pattern; switch (type) { case 'email': return PlaceholderByFieldType.Email; @@ -528,4 +528,46 @@ export class SchemaFormComponent implements OnInit { this.destroy$.next(true); this.destroy$.unsubscribe(); } + + isTime(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'time'; + } + + isDate(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'date'; + } + + isDateTime(item: SchemaField): boolean { + return item.type === 'string' && item.format === 'date-time'; + } + + isBoolean(item: SchemaField): boolean { + return item.type === 'boolean'; + } + + isIPFS(item: SchemaField): boolean { + return item.pattern === '^((https):\/\/)?ipfs.io\/ipfs\/.+'; + } + + isInput(item: SchemaField): boolean { + return ( + ( + item.type === 'string' || + item.type === 'number' || + item.type === 'integer' + ) && ( + item.format !== 'date' && + item.format !== 'time' && + item.format !== 'date-time' + ) + ); + } + + isPrefix(item: SchemaField): boolean { + return item.unitSystem === UnitSystem.Prefix; + } + + isPostfix(item: SchemaField): boolean { + return item.unitSystem === UnitSystem.Postfix; + } } diff --git a/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.html b/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.html index 199099b9f2..be3a672524 100644 --- a/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.html +++ b/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.html @@ -19,7 +19,7 @@
-
+
{{schema.name}}
diff --git a/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.ts b/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.ts index cda53ff16c..cdeaad6637 100644 --- a/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.ts +++ b/frontend/src/app/schema-engine/schema-view-dialog/schema-view-dialog.component.ts @@ -11,14 +11,14 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; }) export class SchemaViewDialog { loading = true; - schemes!: any[]; + schemas!: any[]; topicId: any; policies: any[]; constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { - this.schemes = this.data.schemes || []; + this.schemas = this.data.schemas || []; this.topicId = this.data.topicId || null; this.policies = this.data.policies || []; } diff --git a/frontend/src/app/schema-engine/set-version-dialog/set-version-dialog.component.ts b/frontend/src/app/schema-engine/set-version-dialog/set-version-dialog.component.ts index 342da80068..cde3566e47 100644 --- a/frontend/src/app/schema-engine/set-version-dialog/set-version-dialog.component.ts +++ b/frontend/src/app/schema-engine/set-version-dialog/set-version-dialog.component.ts @@ -3,7 +3,7 @@ import { FormControl, Validators } from '@angular/forms'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; /** - * Dialog allowing you to select a file and load schemes. + * Dialog allowing you to select a file and load schemas. */ @Component({ selector: 'set-version-dialog', diff --git a/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.html b/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.html index c97c121372..a5c30b47cc 100644 --- a/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.html +++ b/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.html @@ -1,18 +1,9 @@

{{title}}

-View as form +View as form
- +
{{json}} @@ -20,5 +11,5 @@

{{title}}

- -
+ +
\ No newline at end of file diff --git a/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.ts b/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.ts index 2ff98d1cd3..6bd8283d16 100644 --- a/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.ts +++ b/frontend/src/app/schema-engine/vc-dialog/vc-dialog.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, Input } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { Schema } from 'interfaces'; +import { Schema } from '@guardian/interfaces'; /** * Dialog for display json @@ -15,7 +15,6 @@ export class VCViewerDialog { json: string = ""; viewDocument!: boolean; isVcDocument!: boolean; - schemas: any; document: any; type: any; isVpDocument!: boolean; @@ -27,8 +26,7 @@ export class VCViewerDialog { document: any, title: string, viewDocument?: boolean, - type?: 'VC' | 'VP' | 'JSON', - schemas?: Schema[], + type?: 'VC' | 'VP' | 'JSON' }) { } @@ -37,8 +35,7 @@ export class VCViewerDialog { document, title, viewDocument, - type, - schemas + type } = this.data; this.title = title; this.json = JSON.stringify((document), null, 4); @@ -56,7 +53,6 @@ export class VCViewerDialog { this.isJsonDocument = true; } this.viewDocument = (viewDocument || false) && (this.isVcDocument || this.isVpDocument); - this.schemas = schemas; } onClick(): void { diff --git a/frontend/src/app/services/audit.service.ts b/frontend/src/app/services/audit.service.ts index 124cf7f332..99ff5bebe2 100644 --- a/frontend/src/app/services/audit.service.ts +++ b/frontend/src/app/services/audit.service.ts @@ -1,7 +1,7 @@ import { Injectable } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { Observable } from "rxjs"; -import { IChainItem, IVCDocument, IVPDocument } from "interfaces"; +import { IChainItem, IVCDocument, IVPDocument } from "@guardian/interfaces"; import { API_BASE_URL } from "./api"; /** diff --git a/frontend/src/app/services/auth.service.ts b/frontend/src/app/services/auth.service.ts index 727491370b..87bcf499b9 100644 --- a/frontend/src/app/services/auth.service.ts +++ b/frontend/src/app/services/auth.service.ts @@ -1,6 +1,6 @@ import { HttpClient, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { ISession, IUser } from 'interfaces'; +import { ISession, IUser } from '@guardian/interfaces'; import { Observable, of, Subject, Subscription } from 'rxjs'; import { API_BASE_URL } from './api'; @@ -71,8 +71,8 @@ export class AuthService { return this.accessTokenSubject.subscribe(next, error, complete); } - public getRootAuthorities(): Observable { - return this.http.get(`${this.url}/root-authorities`); + public getStandardRegistries(): Observable { + return this.http.get(`${this.url}/standard-registries`); } } diff --git a/frontend/src/app/services/demo.service.ts b/frontend/src/app/services/demo.service.ts index e4ab186d0b..e19e44c275 100644 --- a/frontend/src/app/services/demo.service.ts +++ b/frontend/src/app/services/demo.service.ts @@ -1,7 +1,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; -import { ISession } from 'interfaces'; +import { ISession } from '@guardian/interfaces'; import { API_BASE_URL } from './api'; /** diff --git a/frontend/src/app/services/header-props.service.ts b/frontend/src/app/services/header-props.service.ts new file mode 100644 index 0000000000..e59a488e1f --- /dev/null +++ b/frontend/src/app/services/header-props.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, Subject } from 'rxjs'; + +@Injectable({ providedIn: 'root' }) +export class HeaderPropsService { + private _isLoading: Subject = new BehaviorSubject(false); + + constructor() {} + + get isLoading$() { + return this._isLoading.asObservable(); + } + + setLoading(value: boolean) { + this._isLoading.next(value); + } +} diff --git a/frontend/src/app/services/logger.service.ts b/frontend/src/app/services/logger.service.ts index f57106810b..ff3c1567e1 100644 --- a/frontend/src/app/services/logger.service.ts +++ b/frontend/src/app/services/logger.service.ts @@ -1,6 +1,6 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { ILog } from 'interfaces'; +import { ILog } from '@guardian/interfaces'; import { Observable } from 'rxjs'; import { API_BASE_URL } from './api'; /** diff --git a/frontend/src/app/services/policy-engine.service.ts b/frontend/src/app/services/policy-engine.service.ts index 1fb3d76987..208813be27 100644 --- a/frontend/src/app/services/policy-engine.service.ts +++ b/frontend/src/app/services/policy-engine.service.ts @@ -115,9 +115,9 @@ export class PolicyEngineService { return this.http.get(`${this.url}/${policyId}/blocks/${blockId}/parents`); } - public exportInFile(policyId: string): Observable { + public exportInFile(policyId: string): Observable { return this.http.get(`${this.url}/${policyId}/export/file`, { - responseType: 'blob' + responseType: 'arraybuffer' }); } @@ -149,6 +149,10 @@ export class PolicyEngineService { }); } + public blockAbout(): Observable { + return this.http.get(`${this.url}/blocks/about`); + } + private getBaseUrl() { let url = location.origin; if (/^https/.test(url)) { diff --git a/frontend/src/app/services/profile.service.ts b/frontend/src/app/services/profile.service.ts index 00a4ce75c6..ad4562d360 100644 --- a/frontend/src/app/services/profile.service.ts +++ b/frontend/src/app/services/profile.service.ts @@ -1,6 +1,6 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { IUser } from 'interfaces'; +import { IUser } from '@guardian/interfaces'; import { Observable, of } from 'rxjs'; import { API_BASE_URL } from './api'; import { AuthService } from './auth.service'; diff --git a/frontend/src/app/services/schema.service.ts b/frontend/src/app/services/schema.service.ts index cb1665c00e..9194dcedd3 100644 --- a/frontend/src/app/services/schema.service.ts +++ b/frontend/src/app/services/schema.service.ts @@ -1,18 +1,20 @@ import { HttpClient, HttpResponse } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { ISchema, Schema, SchemaEntity } from 'interfaces'; +import { ISchema, Schema, SchemaEntity } from '@guardian/interfaces'; import { Observable } from 'rxjs'; import { API_BASE_URL } from './api'; +import { AuthService } from './auth.service'; /** - * Services for working from Schemes. + * Services for working from Schemas. */ @Injectable() export class SchemaService { private readonly url: string = `${API_BASE_URL}/schemas`; constructor( - private http: HttpClient + private http: HttpClient, + private auth: AuthService ) { } @@ -30,14 +32,18 @@ export class SchemaService { return this.http.post(`${this.url}`, data); } - public getSchemes(topicId?: string): Observable { + public getSchemas(topicId?: string): Observable { if (topicId) { return this.http.get(`${this.url}/${topicId}`); } return this.http.get(`${this.url}`); } - public getSchemesByPage(topicId?: string, pageIndex?: number, pageSize?: number): Observable> { + public getSchemasByPolicy(policyId: string): Observable { + return this.http.get(`${this.url}?policyId=${policyId}`); + } + + public getSchemasByPage(topicId?: string, pageIndex?: number, pageSize?: number): Observable> { let url = `${this.url}`; if (topicId) { url += `/${topicId}` @@ -48,6 +54,10 @@ export class SchemaService { return this.http.get(url, { observe: 'response' }); } + public getSchemasByType(type: string): Observable { + return this.http.get(`${this.url}/type/${type}`); + } + public publish(id: string, version: string): Observable { return this.http.put(`${this.url}/${id}/publish`, { version }); } @@ -60,9 +70,9 @@ export class SchemaService { return this.http.delete(`${this.url}/${id}`); } - public exportInFile(id: string): Observable { + public exportInFile(id: string): Observable { return this.http.get(`${this.url}/${id}/export/file`, { - responseType: 'blob' + responseType: 'arraybuffer' }); } @@ -74,8 +84,8 @@ export class SchemaService { return this.http.post(`${this.url}/${topicId}/import/message`, { messageId }); } - public importByFile(schemesFile: any, topicId: any): Observable { - return this.http.post(`${this.url}/${topicId}/import/file`, schemesFile, { + public importByFile(schemasFile: any, topicId: any): Observable { + return this.http.post(`${this.url}/${topicId}/import/file`, schemasFile, { headers: { 'Content-Type': 'binary/octet-stream' } @@ -86,11 +96,42 @@ export class SchemaService { return this.http.post(`${this.url}/import/message/preview`, { messageId }); } - public previewByFile(schemesFile: any): Observable { - return this.http.post(`${this.url}/import/file/preview`, schemesFile, { + public previewByFile(schemasFile: any): Observable { + return this.http.post(`${this.url}/import/file/preview`, schemasFile, { headers: { 'Content-Type': 'binary/octet-stream' } }); } -} \ No newline at end of file + + public createSystemSchemas(schema: Schema): Observable { + const username = encodeURIComponent(this.auth.getUsername()); + return this.http.post(`${this.url}/system/${username}`, schema); + } + + public getSystemSchemas(pageIndex?: number, pageSize?: number): Observable> { + const username = encodeURIComponent(this.auth.getUsername()); + let url = `${this.url}/system/${username}`; + if (Number.isInteger(pageIndex) && Number.isInteger(pageSize)) { + url += `?pageIndex=${pageIndex}&pageSize=${pageSize}`; + } + return this.http.get(url, { observe: 'response' }); + } + + public deleteSystemSchemas(id: string): Observable { + return this.http.delete(`${this.url}/system/${id}`); + } + + public updateSystemSchemas(schema: Schema, id?: string): Observable { + const data = Object.assign({}, schema, { id: id || schema.id }); + return this.http.put(`${this.url}/system/${id}`, data); + } + + public activeSystemSchemas(id: string): Observable { + return this.http.put(`${this.url}/system/${id}/active`, null); + } + + public getSystemSchemasByEntity(entity: SchemaEntity): Observable { + return this.http.get(`${this.url}/system/entity/${entity}`); + } +} diff --git a/frontend/src/app/services/settings.service.ts b/frontend/src/app/services/settings.service.ts index 48e67f7d6a..8be8e9b1d4 100644 --- a/frontend/src/app/services/settings.service.ts +++ b/frontend/src/app/services/settings.service.ts @@ -1,6 +1,6 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { CommonSettings } from 'interfaces'; +import { CommonSettings } from '@guardian/interfaces'; import { Observable } from 'rxjs'; import { API_BASE_URL } from './api'; /** diff --git a/frontend/src/app/services/status.service.ts b/frontend/src/app/services/status.service.ts index ec49208410..6bc2f9894f 100644 --- a/frontend/src/app/services/status.service.ts +++ b/frontend/src/app/services/status.service.ts @@ -3,7 +3,7 @@ import { Observable, of, Subject, Subscription } from 'rxjs'; import { webSocket, WebSocketSubjectConfig } from 'rxjs/webSocket'; import { AuthService } from './auth.service'; import { ToastrService } from 'ngx-toastr'; -import { ApplicationStates, MessageAPI } from 'interfaces'; +import { ApplicationStates, MessageAPI } from '@guardian/interfaces'; /** * Status service. diff --git a/frontend/src/app/services/token.service.ts b/frontend/src/app/services/token.service.ts index e52ddc992e..24abd0b49e 100644 --- a/frontend/src/app/services/token.service.ts +++ b/frontend/src/app/services/token.service.ts @@ -1,6 +1,6 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { IToken, ITokenInfo, IUser } from 'interfaces'; +import { IToken, ITokenInfo, IUser } from '@guardian/interfaces'; import { Observable } from 'rxjs'; import { API_BASE_URL } from './api'; @@ -51,4 +51,4 @@ export class TokenService { public info(tokenId: string, username: string): Observable { return this.http.get(`${this.url}/${tokenId}/${username}/info`); } -} \ No newline at end of file +} diff --git a/frontend/src/app/views/admin/admin-header/admin-panel.component.ts b/frontend/src/app/views/admin/admin-header/admin-panel.component.ts index 118790fe4f..2adebf35d3 100644 --- a/frontend/src/app/views/admin/admin-header/admin-panel.component.ts +++ b/frontend/src/app/views/admin/admin-header/admin-panel.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; /** - * Page for creating, editing, importing and exporting schemes. + * Page for creating, editing, importing and exporting schemas. */ @Component({ selector: 'app-admin-panel', diff --git a/frontend/src/app/views/admin/logs-view/logs-view.component.ts b/frontend/src/app/views/admin/logs-view/logs-view.component.ts index fd363dc9ca..d6e7d371af 100644 --- a/frontend/src/app/views/admin/logs-view/logs-view.component.ts +++ b/frontend/src/app/views/admin/logs-view/logs-view.component.ts @@ -6,15 +6,16 @@ import { MatDialog } from '@angular/material/dialog'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { saveAs } from 'file-saver'; -import { ILog } from 'interfaces'; +import { ILog } from '@guardian/interfaces'; import * as moment from 'moment'; import { merge, Observable, of } from 'rxjs'; import { catchError, map, startWith, switchMap } from 'rxjs/operators'; import { LoggerService } from 'src/app/services/logger.service'; import { DetailsLogDialog } from '../details-log-dialog/details-log-dialog.component'; +import { ActivatedRoute } from '@angular/router'; /** - * Page for creating, editing, importing and exporting schemes. + * Page for creating, editing, importing and exporting schemas. */ @Component({ selector: 'app-logs-view', @@ -51,9 +52,9 @@ export class LogsViewComponent implements OnInit { constructor( private fb: FormBuilder, private logService: LoggerService, - public dialog: MatDialog) { - - } + public dialog: MatDialog, + private route: ActivatedRoute + ) { } ngOnInit() { this.attributes = this.autoCompleteControl.valueChanges @@ -61,6 +62,14 @@ export class LogsViewComponent implements OnInit { startWith([]), switchMap(value => this.logService.getAttributes(this.autoCompleteControl.value, this.searchForm?.get("attributes")?.value)) ); + this.route.queryParams.subscribe(params => { + if (params['attr']) { + this.searchForm.patchValue({ + attributes: [params['attr']] + }); + this.onApply(); + } + }); } ngAfterViewInit() { @@ -85,7 +94,7 @@ export class LogsViewComponent implements OnInit { if (data === null) { return []; } - + this.totalCount = data.totalCount; return data.logs; }) @@ -179,4 +188,4 @@ export class LogsViewComponent implements OnInit { data: element }); } -} \ No newline at end of file +} diff --git a/frontend/src/app/views/admin/service-status/service-status.component.css b/frontend/src/app/views/admin/service-status/service-status.component.css index b61ec314d5..94aa6d3006 100644 --- a/frontend/src/app/views/admin/service-status/service-status.component.css +++ b/frontend/src/app/views/admin/service-status/service-status.component.css @@ -1,14 +1,13 @@ -.name-column { - font-size: xx-large; -} - -.icon-status, .equal-column { - font-size: 40px; -} - .icon-status { width: 40px; height: 40px; + font-size: 40px; +} + +.icon-row { + display: flex; + align-items: center; + gap: 20px; } .service-status-row, .service-status-row td { @@ -27,5 +26,16 @@ display: flex; align-items: center; justify-content: center; + flex-direction: column; height: 60%; + font-size: xx-large; +} + +.info-message { + text-align: center; + font-size: xx-large; +} + +.a, a:visited { + color: blue; } \ No newline at end of file diff --git a/frontend/src/app/views/admin/service-status/service-status.component.html b/frontend/src/app/views/admin/service-status/service-status.component.html index 94d19d9390..1ddd724a01 100644 --- a/frontend/src/app/views/admin/service-status/service-status.component.html +++ b/frontend/src/app/views/admin/service-status/service-status.component.html @@ -1,15 +1,45 @@ -
+ +

+ {{ getServiceNames(loadingServices) }} + is (are) initializing +
+ Please wait... +

+

+ There are some problems with services... +

+

+ All services are running +

+
+
Schemas + Schemas + + Policy Name @@ -77,7 +87,7 @@ Export +
import_export Export @@ -87,13 +97,13 @@
Edit -
+
settings Edit
-
+
settings View
@@ -113,7 +123,8 @@
Operation -
Publish
+
Publish +
- - - + +
{{service.serviceName}}- - check - - - close + + {{ service.serviceName }} + - +
+ check + (Ready) +
+
+ + (Initializing) +
+
+ + (Started) +
+
+ close + + (Stopped, View Logs) + +
-
\ No newline at end of file +
diff --git a/frontend/src/app/views/admin/service-status/service-status.component.ts b/frontend/src/app/views/admin/service-status/service-status.component.ts index 7e4acd2683..47e7464d5e 100644 --- a/frontend/src/app/views/admin/service-status/service-status.component.ts +++ b/frontend/src/app/views/admin/service-status/service-status.component.ts @@ -1,8 +1,9 @@ import { Component, OnInit } from '@angular/core'; +import { ApplicationStates } from '@guardian/interfaces'; import { Observable, of } from 'rxjs'; import { StatusService } from 'src/app/services/status.service'; /** - * Page for creating, editing, importing and exporting schemes. + * Page for creating, editing, importing and exporting schemas. */ @Component({ selector: 'app-service-status', @@ -19,5 +20,17 @@ export class ServiceStatusComponent implements OnInit { this.servicesStates = this.statusService.getServicesStatesArray(); } + getLoadingServices() { + return this.servicesStates.filter(item => [ApplicationStates.INITIALIZING, ApplicationStates.STARTED].includes(item.state)); + } + + getStoppedServices() { + return this.servicesStates.filter(item => item.state === ApplicationStates.STOPPED); + } + + getServiceNames(serviceStates: any) { + return serviceStates.map((item: any) => item.serviceName).join(', '); + } + ngOnInit() { } } \ No newline at end of file diff --git a/frontend/src/app/views/admin/settings-view/settings-viewcomponent.ts b/frontend/src/app/views/admin/settings-view/settings-viewcomponent.ts index 2920fcafce..86bbf3b106 100644 --- a/frontend/src/app/views/admin/settings-view/settings-viewcomponent.ts +++ b/frontend/src/app/views/admin/settings-view/settings-viewcomponent.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder } from '@angular/forms'; -import { CommonSettings } from 'interfaces'; +import { CommonSettings } from '@guardian/interfaces'; import { SettingsService } from 'src/app/services/settings.service'; @Component({ @@ -35,9 +35,9 @@ export class SettingsViewComponent implements OnInit { if (this.dataForm.valid) { this.isLoading = true; this.settingsService.updateSettings(this.dataForm.value) - .subscribe(() => { + .subscribe(() => { this.isLoading = false; - }, () => { + }, () => { this.isLoading = false; this.ngOnInit(); }); diff --git a/frontend/src/app/views/audit/audit.component.ts b/frontend/src/app/views/audit/audit.component.ts index 4e3a0b8d96..ee370597d0 100644 --- a/frontend/src/app/views/audit/audit.component.ts +++ b/frontend/src/app/views/audit/audit.component.ts @@ -4,8 +4,6 @@ import { ActivatedRoute, Router } from '@angular/router'; import { AuditService } from 'src/app/services/audit.service'; import { AuthService } from '../../services/auth.service'; import { forkJoin } from 'rxjs'; -import { SchemaService } from 'src/app/services/schema.service'; -import { Schema, SchemaHelper } from 'interfaces'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; /** @@ -27,15 +25,13 @@ export class AuditComponent implements OnInit { 'vp', ]; dataSource: any[] = []; - schemas: Schema[] = []; constructor( private auth: AuthService, private auditService: AuditService, - private schemaService: SchemaService, - private route: ActivatedRoute, private router: Router, - public dialog: MatDialog) { + public dialog: MatDialog + ) { } @@ -48,15 +44,12 @@ export class AuditComponent implements OnInit { loadData() { this.loading = true; forkJoin([ - this.auditService.getVpDocuments(), - this.schemaService.getSchemes() + this.auditService.getVpDocuments() ]).subscribe((value) => { const data: any = value[0]; - const schemes = value[1]; this.loading = false; this.dataSource = data; - this.schemas = SchemaHelper.map(schemes); }, (error) => { this.loading = false; console.error(error); @@ -70,7 +63,6 @@ export class AuditComponent implements OnInit { document: document, title: 'VP', type: 'VP', - schemas: this.schemas, viewDocument: true } }); @@ -85,4 +77,4 @@ export class AuditComponent implements OnInit { this.router.navigate(['/trust-chain'], { queryParams: { search: value } }); } } -} \ No newline at end of file +} diff --git a/frontend/src/app/views/header/header.component.html b/frontend/src/app/views/header/header.component.html index 09fa854c9e..adbe436519 100644 --- a/frontend/src/app/views/header/header.component.html +++ b/frontend/src/app/views/header/header.component.html @@ -4,7 +4,7 @@ @@ -40,7 +40,7 @@ border-radius: 30px; overflow: scroll;">
- + diff --git a/frontend/src/app/views/header/header.component.ts b/frontend/src/app/views/header/header.component.ts index 93b7a9a627..7d8f273701 100644 --- a/frontend/src/app/views/header/header.component.ts +++ b/frontend/src/app/views/header/header.component.ts @@ -1,174 +1,186 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { IUser, UserRole } from 'interfaces'; +import { IUser, UserRole } from '@guardian/interfaces'; import { Observable } from 'rxjs'; import { AuthStateService } from 'src/app/services/auth-state.service'; import { DemoService } from 'src/app/services/demo.service'; +import { HeaderPropsService } from 'src/app/services/header-props.service'; import { AuthService } from '../../services/auth.service'; /** * Header and Navigation */ @Component({ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.css'] + selector: 'app-header', + templateUrl: './header.component.html', + styleUrls: ['./header.component.css'] }) export class HeaderComponent implements OnInit { - links: any = null; - activeLink: string = ""; - activeLinkRoot: string = ""; - role: any = null; - isLogin: boolean = false; - username: string | null = null; - linksConfig: any = { - default: null - }; - - menuIcon: 'expand_more' | 'account_circle' = 'expand_more'; - testUsers$: Observable; - - constructor( - public authState: AuthStateService, - private auth: AuthService, - private otherService: DemoService, - private route: ActivatedRoute, - private router: Router, - public dialog: MatDialog - ) { - this.testUsers$ = this.otherService.getAllUsers(); - - this.linksConfig[UserRole.USER] = [{ - name: "Profile", - disabled: false, - link: '/user-profile' - }, { - name: "Policies", - disabled: false, - link: '/policy-viewer' - }]; - this.linksConfig[UserRole.ROOT_AUTHORITY] = [{ - name: "Profile", - disabled: false, - link: '/config' - }, { - name: "Schemes", - disabled: false, - link: '/schemes' - }, { - name: "Tokens", - disabled: false, - link: '/tokens' - }, { - name: "Policies", - disabled: false, - link: '/policy-viewer' - }, { - name: "Policies configuration", - disabled: false, - link: '/policy-configuration', - hidden: true, - }, - { - name: "Admin", - disabled: false, - link: '/admin' - }]; - this.linksConfig[UserRole.AUDITOR] = [{ - name: "Audit", - disabled: false, - link: '/audit' - }, { - name: "Trust Chain", - disabled: false, - link: '/trust-chain' - }]; - - this.links = this.linksConfig.default; - this.router.events.subscribe((event) => { - if (event instanceof NavigationEnd) { + links: any = null; + activeLink: string = ""; + activeLinkRoot: string = ""; + role: any = null; + isLogin: boolean = false; + username: string | null = null; + linksConfig: any = { + default: null + }; + commonLinksDisabled: boolean = false; + + menuIcon: 'expand_more' | 'account_circle' = 'expand_more'; + testUsers$: Observable; + + constructor( + public authState: AuthStateService, + private auth: AuthService, + private otherService: DemoService, + private route: ActivatedRoute, + private router: Router, + public dialog: MatDialog, + private headerProps: HeaderPropsService + ) { + this.testUsers$ = this.otherService.getAllUsers(); + + this.linksConfig[UserRole.USER] = [{ + name: "Profile", + disabled: false, + link: '/user-profile' + }, { + name: "Policies", + disabled: false, + link: '/policy-viewer' + }]; + this.linksConfig[UserRole.STANDARD_REGISTRY] = [{ + name: "Profile", + disabled: false, + link: '/config' + }, { + name: "Schemas", + disabled: false, + link: '/schemas' + }, { + name: "Tokens", + disabled: false, + link: '/tokens' + }, { + name: "Policies", + disabled: false, + link: '/policy-viewer' + }, { + name: "Policies configuration", + disabled: false, + link: '/policy-configuration', + hidden: true, + }, + { + name: "Admin", + disabled: false, + link: '/admin/settings', + links: [ + '/admin/settings', + '/admin/logs', + '/admin/status' + ] + }]; + this.linksConfig[UserRole.AUDITOR] = [{ + name: "Audit", + disabled: false, + link: '/audit' + }, { + name: "Trust Chain", + disabled: false, + link: '/trust-chain' + }]; + + this.links = this.linksConfig.default; + this.router.events.subscribe((event) => { + if (event instanceof NavigationEnd) { + this.update(); + } + }) + headerProps.isLoading$.subscribe(value => this.commonLinksDisabled = value); + } + + ngOnInit() { + this.activeLink = ""; this.update(); - } - }) - } - - ngOnInit() { - this.activeLink = ""; - this.update(); - } - - async update() { - if (this.activeLink == this.router.url) { - return; } - this.activeLink = this.router.url; - this.activeLinkRoot = this.router.url.split('?')[0]; - this.auth.sessions().subscribe((user: IUser | null) => { - const isLogin = !!user; - const role = user ? user.role : null; - const username = user ? user.username : null; - this.setStatus(isLogin, role, username); - this.authState.updateState(isLogin); - }, () => { - this.setStatus(false, null, null); - }); - } - - setStatus(isLogin: boolean, role: any, username: any) { - if (this.isLogin != isLogin || this.role != role) { - this.isLogin = isLogin; - this.role = role; - this.username = username; - - this.menuIcon = this.isLogin ? 'account_circle' : 'expand_more'; - - if (this.isLogin) { - this.links = this.linksConfig[this.role]; - } else { - this.links = this.linksConfig.default; - } + + async update() { + if (this.activeLink == this.router.url) { + return; + } + this.activeLink = this.router.url; + this.activeLinkRoot = this.router.url.split('?')[0]; + this.auth.sessions().subscribe((user: IUser | null) => { + const isLogin = !!user; + const role = user ? user.role : null; + const username = user ? user.username : null; + this.setStatus(isLogin, role, username); + this.authState.updateState(isLogin); + }, () => { + this.setStatus(false, null, null); + }); + } + + setStatus(isLogin: boolean, role: any, username: any) { + if (this.isLogin != isLogin || this.role != role) { + this.isLogin = isLogin; + this.role = role; + this.username = username; + + this.menuIcon = this.isLogin ? 'account_circle' : 'expand_more'; + + if (this.isLogin) { + this.links = this.linksConfig[this.role]; + } else { + this.links = this.linksConfig.default; + } + } + } + + logIn() { + this.router.navigate(['/login']); + } + + profile() { + this.router.navigate(['/user-profile']); + } + + logOut() { + this.auth.removeAccessToken(); + this.auth.removeUsername(); + this.authState.updateState(false); + this.router.navigate(['/login']); + } + + rout(link: any) { + this.router.navigate([link.link]); + } + + isActive(link: any) { + if (link.links) { + return link.links.indexOf(this.activeLink) !== -1; + } + return this.activeLink == link.link || this.activeLinkRoot == link.link; + } + + isHidden(link: any) { + return link.hidden && !this.isActive(link); + } + + onHome() { + this.router.navigate(['/']); + } + + getPoliciesRolesLength(policyRoles: any) { + return policyRoles.length; + } + + getPoliciesRolesTooltip(policyRoles: any) { + return policyRoles.map((item: any) => { + return `${item.name} (${item.version}): ${item.role}` + }).join('\r\n'); } - } - - logIn() { - this.router.navigate(['/login']); - } - - profile() { - this.router.navigate(['/user-profile']); - } - - logOut() { - this.auth.removeAccessToken(); - this.auth.removeUsername(); - this.authState.updateState(false); - this.router.navigate(['/login']); - } - - rout(link: any) { - this.router.navigate([link.link]); - } - - isActive(link: any) { - return this.activeLink == link.link || this.activeLinkRoot == link.link; - } - - isHidden(link: any) { - return link.hidden && !this.isActive(link); - } - - onHome() { - this.router.navigate(['/']); - } - - getPoliciesRolesLength(policyRoles: any) { - return policyRoles.length; - } - - getPoliciesRolesTooltip(policyRoles: any) { - return policyRoles.map((item: any) => { - return `${item.name} (${item.version}): ${item.role}` - }).join('\r\n'); - } -} \ No newline at end of file +} diff --git a/frontend/src/app/views/home/home.component.ts b/frontend/src/app/views/home/home.component.ts index d8ff9198c5..19b7c63059 100644 --- a/frontend/src/app/views/home/home.component.ts +++ b/frontend/src/app/views/home/home.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; import { AuthService } from 'src/app/services/auth.service'; /** @@ -25,7 +25,7 @@ export class HomeComponent implements OnInit { async redirect() { this.auth.sessions().subscribe((user: any | null) => { if (user) { - if (user.role == UserRole.ROOT_AUTHORITY) { + if (user.role == UserRole.STANDARD_REGISTRY) { this.router.navigate(['/config']); } else if (user.role == UserRole.AUDITOR) { this.router.navigate(['/audit']); @@ -39,4 +39,4 @@ export class HomeComponent implements OnInit { this.router.navigate(['/login']); }); } -} \ No newline at end of file +} diff --git a/frontend/src/app/views/login/login.component.ts b/frontend/src/app/views/login/login.component.ts index 79b1ff2215..f91f96b6de 100644 --- a/frontend/src/app/views/login/login.component.ts +++ b/frontend/src/app/views/login/login.component.ts @@ -2,7 +2,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { FormBuilder, Validators } from '@angular/forms'; import { AuthService } from '../../services/auth.service'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; import { AuthStateService } from 'src/app/services/auth-state.service'; import { Subscription } from 'rxjs'; @@ -61,7 +61,7 @@ export class LoginComponent implements OnInit, OnDestroy { this.auth.setAccessToken(result.accessToken); this.auth.setUsername(login); this.authState.updateState(true); - if (result.role == UserRole.ROOT_AUTHORITY) { + if (result.role == UserRole.STANDARD_REGISTRY) { this.router.navigate(['/config']); } else { this.router.navigate(['/']); diff --git a/frontend/src/app/views/register/register.component.html b/frontend/src/app/views/register/register.component.html index 0d78ea7332..5103c3a7f5 100644 --- a/frontend/src/app/views/register/register.component.html +++ b/frontend/src/app/views/register/register.component.html @@ -29,8 +29,8 @@ -
+
+

Initialization topic

+

{{profile.parentTopicId}}

+ +
+ @@ -94,7 +100,7 @@

Finish Setup

-

Failed to load system schemes.

+

Failed to load system schemas.

- + \ No newline at end of file diff --git a/frontend/src/app/views/root-config/root-config.component.ts b/frontend/src/app/views/root-config/root-config.component.ts index 2afd7fa514..71f153dd89 100644 --- a/frontend/src/app/views/root-config/root-config.component.ts +++ b/frontend/src/app/views/root-config/root-config.component.ts @@ -5,12 +5,13 @@ import { AuthService } from '../../services/auth.service'; import { forkJoin } from 'rxjs'; import { ProfileService } from 'src/app/services/profile.service'; import { SchemaService } from 'src/app/services/schema.service'; -import { IUser, Schema, SchemaEntity, SchemaHelper } from 'interfaces'; +import { IUser, Schema, SchemaEntity, SchemaHelper } from '@guardian/interfaces'; import { DemoService } from 'src/app/services/demo.service'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; +import { HeaderPropsService } from 'src/app/services/header-props.service'; /** - * RootAuthority profile settings page. + * Standard Registry profile settings page. */ @Component({ selector: 'app-root-config', @@ -34,10 +35,9 @@ export class RootConfigComponent implements OnInit { progressInterval: any; vcForm: FormGroup; - schema: any; hideVC: any; formValid: boolean = false; - schemas!: Schema[]; + schema!: Schema; constructor( private auth: AuthService, @@ -45,7 +45,8 @@ export class RootConfigComponent implements OnInit { private schemaService: SchemaService, private otherService: DemoService, private fb: FormBuilder, - public dialog: MatDialog) { + public dialog: MatDialog, + private headerProps: HeaderPropsService) { this.profile = null; this.balance = null; @@ -81,20 +82,18 @@ export class RootConfigComponent implements OnInit { forkJoin([ this.profileService.getProfile(), this.profileService.getBalance(), - this.schemaService.getSchemes() + this.schemaService.getSystemSchemasByEntity(SchemaEntity.STANDARD_REGISTRY) ]).subscribe((value) => { if(!value[2]) { this.errorLoadSchema = true; this.loading = false; + this.headerProps.setLoading(false); return; } const profile = value[0]; const balance = value[1]; - - this.schemas = SchemaHelper.map(value[2]); - this.schema = this.schemas - .filter(e => e.entity == SchemaEntity.ROOT_AUTHORITY)[0]; + const schema = value[2]; this.isConfirmed = !!(profile.confirmed); this.isFailed = !!(profile.failed); @@ -105,11 +104,17 @@ export class RootConfigComponent implements OnInit { this.profile = profile; } + if(schema) { + this.schema = new Schema(schema); + } + setTimeout(() => { this.loading = false; + this.headerProps.setLoading(false); }, 500) }, (error) => { this.loading = false; + this.headerProps.setLoading(false); console.error(error); }); } @@ -125,6 +130,7 @@ export class RootConfigComponent implements OnInit { vcDocument: vcDocument } this.loading = true; + this.headerProps.setLoading(true); this.setProgress(true); this.profileService.setProfile(data).subscribe(() => { this.setProgress(false); @@ -132,6 +138,7 @@ export class RootConfigComponent implements OnInit { }, (error) => { this.setProgress(false); this.loading = false; + this.headerProps.setLoading(false); console.error(error); }); } @@ -144,7 +151,6 @@ export class RootConfigComponent implements OnInit { document: document.document, title: title, type: 'VC', - schemas: this.schemas, viewDocument: true } }); diff --git a/frontend/src/app/views/schema-config/schema-config.component.css b/frontend/src/app/views/schema-config/schema-config.component.css index 1dad368512..9920050945 100644 --- a/frontend/src/app/views/schema-config/schema-config.component.css +++ b/frontend/src/app/views/schema-config/schema-config.component.css @@ -27,7 +27,7 @@ a { text-decoration: underline; } -.schemes-table { +.schemas-table { width: 100%; } @@ -38,7 +38,7 @@ a { .actions { display: grid; - grid-template-columns: auto 290px; + grid-template-columns: 300px auto 290px; padding: 14px 14px 14px 14px; border-bottom: 1px solid #eee; margin: 0; @@ -157,48 +157,49 @@ a { cursor: not-allowed; } -.schemes-table .mat-column-policy { +.schemas-table .mat-column-policy { padding-left: 20px; } -.schemes-table .mat-column-uuid, -.schemes-table .mat-column-type, -.schemes-table .mat-column-version, -.schemes-table .mat-column-entity { +.schemas-table .mat-column-uuid, +.schemas-table .mat-column-type, +.schemas-table .mat-column-version, +.schemas-table .mat-column-entity { padding-left: 10px; } -.schemes-table .mat-column-version, -.schemes-table .mat-column-entity { +.schemas-table .mat-column-version, +.schemas-table .mat-column-entity { width: 75px; max-width: 75px; } -.schemes-table .mat-column-topic { +.schemas-table .mat-column-topic { width: 135px; max-width: 135px; padding-left: 10px; } -.schemes-table .mat-column-selected { +.schemas-table .mat-column-selected { width: 22px; border-right: 1px solid #dddddd; padding-left: 15px; } -.schemes-table .mat-column-status { +.schemas-table .mat-column-status { width: 125px; border-left: 1px solid #dddddd; padding-left: 10px; } -.schemes-table .mat-column-operation { +.schemas-table .mat-column-activeOperation, +.schemas-table .mat-column-operation { width: 135px; border-left: 1px solid #dddddd; padding-left: 10px; } -.schemes-table .mat-column-document { +.schemas-table .mat-column-document { width: 15px; max-width: 15px; padding-left: 10px; @@ -207,19 +208,20 @@ a { margin-right: 1px; } -.schemes-table .mat-column-edit { +.schemas-table .mat-column-edit { width: 25px; max-width: 25px; padding-left: 10px; } -.schemes-table .mat-column-delete { +.schemas-table .mat-column-deleteSystem, +.schemas-table .mat-column-delete { width: 25px; max-width: 25px; padding-left: 10px; } -.schemes-table .mat-column-export { +.schemas-table .mat-column-export { width: 25px; max-width: 25px; border-left: 1px solid #dddddd; @@ -233,4 +235,23 @@ a { transform: translate(-50%, -50%); font-size: 20px; color: darkgrey; +} + +.schemas-table[system="true"] .mat-column-entity { + width: 250px; + max-width: 250px; +} + +.schemas-table .mat-column-active { + width: 225px; + max-width: 225px; + border-left: 1px solid #dddddd; + padding-left: 10px; +} + +.schemas-table .mat-column-editSystem { + width: 25px; + max-width: 25px; + border-left: 1px solid #dddddd; + padding-left: 10px; } \ No newline at end of file diff --git a/frontend/src/app/views/schema-config/schema-config.component.html b/frontend/src/app/views/schema-config/schema-config.component.html index 80282a94f1..0959d229cd 100644 --- a/frontend/src/app/views/schema-config/schema-config.component.html +++ b/frontend/src/app/views/schema-config/schema-config.component.html @@ -1,164 +1,225 @@
- -
-
- - Policy - - All policies - - {{policy.name}} - ({{policy.topicId}}) - - - -
-
- - -
+ +
+
+ + System Schemas + Policy Schemas +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - ID {{element.uuid}} Policy {{policyNameByTopic[element.topicId]}} Name {{element.name}} Topic - {{element.topicId}} - Version {{element.version}} Entity {{element.entity}} Status - -
- Draft -
-
- Published -
-
- Unpublished -
-
- {{element.status}} -
-
-
Operations -
Publish -
- -
- Publish
-
-
- import_export - -
-
-
- segment - +
+ + Policy + + All policies + + {{policy.name}} + ({{policy.topicId}}) + + + +
+
+ +
+
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + - - - -
+ + + + + + ID {{element.uuid}} Policy {{policyNameByTopic[element.topicId]}} Name {{element.name}} Topic + {{element.topicId}} + Version {{element.version}} Owner {{element.owner}} Entity {{element.entity}} Status + +
+ Draft
-
-
- edit - +
+ Published
-
- add - +
+ Unpublished
-
- add - +
+ {{element.status}}
-
-
- delete - + +
Status + +
+ Inactive
-
- delete - +
+ Active
-
-
-
- - -
- - -
- Before starting work you need to get DID here -
-
+ +
Operations +
+ Publish +
+
+ Publish +
+
Operations +
Active
+
+
+ import_export + +
+
+
+ segment + +
+
+
+ edit +
+
+ add +
+
+ add +
+
+
+ delete +
+
+ delete +
+
+
+ edit +
+
+ edit +
+
+
+ delete +
+
+ delete +
+
+
+
+ + +
+ + +
+ Before starting work you need to get DID here +
+
diff --git a/frontend/src/app/views/schema-config/schema-config.component.ts b/frontend/src/app/views/schema-config/schema-config.component.ts index a9d1c77f6d..3dee4e4abd 100644 --- a/frontend/src/app/views/schema-config/schema-config.component.ts +++ b/frontend/src/app/views/schema-config/schema-config.component.ts @@ -5,7 +5,7 @@ import { ProfileService } from '../../services/profile.service'; import { ActivatedRoute, Router } from '@angular/router'; import { SchemaService } from '../../services/schema.service'; import { SchemaDialog } from '../../schema-engine/schema-dialog/schema-dialog.component'; -import { ISchema, IUser, Schema, SchemaHelper, SchemaStatus } from 'interfaces'; +import { ISchema, IUser, Schema, SchemaHelper, SchemaStatus } from '@guardian/interfaces'; import { ImportSchemaDialog } from 'src/app/schema-engine/import-schema/import-schema-dialog.component'; import { SetVersionDialog } from 'src/app/schema-engine/set-version-dialog/set-version-dialog.component'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; @@ -16,7 +16,7 @@ import { PolicyEngineService } from 'src/app/services/policy-engine.service'; import { HttpResponse } from '@angular/common/http'; /** - * Page for creating, editing, importing and exporting schemes. + * Page for creating, editing, importing and exporting schemas. */ @Component({ selector: 'app-schema-config', @@ -26,9 +26,10 @@ import { HttpResponse } from '@angular/common/http'; export class SchemaConfigComponent implements OnInit { loading: boolean = true; isConfirmed: boolean = false; - schemes: Schema[] = []; - schemesCount: any; - schemaColumns: string[] = [ + schemas: Schema[] = []; + schemasCount: any; + columns: string[] = []; + policySchemaColumns: string[] = [ 'policy', 'type', 'topic', @@ -41,13 +42,24 @@ export class SchemaConfigComponent implements OnInit { 'delete', 'document', ]; + systemSchemaColumns: string[] = [ + 'type', + 'owner', + 'entity', + 'active', + 'activeOperation', + 'editSystem', + 'deleteSystem', + 'document', + ]; selectedAll!: boolean; policies: any[] | null; currentTopicPolicy: any = ''; pageIndex: number; pageSize: number; - schemesMap: any; + schemasMap: any; policyNameByTopic: any; + system: boolean = false; constructor( private auth: AuthService, @@ -64,71 +76,78 @@ export class SchemaConfigComponent implements OnInit { } ngOnInit() { + const type = this.route.snapshot.queryParams['type']; + const topic = this.route.snapshot.queryParams['topic']; + this.system = type == 'system'; + this.currentTopicPolicy = topic && topic != 'all' ? topic : ''; this.loadProfile() } loadProfile() { this.loading = true; - this.profileService.getProfile().subscribe((profile: IUser | null) => { - this.isConfirmed = !!(profile && profile.confirmed); - if (this.isConfirmed) { - this.loadData(); - } else { - this.loading = false; - } - }, (error) => { - this.loading = false; - console.error(error); - }); - } - - loadData() { - this.pageIndex = 0; - this.pageSize = 100; forkJoin([ + this.profileService.getProfile(), this.policyEngineService.all(), - this.schemaService.getSchemesByPage(undefined, this.pageIndex, this.pageSize) ]).subscribe((value) => { - const policies: any[] = value[0]; - const schemesResponse = value[1] as HttpResponse; + this.loading = false; + + const profile: IUser | null = value[0]; + const policies: any[] = value[1] || []; + + this.isConfirmed = !!(profile && profile.confirmed); + if (!this.isConfirmed) { + this.system = true; + } this.policyNameByTopic = {}; this.policies = []; for (let i = 0; i < policies.length; i++) { const policy = policies[i]; - if(policy.topicId && !this.policyNameByTopic.hasOwnProperty(policy.topicId)) { + if (policy.topicId && !this.policyNameByTopic.hasOwnProperty(policy.topicId)) { this.policyNameByTopic[policy.topicId] = policy.name; this.policies.push(policy); } } - this.schemes = SchemaHelper.map(schemesResponse.body || []); - this.schemesCount = schemesResponse.headers.get('X-Total-Count') || this.schemes.length; - this.schemaMapping(this.schemes); - setTimeout(() => { - this.loading = false; - }, 500); - }, (e) => { + + if (!this.policyNameByTopic[this.currentTopicPolicy]) { + this.currentTopicPolicy = undefined; + } + + this.pageIndex = 0; + this.pageSize = 100; + this.loadSchemas(); + }, (error) => { this.loading = false; + console.error(error); }); } - loadSchemes() { + loadSchemas() { this.loading = true; - this.schemaService.getSchemesByPage(this.currentTopicPolicy, this.pageIndex, this.pageSize) - .subscribe((schemesResponse: HttpResponse) => { - this.schemes = SchemaHelper.map(schemesResponse.body || []); - this.schemesCount = schemesResponse.headers.get('X-Total-Count') || this.schemes.length; - setTimeout(() => { - this.loading = false; - }, 500); - }, (e) => { - console.error(e.error); + const request = this.system ? + this.schemaService.getSystemSchemas(this.pageIndex, this.pageSize) : + this.schemaService.getSchemasByPage(this.currentTopicPolicy, this.pageIndex, this.pageSize); + this.columns = this.system ? this.systemSchemaColumns : this.policySchemaColumns; + request.subscribe((schemasResponse: HttpResponse) => { + this.schemas = SchemaHelper.map(schemasResponse.body || []); + this.schemasCount = schemasResponse.headers.get('X-Total-Count') || this.schemas.length; + this.schemaMapping(this.schemas); + setTimeout(() => { this.loading = false; - }); + }, 500); + }, (e) => { + console.error(e.error); + this.loading = false; + }); } onFilter() { this.pageIndex = 0; - this.loadSchemes(); + this.router.navigate(['/schemas'], { + queryParams: { + topic: this.currentTopicPolicy ? this.currentTopicPolicy : 'all' + } + }); + this.loadSchemas(); } onPage(event: any) { @@ -139,32 +158,32 @@ export class SchemaConfigComponent implements OnInit { this.pageIndex = event.pageIndex; this.pageSize = event.pageSize; } - this.loadSchemes(); + this.loadSchemas(); } - schemaMapping(schemes: ISchema[]) { - this.schemesMap = {}; - for (let i = 0; i < schemes.length; i++) { - const schema = schemes[i]; + schemaMapping(schemas: ISchema[]) { + this.schemasMap = {}; + for (let i = 0; i < schemas.length; i++) { + const schema = schemas[i]; if (schema.topicId) { - if (this.schemesMap[schema.topicId]) { - this.schemesMap[schema.topicId].push(schema); + if (this.schemasMap[schema.topicId]) { + this.schemasMap[schema.topicId].push(schema); } else { - this.schemesMap[schema.topicId] = [schema]; + this.schemasMap[schema.topicId] = [schema]; } } } } - newSchemes() { - + newSchemas() { const dialogRef = this.dialog.open(SchemaDialog, { width: '950px', panelClass: 'g-dialog', disableClose: true, data: { + system: this.system, type: 'new', - schemesMap: this.schemesMap, + schemasMap: this.schemasMap, topicId: this.currentTopicPolicy, policies: this.policies } @@ -172,12 +191,21 @@ export class SchemaConfigComponent implements OnInit { dialogRef.afterClosed().subscribe(async (schema: Schema | null) => { if (schema) { this.loading = true; - this.schemaService.create(schema, schema.topicId).subscribe((data) => { - this.loadSchemes(); - }, (e) => { - console.error(e.error); - this.loading = false; - }); + if (schema.system) { + this.schemaService.createSystemSchemas(schema).subscribe((data) => { + this.loadSchemas(); + }, (e) => { + console.error(e.error); + this.loading = false; + }); + } else { + this.schemaService.create(schema, schema.topicId).subscribe((data) => { + this.loadSchemas(); + }, (e) => { + console.error(e.error); + this.loading = false; + }); + } } }); } @@ -201,7 +229,7 @@ export class SchemaConfigComponent implements OnInit { disableClose: true, data: { type: 'edit', - schemesMap: this.schemesMap, + schemasMap: this.schemasMap, topicId: this.currentTopicPolicy, policies: this.policies, scheme: element @@ -210,8 +238,12 @@ export class SchemaConfigComponent implements OnInit { dialogRef.afterClosed().subscribe(async (schema: Schema | null) => { if (schema) { this.loading = true; - this.schemaService.update(schema, element.id).subscribe((data) => { - this.loadSchemes(); + + const request = this.system ? + this.schemaService.updateSystemSchemas(schema, element.id) : + this.schemaService.update(schema, element.id); + request.subscribe((data) => { + this.loadSchemas(); }, (e) => { console.error(e.error); this.loading = false; @@ -227,7 +259,7 @@ export class SchemaConfigComponent implements OnInit { disableClose: true, data: { type: 'version', - schemesMap: this.schemesMap, + schemasMap: this.schemasMap, topicId: this.currentTopicPolicy, policies: this.policies, scheme: element @@ -237,7 +269,7 @@ export class SchemaConfigComponent implements OnInit { if (schema) { this.loading = true; this.schemaService.newVersion(schema, element.id).subscribe((data) => { - this.loadSchemes(); + this.loadSchemas(); }, (e) => { console.error(e.error); this.loading = false; @@ -260,7 +292,7 @@ export class SchemaConfigComponent implements OnInit { disableClose: true, data: { type: 'version', - schemesMap: this.schemesMap, + schemasMap: this.schemasMap, topicId: this.currentTopicPolicy, policies: this.policies, scheme: newDocument @@ -270,9 +302,9 @@ export class SchemaConfigComponent implements OnInit { if (schema) { this.loading = true; this.schemaService.create(schema, schema.topicId).subscribe((data) => { - const schemes = SchemaHelper.map(data); - this.schemaMapping(schemes); - this.loadSchemes(); + const schemas = SchemaHelper.map(data); + this.schemaMapping(schemas); + this.loadSchemas(); }, (e) => { console.error(e.error); this.loading = false; @@ -286,16 +318,16 @@ export class SchemaConfigComponent implements OnInit { width: '350px', disableClose: true, data: { - schemes: this.schemes + schemas: this.schemas } }); dialogRef.afterClosed().subscribe(async (version) => { if (version) { this.loading = true; this.schemaService.publish(element.id, version).subscribe((data: any) => { - const schemes = SchemaHelper.map(data); - this.schemaMapping(schemes); - this.loadSchemes(); + const schemas = SchemaHelper.map(data); + this.schemaMapping(schemas); + this.loadSchemas(); }, (e) => { this.loading = false; }); @@ -306,9 +338,9 @@ export class SchemaConfigComponent implements OnInit { unpublished(element: any) { this.loading = true; this.schemaService.unpublished(element.id).subscribe((data: any) => { - const schemes = SchemaHelper.map(data); - this.schemaMapping(schemes); - this.loadSchemes(); + const schemas = SchemaHelper.map(data); + this.schemaMapping(schemas); + this.loadSchemas(); }, (e) => { this.loading = false; }); @@ -316,16 +348,21 @@ export class SchemaConfigComponent implements OnInit { deleteSchema(element: any) { this.loading = true; - this.schemaService.delete(element.id).subscribe((data: any) => { - const schemes = SchemaHelper.map(data); - this.schemaMapping(schemes); - this.loadSchemes(); + + const request = this.system ? + this.schemaService.deleteSystemSchemas(element.id) : + this.schemaService.delete(element.id); + + request.subscribe((data: any) => { + const schemas = SchemaHelper.map(data); + this.schemaMapping(schemas); + this.loadSchemas(); }, (e) => { this.loading = false; }); } - async importSchemes(messageId?: string) { + async importSchemas(messageId?: string) { const dialogRef = this.dialog.open(ImportSchemaDialog, { width: '500px', autoFocus: false, @@ -333,39 +370,39 @@ export class SchemaConfigComponent implements OnInit { }); dialogRef.afterClosed().subscribe(async (result) => { if (result) { - this.importSchemesDetails(result); + this.importSchemasDetails(result); } }); } - importSchemesDetails(result: any) { - const { type, data, schemes } = result; + importSchemasDetails(result: any) { + const { type, data, schemas } = result; const dialogRef = this.dialog.open(SchemaViewDialog, { width: '950px', panelClass: 'g-dialog', data: { - schemes: schemes, + schemas: schemas, topicId: this.currentTopicPolicy, policies: this.policies, } }); dialogRef.afterClosed().subscribe(async (result) => { if (result && result.messageId) { - this.importSchemes(result.messageId); + this.importSchemas(result.messageId); return; } if (result && result.topicId) { this.loading = true; if (type == 'message') { - this.schemaService.importByMessage(data, result.topicId).subscribe((schemes) => { - this.loadSchemes(); + this.schemaService.importByMessage(data, result.topicId).subscribe((schemas) => { + this.loadSchemas(); }, (e) => { this.loading = false; }); } else if (type == 'file') { - this.schemaService.importByFile(data, result.topicId).subscribe((schemes) => { - this.loadSchemes(); + this.schemaService.importByFile(data, result.topicId).subscribe((schemas) => { + this.loadSchemas(); }, (e) => { this.loading = false; }); @@ -398,24 +435,46 @@ export class SchemaConfigComponent implements OnInit { selectAll(selectedAll: boolean) { this.selectedAll = selectedAll; - for (let i = 0; i < this.schemes.length; i++) { - const element: any = this.schemes[i]; + for (let i = 0; i < this.schemas.length; i++) { + const element: any = this.schemas[i]; if (element.messageId) { element._selected = selectedAll; } } - this.schemes = this.schemes.slice(); + this.schemas = this.schemas.slice(); } selectItem() { this.selectedAll = true; - for (let i = 0; i < this.schemes.length; i++) { - const element: any = this.schemes[i]; + for (let i = 0; i < this.schemas.length; i++) { + const element: any = this.schemas[i]; if (!element._selected) { this.selectedAll = false; break; } } - this.schemes = this.schemes.slice(); + this.schemas = this.schemas.slice(); + } + + onChangeType(event: any) { + this.pageIndex = 0; + this.pageSize = 100; + this.currentTopicPolicy = undefined; + this.router.navigate(['/schemas'], { + queryParams: { + type: this.system ? 'system' : 'policy' + } + }); + this.loadSchemas(); + } + + active(element: any) { + this.loading = true; + this.schemaService.activeSystemSchemas(element.id).subscribe((res) => { + this.loading = false; + this.loadSchemas(); + }, (e) => { + this.loading = false; + }); } } diff --git a/frontend/src/app/views/token-config/token-config.component.ts b/frontend/src/app/views/token-config/token-config.component.ts index ecedbdf2e0..4bf53bc0c0 100644 --- a/frontend/src/app/views/token-config/token-config.component.ts +++ b/frontend/src/app/views/token-config/token-config.component.ts @@ -5,7 +5,7 @@ import { ProfileService } from "../../services/profile.service"; import { TokenService } from '../../services/token.service'; import { TokenDialog } from '../../components/token-dialog/token-dialog.component'; import { ActivatedRoute, Router } from '@angular/router'; -import { Token } from 'interfaces'; +import { Token } from '@guardian/interfaces'; /** * Page for creating tokens. @@ -75,7 +75,7 @@ export class TokenConfigComponent implements OnInit { }); } else { this.tokenService.getTokens().subscribe((data: any) => { - this.tokens = data.map((e: any) => { + this.tokens = data.map((e: any) => { return { ...new Token(e), policies: e.policies @@ -114,7 +114,7 @@ export class TokenConfigComponent implements OnInit { if (result) { this.loading = true; this.tokenService.create(result).subscribe((data) => { - this.tokens = data.map((e: any) => { + this.tokens = data.map((e: any) => { return { ...new Token(e), policies: e.policies diff --git a/frontend/src/app/views/trust-chain/trust-chain.component.ts b/frontend/src/app/views/trust-chain/trust-chain.component.ts index 50e866e239..7087b33891 100644 --- a/frontend/src/app/views/trust-chain/trust-chain.component.ts +++ b/frontend/src/app/views/trust-chain/trust-chain.component.ts @@ -4,11 +4,10 @@ import { MatDialog } from '@angular/material/dialog'; import { MatIconRegistry } from '@angular/material/icon'; import { DomSanitizer } from '@angular/platform-browser'; import { ActivatedRoute, Router } from '@angular/router'; -import { IVC, Schema, SchemaHelper } from 'interfaces'; +import { IVC, Schema, SchemaHelper } from '@guardian/interfaces'; import { AuditService } from 'src/app/services/audit.service'; import { AuthService } from '../../services/auth.service'; import { forkJoin } from 'rxjs'; -import { SchemaService } from 'src/app/services/schema.service'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; /** @@ -31,18 +30,17 @@ export class TrustChainComponent implements OnInit { vpPolicy: any; hasParam: boolean = false; - schemas!: Schema[]; constructor( private auth: AuthService, - private schemaService: SchemaService, private auditService: AuditService, private route: ActivatedRoute, private router: Router, private fb: FormBuilder, public dialog: MatDialog, iconRegistry: MatIconRegistry, - sanitizer: DomSanitizer) { + sanitizer: DomSanitizer + ) { iconRegistry.addSvgIconLiteral('iot', sanitizer.bypassSecurityTrustHtml(` @@ -87,13 +85,9 @@ export class TrustChainComponent implements OnInit { this.loading = true; forkJoin([ - this.auditService.searchHash(value), - this.schemaService.getSchemes() + this.auditService.searchHash(value) ]).subscribe((value) => { const documents: any = value[0]; - const schemes = value[1]; - - this.schemas = SchemaHelper.map(schemes); const { chain, userMap } = documents; this.userMap = {}; @@ -152,8 +146,7 @@ export class TrustChainComponent implements OnInit { viewDocument: true, document: item.document, title: item.type, - type: 'VC', - schemas: this.schemas, + type: 'VC' } }); dialogRef.afterClosed().subscribe(async (result) => { }); @@ -166,8 +159,7 @@ export class TrustChainComponent implements OnInit { viewDocument: true, document: item.document, title: item.type, - type: 'VP', - schemas: this.schemas, + type: 'VP' } }); dialogRef.afterClosed().subscribe(async (result) => { }); diff --git a/frontend/src/app/views/user-profile/user-profile.component.css b/frontend/src/app/views/user-profile/user-profile.component.css index 18998cd5b0..936d591377 100644 --- a/frontend/src/app/views/user-profile/user-profile.component.css +++ b/frontend/src/app/views/user-profile/user-profile.component.css @@ -267,4 +267,11 @@ a[disabled="true"]{ .generate-btn { margin-bottom: 20px; +} + + +.list-item { + display: flex; + flex-direction: column; + margin-bottom: 20px; } \ No newline at end of file diff --git a/frontend/src/app/views/user-profile/user-profile.component.html b/frontend/src/app/views/user-profile/user-profile.component.html index df3ece4d89..c954c02016 100644 --- a/frontend/src/app/views/user-profile/user-profile.component.html +++ b/frontend/src/app/views/user-profile/user-profile.component.html @@ -21,7 +21,7 @@
{{profile.topicId}}
-
Root Authority:
+
Standard Registry:
{{profile.parent}}
@@ -31,7 +31,13 @@
DID Document:
+
+
+
VC Document:
+
@@ -97,26 +103,36 @@
+
+ + Standard Registry: + + + {{user.username}} + + + +
- - Root Authority: - - - {{user.username}} - - - +
+ + +
- - OPERATOR ID: - - +
+ + OPERATOR ID: + + - - OPERATOR KEY: - - + + OPERATOR KEY: + + +
diff --git a/frontend/src/app/views/user-profile/user-profile.component.ts b/frontend/src/app/views/user-profile/user-profile.component.ts index a8e6fd4457..6fac12ce5e 100644 --- a/frontend/src/app/views/user-profile/user-profile.component.ts +++ b/frontend/src/app/views/user-profile/user-profile.component.ts @@ -5,14 +5,17 @@ import { forkJoin } from 'rxjs'; import { AuthService } from '../../services/auth.service'; import { ProfileService } from "../../services/profile.service"; import { TokenService } from '../../services/token.service'; -import { IUser, Token, IToken } from 'interfaces'; +import { IUser, Token, IToken, SchemaEntity, Schema } from '@guardian/interfaces'; import { DemoService } from 'src/app/services/demo.service'; import { VCViewerDialog } from 'src/app/schema-engine/vc-dialog/vc-dialog.component'; +import { SchemaService } from 'src/app/services/schema.service'; +import { HeaderPropsService } from 'src/app/services/header-props.service'; interface IHederaForm { id: string, key: string, - rootAuthority: string, + standardRegistry: string, + vc?: any } /** @@ -31,11 +34,12 @@ export class UserProfileComponent implements OnInit { profile?: IUser | null; balance?: string | null; tokens?: Token[] | null; - didDocument?: string; - rootAuthorities?: IUser[]; + didDocument?: any; + vcDocument?: any; + standardRegistries?: IUser[]; hederaForm = this.fb.group({ - rootAuthority: ['', Validators.required], + standardRegistry: ['', Validators.required], id: ['', Validators.required], key: ['', Validators.required], }); @@ -52,14 +56,24 @@ export class UserProfileComponent implements OnInit { private interval: any; + hideVC: any; + schema!: Schema | null; + vcForm!: FormGroup; + constructor( private auth: AuthService, private profileService: ProfileService, private tokenService: TokenService, private otherService: DemoService, + private schemaService: SchemaService, private fb: FormBuilder, - public dialog: MatDialog) { - this.rootAuthorities = []; + public dialog: MatDialog, + private headerProps: HeaderPropsService) { + this.standardRegistries = []; + this.hideVC = { + id: true + } + this.vcForm = new FormGroup({}); } ngOnInit() { @@ -88,7 +102,8 @@ export class UserProfileComponent implements OnInit { this.profileService.getProfile(), this.profileService.getBalance(), this.tokenService.getTokens(), - this.auth.getRootAuthorities() + this.auth.getStandardRegistries(), + this.schemaService.getSystemSchemasByEntity(SchemaEntity.USER) ]).subscribe((value) => { this.profile = value[0] as IUser; this.balance = value[1] as string; @@ -98,25 +113,34 @@ export class UserProfileComponent implements OnInit { policies: e.policies } }); - this.rootAuthorities = value[3] || []; + this.standardRegistries = value[3] || []; this.isConfirmed = !!this.profile.confirmed; this.isFailed = !!this.profile.failed; this.isNewAccount = !this.profile.didDocument; - this.didDocument = ""; + this.didDocument = null; + this.vcDocument = null; if (this.isConfirmed) { - const didDocument = this.profile?.didDocument?.document; - if (didDocument) { - this.didDocument = JSON.stringify((didDocument), null, 4); - } + this.didDocument = this.profile?.didDocument; + this.vcDocument = this.profile?.vcDocument; + } + + const schema = value[4]; + if (schema) { + this.schema = new Schema(schema); + this.hederaForm.addControl('vc', this.vcForm); + } else { + this.schema = null; } setTimeout(() => { this.loading = false; + this.headerProps.setLoading(false); }, 200) }, (error) => { this.loading = false; + this.headerProps.setLoading(false); console.error(error); }); } @@ -129,35 +153,43 @@ export class UserProfileComponent implements OnInit { createDID(data: IHederaForm) { this.loading = true; - const profile = { + this.headerProps.setLoading(true); + const vcDocument = data.vc; + const profile: any = { hederaAccountId: data.id, hederaAccountKey: data.key, - parent: data.rootAuthority + parent: data.standardRegistry, + } + if (vcDocument) { + profile.vcDocument = vcDocument; } this.profileService.setProfile(profile).subscribe(() => { this.loadDate(); }, (error) => { this.loading = false; + this.headerProps.setLoading(false); console.error(error); }); } randomKey() { this.loading = true; + const value: any = { + standardRegistry: this.hederaForm.value.standardRegistry, + } + if (this.hederaForm.value.vc) { + value.vc = this.hederaForm.value.vc; + } this.otherService.getRandomKey().subscribe((treasury) => { this.loading = false; - this.hederaForm.setValue({ - rootAuthority: this.hederaForm.value.rootAuthority, - id: treasury.id, - key: treasury.key - }); + value.id = treasury.id; + value.key = treasury.key; + this.hederaForm.setValue(value); }, (error) => { this.loading = false; - this.hederaForm.setValue({ - rootAuthority: this.hederaForm.value.rootAuthority, - id: '', - key: '', - }); + value.id = ''; + value.key = ''; + this.hederaForm.setValue(value); }); } @@ -176,15 +208,28 @@ export class UserProfileComponent implements OnInit { }); } - openDocument(document: any) { + openVCDocument(document: any, title: string) { const dialogRef = this.dialog.open(VCViewerDialog, { width: '850px', data: { - document: JSON.parse(document), - title: "DID", - type: 'JSON', + document: document.document, + title: title, + type: 'VC', + viewDocument: true } + }); + dialogRef.afterClosed().subscribe(async (result) => { + }); + } + openDIDDocument(document: any, title: string) { + const dialogRef = this.dialog.open(VCViewerDialog, { + width: '850px', + data: { + document: document.document, + title: title, + type: 'JSON', + } }); dialogRef.afterClosed().subscribe(async (result) => { @@ -206,4 +251,8 @@ export class UserProfileComponent implements OnInit { ? policies[0] : `Used in ${policies.length} policies`; } + + onChangeForm() { + this.vcForm.updateValueAndValidity(); + } } diff --git a/guardian-service/.env b/guardian-service/.env index 76d8818891..71618006e1 100644 --- a/guardian-service/.env +++ b/guardian-service/.env @@ -5,4 +5,8 @@ DB_DATABASE="guardian_db" MAX_TRANSACTION_FEE="10" INITIAL_BALANCE="30" OPERATOR_ID="..." -OPERATOR_KEY="..." \ No newline at end of file +OPERATOR_KEY="..." +HEDERA_NET="testnet" +INITIALIZATION_TOPIC_ID="0.0.46022543" +MESSAGE_LANG="en-US" +LOG_LEVEL="2" diff --git a/guardian-service/.env.docker b/guardian-service/.env.docker index a407b0e5f9..390cf2cf23 100644 --- a/guardian-service/.env.docker +++ b/guardian-service/.env.docker @@ -6,3 +6,7 @@ MAX_TRANSACTION_FEE="10" INITIAL_BALANCE="30" OPERATOR_ID="..." OPERATOR_KEY="..." +HEDERA_NET="testnet" +INITIALIZATION_TOPIC_ID="0.0.46022543" +MESSAGE_LANG="en-US" +LOG_LEVEL="2" \ No newline at end of file diff --git a/guardian-service/Dockerfile b/guardian-service/Dockerfile index 05a1d9e1cb..92f690d8a8 100644 --- a/guardian-service/Dockerfile +++ b/guardian-service/Dockerfile @@ -5,29 +5,24 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build - -WORKDIR /usr/logger-helper -COPY ./logger-helper/package*.json ./ -COPY ./logger-helper/tsconfig.json ./ +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz RUN npm install -ADD ./logger-helper/src ./src/. -RUN npm run build +RUN npm pack WORKDIR /usr/guardian-service COPY ./guardian-service/package*.json ./ COPY ./guardian-service/tsconfig.json ./ COPY ./guardian-service/.env.docker ./.env -COPY ./guardian-service/system-schemes ./system-schemes/. +COPY ./guardian-service/system-schemas ./system-schemas/. +RUN npm install --force /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install --force ADD ./guardian-service/src ./src/. RUN npm run build diff --git a/guardian-service/nodemon.json b/guardian-service/nodemon.json index 8b879fd87b..660aa69975 100644 --- a/guardian-service/nodemon.json +++ b/guardian-service/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["./dist", "../interfaces/dist", "../common/dist", "../logger-helper/dist"], + "watch": ["./dist", "../interfaces/dist", "../common/dist"], "delay": 2500, "ext": "ts, js", "exec": "node dist/index.js" diff --git a/guardian-service/package-lock.json b/guardian-service/package-lock.json index 8a6b227ed9..8af4830ad3 100644 --- a/guardian-service/package-lock.json +++ b/guardian-service/package-lock.json @@ -1,41 +1,39 @@ { "name": "guardian-service", - "version": "2.1.2", + "version": "2.1.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "guardian-service", - "version": "2.1.2", + "version": "2.1.3", "license": "Apache-2.0", "dependencies": { - "@hashgraph/did-sdk-js": "0.1.1", - "@hashgraph/sdk": "2.12.1", - "@transmute/credentials-context": "0.7.0-unstable.40", - "@transmute/did-context": "0.7.0-unstable.40", - "@transmute/ed25519-signature-2018": "0.7.0-unstable.40", - "@transmute/json-web-signature": "0.7.0-unstable.40", - "@transmute/jsonld-schema": "0.7.0-unstable.40", - "@transmute/security-context": "0.7.0-unstable.40", - "@transmute/vc.js": "0.7.0-unstable.40", + "@guardian/common": "^2.1.3", + "@guardian/interfaces": "^2.1.3", + "@hashgraph/sdk": "^2.15.0", + "@transmute/credentials-context": "^0.7.0-unstable.60", + "@transmute/did-context": "^0.7.0-unstable.60", + "@transmute/ed25519-signature-2018": "^0.7.0-unstable.60", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/vc.js": "^0.7.0-unstable.60", "ajv": "^8.10.0", "ajv-formats": "^2.1.1", "axios": "^0.25.0", "bs58": "^4.0.1", - "common": "file:../common", "cors": "^2.8.5", "cron": "^2.0.0", "deep-equal": "^2.0.5", "dotenv": "^16.0.0", "express": "^4.17.1", "fs-extra": "^10.0.0", - "interfaces": "file:../interfaces", "jszip": "^3.7.1", - "logger-helper": "file:../logger-helper", "mathjs": "^10.1.0", "module-alias": "^2.2.2", "moment": "^2.29.1", - "mongodb": "^4.2.1", + "mongodb": "4.2.1", "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" }, @@ -54,55 +52,14 @@ "typescript": "^4.5.5" } }, - "../common": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "interfaces": "file:../interfaces", - "nats": "^2.6.1", - "reflect-metadata": "^0.1.13" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "../interfaces": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "reflect-metadata": "^0.1.13" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "../logger-helper": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "common": "file:../common", - "interfaces": "file:../interfaces" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -117,34 +74,34 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", "peer": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "engines": { @@ -179,27 +136,32 @@ "node": ">=6" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "peer": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", "peer": true, "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, "node_modules/@babel/helper-annotate-as-pure": { @@ -228,14 +190,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "engines": { @@ -245,25 +207,16 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" @@ -276,9 +229,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -310,23 +263,11 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } @@ -344,26 +285,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "peer": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -406,9 +334,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", @@ -417,8 +345,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" }, "engines": { "node": ">=6.9.0" @@ -437,9 +365,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "peer": true, "engines": { "node": ">=6.9.0" @@ -460,28 +388,28 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", "peer": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" @@ -544,23 +472,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", "peer": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -605,12 +533,12 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } @@ -618,7 +546,7 @@ "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } @@ -635,9 +563,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", "peer": true, "bin": { "parser": "bin/babel-parser.js" @@ -647,12 +575,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -662,14 +590,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -679,12 +607,12 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -696,13 +624,13 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -712,13 +640,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -729,15 +657,16 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", "charcodes": "^0.2.0" }, "engines": { @@ -764,12 +693,12 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", - "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.17.12.tgz", + "integrity": "sha512-LpsTRw725eBAXXKUOnJJct+SEaOzwR78zahcLuripD2+dKc2Sj+8Q2DzA+GC/jOpOu/KlDXuxrzG214o1zTauQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-default-from": "^7.16.7" }, "engines": { @@ -780,12 +709,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -796,12 +725,12 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -812,12 +741,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -828,12 +757,12 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -860,16 +789,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -895,12 +824,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -912,13 +841,13 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -928,14 +857,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -946,13 +875,13 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "peer": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=4" @@ -1001,12 +930,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1055,12 +984,27 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1082,12 +1026,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1199,12 +1143,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1214,12 +1158,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1229,13 +1173,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" }, "engines": { @@ -1261,12 +1205,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1276,17 +1220,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, @@ -1298,12 +1242,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1313,12 +1257,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1344,12 +1288,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1375,13 +1319,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1391,12 +1335,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1423,12 +1367,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1453,13 +1397,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1470,14 +1414,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1488,14 +1432,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", "peer": true, "dependencies": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1507,13 +1451,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1523,12 +1467,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "peer": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1538,12 +1483,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1584,12 +1529,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1629,16 +1574,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1648,12 +1593,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz", - "integrity": "sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz", + "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1678,12 +1623,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "peer": true, "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" }, "engines": { "node": ">=6.9.0" @@ -1693,12 +1639,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1708,13 +1654,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -1727,15 +1673,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", @@ -1752,12 +1689,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" }, "engines": { @@ -1783,12 +1720,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1798,12 +1735,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1813,14 +1750,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1861,37 +1798,38 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1901,44 +1839,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", + "@babel/types": "^7.18.2", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, "engines": { @@ -1948,15 +1886,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", @@ -1974,9 +1903,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -2011,19 +1940,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "peer": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2044,9 +1973,9 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -2141,19 +2070,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2165,19 +2085,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2196,39 +2103,227 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@expo/config": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.6.tgz", - "integrity": "sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==", - "peer": true, + "node_modules/@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "4.0.6", - "@expo/config-types": "^43.0.1", - "@expo/json-file": "8.2.33", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "7.3.2", + "@ethersproject/logger": "^5.6.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", + "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "node_modules/@expo/bunyan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", + "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==", + "engines": [ + "node >=0.10.0" + ], + "peer": true, + "dependencies": { + "uuid": "^8.0.0" + }, + "optionalDependencies": { + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "node_modules/@expo/bunyan/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/cli": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.1.5.tgz", + "integrity": "sha512-27LNT3b9MtBHEosmvJiC9Ug9aJpQAK9T3cC8ekaB9cHnVcJw+mJs2kdVBYpV1aBjKkH7T57aiWWimZp0O7m1wQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.14.0", + "@expo/code-signing-certificates": "^0.0.2", + "@expo/config": "~6.0.23", + "@expo/config-plugins": "~4.1.4", + "@expo/dev-server": "~0.1.110", + "@expo/devcert": "^1.0.0", + "@expo/json-file": "^8.2.35", + "@expo/metro-config": "~0.3.16", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "~0.0.52", + "@expo/plist": "^0.0.18", + "@expo/prebuild-config": "~4.0.0", + "@expo/rudder-sdk-node": "1.1.1", + "@expo/spawn-async": "1.5.0", + "@expo/xcpretty": "^4.1.1", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", + "accepts": "^1.3.8", + "arg": "4.1.0", + "better-opn": "~3.0.2", + "bplist-parser": "^0.3.1", + "cacache": "^15.3.0", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "env-editor": "^0.4.1", + "form-data": "^3.0.1", + "freeport-async": "2.0.0", + "fs-extra": "~8.1.0", + "getenv": "^1.0.0", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "internal-ip": "4.3.0", + "is-root": "^2.1.0", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", + "md5-file": "^3.2.3", + "md5hex": "^1.0.0", + "minipass": "3.1.6", + "node-fetch": "^2.6.7", + "node-forge": "^1.3.1", + "npm-package-arg": "^7.0.0", + "ora": "3.4.0", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "requireg": "^0.2.2", + "resolve-from": "^5.0.0", + "semver": "^6.3.0", + "slugify": "^1.3.4", + "structured-headers": "^0.4.1", + "tar": "^6.0.5", + "tempy": "^0.7.1", + "terminal-link": "^2.1.1", + "text-table": "^0.2.0", + "url-join": "4.0.0", + "uuid": "^3.4.0", + "wrap-ansi": "^7.0.0" + }, + "bin": { + "expo-internal": "build/bin/cli" + } + }, + "node_modules/@expo/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@expo/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@expo/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz", + "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==", + "peer": true, + "dependencies": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" + } + }, + "node_modules/@expo/config": { + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.24.tgz", + "integrity": "sha512-OcACI1md1Yo5TQmUxxueJ/RaTlR2Mgl6KswTFOYCL1XJERF/jjAx95zhWXH+JQGdlM0yB0vqM6vB6GbUFRvLxA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "7.3.2", "slugify": "^1.3.4", "sucrase": "^3.20.0" } }, "node_modules/@expo/config-plugins": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.6.tgz", - "integrity": "sha512-K/KQaw/CU8uLQgk7sFnZC54YGHoGucKFfdjYeZx5ds2eyzbuMAiKzGFcxZ/S+1dVBZ8QHzwowsVBW3kuYhnQ3Q==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.5.tgz", + "integrity": "sha512-RVvU40RtZt12HavuDAe+LDIq9lHj7sheOfMEHdmpJ/uTA8pgvkbc56XF6JHQD+yRr6+uhhb+JnAasGq49dsQbw==", "peer": true, "dependencies": { - "@expo/config-types": "^43.0.1", - "@expo/json-file": "8.2.33", - "@expo/plist": "0.0.15", + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", "@react-native/normalize-color": "^2.0.0", "chalk": "^4.1.2", "debug": "^4.3.1", "find-up": "~5.0.0", - "fs-extra": "9.0.0", "getenv": "^1.0.0", "glob": "7.1.6", "resolve-from": "^5.0.0", @@ -2238,7 +2333,61 @@ "xml2js": "0.4.23" } }, - "node_modules/@expo/config-plugins/node_modules/fs-extra": { + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/config-types": { + "version": "45.0.0", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-45.0.0.tgz", + "integrity": "sha512-/QGhhLWyaGautgEyU50UJr5YqKJix5t77ePTwreOVAhmZH+ff3nrrtYTTnccx+qF08ZNQmfAyYMCD3rQfzpiJA==", + "peer": true + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/dev-server": { + "version": "0.1.113", + "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.113.tgz", + "integrity": "sha512-PT3HT+3h4ZS1bw6Zz8fqjNeryKOWe1FqGdnz4RSASxZGCzib6VHLfLbJeYHkq7t+ashSXRoAw3XW/9yVdbUqLA==", + "peer": true, + "dependencies": { + "@expo/bunyan": "4.0.0", + "@expo/metro-config": "0.3.18", + "@expo/osascript": "2.0.33", + "body-parser": "1.19.0", + "chalk": "^4.0.0", + "connect": "^3.7.0", + "fs-extra": "9.0.0", + "node-fetch": "^2.6.0", + "open": "^8.3.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "serialize-error": "6.0.0", + "temp-dir": "^2.0.0" + } + }, + "node_modules/@expo/dev-server/node_modules/fs-extra": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", @@ -2253,14 +2402,11 @@ "node": ">=10" } }, - "node_modules/@expo/config-plugins/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/@expo/dev-server/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2268,7 +2414,34 @@ "node": ">=10" } }, - "node_modules/@expo/config-plugins/node_modules/universalify": { + "node_modules/@expo/dev-server/node_modules/serialize-error": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-6.0.0.tgz", + "integrity": "sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA==", + "peer": true, + "dependencies": { + "type-fest": "^0.12.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/dev-server/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/dev-server/node_modules/universalify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", @@ -2277,16 +2450,154 @@ "node": ">= 10.0.0" } }, - "node_modules/@expo/config-types": { - "version": "43.0.1", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-43.0.1.tgz", - "integrity": "sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==", + "node_modules/@expo/devcert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz", + "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==", + "peer": true, + "dependencies": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@expo/devcert/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "peer": true }, + "node_modules/@expo/image-utils": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz", + "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==", + "peer": true, + "dependencies": { + "@expo/spawn-async": "1.5.0", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "mime": "^2.4.4", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "tempy": "0.3.0" + } + }, + "node_modules/@expo/image-utils/node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "peer": true, + "dependencies": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/image-utils/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/image-utils/node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "peer": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@expo/json-file": { - "version": "8.2.33", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.33.tgz", - "integrity": "sha512-CDnhjdirUs6OdN5hOSTJ2y3i9EiJMk7Z5iDljC5xyCHCrUex7oyI8vbRsZEojAahxZccgL/PrO+CjakiFFWurg==", + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", "peer": true, "dependencies": { "@babel/code-frame": "~7.10.4", @@ -2295,22 +2606,77 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.2.8.tgz", - "integrity": "sha512-8g0QrHfvSgTLzryuE4JXRwFwBZ7EmqE55zR39Yy7jEVR3epYL0JbBK0/IDFmf6auwsDFtMjAZjFL4WEhRN5bEQ==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.18.tgz", + "integrity": "sha512-DWtwV67kD8X2uOKIs5QyHlHD+6L6RAgudZZDBmu433ZvL62HAUYfjEi3+i0jeMiUqN85o1vbXg6xqWnBCpS50g==", "peer": true, "dependencies": { - "@expo/config": "6.0.6", + "@expo/config": "6.0.24", + "@expo/json-file": "8.2.36", "chalk": "^4.1.0", "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", "getenv": "^1.0.0", + "resolve-from": "^5.0.0", "sucrase": "^3.20.0" } }, + "node_modules/@expo/osascript": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz", + "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==", + "peer": true, + "dependencies": { + "@expo/spawn-async": "^1.5.0", + "exec-async": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "0.0.54", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.54.tgz", + "integrity": "sha512-Sr7UsDh9Pcta1gAFZJgszodewEvg/XSRV1oV+iTrkUEhP7NziMrK5dE71O2FHmKGfdrDQgLexvq8HLZdfRskKw==", + "peer": true, + "dependencies": { + "@expo/json-file": "8.2.36", + "@expo/spawn-async": "^1.5.0", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "find-yarn-workspace-root": "~2.0.0", + "npm-package-arg": "^7.0.0", + "rimraf": "^3.0.2", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + } + }, + "node_modules/@expo/package-manager/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/package-manager/node_modules/sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "peer": true + }, "node_modules/@expo/plist": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.15.tgz", - "integrity": "sha512-LDxiS0KNZAGJu4fIJhbEKczmb+zeftl1NU0LE0tj0mozoMI5HSKdMUchgvnBm35bwBl8ekKkAfJJ0ONxljWQjQ==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", "peer": true, "dependencies": { "@xmldom/xmldom": "~0.7.0", @@ -2318,24 +2684,155 @@ "xmlbuilder": "^14.0.0" } }, + "node_modules/@expo/prebuild-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-4.0.2.tgz", + "integrity": "sha512-+AQ/EVgcySl3cvYMmZLaEyGkxvQnO+UFU2mshmUoUh5lTIFTNKl1aVo0UmYW2/JehmKu6bxOrr/lL5byHv+fcQ==", + "peer": true, + "dependencies": { + "@expo/config": "6.0.24", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/image-utils": "0.3.20", + "@expo/json-file": "8.2.36", + "debug": "^4.3.1", + "expo-modules-autolinking": "0.8.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "xml2js": "0.4.23" + } + }, + "node_modules/@expo/prebuild-config/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "peer": true, + "dependencies": { + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "peer": true + }, + "node_modules/@expo/spawn-async": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", + "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.5" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@expo/vector-icons": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-12.0.5.tgz", - "integrity": "sha512-zWvHBmkpbi1KrPma6Y+r/bsGI6MjbM1MBSe6W9A4uYMLhNI5NR4JtTnqxhf7g1XdpaDtBdv5aOWKEx4d5rxnhg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-13.0.0.tgz", + "integrity": "sha512-TI+l71+5aSKnShYclFa14Kum+hQMZ86b95SH6tQUG3qZEmLTarvWpKwqtTwQKqvlJSJrpFiSFu3eCuZokY6zWA==", + "peer": true + }, + "node_modules/@expo/xcpretty": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.1.3.tgz", + "integrity": "sha512-testj0jpEe1IwRfnmQ3shizTXOY6IGcuMJg1vtmXy2bC9sPTLK1wjliRJp2xCJGcp1ZbEA1/eptzX+6MDnYjrA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + }, + "bin": { + "excpretty": "build/cli.js" + } + }, + "node_modules/@expo/xcpretty/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "node_modules/@expo/xcpretty/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "peer": true, "dependencies": { - "lodash.frompairs": "^4.0.1", - "lodash.isequal": "^4.5.0", - "lodash.isstring": "^4.0.1", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "lodash.template": "^4.5.0" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "peer": true + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "peer": true, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, "node_modules/@grpc/grpc-js": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.9.tgz", - "integrity": "sha512-un+cXqErq5P4p3+WgYVNVh7FB51MSnaoRef7QWDcMXKR6FX2R6Z/bltcJMxNNdTUMC85lkOQcpnAAetFziPSng==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", "dependencies": { "@grpc/proto-loader": "^0.6.4", "@types/node": ">=12.12.47" @@ -2345,14 +2842,14 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", + "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", "dependencies": { "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", "long": "^4.0.0", - "protobufjs": "^6.10.0", + "protobufjs": "^6.11.3", "yargs": "^16.2.0" }, "bin": { @@ -2362,16 +2859,35 @@ "node": ">=6" } }, + "node_modules/@guardian/common": { + "version": "2.1.3", + "resolved": "file:../common/guardian-common-2.1.3.tgz", + "integrity": "sha512-wMvj/E/4M/fMsjyJVfqGl+GcwS+jLWwCH1O1CCai98DMmRK35uigcKxfPI+5Cvw7mej00oIa2D3lDVuabMAxAw==", + "license": "Apache-2.0", + "dependencies": { + "@guardian/interfaces": "^2.1.3", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" + } + }, + "node_modules/@guardian/interfaces": { + "version": "2.1.3", + "resolved": "^2.1.3", + "integrity": "sha512-20WCNw3Qn6nIF7srN/YDWLlevPJPsD36ZPzfT8BzBN3xWcgqxUQlqEmMVFjeeSWa8lIkhfYabeI4bMjZDCoiEg==", + "license": "Apache-2.0", + "dependencies": { + "reflect-metadata": "^0.1.13" + } + }, "node_modules/@hashgraph/cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.1.2.tgz", - "integrity": "sha512-oSnDDs5foNq6Yni4kCwbA01NuVY2mewVr1jhkJG7yNDT6+xIBCztRWDeINb1JuShXe57Cuf88M1zmN5iFN7JgA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.2.0.tgz", + "integrity": "sha512-sr7C4iUWIHnLU4LXgafkwEpDOpgtqHhQfAbPiyatzjngPu0euYZ0xeNSrzOpo2SXOhCyUffHFs4z/orIIkaYpg==", "dependencies": { "bignumber.js": "^9.0.2", "crypto-js": "^4.1.1", "elliptic": "^6.5.4", - "expo-crypto": "^10.1.2", - "expo-random": "^12.1.2", "js-base64": "^3.7.2", "tweetnacl": "^1.0.3", "utf8": "^3.0.0" @@ -2380,24 +2896,15 @@ "node": ">=12.0.0" }, "peerDependencies": { - "expo": "^44.0.5" - } - }, - "node_modules/@hashgraph/did-sdk-js": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@hashgraph/did-sdk-js/-/did-sdk-js-0.1.1.tgz", - "integrity": "sha512-YL+8pB8RqkUfvCKowuYEJ6RNexfHFv+RESD7UBn/CMvk70ECIjTb4oBVcqbtPgmDrt/Ayz4itueCob37GTAglw==", - "dependencies": { - "@hashgraph/sdk": "^2.0.20", - "bs58": "^4.0.1", - "js-base64": "^3.6.1", - "moment": "^2.29.1" + "expo": "^45.0.3", + "expo-crypto": "^10.1.2", + "expo-random": "^12.1.2" } }, "node_modules/@hashgraph/proto": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.3.0.tgz", - "integrity": "sha512-zZAb/V4j9OersY/rXfPKqiNKyGnT2zPV1v2MA0uW+OKn8BAy9+GwVwANcfrs8VbAqP151iEA6sQSuOH216ytRg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.5.0.tgz", + "integrity": "sha512-354Ozgf55mdPUUcED5E8n2ehGMO6mpOgtMIo4l4+t/wpp1qRmOfbHlVfI4TQN7W4WMb/CRnmbjCl6KDF/SnTxA==", "dependencies": { "long": "^4.0.0", "protobufjs": "^6.11.2" @@ -2407,13 +2914,15 @@ } }, "node_modules/@hashgraph/sdk": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.12.1.tgz", - "integrity": "sha512-VisSO8GZ5I/azPj2h2mRTtJsw541POsuhFJ7aRhmhMEFZrpcnXFnkKSp1KYYNT2ELAEZy2pKNBpv9V0GEkUIpw==", - "dependencies": { - "@grpc/grpc-js": "^1.5.7", - "@hashgraph/cryptography": "^1.1.2", - "@hashgraph/proto": "^2.3.0", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.15.0.tgz", + "integrity": "sha512-SP3Wnb7DlLwwhLqr3tnYfKVMyL6wfm+5aBCM6K0ES90b9yYlnTYehMO/EJAmSlvwer2abmzxEneHXP/DmK9LoQ==", + "dependencies": { + "@ethersproject/rlp": "^5.6.0", + "@grpc/grpc-js": "^1.6.7", + "@hashgraph/cryptography": "^1.2.0", + "@hashgraph/proto": "2.5.0", + "axios": "^0.27.2", "bignumber.js": "^9.0.2", "crypto-js": "^4.1.1", "js-base64": "^3.7.2", @@ -2426,7 +2935,29 @@ "node": ">=10.17.0" }, "peerDependencies": { - "expo": "^44.0.5" + "expo": "^45.0.3" + } + }, + "node_modules/@hashgraph/sdk/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@hashgraph/sdk/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/@humanwhocodes/config-array": { @@ -2465,25 +2996,47 @@ "node": ">= 10.14.2" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", "peer": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", "peer": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -2558,15 +3111,79 @@ "node": ">= 8" } }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "peer": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "peer": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@peculiar/asn1-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.0.tgz", - "integrity": "sha512-D6g4C5YRKC/iPujMAOXuZ7YGdaoMx8GsvWzfVSyx2LYeL38ECOKNywlYAuwbqQvON64lgsYdAujWQPX8hhoBLw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.9.tgz", + "integrity": "sha512-Ipio+pXGpL/Vb0qB4GnOgFMgc1RAhKHOVy24rQYLvmOAVp9z/aFb+VdIiQH09NjgvGVmaWOUqSWd9vRHk3xbrg==", "dependencies": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.3.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.1" + "asn1js": "^3.0.4", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" } }, "node_modules/@peculiar/json-schema": { @@ -2581,15 +3198,15 @@ } }, "node_modules/@peculiar/webcrypto": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.3.2.tgz", - "integrity": "sha512-oUgNj+8oT7uROEMEpZZ3U+kZjyxj1KXuvA8P5kiMUveTya9eyS8KTqu/dzdEtYC3u7dvjknVz+0sUfkWOBHfQg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz", + "integrity": "sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==", "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/asn1-schema": "^2.1.6", "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1", - "webcrypto-core": "^1.7.1" + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0", + "webcrypto-core": "^1.7.4" }, "engines": { "node": ">=10.12.0" @@ -2598,7 +3215,7 @@ "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", @@ -2613,12 +3230,12 @@ "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -2627,27 +3244,27 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@react-native/normalize-color": { "version": "2.0.0", @@ -2655,6 +3272,16 @@ "integrity": "sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==", "peer": true }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "peer": true, + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -2847,26 +3474,26 @@ } }, "node_modules/@transmute/bls12381-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-rnw4GthkaWVAeNfrt4mx9MxQzX3cda4CttU+BgBphPK/F2yGbmvhCPA82FVCs10EikdzIhk3ixLFIGyRGVmluw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-QLgg0fPlGuNM3yt5LPfid1/f5bsDnnsJe/1NJRmQ3MmBMjjVIXmg9boT7TRISjMetMZa7QEP/3KUfjvaxSU+UQ==", "dependencies": { "@mattrglobal/bls12381-key-pair": "^0.5.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60" }, "engines": { "node": ">=10" } }, "node_modules/@transmute/credentials-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-X9kOjLuzKZKg1SMU/ufm7q6UHSSn6leSXcza+vI4VpeUAeKja7Fihtzosnf9OtX/HNW7YiKUB+sog+7S0zgoEg==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-UvEqLuxcqdq7IsIRAKrW9tLRuinXnZgjIpP3e4vdEGdKrCXZtwS1oYM/Mt2cmqPeuISydiZjOzsNqUZYroTeoA==" }, "node_modules/@transmute/did-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-8fOjnCAQOh+nXqVWWYbvffdGX2nhfug82W5DulBHKJbDsCjge5w3wlf1GeBgNtOenSgQJ17tIlBdUZi/Cff7ag==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-6hnwcqVn+aFyx7yNvJ8W1SoAp7d21bBYF1FI0mGi4KJk6p83hvHYIlpdqMT4xvaR6txyeOLbZUoozaZFd1HVpw==" }, "node_modules/@transmute/did-key-common": { "version": "0.3.0-unstable.8", @@ -2954,13 +3581,13 @@ } }, "node_modules/@transmute/ed25519-signature-2018": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.40.tgz", - "integrity": "sha512-UIwv2zXM80wmOb4AV5tDa0kvFnG1KmapwH/2NAjhcKivFXu6ty8f0qEJgDeOOG+XwhvWJ+LpWl090jw6jCNpyg==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.60.tgz", + "integrity": "sha512-6Ch2u5/M0KWKw0FGTFf3rk824PZBeJJ8tgvGFWQIZk3dPfybkz4Ih+eZ7o1APXsy7J4EN7BSl+kg6g5DMmzBpw==", "dependencies": { "@transmute/ed25519-key-pair": "0.7.0-unstable.2", - "@transmute/jose-ld": "^0.7.0-unstable.40", - "@transmute/security-context": "^0.7.0-unstable.40", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", "jsonld": "^5.2.0" }, "engines": { @@ -2968,9 +3595,9 @@ } }, "node_modules/@transmute/jose-ld": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.57.tgz", - "integrity": "sha512-bTf7L/XPxOJuMWFrOphacfYCPxEJvfoDH/+BWTjml3ZiwxsvaCyQIsxTorS0UFXEBzP0iVuxiglrHu41GhMtbQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.60.tgz", + "integrity": "sha512-OAEJFVnB411VGRR5Jqgm/VRzNSCkuf66MQI4HvJsiYLlpooKhTSGuILWvnqtaT72Y9of7LNJNHlE5h/oVuqVIQ==", "dependencies": { "@peculiar/webcrypto": "^1.1.6", "@stablelib/aes-kw": "^1.0.0", @@ -2984,16 +3611,16 @@ } }, "node_modules/@transmute/json-web-signature": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.40.tgz", - "integrity": "sha512-89aepZ6bpNuSBDEPcIL8YLmDckDOmKfhGqrx8I/5VhYONqx35zD2JBJMbthrDzjdKEmdi0ws8xw3LGN39/w2gg==", - "dependencies": { - "@transmute/bls12381-key-pair": "^0.7.0-unstable.40", - "@transmute/ed25519-key-pair": "^0.7.0-unstable.40", - "@transmute/jose-ld": "^0.7.0-unstable.40", - "@transmute/secp256k1-key-pair": "^0.7.0-unstable.40", - "@transmute/security-context": "^0.7.0-unstable.40", - "@transmute/web-crypto-key-pair": "^0.7.0-unstable.40", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.60.tgz", + "integrity": "sha512-vS9xIUZ1zihGp+ExXuRF0W6qr1TnkNFxAvss8jDExF1k+hgYvAzxhhH3uOkuIGmXPFj48A/69mXgcasULoncJQ==", + "dependencies": { + "@transmute/bls12381-key-pair": "^0.7.0-unstable.60", + "@transmute/ed25519-key-pair": "^0.7.0-unstable.60", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/secp256k1-key-pair": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/web-crypto-key-pair": "^0.7.0-unstable.60", "jsonld": "^5.2.0" }, "engines": { @@ -3001,22 +3628,22 @@ } }, "node_modules/@transmute/json-web-signature/node_modules/@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-ua1oVxfLD5kVUjxEsPnRW4y+teTBRhf19SJsyKPTSJuD8sfyCrSImuBVqVXhrUdm9ZECBX1Ec1r4rJLTNQdXzA==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-ZL123tGO5m2CIxuQuXv81XauYzlCxQVX5ulGVSlh4Yt74MZjzUILFnBMR19SZOlfRfSjgV4oJOwhQNWYXidBuw==", "dependencies": { "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", - "@transmute/x25519-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "@transmute/x25519-key-pair": "^0.7.0-unstable.60" }, "engines": { "node": ">=10" } }, "node_modules/@transmute/jsonld-schema": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.40.tgz", - "integrity": "sha512-11TKoOVyc30OO4N+d2NNoUf2CthRzYAAs2SO1HUb2RQXT+PtTJ0nC8DyyoahgOBZC0HO1y1eOPmWj2x+o6AhWQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.60.tgz", + "integrity": "sha512-zKVU5uJ5s4rNhZDWawr0qejVlBV3IvZuKiYbr/wr44To0ZVtZraM0n0x0YhsBOcRnbDIODHZ+i/XcFu6Mwj6Fw==", "dependencies": { "ajv": "^8.6.1", "genson-js": "0.0.5", @@ -3027,14 +3654,14 @@ } }, "node_modules/@transmute/ld-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-7ldGhsBjvHp4biPkHH7WD2dz/+nfvMOXUbskuVr1cD7NVQRpr6QZdzxuOB4DWyn/vshq+x+cRpfx9wqSyP+Bmw==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-GKYzOiSH++c9pFsZeZfIcc2IfYvxgHUGI3lymtaPDwSlFV/1XKsOHxXobwgf5SWv30GfI+sBDmBoeaQ92sKj+g==" }, "node_modules/@transmute/linked-data-proof": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.57.tgz", - "integrity": "sha512-5fCowqKLPsG6wCxPZKoRiNHwu0pnpyX80j0WekMqwb6mqK2zs15mRhymUjKF2lF1tqb4J3iyp3XHb8nLQ208tQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.60.tgz", + "integrity": "sha512-GtyGLItYN2NUPb7IAKOj+7bVhc+LR6MRuW/SXHrvnyG24IZasAjXIPzU1g/eoMTjM4X/4N/1HGooHBeALU/eCQ==", "dependencies": { "@transmute/did-key-ed25519": "^0.3.0-unstable.5", "serialize-error": "^7.0.1" @@ -3044,12 +3671,12 @@ } }, "node_modules/@transmute/secp256k1-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-EbSwyZdTqnkqDIcJfLvZq8Xic7jEl85/RgOVr3RwZGZUSd3AVZFueUCFKl7fFycv7f15+z53bmvLnGjGL6UBSQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-gH0+JXlg6OKT4nS6GUtJ9bgwYvfGEFDDMS+xDXgmh5nfgHhdjRjoLb2ckp5qmt6GzJ5gbIQAxVcFkZgSWegjhQ==", "dependencies": { "@bitauth/libauth": "^1.18.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", "secp256k1": "^4.0.2" }, "engines": { @@ -3057,18 +3684,19 @@ } }, "node_modules/@transmute/security-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-d76f1U9UfzGh018LpoivGLWiVtcRH1dwQ9lu3yj9A41iKjVrGypFAx8fWQ6S9N7+xfmbAI20rnhz7GzbX8cPhw==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-zkCp5k9i+KLnqCa8cx3gIYGv490iKGysjyMbK8maHlo4GejGHXR1ZZgoWYHnuEHcVpzs1m2oferjJ1TCIdrwdA==" }, "node_modules/@transmute/vc.js": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.40.tgz", - "integrity": "sha512-wvj4BLHbrinc+dmk0XdEEO2i/qxLjsF+hF7nxav5KYPP0IrC8Rn5WldpEUdAv6IsBb//Np3yhIEIiPsYCvXctw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.60.tgz", + "integrity": "sha512-r6xHSerlkE59hvQdlF/d/kl4AIApI5/55d3vvbMilEqSkBvgHIk29NxNz6Q7IjXoZegWBOyviKeOzQ3bJWGARQ==", "dependencies": { - "@transmute/json-web-signature": "^0.7.0-unstable.40", - "@transmute/jsonld-schema": "^0.7.0-unstable.40", - "@transmute/linked-data-proof": "^0.7.0-unstable.40", + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/linked-data-proof": "^0.7.0-unstable.60", "jsonld": "^5.2.0", "moment": "^2.29.1" }, @@ -3077,12 +3705,12 @@ } }, "node_modules/@transmute/web-crypto-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-LohLg2irBEgv+dgxwxJTNCR8P5LIqxOs2Z0scnKgGmnxMqPkKjUsALXY2q9vjfzgZY5dtiXWsXCeOHrrbGDrmQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-8Y4UGycX8ri9JLO65YIrLLohE4/cphcm4/ERX45hrPCgzBzHO/axLn7b5IQPI5iI9Brt7HtJZ2Wg4wmU2aJl/Q==", "dependencies": { "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", "big-integer": "^1.6.48" }, "engines": { @@ -3090,22 +3718,17 @@ } }, "node_modules/@transmute/x25519-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-kaFg96bNrGGzlUc1Kc8mttCwZDif9OdoQ5tZyvyCreaDWDbcMLJrjSf1aFlaHlE13JDuAG3nlMk/zo8QKH+MJw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-dKUnr4QxE0T7w+IeHTr244hbJBkCO07wibbxhsqINi1CuAhIgTyFnoaUZlJidc6q1dA/2VR9eL3B8OcdEm6Teg==", "dependencies": { "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60" }, "engines": { "node": ">=10" } }, - "node_modules/@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -3144,9 +3767,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -3198,9 +3821,9 @@ } }, "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { "version": "1.3.2", @@ -3209,9 +3832,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==" }, "node_modules/@types/qs": { "version": "6.9.7", @@ -3235,11 +3858,6 @@ "@types/node": "*" } }, - "node_modules/@types/web": { - "version": "0.0.55", - "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.55.tgz", - "integrity": "sha512-YMH9aZrSJIMRMioCUwrgauI3iS/w2wRFN45Xxm0FE9Tt3hqaqkvOzjDFGsNjyKZzz7GJC0ilb+0tv59ytSUbrQ==" - }, "node_modules/@types/webidl-conversions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", @@ -3280,6 +3898,32 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@urql/core": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "peer": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "peer": true, + "dependencies": { + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", @@ -3339,6 +3983,19 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -3436,7 +4093,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true, "engines": { "node": ">=4" } @@ -3466,7 +4122,7 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.2", @@ -3489,6 +4145,12 @@ "node": ">= 6.0.0" } }, + "node_modules/application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q==", + "peer": true + }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -3505,10 +4167,19 @@ "readable-stream": "^2.0.6" } }, + "node_modules/arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "peer": true + }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/array-back": { "version": "2.0.0", @@ -3525,12 +4196,21 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "peer": true, + "engines": { + "node": ">=8" + } }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "peer": true }, "node_modules/asn1": { @@ -3542,20 +4222,22 @@ } }, "node_modules/asn1js": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.3.2.tgz", - "integrity": "sha512-IYzujqcOk7fHaePpTyvD3KPAA0AjT3qZlaQAw76zmPPAV/XTjhO+tbHjbFbIQZIhw+fk9wCSfb0Z6K+JHe8Q2g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", "dependencies": { - "pvutils": "latest" + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" } }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "engines": { "node": ">=0.8" } @@ -3581,7 +4263,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -3606,7 +4288,7 @@ "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "engines": { "node": "*" } @@ -3663,15 +4345,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", @@ -3704,9 +4377,9 @@ "peer": true }, "node_modules/babel-preset-expo": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.0.2.tgz", - "integrity": "sha512-NKVichCkbmb+ZIJ4hvuxzX3PnvHUKT42NxYIYTsKAfHPUKuaSAawtpsmMThph6pUc0GUYcLvCRql8ZX5A1zYNw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.1.0.tgz", + "integrity": "sha512-dFcgT7AY5n15bLnfOM6R25f8Lh7YSALj4zeGze6aspYHfVrREYcovVG0eMGpY9V24fnwByNRv85lElc1jAj1Mw==", "peer": true, "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", @@ -3714,7 +4387,7 @@ "@babel/preset-env": "^7.12.9", "babel-plugin-module-resolver": "^4.1.0", "babel-plugin-react-native-web": "~0.17.1", - "metro-react-native-babel-preset": "~0.64.0" + "metro-react-native-babel-preset": "~0.67.0" } }, "node_modules/balanced-match": { @@ -3760,7 +4433,7 @@ "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -3768,7 +4441,19 @@ "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "peer": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } }, "node_modules/big-integer": { "version": "1.6.51", @@ -3807,20 +4492,21 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "peer": true, "dependencies": { - "bytes": "3.1.2", + "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "1.8.1", + "http-errors": "1.7.2", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "engines": { "node": ">= 0.8" @@ -3830,6 +4516,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -3837,7 +4524,8 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true }, "node_modules/boxen": { "version": "5.1.2", @@ -3906,9 +4594,9 @@ } }, "node_modules/bplist-parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.0.tgz", - "integrity": "sha512-zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", "peer": true, "dependencies": { "big-integer": "1.6.x" @@ -3940,7 +4628,7 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "node_modules/browser-stdout": { "version": "1.3.1", @@ -3949,9 +4637,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", "funding": [ { "type": "opencollective", @@ -3964,10 +4652,10 @@ ], "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" }, "bin": { @@ -3980,15 +4668,15 @@ "node_modules/bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dependencies": { "base-x": "^3.0.2" } }, "node_modules/bson": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz", - "integrity": "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", "dependencies": { "buffer": "^5.6.0" }, @@ -4038,7 +4726,7 @@ "node_modules/buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", "peer": true }, "node_modules/buffer-from": { @@ -4049,7 +4737,7 @@ "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4058,17 +4746,73 @@ "node_modules/builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" }, "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "peer": true, "engines": { "node": ">= 0.8" } }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "peer": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -4145,9 +4889,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "version": "1.0.30001352", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz", + "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==", "funding": [ { "type": "opencollective", @@ -4168,7 +4912,7 @@ "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/chai": { "version": "4.3.4", @@ -4214,14 +4958,13 @@ "node_modules/chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", "optional": true }, "node_modules/charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true, + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "engines": { "node": "*" } @@ -4229,7 +4972,7 @@ "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, "engines": { "node": "*" @@ -4263,16 +5006,28 @@ } }, "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "peer": true, + "engines": { + "node": ">=10" + } }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "peer": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true, + "engines": { + "node": ">=6" + } }, "node_modules/cli-boxes": { "version": "2.2.1", @@ -4289,8 +5044,7 @@ "node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -4318,6 +5072,18 @@ "npm": ">=5.0.0" } }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -4355,6 +5121,15 @@ "node": ">=8" } }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4371,7 +5146,7 @@ "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "dev": true, "dependencies": { "mimic-response": "^1.0.0" @@ -4380,7 +5155,7 @@ "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "optional": true, "engines": { "node": ">=0.10.0" @@ -4413,6 +5188,12 @@ "node": ">= 0.8" } }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, "node_modules/command-line-args": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", @@ -4463,10 +5244,6 @@ "node": ">= 10" } }, - "node_modules/common": { - "resolved": "../common", - "link": true - }, "node_modules/compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", @@ -4474,9 +5251,9 @@ "peer": true }, "node_modules/complex.js": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.15.tgz", - "integrity": "sha512-gDBvQU8IG139ZBQTSo2qvDFP+lANMGluM779csXOr6ny1NUtA3wkUnCFjlDNH/moAVfXtvClYt6G0zarFbtz5w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", + "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==", "engines": { "node": "*" }, @@ -4485,10 +5262,16 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/component-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", + "integrity": "sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==", + "peer": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/configstore": { "version": "5.0.1", @@ -4519,10 +5302,40 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "optional": true }, "node_modules/content-disposition": { @@ -4560,9 +5373,9 @@ "peer": true }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -4570,22 +5383,15 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "peer": true + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz", + "integrity": "sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A==", "peer": true, "dependencies": { - "browserslist": "^4.19.1", + "browserslist": "^4.20.4", "semver": "7.0.0" }, "funding": { @@ -4627,6 +5433,15 @@ "luxon": "^1.23.x" } }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "peer": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -4655,8 +5470,7 @@ "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true, + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "engines": { "node": "*" } @@ -4670,15 +5484,20 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", + "peer": true + }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dependencies": { "assert-plus": "^1.0.0" }, @@ -4730,7 +5549,7 @@ "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, "dependencies": { "mimic-response": "^1.0.0" @@ -4780,7 +5599,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "devOptional": true, "engines": { "node": ">=4.0.0" } @@ -4791,27 +5609,108 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "peer": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "peer": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "peer": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } @@ -4819,7 +5718,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "optional": true }, "node_modules/denque": { @@ -4833,20 +5732,25 @@ "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "peer": true, "engines": { "node": ">= 0.6" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" @@ -4861,7 +5765,19 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/doctrine": { @@ -4889,9 +5805,9 @@ } }, "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "engines": { "node": ">=12" } @@ -4899,13 +5815,13 @@ "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==", "dev": true }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -4914,12 +5830,12 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.92", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.92.tgz", - "integrity": "sha512-YAVbvQIcDE/IJ/vzDMjD484/hsRbFPW2qXJPaYTfOhtligmfYEYOep+5QojpaEU9kq6bMvNeC2aG7arYvTHYsA==", + "version": "1.4.154", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.154.tgz", + "integrity": "sha512-GbV9djOkrnj6xmW+YYVVEI3VCQnJ0pnSTu7TW2JyjKd5cakoiSaG5R4RbEtfaD92GsY10DzbU3GYRe+IOA9kqA==", "peer": true }, "node_modules/elliptic": { @@ -4944,37 +5860,15 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -4991,31 +5885,49 @@ "node": ">=8.6" } }, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "peer": true + }, "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5078,7 +5990,7 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/escape-latex": { "version": "1.2.0", @@ -5225,15 +6137,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/eslint/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5249,9 +6152,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5263,19 +6166,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5291,6 +6181,21 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5374,7 +6279,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5445,7 +6349,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } @@ -5458,28 +6362,54 @@ "node": ">=6" } }, + "node_modules/exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "peer": true + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/expo": { - "version": "44.0.6", - "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.6.tgz", - "integrity": "sha512-iHnra6uD5kXZgdSUrvxZ3sLjg1FtgtA4p4uaSKVQ39IaMHJBngo8RKqFUJ+BF2kPDpBLJ251eLlhgYUlnAyuag==", + "version": "45.0.5", + "resolved": "https://registry.npmjs.org/expo/-/expo-45.0.5.tgz", + "integrity": "sha512-ND+Fo/iLZK1ubMvPFzraIQBvtGL7a4ZHGIP8N1PjcOtTGrCc6X7IWyLkfPMAck2yhd80ZTbos8vTU3SAUuBcJw==", "peer": true, "dependencies": { "@babel/runtime": "^7.14.0", - "@expo/metro-config": "~0.2.6", - "@expo/vector-icons": "^12.0.4", - "babel-preset-expo": "~9.0.2", + "@expo/cli": "0.1.5", + "@expo/vector-icons": "^13.0.0", + "babel-preset-expo": "~9.1.0", "cross-spawn": "^6.0.5", - "expo-application": "~4.0.2", - "expo-asset": "~8.4.6", - "expo-constants": "~13.0.2", - "expo-file-system": "~13.1.3", - "expo-font": "~10.0.5", - "expo-keep-awake": "~10.0.2", - "expo-modules-autolinking": "0.5.5", - "expo-modules-core": "0.6.5", - "fbemitter": "^2.1.1", + "expo-application": "~4.1.0", + "expo-asset": "~8.5.0", + "expo-constants": "~13.1.1", + "expo-file-system": "~14.0.0", + "expo-font": "~10.1.0", + "expo-keep-awake": "~10.1.1", + "expo-modules-autolinking": "0.8.1", + "expo-modules-core": "0.9.2", + "fbemitter": "^3.0.0", + "getenv": "^1.0.0", "invariant": "^2.2.4", "md5-file": "^3.2.3", + "node-fetch": "^2.6.7", "pretty-format": "^26.5.2", "uuid": "^3.4.0" }, @@ -5487,38 +6417,38 @@ "expo": "bin/cli.js" }, "optionalDependencies": { - "expo-error-recovery": "~3.0.5" + "expo-error-recovery": "~3.1.0" } }, "node_modules/expo-application": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.2.tgz", - "integrity": "sha512-ngTaFplTkWn0X45gMC+VNXGyJfGxX4wOwKmtr17rNMVWOQUhhLlyMkTj9bAamzsuwZh35l3S/eD/N1aMWWUwMw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.1.0.tgz", + "integrity": "sha512-Z2kctgVMpYZB1Iwaxd+XcMBq7h8EEY50GGrwxXsb1OHHQKN+WEVGBWxjvtPkAroqCdujLaB5HBay46gvUHRDQg==", "peer": true, "peerDependencies": { "expo": "*" } }, "node_modules/expo-asset": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.4.6.tgz", - "integrity": "sha512-Kpzcmmf1lceHnZkAdJOvq7l7SU/hCL59vAj2xUZS66U6lFkUf7LNEA/NzILA56loCd4cka5ShYlWs+BMchyFDQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.5.0.tgz", + "integrity": "sha512-k3QErZYxb6e6rPkJ1sG5yIJ7bhd4RFvnFStz0ZCO6SfktGygBAjTz5aTOLaaomiCIObRiBQ4byky/RLdli/NLw==", "peer": true, "dependencies": { "blueimp-md5": "^2.10.0", "invariant": "^2.2.4", "md5-file": "^3.2.3", "path-browserify": "^1.0.0", - "url-parse": "^1.4.4" + "url-parse": "^1.5.9" } }, "node_modules/expo-constants": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.2.tgz", - "integrity": "sha512-vGs/kI65vplPFvG8z4W1ariGEtVHHp9Avl28G0zJprt2v/q1E/BnXjwvFSBPc1GB+Zb/7crWSHWRwjaFULBjsg==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.1.1.tgz", + "integrity": "sha512-QRVHrrMCLenBzWZ8M+EvCXM+jjdQzFMW27YQHRac3SGGoND1hWr81scOmGwlFo2wLZrYXm8HcYt1E6ry3IIwrA==", "peer": true, "dependencies": { - "@expo/config": "^6.0.6", + "@expo/config": "^6.0.14", "uuid": "^3.3.2" }, "peerDependencies": { @@ -5526,17 +6456,18 @@ } }, "node_modules/expo-crypto": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.1.2.tgz", - "integrity": "sha512-TYaBtV9oK5OH+EfsAUHQkWkRPifZjCMDn6Yf9gk3/LyHdJHDYnB6NQWTJo9Qkl6vzI9svQ6PMnQTm2Yxrb3ZfQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.2.0.tgz", + "integrity": "sha512-YVFp+DJXBtt4t6oZXepnzb+xwpKzFbXn3B9Oma1Tfh6J0rIlm/I20UW/5apdvEdbj44fxJ5DsiZeyADI3bcZkQ==", + "peer": true, "peerDependencies": { "expo": "*" } }, "node_modules/expo-error-recovery": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.5.tgz", - "integrity": "sha512-VM6OOecjt0aPu5/eCdGGJfNjvAZIemaQym0JF/+SA5IlLiPpEfbVCDTO/5yiS8Zb5fKpeABx+GCRmtfnFqvRRw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.1.0.tgz", + "integrity": "sha512-qUxCW7kPB6AVX5h3ZPVnxw4LLZWsRwAPBtRDlh1UDN7GWZ+CQN1SNk0w0BPotjNtSlXEZSFDqKqtoDDAUYjNmg==", "optional": true, "peer": true, "peerDependencies": { @@ -5544,12 +6475,12 @@ } }, "node_modules/expo-file-system": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.4.tgz", - "integrity": "sha512-/C2FKCzrdWuEt4m8Pzl9J4MhKgfU0denVLbqoKjidv8DnsLQrscFNlLhXuiooqWwsxB2OWAtGEVnPGJBWVuNEQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.0.0.tgz", + "integrity": "sha512-Asva7ehLUq/PIem6Y+/OQvoIqhFqYDd7l4l49yDRDgLSbK2I7Fr8qGhDeDpnUXrMVamg2uwt9zRGhyrjFNRhVw==", "peer": true, "dependencies": { - "@expo/config-plugins": "^4.0.2", + "@expo/config-plugins": "^4.0.14", "uuid": "^3.4.0" }, "peerDependencies": { @@ -5557,9 +6488,9 @@ } }, "node_modules/expo-font": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.5.tgz", - "integrity": "sha512-x9YwM0xLkDdSvFjeNbyuh33Q1Hk3uc2jbMuuAN5W2ZVcUZqG0M8GCX/KV/D/7rYqdXKbliQA5r44MyDwZe/XRw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.1.0.tgz", + "integrity": "sha512-vmhzpE95Ym4iOj8IELof+C/3Weert2B3LyxV5rBjGosjzBdov+o+S6b5mN7Yc9kyEGykwB6k7npL45X3hFYDQA==", "peer": true, "dependencies": { "fontfaceobserver": "^2.1.0" @@ -5569,18 +6500,18 @@ } }, "node_modules/expo-keep-awake": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.2.tgz", - "integrity": "sha512-Ro1lgyKldbFs4mxhWM+goX9sg0S2SRR8FiJJeOvaRzf8xNhrZfWA00Zpr+/3ocCoWQ3eEL+X9UF4PXXHf0KoOg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.1.1.tgz", + "integrity": "sha512-9zC0sdhQljUeMr2yQ7o4kzEZXVAy82fFOAZE1+TwPL7qR0b0sphe7OJ5T1GX1qLcwuVaJ8YewaPoLSHRk79+Rg==", "peer": true, "peerDependencies": { "expo": "*" } }, "node_modules/expo-modules-autolinking": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.5.5.tgz", - "integrity": "sha512-bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.8.1.tgz", + "integrity": "sha512-S8qfaXCv//7tQWV9M+JKx3CF7ypYhDdSUbkUQdaVO/r8D76/aRTArY/aRw1yEfaAOzyK8C8diDToV1itl51DfQ==", "peer": true, "dependencies": { "chalk": "^4.1.0", @@ -5609,9 +6540,9 @@ } }, "node_modules/expo-modules-core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.5.tgz", - "integrity": "sha512-h/9+SJ3m8XkDUV1QrPO8WeXaeRYWLBJrOqhokDyhgWUYSqe6JOuRx1ZkoGq/GmTiwjouRDbXPsXUBiU9HWLYyA==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.9.2.tgz", + "integrity": "sha512-p/C0GJxFIIDGwmrWi70Q0ggfsgeUFS25ZkkBgoaHT7MVgiMjlKA/DCC3D6ZUkHl/JlzUm0aTftIGS8LWXsnZBw==", "peer": true, "dependencies": { "compare-versions": "^3.4.0", @@ -5619,9 +6550,10 @@ } }, "node_modules/expo-random": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.2.tgz", - "integrity": "sha512-ajB+Mwff9PdglsyLliaU4K9BtVwKvAVVI2hQhnvlS3QgsAhHf+jQVUfAysQJHuioF6ADMEsab/kRUy4Dy03aoQ==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.2.0.tgz", + "integrity": "sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g==", + "peer": true, "dependencies": { "base64-js": "^1.3.0" }, @@ -5630,37 +6562,38 @@ } }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -5669,6 +6602,37 @@ "node": ">= 0.10.0" } }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5677,10 +6641,97 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } }, "node_modules/extend": { "version": "3.0.2", @@ -5704,7 +6755,7 @@ "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "engines": [ "node >=0.6.0" ] @@ -5750,7 +6801,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { @@ -5763,22 +6814,22 @@ } }, "node_modules/fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", "peer": true, "dependencies": { - "fbjs": "^0.8.4" + "fbjs": "^3.0.0" } }, "node_modules/fbjs": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", - "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", "peer": true, "dependencies": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", @@ -5786,6 +6837,12 @@ "ua-parser-js": "^0.7.30" } }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "peer": true + }, "node_modules/fetch-blob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", @@ -5799,10 +6856,16 @@ } } }, + "node_modules/fetch-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", + "peer": true + }, "node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "optional": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -5814,7 +6877,7 @@ "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true, "engines": { "node": ">=0.8.0" @@ -5847,6 +6910,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -5864,6 +6928,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -5871,7 +6936,17 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } }, "node_modules/find-babel-config": { "version": "1.2.0", @@ -5889,7 +6964,7 @@ "node_modules/find-babel-config/node_modules/json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", "peer": true, "bin": { "json5": "lib/cli.js" @@ -5898,7 +6973,7 @@ "node_modules/find-replace": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", + "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", "optional": true, "dependencies": { "array-back": "^1.0.4", @@ -5911,7 +6986,7 @@ "node_modules/find-replace/node_modules/array-back": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "optional": true, "dependencies": { "typical": "^2.6.0" @@ -5943,6 +7018,15 @@ "node": ">=8" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "peer": true, + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -5987,9 +7071,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", "funding": [ { "type": "individual", @@ -6006,35 +7090,39 @@ } }, "node_modules/fontfaceobserver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", - "integrity": "sha512-ReOsO2F66jUa0jmv2nlM/s1MiutJx/srhAe2+TE8dJCMi02ZZOcCTxTCQFr3Yet+uODUtnr4Mewg+tNQ+4V1Ng==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", "peer": true }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "engines": { "node": "*" } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "peer": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -6057,18 +7145,27 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6079,18 +7176,21 @@ } }, "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "peer": true, "dependencies": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -6111,16 +7211,41 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "optional": true, "dependencies": { "aproba": "^1.0.3", @@ -6136,7 +7261,7 @@ "node_modules/gauge/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "optional": true, "engines": { "node": ">=0.10.0" @@ -6145,7 +7270,7 @@ "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "optional": true, "dependencies": { "number-is-nan": "^1.0.0" @@ -6157,7 +7282,7 @@ "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "optional": true, "dependencies": { "code-point-at": "^1.0.0", @@ -6171,7 +7296,7 @@ "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "optional": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -6205,30 +7330,38 @@ "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -6263,7 +7396,7 @@ "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dependencies": { "assert-plus": "^1.0.0" } @@ -6271,7 +7404,7 @@ "node_modules/git-config": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", + "integrity": "sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA==", "optional": true, "dependencies": { "iniparser": "~1.0.5" @@ -6337,7 +7470,36 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "peer": true, "engines": { - "node": ">=4" + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "peer": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "peer": true, + "engines": { + "node": ">= 4" } }, "node_modules/got": { @@ -6363,9 +7525,33 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } }, "node_modules/growl": { "version": "1.10.5", @@ -6397,19 +7583,10 @@ "uglify-js": "^3.1.4" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "engines": { "node": ">=4" } @@ -6459,9 +7636,9 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6474,6 +7651,17 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -6502,7 +7690,7 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "optional": true }, "node_modules/has-yarn": { @@ -6543,13 +7731,25 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -6557,24 +7757,46 @@ "dev": true }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "peer": true, "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "toidentifier": "1.0.0" }, "engines": { "node": ">= 0.6" } }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "peer": true + }, + "node_modules/http-errors/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "peer": true + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6627,7 +7849,7 @@ "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, "node_modules/ignore-walk": { @@ -6642,7 +7864,7 @@ "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -6672,7 +7894,7 @@ "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", "dev": true, "engines": { "node": ">=4" @@ -6681,15 +7903,30 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "peer": true + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6703,13 +7940,12 @@ "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/iniparser": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", + "integrity": "sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw==", "optional": true, "engines": { "node": "*" @@ -6738,9 +7974,9 @@ } }, "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "optional": true, "engines": { "node": ">=4" @@ -6784,13 +8020,13 @@ "node_modules/inquirer/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "optional": true }, "node_modules/inquirer/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true, "engines": { "node": ">=0.8.0" @@ -6799,7 +8035,7 @@ "node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "optional": true, "engines": { "node": ">=4" @@ -6808,7 +8044,7 @@ "node_modules/inquirer/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "optional": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -6829,9 +8065,18 @@ "node": ">=4" } }, - "node_modules/interfaces": { - "resolved": "../interfaces", - "link": true + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "peer": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } }, "node_modules/internal-slot": { "version": "1.0.3", @@ -6855,10 +8100,14 @@ "loose-envify": "^1.0.0" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "peer": true, + "engines": { + "node": ">=4" + } }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -6924,8 +8173,7 @@ "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-callable": { "version": "1.2.4", @@ -6950,10 +8198,16 @@ "is-ci": "bin.js" } }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dependencies": { "has": "^1.0.3" }, @@ -6975,10 +8229,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { "node": ">=0.10.0" } @@ -6986,7 +8255,7 @@ "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "optional": true, "engines": { "node": ">=4" @@ -7019,6 +8288,39 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "peer": true, + "dependencies": { + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "peer": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -7059,9 +8361,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7081,11 +8383,19 @@ "node": ">=8" } }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -7125,6 +8435,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -7134,9 +8453,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7144,7 +8466,7 @@ "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "peer": true, "engines": { "node": ">=0.10.0" @@ -7179,14 +8501,14 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0" }, "engines": { @@ -7199,7 +8521,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-unicode-supported": { "version": "0.1.0", @@ -7213,6 +8535,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "peer": true, + "dependencies": { + "is-invalid-path": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -7244,6 +8578,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", @@ -7258,40 +8604,42 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "peer": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "node_modules/javascript-natural-sort": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "node_modules/jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "peer": true + }, + "node_modules/join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", + "peer": true }, "node_modules/jose": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.3.8.tgz", - "integrity": "sha512-dFiqN5FPLNWa/v+J3ShFjV/9sRGickxMbGUbqBrYr+BkrqLOieACaavSi9XmLJXe0Uzd7Cgs1oYtDvDrOyWLgw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.1.tgz", + "integrity": "sha512-+/hpTbRcCw9YC0TOfN1W47pej4a9lRmltdOVdRLz5FP5UvUq3CenhXjQK7u/8NdMIIShMXYAh9VLPhc7TjhvFw==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -7312,11 +8660,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7325,7 +8674,7 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -7342,7 +8691,7 @@ "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, "node_modules/json-schema": { @@ -7350,6 +8699,36 @@ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, + "node_modules/json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "peer": true, + "dependencies": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/json-schema-deref-sync/node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "peer": true, + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -7358,13 +8737,13 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "1.0.1", @@ -7440,25 +8819,6 @@ "yallist": "^3.0.2" } }, - "node_modules/jsonld-checker/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/jsonld-checker/node_modules/rdf-canonize": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", @@ -7471,33 +8831,6 @@ "node": ">=6" } }, - "node_modules/jsonld-checker/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/jsonld-checker/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/jsonld-checker/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/jsonld-checker/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/jsonld-checker/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -7518,14 +8851,14 @@ } }, "node_modules/jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" } }, "node_modules/keyv": { @@ -7545,6 +8878,15 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ky": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", @@ -7652,42 +8994,17 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "optional": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "peer": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "peer": true - }, - "node_modules/lodash.frompairs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz", - "integrity": "sha1-vE5SB/onV8E25XNhTpZkUGsrG9I=", - "peer": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "peer": true + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "peer": true }, "node_modules/lodash.merge": { @@ -7696,47 +9013,16 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "peer": true - }, "node_modules/lodash.padend": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", "optional": true }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "peer": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "peer": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "peer": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "node_modules/log-symbols": { @@ -7755,10 +9041,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/logger-helper": { - "resolved": "../logger-helper", - "link": true - }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -7819,22 +9101,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/mathjs": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.4.1.tgz", - "integrity": "sha512-l/ONB3f2N9MMy/Gx3YPdKXjmV0LKN1Ew2fqcz3tzKlAIcPCFuLlup5KHm9cmKTKMHn7MVJZWegqCQhCDEpYyNQ==", + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", + "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", "dependencies": { - "@babel/runtime": "^7.17.8", - "complex.js": "^2.0.15", + "@babel/runtime": "^7.18.3", + "complex.js": "^2.1.1", "decimal.js": "^10.3.1", "escape-latex": "^1.2.0", "fraction.js": "^4.2.0", @@ -7847,14 +9120,13 @@ "mathjs": "bin/cli.js" }, "engines": { - "node": ">= 12" + "node": ">= 14" } }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -7876,14 +9148,26 @@ "node": ">=0.10" } }, + "node_modules/md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", + "peer": true + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } }, + "node_modules/memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", + "peer": true + }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -7893,7 +9177,7 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -7907,18 +9191,18 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", - "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", + "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", "peer": true, "dependencies": { - "@babel/core": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -7931,6 +9215,7 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", @@ -7963,27 +9248,28 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "peer": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true, "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, "node_modules/mime-db": { @@ -8009,7 +9295,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true, "engines": { "node": ">=4" } @@ -8031,7 +9316,7 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { "version": "3.1.2", @@ -8050,35 +9335,70 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "peer": true, "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "peer": true, "dependencies": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, "dependencies": { "minimist": "^1.2.6" }, @@ -8157,7 +9477,13 @@ "node_modules/mocha-junit-reporter/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/mocha/node_modules/debug": { @@ -8215,6 +9541,18 @@ "node": "*" } }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/mocha/node_modules/minimatch": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", @@ -8269,22 +9607,21 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" }, "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "engines": { "node": "*" } }, "node_modules/mongodb": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz", - "integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.1.tgz", + "integrity": "sha512-nDC+ulM/Ea3Q2VG5eemuGfB7T4ORwrtKegH2XW9OLlUBgQF6OTNrzFCS1Z3SJGVA+T0Sr1xBYV6DMnp0A7us0g==", "dependencies": { - "bson": "^4.6.1", + "bson": "^4.6.0", "denque": "^2.0.1", - "mongodb-connection-string-url": "^2.5.2", - "socks": "^2.6.2" + "mongodb-connection-string-url": "^2.2.0" }, "engines": { "node": ">=12.9.0" @@ -8310,9 +9647,54 @@ "node_modules/mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "optional": true }, + "node_modules/mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", + "optional": true, + "peer": true, + "dependencies": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mv/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "optional": true, + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mv/node_modules/rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "optional": true, + "peer": true, + "dependencies": { + "glob": "^6.0.1" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -8335,12 +9717,33 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "dependencies": { + "nkeys.js": "^1.0.0-9" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "optional": true, + "peer": true, + "bin": { + "ncp": "bin/ncp" + } + }, "node_modules/needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", @@ -8449,13 +9852,13 @@ "node_modules/neon-cli/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "optional": true }, "node_modules/neon-cli/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true, "engines": { "node": ">=0.8.0" @@ -8464,7 +9867,7 @@ "node_modules/neon-cli/node_modules/has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", "optional": true, "engines": { "node": ">=0.10.0" @@ -8482,7 +9885,7 @@ "node_modules/neon-cli/node_modules/supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "integrity": "sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==", "optional": true, "dependencies": { "has-flag": "^2.0.0" @@ -8491,31 +9894,91 @@ "node": ">=4" } }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "peer": true + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "peer": true }, + "node_modules/nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "dependencies": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/nkeys.js/node_modules/@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "peer": true, + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "peer": true, + "engines": { + "node": ">= 6.13.0" } }, "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -8540,29 +10003,87 @@ "semver": "^5.3.0", "tar": "^4.4.2" }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/node-pre-gyp/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "optional": true + }, + "node_modules/node-pre-gyp/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/node-pre-gyp/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp/node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "optional": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" } }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } + "node_modules/node-pre-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true }, "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", "peer": true }, "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -8600,7 +10121,7 @@ "node_modules/nodemon/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -8673,6 +10194,27 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "optional": true }, + "node_modules/npm-package-arg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "peer": true, + "dependencies": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/npm-packlist": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", @@ -8684,6 +10226,18 @@ "npm-normalize-package-bin": "^1.0.1" } }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -8696,10 +10250,16 @@ "set-blocking": "~2.0.0" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "optional": true, "engines": { "node": ">=0.10.0" @@ -8716,15 +10276,15 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8788,7 +10348,8 @@ "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -8799,7 +10360,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -8807,8 +10368,7 @@ "node_modules/onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -8816,6 +10376,23 @@ "node": ">=4" } }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "peer": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -8833,11 +10410,131 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "peer": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "engines": { "node": ">=0.10.0" } @@ -8845,8 +10542,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true, + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "engines": { "node": ">=0.10.0" } @@ -8855,7 +10551,6 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -8870,6 +10565,15 @@ "node": ">=6" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -8898,6 +10602,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -8922,15 +10641,6 @@ "node": ">=8" } }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -8948,6 +10658,18 @@ "node": ">=6" } }, + "node_modules/parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "peer": true, + "dependencies": { + "pngjs": "^3.3.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -8974,6 +10696,16 @@ "node": ">= 0.8" } }, + "node_modules/password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "peer": true, + "dependencies": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -8983,7 +10715,7 @@ "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "peer": true, "engines": { "node": ">=4" @@ -8992,7 +10724,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -9000,7 +10732,7 @@ "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "peer": true, "engines": { "node": ">=4" @@ -9014,7 +10746,16 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true, + "engines": { + "node": ">=8" + } }, "node_modules/pathval": { "version": "1.1.1", @@ -9028,7 +10769,7 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -9136,12 +10877,21 @@ "node_modules/plist/node_modules/xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "peer": true, "engines": { "node": ">=4.0" } }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9154,12 +10904,24 @@ "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "dev": true, "engines": { "node": ">=4" } }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -9184,7 +10946,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -9198,10 +10959,29 @@ "asap": "~2.0.3" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "peer": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -9250,7 +11030,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -9277,11 +11056,11 @@ } }, "node_modules/pvtsutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.2.tgz", - "integrity": "sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.4.0" } }, "node_modules/pvutils": { @@ -9292,15 +11071,22 @@ "node": ">=6.0.0" } }, + "node_modules/qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "peer": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "peer": true, "engines": { "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/querystringify": { @@ -9332,7 +11118,7 @@ "node_modules/quickly-copy-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", + "integrity": "sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg==", "optional": true, "dependencies": { "mkdirp": "~0.5.0" @@ -9356,12 +11142,13 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "peer": true, "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", + "bytes": "3.1.0", + "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -9373,7 +11160,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "devOptional": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9387,8 +11173,7 @@ "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "devOptional": true, + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { "node": ">=0.10.0" } @@ -9436,7 +11221,7 @@ "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", @@ -9458,7 +11243,7 @@ "node_modules/reduce-flatten": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", "optional": true, "engines": { "node": ">=0.10.0" @@ -9493,21 +11278,22 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -9590,12 +11376,18 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "peer": true, "bin": { "jsesc": "bin/jsesc" } }, + "node_modules/remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", + "peer": true + }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -9624,7 +11416,20 @@ "uuid": "^3.3.2" }, "engines": { - "node": ">= 6" + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, "node_modules/request/node_modules/qs": { @@ -9638,7 +11443,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } @@ -9651,16 +11456,39 @@ "node": ">=0.10.0" } }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "peer": true, + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "peer": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "peer": true }, "node_modules/reselect": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", - "integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==", "peer": true }, "node_modules/resolve": { @@ -9691,7 +11519,7 @@ "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" @@ -9700,8 +11528,7 @@ "node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -9738,7 +11565,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -9790,13 +11616,13 @@ "node_modules/rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", "optional": true }, "node_modules/rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "optional": true, "dependencies": { "rx-lite": "*" @@ -9821,6 +11647,13 @@ } ] }, + "node_modules/safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true, + "peer": true + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -9863,14 +11696,11 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/semver-diff": { @@ -9885,33 +11715,24 @@ "node": ">=8" } }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -9928,13 +11749,66 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -9959,14 +11833,14 @@ } }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -9975,21 +11849,13 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -10022,7 +11888,7 @@ "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "peer": true, "dependencies": { "shebang-regex": "^1.0.0" @@ -10034,7 +11900,7 @@ "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "peer": true, "engines": { "node": ">=0.10.0" @@ -10059,16 +11925,34 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-plist": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.0.tgz", - "integrity": "sha512-uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", "peer": true, "dependencies": { "bplist-creator": "0.1.0", - "bplist-parser": "0.3.0", - "plist": "^3.0.4" + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + } + }, + "node_modules/simple-plist/node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "peer": true, + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -10113,33 +11997,10 @@ "node": ">=8.0.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true, + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { "node": ">=0.10.0" } @@ -10153,18 +12014,10 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "optional": true, "dependencies": { "memory-pager": "^1.0.2" @@ -10202,11 +12055,22 @@ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "optional": true }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "peer": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/sshpk": { "version": "1.17.0", @@ -10235,20 +12099,32 @@ "node_modules/sshpk/node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "peer": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/stream-buffers": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", "peer": true, "engines": { "node": ">= 0.10.0" @@ -10281,9 +12157,9 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "optional": true, "engines": { "node": ">=4" @@ -10292,7 +12168,7 @@ "node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "optional": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -10302,24 +12178,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10336,6 +12214,15 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -10348,10 +12235,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "peer": true + }, "node_modules/sucrase": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", - "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.21.0.tgz", + "integrity": "sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==", "peer": true, "dependencies": { "commander": "^4.0.0", @@ -10378,6 +12271,12 @@ "node": ">= 6" } }, + "node_modules/sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "peer": true + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10389,6 +12288,19 @@ "node": ">=8" } }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -10456,33 +12368,133 @@ } }, "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "peer": true, "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "peer": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true, + "engines": { + "node": ">=10" }, - "engines": { - "node": ">=4.5" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, "node_modules/test-value": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", "optional": true, "dependencies": { "array-back": "^1.0.3", @@ -10495,7 +12507,7 @@ "node_modules/test-value/node_modules/array-back": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "optional": true, "dependencies": { "typical": "^2.6.0" @@ -10507,8 +12519,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/thenify": { "version": "3.3.1", @@ -10521,7 +12532,7 @@ "node_modules/thenify-all": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -10532,8 +12543,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tiny-emitter": { "version": "2.1.0", @@ -10544,7 +12554,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -10555,7 +12564,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "peer": true, "engines": { "node": ">=4" @@ -10582,9 +12591,10 @@ } }, "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "peer": true, "engines": { "node": ">=0.6" } @@ -10610,7 +12620,7 @@ "node_modules/touch/node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "dependencies": { "abbrev": "1" @@ -10645,6 +12655,12 @@ "node": ">=12" } }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==", + "peer": true + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -10654,7 +12670,7 @@ "node_modules/ts-typed-json": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", + "integrity": "sha512-9VrASRmfrPbsuXvl9rdq82TzGs3Qg7D8eI5vF6LOLBhFh5sju5wbpE73DzxUtyQ954kfVO9yfF9NNgXAJ16cPw==", "optional": true, "dependencies": { "rsvp": "^3.5.0" @@ -10670,9 +12686,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tslint": { "version": "6.1.3", @@ -10717,15 +12733,6 @@ "node": ">=4" } }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/tslint/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -10752,7 +12759,7 @@ "node_modules/tslint/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/tslint/node_modules/commander": { @@ -10773,7 +12780,7 @@ "node_modules/tslint/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -10782,25 +12789,12 @@ "node_modules/tslint/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/tslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/tslint/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -10849,7 +12843,7 @@ "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -11017,6 +13011,11 @@ } } }, + "node_modules/typeorm/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/typeorm/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -11056,6 +13055,17 @@ "node": ">=8" } }, + "node_modules/typeorm/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/typeorm/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11089,9 +13099,9 @@ } }, "node_modules/typeorm/node_modules/yargs": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz", - "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -11114,9 +13124,9 @@ } }, "node_modules/typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -11129,7 +13139,7 @@ "node_modules/typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "optional": true }, "node_modules/ua-parser-js": { @@ -11152,9 +13162,9 @@ } }, "node_modules/uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", + "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -11164,13 +13174,13 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -11223,11 +13233,28 @@ "node": ">=4" } }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "peer": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -11246,7 +13273,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -11280,9 +13307,9 @@ } }, "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11302,6 +13329,12 @@ "punycode": "^2.1.0" } }, + "node_modules/url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==", + "peer": true + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -11315,7 +13348,7 @@ "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, "dependencies": { "prepend-http": "^2.0.0" @@ -11332,12 +13365,12 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } @@ -11357,6 +13390,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", + "peer": true + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -11370,8 +13409,7 @@ "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dependencies": { "builtins": "^1.0.3" } @@ -11379,7 +13417,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -11387,7 +13425,7 @@ "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "engines": [ "node >=0.6.0" ], @@ -11400,27 +13438,35 @@ "node_modules/verror/node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "dependencies": { + "defaults": "^1.0.3" + } }, "node_modules/web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "engines": { "node": ">= 8" } }, "node_modules/webcrypto-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.1.tgz", - "integrity": "sha512-Gw2zLzYSJ7Imp5lLDu3CcWB5oTTACMDEE2PjoLfttGgIhd7BfackBdVgEzd9ZM/i65gpNq0+IelL0JZ48QwzNg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/asn1-schema": "^2.1.6", "@peculiar/json-schema": "^1.1.12", - "@types/web": "^0.0.55", - "asn1js": "^2.2.0", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1" + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" } }, "node_modules/webidl-conversions": { @@ -11431,12 +13477,6 @@ "node": ">=12" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "peer": true - }, "node_modules/whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", @@ -11491,16 +13531,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "is-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -11553,6 +13593,12 @@ "node": ">=8" } }, + "node_modules/wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "peer": true + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -11565,7 +13611,7 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "optional": true }, "node_modules/wordwrapjs": { @@ -11627,7 +13673,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "2.4.3", @@ -11674,7 +13720,7 @@ "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true }, "node_modules/xml2js": { @@ -11709,7 +13755,7 @@ "node_modules/xmldom": { "version": "0.1.19", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", - "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=", + "integrity": "sha512-pDyxjQSFQgNHkU+yjvoF+GXVGJU7e9EnOg/KcGMDihBIKjTsOeDYaECwC/O9bsUWKY+Sd9izfE43JXC46EOHKA==", "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", "engines": { "node": ">=0.1" @@ -11813,16 +13859,26 @@ "@types/zen-observable": "0.8.3", "zen-observable": "0.8.15" } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } } }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "peer": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { @@ -11834,31 +13890,31 @@ } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", "peer": true }, "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", "peer": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "dependencies": { @@ -11876,24 +13932,31 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "peer": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true } } }, "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "peer": true, "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { @@ -11916,44 +13979,36 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", "peer": true, "requires": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -11974,24 +14029,13 @@ "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "peer": true }, "@babel/helper-explode-assignable-expression": { "version": "7.16.7", @@ -12003,23 +14047,13 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "peer": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -12050,9 +14084,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", "peer": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", @@ -12061,8 +14095,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" } }, "@babel/helper-optimise-call-expression": { @@ -12075,9 +14109,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "peer": true }, "@babel/helper-remap-async-to-generator": { @@ -12092,25 +14126,25 @@ } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "peer": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", "peer": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -12155,20 +14189,20 @@ } }, "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", "peer": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -12204,17 +14238,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "supports-color": { "version": "5.5.0", @@ -12227,73 +14261,74 @@ } }, "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", "peer": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", "charcodes": "^0.2.0" } }, @@ -12308,52 +14343,52 @@ } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", - "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.17.12.tgz", + "integrity": "sha512-LpsTRw725eBAXXKUOnJJct+SEaOzwR78zahcLuripD2+dKc2Sj+8Q2DzA+GC/jOpOu/KlDXuxrzG214o1zTauQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-default-from": "^7.16.7" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, @@ -12368,16 +14403,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "peer": true, "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -12391,46 +14426,46 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "peer": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-async-generators": { @@ -12461,12 +14496,12 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-dynamic-import": { @@ -12497,12 +14532,21 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-json-strings": { @@ -12515,12 +14559,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -12596,31 +14640,31 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "peer": true, "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" } }, @@ -12634,46 +14678,46 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-dotall-regex": { @@ -12687,12 +14731,12 @@ } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -12706,22 +14750,22 @@ } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-function-name": { @@ -12736,12 +14780,12 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-member-expression-literals": { @@ -12754,67 +14798,68 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "peer": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "peer": true, "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", "peer": true, "requires": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "peer": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "peer": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-object-assign": { @@ -12837,12 +14882,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-property-literals": { @@ -12864,25 +14909,25 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz", - "integrity": "sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz", + "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-react-jsx-source": { @@ -12895,43 +14940,36 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "peer": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", "peer": true, "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - } } }, "@babel/plugin-transform-shorthand-properties": { @@ -12944,12 +14982,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, @@ -12963,32 +15001,32 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "peer": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" } }, "@babel/plugin-transform-unicode-escapes": { @@ -13011,37 +15049,38 @@ } }, "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "peer": true, "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -13051,53 +15090,45 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - } + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" } }, "@babel/preset-modules": { @@ -13114,9 +15145,9 @@ } }, "@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -13144,19 +15175,19 @@ } }, "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "peer": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -13173,9 +15204,9 @@ } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "peer": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -13250,34 +15281,15 @@ "uri-js": "^4.2.2" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -13292,16 +15304,161 @@ } } }, + "@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "requires": { + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/logger": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", + "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" + }, + "@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "@expo/bunyan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", + "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==", + "peer": true, + "requires": { + "mv": "~2", + "safe-json-stringify": "~1", + "uuid": "^8.0.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + } + } + }, + "@expo/cli": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.1.5.tgz", + "integrity": "sha512-27LNT3b9MtBHEosmvJiC9Ug9aJpQAK9T3cC8ekaB9cHnVcJw+mJs2kdVBYpV1aBjKkH7T57aiWWimZp0O7m1wQ==", + "peer": true, + "requires": { + "@babel/runtime": "^7.14.0", + "@expo/code-signing-certificates": "^0.0.2", + "@expo/config": "~6.0.23", + "@expo/config-plugins": "~4.1.4", + "@expo/dev-server": "~0.1.110", + "@expo/devcert": "^1.0.0", + "@expo/json-file": "^8.2.35", + "@expo/metro-config": "~0.3.16", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "~0.0.52", + "@expo/plist": "^0.0.18", + "@expo/prebuild-config": "~4.0.0", + "@expo/rudder-sdk-node": "1.1.1", + "@expo/spawn-async": "1.5.0", + "@expo/xcpretty": "^4.1.1", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", + "accepts": "^1.3.8", + "arg": "4.1.0", + "better-opn": "~3.0.2", + "bplist-parser": "^0.3.1", + "cacache": "^15.3.0", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "env-editor": "^0.4.1", + "form-data": "^3.0.1", + "freeport-async": "2.0.0", + "fs-extra": "~8.1.0", + "getenv": "^1.0.0", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "internal-ip": "4.3.0", + "is-root": "^2.1.0", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", + "md5-file": "^3.2.3", + "md5hex": "^1.0.0", + "minipass": "3.1.6", + "node-fetch": "^2.6.7", + "node-forge": "^1.3.1", + "npm-package-arg": "^7.0.0", + "ora": "3.4.0", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "requireg": "^0.2.2", + "resolve-from": "^5.0.0", + "semver": "^6.3.0", + "slugify": "^1.3.4", + "structured-headers": "^0.4.1", + "tar": "^6.0.5", + "tempy": "^0.7.1", + "terminal-link": "^2.1.1", + "text-table": "^0.2.0", + "url-join": "4.0.0", + "uuid": "^3.4.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true + } + } + }, + "@expo/code-signing-certificates": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz", + "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==", + "peer": true, + "requires": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" + } + }, "@expo/config": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.6.tgz", - "integrity": "sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==", + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.24.tgz", + "integrity": "sha512-OcACI1md1Yo5TQmUxxueJ/RaTlR2Mgl6KswTFOYCL1XJERF/jjAx95zhWXH+JQGdlM0yB0vqM6vB6GbUFRvLxA==", "peer": true, "requires": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "4.0.6", - "@expo/config-types": "^43.0.1", - "@expo/json-file": "8.2.33", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", "getenv": "^1.0.0", "glob": "7.1.6", "require-from-string": "^2.0.2", @@ -13309,179 +15466,517 @@ "semver": "7.3.2", "slugify": "^1.3.4", "sucrase": "^3.20.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + } + } + }, + "@expo/config-plugins": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.5.tgz", + "integrity": "sha512-RVvU40RtZt12HavuDAe+LDIq9lHj7sheOfMEHdmpJ/uTA8pgvkbc56XF6JHQD+yRr6+uhhb+JnAasGq49dsQbw==", + "peer": true, + "requires": { + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@expo/config-types": { + "version": "45.0.0", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-45.0.0.tgz", + "integrity": "sha512-/QGhhLWyaGautgEyU50UJr5YqKJix5t77ePTwreOVAhmZH+ff3nrrtYTTnccx+qF08ZNQmfAyYMCD3rQfzpiJA==", + "peer": true + }, + "@expo/dev-server": { + "version": "0.1.113", + "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.113.tgz", + "integrity": "sha512-PT3HT+3h4ZS1bw6Zz8fqjNeryKOWe1FqGdnz4RSASxZGCzib6VHLfLbJeYHkq7t+ashSXRoAw3XW/9yVdbUqLA==", + "peer": true, + "requires": { + "@expo/bunyan": "4.0.0", + "@expo/metro-config": "0.3.18", + "@expo/osascript": "2.0.33", + "body-parser": "1.19.0", + "chalk": "^4.0.0", + "connect": "^3.7.0", + "fs-extra": "9.0.0", + "node-fetch": "^2.6.0", + "open": "^8.3.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "serialize-error": "6.0.0", + "temp-dir": "^2.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + }, + "serialize-error": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-6.0.0.tgz", + "integrity": "sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA==", + "peer": true, + "requires": { + "type-fest": "^0.12.0" + } + }, + "type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "peer": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true + } + } + }, + "@expo/devcert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz", + "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==", + "peer": true, + "requires": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + } + } + }, + "@expo/image-utils": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz", + "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==", + "peer": true, + "requires": { + "@expo/spawn-async": "1.5.0", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "mime": "^2.4.4", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "tempy": "0.3.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "peer": true + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "peer": true + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "peer": true, + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "peer": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "peer": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true + } + } + }, + "@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "peer": true, + "requires": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + } + }, + "@expo/metro-config": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.18.tgz", + "integrity": "sha512-DWtwV67kD8X2uOKIs5QyHlHD+6L6RAgudZZDBmu433ZvL62HAUYfjEi3+i0jeMiUqN85o1vbXg6xqWnBCpS50g==", + "peer": true, + "requires": { + "@expo/config": "6.0.24", + "@expo/json-file": "8.2.36", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", + "getenv": "^1.0.0", + "resolve-from": "^5.0.0", + "sucrase": "^3.20.0" + } + }, + "@expo/osascript": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz", + "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==", + "peer": true, + "requires": { + "@expo/spawn-async": "^1.5.0", + "exec-async": "^2.2.0" + } + }, + "@expo/package-manager": { + "version": "0.0.54", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.54.tgz", + "integrity": "sha512-Sr7UsDh9Pcta1gAFZJgszodewEvg/XSRV1oV+iTrkUEhP7NziMrK5dE71O2FHmKGfdrDQgLexvq8HLZdfRskKw==", + "peer": true, + "requires": { + "@expo/json-file": "8.2.36", + "@expo/spawn-async": "^1.5.0", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "find-yarn-workspace-root": "~2.0.0", + "npm-package-arg": "^7.0.0", + "rimraf": "^3.0.2", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "peer": true + } } }, - "@expo/config-plugins": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.6.tgz", - "integrity": "sha512-K/KQaw/CU8uLQgk7sFnZC54YGHoGucKFfdjYeZx5ds2eyzbuMAiKzGFcxZ/S+1dVBZ8QHzwowsVBW3kuYhnQ3Q==", + "@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", "peer": true, "requires": { - "@expo/config-types": "^43.0.1", - "@expo/json-file": "8.2.33", - "@expo/plist": "0.0.15", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "@expo/prebuild-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-4.0.2.tgz", + "integrity": "sha512-+AQ/EVgcySl3cvYMmZLaEyGkxvQnO+UFU2mshmUoUh5lTIFTNKl1aVo0UmYW2/JehmKu6bxOrr/lL5byHv+fcQ==", + "peer": true, + "requires": { + "@expo/config": "6.0.24", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/image-utils": "0.3.20", + "@expo/json-file": "8.2.36", "debug": "^4.3.1", - "find-up": "~5.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", + "expo-modules-autolinking": "0.8.1", + "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", - "semver": "^7.3.5", - "slash": "^3.0.0", - "xcode": "^3.0.1", + "semver": "7.3.2", "xml2js": "0.4.23" }, "dependencies": { "fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "peer": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "peer": true } } }, - "@expo/config-types": { - "version": "43.0.1", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-43.0.1.tgz", - "integrity": "sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==", - "peer": true - }, - "@expo/json-file": { - "version": "8.2.33", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.33.tgz", - "integrity": "sha512-CDnhjdirUs6OdN5hOSTJ2y3i9EiJMk7Z5iDljC5xyCHCrUex7oyI8vbRsZEojAahxZccgL/PrO+CjakiFFWurg==", + "@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", "peer": true, "requires": { - "@babel/code-frame": "~7.10.4", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + } } }, - "@expo/metro-config": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.2.8.tgz", - "integrity": "sha512-8g0QrHfvSgTLzryuE4JXRwFwBZ7EmqE55zR39Yy7jEVR3epYL0JbBK0/IDFmf6auwsDFtMjAZjFL4WEhRN5bEQ==", - "peer": true, - "requires": { - "@expo/config": "6.0.6", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "getenv": "^1.0.0", - "sucrase": "^3.20.0" - } + "@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "peer": true }, - "@expo/plist": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.15.tgz", - "integrity": "sha512-LDxiS0KNZAGJu4fIJhbEKczmb+zeftl1NU0LE0tj0mozoMI5HSKdMUchgvnBm35bwBl8ekKkAfJJ0ONxljWQjQ==", + "@expo/spawn-async": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", + "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", "peer": true, "requires": { - "@xmldom/xmldom": "~0.7.0", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "cross-spawn": "^6.0.5" } }, "@expo/vector-icons": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-12.0.5.tgz", - "integrity": "sha512-zWvHBmkpbi1KrPma6Y+r/bsGI6MjbM1MBSe6W9A4uYMLhNI5NR4JtTnqxhf7g1XdpaDtBdv5aOWKEx4d5rxnhg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-13.0.0.tgz", + "integrity": "sha512-TI+l71+5aSKnShYclFa14Kum+hQMZ86b95SH6tQUG3qZEmLTarvWpKwqtTwQKqvlJSJrpFiSFu3eCuZokY6zWA==", + "peer": true + }, + "@expo/xcpretty": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.1.3.tgz", + "integrity": "sha512-testj0jpEe1IwRfnmQ3shizTXOY6IGcuMJg1vtmXy2bC9sPTLK1wjliRJp2xCJGcp1ZbEA1/eptzX+6MDnYjrA==", "peer": true, "requires": { - "lodash.frompairs": "^4.0.1", - "lodash.isequal": "^4.5.0", - "lodash.isstring": "^4.0.1", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "lodash.template": "^4.5.0" + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "peer": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "peer": true + }, + "@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "peer": true, + "requires": {} + }, "@grpc/grpc-js": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.9.tgz", - "integrity": "sha512-un+cXqErq5P4p3+WgYVNVh7FB51MSnaoRef7QWDcMXKR6FX2R6Z/bltcJMxNNdTUMC85lkOQcpnAAetFziPSng==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", "requires": { "@grpc/proto-loader": "^0.6.4", "@types/node": ">=12.12.47" } }, "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", + "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", "requires": { "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", "long": "^4.0.0", - "protobufjs": "^6.10.0", + "protobufjs": "^6.11.3", "yargs": "^16.2.0" } }, + "@guardian/common": { + "version": "^2.1.3", + "integrity": "sha512-wMvj/E/4M/fMsjyJVfqGl+GcwS+jLWwCH1O1CCai98DMmRK35uigcKxfPI+5Cvw7mej00oIa2D3lDVuabMAxAw==", + "requires": { + "@guardian/interfaces": "^2.1.3", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" + } + }, + "@guardian/interfaces": { + "version": "^2.1.3", + "integrity": "sha512-20WCNw3Qn6nIF7srN/YDWLlevPJPsD36ZPzfT8BzBN3xWcgqxUQlqEmMVFjeeSWa8lIkhfYabeI4bMjZDCoiEg==", + "requires": { + "reflect-metadata": "^0.1.13" + } + }, "@hashgraph/cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.1.2.tgz", - "integrity": "sha512-oSnDDs5foNq6Yni4kCwbA01NuVY2mewVr1jhkJG7yNDT6+xIBCztRWDeINb1JuShXe57Cuf88M1zmN5iFN7JgA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.2.0.tgz", + "integrity": "sha512-sr7C4iUWIHnLU4LXgafkwEpDOpgtqHhQfAbPiyatzjngPu0euYZ0xeNSrzOpo2SXOhCyUffHFs4z/orIIkaYpg==", "requires": { "bignumber.js": "^9.0.2", "crypto-js": "^4.1.1", "elliptic": "^6.5.4", - "expo-crypto": "^10.1.2", - "expo-random": "^12.1.2", "js-base64": "^3.7.2", "tweetnacl": "^1.0.3", "utf8": "^3.0.0" } }, - "@hashgraph/did-sdk-js": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@hashgraph/did-sdk-js/-/did-sdk-js-0.1.1.tgz", - "integrity": "sha512-YL+8pB8RqkUfvCKowuYEJ6RNexfHFv+RESD7UBn/CMvk70ECIjTb4oBVcqbtPgmDrt/Ayz4itueCob37GTAglw==", - "requires": { - "@hashgraph/sdk": "^2.0.20", - "bs58": "^4.0.1", - "js-base64": "^3.6.1", - "moment": "^2.29.1" - } - }, "@hashgraph/proto": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.3.0.tgz", - "integrity": "sha512-zZAb/V4j9OersY/rXfPKqiNKyGnT2zPV1v2MA0uW+OKn8BAy9+GwVwANcfrs8VbAqP151iEA6sQSuOH216ytRg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.5.0.tgz", + "integrity": "sha512-354Ozgf55mdPUUcED5E8n2ehGMO6mpOgtMIo4l4+t/wpp1qRmOfbHlVfI4TQN7W4WMb/CRnmbjCl6KDF/SnTxA==", "requires": { "long": "^4.0.0", "protobufjs": "^6.11.2" } }, "@hashgraph/sdk": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.12.1.tgz", - "integrity": "sha512-VisSO8GZ5I/azPj2h2mRTtJsw541POsuhFJ7aRhmhMEFZrpcnXFnkKSp1KYYNT2ELAEZy2pKNBpv9V0GEkUIpw==", - "requires": { - "@grpc/grpc-js": "^1.5.7", - "@hashgraph/cryptography": "^1.1.2", - "@hashgraph/proto": "^2.3.0", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.15.0.tgz", + "integrity": "sha512-SP3Wnb7DlLwwhLqr3tnYfKVMyL6wfm+5aBCM6K0ES90b9yYlnTYehMO/EJAmSlvwer2abmzxEneHXP/DmK9LoQ==", + "requires": { + "@ethersproject/rlp": "^5.6.0", + "@grpc/grpc-js": "^1.6.7", + "@hashgraph/cryptography": "^1.2.0", + "@hashgraph/proto": "2.5.0", + "axios": "^0.27.2", "bignumber.js": "^9.0.2", "crypto-js": "^4.1.1", "js-base64": "^3.7.2", @@ -13489,6 +15984,27 @@ "long": "^4.0.0", "protobufjs": "^6.11.2", "utf8": "^3.0.0" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "@humanwhocodes/config-array": { @@ -13521,22 +16037,38 @@ "chalk": "^4.0.0" } }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", "peer": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", "peer": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "peer": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -13597,15 +16129,62 @@ "fastq": "^1.6.0" } }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "peer": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "peer": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "@peculiar/asn1-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.0.tgz", - "integrity": "sha512-D6g4C5YRKC/iPujMAOXuZ7YGdaoMx8GsvWzfVSyx2LYeL38ECOKNywlYAuwbqQvON64lgsYdAujWQPX8hhoBLw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.9.tgz", + "integrity": "sha512-Ipio+pXGpL/Vb0qB4GnOgFMgc1RAhKHOVy24rQYLvmOAVp9z/aFb+VdIiQH09NjgvGVmaWOUqSWd9vRHk3xbrg==", "requires": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.3.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.1" + "asn1js": "^3.0.4", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" } }, "@peculiar/json-schema": { @@ -13617,21 +16196,21 @@ } }, "@peculiar/webcrypto": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.3.2.tgz", - "integrity": "sha512-oUgNj+8oT7uROEMEpZZ3U+kZjyxj1KXuvA8P5kiMUveTya9eyS8KTqu/dzdEtYC3u7dvjknVz+0sUfkWOBHfQg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz", + "integrity": "sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==", "requires": { - "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/asn1-schema": "^2.1.6", "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1", - "webcrypto-core": "^1.7.1" + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0", + "webcrypto-core": "^1.7.4" } }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "@protobufjs/base64": { "version": "1.1.2", @@ -13646,12 +16225,12 @@ "@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "requires": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -13660,27 +16239,27 @@ "@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "@react-native/normalize-color": { "version": "2.0.0", @@ -13688,6 +16267,16 @@ "integrity": "sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==", "peer": true }, + "@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "peer": true, + "requires": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -13874,23 +16463,23 @@ } }, "@transmute/bls12381-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-rnw4GthkaWVAeNfrt4mx9MxQzX3cda4CttU+BgBphPK/F2yGbmvhCPA82FVCs10EikdzIhk3ixLFIGyRGVmluw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-QLgg0fPlGuNM3yt5LPfid1/f5bsDnnsJe/1NJRmQ3MmBMjjVIXmg9boT7TRISjMetMZa7QEP/3KUfjvaxSU+UQ==", "requires": { "@mattrglobal/bls12381-key-pair": "^0.5.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60" } }, "@transmute/credentials-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-X9kOjLuzKZKg1SMU/ufm7q6UHSSn6leSXcza+vI4VpeUAeKja7Fihtzosnf9OtX/HNW7YiKUB+sog+7S0zgoEg==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-UvEqLuxcqdq7IsIRAKrW9tLRuinXnZgjIpP3e4vdEGdKrCXZtwS1oYM/Mt2cmqPeuISydiZjOzsNqUZYroTeoA==" }, "@transmute/did-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-8fOjnCAQOh+nXqVWWYbvffdGX2nhfug82W5DulBHKJbDsCjge5w3wlf1GeBgNtOenSgQJ17tIlBdUZi/Cff7ag==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-6hnwcqVn+aFyx7yNvJ8W1SoAp7d21bBYF1FI0mGi4KJk6p83hvHYIlpdqMT4xvaR6txyeOLbZUoozaZFd1HVpw==" }, "@transmute/did-key-common": { "version": "0.3.0-unstable.8", @@ -13967,20 +16556,20 @@ } }, "@transmute/ed25519-signature-2018": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.40.tgz", - "integrity": "sha512-UIwv2zXM80wmOb4AV5tDa0kvFnG1KmapwH/2NAjhcKivFXu6ty8f0qEJgDeOOG+XwhvWJ+LpWl090jw6jCNpyg==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.60.tgz", + "integrity": "sha512-6Ch2u5/M0KWKw0FGTFf3rk824PZBeJJ8tgvGFWQIZk3dPfybkz4Ih+eZ7o1APXsy7J4EN7BSl+kg6g5DMmzBpw==", "requires": { "@transmute/ed25519-key-pair": "0.7.0-unstable.2", - "@transmute/jose-ld": "^0.7.0-unstable.40", - "@transmute/security-context": "^0.7.0-unstable.40", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", "jsonld": "^5.2.0" } }, "@transmute/jose-ld": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.57.tgz", - "integrity": "sha512-bTf7L/XPxOJuMWFrOphacfYCPxEJvfoDH/+BWTjml3ZiwxsvaCyQIsxTorS0UFXEBzP0iVuxiglrHu41GhMtbQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.60.tgz", + "integrity": "sha512-OAEJFVnB411VGRR5Jqgm/VRzNSCkuf66MQI4HvJsiYLlpooKhTSGuILWvnqtaT72Y9of7LNJNHlE5h/oVuqVIQ==", "requires": { "@peculiar/webcrypto": "^1.1.6", "@stablelib/aes-kw": "^1.0.0", @@ -13991,35 +16580,35 @@ } }, "@transmute/json-web-signature": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.40.tgz", - "integrity": "sha512-89aepZ6bpNuSBDEPcIL8YLmDckDOmKfhGqrx8I/5VhYONqx35zD2JBJMbthrDzjdKEmdi0ws8xw3LGN39/w2gg==", - "requires": { - "@transmute/bls12381-key-pair": "^0.7.0-unstable.40", - "@transmute/ed25519-key-pair": "^0.7.0-unstable.40", - "@transmute/jose-ld": "^0.7.0-unstable.40", - "@transmute/secp256k1-key-pair": "^0.7.0-unstable.40", - "@transmute/security-context": "^0.7.0-unstable.40", - "@transmute/web-crypto-key-pair": "^0.7.0-unstable.40", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.60.tgz", + "integrity": "sha512-vS9xIUZ1zihGp+ExXuRF0W6qr1TnkNFxAvss8jDExF1k+hgYvAzxhhH3uOkuIGmXPFj48A/69mXgcasULoncJQ==", + "requires": { + "@transmute/bls12381-key-pair": "^0.7.0-unstable.60", + "@transmute/ed25519-key-pair": "^0.7.0-unstable.60", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/secp256k1-key-pair": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/web-crypto-key-pair": "^0.7.0-unstable.60", "jsonld": "^5.2.0" }, "dependencies": { "@transmute/ed25519-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-ua1oVxfLD5kVUjxEsPnRW4y+teTBRhf19SJsyKPTSJuD8sfyCrSImuBVqVXhrUdm9ZECBX1Ec1r4rJLTNQdXzA==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-ZL123tGO5m2CIxuQuXv81XauYzlCxQVX5ulGVSlh4Yt74MZjzUILFnBMR19SZOlfRfSjgV4oJOwhQNWYXidBuw==", "requires": { "@stablelib/ed25519": "^1.0.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", - "@transmute/x25519-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "@transmute/x25519-key-pair": "^0.7.0-unstable.60" } } } }, "@transmute/jsonld-schema": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.40.tgz", - "integrity": "sha512-11TKoOVyc30OO4N+d2NNoUf2CthRzYAAs2SO1HUb2RQXT+PtTJ0nC8DyyoahgOBZC0HO1y1eOPmWj2x+o6AhWQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.60.tgz", + "integrity": "sha512-zKVU5uJ5s4rNhZDWawr0qejVlBV3IvZuKiYbr/wr44To0ZVtZraM0n0x0YhsBOcRnbDIODHZ+i/XcFu6Mwj6Fw==", "requires": { "ajv": "^8.6.1", "genson-js": "0.0.5", @@ -14027,70 +16616,66 @@ } }, "@transmute/ld-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-7ldGhsBjvHp4biPkHH7WD2dz/+nfvMOXUbskuVr1cD7NVQRpr6QZdzxuOB4DWyn/vshq+x+cRpfx9wqSyP+Bmw==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-GKYzOiSH++c9pFsZeZfIcc2IfYvxgHUGI3lymtaPDwSlFV/1XKsOHxXobwgf5SWv30GfI+sBDmBoeaQ92sKj+g==" }, "@transmute/linked-data-proof": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.57.tgz", - "integrity": "sha512-5fCowqKLPsG6wCxPZKoRiNHwu0pnpyX80j0WekMqwb6mqK2zs15mRhymUjKF2lF1tqb4J3iyp3XHb8nLQ208tQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.60.tgz", + "integrity": "sha512-GtyGLItYN2NUPb7IAKOj+7bVhc+LR6MRuW/SXHrvnyG24IZasAjXIPzU1g/eoMTjM4X/4N/1HGooHBeALU/eCQ==", "requires": { "@transmute/did-key-ed25519": "^0.3.0-unstable.5", "serialize-error": "^7.0.1" } }, "@transmute/secp256k1-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-EbSwyZdTqnkqDIcJfLvZq8Xic7jEl85/RgOVr3RwZGZUSd3AVZFueUCFKl7fFycv7f15+z53bmvLnGjGL6UBSQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-gH0+JXlg6OKT4nS6GUtJ9bgwYvfGEFDDMS+xDXgmh5nfgHhdjRjoLb2ckp5qmt6GzJ5gbIQAxVcFkZgSWegjhQ==", "requires": { "@bitauth/libauth": "^1.18.1", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", "secp256k1": "^4.0.2" } }, "@transmute/security-context": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.40.tgz", - "integrity": "sha512-d76f1U9UfzGh018LpoivGLWiVtcRH1dwQ9lu3yj9A41iKjVrGypFAx8fWQ6S9N7+xfmbAI20rnhz7GzbX8cPhw==" + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-zkCp5k9i+KLnqCa8cx3gIYGv490iKGysjyMbK8maHlo4GejGHXR1ZZgoWYHnuEHcVpzs1m2oferjJ1TCIdrwdA==" }, "@transmute/vc.js": { - "version": "0.7.0-unstable.40", - "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.40.tgz", - "integrity": "sha512-wvj4BLHbrinc+dmk0XdEEO2i/qxLjsF+hF7nxav5KYPP0IrC8Rn5WldpEUdAv6IsBb//Np3yhIEIiPsYCvXctw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.60.tgz", + "integrity": "sha512-r6xHSerlkE59hvQdlF/d/kl4AIApI5/55d3vvbMilEqSkBvgHIk29NxNz6Q7IjXoZegWBOyviKeOzQ3bJWGARQ==", "requires": { - "@transmute/json-web-signature": "^0.7.0-unstable.40", - "@transmute/jsonld-schema": "^0.7.0-unstable.40", - "@transmute/linked-data-proof": "^0.7.0-unstable.40", + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/linked-data-proof": "^0.7.0-unstable.60", "jsonld": "^5.2.0", "moment": "^2.29.1" } }, "@transmute/web-crypto-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-LohLg2irBEgv+dgxwxJTNCR8P5LIqxOs2Z0scnKgGmnxMqPkKjUsALXY2q9vjfzgZY5dtiXWsXCeOHrrbGDrmQ==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-8Y4UGycX8ri9JLO65YIrLLohE4/cphcm4/ERX45hrPCgzBzHO/axLn7b5IQPI5iI9Brt7HtJZ2Wg4wmU2aJl/Q==", "requires": { "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.7.0-unstable.57", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", "big-integer": "^1.6.48" } }, "@transmute/x25519-key-pair": { - "version": "0.7.0-unstable.57", - "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.57.tgz", - "integrity": "sha512-kaFg96bNrGGzlUc1Kc8mttCwZDif9OdoQ5tZyvyCreaDWDbcMLJrjSf1aFlaHlE13JDuAG3nlMk/zo8QKH+MJw==", + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-dKUnr4QxE0T7w+IeHTr244hbJBkCO07wibbxhsqINi1CuAhIgTyFnoaUZlJidc6q1dA/2VR9eL3B8OcdEm6Teg==", "requires": { "@stablelib/x25519": "^1.0.0", - "@transmute/ld-key-pair": "^0.7.0-unstable.57" + "@transmute/ld-key-pair": "^0.7.0-unstable.60" } }, - "@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -14129,9 +16714,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", "dev": true, "requires": { "@types/node": "*", @@ -14182,9 +16767,9 @@ } }, "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "@types/mime": { "version": "1.3.2", @@ -14193,9 +16778,9 @@ "dev": true }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==" }, "@types/qs": { "version": "6.9.7", @@ -14219,11 +16804,6 @@ "@types/node": "*" } }, - "@types/web": { - "version": "0.0.55", - "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.55.tgz", - "integrity": "sha512-YMH9aZrSJIMRMioCUwrgauI3iS/w2wRFN45Xxm0FE9Tt3hqaqkvOzjDFGsNjyKZzz7GJC0ilb+0tv59ytSUbrQ==" - }, "@types/webidl-conversions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", @@ -14264,6 +16844,26 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@urql/core": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "peer": true, + "requires": { + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + } + }, + "@urql/exchange-retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "peer": true, + "requires": { + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" + } + }, "@xmldom/xmldom": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", @@ -14306,6 +16906,16 @@ "dev": true, "requires": {} }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -14379,8 +16989,7 @@ "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, "ansi-regex": { "version": "5.0.1", @@ -14398,7 +17007,7 @@ "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "anymatch": { "version": "3.1.2", @@ -14415,6 +17024,12 @@ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" }, + "application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q==", + "peer": true + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -14431,10 +17046,19 @@ "readable-stream": "^2.0.6" } }, + "arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "peer": true + }, "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } }, "array-back": { "version": "2.0.0", @@ -14448,12 +17072,18 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "peer": true }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "peer": true }, "asn1": { @@ -14465,17 +17095,19 @@ } }, "asn1js": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.3.2.tgz", - "integrity": "sha512-IYzujqcOk7fHaePpTyvD3KPAA0AjT3qZlaQAw76zmPPAV/XTjhO+tbHjbFbIQZIhw+fk9wCSfb0Z6K+JHe8Q2g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", "requires": { - "pvutils": "latest" + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" } }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, "assertion-error": { "version": "1.1.0", @@ -14492,7 +17124,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "at-least-node": { "version": "1.0.0", @@ -14508,7 +17140,7 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" }, "aws4": { "version": "1.11.0", @@ -14554,14 +17186,6 @@ "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - } } }, "babel-plugin-polyfill-corejs3": { @@ -14590,9 +17214,9 @@ "peer": true }, "babel-preset-expo": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.0.2.tgz", - "integrity": "sha512-NKVichCkbmb+ZIJ4hvuxzX3PnvHUKT42NxYIYTsKAfHPUKuaSAawtpsmMThph6pUc0GUYcLvCRql8ZX5A1zYNw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.1.0.tgz", + "integrity": "sha512-dFcgT7AY5n15bLnfOM6R25f8Lh7YSALj4zeGze6aspYHfVrREYcovVG0eMGpY9V24fnwByNRv85lElc1jAj1Mw==", "peer": true, "requires": { "@babel/plugin-proposal-decorators": "^7.12.9", @@ -14600,7 +17224,7 @@ "@babel/preset-env": "^7.12.9", "babel-plugin-module-resolver": "^4.1.0", "babel-plugin-react-native-web": "~0.17.1", - "metro-react-native-babel-preset": "~0.64.0" + "metro-react-native-babel-preset": "~0.67.0" } }, "balanced-match": { @@ -14629,7 +17253,7 @@ "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" }, @@ -14637,10 +17261,19 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" } } }, + "better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "peer": true, + "requires": { + "open": "^8.0.4" + } + }, "big-integer": { "version": "1.6.51", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", @@ -14669,26 +17302,28 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "peer": true, "requires": { - "bytes": "3.1.2", + "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "1.8.1", + "http-errors": "1.7.2", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "requires": { "ms": "2.0.0" } @@ -14696,7 +17331,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true } } }, @@ -14751,9 +17387,9 @@ } }, "bplist-parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.0.tgz", - "integrity": "sha512-zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", "peer": true, "requires": { "big-integer": "1.6.x" @@ -14779,7 +17415,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "browser-stdout": { "version": "1.3.1", @@ -14788,30 +17424,30 @@ "dev": true }, "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", "peer": true, "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" } }, "bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "requires": { "base-x": "^3.0.2" } }, "bson": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz", - "integrity": "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", "requires": { "buffer": "^5.6.0" } @@ -14844,7 +17480,7 @@ "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", "peer": true }, "buffer-from": { @@ -14855,19 +17491,62 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" }, "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "peer": true + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "peer": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } }, "cacheable-request": { "version": "6.1.0", @@ -14923,9 +17602,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "version": "1.0.30001352", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz", + "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==", "peer": true }, "canonicalize": { @@ -14936,7 +17615,7 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "chai": { "version": "4.3.4", @@ -14970,19 +17649,18 @@ "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", "optional": true }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "chokidar": { @@ -15002,16 +17680,22 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "peer": true }, "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "peer": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true }, "cli-boxes": { "version": "2.2.1", @@ -15022,8 +17706,7 @@ "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "requires": { "restore-cursor": "^2.0.0" } @@ -15041,6 +17724,12 @@ "yargs": "^16.0.0" } }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "peer": true + }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -15074,6 +17763,12 @@ } } }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "peer": true + }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -15087,7 +17782,7 @@ "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "dev": true, "requires": { "mimic-response": "^1.0.0" @@ -15096,7 +17791,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "optional": true }, "color-convert": { @@ -15120,6 +17815,12 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, "command-line-args": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", @@ -15158,18 +17859,6 @@ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "peer": true }, - "common": { - "version": "file:../common", - "requires": { - "@types/node": "^17.0.13", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "nats": "^2.6.1", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", @@ -15177,14 +17866,20 @@ "peer": true }, "complex.js": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.15.tgz", - "integrity": "sha512-gDBvQU8IG139ZBQTSo2qvDFP+lANMGluM779csXOr6ny1NUtA3wkUnCFjlDNH/moAVfXtvClYt6G0zarFbtz5w==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", + "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==" + }, + "component-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", + "integrity": "sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==", + "peer": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "configstore": { "version": "5.0.1", @@ -15214,10 +17909,39 @@ } } }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + } + } + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "optional": true }, "content-disposition": { @@ -15251,28 +17975,22 @@ } }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "peer": true + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz", + "integrity": "sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A==", "peer": true, "requires": { - "browserslist": "^4.19.1", + "browserslist": "^4.20.4", "semver": "7.0.0" }, "dependencies": { @@ -15306,6 +18024,15 @@ "luxon": "^1.23.x" } }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "peer": true, + "requires": { + "node-fetch": "2.6.7" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -15330,8 +18057,7 @@ "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" }, "crypto-js": { "version": "4.1.1", @@ -15341,13 +18067,18 @@ "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", + "peer": true }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "requires": { "assert-plus": "^1.0.0" } @@ -15379,7 +18110,7 @@ "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, "requires": { "mimic-response": "^1.0.0" @@ -15419,8 +18150,7 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "devOptional": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.4", @@ -15428,29 +18158,90 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "peer": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "peer": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true + } + } + }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "peer": true + }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "peer": true, "requires": { - "object-keys": "^1.0.12" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "optional": true }, "denque": { @@ -15461,17 +18252,18 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "peer": true }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "optional": true }, "diff": { @@ -15480,6 +18272,15 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "peer": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -15499,20 +18300,20 @@ } }, "dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==", "dev": true }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -15521,12 +18322,12 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.92", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.92.tgz", - "integrity": "sha512-YAVbvQIcDE/IJ/vzDMjD484/hsRbFPW2qXJPaYTfOhtligmfYEYOep+5QojpaEU9kq6bMvNeC2aG7arYvTHYsA==", + "version": "1.4.154", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.154.tgz", + "integrity": "sha512-GbV9djOkrnj6xmW+YYVVEI3VCQnJ0pnSTu7TW2JyjKd5cakoiSaG5R4RbEtfaD92GsY10DzbU3GYRe+IOA9kqA==", "peer": true }, "elliptic": { @@ -15551,33 +18352,12 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -15591,31 +18371,46 @@ "ansi-colors": "^4.1.1" } }, + "env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "peer": true + }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "peer": true + }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-get-iterator": { @@ -15657,7 +18452,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-latex": { "version": "1.2.0", @@ -15739,15 +18534,6 @@ "uri-js": "^4.2.2" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -15760,24 +18546,14 @@ } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -15790,6 +18566,15 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -15882,8 +18667,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.4.0", @@ -15933,114 +18717,138 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, + "exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "peer": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "expo": { - "version": "44.0.6", - "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.6.tgz", - "integrity": "sha512-iHnra6uD5kXZgdSUrvxZ3sLjg1FtgtA4p4uaSKVQ39IaMHJBngo8RKqFUJ+BF2kPDpBLJ251eLlhgYUlnAyuag==", + "version": "45.0.5", + "resolved": "https://registry.npmjs.org/expo/-/expo-45.0.5.tgz", + "integrity": "sha512-ND+Fo/iLZK1ubMvPFzraIQBvtGL7a4ZHGIP8N1PjcOtTGrCc6X7IWyLkfPMAck2yhd80ZTbos8vTU3SAUuBcJw==", "peer": true, "requires": { "@babel/runtime": "^7.14.0", - "@expo/metro-config": "~0.2.6", - "@expo/vector-icons": "^12.0.4", - "babel-preset-expo": "~9.0.2", + "@expo/cli": "0.1.5", + "@expo/vector-icons": "^13.0.0", + "babel-preset-expo": "~9.1.0", "cross-spawn": "^6.0.5", - "expo-application": "~4.0.2", - "expo-asset": "~8.4.6", - "expo-constants": "~13.0.2", - "expo-error-recovery": "~3.0.5", - "expo-file-system": "~13.1.3", - "expo-font": "~10.0.5", - "expo-keep-awake": "~10.0.2", - "expo-modules-autolinking": "0.5.5", - "expo-modules-core": "0.6.5", - "fbemitter": "^2.1.1", + "expo-application": "~4.1.0", + "expo-asset": "~8.5.0", + "expo-constants": "~13.1.1", + "expo-error-recovery": "~3.1.0", + "expo-file-system": "~14.0.0", + "expo-font": "~10.1.0", + "expo-keep-awake": "~10.1.1", + "expo-modules-autolinking": "0.8.1", + "expo-modules-core": "0.9.2", + "fbemitter": "^3.0.0", + "getenv": "^1.0.0", "invariant": "^2.2.4", "md5-file": "^3.2.3", + "node-fetch": "^2.6.7", "pretty-format": "^26.5.2", "uuid": "^3.4.0" } }, "expo-application": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.2.tgz", - "integrity": "sha512-ngTaFplTkWn0X45gMC+VNXGyJfGxX4wOwKmtr17rNMVWOQUhhLlyMkTj9bAamzsuwZh35l3S/eD/N1aMWWUwMw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.1.0.tgz", + "integrity": "sha512-Z2kctgVMpYZB1Iwaxd+XcMBq7h8EEY50GGrwxXsb1OHHQKN+WEVGBWxjvtPkAroqCdujLaB5HBay46gvUHRDQg==", "peer": true, "requires": {} }, "expo-asset": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.4.6.tgz", - "integrity": "sha512-Kpzcmmf1lceHnZkAdJOvq7l7SU/hCL59vAj2xUZS66U6lFkUf7LNEA/NzILA56loCd4cka5ShYlWs+BMchyFDQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.5.0.tgz", + "integrity": "sha512-k3QErZYxb6e6rPkJ1sG5yIJ7bhd4RFvnFStz0ZCO6SfktGygBAjTz5aTOLaaomiCIObRiBQ4byky/RLdli/NLw==", "peer": true, "requires": { "blueimp-md5": "^2.10.0", "invariant": "^2.2.4", "md5-file": "^3.2.3", "path-browserify": "^1.0.0", - "url-parse": "^1.4.4" + "url-parse": "^1.5.9" } }, "expo-constants": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.2.tgz", - "integrity": "sha512-vGs/kI65vplPFvG8z4W1ariGEtVHHp9Avl28G0zJprt2v/q1E/BnXjwvFSBPc1GB+Zb/7crWSHWRwjaFULBjsg==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.1.1.tgz", + "integrity": "sha512-QRVHrrMCLenBzWZ8M+EvCXM+jjdQzFMW27YQHRac3SGGoND1hWr81scOmGwlFo2wLZrYXm8HcYt1E6ry3IIwrA==", "peer": true, "requires": { - "@expo/config": "^6.0.6", + "@expo/config": "^6.0.14", "uuid": "^3.3.2" } }, "expo-crypto": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.1.2.tgz", - "integrity": "sha512-TYaBtV9oK5OH+EfsAUHQkWkRPifZjCMDn6Yf9gk3/LyHdJHDYnB6NQWTJo9Qkl6vzI9svQ6PMnQTm2Yxrb3ZfQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.2.0.tgz", + "integrity": "sha512-YVFp+DJXBtt4t6oZXepnzb+xwpKzFbXn3B9Oma1Tfh6J0rIlm/I20UW/5apdvEdbj44fxJ5DsiZeyADI3bcZkQ==", + "peer": true, "requires": {} }, "expo-error-recovery": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.5.tgz", - "integrity": "sha512-VM6OOecjt0aPu5/eCdGGJfNjvAZIemaQym0JF/+SA5IlLiPpEfbVCDTO/5yiS8Zb5fKpeABx+GCRmtfnFqvRRw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.1.0.tgz", + "integrity": "sha512-qUxCW7kPB6AVX5h3ZPVnxw4LLZWsRwAPBtRDlh1UDN7GWZ+CQN1SNk0w0BPotjNtSlXEZSFDqKqtoDDAUYjNmg==", "optional": true, "peer": true, "requires": {} }, "expo-file-system": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.4.tgz", - "integrity": "sha512-/C2FKCzrdWuEt4m8Pzl9J4MhKgfU0denVLbqoKjidv8DnsLQrscFNlLhXuiooqWwsxB2OWAtGEVnPGJBWVuNEQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.0.0.tgz", + "integrity": "sha512-Asva7ehLUq/PIem6Y+/OQvoIqhFqYDd7l4l49yDRDgLSbK2I7Fr8qGhDeDpnUXrMVamg2uwt9zRGhyrjFNRhVw==", "peer": true, "requires": { - "@expo/config-plugins": "^4.0.2", + "@expo/config-plugins": "^4.0.14", "uuid": "^3.4.0" } }, "expo-font": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.5.tgz", - "integrity": "sha512-x9YwM0xLkDdSvFjeNbyuh33Q1Hk3uc2jbMuuAN5W2ZVcUZqG0M8GCX/KV/D/7rYqdXKbliQA5r44MyDwZe/XRw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.1.0.tgz", + "integrity": "sha512-vmhzpE95Ym4iOj8IELof+C/3Weert2B3LyxV5rBjGosjzBdov+o+S6b5mN7Yc9kyEGykwB6k7npL45X3hFYDQA==", "peer": true, "requires": { "fontfaceobserver": "^2.1.0" } }, "expo-keep-awake": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.2.tgz", - "integrity": "sha512-Ro1lgyKldbFs4mxhWM+goX9sg0S2SRR8FiJJeOvaRzf8xNhrZfWA00Zpr+/3ocCoWQ3eEL+X9UF4PXXHf0KoOg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.1.1.tgz", + "integrity": "sha512-9zC0sdhQljUeMr2yQ7o4kzEZXVAy82fFOAZE1+TwPL7qR0b0sphe7OJ5T1GX1qLcwuVaJ8YewaPoLSHRk79+Rg==", "peer": true, "requires": {} }, "expo-modules-autolinking": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.5.5.tgz", - "integrity": "sha512-bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.8.1.tgz", + "integrity": "sha512-S8qfaXCv//7tQWV9M+JKx3CF7ypYhDdSUbkUQdaVO/r8D76/aRTArY/aRw1yEfaAOzyK8C8diDToV1itl51DfQ==", "peer": true, "requires": { "chalk": "^4.1.0", @@ -16065,9 +18873,9 @@ } }, "expo-modules-core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.5.tgz", - "integrity": "sha512-h/9+SJ3m8XkDUV1QrPO8WeXaeRYWLBJrOqhokDyhgWUYSqe6JOuRx1ZkoGq/GmTiwjouRDbXPsXUBiU9HWLYyA==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.9.2.tgz", + "integrity": "sha512-p/C0GJxFIIDGwmrWi70Q0ggfsgeUFS25ZkkBgoaHT7MVgiMjlKA/DCC3D6ZUkHl/JlzUm0aTftIGS8LWXsnZBw==", "peer": true, "requires": { "compare-versions": "^3.4.0", @@ -16075,50 +18883,76 @@ } }, "expo-random": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.2.tgz", - "integrity": "sha512-ajB+Mwff9PdglsyLliaU4K9BtVwKvAVVI2hQhnvlS3QgsAhHf+jQVUfAysQJHuioF6ADMEsab/kRUy4Dy03aoQ==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.2.0.tgz", + "integrity": "sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g==", + "peer": true, "requires": { "base64-js": "^1.3.0" } }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -16127,10 +18961,73 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" } } }, @@ -16153,7 +19050,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" }, "factory.ts": { "version": "0.5.2", @@ -16190,7 +19087,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -16203,22 +19100,22 @@ } }, "fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", "peer": true, "requires": { - "fbjs": "^0.8.4" + "fbjs": "^3.0.0" } }, "fbjs": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", - "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", "peer": true, "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", @@ -16226,15 +19123,27 @@ "ua-parser-js": "^0.7.30" } }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "peer": true + }, "fetch-blob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==" }, + "fetch-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", + "peer": true + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "optional": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -16243,7 +19152,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true } } @@ -16269,6 +19178,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -16283,6 +19193,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "requires": { "ms": "2.0.0" } @@ -16290,7 +19201,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true } } }, @@ -16307,7 +19225,7 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", "peer": true } } @@ -16315,7 +19233,7 @@ "find-replace": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", + "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", "optional": true, "requires": { "array-back": "^1.0.4", @@ -16325,7 +19243,7 @@ "array-back": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "optional": true, "requires": { "typical": "^2.6.0" @@ -16349,6 +19267,15 @@ } } }, + "find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "peer": true, + "requires": { + "micromatch": "^4.0.2" + } + }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -16383,33 +19310,37 @@ "dev": true }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" }, "fontfaceobserver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", - "integrity": "sha512-ReOsO2F66jUa0jmv2nlM/s1MiutJx/srhAe2+TE8dJCMi02ZZOcCTxTCQFr3Yet+uODUtnr4Mewg+tNQ+4V1Ng==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", "peer": true }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" }, "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "peer": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -16423,15 +19354,21 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, + "freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "peer": true + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -16439,18 +19376,18 @@ } }, "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "peer": true, "requires": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -16464,16 +19401,32 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "optional": true, "requires": { "aproba": "^1.0.3", @@ -16489,13 +19442,13 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -16504,7 +19457,7 @@ "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -16515,7 +19468,7 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -16542,24 +19495,29 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "peer": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -16582,7 +19540,7 @@ "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "requires": { "assert-plus": "^1.0.0" } @@ -16590,7 +19548,7 @@ "git-config": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", + "integrity": "sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA==", "optional": true, "requires": { "iniparser": "~1.0.5" @@ -16640,6 +19598,28 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "peer": true }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "peer": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "peer": true + } + } + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -16660,9 +19640,24 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "peer": true, + "requires": { + "tslib": "^2.1.0" + } }, "growl": { "version": "1.10.5", @@ -16681,20 +19676,12 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } } }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" }, "har-validator": { "version": "5.1.5", @@ -16732,15 +19719,23 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -16757,7 +19752,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "optional": true }, "has-yarn": { @@ -16789,13 +19784,22 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -16803,21 +19807,42 @@ "dev": true }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "peer": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "peer": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "peer": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true + } } }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -16846,7 +19871,7 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, "ignore-walk": { @@ -16861,7 +19886,7 @@ "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "import-fresh": { "version": "3.3.0", @@ -16884,18 +19909,30 @@ "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "peer": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "peer": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -16909,13 +19946,12 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "iniparser": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", + "integrity": "sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw==", "optional": true }, "inquirer": { @@ -16941,9 +19977,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "optional": true }, "ansi-styles": { @@ -16978,25 +20014,25 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "optional": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "optional": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "optional": true, "requires": { "ansi-regex": "^3.0.0" @@ -17013,14 +20049,14 @@ } } }, - "interfaces": { - "version": "file:../interfaces", + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "peer": true, "requires": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, "internal-slot": { @@ -17042,10 +20078,11 @@ "loose-envify": "^1.0.0" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "peer": true }, "ipaddr.js": { "version": "1.9.1", @@ -17090,8 +20127,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { "version": "1.2.4", @@ -17105,12 +20141,20 @@ "dev": true, "requires": { "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + } } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "requires": { "has": "^1.0.3" } @@ -17123,15 +20167,21 @@ "has-tostringtag": "^1.0.0" } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "peer": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "optional": true }, "is-glob": { @@ -17152,6 +20202,32 @@ "is-path-inside": "^3.0.2" } }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "peer": true, + "requires": { + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "peer": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "peer": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, "is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -17174,9 +20250,9 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "requires": { "has-tostringtag": "^1.0.0" } @@ -17187,11 +20263,16 @@ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "peer": true + }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { "version": "2.1.0", @@ -17216,20 +20297,29 @@ "has-tostringtag": "^1.0.0" } }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "peer": true + }, "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "peer": true }, "is-string": { @@ -17249,21 +20339,21 @@ } }, "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "is-unicode-supported": { "version": "0.1.0", @@ -17271,6 +20361,15 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "peer": true, + "requires": { + "is-invalid-path": "^0.1.0" + } + }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -17293,6 +20392,15 @@ "get-intrinsic": "^1.1.1" } }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "peer": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", @@ -17307,37 +20415,39 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "peer": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "javascript-natural-sort": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "peer": true + }, + "join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", + "peer": true }, "jose": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.3.8.tgz", - "integrity": "sha512-dFiqN5FPLNWa/v+J3ShFjV/9sRGickxMbGUbqBrYr+BkrqLOieACaavSi9XmLJXe0Uzd7Cgs1oYtDvDrOyWLgw==" + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.1.tgz", + "integrity": "sha512-+/hpTbRcCw9YC0TOfN1W47pej4a9lRmltdOVdRLz5FP5UvUq3CenhXjQK7u/8NdMIIShMXYAh9VLPhc7TjhvFw==" }, "js-base64": { "version": "3.7.2", @@ -17355,17 +20465,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "jsesc": { "version": "2.5.2", @@ -17376,7 +20487,7 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, "json-schema": { @@ -17384,6 +20495,35 @@ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, + "json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "peer": true, + "requires": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "dependencies": { + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "peer": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + } + } + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -17392,13 +20532,13 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "json5": { "version": "1.0.1", @@ -17460,14 +20600,6 @@ "yallist": "^3.0.2" } }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "rdf-canonize": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", @@ -17477,30 +20609,6 @@ "setimmediate": "^1.0.5" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -17520,14 +20628,14 @@ } }, "jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" } }, "keyv": { @@ -17544,6 +20652,12 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true + }, "ky": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", @@ -17613,42 +20727,17 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "optional": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "peer": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "peer": true - }, - "lodash.frompairs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz", - "integrity": "sha1-vE5SB/onV8E25XNhTpZkUGsrG9I=", - "peer": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "peer": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "peer": true }, "lodash.merge": { @@ -17657,47 +20746,16 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "peer": true - }, "lodash.padend": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", "optional": true }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "peer": true - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "peer": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "peer": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "log-symbols": { @@ -17710,17 +20768,6 @@ "is-unicode-supported": "^0.1.0" } }, - "logger-helper": { - "version": "file:../logger-helper", - "requires": { - "@types/node": "^17.0.13", - "common": "file:../common", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -17761,23 +20808,15 @@ "dev": true, "requires": { "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "mathjs": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.4.1.tgz", - "integrity": "sha512-l/ONB3f2N9MMy/Gx3YPdKXjmV0LKN1Ew2fqcz3tzKlAIcPCFuLlup5KHm9cmKTKMHn7MVJZWegqCQhCDEpYyNQ==", + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", + "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", "requires": { - "@babel/runtime": "^7.17.8", - "complex.js": "^2.0.15", + "@babel/runtime": "^7.18.3", + "complex.js": "^2.1.1", "decimal.js": "^10.3.1", "escape-latex": "^1.2.0", "fraction.js": "^4.2.0", @@ -17791,7 +20830,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, "requires": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -17807,10 +20845,22 @@ "buffer-alloc": "^1.1.0" } }, + "md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", + "peer": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", + "peer": true }, "memory-pager": { "version": "1.5.0", @@ -17821,7 +20871,7 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "merge2": { "version": "1.4.1", @@ -17832,15 +20882,15 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" }, "metro-react-native-babel-preset": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", - "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", + "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", "peer": true, "requires": { - "@babel/core": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -17853,6 +20903,7 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", @@ -17882,19 +20933,20 @@ } }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "peer": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true }, "mime-db": { "version": "1.52.0", @@ -17912,8 +20964,7 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "mimic-response": { "version": "1.0.1", @@ -17929,7 +20980,7 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "minimatch": { "version": "3.1.2", @@ -17945,37 +20996,55 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "peer": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "peer": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - } + "minipass": "^3.0.0" } }, "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "peer": true, "requires": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, "requires": { "minimist": "^1.2.6" } @@ -18012,6 +21081,12 @@ "yargs-unparser": "2.0.0" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -18054,6 +21129,15 @@ } } }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "minimatch": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", @@ -18114,7 +21198,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -18125,20 +21209,19 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "mongodb": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz", - "integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.1.tgz", + "integrity": "sha512-nDC+ulM/Ea3Q2VG5eemuGfB7T4ORwrtKegH2XW9OLlUBgQF6OTNrzFCS1Z3SJGVA+T0Sr1xBYV6DMnp0A7us0g==", "requires": { - "bson": "^4.6.1", + "bson": "^4.6.0", "denque": "^2.0.1", - "mongodb-connection-string-url": "^2.5.2", - "saslprep": "^1.0.3", - "socks": "^2.6.2" + "mongodb-connection-string-url": "^2.2.0", + "saslprep": "^1.0.3" } }, "mongodb-connection-string-url": { @@ -18158,9 +21241,47 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "optional": true }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", + "optional": true, + "peer": true, + "requires": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "optional": true, + "peer": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "optional": true, + "peer": true, + "requires": { + "glob": "^6.0.1" + } + } + } + }, "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -18177,12 +21298,27 @@ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, + "nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "requires": { + "nkeys.js": "^1.0.0-9" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "optional": true, + "peer": true + }, "needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", @@ -18272,19 +21408,19 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "optional": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "optional": true }, "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", "optional": true }, "semver": { @@ -18296,7 +21432,7 @@ "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "integrity": "sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==", "optional": true, "requires": { "has-flag": "^2.0.0" @@ -18304,31 +21440,78 @@ } } }, + "nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "peer": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "peer": true }, + "nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "requires": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + } + } + }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "peer": true, + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } } }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "peer": true + }, "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" }, "node-pre-gyp": { "version": "0.14.0", @@ -18348,24 +21531,79 @@ "tar": "^4.4.2" }, "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "optional": true + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "optional": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true } } }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", "peer": true }, "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "dev": true, "requires": { "chokidar": "^3.5.2", @@ -18392,7 +21630,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "semver": { @@ -18449,6 +21687,26 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "optional": true }, + "npm-package-arg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "peer": true, + "requires": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + } + } + }, "npm-packlist": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", @@ -18460,6 +21718,15 @@ "npm-normalize-package-bin": "^1.0.1" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "requires": { + "path-key": "^2.0.0" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -18472,10 +21739,16 @@ "set-blocking": "~2.0.0" } }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "optional": true }, "oauth-sign": { @@ -18486,12 +21759,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "object-is": { "version": "1.1.5", @@ -18531,7 +21804,8 @@ "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, "requires": { "ee-first": "1.1.1" } @@ -18539,7 +21813,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -18547,12 +21821,22 @@ "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "requires": { "mimic-fn": "^1.0.0" } }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "peer": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -18567,23 +21851,116 @@ "word-wrap": "^1.2.3" } }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "peer": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "peer": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==" }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -18595,6 +21972,12 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "peer": true + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -18611,6 +21994,15 @@ "p-limit": "^3.0.2" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -18627,14 +22019,6 @@ "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "pako": { @@ -18651,6 +22035,15 @@ "callsites": "^3.0.0" } }, + "parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "peer": true, + "requires": { + "pngjs": "^3.3.0" + } + }, "parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -18676,6 +22069,16 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "peer": true, + "requires": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + } + }, "path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -18685,18 +22088,18 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "peer": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "peer": true }, "path-parse": { @@ -18707,7 +22110,13 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true }, "pathval": { "version": "1.1.1", @@ -18718,7 +22127,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -18798,11 +22207,17 @@ "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "peer": true } } }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "peer": true + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -18812,9 +22227,15 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "dev": true }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "peer": true + }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -18835,8 +22256,7 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise": { "version": "7.3.1", @@ -18847,10 +22267,26 @@ "asap": "~2.0.3" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "peer": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -18891,7 +22327,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -18912,11 +22347,11 @@ } }, "pvtsutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.2.tgz", - "integrity": "sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.4.0" } }, "pvutils": { @@ -18924,10 +22359,17 @@ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" }, + "qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "peer": true + }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "peer": true }, "querystringify": { "version": "2.2.0", @@ -18944,7 +22386,7 @@ "quickly-copy-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", + "integrity": "sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg==", "optional": true, "requires": { "mkdirp": "~0.5.0" @@ -18965,12 +22407,13 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "peer": true, "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", + "bytes": "3.1.0", + "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -18979,7 +22422,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "devOptional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -18990,8 +22432,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "devOptional": true + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" } } }, @@ -19032,7 +22473,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "safe-buffer": { "version": "5.1.2", @@ -19053,7 +22494,7 @@ "reduce-flatten": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", "optional": true }, "reflect-metadata": { @@ -19082,21 +22523,22 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", "peer": true, "requires": { "@babel/runtime": "^7.8.4" } }, "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -19155,11 +22597,17 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "peer": true } } }, + "remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", + "peer": true + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -19187,6 +22635,16 @@ "uuid": "^3.3.2" }, "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", @@ -19197,23 +22655,45 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "peer": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "peer": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "peer": true }, "reselect": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", - "integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==", "peer": true }, "resolve": { @@ -19235,7 +22715,7 @@ "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dev": true, "requires": { "lowercase-keys": "^1.0.0" @@ -19244,8 +22724,7 @@ "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -19275,7 +22754,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, "requires": { "glob": "^7.1.3" } @@ -19304,13 +22782,13 @@ "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", "optional": true }, "rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "optional": true, "requires": { "rx-lite": "*" @@ -19321,6 +22799,13 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true, + "peer": true + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -19356,9 +22841,9 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "semver-diff": { "version": "3.1.1", @@ -19367,34 +22852,26 @@ "dev": true, "requires": { "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -19408,14 +22885,49 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" } } }, @@ -19437,31 +22949,26 @@ } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "setprototypeof": { "version": "1.2.0", @@ -19488,7 +22995,7 @@ "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "peer": true, "requires": { "shebang-regex": "^1.0.0" @@ -19497,7 +23004,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "peer": true }, "side-channel": { @@ -19516,16 +23023,33 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "simple-plist": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.0.tgz", - "integrity": "sha512-uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", "peer": true, "requires": { "bplist-creator": "0.1.0", - "bplist-parser": "0.3.0", - "plist": "^3.0.4" + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + }, + "dependencies": { + "bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "peer": true, + "requires": { + "big-integer": "1.6.x" + } + } } }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -19557,25 +23081,10 @@ "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", "peer": true }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { "version": "0.5.21", @@ -19584,19 +23093,12 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "optional": true, "requires": { "memory-pager": "^1.0.2" @@ -19634,11 +23136,19 @@ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "optional": true }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "peer": true, + "requires": { + "through": "2" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "sshpk": { "version": "1.17.0", @@ -19659,19 +23169,28 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" } } }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "peer": true, + "requires": { + "minipass": "^3.1.1" + } + }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "stream-buffers": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", "peer": true }, "string_decoder": { @@ -19700,15 +23219,15 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "optional": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "optional": true, "requires": { "ansi-regex": "^3.0.0" @@ -19717,21 +23236,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "strip-ansi": { @@ -19742,16 +23263,28 @@ "ansi-regex": "^5.0.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "peer": true + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "peer": true + }, "sucrase": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", - "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.21.0.tgz", + "integrity": "sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==", "peer": true, "requires": { "commander": "^4.0.0", @@ -19770,6 +23303,12 @@ } } }, + "sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "peer": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -19778,6 +23317,16 @@ "has-flag": "^4.0.0" } }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "peer": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -19829,32 +23378,91 @@ } }, "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "peer": true, "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + } + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "peer": true + }, + "tempy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "peer": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "peer": true + }, + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "peer": true + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "peer": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true } } }, "test-value": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", "optional": true, "requires": { "array-back": "^1.0.3", @@ -19864,7 +23472,7 @@ "array-back": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "optional": true, "requires": { "typical": "^2.6.0" @@ -19875,8 +23483,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "thenify": { "version": "3.3.1", @@ -19889,7 +23496,7 @@ "thenify-all": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "requires": { "thenify": ">= 3.1.0 < 4" } @@ -19897,8 +23504,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "tiny-emitter": { "version": "2.1.0", @@ -19909,7 +23515,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -19917,7 +23522,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "peer": true }, "to-readable-stream": { @@ -19935,9 +23540,10 @@ } }, "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "peer": true }, "toml": { "version": "2.3.6", @@ -19957,7 +23563,7 @@ "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "requires": { "abbrev": "1" @@ -19982,6 +23588,12 @@ "punycode": "^2.1.1" } }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==", + "peer": true + }, "ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -19991,7 +23603,7 @@ "ts-typed-json": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", + "integrity": "sha512-9VrASRmfrPbsuXvl9rdq82TzGs3Qg7D8eI5vF6LOLBhFh5sju5wbpE73DzxUtyQ954kfVO9yfF9NNgXAJ16cPw==", "optional": true, "requires": { "rsvp": "^3.5.0" @@ -20006,9 +23618,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tslint": { "version": "6.1.3", @@ -20040,15 +23652,6 @@ "color-convert": "^1.9.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -20072,7 +23675,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "commander": { @@ -20090,25 +23693,15 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -20152,7 +23745,7 @@ "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { "safe-buffer": "^5.0.1" } @@ -20229,6 +23822,11 @@ "zen-observable-ts": "^1.0.0" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -20248,6 +23846,14 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -20269,9 +23875,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "yargs": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz", - "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -20290,15 +23896,15 @@ } }, "typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", "dev": true }, "typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "optional": true }, "ua-parser-js": { @@ -20308,19 +23914,19 @@ "peer": true }, "uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", + "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", "optional": true }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -20358,11 +23964,28 @@ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "peer": true }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "peer": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "peer": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "requires": { "crypto-random-string": "^2.0.0" } @@ -20375,7 +23998,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "update-notifier": { "version": "5.1.0", @@ -20400,9 +24023,9 @@ }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20418,6 +24041,12 @@ "punycode": "^2.1.0" } }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==", + "peer": true + }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -20431,7 +24060,7 @@ "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, "requires": { "prepend-http": "^2.0.0" @@ -20445,12 +24074,12 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { "version": "3.4.0", @@ -20463,6 +24092,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", + "peer": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -20476,8 +24111,7 @@ "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "requires": { "builtins": "^1.0.3" } @@ -20485,12 +24119,12 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -20500,26 +24134,34 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" } } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "requires": { + "defaults": "^1.0.3" + } + }, "web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" }, "webcrypto-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.1.tgz", - "integrity": "sha512-Gw2zLzYSJ7Imp5lLDu3CcWB5oTTACMDEE2PjoLfttGgIhd7BfackBdVgEzd9ZM/i65gpNq0+IelL0JZ48QwzNg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", "requires": { - "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/asn1-schema": "^2.1.6", "@peculiar/json-schema": "^1.1.12", - "@types/web": "^0.0.55", - "asn1js": "^2.2.0", - "pvtsutils": "^1.2.2", - "tslib": "^2.3.1" + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" } }, "webidl-conversions": { @@ -20527,12 +24169,6 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "peer": true - }, "whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", @@ -20575,16 +24211,16 @@ } }, "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "is-typed-array": "^1.1.9" } }, "wide-align": { @@ -20624,6 +24260,12 @@ } } }, + "wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "peer": true + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -20633,7 +24275,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "optional": true }, "wordwrapjs": { @@ -20682,7 +24324,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "2.4.3", @@ -20722,7 +24364,7 @@ "xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true }, "xml2js": { @@ -20750,7 +24392,7 @@ "xmldom": { "version": "0.1.19", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", - "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=" + "integrity": "sha512-pDyxjQSFQgNHkU+yjvoF+GXVGJU7e9EnOg/KcGMDihBIKjTsOeDYaECwC/O9bsUWKY+Sd9izfE43JXC46EOHKA==" }, "y18n": { "version": "5.0.8", @@ -20828,6 +24470,11 @@ "@types/zen-observable": "0.8.3", "zen-observable": "0.8.15" } + }, + "zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==" } } } diff --git a/guardian-service/package.json b/guardian-service/package.json index fd646724c1..d9ac3bdcee 100644 --- a/guardian-service/package.json +++ b/guardian-service/package.json @@ -11,33 +11,31 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { - "@hashgraph/did-sdk-js": "0.1.1", - "@hashgraph/sdk": "2.12.1", - "@transmute/credentials-context": "0.7.0-unstable.40", - "@transmute/did-context": "0.7.0-unstable.40", - "@transmute/ed25519-signature-2018": "0.7.0-unstable.40", - "@transmute/json-web-signature": "0.7.0-unstable.40", - "@transmute/jsonld-schema": "0.7.0-unstable.40", - "@transmute/security-context": "0.7.0-unstable.40", - "@transmute/vc.js": "0.7.0-unstable.40", + "@guardian/common": "^2.2.0-prerelease", + "@guardian/interfaces": "^2.2.0-prerelease", + "@hashgraph/sdk": "^2.15.0", + "@transmute/credentials-context": "^0.7.0-unstable.60", + "@transmute/did-context": "^0.7.0-unstable.60", + "@transmute/ed25519-signature-2018": "^0.7.0-unstable.60", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/vc.js": "^0.7.0-unstable.60", "ajv": "^8.10.0", "ajv-formats": "^2.1.1", "axios": "^0.25.0", "bs58": "^4.0.1", - "common": "file:../common", "cors": "^2.8.5", "cron": "^2.0.0", "deep-equal": "^2.0.5", "dotenv": "^16.0.0", "express": "^4.17.1", "fs-extra": "^10.0.0", - "interfaces": "file:../interfaces", "jszip": "^3.7.1", - "logger-helper": "file:../logger-helper", "mathjs": "^10.1.0", "module-alias": "^2.2.2", "moment": "^2.29.1", - "mongodb": "^4.2.1", + "mongodb": "4.2.1", "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" }, @@ -58,6 +56,10 @@ }, "license": "Apache-2.0", "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], "name": "guardian-service", "scripts": { "build": "tsc", @@ -70,5 +72,6 @@ "test:network": "mocha tests/network-tests/**/*.test.js", "test:stability": "mocha tests/stability.test.js" }, - "version": "2.1.3" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/guardian-service/src/api/api-response.ts b/guardian-service/src/api/api-response.ts index b8eaf37dfc..1ba7b2ad83 100644 --- a/guardian-service/src/api/api-response.ts +++ b/guardian-service/src/api/api-response.ts @@ -1,5 +1,5 @@ -import { MessageBrokerChannel, MessageResponse, ApplicationState, MessageInitialization } from "common"; -import { ApplicationStates } from "interfaces"; +import { MessageBrokerChannel, MessageResponse, ApplicationState, MessageInitialization } from "@guardian/common"; +import { ApplicationStates } from "@guardian/interfaces"; export function ApiResponse(channel: MessageBrokerChannel, event: any, handleFunc: (msg) => Promise>): void { const state = new ApplicationState(); diff --git a/guardian-service/src/api/approve.service.ts b/guardian-service/src/api/approve.service.ts index 729e15e594..166e4af850 100644 --- a/guardian-service/src/api/approve.service.ts +++ b/guardian-service/src/api/approve.service.ts @@ -1,8 +1,8 @@ import { ApprovalDocument } from '@entity/approval-document'; import { MongoRepository } from 'typeorm'; import { ApiResponse } from '@api/api-response'; -import { MessageBrokerChannel, MessageResponse } from 'common'; -import { MessageAPI, IApprovalDocument } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse } from '@guardian/common'; +import { MessageAPI, IApprovalDocument } from '@guardian/interfaces'; /** * Connecting to the message broker methods of working with Approve documents. diff --git a/guardian-service/src/api/config.service.ts b/guardian-service/src/api/config.service.ts index f8b85370b5..1eb1c12e36 100644 --- a/guardian-service/src/api/config.service.ts +++ b/guardian-service/src/api/config.service.ts @@ -1,14 +1,13 @@ import { Settings } from '@entity/settings'; import { Topic } from '@entity/topic'; -import { Logger } from 'logger-helper'; import { MongoRepository } from 'typeorm'; import { ApiResponse } from '@api/api-response'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { MessageAPI, CommonSettings } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { MessageAPI, CommonSettings } from '@guardian/interfaces'; /** * Connecting to the message broker methods of working with root address book. - * + * * @param channel - channel * @param approvalDocumentRepository - table with approve documents */ @@ -24,7 +23,7 @@ export const configAPI = async function ( /** * Update settings - * + * */ ApiResponse(channel, MessageAPI.UPDATE_SETTINGS, async (msg) => { try { @@ -64,15 +63,15 @@ export const configAPI = async function ( } return new MessageResponse(null); } - catch (e) { - new Logger().error(e.message, ['GUARDIAN_SERVICE']); - return new MessageError(e); + catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); /** * Get settings - * + * */ ApiResponse(channel, MessageAPI.GET_SETTINGS, async (msg) => { try { @@ -87,9 +86,9 @@ export const configAPI = async function ( operatorKey: operatorKey?.value || process.env.OPERATOR_KEY }); } - catch (e) { - new Logger().error(e.message, ['GUARDIAN_SERVICE']); - return new MessageError(e); + catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); } diff --git a/guardian-service/src/api/demo.ts b/guardian-service/src/api/demo.ts index 29d9de5dc1..ed0f6c96e7 100644 --- a/guardian-service/src/api/demo.ts +++ b/guardian-service/src/api/demo.ts @@ -1,11 +1,10 @@ -import { Logger } from 'logger-helper'; import { getMongoRepository, MongoRepository } from 'typeorm'; import { Settings } from '@entity/settings'; import { HederaSDKHelper } from '@hedera-modules'; import { ApiResponse } from '@api/api-response'; import { Policy } from '@entity/policy'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { MessageAPI } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { MessageAPI } from '@guardian/interfaces'; export const demoAPI = async function ( channel: MessageBrokerChannel, @@ -28,7 +27,7 @@ export const demoAPI = async function ( key: treasury.key.toString() }); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }); @@ -50,7 +49,7 @@ export const demoAPI = async function ( }); return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }) diff --git a/guardian-service/src/api/documents.service.ts b/guardian-service/src/api/documents.service.ts index 02fa75a0dc..facee63fe7 100644 --- a/guardian-service/src/api/documents.service.ts +++ b/guardian-service/src/api/documents.service.ts @@ -10,10 +10,10 @@ import { IVCDocument, IVPDocument, MessageAPI, -} from 'interfaces'; +} from '@guardian/interfaces'; import { MongoRepository } from 'typeorm'; import { ApiResponse } from '@api/api-response'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError } from '@guardian/common'; /** * Connect to the message broker methods of working with VC, VP and DID Documents @@ -132,8 +132,8 @@ export const documentsAPI = async function ( return new MessageResponse(vcDocuments); } } - catch (e) { - return new MessageError(e.message); + catch (error) { + return new MessageError(error); } }); diff --git a/guardian-service/src/api/loader.service.ts b/guardian-service/src/api/loader.service.ts index 378941d19f..a48e653fa8 100644 --- a/guardian-service/src/api/loader.service.ts +++ b/guardian-service/src/api/loader.service.ts @@ -1,15 +1,14 @@ import { Schema } from '@entity/schema'; import { MongoRepository } from 'typeorm'; import { DidDocument } from '@entity/did-document'; -import { Logger } from 'logger-helper'; import { DidRootKey } from '@hedera-modules'; import { ApiResponse } from '@api/api-response'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { MessageAPI } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { MessageAPI } from '@guardian/interfaces'; /** * Connect to the message broker methods of working with Documents Loader. - * + * * @param channel - channel * @param didDocumentLoader - DID Documents Loader * @param schemaDocumentLoader - Schema Documents Loader @@ -21,10 +20,10 @@ export const loaderAPI = async function ( ): Promise { /** * Return DID Document - * + * * @param {Object} payload - filters * @param {string} payload.did - DID - * + * * @returns {any} - DID Document */ ApiResponse(channel, MessageAPI.LOAD_DID_DOCUMENT, async (msg) => { @@ -38,15 +37,15 @@ export const loaderAPI = async function ( } return new MessageError('Document not found'); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); /** * Load schema document * @param {string} [payload.url] Document URL - * + * * @returns Schema document */ ApiResponse(channel, MessageAPI.LOAD_SCHEMA_DOCUMENT, async (msg) => { @@ -68,15 +67,15 @@ export const loaderAPI = async function ( } } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); /** * Get schema context * @param {string} [payload.url] Context URL - * + * * @returns Schema context */ ApiResponse(channel, MessageAPI.LOAD_SCHEMA_CONTEXT, async (msg) => { @@ -97,8 +96,8 @@ export const loaderAPI = async function ( } } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); } diff --git a/guardian-service/src/api/profile.service.ts b/guardian-service/src/api/profile.service.ts index 278a66cfc9..7b7ae9f5bd 100644 --- a/guardian-service/src/api/profile.service.ts +++ b/guardian-service/src/api/profile.service.ts @@ -2,11 +2,11 @@ import { DidDocumentStatus, DocumentStatus, MessageAPI, + Schema, SchemaEntity, + SchemaHelper, TopicType -} from 'interfaces'; -import { MongoRepository } from 'typeorm'; -import { Logger } from 'logger-helper'; +} from '@guardian/interfaces'; import { VcHelper } from '@helpers/vcHelper'; import { KeyType, Wallet } from '@helpers/wallet'; import { Users } from '@helpers/users'; @@ -16,15 +16,39 @@ import { HederaSDKHelper, MessageAction, MessageServer, + RegistrationMessage, VCMessage } from '@hedera-modules'; import { getMongoRepository } from 'typeorm'; import { Topic } from '@entity/topic'; import { DidDocument as DidDocumentCollection } from '@entity/did-document'; import { VcDocument as VcDocumentCollection } from '@entity/vc-document'; +import { Schema as SchemaCollection } from '@entity/schema'; import { ApiResponse } from '@api/api-response'; import { TopicHelper } from '@helpers/topicHelper'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { publishSystemSchema } from './schema.service'; +import { Settings } from '@entity/settings'; + +const getGlobalTopic = async function (): Promise { + try { + const topicId = await getMongoRepository(Settings).findOne({ + name: 'INITIALIZATION_TOPIC_ID' + }); + const topicKey = await getMongoRepository(Settings).findOne({ + name: 'INITIALIZATION_TOPIC_KEY' + }); + const INITIALIZATION_TOPIC_ID = topicId?.value || process.env.INITIALIZATION_TOPIC_ID; + const INITIALIZATION_TOPIC_KEY = topicKey?.value || process.env.INITIALIZATION_TOPIC_KEY; + return { + topicId: INITIALIZATION_TOPIC_ID, + key: INITIALIZATION_TOPIC_KEY + } as Topic + } catch (error) { + console.log(error); + return null; + } +} /** * Connect to the message broker methods of working with Address books. @@ -55,22 +79,31 @@ export const profileAPI = async function (channel: MessageBrokerChannel) { const balance = await client.balance(user.hederaAccountId); return new MessageResponse(balance); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 500); + return new MessageError(error, 500); } }) ApiResponse(channel, MessageAPI.CREATE_USER_PROFILE, async (msg) => { try { + const logger = new Logger(); + const { hederaAccountId, hederaAccountKey, parent, - vcDocument + vcDocument, + entity } = msg; - let topic: any, newTopic = false; + let topic: Topic = null; + let newTopic = false; + + let globalTopic = await getGlobalTopic(); + + const messageServer = new MessageServer(hederaAccountId, hederaAccountKey); + if (parent) { topic = await getMongoRepository(Topic).findOne({ owner: parent, @@ -79,88 +112,184 @@ export const profileAPI = async function (channel: MessageBrokerChannel) { } if (!topic) { + logger.info('Create User Topic', ['GUARDIAN_SERVICE']); const topicHelper = new TopicHelper(hederaAccountId, hederaAccountKey); topic = await topicHelper.create({ type: TopicType.UserTopic, name: TopicType.UserTopic, description: TopicType.UserTopic, - owner: topic, + owner: null, policyId: null, policyUUID: null }); - await topicHelper.link(topic, null, null); + await topicHelper.oneWayLink(topic, globalTopic, null); newTopic = true; } - let didMessage: DIDMessage; - let vcMessage: VCMessage; - let didDoc: DidDocumentCollection; - let vcDoc: VcDocumentCollection; + messageServer.setTopicObject(topic); + // ------------------------ + // <-- Publish DID Document + // ------------------------ + logger.info('Create DID Document', ['GUARDIAN_SERVICE']); const didObject = DIDDocument.create(hederaAccountKey, topic.topicId); const userDID = didObject.getDid(); - didMessage = new DIDMessage(MessageAction.CreateDID); + const didMessage = new DIDMessage(MessageAction.CreateDID); didMessage.setDocument(didObject); - didDoc = getMongoRepository(DidDocumentCollection).create({ + let didDoc = getMongoRepository(DidDocumentCollection).create({ did: didMessage.did, document: didMessage.document }); didDoc = await getMongoRepository(DidDocumentCollection).save(didDoc); - if (vcDocument) { - const vcHelper = new VcHelper(); - const vc: any = vcDocument || {}; - vc.id = userDID; - const vcObject = await vcHelper.createVC(userDID, hederaAccountKey, vc); - vcMessage = new VCMessage(MessageAction.CreateVC); - vcMessage.setDocument(vcObject); - vcDoc = getMongoRepository(VcDocumentCollection).create({ - hash: vcMessage.hash, - owner: didMessage.did, - document: vcMessage.document, - type: SchemaEntity.ROOT_AUTHORITY - }); - vcDoc = await getMongoRepository(VcDocumentCollection).save(vcDoc); - } - - if (newTopic) { - topic.owner = didMessage.did; - await getMongoRepository(Topic).update(topic.id, topic); - } - - const messageServer = new MessageServer(hederaAccountId, hederaAccountKey); try { - const didMessageResult = await messageServer.setTopicObject(topic).sendMessage(didMessage) + const didMessageResult = await messageServer + .setTopicObject(topic) + .sendMessage(didMessage) didDoc.status = DidDocumentStatus.CREATE; didDoc.messageId = didMessageResult.getId(); didDoc.topicId = didMessageResult.getTopicId(); getMongoRepository(DidDocumentCollection).update(didDoc.id, didDoc); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - console.error(error); + logger.error(error, ['GUARDIAN_SERVICE']); didDoc.status = DidDocumentStatus.FAILED; await getMongoRepository(DidDocumentCollection).update(didDoc.id, didDoc); } - if (vcMessage) { + // ------------------------ + // Publish DID Document --> + // ------------------------ + + // ------------------ + // <-- Publish Schema + // ------------------ + let schemaObject: Schema; + try { + let schema: SchemaCollection = null; + + schema = await getMongoRepository(SchemaCollection).findOne({ + entity: SchemaEntity.STANDARD_REGISTRY, + readonly: true, + topicId: topic.topicId + }); + if (!schema) { + schema = await getMongoRepository(SchemaCollection).findOne({ + entity: SchemaEntity.STANDARD_REGISTRY, + system: true, + active: true + }); + if (schema) { + logger.info('Publish System Schema (STANDARD_REGISTRY)', ['GUARDIAN_SERVICE']); + schema.creator = didMessage.did; + schema.owner = didMessage.did; + const item = await publishSystemSchema(schema, messageServer, MessageAction.PublishSystemSchema); + const newItem = getMongoRepository(SchemaCollection).create(item); + await getMongoRepository(SchemaCollection).save(newItem); + } + } + + schema = await getMongoRepository(SchemaCollection).findOne({ + entity: SchemaEntity.USER, + readonly: true, + topicId: topic.topicId + }); + if (!schema) { + schema = await getMongoRepository(SchemaCollection).findOne({ + entity: SchemaEntity.USER, + system: true, + active: true + }); + if (schema) { + logger.info('Publish System Schema (USER)', ['GUARDIAN_SERVICE']); + schema.creator = didMessage.did; + schema.owner = didMessage.did; + const item = await publishSystemSchema(schema, messageServer, MessageAction.PublishSystemSchema); + const newItem = getMongoRepository(SchemaCollection).create(item); + await getMongoRepository(SchemaCollection).save(newItem); + } + } + + if (entity) { + schema = await getMongoRepository(SchemaCollection).findOne({ + entity: entity, + readonly: true, + topicId: topic.topicId + }); + if (schema) { + schemaObject = new Schema(schema); + } + } + } catch (error) { + logger.error(error, ['GUARDIAN_SERVICE']); + } + // ------------------ + // Publish Schema --> + // ------------------ + + // ----------------------- + // <-- Publish VC Document + // ----------------------- + if (vcDocument) { + logger.info('Create VC Document', ['GUARDIAN_SERVICE']); + + const vcHelper = new VcHelper(); + + let credentialSubject: any = { ...vcDocument } || {}; + credentialSubject.id = userDID; + if (schemaObject) { + credentialSubject = SchemaHelper.updateObjectContext(schemaObject, credentialSubject); + } + + const vcObject = await vcHelper.createVC(userDID, hederaAccountKey, credentialSubject); + const vcMessage = new VCMessage(MessageAction.CreateVC); + vcMessage.setDocument(vcObject); + let vcDoc = getMongoRepository(VcDocumentCollection).create({ + hash: vcMessage.hash, + owner: didMessage.did, + document: vcMessage.document, + type: schemaObject?.entity + }); + vcDoc = await getMongoRepository(VcDocumentCollection).save(vcDoc); + try { - const vcMessageResult = await messageServer.setTopicObject(topic).sendMessage(vcMessage); + const vcMessageResult = await messageServer + .setTopicObject(topic) + .sendMessage(vcMessage); vcDoc.hederaStatus = DocumentStatus.ISSUE; vcDoc.messageId = vcMessageResult.getId(); vcDoc.topicId = vcMessageResult.getTopicId(); getMongoRepository(VcDocumentCollection).update(vcDoc.id, vcDoc); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - console.error(error); + logger.error(error, ['GUARDIAN_SERVICE']); vcDoc.hederaStatus = DocumentStatus.FAILED; await getMongoRepository(VcDocumentCollection).update(vcDoc.id, vcDoc); } } + // ----------------------- + // Publish VC Document --> + // ----------------------- + + if (newTopic) { + topic.owner = didMessage.did; + topic.parent = globalTopic?.topicId; + await getMongoRepository(Topic).update(topic.id, topic); + } + + if (globalTopic && newTopic) { + const attributes = vcDocument ? { ...vcDocument } : {}; + delete attributes.type; + delete attributes['@context']; + const regMessage = new RegistrationMessage(MessageAction.Init); + regMessage.setDocument(didMessage.did, topic?.topicId, attributes); + const result = await messageServer + .setTopicObject(globalTopic) + .sendMessage(regMessage) + } return new MessageResponse(userDID); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 500); + return new MessageError(error, 500); } }) } diff --git a/guardian-service/src/api/schema.service.ts b/guardian-service/src/api/schema.service.ts index f7bb6d9813..f03fb1af89 100644 --- a/guardian-service/src/api/schema.service.ts +++ b/guardian-service/src/api/schema.service.ts @@ -1,4 +1,5 @@ import { Schema as SchemaCollection } from '@entity/schema'; +import { Topic } from '@entity/topic'; import { ISchema, MessageAPI, @@ -7,93 +8,80 @@ import { TopicType, SchemaHelper, ModelHelper, -} from 'interfaces'; -import { getMongoRepository } from 'typeorm'; -import { readJSON } from 'fs-extra'; +} from '@guardian/interfaces'; import path from 'path'; +import { readJSON } from 'fs-extra'; +import { getMongoRepository, MongoRepository } from 'typeorm'; import { schemasToContext } from '@transmute/jsonld-schema'; -import { Logger } from 'logger-helper'; import { MessageAction, MessageServer, MessageType, SchemaMessage, UrlType } from '@hedera-modules'; import { replaceValueRecursive } from '@helpers/utils'; import { Users } from '@helpers/users'; import { ApiResponse } from '@api/api-response'; -import { Topic } from '@entity/topic'; import { TopicHelper } from '@helpers/topicHelper'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; export const schemaCache = {}; /** - * Creation of default schemes. + * Creation of default schemas. * - * @param schemaRepository - table with schemes + * @param schemaRepository - table with schemas */ export async function setDefaultSchema() { - const fileConfig = path.join(process.cwd(), 'system-schemes', 'system-schemes.json'); + const fileConfig = path.join(process.cwd(), 'system-schemas', 'system-schemas.json'); let fileContent: any; try { fileContent = await readJSON(fileConfig); } catch (error) { - throw ('you need to create a file \'system-schemes.json\''); + throw ('you need to create a file \'system-schemas.json\''); } - if (!fileContent.hasOwnProperty('MINT_NFTOKEN')) { - throw ('You need to fill MINT_NFTOKEN field in system-schemes.json file'); + const map: any = {}; + for (const schema of fileContent) { + map[schema.entity] = schema; } - if (!fileContent.hasOwnProperty('MINT_TOKEN')) { - throw ('You need to fill MINT_TOKEN field in system-schemes.json file'); + if (!map.hasOwnProperty(SchemaEntity.MINT_NFTOKEN)) { + throw (`You need to fill ${SchemaEntity.MINT_NFTOKEN} field in system-schemas.json file`); } - if (!fileContent.hasOwnProperty('POLICY')) { - throw ('You need to fill POLICY field in system-schemes.json file'); + if (!map.hasOwnProperty(SchemaEntity.MINT_TOKEN)) { + throw (`You need to fill ${SchemaEntity.MINT_TOKEN} field in system-schemas.json file`); } - if (!fileContent.hasOwnProperty('ROOT_AUTHORITY')) { - throw ('You need to fill ROOT_AUTHORITY field in system-schemes.json file'); + if (!map.hasOwnProperty(SchemaEntity.POLICY)) { + throw (`You need to fill ${SchemaEntity.POLICY} field in system-schemas.json file`); } - if (!fileContent.hasOwnProperty('WIPE_TOKEN')) { - throw ('You need to fill WIPE_TOKEN field in system-schemes.json file'); + if (!map.hasOwnProperty(SchemaEntity.STANDARD_REGISTRY)) { + throw (`You need to fill ${SchemaEntity.STANDARD_REGISTRY} field in system-schemas.json file`); } - const messages = Object.values(fileContent); - const wait = async (timeout: number) => { - return new Promise(function (resolve, reject) { - setTimeout(function () { - resolve(true) - }, timeout); - }); + if (!map.hasOwnProperty(SchemaEntity.WIPE_TOKEN)) { + throw (`You need to fill ${SchemaEntity.WIPE_TOKEN} field in system-schemas.json file`); } - const fn = async () => { - try { - const existingSchemes = await getMongoRepository(SchemaCollection).find({ - where: { - messageId: { $in: messages } - } - }); - for (let i = 0; i < messages.length; i++) { - const messageId = messages[i] as string; - const existingItem = existingSchemes.find(s => s.messageId === messageId); - if (existingItem) { - console.log(`Skip schema: ${existingItem.messageId}`); - continue; - } - const schema = await loadSchema(messageId, null) as ISchema; - schema.owner = null; - schema.creator = null; - schema.readonly = true; - console.log(`Start loading schema: ${messageId}`); - const item: any = getMongoRepository(SchemaCollection).create(schema); - await getMongoRepository(SchemaCollection).save(item); - console.log(`Created schema: ${item.messageId}`); - } - } catch (error) { - await wait(10000); - await fn(); + + const fn = async (schema: any) => { + const existingSchemas = await getMongoRepository(SchemaCollection).findOne({ uuid: schema.uuid }); + if (existingSchemas) { + console.log(`Skip schema: ${schema.uuid}`); + return; } + schema.owner = null; + schema.creator = null; + schema.readonly = true; + schema.system = true; + schema.active = true; + const item: any = getMongoRepository(SchemaCollection).create(schema); + await getMongoRepository(SchemaCollection).save(item); + console.log(`Created schema: ${schema.uuid}`); } - await fn(); + + await fn(map[SchemaEntity.MINT_NFTOKEN]); + await fn(map[SchemaEntity.MINT_TOKEN]); + await fn(map[SchemaEntity.POLICY]); + await fn(map[SchemaEntity.STANDARD_REGISTRY]); + await fn(map[SchemaEntity.WIPE_TOKEN]); } const loadSchema = async function (messageId: string, owner: string) { @@ -104,7 +92,7 @@ const loadSchema = async function (messageId: string, owner: string) { } const messageServer = new MessageServer(); log.info(`loadSchema: ${messageId}`, ['GUARDIAN_SERVICE']); - const message = await messageServer.getMessage(messageId); + const message = await messageServer.getMessage(messageId, MessageType.Schema); log.info(`loadedSchema: ${messageId}`, ['GUARDIAN_SERVICE']); const schemaToImport: any = { uuid: message.uuid, @@ -114,6 +102,8 @@ const loadSchema = async function (messageId: string, owner: string) { entity: message.entity as SchemaEntity, status: SchemaStatus.PUBLISHED, readonly: false, + system: false, + active: false, document: message.getDocument(), context: message.getContext(), version: message.version, @@ -130,8 +120,7 @@ const loadSchema = async function (messageId: string, owner: string) { schemaCache[messageId] = { ...schemaToImport }; return schemaToImport; } catch (error) { - log.error(error.message, ['GUARDIAN_SERVICE']); - console.error(error.message); + log.error(error, ['GUARDIAN_SERVICE']); throw new Error(`Cannot load schema ${messageId}`); } } @@ -160,10 +149,10 @@ export async function incrementSchemaVersion(iri: string, owner: string): Promis throw new Error(`Invalid increment schema version parameter`); } - const schema = await getMongoRepository(SchemaCollection).findOne({ iri: iri }); + const schema = await getMongoRepository(SchemaCollection).findOne({ iri, owner }); if (!schema) { - throw new Error(`Schema not found: ${iri}`); + throw new Error(`Schema not found: ${iri} for owner ${owner}`); } if (schema.status == SchemaStatus.PUBLISHED) { @@ -173,10 +162,10 @@ export async function incrementSchemaVersion(iri: string, owner: string): Promis const { version, previousVersion } = SchemaHelper.getVersion(schema); let newVersion = '1.0.0'; if (previousVersion) { - const schemes = await getMongoRepository(SchemaCollection).find({ uuid: schema.uuid }); + const schemas = await getMongoRepository(SchemaCollection).find({ uuid: schema.uuid }); const versions = []; - for (let i = 0; i < schemes.length; i++) { - const element = schemes[i]; + for (let i = 0; i < schemas.length; i++) { + const element = schemas[i]; const { version, previousVersion } = SchemaHelper.getVersion(element); versions.push(version, previousVersion); } @@ -190,7 +179,8 @@ export async function incrementSchemaVersion(iri: string, owner: string): Promis async function createSchema(newSchema: ISchema, owner: string): Promise { const users = new Users(); const root = await users.getHederaAccount(owner); - const schemaObject = getMongoRepository(SchemaCollection).create(newSchema); + const schemaObject = getMongoRepository(SchemaCollection) + .create(newSchema) as SchemaCollection; let topic: Topic; if (newSchema.topicId) { @@ -207,12 +197,36 @@ async function createSchema(newSchema: ISchema, owner: string): Promise 0) { + throw new Error('Schema identifier already exist'); + } const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey); const message = new SchemaMessage(MessageAction.CreateSchema); @@ -247,20 +261,68 @@ export async function importSchemaByFiles(owner: string, files: ISchema[], topic SchemaHelper.setVersion(file, '', ''); await createSchema(file, owner); } - const schemesMap = []; + const schemasMap = []; uuidMap.forEach((v, k) => { - schemesMap.push({ + schemasMap.push({ oldUUID: k, newUUID: v, oldIRI: `#${k}`, newIRI: `#${v}` }) }); - return schemesMap; + return schemasMap; +} + +export async function publishSchema( + item: SchemaCollection, + version: string, + messageServer: MessageServer, + type?: MessageAction +): Promise { + SchemaHelper.updateVersion(item, version); + + const itemDocument = item.document; + const defsArray = itemDocument.$defs ? Object.values(itemDocument.$defs) : []; + item.context = schemasToContext([...defsArray, itemDocument]); + + const message = new SchemaMessage(type || MessageAction.PublishSchema); + message.setDocument(item); + const result = await messageServer + .sendMessage(message); + + const messageId = result.getId(); + const topicId = result.getTopicId(); + const contextUrl = result.getDocumentUrl(UrlType.url); + const documentUrl = result.getContextUrl(UrlType.url); + + item.status = SchemaStatus.PUBLISHED; + item.documentURL = documentUrl; + item.contextURL = contextUrl; + item.messageId = messageId; + item.topicId = topicId; + + SchemaHelper.updateIRI(item); + + return item; +} + +export async function publishSystemSchema( + item: SchemaCollection, + messageServer: MessageServer, + type?: MessageAction +): Promise { + item.id = undefined; + item.readonly = true; + item.system = false; + item.active = false; + item.version = undefined; + item.topicId = messageServer.getTopic(); + SchemaHelper.setVersion(item, undefined, undefined); + return await publishSchema(item, '1.0.0', messageServer, type); } -export async function publishSchema(id: string, version: string, owner: string): Promise { - const item = await getMongoRepository(SchemaCollection).findOne(id); +export async function findAndPublishSchema(id: string, version: string, owner: string): Promise { + let item = await getMongoRepository(SchemaCollection).findOne(id); if (!item) { throw new Error(`Schema not found: ${id}`); @@ -278,31 +340,13 @@ export async function publishSchema(id: string, version: string, owner: string): throw new Error('Invalid status'); } - SchemaHelper.updateVersion(item, version); - - const itemDocument = item.document; - const defsArray = itemDocument.$defs ? Object.values(itemDocument.$defs) : []; - item.context = schemasToContext([...defsArray, itemDocument]); - - const topic = await getMongoRepository(Topic).findOne({ topicId: item.topicId }); - const users = new Users(); const root = await users.getHederaAccount(owner); - const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey); - const message = new SchemaMessage(MessageAction.PublishSchema); - message.setDocument(item); - const result = await messageServer.setTopicObject(topic).sendMessage(message); - - const messageId = result.getId(); - const contextUrl = result.getDocumentUrl(UrlType.url); - const documentUrl = result.getContextUrl(UrlType.url); - - item.status = SchemaStatus.PUBLISHED; - item.documentURL = documentUrl; - item.contextURL = contextUrl; - item.messageId = messageId; + const topic = await getMongoRepository(Topic).findOne({ topicId: item.topicId }); + const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey) + .setTopicObject(topic); - SchemaHelper.updateIRI(item); + item = await publishSchema(item, version, messageServer, MessageAction.PublishSchema); await getMongoRepository(SchemaCollection).update(item.id, item); @@ -310,19 +354,22 @@ export async function publishSchema(id: string, version: string, owner: string): } /** - * Connect to the message broker methods of working with schemes. + * Connect to the message broker methods of working with schemas. * * @param channel - channel - * @param schemaRepository - table with schemes + * @param schemaRepository - table with schemas */ -export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRepository): Promise { +export const schemaAPI = async function ( + channel: MessageBrokerChannel, + schemaRepository: MongoRepository +): Promise { /** * Create schema * * @param {ISchema} payload - schema * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ ApiResponse(channel, MessageAPI.CREATE_SCHEMA, async (msg) => { try { @@ -330,10 +377,10 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe console.log('c', schemaObject) SchemaHelper.setVersion(schemaObject, null, schemaObject.version); await createSchema(schemaObject, schemaObject.owner); - const schemes = await schemaRepository.find(); - return new MessageResponse(schemes); + const schemas = await schemaRepository.find(); + return new MessageResponse(schemas); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }); @@ -343,7 +390,7 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * * @param {ISchema} payload - schema * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ ApiResponse(channel, MessageAPI.UPDATE_SCHEMA, async (msg) => { try { @@ -359,10 +406,10 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe SchemaHelper.updateIRI(item); await schemaRepository.update(item.id, item); } - const schemes = await schemaRepository.find(); - return new MessageResponse(schemes); + const schemas = await schemaRepository.find(); + return new MessageResponse(schemas); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }); @@ -372,29 +419,40 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * * @param {Object} [payload] - filters * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ ApiResponse(channel, MessageAPI.GET_SCHEMA, async (msg) => { try { if (!msg) { return new MessageError('Invalid load schema parameter'); } - const schema = await schemaRepository.findOne(msg.id); - return new MessageResponse(schema); + if (msg.id) { + const schema = await schemaRepository.findOne(msg.id); + return new MessageResponse(schema); + } + if (msg.type) { + const iri = `#${msg.type}`; + const schema = await schemaRepository.findOne({ + iri, + status: SchemaStatus.PUBLISHED + }); + return new MessageResponse(schema); + } + return new MessageError('Invalid load schema parameter'); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }); /** - * Return schemes + * Return schemas * * @param {Object} [payload] - filters * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ - ApiResponse(channel, MessageAPI.GET_SCHEMES, async (msg) => { + ApiResponse(channel, MessageAPI.GET_SCHEMAS, async (msg) => { try { if (!msg) { return new MessageError('Invalid load schema parameter'); @@ -403,7 +461,8 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe const { owner, uuid, topicId, pageIndex, pageSize } = msg; const filter: any = { where: { - readonly: false + readonly: false, + system: false } } @@ -427,13 +486,14 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe filter.skip = _pageIndex * _pageSize; } - const [schemes, count] = await schemaRepository.findAndCount(filter); + const [schemas, count] = await schemaRepository.findAndCount(filter); + return new MessageResponse({ - schemes, + schemas, count }); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); return new MessageError(error); } }); @@ -444,7 +504,7 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * @param {Object} payload - filters * @param {string} payload.id - schema id * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ ApiResponse(channel, MessageAPI.PUBLISH_SCHEMA, async (msg) => { try { @@ -452,15 +512,15 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe const id = msg.id as string; const version = msg.version as string; const owner = msg.owner as string; - const item = await publishSchema(id, version, owner); + const item = await findAndPublishSchema(id, version, owner); return new MessageResponse(item); } else { return new MessageError('Invalid id'); } } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -470,13 +530,12 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * @param {Object} payload - filters * @param {string} payload.id - schema id * - * @returns {ISchema[]} - all schemes + * @returns {ISchema[]} - all schemas */ ApiResponse(channel, MessageAPI.DELETE_SCHEMA, async (msg) => { try { - if (msg) { - const id = msg as string; - const item = await schemaRepository.findOne(id); + if (msg && msg.id) { + const item = await schemaRepository.findOne(msg.id); if (item) { if (item.topicId) { const topic = await getMongoRepository(Topic).findOne({ topicId: item.topicId }); @@ -492,10 +551,10 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe await schemaRepository.delete(item.id); } } - const schemes = await schemaRepository.find(); - return new MessageResponse(schemes); + const schemas = await schemaRepository.find(); + return new MessageResponse(schemas); } catch (error) { - return new MessageError(error.message); + return new MessageError(error); } }); @@ -506,7 +565,7 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * * @returns {Schema} Found or uploaded schema */ - ApiResponse(channel, MessageAPI.IMPORT_SCHEMES_BY_MESSAGES, async (msg) => { + ApiResponse(channel, MessageAPI.IMPORT_SCHEMAS_BY_MESSAGES, async (msg) => { try { if (!msg) { return new MessageError('Invalid import schema parameter'); @@ -523,12 +582,12 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe files.push(newSchema); } - const schemesMap = await importSchemaByFiles(owner, files, topicId); - return new MessageResponse(schemesMap); + const schemasMap = await importSchemaByFiles(owner, files, topicId); + return new MessageResponse(schemasMap); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -539,7 +598,7 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe * * @returns {Schema} Found or uploaded schema */ - ApiResponse(channel, MessageAPI.IMPORT_SCHEMES_BY_FILE, async (msg) => { + ApiResponse(channel, MessageAPI.IMPORT_SCHEMAS_BY_FILE, async (msg) => { try { if (!msg) { return new MessageError('Invalid import schema parameter'); @@ -549,12 +608,12 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe return new MessageError('Invalid import schema parameter'); } - const schemesMap = await importSchemaByFiles(owner, files, topicId); - return new MessageResponse(schemesMap); + const schemasMap = await importSchemaByFiles(owner, files, topicId); + return new MessageResponse(schemasMap); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -580,7 +639,7 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe const schema = await loadSchema(messageId, null); result.push(schema); } - + const messageServer = new MessageServer(); const uniqueTopics = result.map(res => res.topicId).filter(onlyUnique); const anotherSchemas: SchemaMessage[] = []; @@ -617,21 +676,21 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe } return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); /** - * Export schemes + * Export schemas * * @param {Object} payload - filters * @param {string[]} payload.ids - schema ids * * @returns {any} - Response result */ - ApiResponse(channel, MessageAPI.EXPORT_SCHEMES, async (msg) => { + ApiResponse(channel, MessageAPI.EXPORT_SCHEMAS, async (msg) => { try { const ids = msg as string[]; const schemas = await schemaRepository.findByIds(ids); @@ -657,8 +716,8 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe } return new MessageResponse(relationships); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -668,8 +727,124 @@ export const schemaAPI = async function (channel: MessageBrokerChannel, schemaRe const schema = await incrementSchemaVersion(iri, owner); return new MessageResponse(schema); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); + } + }); + + /** + * Create schema + * + * @param {ISchema} payload - schema + * + * @returns {ISchema[]} - all schemas + */ + ApiResponse(channel, MessageAPI.CREATE_SYSTEM_SCHEMA, async (msg) => { + try { + const schemaObject = msg as ISchema; + SchemaHelper.setVersion(schemaObject, null, null); + SchemaHelper.updateIRI(schemaObject); + schemaObject.status = SchemaStatus.DRAFT; + schemaObject.topicId = null; + schemaObject.iri = schemaObject.iri || `${schemaObject.uuid}`; + schemaObject.system = true; + schemaObject.active = false; + const item = await getMongoRepository(SchemaCollection).save(schemaObject); + return new MessageResponse(item); + } catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); + } + }); + + /** + * Return schemas + * + * @param {Object} [payload] - filters + * + * @returns {ISchema[]} - all schemas + */ + ApiResponse(channel, MessageAPI.GET_SYSTEM_SCHEMAS, async (msg) => { + try { + if (!msg) { + return new MessageError('Invalid load schema parameter'); + } + + const { owner, pageIndex, pageSize } = msg; + const filter: any = { + where: { + system: true + } + } + const _pageSize = parseInt(pageSize, 10); + const _pageIndex = parseInt(pageIndex, 10); + if (Number.isInteger(_pageSize) && Number.isInteger(_pageIndex)) { + filter.order = { createDate: 'DESC' }; + filter.take = _pageSize; + filter.skip = _pageIndex * _pageSize; + } + console.log(filter); + const [schemas, count] = await schemaRepository.findAndCount(filter); + return new MessageResponse({ + schemas, + count + }); + } catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); + } + }); + + + /** + * Delete a schema. + * + * @param {Object} payload - filters + * @param {string} payload.id - schema id + * + * @returns {ISchema[]} - all schemas + */ + ApiResponse(channel, MessageAPI.ACTIVE_SCHEMA, async (msg) => { + try { + if (msg && msg.id) { + const item = await schemaRepository.findOne(msg.id); + if (item) { + const schemas = await schemaRepository.find({ + entity: item.entity + }); + for (const schema of schemas) { + schema.active = schema.id.toString() == item.id.toString(); + } + await schemaRepository.save(schemas); + } + } + return new MessageResponse(null); + } catch (error) { + return new MessageError(error); + } + }); + + /** + * Return schema + * + * @param {Object} [payload] - filters + * + * @returns {ISchema[]} - all schemas + */ + ApiResponse(channel, MessageAPI.GET_SYSTEM_SCHEMA, async (msg) => { + try { + if (!msg || !msg.entity) { + return new MessageError('Invalid load schema parameter'); + } + const schema = await schemaRepository.findOne({ + entity: msg.entity, + system: true, + active: true + }); + return new MessageResponse(schema); + } catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); } diff --git a/guardian-service/src/api/token.service.ts b/guardian-service/src/api/token.service.ts index 8fde78c556..d308dc1e96 100644 --- a/guardian-service/src/api/token.service.ts +++ b/guardian-service/src/api/token.service.ts @@ -1,14 +1,12 @@ import { Token } from '@entity/token'; -import { Logger } from 'logger-helper'; import { MongoRepository } from 'typeorm'; import { KeyType, Wallet } from '@helpers/wallet'; import { Users } from '@helpers/users'; import { HederaSDKHelper } from '@hedera-modules'; import { ApiResponse } from '@api/api-response'; import { IAuthUser } from '@auth/auth.interface'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { MessageAPI, IToken } from 'interfaces'; -import { PrivateKey } from '@hashgraph/sdk'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { MessageAPI, IToken } from '@guardian/interfaces'; function getTokenInfo(info: any, token: any) { const tokenId = token.tokenId; @@ -47,7 +45,7 @@ function getTokenInfo(info: any, token: any) { /** * Connect to the message broker methods of working with tokens. - * + * * @param channel - channel * @param tokenRepository - table with tokens */ @@ -57,9 +55,9 @@ export const tokenAPI = async function ( ): Promise { /** * Create new token - * + * * @param {IToken} payload - token - * + * * @returns {IToken[]} - all tokens */ ApiResponse(channel, MessageAPI.SET_TOKEN, async (msg) => { @@ -94,12 +92,14 @@ export const tokenAPI = async function ( const root = await users.getHederaAccount(owner); const client = new HederaSDKHelper(root.hederaAccountId, root.hederaAccountKey); - const rootHederaAccountKey = PrivateKey.fromString(root.hederaAccountKey); - const adminKey = enableAdmin ? rootHederaAccountKey : null; - const kycKey = enableKYC ? rootHederaAccountKey : null; - const freezeKey = enableFreeze ? rootHederaAccountKey : null; - const wipeKey = enableWipe ? rootHederaAccountKey : null; - const supplyKey = changeSupply ? rootHederaAccountKey : null; + const treasury = await client.newAccount(); + const treasuryId = treasury.id; + const treasuryKey = treasury.key; + const adminKey = enableAdmin ? treasuryKey : null; + const kycKey = enableKYC ? treasuryKey : null; + const freezeKey = enableFreeze ? treasuryKey : null; + const wipeKey = enableWipe ? treasuryKey : null; + const supplyKey = changeSupply ? treasuryKey : null; const nft = tokenType == 'non-fungible'; const _decimals = nft ? 0 : decimals; const _initialSupply = nft ? 0 : initialSupply; @@ -110,10 +110,7 @@ export const tokenAPI = async function ( _decimals, _initialSupply, '', - { - id: root.hederaAccountId, - key: rootHederaAccountKey - }, + treasury, adminKey, kycKey, freezeKey, @@ -127,7 +124,7 @@ export const tokenAPI = async function ( tokenType, decimals: _decimals, initialSupply: _initialSupply, - adminId: root.hederaAccountId, + adminId: treasuryId ? treasuryId.toString() : null, adminKey: adminKey ? adminKey.toString() : null, kycKey: kycKey ? kycKey.toString() : null, freezeKey: freezeKey ? freezeKey.toString() : null, @@ -135,20 +132,13 @@ export const tokenAPI = async function ( supplyKey: supplyKey ? supplyKey.toString() : null, owner: root.did }); - await tokenRepository.save(tokenObject); - const tokens = await tokenRepository.find({ - where: { - $or: [ - { owner: { $eq: root.did } }, - { owner: { $exists: false } } - ] - } - }); + const result = await tokenRepository.save(tokenObject); + const tokens = await tokenRepository.find(); return new MessageResponse(tokens); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }) @@ -183,9 +173,9 @@ export const tokenAPI = async function ( const result = getTokenInfo(info, { tokenId }); return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 400); + return new MessageError(error, 400); } }) @@ -221,9 +211,9 @@ export const tokenAPI = async function ( const result = getTokenInfo(info, { tokenId }); return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 400); + return new MessageError(error, 400); } }) @@ -260,9 +250,9 @@ export const tokenAPI = async function ( return new MessageResponse(status); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 400); + return new MessageError(error, 400); } }) @@ -292,9 +282,9 @@ export const tokenAPI = async function ( return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 400); + return new MessageError(error, 400); } }) @@ -337,19 +327,19 @@ export const tokenAPI = async function ( } return new MessageResponse(result); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message, 400); + return new MessageError(error, 400); } }) /** * Return tokens - * + * * @param {Object} [payload] - filters * @param {string} [payload.tokenId] - token id * @param {string} [payload.did] - user did - * + * * @returns {IToken[]} - tokens */ ApiResponse(channel, MessageAPI.GET_TOKENS, async (msg) => { @@ -381,9 +371,9 @@ export const tokenAPI = async function ( /** * Import tokens - * + * * @param {IToken[]} payload - tokens - * + * * @returns {IToken[]} - all tokens */ ApiResponse(channel, MessageAPI.IMPORT_TOKENS, async (msg) => { @@ -403,9 +393,9 @@ export const tokenAPI = async function ( const tokens = await tokenRepository.find(); return new MessageResponse(tokens); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }) -} \ No newline at end of file +} diff --git a/guardian-service/src/api/trust-chain.service.ts b/guardian-service/src/api/trust-chain.service.ts index 2b53bc9fda..257342f510 100644 --- a/guardian-service/src/api/trust-chain.service.ts +++ b/guardian-service/src/api/trust-chain.service.ts @@ -5,15 +5,14 @@ import { IChainItem, MessageAPI, SchemaEntity -} from 'interfaces'; -import { Logger } from 'logger-helper'; +} from '@guardian/interfaces'; import { MongoRepository } from 'typeorm'; import { VcDocument as HVcDocument, VpDocument as HVpDocument } from '@hedera-modules'; import { ApiResponse } from '@api/api-response'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; function getField(vcDocument: VcDocument | VpDocument, name: string): any { if ( @@ -45,7 +44,7 @@ function checkPolicy(vcDocument: VcDocument, policyId: string) { /** * Connecting to the message broker methods of working with trust chain. - * + * * @param channel - channel * @param didDocumentRepository - table with DID Documents * @param vcDocumentRepository - table with VC Documents @@ -59,7 +58,7 @@ export const trustChainAPI = async function ( ): Promise { /** * Search parent by VC or VP Document - * + * * @param {IChainItem[]} chain - current trust chain * @param {VcDocument | VpDocument} vc - Document * @param {Object} map - ids map @@ -121,7 +120,7 @@ export const trustChainAPI = async function ( /** * Return Policy Info by Policy Id - * + * * @param {IChainItem[]} chain - current trust chain * @param {string} policyId - policy Id */ @@ -138,7 +137,7 @@ export const trustChainAPI = async function ( const policyImported = await vcDocumentRepository.findOne({ where: { - type: { $eq: SchemaEntity.POLICY_IMPORTED }, + type: { $eq: 'POLICY_IMPORTED' }, policyId: { $eq: policyId } } }); @@ -171,9 +170,9 @@ export const trustChainAPI = async function ( if (issuer) { const didDocuments = await didDocumentRepository.find({ where: { did: { $eq: issuer } } }); - const rootAuthority = await vcDocumentRepository.findOne({ + const standardRegistries = await vcDocumentRepository.find({ where: { - type: { $eq: SchemaEntity.ROOT_AUTHORITY }, + type: { $eq: SchemaEntity.STANDARD_REGISTRY }, owner: { $eq: issuer } } }); @@ -189,15 +188,15 @@ export const trustChainAPI = async function ( tag: null }); } - if (rootAuthority) { + for (let standardRegistry of standardRegistries) { chain.push({ type: 'VC', - id: rootAuthority.hash, - document: rootAuthority.document, - owner: rootAuthority.owner, - schema: getField(rootAuthority, 'type'), + id: standardRegistry.hash, + document: standardRegistry.document, + owner: standardRegistry.owner, + schema: getField(standardRegistry, 'type'), label: 'HASH', - entity: 'RootAuthority', + entity: 'StandardRegistry', tag: "Account Creation" }); } @@ -207,14 +206,14 @@ export const trustChainAPI = async function ( /** * Return trust chain - * + * * @param {string} payload - hash or uuid - * + * * @returns {IChainItem[]} - trust chain */ ApiResponse(channel, MessageAPI.GET_CHAIN, async (msg) => { try { - const hash = msg; + const hash = msg.id; const chain: IChainItem[] = []; let root: VcDocument | VpDocument; @@ -273,9 +272,9 @@ export const trustChainAPI = async function ( await getPolicyInfo(chain, null); return new MessageResponse(chain); } catch (error) { - new Logger().error(error.message, ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); } diff --git a/guardian-service/src/app.ts b/guardian-service/src/app.ts index 514873e9a2..f0e089b0f9 100644 --- a/guardian-service/src/app.ts +++ b/guardian-service/src/app.ts @@ -19,12 +19,12 @@ import { BlockTreeGenerator } from '@policy-engine/block-tree-generator'; import { Wallet } from '@helpers/wallet'; import { Users } from '@helpers/users'; import { Settings } from '@entity/settings'; -import { Logger } from 'logger-helper'; import { Topic } from '@entity/topic'; import { PolicyEngineService } from '@policy-engine/policy-engine.service'; -import { Policy } from '@entity/policy'; -import { MessageBrokerChannel, ApplicationState } from 'common'; -import { ApplicationStates } from 'interfaces'; +import { MessageBrokerChannel, ApplicationState, Logger, ExternalEventChannel } from '@guardian/common'; +import { ApplicationStates } from '@guardian/interfaces'; +import { Environment, MessageServer, TransactionLogger, TransactionLogLvl } from '@hedera-modules'; +import { AccountId, PrivateKey, TopicId } from '@hashgraph/sdk'; Promise.all([ createConnection({ @@ -41,16 +41,77 @@ Promise.all([ entitiesDir: 'dist/entity' } }), - MessageBrokerChannel.connect("GUARDIANS_SERVICE") + MessageBrokerChannel.connect('GUARDIANS_SERVICE') ]).then(async values => { const [db, cn] = values; - const channel = new MessageBrokerChannel(cn, "guardians"); - const state = new ApplicationState('GUARDIANS_SERVICE'); + const channel = new MessageBrokerChannel(cn, 'guardians'); + + new Logger().setChannel(channel); + const state = new ApplicationState('GUARDIAN_SERVICE'); state.setChannel(channel); - state.updateState(ApplicationStates.STARTED); + + // Check configuration + if(!process.env.OPERATOR_ID || process.env.OPERATOR_ID.length < 5) { + await new Logger().error('You need to fill OPERATOR_ID field in .env file', ['GUARDIAN_SERVICE']); + throw ('You need to fill OPERATOR_ID field in .env file'); + } + if(!process.env.OPERATOR_KEY || process.env.OPERATOR_KEY.length < 5) { + await new Logger().error('You need to fill OPERATOR_KEY field in .env file', ['GUARDIAN_SERVICE']); + throw ('You need to fill OPERATOR_KEY field in .env file'); + } + try { + AccountId.fromString(process.env.OPERATOR_ID); + } catch (error) { + await new Logger().error('OPERATOR_ID field in .env file: ' + error.message, ['GUARDIAN_SERVICE']); + throw ('OPERATOR_ID field in .env file: ' + error.message); + } + try { + PrivateKey.fromString(process.env.OPERATOR_KEY); + } catch (error) { + await new Logger().error('OPERATOR_KEY field in .env file: ' + error.message, ['GUARDIAN_SERVICE']); + throw ('OPERATOR_KEY field in .env file: ' + error.message); + } + try { + if(process.env.INITIALIZATION_TOPIC_ID) { + TopicId.fromString(process.env.INITIALIZATION_TOPIC_ID); + } + } catch (error) { + await new Logger().error('INITIALIZATION_TOPIC_ID field in .env file: ' + error.message, ['GUARDIAN_SERVICE']); + throw ('INITIALIZATION_TOPIC_ID field in .env file: ' + error.message); + } + try { + if(process.env.INITIALIZATION_TOPIC_KEY) { + PrivateKey.fromString(process.env.INITIALIZATION_TOPIC_KEY); + } + } catch (error) { + await new Logger().error('INITIALIZATION_TOPIC_KEY field in .env file: ' + error.message, ['GUARDIAN_SERVICE']); + throw ('INITIALIZATION_TOPIC_KEY field in .env file: ' + error.message); + } + ///////////// + await state.updateState(ApplicationStates.STARTED); + + Environment.setNetwork(process.env.HEDERA_NET); + MessageServer.setLang(process.env.MESSAGE_LANG); + TransactionLogger.setLogLevel(process.env.LOG_LEVEL as TransactionLogLvl); + TransactionLogger.setLogFunction((types: string[], date: string, duration: string, name: string, attr?: string[]) => { + const log = new Logger(); + const attributes = [ + ...types, + date, + duration, + name, + ...attr + ] + if (types[1] == 'ERROR') { + log.error(name, attributes, 4); + } else { + log.info(name, attributes, 4); + } + }) IPFS.setChannel(channel); - new Logger().setChannel(channel); + new ExternalEventChannel().setChannel(channel); + new Wallet().setChannel(channel); new Users().setChannel(channel); @@ -81,8 +142,8 @@ Promise.all([ await trustChainAPI(channel, didDocumentRepository, vcDocumentRepository, vpDocumentRepository); await setDefaultSchema(); - new Logger().info('guardian service started', ['GUARDIAN_SERVICE']); + await new Logger().info('guardian service started', ['GUARDIAN_SERVICE']); console.log('guardian service started'); - state.updateState(ApplicationStates.READY); + await state.updateState(ApplicationStates.READY); }); diff --git a/guardian-service/src/auth/auth.interface.ts b/guardian-service/src/auth/auth.interface.ts index dcb6262155..68e9683139 100644 --- a/guardian-service/src/auth/auth.interface.ts +++ b/guardian-service/src/auth/auth.interface.ts @@ -1,4 +1,4 @@ -import { UserRole } from "interfaces"; +import { UserRole } from "@guardian/interfaces"; export interface IAuthUser { username: string; diff --git a/guardian-service/src/config.ts b/guardian-service/src/config.ts index cbbde62210..12366d6a12 100644 --- a/guardian-service/src/config.ts +++ b/guardian-service/src/config.ts @@ -1,25 +1,17 @@ +import moduleAlias from 'module-alias'; import dotenv from 'dotenv'; import 'reflect-metadata'; import { AccountId, PrivateKey, TopicId } from '@hashgraph/sdk'; -dotenv.config(); - -if(!process.env.OPERATOR_ID || process.env.OPERATOR_ID.length<5) { - throw ('You need to fill OPERATOR_ID field in .env file'); -} - -if(!process.env.OPERATOR_KEY || process.env.OPERATOR_KEY.length<5) { - throw ('You need to fill OPERATOR_KEY field in .env file'); -} +moduleAlias.addAliases({ + "@api": __dirname + "/api", + "@entity": __dirname + "/entity", + "@subscribers": __dirname + "dist/subscribers", + "@helpers": __dirname + "/helpers", + "@auth": __dirname + "/auth", + "@policy-engine": __dirname + "/policy-engine", + "@hedera-modules": __dirname + "/hedera-modules/index", + "@document-loader": __dirname + "/document-loader" +}); -try { - const accountId = AccountId.fromString(process.env.OPERATOR_ID); -} catch (error) { - throw ('OPERATOR_ID field in .env file: ' + error.message); -} - -try { - const accountKey = PrivateKey.fromString(process.env.OPERATOR_KEY); -} catch (error) { - throw ('OPERATOR_KEY field in .env file: ' + error.message); -} +dotenv.config(); diff --git a/guardian-service/src/document-loader/context-loader.ts b/guardian-service/src/document-loader/context-loader.ts index cb9d16c732..f632d17aee 100644 --- a/guardian-service/src/document-loader/context-loader.ts +++ b/guardian-service/src/document-loader/context-loader.ts @@ -1,6 +1,6 @@ import { Schema } from '@entity/schema'; import { getMongoRepository, MongoRepository } from 'typeorm'; -import { ISchema } from 'interfaces'; +import { ISchema } from '@guardian/interfaces'; import { DocumentLoader, IDocumentFormat } from '@hedera-modules'; /** diff --git a/guardian-service/src/document-loader/subject-schema-loader.ts b/guardian-service/src/document-loader/subject-schema-loader.ts index a3fb43a40d..d082210494 100644 --- a/guardian-service/src/document-loader/subject-schema-loader.ts +++ b/guardian-service/src/document-loader/subject-schema-loader.ts @@ -1,6 +1,6 @@ import { Schema } from '@entity/schema'; import { getMongoRepository, MongoRepository } from 'typeorm'; -import { ISchema } from 'interfaces'; +import { ISchema } from '@guardian/interfaces'; import { SchemaLoader } from '@hedera-modules'; /** @@ -31,20 +31,20 @@ export class SubjectSchemaLoader extends SchemaLoader { } public async get(context: string | string[], iri: string, type: string): Promise { - let schemes: ISchema[]; + let schemas: ISchema[]; if (typeof context == 'string') { - schemes = await this.loadSchemaContexts([context]); + schemas = await this.loadSchemaContexts([context]); } else { - schemes = await this.loadSchemaContexts(context); + schemas = await this.loadSchemaContexts(context); } - if (!schemes) { + if (!schemas) { throw new Error('Schema not found'); } const _iri = '#' + iri; - for (let i = 0; i < schemes.length; i++) { - const schema = schemes[i]; + for (let i = 0; i < schemas.length; i++) { + const schema = schemas[i]; if (schema.iri === _iri) { if (!schema.document) { throw new Error('Document not found'); diff --git a/guardian-service/src/document-loader/vc-schema-loader.ts b/guardian-service/src/document-loader/vc-schema-loader.ts index ca7bb9966b..21e1e77d22 100644 --- a/guardian-service/src/document-loader/vc-schema-loader.ts +++ b/guardian-service/src/document-loader/vc-schema-loader.ts @@ -1,6 +1,6 @@ import { Schema } from '@entity/schema'; import { getMongoRepository, MongoRepository } from 'typeorm'; -import { ISchema } from 'interfaces'; +import { ISchema } from '@guardian/interfaces'; import { SchemaLoader } from '@hedera-modules'; /** @@ -31,20 +31,20 @@ export class VCSchemaLoader extends SchemaLoader { } public async get(context: string | string[], iri: string, type: string): Promise { - let schemes: ISchema[]; + let schemas: ISchema[]; if (typeof context == 'string') { - schemes = await this.loadSchemaContexts([context]); + schemas = await this.loadSchemaContexts([context]); } else { - schemes = await this.loadSchemaContexts(context); + schemas = await this.loadSchemaContexts(context); } - if (!schemes) { + if (!schemas) { throw new Error('Schema not found'); } const _iri = '#' + iri; - for (let i = 0; i < schemes.length; i++) { - const schema = schemes[i]; + for (let i = 0; i < schemas.length; i++) { + const schema = schemas[i]; if (schema.iri === _iri) { if (!schema.document) { throw new Error('Document not found'); diff --git a/guardian-service/src/entity/aggregateDocuments.ts b/guardian-service/src/entity/aggregateDocuments.ts index 7cce0f1a83..4e986df20b 100644 --- a/guardian-service/src/entity/aggregateDocuments.ts +++ b/guardian-service/src/entity/aggregateDocuments.ts @@ -1,4 +1,4 @@ -import { DocumentSignature, DocumentStatus } from 'interfaces'; +import { DocumentSignature, DocumentStatus } from '@guardian/interfaces'; import {Column, Entity, ObjectIdColumn} from 'typeorm'; /** @@ -47,13 +47,13 @@ export class AggregateVC { @Column() schema: string; - + @Column() messageId: string; - + @Column() topicId: string; - + @Column() relationships: string[]; } diff --git a/guardian-service/src/entity/approval-document.ts b/guardian-service/src/entity/approval-document.ts index 01a92e5d07..acd6dbc0dc 100644 --- a/guardian-service/src/entity/approval-document.ts +++ b/guardian-service/src/entity/approval-document.ts @@ -1,4 +1,4 @@ -import { ApproveStatus, IApprovalDocument, SchemaEntity } from 'interfaces'; +import { ApproveStatus, IApprovalDocument, SchemaEntity } from '@guardian/interfaces'; import { BeforeInsert, Column, CreateDateColumn, Entity, ObjectIdColumn, UpdateDateColumn } from 'typeorm'; @Entity() @@ -35,10 +35,10 @@ export class ApprovalDocument implements IApprovalDocument { @Column() schema: string; - + @BeforeInsert() setDefaults() { this.option = this.option || {}; this.option.status = this.option.status || ApproveStatus.NEW; } -} \ No newline at end of file +} diff --git a/guardian-service/src/entity/did-document.ts b/guardian-service/src/entity/did-document.ts index 6039c659af..37d7ca08b5 100644 --- a/guardian-service/src/entity/did-document.ts +++ b/guardian-service/src/entity/did-document.ts @@ -1,4 +1,4 @@ -import { DidDocumentStatus, IDidObject } from 'interfaces'; +import { DidDocumentStatus, IDidObject } from '@guardian/interfaces'; import { BeforeInsert, Column, CreateDateColumn, Entity, ObjectIdColumn, UpdateDateColumn } from 'typeorm'; @Entity() diff --git a/guardian-service/src/entity/document-state.ts b/guardian-service/src/entity/document-state.ts new file mode 100644 index 0000000000..7b6fabd88b --- /dev/null +++ b/guardian-service/src/entity/document-state.ts @@ -0,0 +1,19 @@ +import {Column, CreateDateColumn, Entity, ObjectIdColumn, UpdateDateColumn} from 'typeorm'; + +@Entity() +export class DocumentState { + @ObjectIdColumn() + id: string; + + @CreateDateColumn() + created: Date; + + @Column() + documentId: string; + + @Column() + status: string; + + @Column() + reason: string; +} \ No newline at end of file diff --git a/guardian-service/src/entity/policy.ts b/guardian-service/src/entity/policy.ts index 4b8775c44a..62fd528142 100644 --- a/guardian-service/src/entity/policy.ts +++ b/guardian-service/src/entity/policy.ts @@ -1,4 +1,4 @@ -import { ModelHelper } from 'interfaces'; +import { ModelHelper } from '@guardian/interfaces'; import { BeforeInsert, Column, CreateDateColumn, Entity, ObjectIdColumn } from 'typeorm'; /** @@ -62,6 +62,9 @@ export class Policy { @Column() messageId: string; + @Column() + codeVersion: string; + @CreateDateColumn() createDate: Date; @@ -70,5 +73,6 @@ export class Policy { this.status = this.status || 'DRAFT'; this.registeredUsers = {}; this.uuid = this.uuid || ModelHelper.randomUUID(); + this.codeVersion = this.codeVersion || '1.0.0'; } } diff --git a/guardian-service/src/entity/schema.ts b/guardian-service/src/entity/schema.ts index 2b8393aa9d..364fc49e76 100644 --- a/guardian-service/src/entity/schema.ts +++ b/guardian-service/src/entity/schema.ts @@ -1,4 +1,4 @@ -import { ISchema, ISchemaDocument, SchemaCategory, SchemaEntity, SchemaStatus, ModelHelper } from 'interfaces'; +import { ISchema, ISchemaDocument, SchemaCategory, SchemaEntity, SchemaStatus, ModelHelper } from '@guardian/interfaces'; import { AfterLoad, BeforeInsert, BeforeUpdate, Column, CreateDateColumn, Entity, Index, ObjectIdColumn } from 'typeorm'; @Entity() @@ -24,9 +24,6 @@ export class Schema implements ISchema { @Column() status: SchemaStatus; - @Column() - readonly: boolean; - @Column() document: ISchemaDocument; @@ -60,6 +57,15 @@ export class Schema implements ISchema { @CreateDateColumn() createDate: Date; + @Column() + readonly: boolean; + + @Column() + system: boolean; + + @Column() + active: boolean; + /** * Virtual column. */ @@ -75,6 +81,8 @@ export class Schema implements ISchema { if (this.status == SchemaStatus.DRAFT) { this.messageId = null; } + this.system = this.system || false; + this.active = this.active || false; } @AfterLoad() diff --git a/guardian-service/src/entity/token.ts b/guardian-service/src/entity/token.ts index bc005b3f44..619fa0f985 100644 --- a/guardian-service/src/entity/token.ts +++ b/guardian-service/src/entity/token.ts @@ -1,4 +1,4 @@ -import { IToken } from 'interfaces'; +import { IToken } from '@guardian/interfaces'; import { Column, Entity, ObjectIdColumn } from 'typeorm'; @Entity() @@ -16,7 +16,7 @@ export class Token implements IToken { @Column() tokenSymbol: string; - + @Column() tokenType: string; diff --git a/guardian-service/src/entity/topic.ts b/guardian-service/src/entity/topic.ts index 08301c0335..a1df3413ff 100644 --- a/guardian-service/src/entity/topic.ts +++ b/guardian-service/src/entity/topic.ts @@ -1,4 +1,4 @@ -import { TopicType } from 'interfaces'; +import { TopicType } from '@guardian/interfaces'; import { Column, Entity, ObjectIdColumn } from 'typeorm'; @@ -25,6 +25,9 @@ export class Topic { @Column() key: string; + @Column() + parent: string; + @Column() policyId: string; diff --git a/guardian-service/src/entity/vc-document.ts b/guardian-service/src/entity/vc-document.ts index 487735d66f..532009e5ee 100644 --- a/guardian-service/src/entity/vc-document.ts +++ b/guardian-service/src/entity/vc-document.ts @@ -1,4 +1,4 @@ -import {DocumentSignature, DocumentStatus, IVCDocument, SchemaEntity} from 'interfaces'; +import {DocumentSignature, DocumentStatus, IVCDocument, SchemaEntity} from '@guardian/interfaces'; import {BeforeInsert, Column, CreateDateColumn, Entity, ObjectIdColumn, UpdateDateColumn} from 'typeorm'; @Entity() @@ -49,16 +49,19 @@ export class VcDocument implements IVCDocument { @Column() schema: string; - + @Column() messageId: string; - + @Column() topicId: string; - + @Column() relationships: string[]; + @Column() + comment?: string; + @BeforeInsert() setDefaults() { this.hederaStatus = this.hederaStatus || DocumentStatus.NEW; diff --git a/guardian-service/src/entity/vp-document.ts b/guardian-service/src/entity/vp-document.ts index 778797691e..00e8dacd7c 100644 --- a/guardian-service/src/entity/vp-document.ts +++ b/guardian-service/src/entity/vp-document.ts @@ -1,4 +1,4 @@ -import { DocumentSignature, DocumentStatus, IVPDocument, SchemaEntity } from 'interfaces'; +import { DocumentSignature, DocumentStatus, IVPDocument, SchemaEntity } from '@guardian/interfaces'; import { BeforeInsert, Column, CreateDateColumn, Entity, ObjectIdColumn, UpdateDateColumn } from 'typeorm'; @Entity() @@ -47,6 +47,12 @@ export class VpDocument implements IVPDocument { @Column() relationships: string[]; + @Column() + option?: any; + + @Column() + comment?: string; + @BeforeInsert() setDefaults() { this.status = this.status || DocumentStatus.NEW; diff --git a/guardian-service/src/hedera-modules/environment.ts b/guardian-service/src/hedera-modules/environment.ts index 8bf08e11ae..5cdcc9b56a 100644 --- a/guardian-service/src/hedera-modules/environment.ts +++ b/guardian-service/src/hedera-modules/environment.ts @@ -1,14 +1,48 @@ -import { Client } from "@hashgraph/sdk"; +import { Client } from '@hashgraph/sdk'; export class Environment { - public static readonly HEDERA_MESSAGE_API: string = "https://testnet.mirrornode.hedera.com/api/v1/topics/messages"; - public static readonly HEDERA_TOPIC_API: string = "https://testnet.mirrornode.hedera.com/api/v1/topics/"; + public static readonly HEDERA_MAINNET_MESSAGE_API: string = 'https://mainnet-public.mirrornode.hedera.com/api/v1/topics/messages'; + public static readonly HEDERA_MAINNET_TOPIC_API: string = 'https://mainnet-public.mirrornode.hedera.com/api/v1/topics/'; + public static readonly HEDERA_TESTNET_MESSAGE_API: string = 'https://testnet.mirrornode.hedera.com/api/v1/topics/messages'; + public static readonly HEDERA_TESTNET_TOPIC_API: string = 'https://testnet.mirrornode.hedera.com/api/v1/topics/'; + + private static _network: string = 'testnet'; + private static _messagesApi: string = this.HEDERA_TESTNET_MESSAGE_API; + private static _topicsApi: string = this.HEDERA_TESTNET_TOPIC_API; + + public static setNetwork(network: string, mirrornode?: string) { + if (network == 'mainnet') { + this._network = 'mainnet'; + this._messagesApi = this.HEDERA_MAINNET_MESSAGE_API; + this._topicsApi = this.HEDERA_MAINNET_TOPIC_API; + } else { + this._network = 'testnet'; + this._messagesApi = this.HEDERA_TESTNET_MESSAGE_API; + this._topicsApi = this.HEDERA_TESTNET_TOPIC_API; + } + if (mirrornode) { + this._messagesApi = `${mirrornode}/api/v1/topics/messages`; + this._topicsApi = `${mirrornode}/api/v1/topics/`; + } + } public static createClient(): Client { - return Client.forTestnet(); + if (this._network == 'mainnet') { + return Client.forMainnet(); + } else { + return Client.forTestnet(); + } + } + + public static get network(): string { + return this._network; + } + + public static get HEDERA_MESSAGE_API(): string { + return this._messagesApi; } - public static getNetwork(): string { - return 'testnet'; + public static get HEDERA_TOPIC_API(): string { + return this._topicsApi; } } \ No newline at end of file diff --git a/guardian-service/src/hedera-modules/hashing.ts b/guardian-service/src/hedera-modules/hashing.ts index 273e9510b2..c13cd5f296 100644 --- a/guardian-service/src/hedera-modules/hashing.ts +++ b/guardian-service/src/hedera-modules/hashing.ts @@ -1,6 +1,6 @@ -import * as crypto from "crypto"; -import bs58 from "bs58"; -import { Base64 } from "js-base64"; +import * as crypto from 'crypto'; +import bs58 from 'bs58'; +import { Base64 } from 'js-base64'; export class Hashing { public static readonly base58 = { diff --git a/guardian-service/src/hedera-modules/hedera-sdk-helper.ts b/guardian-service/src/hedera-modules/hedera-sdk-helper.ts index f1f39b2296..281855a4f0 100644 --- a/guardian-service/src/hedera-modules/hedera-sdk-helper.ts +++ b/guardian-service/src/hedera-modules/hedera-sdk-helper.ts @@ -7,7 +7,6 @@ import { Hbar, PrivateKey, Status, - Timestamp, TokenAssociateTransaction, TokenCreateTransaction, TokenDissociateTransaction, @@ -23,12 +22,15 @@ import { TopicId, TopicMessageSubmitTransaction, Transaction, + TransactionReceipt, + TransactionRecord, TransactionResponse, TransferTransaction } from '@hashgraph/sdk'; -import { timeout } from './utils'; -import axios from "axios"; +import { HederaUtils, timeout } from './utils'; +import axios from 'axios'; import { Environment } from './environment'; +import { TransactionLogger } from './transaction-logger'; export const MAX_FEE = 10; export const INITIAL_BALANCE = 30; @@ -47,6 +49,18 @@ export class HederaSDKHelper { } } + private async transactionStartLog(id, transactionName: string): Promise { + await TransactionLogger.transactionLog(id, this.client.operatorAccountId, transactionName); + } + + private async transactionEndLog(id: string, transactionName: string, transaction?: Transaction, metadata?: any): Promise { + await TransactionLogger.transactionLog(id, this.client.operatorAccountId, transactionName, transaction, metadata); + } + + private async transactionErrorLog(id: string, transactionName: string, transaction: Transaction, error: Error): Promise { + await TransactionLogger.transactionErrorLog(id, this.client.operatorAccountId, transactionName, transaction, error.message); + } + /** * Create new token (TokenCreateTransaction) * @@ -84,13 +98,13 @@ export class HederaSDKHelper { supplyKey: PrivateKey ): Promise { const client = this.client; + let transaction = new TokenCreateTransaction() .setTokenName(name) .setTokenSymbol(symbol) .setTreasuryAccountId(treasury.id) .setDecimals(decimals) .setInitialSupply(initialSupply) - .setMaxTransactionFee(new Hbar(process.env.MAX_TRANSACTION_FEE || MAX_FEE)) .setTokenMemo(tokenMemo); if (adminKey) { @@ -114,9 +128,9 @@ export class HederaSDKHelper { transaction = transaction.freezeWith(client); const signTx = await (await transaction.sign(adminKey)).sign(treasury.key); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenCreateTransaction'); const tokenId = receipt.tokenId; + return tokenId.toString(); } @@ -175,8 +189,9 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async associate(tokenId: string | TokenId, id: string, key: string) { + public async associate(tokenId: string | TokenId, id: string, key: string): Promise { const client = this.client; + const accountId = AccountId.fromString(id); const accountKey = PrivateKey.fromString(key); const transaction = new TokenAssociateTransaction() @@ -184,9 +199,9 @@ export class HederaSDKHelper { .setTokenIds([tokenId]) .freezeWith(client); const signTx = await transaction.sign(accountKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenAssociateTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -200,8 +215,9 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async dissociate(tokenId: string | TokenId, id: string, key: string) { + public async dissociate(tokenId: string | TokenId, id: string, key: string): Promise { const client = this.client; + const accountId = AccountId.fromString(id); const accountKey = PrivateKey.fromString(key); const transaction = new TokenDissociateTransaction() @@ -209,9 +225,9 @@ export class HederaSDKHelper { .setTokenIds([tokenId]) .freezeWith(client); const signTx = await transaction.sign(accountKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenDissociateTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -225,17 +241,18 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async freeze(tokenId: string | TokenId, accountId: string, freezeKey: string) { + public async freeze(tokenId: string | TokenId, accountId: string, freezeKey: string): Promise { const client = this.client; + const _freezeKey = PrivateKey.fromString(freezeKey); const transaction = new TokenFreezeTransaction() .setAccountId(accountId) .setTokenId(tokenId) .freezeWith(client); const signTx = await transaction.sign(_freezeKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenFreezeTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -249,17 +266,18 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async unfreeze(tokenId: string | TokenId, accountId: string, freezeKey: string) { + public async unfreeze(tokenId: string | TokenId, accountId: string, freezeKey: string): Promise { const client = this.client; + const _freezeKey = PrivateKey.fromString(freezeKey); const transaction = new TokenUnfreezeTransaction() .setAccountId(accountId) .setTokenId(tokenId) .freezeWith(client); const signTx = await transaction.sign(_freezeKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenUnfreezeTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -273,17 +291,18 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async grantKyc(tokenId: string | TokenId, accountId: string, kycKey: string) { + public async grantKyc(tokenId: string | TokenId, accountId: string, kycKey: string): Promise { const client = this.client; + const _kycKey = PrivateKey.fromString(kycKey); const transaction = new TokenGrantKycTransaction() .setAccountId(accountId) .setTokenId(tokenId) .freezeWith(client); const signTx = await transaction.sign(_kycKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenGrantKycTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -297,17 +316,18 @@ export class HederaSDKHelper { * @returns {boolean} - Status */ @timeout(HederaSDKHelper.MAX_TIMEOUT) - public async revokeKyc(tokenId: string | TokenId, accountId: string, kycKey: string) { + public async revokeKyc(tokenId: string | TokenId, accountId: string, kycKey: string): Promise { const client = this.client; + const _kycKey = PrivateKey.fromString(kycKey); const transaction = new TokenRevokeKycTransaction() .setAccountId(accountId) .setTokenId(tokenId) .freezeWith(client); const signTx = await transaction.sign(_kycKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenRevokeKycTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -328,8 +348,9 @@ export class HederaSDKHelper { supplyKey: string | PrivateKey, amount: number, transactionMemo?: string - ) { + ): Promise { const client = this.client; + const _supplyKey = PrivateKey.fromString(supplyKey.toString()); const transaction = new TokenMintTransaction() .setTokenId(tokenId) @@ -337,9 +358,9 @@ export class HederaSDKHelper { .setTransactionMemo(transactionMemo) .freezeWith(client); const signTx = await transaction.sign(_supplyKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenMintTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -362,6 +383,7 @@ export class HederaSDKHelper { transactionMemo?: string ): Promise { const client = this.client; + const _supplyKey = PrivateKey.fromString(supplyKey.toString()); const transaction = new TokenMintTransaction() .setTokenId(tokenId) @@ -369,9 +391,9 @@ export class HederaSDKHelper { .setTransactionMemo(transactionMemo) .freezeWith(client); const signTx = await transaction.sign(_supplyKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenMintNFTTransaction'); const transactionStatus = receipt.status; + if (transactionStatus == Status.Success) { return receipt.serials.map(e => e.toNumber()) } else { @@ -397,8 +419,9 @@ export class HederaSDKHelper { wipeKey: string | PrivateKey, amount: number, transactionMemo?: string - ) { + ): Promise { const client = this.client; + const _wipeKey = PrivateKey.fromString(wipeKey.toString()); const transaction = new TokenWipeTransaction() .setAccountId(targetId) @@ -407,9 +430,9 @@ export class HederaSDKHelper { .setTransactionMemo(transactionMemo) .freezeWith(client); const signTx = await transaction.sign(_wipeKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TokenWipeTransaction'); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -433,8 +456,9 @@ export class HederaSDKHelper { scoreKey: string | PrivateKey, amount: number, transactionMemo?: string - ) { + ): Promise { const client = this.client; + const _scoreKey = PrivateKey.fromString(scoreKey.toString()); const transaction = new TransferTransaction() .addTokenTransfer(tokenId, scoreId, -amount) @@ -442,9 +466,9 @@ export class HederaSDKHelper { .setTransactionMemo(transactionMemo) .freezeWith(client); const signTx = await transaction.sign(_scoreKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'TransferTransaction', amount); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -470,6 +494,7 @@ export class HederaSDKHelper { transactionMemo?: string ): Promise { const client = this.client; + const _scoreKey = PrivateKey.fromString(scoreKey.toString()); let transaction = new TransferTransaction() .setTransactionMemo(transactionMemo); @@ -482,9 +507,9 @@ export class HederaSDKHelper { } transaction = transaction.freezeWith(client); const signTx = await transaction.sign(_scoreKey); - const txResponse = await signTx.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, signTx, 'NFTTransferTransaction', serials); const transactionStatus = receipt.status; + return transactionStatus == Status.Success; } @@ -498,13 +523,14 @@ export class HederaSDKHelper { @timeout(HederaSDKHelper.MAX_TIMEOUT) public async newAccount(): Promise<{ id: AccountId; key: PrivateKey; }> { const client = this.client; + const newPrivateKey = PrivateKey.generate(); const transaction = new AccountCreateTransaction() .setKey(newPrivateKey.publicKey) .setInitialBalance(new Hbar(process.env.INITIAL_BALANCE || INITIAL_BALANCE)); - const txResponse = await transaction.execute(client); - const receipt = await txResponse.getReceipt(client); + const receipt = await this.executeAndReceipt(client, transaction, 'AccountCreateTransaction'); const newAccountId = receipt.accountId; + return { id: newAccountId, key: newPrivateKey @@ -527,7 +553,6 @@ export class HederaSDKHelper { const client = this.client; let transaction: any = new TopicCreateTransaction() - .setMaxTransactionFee(new Hbar(process.env.MAX_TRANSACTION_FEE || MAX_FEE)); if (topicMemo) { transaction = transaction.setTopicMemo(topicMemo); @@ -550,8 +575,9 @@ export class HederaSDKHelper { transaction = await transaction.sign(accountKey); } - const dtxId = await transaction.execute(client); - const topicId = (await dtxId.getReceipt(client)).topicId; + const receipt = await this.executeAndReceipt(client, transaction, 'TopicCreateTransaction'); + const topicId = receipt.topicId; + return topicId.toString(); } @@ -570,6 +596,7 @@ export class HederaSDKHelper { privateKey?: string | PrivateKey ): Promise { const client = this.client; + let messageTransaction: Transaction = new TopicMessageSubmitTransaction({ topicId: topicId, message: message, @@ -582,10 +609,10 @@ export class HederaSDKHelper { messageTransaction = await messageTransaction.sign(privateKey); } } - const result = await messageTransaction.execute(client); - const rec = await result.getRecord(client); + const rec = await this.executeAndRecord(client, messageTransaction, 'TopicMessageSubmitTransaction'); const seconds = rec.consensusTimestamp.seconds.toString(); const nanos = rec.consensusTimestamp.nanos.toString(); + return (seconds + '.' + ('000000000' + nanos).slice(-9)); } @@ -651,4 +678,36 @@ export class HederaSDKHelper { return result; } + private async executeAndReceipt( + client: Client, transaction: Transaction, type: string, metadata?: any + ): Promise { + const id = HederaUtils.randomUUID(); + try { + await this.transactionStartLog(id, type); + const result = await transaction.execute(client); + const receipt = await result.getReceipt(client); + await this.transactionEndLog(id, type, transaction, metadata); + return receipt; + } catch (error) { + await this.transactionErrorLog(id, type, transaction, error); + throw error; + } + } + + private async executeAndRecord( + client: Client, transaction: Transaction, type: string, metadata?: any + ): Promise { + const id = HederaUtils.randomUUID(); + try { + await this.transactionStartLog(id, type); + const result = await transaction.execute(client); + const record = await result.getRecord(client); + await this.transactionEndLog(id, type, transaction, metadata); + return record; + } catch (error) { + await this.transactionErrorLog(id, type, transaction, error); + throw error; + } + } } + diff --git a/guardian-service/src/hedera-modules/index.ts b/guardian-service/src/hedera-modules/index.ts index 68d2cd77d8..077d6f870e 100644 --- a/guardian-service/src/hedera-modules/index.ts +++ b/guardian-service/src/hedera-modules/index.ts @@ -22,5 +22,6 @@ export { PolicyMessage } from './message/policy-message'; export { UrlType } from './message/url.interface'; export { TopicMessage } from './message/topic-message'; export { VPMessage } from './message/vp-message'; - - +export { Environment } from './environment'; +export { TransactionLogger, TransactionLogLvl } from './transaction-logger'; +export { RegistrationMessage } from './message/registration-message'; diff --git a/guardian-service/src/hedera-modules/message/did-message.ts b/guardian-service/src/hedera-modules/message/did-message.ts index 8b419f403c..4827dc7a4b 100644 --- a/guardian-service/src/hedera-modules/message/did-message.ts +++ b/guardian-service/src/hedera-modules/message/did-message.ts @@ -1,8 +1,8 @@ import { DIDDocument } from './../vcjs/did-document'; import { Message } from './message'; -import { IURL } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { DidMessageBody, MessageBody } from './message-body.interface'; export class DIDMessage extends Message { @@ -30,6 +30,7 @@ export class DIDMessage extends Message { status: this._status, type: this.type, action: this.action, + lang: this.lang, did: this.did, cid: this.urls[0].cid, url: this.urls[0].url diff --git a/guardian-service/src/hedera-modules/message/message-action.ts b/guardian-service/src/hedera-modules/message/message-action.ts index d2f14b70d9..942ec0ec13 100644 --- a/guardian-service/src/hedera-modules/message/message-action.ts +++ b/guardian-service/src/hedera-modules/message/message-action.ts @@ -8,5 +8,7 @@ export enum MessageAction { PublishSchema = 'publish-schema', DeleteSchema = 'delete-schema', CreateTopic = 'create-topic', - CreateVP = 'create-vp-document' + CreateVP = 'create-vp-document', + PublishSystemSchema = 'publish-system-schema', + Init = 'Initialization' } diff --git a/guardian-service/src/hedera-modules/message/message-body.interface.ts b/guardian-service/src/hedera-modules/message/message-body.interface.ts index 72e7e857bc..ee420ed511 100644 --- a/guardian-service/src/hedera-modules/message/message-body.interface.ts +++ b/guardian-service/src/hedera-modules/message/message-body.interface.ts @@ -1,12 +1,16 @@ -import { MessageStatus } from "./message"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { MessageStatus } from './message'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; export interface MessageBody { id: string; status: MessageStatus; type: MessageType; action: MessageAction; + lang: string; + revokeMessage?: string; + reason?: string; + parentIds?: string[]; } export interface DidMessageBody extends MessageBody { @@ -57,6 +61,7 @@ export interface VcMessageBody extends MessageBody { cid: string; url: string; relationships: string[]; + documentStatus: string; } export interface VpMessageBody extends MessageBody { @@ -64,4 +69,11 @@ export interface VpMessageBody extends MessageBody { cid: string; url: string; relationships: string[]; +} + +export interface RegistrationMessageBody extends MessageBody { + did: string; + topicId: string; + lang: string; + attributes: { [x: string]: string } | undefined; } \ No newline at end of file diff --git a/guardian-service/src/hedera-modules/message/message-server.ts b/guardian-service/src/hedera-modules/message/message-server.ts index 5dbe258224..f75de1b71a 100644 --- a/guardian-service/src/hedera-modules/message/message-server.ts +++ b/guardian-service/src/hedera-modules/message/message-server.ts @@ -9,22 +9,40 @@ import { HederaSDKHelper } from '../hedera-sdk-helper'; import { MessageType } from './message-type'; import { VCMessage } from './vc-message'; import { DIDMessage } from './did-message'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; import { PolicyMessage } from './policy-message'; import { SchemaMessage } from './schema-message'; import { MessageAction } from './message-action'; import { VPMessage } from './vp-message'; +import { TransactionLogger } from '../transaction-logger'; +import { HederaUtils } from './../utils'; export class MessageServer { + private client: HederaSDKHelper; private submitKey: PrivateKey | string; private topicId: TopicId | string; + private static lang: string; constructor(operatorId?: string | AccountId, operatorKey?: string | PrivateKey) { this.client = new HederaSDKHelper(operatorId, operatorKey); } + public static setLang(lang: string) { + this.lang = lang; + } + + public async messageStartLog(name: string): Promise { + const id = HederaUtils.randomUUID(); + await TransactionLogger.messageLog(id, name); + return id; + } + + public async messageEndLog(id: string, name: string): Promise { + await TransactionLogger.messageLog(id, name); + } + public setTopicObject(topic: { topicId: string, key: string }): MessageServer { this.submitKey = topic.key; this.topicId = topic.topicId; @@ -37,7 +55,15 @@ export class MessageServer { return this; } + public getTopic(): string { + if (this.topicId) { + return this.topicId.toString(); + } + return undefined; + } + private async sendIPFS(message: T): Promise { + const time = await this.messageStartLog('IPFS'); const buffers = await message.toDocuments(); const urls = []; for (let i = 0; i < buffers.length; i++) { @@ -45,6 +71,7 @@ export class MessageServer { const result = await IPFS.addFile(buffer); urls.push(result); } + await this.messageEndLog(time, 'IPFS'); message.setUrls(urls); return message; } @@ -65,20 +92,24 @@ export class MessageServer { if (!this.topicId) { throw 'Topic not set'; } + message.setLang(MessageServer.lang); + const time = await this.messageStartLog('Hedera'); const buffer = message.toMessage(); const id = await this.client.submitMessage(this.topicId, buffer, this.submitKey); + await this.messageEndLog(time, 'Hedera'); message.setId(id); message.setTopicId(this.topicId); return message; } - public static fromMessage(message: string): Message { + public static fromMessage(message: string, type?: MessageType): T { const json = JSON.parse(message); - return this.fromMessageObject(json); + return this.fromMessageObject(json, type); } - public static fromMessageObject(json: any): Message { + public static fromMessageObject(json: any, type?: MessageType): T { let message: Message; + json.type = json.type || type; switch (json.type) { case MessageType.VCDocument: message = VCMessage.fromMessageObject(json); @@ -98,7 +129,7 @@ export class MessageServer { case MessageType.VPDocument: message = VPMessage.fromMessageObject(json); break; - // Default schemes + // Default schemas case 'schema-document': message = SchemaMessage.fromMessageObject(json); break; @@ -112,31 +143,40 @@ export class MessageServer { console.error(`Invalid json: ${json.type}`); throw `Invalid json: ${json.type}`; } - return message; + return message as T; } - private async getTopicMessage(timeStamp: string): Promise { + private async getTopicMessage(timeStamp: string, type?: MessageType): Promise { const { topicId, message } = await this.client.getTopicMessage(timeStamp); new Logger().info(`getTopicMessage, ${timeStamp}, ${topicId}, ${message}`, ['GUARDIAN_SERVICE']); - const result = MessageServer.fromMessage(message); + const result = MessageServer.fromMessage(message, type); result.setId(timeStamp); result.setTopicId(topicId); return result; } - private async getTopicMessages(topicId: string | TopicId): Promise { + private async getTopicMessages(topicId: string | TopicId, type?: MessageType, action?: MessageAction): Promise { const topic = topicId.toString(); const messages = await this.client.getTopicMessages(topic); new Logger().info(`getTopicMessages, ${topic}`, ['GUARDIAN_SERVICE']); const result: Message[] = []; for (let i = 0; i < messages.length; i++) { + const message = messages[i]; try { - const message = messages[i]; const item = MessageServer.fromMessage(message.message); - item.setId(message.id); - item.setTopicId(topic); - result.push(item); + let filter = true; + if (type) { + filter = filter && item.type === type; + } + if (action) { + filter = filter && item.action === action; + } + if (filter) { + item.setId(message.id); + item.setTopicId(topic); + result.push(item); + } } catch (error) { continue; } @@ -144,27 +184,22 @@ export class MessageServer { return result; } - public async sendMessage(message: T): Promise { - message = await this.sendIPFS(message); + public async sendMessage(message: T, sendToIPFS: boolean = true): Promise { + if (sendToIPFS) { + message = await this.sendIPFS(message); + } message = await this.sendHedera(message); return message; } - public async getMessage(id: string): Promise { - let message = await this.getTopicMessage(id); + public async getMessage(id: string, type?: MessageType): Promise { + let message = await this.getTopicMessage(id, type); message = await this.loadIPFS(message); return message as T; } - public async getMessages(topicId: string | TopicId, type?: MessageType, action?: MessageAction): Promise { - let messages = await this.getTopicMessages(topicId); - if (type) { - messages = messages.filter(m => m.type == type); - } - if (action) { - messages = messages.filter(m => m.action == action); - } + let messages = await this.getTopicMessages(topicId, type, action); return messages as T[]; } @@ -172,10 +207,10 @@ export class MessageServer { return await this.loadIPFS(message); } - public async findTopic(messageId:string): Promise { + public async findTopic(messageId: string): Promise { try { console.log(messageId) - if(messageId) { + if (messageId) { const { topicId, message } = await this.client.getTopicMessage(messageId); console.log(topicId) return topicId; diff --git a/guardian-service/src/hedera-modules/message/message-type.ts b/guardian-service/src/hedera-modules/message/message-type.ts index 1d654d87cd..acc4c4a4bc 100644 --- a/guardian-service/src/hedera-modules/message/message-type.ts +++ b/guardian-service/src/hedera-modules/message/message-type.ts @@ -7,5 +7,6 @@ export enum MessageType { InstancePolicy = 'Instance-Policy', Schema = 'Schema', Topic = 'Topic', + StandardRegistry = 'Standard Registry', // DynamicTopic = 'Dynamic-Topic', } \ No newline at end of file diff --git a/guardian-service/src/hedera-modules/message/message.ts b/guardian-service/src/hedera-modules/message/message.ts index dbb1995efc..4dc77e3a86 100644 --- a/guardian-service/src/hedera-modules/message/message.ts +++ b/guardian-service/src/hedera-modules/message/message.ts @@ -10,17 +10,26 @@ export enum MessageStatus { REVOKE = 'REVOKE' } +export enum RevokeReason { + DocumentRevoked = 'Document Revoked', + ParentRevoked = 'Parent Revoked' +} + export abstract class Message { public id: string; public urls: IURL[]; public topicId: string | TopicId; + public lang: string; public readonly action: MessageAction; public readonly type: MessageType; - protected _responseType: "json" | "raw" | "str"; + protected _responseType: 'json' | 'raw' | 'str'; protected _id: string; protected _status: MessageStatus; + protected _revokeMessage: string; + protected _revokeReason: string; + protected _parentIds: string[]; get responseType() { return this._responseType; @@ -29,9 +38,10 @@ export abstract class Message { constructor(action: MessageAction, type: MessageType) { this.action = action; this.type = type; - this._responseType = "str"; + this._responseType = 'str'; this._id = HederaUtils.randomUUID(); this._status = MessageStatus.ISSUE; + this.lang = 'en-US'; } public abstract toMessageObject(): MessageBody; @@ -62,8 +72,12 @@ export abstract class Message { return this.id; } + public getMessageId(): string { + return this._id; + } + public getTopicId(): string { - if(this.topicId) { + if (this.topicId) { return this.topicId.toString(); } return null @@ -82,8 +96,17 @@ export abstract class Message { return null; } - public revoke(): void { + public revoke(message: string, parentIds?: string[]): void { this._status = MessageStatus.REVOKE; + this._revokeMessage = message; + this._revokeReason = parentIds + ? RevokeReason.ParentRevoked + : RevokeReason.DocumentRevoked; + this._parentIds = parentIds; + } + + public isRevoked() { + return this._status === MessageStatus.REVOKE; } public toMessage(): string { @@ -92,7 +115,11 @@ export abstract class Message { id: this._id, status: this._status, type: this.type, - action: this.action + action: this.action, + lang: this.lang, + revokeMessage: this._revokeMessage, + reason: this._revokeReason, + parentIds: this._parentIds } return JSON.stringify(body); } else { @@ -102,9 +129,8 @@ export abstract class Message { return JSON.stringify(body); } } -} - - - - + public setLang(lang: string) { + this.lang = lang || 'en-US'; + } +} diff --git a/guardian-service/src/hedera-modules/message/policy-message.ts b/guardian-service/src/hedera-modules/message/policy-message.ts index 49c16d16a7..dfa626d6c6 100644 --- a/guardian-service/src/hedera-modules/message/policy-message.ts +++ b/guardian-service/src/hedera-modules/message/policy-message.ts @@ -1,8 +1,8 @@ import { Policy } from '@entity/policy'; import { Message } from './message'; -import { IURL, UrlType } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL, UrlType } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { MessageBody, PolicyMessageBody } from './message-body.interface'; export class PolicyMessage extends Message { @@ -19,7 +19,7 @@ export class PolicyMessage extends Message { constructor(type: MessageType.Policy | MessageType.InstancePolicy, action: MessageAction) { super(action, type); - this._responseType = "raw"; + this._responseType = 'raw'; this.urls = []; } @@ -46,6 +46,7 @@ export class PolicyMessage extends Message { status: null, type: this.type, action: this.action, + lang: this.lang, uuid: this.uuid, name: this.name, description: this.description, diff --git a/guardian-service/src/hedera-modules/message/registration-message.ts b/guardian-service/src/hedera-modules/message/registration-message.ts new file mode 100644 index 0000000000..5000954314 --- /dev/null +++ b/guardian-service/src/hedera-modules/message/registration-message.ts @@ -0,0 +1,80 @@ +import { Message } from './message'; +import { IURL } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; +import { RegistrationMessageBody } from './message-body.interface'; + +export class RegistrationMessage extends Message { + public did: string; + public topicId: string; + public lang: string; + public attributes: { [x: string]: string } | undefined; + + constructor(action: MessageAction) { + super(action, MessageType.StandardRegistry); + } + + public setDocument(did: string, topicId: string, attributes?: any): void { + this.did = did; + this.topicId = topicId; + this.lang = 'en-US'; + this.attributes = attributes || {}; + } + + public override toMessageObject(): RegistrationMessageBody { + return { + id: this._id, + status: null, + type: this.type, + action: this.action, + lang: this.lang, + did: this.did, + topicId: this.topicId, + attributes: this.attributes + } + } + + public async toDocuments(): Promise { + return []; + } + + public loadDocuments(documents: string[]): RegistrationMessage { + return this; + } + + public static fromMessage(message: string): RegistrationMessage { + if (!message) { + throw new Error('Message Object is empty'); + } + + const json = JSON.parse(message); + return this.fromMessageObject(json); + } + + public static fromMessageObject(json: RegistrationMessageBody): RegistrationMessage { + if (!json) { + throw new Error('JSON Object is empty'); + } + + if (json.type != MessageType.StandardRegistry) { + throw 'Invalid message type'; + } + + const message = new RegistrationMessage(json.action); + message._id = json.id; + message._status = json.status; + message.did = json.did; + message.topicId = json.topicId; + message.lang = json.lang; + message.attributes = json.attributes || {}; + return message; + } + + public override validate(): boolean { + return true; + } + + public getUrls(): IURL[] { + return []; + } +} diff --git a/guardian-service/src/hedera-modules/message/schema-message.ts b/guardian-service/src/hedera-modules/message/schema-message.ts index 63e07498c8..9d00bba543 100644 --- a/guardian-service/src/hedera-modules/message/schema-message.ts +++ b/guardian-service/src/hedera-modules/message/schema-message.ts @@ -1,9 +1,9 @@ import { Schema } from '@entity/schema'; import { Message } from './message'; -import { IURL, UrlType } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL, UrlType } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { MessageBody, SchemaMessageBody } from './message-body.interface'; export class SchemaMessage extends Message { @@ -46,6 +46,7 @@ export class SchemaMessage extends Message { status: null, type: this.type, action: this.action, + lang: this.lang, name: this.name, description: this.description, entity: this.entity, @@ -60,16 +61,17 @@ export class SchemaMessage extends Message { } public async toDocuments(): Promise { - if (this.action !== MessageAction.PublishSchema) { - return []; + if (this.action == MessageAction.PublishSchema || + this.action == MessageAction.PublishSystemSchema) { + const result = new Array(this.documents.length); + for (let i = 0; i < this.documents.length; i++) { + const json = JSON.stringify(this.documents[i]); + const buffer = Buffer.from(json); + result[i] = buffer; + } + return result; } - const result = new Array(this.documents.length); - for (let i = 0; i < this.documents.length; i++) { - const json = JSON.stringify(this.documents[i]); - const buffer = Buffer.from(json); - result[i] = buffer; - } - return result; + return []; } public loadDocuments(documents: string[]): SchemaMessage { diff --git a/guardian-service/src/hedera-modules/message/topic-message.ts b/guardian-service/src/hedera-modules/message/topic-message.ts index 49a954ead1..b6f6f2e4bf 100644 --- a/guardian-service/src/hedera-modules/message/topic-message.ts +++ b/guardian-service/src/hedera-modules/message/topic-message.ts @@ -1,7 +1,7 @@ import { Message } from './message'; -import { IURL, UrlType } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL, UrlType } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { MessageBody, TopicMessageBody } from './message-body.interface'; export class TopicMessage extends Message { @@ -41,6 +41,7 @@ export class TopicMessage extends Message { status: null, type: this.type, action: this.action, + lang: this.lang, name: this.name, description: this.description, owner: this.owner, diff --git a/guardian-service/src/hedera-modules/message/vc-message.ts b/guardian-service/src/hedera-modules/message/vc-message.ts index a8d9fef7e2..3376c76053 100644 --- a/guardian-service/src/hedera-modules/message/vc-message.ts +++ b/guardian-service/src/hedera-modules/message/vc-message.ts @@ -1,8 +1,8 @@ import { VcDocument } from './../vcjs/vc-document'; import { Message } from './message'; -import { IURL, UrlType } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL, UrlType } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { MessageBody, VcMessageBody } from './message-body.interface'; export class VCMessage extends Message { @@ -11,11 +11,16 @@ export class VCMessage extends Message { public hash: string; public issuer: string; public relationships: string[]; + public documentStatus: string; constructor(action: MessageAction) { super(action, MessageType.VCDocument); } + public setStatus(status: string): void { + this.documentStatus = status; + } + public setDocument(document: VcDocument): void { this.vcDocument = document; this.document = document.getDocument(); @@ -37,10 +42,12 @@ export class VCMessage extends Message { status: null, type: this.type, action: this.action, + lang: this.lang, issuer: this.issuer, relationships: this.relationships, cid: this.getDocumentUrl(UrlType.cid), url: this.getDocumentUrl(UrlType.url), + documentStatus: this.documentStatus }; } diff --git a/guardian-service/src/hedera-modules/message/vp-message.ts b/guardian-service/src/hedera-modules/message/vp-message.ts index e391e87185..9d3baac05c 100644 --- a/guardian-service/src/hedera-modules/message/vp-message.ts +++ b/guardian-service/src/hedera-modules/message/vp-message.ts @@ -1,8 +1,8 @@ import { VpDocument } from '../vcjs/vp-document'; import { Message } from './message'; -import { IURL, UrlType } from "./url.interface"; -import { MessageAction } from "./message-action"; -import { MessageType } from "./message-type"; +import { IURL, UrlType } from './url.interface'; +import { MessageAction } from './message-action'; +import { MessageType } from './message-type'; import { MessageBody, VpMessageBody } from './message-body.interface'; export class VPMessage extends Message { @@ -37,6 +37,7 @@ export class VPMessage extends Message { status: null, type: this.type, action: this.action, + lang: this.lang, issuer: this.issuer, relationships: this.relationships, cid: this.getDocumentUrl(UrlType.cid), diff --git a/guardian-service/src/hedera-modules/timestamp-utils.ts b/guardian-service/src/hedera-modules/timestamp-utils.ts index e8e762b6c6..c51efdce47 100644 --- a/guardian-service/src/hedera-modules/timestamp-utils.ts +++ b/guardian-service/src/hedera-modules/timestamp-utils.ts @@ -1,9 +1,9 @@ -import { Timestamp } from "@hashgraph/sdk"; +import { Timestamp } from '@hashgraph/sdk'; import moment from 'moment'; export class TimestampUtils { - public static ISO = "YYYY-MM-DDTHH:mm:ss.SSS[Z]"; - public static ISO8601 = "YYYY-MM-DDTHH:mm:ss[Z]"; + public static ISO = 'YYYY-MM-DDTHH:mm:ss.SSS[Z]'; + public static ISO8601 = 'YYYY-MM-DDTHH:mm:ss[Z]'; public static toJSON(item: Timestamp, format: string = this.ISO): string { const d = item.toDate(); diff --git a/guardian-service/src/hedera-modules/transaction-logger.ts b/guardian-service/src/hedera-modules/transaction-logger.ts new file mode 100644 index 0000000000..6b545195f9 --- /dev/null +++ b/guardian-service/src/hedera-modules/transaction-logger.ts @@ -0,0 +1,247 @@ +import { + AccountCreateTransaction, + AccountId, + TokenAssociateTransaction, + TokenCreateTransaction, + TokenDissociateTransaction, + TokenFreezeTransaction, + TokenGrantKycTransaction, + TokenMintTransaction, + TokenRevokeKycTransaction, + TokenUnfreezeTransaction, + TokenWipeTransaction, + TopicCreateTransaction, + TopicMessageSubmitTransaction, + Transaction, + TransferTransaction +} from '@hashgraph/sdk'; +import { HederaSDKHelper } from './hedera-sdk-helper'; + +export enum TransactionLogLvl { + NONE = "0", + TRANSACTION = "1", + DEBUG = "2" +} + +export class TransactionLogger { + private static logLvl: TransactionLogLvl = TransactionLogLvl.NONE; + private static fn: Function = null; + private static map = {}; + + public static setLogLevel(lvl: TransactionLogLvl): void { + TransactionLogger.logLvl = lvl || TransactionLogLvl.NONE; + } + + public static setLogFunction(fn: Function): void { + TransactionLogger.fn = fn; + } + + private static log(types: string[], duration: number, name: string, attr?: string[]) { + const date = (new Date()).toISOString(); + const d = duration ? `${(duration / 1000)}s` : '_'; + const attribute = attr || []; + if (TransactionLogger.fn) { + TransactionLogger.fn(types, date, d, name, attribute); + } + } + + private static stringSize(text: string | Uint8Array): number { + if (typeof text == 'string') { + const array = Buffer.from(text, "utf8"); + return array.length; + } else { + return text.length; + } + } + + public static async messageLog(id: string, name: string): Promise { + try { + if (TransactionLogger.logLvl == TransactionLogLvl.NONE) { + return; + } + const time = Date.now(); + const start = TransactionLogger.map[id]; + TransactionLogger.map[id] = time; + + if (start) { + const duration = time - start; + TransactionLogger.log(['MESSAGE', 'COMPLETION'], duration, name, [id]); + } else { + TransactionLogger.log(['MESSAGE', 'SEND'], null, name, [id]); + } + } catch (error) { + TransactionLogger.log(['MESSAGE', 'ERROR'], null, name, [id, error.message]); + } + } + + public static async transactionLog( + id: string, operatorAccountId: AccountId, transactionName: string, transaction?: Transaction, metadata?: any + ): Promise { + try { + if (TransactionLogger.logLvl == TransactionLogLvl.NONE) { + return; + } + const time = Date.now(); + const start = TransactionLogger.map[id]; + TransactionLogger.map[id] = time; + + const account = operatorAccountId.toString(); + const data = TransactionLogger.getTransactionData(transactionName, transaction, metadata); + const attr = [id, account, data]; + + if (TransactionLogger.logLvl == TransactionLogLvl.DEBUG) { + try { + const client = new HederaSDKHelper(process.env.OPERATOR_ID, process.env.OPERATOR_KEY); + const balance = await client.balance(operatorAccountId); + attr.push(balance); + } catch (error) { + attr.push(null); + } + } + + if (transaction) { + const duration = time - start; + TransactionLogger.log(['TRANSACTION', 'COMPLETION'], duration, transactionName, attr); + } else { + TransactionLogger.log(['TRANSACTION', 'CREATE'], null, transactionName, attr); + } + } catch (error) { + TransactionLogger.log(['TRANSACTION', 'ERROR'], null, transactionName, [id, error.message]); + } + } + + private static getTransactionData(transactionName: string, transaction: Transaction, metadata?: any): string { + let data = ''; + if (!transaction) { + return data; + } + if (transactionName == 'TokenCreateTransaction') { + const t = transaction as TokenCreateTransaction; + data += 'payer sigs: 1; '; + data += `admin keys: ${t.adminKey ? 1 : 0}; `; + data += `KYC keys: ${t.kycKey ? 1 : 0}; `; + data += `wipe keys: ${t.wipeKey ? 1 : 0}; `; + data += `pause keys: ${t.pauseKey ? 1 : 0}; `; + data += `supply keys: ${t.supplyKey ? 1 : 0}; `; + data += `freeze keys: ${t.freezeKey ? 1 : 0}; `; + data += `token name size: ${this.stringSize(t.tokenName)}; `; + data += `token symbol size: ${this.stringSize(t.tokenSymbol)}; `; + data += `token memo size: ${this.stringSize(t.tokenMemo)}; `; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenAssociateTransaction') { + const t = transaction as TokenAssociateTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += 'tokens associated: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenDissociateTransaction') { + const t = transaction as TokenDissociateTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += 'tokens dissociated: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenFreezeTransaction') { + const t = transaction as TokenFreezeTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenUnfreezeTransaction') { + const t = transaction as TokenUnfreezeTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenGrantKycTransaction') { + const t = transaction as TokenGrantKycTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenRevokeKycTransaction') { + const t = transaction as TokenRevokeKycTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenMintTransaction') { + const t = transaction as TokenMintTransaction; + data += 'Fungible Token; '; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenMintNFTTransaction') { + transactionName = 'TokenMintTransaction'; + const t = transaction as TokenMintTransaction; + data += 'Non-Fungible Token; '; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `of NFTs minted: ${t.metadata.length};`; + data += `bytes of metadata per NFT: ${t.metadata[0].length};`; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TokenWipeTransaction') { + const t = transaction as TokenWipeTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TransferTransaction') { + const t = transaction as TransferTransaction; + data += 'Fungible Token; '; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `amount: ${metadata}; `; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'NFTTransferTransaction') { + transactionName = 'TransferTransaction'; + const t = transaction as TransferTransaction; + data += 'Non-Fungible Token; '; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `of NFTs transferred: ${metadata.length}; `; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'AccountCreateTransaction') { + const t = transaction as AccountCreateTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TopicCreateTransaction') { + const t = transaction as TopicCreateTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `admin keys: ${t.adminKey ? 1 : 0}; `; + data += `submit keys: ${t.submitKey ? 1 : 0}; `; + data += `topic memo size: ${this.stringSize(t.topicMemo)}; `; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + if (transactionName == 'TopicMessageSubmitTransaction') { + const t = transaction as TopicMessageSubmitTransaction; + data += 'payer sigs: 1; '; + data += 'total sigs: 1; '; + data += `message size: ${this.stringSize(t.message)}; `; + data += `memo size: ${this.stringSize(t.transactionMemo)}; `; + } + return data; + } + + public static async transactionErrorLog( + id: string, operatorAccountId: AccountId, transactionName: string, transaction: Transaction, message: string + ): Promise { + try { + const account = operatorAccountId.toString(); + const attr = [id, account, message]; + TransactionLogger.log(['TRANSACTION', 'ERROR'], null, transactionName, attr); + } catch (error) { + TransactionLogger.log(['TRANSACTION', 'ERROR'], null, transactionName, [error.message]); + } + } + +} \ No newline at end of file diff --git a/guardian-service/src/hedera-modules/utils.ts b/guardian-service/src/hedera-modules/utils.ts index 08c8c9dad4..71a5ddf842 100644 --- a/guardian-service/src/hedera-modules/utils.ts +++ b/guardian-service/src/hedera-modules/utils.ts @@ -6,7 +6,7 @@ export function timeout(timeoutValue: number) { descriptor.value = async function () { const timeoutPromise = new Promise((resolve, reject) => { setTimeout(() => { - reject('Transaction timeout exceeded'); + reject(new Error('Transaction timeout exceeded')); }, timeoutValue); }) return Promise.race([oldFunc.apply(this, arguments), timeoutPromise]); diff --git a/guardian-service/src/hedera-modules/vcjs/did-document.ts b/guardian-service/src/hedera-modules/vcjs/did-document.ts index aaad723e1d..42db33fab3 100644 --- a/guardian-service/src/hedera-modules/vcjs/did-document.ts +++ b/guardian-service/src/hedera-modules/vcjs/did-document.ts @@ -1,7 +1,7 @@ -import { PrivateKey, PublicKey, TopicId } from "@hashgraph/sdk"; -import { Environment } from "./../environment"; -import { Hashing } from "./../hashing"; -import { IVerificationMethod, IDidDocument } from "interfaces"; +import { PrivateKey, PublicKey, TopicId } from '@hashgraph/sdk'; +import { Environment } from './../environment'; +import { Hashing } from './../hashing'; +import { IVerificationMethod, IDidDocument } from '@guardian/interfaces'; export class DidRootKey { public static DID_ROOT_KEY_NAME = '#did-root-key'; @@ -80,7 +80,7 @@ export class DidRootKey { if (!json) { throw new Error('JSON Object is empty'); } - + return DidRootKey.fromJsonTree(JSON.parse(json)); } @@ -359,7 +359,7 @@ export class DIDDocument { result.topicId = topicId; } } - result.network = Environment.getNetwork(); + result.network = Environment.network; result.idString = DidRootKey.publicKeyToIdString(result.publicKey); result.did = result.buildDid(); result.document = DidDocumentBase.createByPrivateKey(result.did, result.privateKey); @@ -369,10 +369,10 @@ export class DIDDocument { public static from(did: string, didRootKey: PublicKey | string): DIDDocument { try { if (!did) { - throw new Error("DID string cannot be null"); + throw new Error('DID string cannot be null'); } if (!didRootKey) { - throw new Error("DID Root Key is empty"); + throw new Error('DID Root Key is empty'); } const mainParts = did.split(DIDDocument.DID_PARAMETER_SEPARATOR); const didParts = mainParts[0].split(DIDDocument.DID_METHOD_SEPARATOR); @@ -423,8 +423,8 @@ export class DIDDocument { throw new Error('The specified DID does not correspond to the given DID root key'); } return result; - } catch (e) { - throw new Error('DID string is invalid. ' + e.message); + } catch (error) { + throw new Error('DID string is invalid. ' + error.message); } } -} \ No newline at end of file +} diff --git a/guardian-service/src/hedera-modules/vcjs/issuer.ts b/guardian-service/src/hedera-modules/vcjs/issuer.ts index 3f62359ab8..ee3c524207 100644 --- a/guardian-service/src/hedera-modules/vcjs/issuer.ts +++ b/guardian-service/src/hedera-modules/vcjs/issuer.ts @@ -31,11 +31,11 @@ export class Issuer { public static fromJsonTree(root: any): Issuer { if (!root) { - throw new Error("JSON Object is empty"); + throw new Error('JSON Object is empty'); } let id: string, name: string; - if (typeof root == "string") { + if (typeof root == 'string') { id = root; } else { id = root[Issuer.ID]; @@ -52,8 +52,8 @@ export class Issuer { try { const root = JSON.parse(json); return this.fromJsonTree(root); - } catch (e) { - throw new Error('Given JSON string is not a valid Issuer ' + e.message); + } catch (error) { + throw new Error('Given JSON string is not a valid Issuer ' + error.message); } } } diff --git a/guardian-service/src/hedera-modules/vcjs/vc-document.ts b/guardian-service/src/hedera-modules/vcjs/vc-document.ts index 534e29d882..4e1ffaffbc 100644 --- a/guardian-service/src/hedera-modules/vcjs/vc-document.ts +++ b/guardian-service/src/hedera-modules/vcjs/vc-document.ts @@ -1,10 +1,10 @@ -import { Timestamp } from "@hashgraph/sdk"; -import { Hashing } from "./../hashing"; -import { TimestampUtils } from "./../timestamp-utils"; -import { IVC } from "interfaces"; -import { DIDDocument } from "./did-document"; -import { Issuer } from "./issuer"; -import { VcSubject } from "./vc-subject"; +import { Timestamp } from '@hashgraph/sdk'; +import { Hashing } from '../hashing'; +import { TimestampUtils } from '../timestamp-utils'; +import { IVC } from '@guardian/interfaces'; +import { DIDDocument } from './did-document'; +import { Issuer } from './issuer'; +import { VcSubject } from './vc-subject'; export class VcDocument { public static readonly CONTEXT = '@context'; @@ -122,8 +122,8 @@ export class VcDocument { try { const root = JSON.parse(json); result = VcDocument.fromJsonTree(root); - } catch (e) { - throw new Error('Given JSON string is not a valid VcDocument ' + e.message); + } catch (error) { + throw new Error('Given JSON string is not a valid VcDocument ' + error.message); } return result; } @@ -247,4 +247,4 @@ export class VcDocument { public proofFromJson(json: any): void { this.setProof(json[VcDocument.PROOF]); } -} \ No newline at end of file +} diff --git a/guardian-service/src/hedera-modules/vcjs/vc-subject.ts b/guardian-service/src/hedera-modules/vcjs/vc-subject.ts index 9fd2ca9907..3231738aa5 100644 --- a/guardian-service/src/hedera-modules/vcjs/vc-subject.ts +++ b/guardian-service/src/hedera-modules/vcjs/vc-subject.ts @@ -1,9 +1,9 @@ -import { ICredentialSubject } from "interfaces"; +import { ICredentialSubject } from '@guardian/interfaces'; export class VcSubject { public static readonly CREDENTIAL_ID: string = 'id'; public static readonly CREDENTIAL_TYPE: string = 'type'; - public static readonly CONTEXT: string = "@context"; + public static readonly CONTEXT: string = '@context'; protected id: string; protected context: string[]; @@ -79,7 +79,7 @@ export class VcSubject { if (this.type) { json[VcSubject.CREDENTIAL_TYPE] = this.type; } - + return json; } @@ -93,8 +93,8 @@ export class VcSubject { try { const root = JSON.parse(json); result = VcSubject.fromJsonTree(root); - } catch (e) { - throw new Error('Given JSON string is not a valid VcSubject ' + e.message); + } catch (error) { + throw new Error('Given JSON string is not a valid VcSubject ' + error.message); } return result; } @@ -124,4 +124,4 @@ export class VcSubject { return result; } -} \ No newline at end of file +} diff --git a/guardian-service/src/hedera-modules/vcjs/vcjs.ts b/guardian-service/src/hedera-modules/vcjs/vcjs.ts index 2e7aac613a..27d2a46f17 100644 --- a/guardian-service/src/hedera-modules/vcjs/vcjs.ts +++ b/guardian-service/src/hedera-modules/vcjs/vcjs.ts @@ -1,21 +1,19 @@ -import Ajv from "ajv"; -import addFormats from "ajv-formats"; +import Ajv from 'ajv'; +import addFormats from 'ajv-formats'; import { ld as vcjs } from '@transmute/vc.js'; import { Ed25519Signature2018, Ed25519VerificationKey2018 } from '@transmute/ed25519-signature-2018'; import { PrivateKey } from '@hashgraph/sdk'; import { check, CheckResult } from '@transmute/jsonld-schema'; -import { ICredentialSubject, IVC } from 'interfaces'; +import { ICredentialSubject, IVC } from '@guardian/interfaces'; import { VcDocument } from './vc-document'; import { VpDocument } from './vp-document'; import { HederaUtils } from './../utils'; import { VcSubject } from './vc-subject'; -import { TimestampUtils } from './../timestamp-utils'; -import { DocumentLoaderFunction } from './../document-loader/document-loader-function'; -import { DocumentLoader } from "./..//document-loader/document-loader"; -import { SchemaLoader, SchemaLoaderFunction } from "./..//document-loader/schema-loader"; -import { Hashing } from "./../hashing"; -import { DidRootKey } from "./did-document"; -import e from "express"; +import { TimestampUtils } from '../timestamp-utils'; +import { DocumentLoaderFunction } from '../document-loader/document-loader-function'; +import { DocumentLoader } from '../document-loader/document-loader'; +import { SchemaLoader, SchemaLoaderFunction } from '../document-loader/schema-loader'; +import { DidRootKey } from './did-document'; export interface ISuite { issuer: string; @@ -86,11 +84,11 @@ export class VCJS { /** * Create Suite by DID - * + * * @param {string} id - Root DID * @param {string} did - DID * @param {PrivateKey} privateKey - Private Key - * + * * @returns {Ed25519Signature2018} - Ed25519Signature2018 */ public async createSuite(document: DidRootKey): Promise { @@ -101,11 +99,11 @@ export class VCJS { /** * Issue VC Document - * + * * @param {HcsVcDocument} vcDocument - VC Document * @param {Ed25519Signature2018} suite - suite * @param {DocumentLoaderFunction} documentLoader - Document Loader - * + * * @returns {HcsVcDocument} - VC Document */ public async issue( @@ -125,10 +123,10 @@ export class VCJS { /** * Verify VC Document - * + * * @param {HcsVcDocument} vcDocument - VC Document * @param {DocumentLoaderFunction} documentLoader - Document Loader - * + * * @returns {boolean} - status */ public async verify(json: any, documentLoader: DocumentLoaderFunction): Promise { @@ -154,11 +152,11 @@ export class VCJS { /** * Issue VP Document - * + * * @param {HcsVpDocument} vpDocument - VP Document * @param {Ed25519Signature2018} suite - suite * @param {DocumentLoaderFunction} documentLoader - Document Loader - * + * * @returns {HcsVpDocument} - VP Document */ public async issuePresentation( @@ -204,7 +202,7 @@ export class VCJS { throw new Error('Schema Loader not found'); } - const schema = await this.schemaLoader(subject["@context"], subject.type, "vc"); + const schema = await this.schemaLoader(subject['@context'], subject.type, 'vc'); if (!schema) { throw new Error('Schema not found'); @@ -241,7 +239,7 @@ export class VCJS { /** * Delete system fields from schema defs - * + * * @param schema Schema */ private prepareSchema(schema: any) { @@ -333,7 +331,7 @@ export class VCJS { throw new Error('Schema Loader not found'); } - const schema = await this.schemaLoader(subject["@context"], subject.type, "subject"); + const schema = await this.schemaLoader(subject['@context'], subject.type, 'subject'); if (!schema) { throw new Error('Schema not found'); diff --git a/guardian-service/src/hedera-modules/vcjs/vp-document.ts b/guardian-service/src/hedera-modules/vcjs/vp-document.ts index 790fbd99b0..3e283aa15a 100644 --- a/guardian-service/src/hedera-modules/vcjs/vp-document.ts +++ b/guardian-service/src/hedera-modules/vcjs/vp-document.ts @@ -1,10 +1,10 @@ -import { Hashing } from "./../hashing"; -import { IVP } from "interfaces"; -import { VcDocument } from "./vc-document"; -import { Issuer } from "./issuer"; -import { DIDDocument } from "./did-document"; -import { TimestampUtils } from "./../timestamp-utils"; -import { Timestamp } from "@hashgraph/sdk"; +import { Hashing } from '../hashing'; +import { IVP } from '@guardian/interfaces'; +import { VcDocument } from './vc-document'; +import { Issuer } from './issuer'; +import { DIDDocument } from './did-document'; +import { TimestampUtils } from '../timestamp-utils'; +import { Timestamp } from '@hashgraph/sdk'; export class VpDocument { public static readonly FIRST_CONTEXT_ENTRY = 'https://www.w3.org/2018/credentials/v1'; @@ -156,8 +156,8 @@ export class VpDocument { const root = JSON.parse(json); result = this.fromJsonTree(root); - } catch (e) { - throw new Error('Given JSON string is not a valid VpDocument ' + e.message); + } catch (error) { + throw new Error('Given JSON string is not a valid VpDocument ' + error.message); } return result; } @@ -229,4 +229,4 @@ export class VpDocument { public getDocument(): IVP { return this.toJsonTree(); } -} \ No newline at end of file +} diff --git a/guardian-service/src/helpers/ipfs.ts b/guardian-service/src/helpers/ipfs.ts index 43d849b36b..bdc0fba524 100644 --- a/guardian-service/src/helpers/ipfs.ts +++ b/guardian-service/src/helpers/ipfs.ts @@ -1,5 +1,5 @@ -import { MessageBrokerChannel } from "common"; -import { MessageAPI, IGetFileMessage, IFileResponse, IAddFileMessage } from "interfaces"; +import { MessageBrokerChannel } from "@guardian/common"; +import { MessageAPI, IGetFileMessage, IFileResponse, IAddFileMessage } from "@guardian/interfaces"; /** * IPFS service @@ -26,7 +26,7 @@ export class IPFS { /** * Return hash of added file * @param {ArrayBuffer} file file to upload on IPFS - * + * * @returns {string} - hash */ public static async addFile(file: ArrayBuffer): Promise<{ cid: string, url: string }> { @@ -56,4 +56,4 @@ export class IPFS { } return res.body; } -} \ No newline at end of file +} diff --git a/guardian-service/src/helpers/serviceRequestsBase.ts b/guardian-service/src/helpers/serviceRequestsBase.ts index 0b131106fc..3c8503c219 100644 --- a/guardian-service/src/helpers/serviceRequestsBase.ts +++ b/guardian-service/src/helpers/serviceRequestsBase.ts @@ -1,4 +1,4 @@ -import { MessageBrokerChannel } from "common"; +import { MessageBrokerChannel } from "@guardian/common"; export abstract class ServiceRequestsBase { protected channel: MessageBrokerChannel; @@ -35,8 +35,8 @@ export abstract class ServiceRequestsBase { throw response.error; } return response.body; - } catch (e) { - throw new Error(`Guardian (${entity}) send: ` + e); + } catch (error) { + throw new Error(`Guardian (${entity}) send: ` + error); } } } diff --git a/guardian-service/src/helpers/topicHelper.ts b/guardian-service/src/helpers/topicHelper.ts index 7e917e82f5..88c4c2d334 100644 --- a/guardian-service/src/helpers/topicHelper.ts +++ b/guardian-service/src/helpers/topicHelper.ts @@ -1,6 +1,6 @@ import { Topic } from '@entity/topic'; import { HederaSDKHelper, MessageAction, MessageServer, MessageType, TopicMessage } from '@hedera-modules'; -import { TopicType } from 'interfaces'; +import { TopicType } from '@guardian/interfaces'; import { getMongoRepository } from 'typeorm'; export class TopicHelper { @@ -38,7 +38,26 @@ export class TopicHelper { return topic; } - public async link(topic: Topic, parent: Topic, rationale: string) { + public async oneWayLink(topic: Topic, parent: Topic, rationale: string) { + const messageServer = new MessageServer(this.hederaAccountId, this.hederaAccountKey); + + const message1 = new TopicMessage(MessageAction.CreateTopic); + message1.setDocument({ + name: topic.name, + description: topic.description, + owner: topic.owner, + messageType: topic.type, + childId: null, + parentId: parent?.topicId, + rationale: rationale + }); + + await messageServer + .setTopicObject(topic) + .sendMessage(message1); + } + + public async twoWayLink(topic: Topic, parent: Topic, rationale: string) { const messageServer = new MessageServer(this.hederaAccountId, this.hederaAccountKey); const message1 = new TopicMessage(MessageAction.CreateTopic); diff --git a/guardian-service/src/helpers/users.ts b/guardian-service/src/helpers/users.ts index ad52c8b380..c6faf0df4a 100644 --- a/guardian-service/src/helpers/users.ts +++ b/guardian-service/src/helpers/users.ts @@ -1,6 +1,6 @@ import { Singleton } from '@helpers/decorators/singleton'; import { Request } from 'express'; -import { AuthEvents, UserRole } from 'interfaces'; +import { AuthEvents, UserRole } from '@guardian/interfaces'; import { ServiceRequestsBase } from '@helpers/serviceRequestsBase'; import { IAuthUser } from '@auth/auth.interface'; import { KeyType, Wallet } from '@helpers/wallet'; @@ -134,8 +134,8 @@ export class Users extends ServiceRequestsBase { return await this.request(AuthEvents.GET_ALL_USER_ACCOUNTS); } - public async getAllRootAuthorityAccounts() { - return await this.request(AuthEvents.GET_ALL_ROOT_AUTHORITY_ACCOUNTS); + public async getAllStandardRegistryAccounts() { + return await this.request(AuthEvents.GET_ALL_STANDARD_REGISTRY_ACCOUNTS); } public async getAllUserAccountsDemo() { @@ -164,6 +164,3 @@ export class Users extends ServiceRequestsBase { } } } - - - diff --git a/guardian-service/src/helpers/utils.ts b/guardian-service/src/helpers/utils.ts index 699af5c9f0..3f100dc066 100644 --- a/guardian-service/src/helpers/utils.ts +++ b/guardian-service/src/helpers/utils.ts @@ -1,5 +1,5 @@ import { GenerateUUIDv4 } from '@policy-engine/helpers/uuidv4'; -import { IVC, IVCDocument } from 'interfaces'; +import { IVC, IVCDocument } from '@guardian/interfaces'; export const SchemaFields = [ 'schema', @@ -95,7 +95,11 @@ export function findOptions(document: any, field: any) { value = document; for (let i = 0; i < keys.length; i++) { const key = keys[i]; - value = value[key]; + if (Array.isArray(value[key])) { + value = value[key].join(','); + } else { + value = value[key]; + } } } return value; diff --git a/guardian-service/src/helpers/wallet.ts b/guardian-service/src/helpers/wallet.ts index 228424e4ff..a81c3c6c44 100644 --- a/guardian-service/src/helpers/wallet.ts +++ b/guardian-service/src/helpers/wallet.ts @@ -1,6 +1,6 @@ import { Singleton } from '@helpers/decorators/singleton'; import { ServiceRequestsBase } from '@helpers/serviceRequestsBase'; -import { WalletEvents, IGetKeyResponse } from 'interfaces'; +import { WalletEvents, IGetKeyResponse } from '@guardian/interfaces'; export enum KeyType { ID = 'ID', diff --git a/guardian-service/src/index.ts b/guardian-service/src/index.ts index 3feaec3b2e..11b146661a 100644 --- a/guardian-service/src/index.ts +++ b/guardian-service/src/index.ts @@ -1,3 +1,2 @@ -import 'module-alias/register'; import './config'; import './app'; diff --git a/guardian-service/src/policy-engine/block-tree-generator.ts b/guardian-service/src/policy-engine/block-tree-generator.ts index bbf069bd55..0f26a1fb87 100644 --- a/guardian-service/src/policy-engine/block-tree-generator.ts +++ b/guardian-service/src/policy-engine/block-tree-generator.ts @@ -13,7 +13,8 @@ import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { GenerateUUIDv4 } from '@policy-engine/helpers/uuidv4'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; +import { PolicyConverterUtils } from './policy-converter-utils'; @Singleton export class BlockTreeGenerator { @@ -33,13 +34,12 @@ export class BlockTreeGenerator { } public async init(): Promise { - const policies = await getMongoRepository(Policy).find({status: 'PUBLISH'}); + const policies = await getMongoRepository(Policy).find({ status: 'PUBLISH' }); for (let policy of policies) { try { await this.generate(policy.id.toString()); - } catch (e) { - new Logger().error(e.toString(), ['GUARDIAN_SERVICE']); - console.error(e.message); + } catch (error) { + new Logger().error(error, ['GUARDIAN_SERVICE']); } } } @@ -68,33 +68,20 @@ export class BlockTreeGenerator { policyId = PolicyComponentsUtils.GenerateNewUUID(); } - const configObject = policy.config as ISerializedBlock; + new Logger().info('Start policy', ['GUARDIAN_SERVICE', policy.name, policyId.toString()]); - async function BuildInstances(block: ISerializedBlock, parent?: IPolicyBlock): Promise { - const {blockType, children, ...params}: ISerializedBlockExtend = block; - if (parent) { - params._parent = parent; - } - const blockInstance = PolicyComponentsUtils.ConfigureBlock(policyId.toString(), blockType, params as any, skipRegistration) as any; - blockInstance.setPolicyId(policyId.toString()) - blockInstance.setPolicyOwner(policy.owner); - blockInstance.setPolicyInstance(policy); - if (children && children.length) { - for (let child of children) { - await BuildInstances(child, blockInstance); - } + try { + const instancesArray: IPolicyBlock[] = []; + const model = PolicyComponentsUtils.BuildBlockTree(policy, policyId, instancesArray); + if (!skipRegistration) { + await PolicyComponentsUtils.RegisterBlockTree(instancesArray) + this.models.set(policy.id.toString(), model as any); } - await blockInstance.restoreState(); - return blockInstance; - } - - new Logger().info('Start policy', ['GUARDIAN_SERVICE', policy.name, policyId.toString()]); - const model = await BuildInstances(configObject); - if (!skipRegistration) { - this.models.set(policy.id.toString(), model as any); + return model as IPolicyInterfaceBlock; + } catch (error) { + new Logger().error(`Error build policy ${error}`, ['GUARDIAN_SERVICE', policy.name, policyId.toString()]); + return null; } - - return model as IPolicyInterfaceBlock; } /** diff --git a/guardian-service/src/policy-engine/blocks/interface-document-action-block.ts b/guardian-service/src/policy-engine/blocks/action-block.ts similarity index 83% rename from guardian-service/src/policy-engine/blocks/interface-document-action-block.ts rename to guardian-service/src/policy-engine/blocks/action-block.ts index 20e98c7e80..f1982544c0 100644 --- a/guardian-service/src/policy-engine/blocks/interface-document-action-block.ts +++ b/guardian-service/src/policy-engine/blocks/action-block.ts @@ -7,12 +7,14 @@ import { Policy } from '@entity/policy'; import { Users } from '@helpers/users'; import { KeyType, Wallet } from '@helpers/wallet'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; -import { UserType, Schema } from 'interfaces'; +import { UserType, Schema } from '@guardian/interfaces'; import { Schema as SchemaEntity } from '@entity/schema' import { findOptions } from '@policy-engine/helpers/find-options'; import { IPolicyAddonBlock, IPolicyInterfaceBlock } from '@policy-engine/policy-engine.interface'; import { DidDocumentBase } from '@hedera-modules'; import { PrivateKey } from '@hashgraph/sdk'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; /** * Document action clock with UI @@ -20,6 +22,20 @@ import { PrivateKey } from '@hashgraph/sdk'; @EventBlock({ blockType: 'interfaceActionBlock', commonBlock: false, + about: { + label: 'Action', + title: `Add 'Action' Block`, + post: true, + get: true, + children: ChildrenType.Special, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } }) export class InterfaceDocumentActionBlock { @Inject() @@ -29,7 +45,7 @@ export class InterfaceDocumentActionBlock { private wallet: Wallet; async getData(user: IAuthUser): Promise { - const ref = PolicyComponentsUtils.GetBlockRef(this); + const ref = PolicyComponentsUtils.GetBlockRef(this); const data: any = { id: ref.uuid, @@ -44,7 +60,7 @@ export class InterfaceDocumentActionBlock { } if (ref.options.type == 'dropdown') { - let documents: any[] = await this.getSources(user); + let documents: any[] = await ref.getSources(user, null); data.name = ref.options.name; data.value = ref.options.value; data.field = ref.options.field; @@ -69,13 +85,20 @@ export class InterfaceDocumentActionBlock { const ownerDid = option.user === UserType.CURRENT ? user.did : document.owner; - const block = PolicyComponentsUtils.GetBlockByTag(ref.policyId, option.bindBlock) as any; const owner = await this.users.getUserById(ownerDid); - await ref.runTarget(owner, state, block); + ref.triggerEvents(option.tag, owner, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, owner, state); } return; } + if (ref.options.type == 'dropdown') { + const owner = await this.users.getUserById(document.owner); + ref.triggerEvents(PolicyOutputEventType.DropdownEvent, owner, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, owner, state); + return; + } + if (ref.options.type == 'download') { const sensorDid = document.document.credentialSubject[0].id; const policy = await getMongoRepository(Policy).findOne(ref.policyId); @@ -109,15 +132,6 @@ export class InterfaceDocumentActionBlock { } } } - - if (ref.options.type == 'dropdown') { - if (ref.options.bindBlock) { - const block = PolicyComponentsUtils.GetBlockByTag(ref.policyId, ref.options.bindBlock) as any; - const owner = await this.users.getUserById(document.owner); - await ref.runTarget(owner, state, block); - return; - } - } } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -138,10 +152,17 @@ export class InterfaceDocumentActionBlock { resultsContainer.addBlockError(ref.uuid, 'Option "uiMetaData.options" does not set'); } if (Array.isArray(ref.options.uiMetaData.options)) { - for (let tag of ref.options.uiMetaData.options.map(i => i.bindBlock)) { - if (tag && !resultsContainer.isTagExist(tag)) { - resultsContainer.addBlockError(ref.uuid, `Tag "${tag}" does not exist`); + const tagMap = {}; + for (let option of ref.options.uiMetaData.options) { + if (!option.tag) { + resultsContainer.addBlockError(ref.uuid, `Option "tag" does not set`); } + + if (tagMap[option.tag]) { + resultsContainer.addBlockError(ref.uuid, `Option Tag ${option.tag} already exist`); + } + + tagMap[option.tag] = true; } } else { resultsContainer.addBlockError(ref.uuid, 'Option "uiMetaData.options" must be an array'); @@ -194,17 +215,6 @@ export class InterfaceDocumentActionBlock { } } - private async getSources(user: IAuthUser): Promise { - const ref = PolicyComponentsUtils.GetBlockRef(this); - let data = []; - for (let child of ref.children) { - if (child.blockClassName === 'SourceAddon') { - data = data.concat(await PolicyComponentsUtils.GetBlockRef(child).getFromSource(user)) - } - } - return data; - } - private findOptions(document: any, field: any, options: any[]) { let value: any = null; if (document && field) { @@ -217,4 +227,4 @@ export class InterfaceDocumentActionBlock { } return options.find(e => e.value == value); } -} +} \ No newline at end of file diff --git a/guardian-service/src/policy-engine/blocks/aggregate-block.ts b/guardian-service/src/policy-engine/blocks/aggregate-block.ts index 30109497e9..a4d36e3c64 100644 --- a/guardian-service/src/policy-engine/blocks/aggregate-block.ts +++ b/guardian-service/src/policy-engine/blocks/aggregate-block.ts @@ -1,40 +1,60 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { getMongoRepository } from 'typeorm'; import { AggregateVC } from '@entity/aggregateDocuments'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; -import { IAuthUser } from '@auth/auth.interface'; import { VcDocument } from '@hedera-modules'; import { AnyBlockType } from '@policy-engine/policy-engine.interface'; import { Users } from '@helpers/users'; import { Inject } from '@helpers/decorators/inject'; -import { DocumentSignature, DocumentStatus } from 'interfaces'; +import { DocumentSignature, DocumentStatus } from '@guardian/interfaces'; import { PolicyUtils } from '@policy-engine/helpers/utils'; -import { PolicyEvent } from '@policy-engine/interfaces/policy-event'; +import { IPolicyEvent } from '@policy-engine/interfaces/policy-event'; +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces/policy-event-type'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Aggregate block */ @BasicBlock({ blockType: 'aggregateDocumentBlock', - commonBlock: true + commonBlock: true, + publishExternalEvent: true, + about: { + label: 'Aggregate Data', + title: `Add 'Aggregate' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.TimerEvent, + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class AggregateBlock { @Inject() private users: Users; - start() { + /** + * @event PolicyEventType.TimerEvent + * @param {IPolicyEvent} event + */ + @ActionCallback({ + type: PolicyInputEventType.TimerEvent, + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) + private async tickCron(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); - if (ref.options.aggregateType == 'period') { - PolicyComponentsUtils.RegisterEvent( - ref.policyId, ref.options.timer, 'TimerEvent', this.tickCron.bind(this) - ); + if (ref.options.aggregateType !== 'period') { + return; } - } - - private async tickCron(event: PolicyEvent) { - const ref = PolicyComponentsUtils.GetBlockRef(this); - const users = event.data || []; ref.log(`tick scheduler, ${users.length}`); @@ -46,7 +66,7 @@ export class AggregateBlock { }); const map = new Map(); - const removeMsp:AggregateVC[] = []; + const removeMsp: AggregateVC[] = []; for (let did of users) { map.set(did, []); } @@ -59,18 +79,20 @@ export class AggregateBlock { } } - if(removeMsp.length) { + if (removeMsp.length) { await repository.remove(removeMsp); } for (let did of users) { const user = await this.users.getUserById(did); const documents = map.get(did); - if(documents.length) { + if (documents.length) { await repository.remove(documents); } - if(documents.length || ref.options.emptyData) { - await ref.runNext(user, { data: documents }); + if (documents.length || ref.options.emptyData) { + const state = { data: documents }; + ref.triggerEvents(PolicyOutputEventType.RunEvent, user, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, state); } } } @@ -106,6 +128,9 @@ export class AggregateBlock { return result; } + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) private async tickAggregate(ref: AnyBlockType, owner: string) { const { expressions, condition } = ref.options; @@ -129,7 +154,9 @@ export class AggregateBlock { if (result === true) { const user = await this.users.getUserById(owner); await repository.remove(rawEntities); - await ref.runNext(user, { data: rawEntities }); + const state = { data: rawEntities }; + ref.triggerEvents(PolicyOutputEventType.RunEvent, user, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, state); } } @@ -156,11 +183,15 @@ export class AggregateBlock { await repository.save(newVC); } - async runAction(state: any, user: IAuthUser) { + /** + * @event PolicyInputEventType.RunEvent + * @param {IPolicyEvent} event + */ + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); const { aggregateType } = ref.options; - const docs: any | any[] = state.data; + const docs: any | any[] = event.data.data; let owner: string = null; if (Array.isArray(docs)) { for (let doc of docs) { diff --git a/guardian-service/src/policy-engine/blocks/button-block.ts b/guardian-service/src/policy-engine/blocks/button-block.ts new file mode 100644 index 0000000000..70175676ac --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/button-block.ts @@ -0,0 +1,96 @@ +import { EventBlock } from '@policy-engine/helpers/decorators'; +import { IAuthUser } from '@auth/auth.interface'; +import { PolicyComponentsUtils } from '../policy-components-utils'; +import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; +import { IPolicyAddonBlock, IPolicyInterfaceBlock } from '@policy-engine/policy-engine.interface'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; + +/** + * Document Butons with UI + */ +@EventBlock({ + blockType: 'buttonBlock', + commonBlock: false, + about: { + label: 'Button', + title: `Add 'Button' Block`, + post: true, + get: true, + children: ChildrenType.Special, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent + ], + output: null, + defaultEvent: false + } +}) +export class ButtonBlock { + async getData(user: IAuthUser): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const data: any = { + id: ref.uuid, + blockType: ref.blockType, + type: ref.options.type, + uiMetaData: ref.options.uiMetaData, + user: ref.options.user + } + return data; + } + + async setData(user: IAuthUser, blockData: {document: any, tag: any}): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + + let state: any = { data: blockData.document }; + ref.triggerEvents(blockData.tag, user, state); + } + + public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + try { + if (!ref.options.uiMetaData || (typeof ref.options.uiMetaData !== 'object')) { + resultsContainer.addBlockError(ref.uuid, 'Option "uiMetaData" does not set'); + } else { + if (Array.isArray(ref.options.uiMetaData.buttons)) { + for (const button of ref.options.uiMetaData.buttons) { + if (!button.tag) { + resultsContainer.addBlockError(ref.uuid, 'Option "tag" does not set'); + } + if (Array.isArray(button.filters)) { + for (const filter of button.filters) { + if (!filter.type) { + resultsContainer.addBlockError(ref.uuid, 'Option "type" does not set'); + } + if (!filter.field) { + resultsContainer.addBlockError(ref.uuid, 'Option "field" does not set'); + } + } + } + else { + resultsContainer.addBlockError(ref.uuid, 'Option "button.filters" must be an array'); + } + switch (button.type) { + case 'selector': + break; + case 'selector-dialog': + if (!button.title) { + resultsContainer.addBlockError(ref.uuid, 'Option "title" does not set'); + } + if (!button.description) { + resultsContainer.addBlockError(ref.uuid, 'Option "description" does not set'); + } + break; + default: + resultsContainer.addBlockError(ref.uuid, 'Option "type" must be a "selector|selector-dialog"'); + } + } + } else { + resultsContainer.addBlockError(ref.uuid, 'Option "uiMetaData.buttons" must be an array'); + } + } + } catch (error) { + resultsContainer.addBlockError(ref.uuid, `Unhandled exception ${error.message}`); + } + } +} diff --git a/guardian-service/src/policy-engine/blocks/calculate-block.ts b/guardian-service/src/policy-engine/blocks/calculate-block.ts index 19eb489f9e..9292bc30b4 100644 --- a/guardian-service/src/policy-engine/blocks/calculate-block.ts +++ b/guardian-service/src/policy-engine/blocks/calculate-block.ts @@ -1,5 +1,5 @@ -import { DocumentSignature, Schema, SchemaHelper } from 'interfaces'; -import { CalculateBlock } from '@policy-engine/helpers/decorators'; +import { DocumentSignature, Schema, SchemaHelper } from '@guardian/interfaces'; +import { ActionCallback, CalculateBlock } from '@policy-engine/helpers/decorators'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IPolicyCalculateBlock } from '@policy-engine/policy-engine.interface'; @@ -13,10 +13,28 @@ import { Schema as SchemaCollection } from '@entity/schema'; import { VcDocument as VcDocumentCollection } from '@entity/vc-document'; import { Inject } from '@helpers/decorators/inject'; import { Users } from '@helpers/users'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @CalculateBlock({ blockType: 'calculateContainerBlock', - commonBlock: true + commonBlock: true, + about: { + label: 'Calculate', + title: `Add 'Calculate' Block`, + post: false, + get: false, + children: ChildrenType.Special, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class CalculateContainerBlock { @Inject() @@ -92,7 +110,10 @@ export class CalculateContainerBlock { const newJson = await this.calculate(json, ref); // <-- new vc - const outputSchema = await getMongoRepository(SchemaCollection).findOne({ iri: ref.options.outputSchema }); + const outputSchema = await getMongoRepository(SchemaCollection).findOne({ + iri: ref.options.outputSchema, + topicId: ref.topicId + }); const vcSubject: any = { ...SchemaHelper.getContext(outputSchema), ...newJson @@ -123,27 +144,34 @@ export class CalculateContainerBlock { return item; } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - public async runAction(state: any, user: IAuthUser) { + public async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); if (ref.options.inputDocuments == 'separate') { - if (Array.isArray(state.data)) { + if (Array.isArray(event.data.data)) { const result = []; - for (let doc of state.data) { + for (let doc of event.data.data) { const newVC = await this.process(doc, ref); result.push(newVC) } - state.data = result; + event.data.data = result; } else { - state.data = await this.process(state.data, ref); + event.data.data = await this.process(event.data.data, ref); } } else { - state.data = await this.process(state.data, ref); + event.data.data = await this.process(event.data.data, ref); } - await ref.runNext(user, state); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); + + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, event.user, event.data); } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -159,7 +187,8 @@ export class CalculateContainerBlock { return; } const inputSchema = await getMongoRepository(SchemaCollection).findOne({ - iri: ref.options.inputSchema + iri: ref.options.inputSchema, + topicId: ref.topicId }); if (!inputSchema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.inputSchema}" does not exist`); @@ -176,7 +205,8 @@ export class CalculateContainerBlock { return; } const outputSchema = await getMongoRepository(SchemaCollection).findOne({ - iri: ref.options.outputSchema + iri: ref.options.outputSchema, + topicId: ref.topicId }) if (!outputSchema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.outputSchema}" does not exist`); diff --git a/guardian-service/src/policy-engine/blocks/calculate-math-addon.ts b/guardian-service/src/policy-engine/blocks/calculate-math-addon.ts index 9533e34ab8..b48113142a 100644 --- a/guardian-service/src/policy-engine/blocks/calculate-math-addon.ts +++ b/guardian-service/src/policy-engine/blocks/calculate-math-addon.ts @@ -2,10 +2,22 @@ import { CalculateAddon } from '@policy-engine/helpers/decorators'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IPolicyCalculateAddon } from '@policy-engine/policy-engine.interface'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @CalculateAddon({ blockType: 'calculateMathAddon', - commonBlock: true + commonBlock: true, + about: { + label: 'Math Addon', + title: `Add 'Math' Addon`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Special, + input: null, + output: null, + defaultEvent: false + } }) export class CalculateMathAddon { diff --git a/guardian-service/src/policy-engine/blocks/container-block.ts b/guardian-service/src/policy-engine/blocks/container-block.ts new file mode 100644 index 0000000000..a071bdc7eb --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/container-block.ts @@ -0,0 +1,33 @@ +import { IAuthUser } from '@auth/auth.interface'; +import { ContainerBlock } from '@policy-engine/helpers/decorators/container-block'; +import { PolicyInputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyComponentsUtils } from '../policy-components-utils'; + +/** + * Container block with UI + */ +@ContainerBlock({ + blockType: 'interfaceContainerBlock', + commonBlock: false, + about: { + label: 'Container', + title: `Add 'Container' Block`, + post: false, + get: true, + children: ChildrenType.Any, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } +}) +export class InterfaceContainerBlock { + async getData(user: IAuthUser): Promise { + const { options } = PolicyComponentsUtils.GetBlockRef(this); + return { uiMetaData: options.uiMetaData }; + } +} diff --git a/guardian-service/src/policy-engine/blocks/custom-logic-block.ts b/guardian-service/src/policy-engine/blocks/custom-logic-block.ts index 609dc120a4..6c0ae8b79f 100644 --- a/guardian-service/src/policy-engine/blocks/custom-logic-block.ts +++ b/guardian-service/src/policy-engine/blocks/custom-logic-block.ts @@ -1,4 +1,4 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { CatchErrors } from '@policy-engine/helpers/decorators/catch-errors'; import { IAuthUser } from '@auth/auth.interface'; import { PolicyComponentsUtils } from '@policy-engine/policy-components-utils'; @@ -6,36 +6,59 @@ import { IPolicyCalculateBlock } from '@policy-engine/policy-engine.interface'; import { getMongoRepository } from 'typeorm'; import { Schema as SchemaCollection } from '@entity/schema'; import { VcHelper } from '@helpers/vcHelper'; -import { SchemaHelper } from 'interfaces'; +import { SchemaHelper } from '@guardian/interfaces'; import { Inject } from '@helpers/decorators/inject'; import { Users } from '@helpers/users'; import * as mathjs from 'mathjs'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @BasicBlock({ blockType: 'customLogicBlock', - commonBlock: true + commonBlock: true, + about: { + label: 'Custom Logic', + title: `Add 'Custom Logic' Block`, + post: false, + get: false, + children: ChildrenType.Special, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class CustomLogicBlock { @Inject() private users: Users; - public start() { + public afterInit() { console.log('Custom logic block'); } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - public async runAction(state: any, user: IAuthUser) { + public async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); try { - state.data = await this.execute(state, user); - await ref.runNext(user, state); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); - } catch (e) { - ref.error(e.message); + event.data.data = await this.execute(event.data, event.user); + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, event.user, event.data); + } catch (error) { + ref.error(error.message); } - } execute(state: any, user: IAuthUser): Promise { @@ -48,16 +71,15 @@ export class CustomLogicBlock { documents = [state.data]; } - - const done = async (result) => { try { const root = await this.users.getHederaAccount(ref.policyOwner); const outputSchema = await getMongoRepository(SchemaCollection).findOne({ - iri: ref.options.outputSchema + iri: ref.options.outputSchema, + topicId: ref.topicId }); const context = SchemaHelper.getContext(outputSchema); - const owner = documents[0].owner; + const owner = documents[0].owner; const relationships = documents.filter(d => !!d.messageId).map(d => d.messageId); const VCHelper = new VcHelper(); @@ -100,13 +122,13 @@ export class CustomLogicBlock { return; } - } catch (e) { - reject(e); + } catch (error) { + reject(error); } } const func = Function(`const [done, user, documents, mathjs] = arguments; ${ref.options.expression}`); - func.apply(document, [done, user, documents, mathjs]); + func.apply(documents, [done, user, documents, mathjs]); }); } } diff --git a/guardian-service/src/policy-engine/blocks/documents-source-addon.ts b/guardian-service/src/policy-engine/blocks/documents-source-addon.ts index 1d26acaa54..fb4e46bacb 100644 --- a/guardian-service/src/policy-engine/blocks/documents-source-addon.ts +++ b/guardian-service/src/policy-engine/blocks/documents-source-addon.ts @@ -12,15 +12,28 @@ import { VpDocument as VpDocumentCollection } from '@entity/vp-document'; import { Schema as SchemaCollection } from '@entity/schema'; import { DidDocument as DidDocumentCollection } from '@entity/did-document'; import { ApprovalDocument as ApprovalDocumentCollection } from '@entity/approval-document'; +import { DocumentState } from '@entity/document-state'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @SourceAddon({ - blockType: 'documentsSourceAddon' + blockType: 'documentsSourceAddon', + about: { + label: 'Source', + title: `Add 'DocumentsSourceAddon' Addon`, + post: false, + get: false, + children: ChildrenType.Special, + control: ControlType.Special, + input: null, + output: null, + defaultEvent: false + } }) export class DocumentsSourceAddon { @Inject() private users: Users; - async getFromSource(user: IAuthUser) { + async getFromSource(user: IAuthUser, globalFilters: any) { const ref = PolicyComponentsUtils.GetBlockRef(this); let filters: any = {}; @@ -45,19 +58,19 @@ export class DocumentsSourceAddon { switch (filter.type) { case 'equal': - Object.assign(expr, {$eq: filter.value}) + Object.assign(expr, { $eq: filter.value }) break; case 'not_equal': - Object.assign(expr, {$ne: filter.value}); + Object.assign(expr, { $ne: filter.value }); break; case 'in': - Object.assign(expr, {$in: filter.value.split(',')}); + Object.assign(expr, { $in: filter.value.split(',') }); break; case 'not_in': - Object.assign(expr, {$nin: filter.value.split(',')}); + Object.assign(expr, { $nin: filter.value.split(',') }); break; default: @@ -68,42 +81,74 @@ export class DocumentsSourceAddon { const dynFilters = {}; for (let [key, value] of Object.entries(ref.getFilters(user))) { - dynFilters[key] = {$eq: value}; + dynFilters[key] = { $eq: value }; } Object.assign(filters, dynFilters); + if (globalFilters) { + Object.assign(filters, globalFilters); + } + + const filtersWithOrder: any = { where: filters }; + if (ref.options.orderDirection) { + filtersWithOrder.order = {}; + if (ref.options.orderField) { + filtersWithOrder.order[ref.options.orderField] = ref.options.createdOrderDirection; + } else { + filtersWithOrder.order['createDate'] = ref.options.createdOrderDirection; + } + + } let data: any[]; switch (ref.options.dataType) { case 'vc-documents': filters.policyId = ref.policyId; - data = await getMongoRepository(VcDocumentCollection).find(filters); + data = await getMongoRepository(VcDocumentCollection).find(filtersWithOrder); break; case 'did-documents': - data = await getMongoRepository(DidDocumentCollection).find(filters); + data = await getMongoRepository(DidDocumentCollection).find(filtersWithOrder); break; case 'vp-documents': filters.policyId = ref.policyId; - data = await getMongoRepository(VpDocumentCollection).find(filters); + data = await getMongoRepository(VpDocumentCollection).find(filtersWithOrder); break; - case 'root-authorities': - data = await this.users.getAllRootAuthorityAccounts() as IAuthUser[]; + case 'standard-registries': + data = await this.users.getAllStandardRegistryAccounts() as IAuthUser[]; break; - case 'approve': filters.policyId = ref.policyId; - data = await getMongoRepository(ApprovalDocumentCollection).find(filters); + data = await getMongoRepository(ApprovalDocumentCollection).find(filtersWithOrder); break; - case 'source': data = []; break; - + // @deprecated 2022-10-01 + case 'root-authorities': + data = await this.users.getAllStandardRegistryAccounts() as IAuthUser[]; + break; default: throw new BlockActionError(`dataType "${ref.options.dataType}" is unknown`, ref.blockType, ref.uuid) } + const documentState = getMongoRepository(DocumentState); for (let i = 0; i < data.length; i++) { + if (ref.options.viewHistory) { + data[i].history = (await documentState.find({ + where: { + documentId: data[i].id + }, + order: { + 'created': 'DESC' + } + })).map(item => { + return { + status: item.status, + created: new Date(item.created).toLocaleString(), + reason: item.reason + } + }); + } data[i].__sourceTag__ = ref.tag; } @@ -113,7 +158,15 @@ export class DocumentsSourceAddon { public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { const ref = PolicyComponentsUtils.GetBlockRef(this); try { - const types = ['vc-documents', 'did-documents', 'vp-documents', 'root-authorities', 'approve', 'source']; + const types = [ + 'vc-documents', + 'did-documents', + 'vp-documents', + 'root-authorities', + 'standard-registries', + 'approve', + 'source' + ]; if (types.indexOf(ref.options.dataType) == -1) { resultsContainer.addBlockError(ref.uuid, 'Option "dataType" must be one of ' + types.join(',')); } @@ -123,7 +176,10 @@ export class DocumentsSourceAddon { resultsContainer.addBlockError(ref.uuid, 'Option "schema" must be a string'); return; } - const schema = await getMongoRepository(SchemaCollection).findOne({iri: ref.options.schema}); + const schema = await getMongoRepository(SchemaCollection).findOne({ + iri: ref.options.schema, + topicId: ref.topicId + }); if (!schema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.schema}" does not exist`); return; diff --git a/guardian-service/src/policy-engine/blocks/interface-documents-source.ts b/guardian-service/src/policy-engine/blocks/documents-source.ts similarity index 75% rename from guardian-service/src/policy-engine/blocks/interface-documents-source.ts rename to guardian-service/src/policy-engine/blocks/documents-source.ts index 7cc769897b..5f50e69629 100644 --- a/guardian-service/src/policy-engine/blocks/interface-documents-source.ts +++ b/guardian-service/src/policy-engine/blocks/documents-source.ts @@ -3,19 +3,35 @@ import { IAuthUser } from '@auth/auth.interface'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IPolicyAddonBlock, IPolicySourceBlock } from '@policy-engine/policy-engine.interface'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyInputEventType } from '@policy-engine/interfaces'; /** * Document source block with UI */ @DataSourceBlock({ blockType: 'interfaceDocumentsSourceBlock', - commonBlock: false + commonBlock: false, + about: { + label: 'Documents', + title: `Add 'Documents Source' Block`, + post: false, + get: true, + children: ChildrenType.Special, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } }) export class InterfaceDocumentsSource { async getData(user: IAuthUser, uuid: string, queryParams: any): Promise { const ref = PolicyComponentsUtils.GetBlockRef(this); - const blocks = ref.getFiltersAddons().map(addon => { + const filters = ref.getFiltersAddons().map(addon => { return { id: addon.uuid, uiMetaData: addon.options.uiMetaData, @@ -40,9 +56,10 @@ export class InterfaceDocumentsSource { paginationData = await pagination.getState(user); } + const data = await ref.getGlobalSources(user, paginationData); return Object.assign({ - data: await ref.getSources(user, paginationData), - blocks, + data: data, + blocks: filters, commonAddons }, ref.options.uiMetaData); } diff --git a/guardian-service/src/policy-engine/blocks/external-data-block.ts b/guardian-service/src/policy-engine/blocks/external-data-block.ts index bcfa903cde..10984753b6 100644 --- a/guardian-service/src/policy-engine/blocks/external-data-block.ts +++ b/guardian-service/src/policy-engine/blocks/external-data-block.ts @@ -1,5 +1,5 @@ -import { ExternalData } from '@policy-engine/helpers/decorators'; -import { DocumentSignature, DocumentStatus } from 'interfaces'; +import { ActionCallback, ExternalData } from '@policy-engine/helpers/decorators'; +import { DocumentSignature, DocumentStatus } from '@guardian/interfaces'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { VcDocument } from '@hedera-modules'; @@ -7,6 +7,8 @@ import { VcHelper } from '@helpers/vcHelper'; import { getMongoRepository } from 'typeorm'; import { Schema as SchemaCollection } from '@entity/schema'; import { CatchErrors } from '@policy-engine/helpers/decorators/catch-errors'; +import { PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * External data block @@ -14,8 +16,26 @@ import { CatchErrors } from '@policy-engine/helpers/decorators/catch-errors'; @ExternalData({ blockType: 'externalDataBlock', commonBlock: false, + about: { + label: 'External Data', + title: `Add 'External Data' Block`, + post: true, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: null, + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class ExternalDataBlock { + + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() async receiveData(data: any) { const ref = PolicyComponentsUtils.GetBlockRef(this); @@ -44,13 +64,9 @@ export class ExternalDataBlock { type: ref.options.entityType, schema: ref.options.schema }; - ref.runNext(null, {data: doc}).then( - function () { - }, - function (error: any) { - console.error(error); - } - ); + const state = { data: doc }; + ref.triggerEvents(PolicyOutputEventType.RunEvent, null, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, null, state); } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -62,7 +78,10 @@ export class ExternalDataBlock { return; } - const schema = await getMongoRepository(SchemaCollection).findOne({iri: ref.options.schema}); + const schema = await getMongoRepository(SchemaCollection).findOne({ + iri: ref.options.schema, + topicId: ref.topicId + }); if (!schema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.schema}" does not exist`); return; diff --git a/guardian-service/src/policy-engine/blocks/filters-addon-block.ts b/guardian-service/src/policy-engine/blocks/filters-addon-block.ts index 9c13cac4d1..5707c384ac 100644 --- a/guardian-service/src/policy-engine/blocks/filters-addon-block.ts +++ b/guardian-service/src/policy-engine/blocks/filters-addon-block.ts @@ -5,9 +5,21 @@ import { BlockActionError } from '@policy-engine/errors'; import { findOptions } from '@policy-engine/helpers/find-options'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IPolicyAddonBlock } from '@policy-engine/policy-engine.interface'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @DataSourceAddon({ - blockType: 'filtersAddon' + blockType: 'filtersAddon', + about: { + label: 'Filters Addon', + title: `Add 'Filters' Addon`, + post: true, + get: true, + children: ChildrenType.Special, + control: ControlType.Special, + input: null, + output: null, + defaultEvent: false + } }) export class FiltersAddonBlock { private state: { [key: string]: any } = { @@ -37,7 +49,7 @@ export class FiltersAddonBlock { canBeEmpty: ref.options.canBeEmpty }; - let data: any[] = await ref.getSources(user); + let data: any[] = await ref.getSources(user, null); if (ref.options.type == 'dropdown') { const blockState = this.state[user.did] || {}; diff --git a/guardian-service/src/policy-engine/blocks/get-block-about.ts b/guardian-service/src/policy-engine/blocks/get-block-about.ts new file mode 100644 index 0000000000..8ac50e1078 --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/get-block-about.ts @@ -0,0 +1,9 @@ +import * as blocks from './'; + +export function GetBlockAbout(): any { + const map: any = {}; + Object.values(blocks).forEach((block) => { + map[block['blockType']] = block['about']; + }) + return map; +} diff --git a/guardian-service/src/policy-engine/blocks/index.ts b/guardian-service/src/policy-engine/blocks/index.ts index 489a5b963c..1833d74748 100644 --- a/guardian-service/src/policy-engine/blocks/index.ts +++ b/guardian-service/src/policy-engine/blocks/index.ts @@ -1,3 +1,5 @@ +export { GetBlockAbout } from './get-block-about'; +export { GetBlockByType } from './get-block-by-type'; export { AggregateBlock } from './aggregate-block'; export { CalculateContainerBlock } from './calculate-block'; export { CalculateMathAddon } from './calculate-math-addon'; @@ -6,10 +8,10 @@ export { DocumentsSourceAddon } from './documents-source-addon'; export { ExternalDataBlock } from './external-data-block'; export { FiltersAddonBlock } from './filters-addon-block'; export { InformationBlock } from './information-block'; -export { InterfaceContainerBlock } from './interface-container-block'; -export { InterfaceDocumentActionBlock } from './interface-document-action-block'; -export { InterfaceDocumentsSource } from './interface-documents-source'; -export { InterfaceStepBlock } from './interface-step-block'; +export { InterfaceContainerBlock } from './container-block'; +export { InterfaceDocumentActionBlock } from './action-block'; +export { InterfaceDocumentsSource } from './documents-source'; +export { InterfaceStepBlock } from './step-block'; export { MintBlock } from './mint-block'; export { PaginationAddon } from '@policy-engine/blocks/pagination-addon'; export { PolicyRolesBlock } from './policy-roles'; @@ -20,4 +22,7 @@ export { RetirementBlock } from './retirement-block'; export { RequestVcDocumentBlock } from './request-vc-document-block'; export { SendToGuardianBlock } from './send-to-guardian-block'; export { SwitchBlock } from './switch-block'; -export { TimerBlock } from './timer-block'; \ No newline at end of file +export { TimerBlock } from './timer-block'; +export { RevokeBlock } from './revoke-block'; +export { SetRelationshipsBlock } from './set-relationships-block'; +export { ButtonBlock } from './button-block'; \ No newline at end of file diff --git a/guardian-service/src/policy-engine/blocks/information-block.ts b/guardian-service/src/policy-engine/blocks/information-block.ts index 9881e8e3c7..80ac88d3ff 100644 --- a/guardian-service/src/policy-engine/blocks/information-block.ts +++ b/guardian-service/src/policy-engine/blocks/information-block.ts @@ -1,10 +1,26 @@ import { IAuthUser } from '@auth/auth.interface'; import { DataSourceBlock } from '@policy-engine/helpers/decorators/data-source-block'; +import { PolicyInputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; import { PolicyComponentsUtils } from '../policy-components-utils'; @DataSourceBlock({ blockType: 'informationBlock', - commonBlock: false + commonBlock: false, + about: { + label: 'Information', + title: `Add 'Information' Block`, + post: false, + get: true, + children: ChildrenType.None, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } }) export class InformationBlock { async getData(user: IAuthUser): Promise { diff --git a/guardian-service/src/policy-engine/blocks/interface-container-block.ts b/guardian-service/src/policy-engine/blocks/interface-container-block.ts deleted file mode 100644 index fe56eb3ac3..0000000000 --- a/guardian-service/src/policy-engine/blocks/interface-container-block.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { IAuthUser } from '@auth/auth.interface'; -import { ContainerBlock } from '@policy-engine/helpers/decorators/container-block'; -import { PolicyComponentsUtils } from '../policy-components-utils'; - -/** - * Container block with UI - */ -@ContainerBlock({ - blockType: 'interfaceContainerBlock', - commonBlock: false -}) -export class InterfaceContainerBlock { - async getData(user: IAuthUser): Promise { - const {options} = PolicyComponentsUtils.GetBlockRef(this); - return {uiMetaData: options.uiMetaData}; - } -} diff --git a/guardian-service/src/policy-engine/blocks/interface-step-block.ts b/guardian-service/src/policy-engine/blocks/interface-step-block.ts deleted file mode 100644 index 585d4dd0b7..0000000000 --- a/guardian-service/src/policy-engine/blocks/interface-step-block.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { ContainerBlock, StateField } from '@policy-engine/helpers/decorators'; -import { BlockActionError } from '@policy-engine/errors'; -import { PolicyComponentsUtils } from '../policy-components-utils'; -import { AnyBlockType, IPolicyContainerBlock } from '@policy-engine/policy-engine.interface'; -import { IAuthUser } from '@auth/auth.interface'; - -/** - * Step block - */ -@ContainerBlock({ - blockType: 'interfaceStepBlock', - commonBlock: false -}) -export class InterfaceStepBlock { - @StateField() - state: { [key: string]: any } = {index: 0}; - - async changeStep(user: IAuthUser, data: any, target: any) { - const ref = PolicyComponentsUtils.GetBlockRef(this); - ref.log(`changeStep`); - let blockState; - if (!this.state.hasOwnProperty(user.did)) { - blockState = {}; - this.state[user.did] = blockState; - } else { - blockState = this.state[user.did]; - } - - if (target) { - blockState.index = ref.children.indexOf(target); - if (blockState.index === -1) { - throw new BlockActionError('Bad child block', ref.blockType, ref.uuid); - } - } else { - blockState.index = ref.options.cyclic ? 0 : ref.children.length - 1; - blockState.data = {}; - } - - ref.updateBlock(blockState, user); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); - } - - async getData(user: IAuthUser): Promise { - const ref = PolicyComponentsUtils.GetBlockRef(this); - let blockState; - if (!this.state.hasOwnProperty(user.did)) { - blockState = {}; - this.state[user.did] = blockState; - } else { - blockState = this.state[user.did]; - } - if (blockState.index === undefined) { - blockState.index = 0; - } - const {options} = ref; - return {uiMetaData: options.uiMetaData, index: blockState.index}; - } - - public isChildActive(child: AnyBlockType, user: IAuthUser): boolean { - const ref = PolicyComponentsUtils.GetBlockRef(this); - const childIndex = ref.children.indexOf(child); - if (childIndex === -1) { - throw new BlockActionError('Bad block child', ref.blockType, ref.uuid); - } - - let index = 0; - const state = this.state[user.did]; - if (state) { - index = state.index; - } - return index === childIndex; - - } -} diff --git a/guardian-service/src/policy-engine/blocks/mint-block.ts b/guardian-service/src/policy-engine/blocks/mint-block.ts index 92e4a7f35d..03e786ee71 100644 --- a/guardian-service/src/policy-engine/blocks/mint-block.ts +++ b/guardian-service/src/policy-engine/blocks/mint-block.ts @@ -1,8 +1,8 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { Inject } from '@helpers/decorators/inject'; import { Users } from '@helpers/users'; import { BlockActionError } from '@policy-engine/errors'; -import { DocumentSignature, SchemaEntity, SchemaHelper } from 'interfaces'; +import { DocumentSignature, SchemaEntity, SchemaHelper } from '@guardian/interfaces'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IAuthUser } from '@auth/auth.interface'; @@ -14,23 +14,40 @@ import { Schema as SchemaCollection } from '@entity/schema'; import { Token as TokenCollection } from '@entity/token'; import { DataTypes, PolicyUtils } from '@policy-engine/helpers/utils'; import { AnyBlockType } from '@policy-engine/policy-engine.interface'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Mint block */ @BasicBlock({ blockType: 'mintDocumentBlock', - commonBlock: true + commonBlock: true, + publishExternalEvent: true, + about: { + label: 'Mint', + title: `Add 'Mint' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class MintBlock { @Inject() private users: Users; - private async createMintVC(root: any, token: any, data: any): Promise { + private async createMintVC(root: any, token: any, data: any, ref: AnyBlockType): Promise { const vcHelper = new VcHelper(); - const policySchema = await getMongoRepository(SchemaCollection).findOne({ - entity: SchemaEntity.MINT_TOKEN - }); + const policySchema = await PolicyUtils.getSchema(ref.topicId, SchemaEntity.MINT_TOKEN); const amount = data as string; const vcSubject = { ...SchemaHelper.getContext(policySchema), @@ -70,7 +87,7 @@ export class MintBlock { const uuid = HederaUtils.randomUUID(); const amount = PolicyUtils.aggregate(rule, document); const [tokenValue, tokenAmount] = PolicyUtils.tokenAmount(token, amount); - const mintVC = await this.createMintVC(root, token, tokenAmount); + const mintVC = await this.createMintVC(root, token, tokenAmount, ref); const vcs = [].concat(document, mintVC); const vp = await this.createVP(root, uuid, vcs); @@ -86,6 +103,7 @@ export class MintBlock { const vcMessage = new VCMessage(MessageAction.CreateVC); vcMessage.setDocument(mintVC); + vcMessage.setRelationships(vsMessages); const vcMessageResult = await messageServer .setTopicObject(topic) .sendMessage(vcMessage); @@ -99,8 +117,9 @@ export class MintBlock { schema: `#${mintVC.getSubjectType()}`, messageId: vcMessageResult.getId(), topicId: vcMessageResult.getTopicId(), + relationships: vsMessages } as any); - + vsMessages.push(vcMessageResult.getId()); const vpMessage = new VPMessage(MessageAction.CreateVP); vpMessage.setDocument(vp); vpMessage.setRelationships(vsMessages); @@ -123,8 +142,15 @@ export class MintBlock { return vp; } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - async runAction(state: any, user: IAuthUser) { + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); const { tokenId, rule } = ref.options; const token = await getMongoRepository(TokenCollection).findOne({ tokenId }); @@ -132,7 +158,7 @@ export class MintBlock { throw new BlockActionError('Bad token id', ref.blockType, ref.uuid); } - const docs = PolicyUtils.getArray(state.data); + const docs = PolicyUtils.getArray(event.data.data); if (!docs.length && docs[0]) { throw new BlockActionError('Bad VC', ref.blockType, ref.uuid); } @@ -159,15 +185,10 @@ export class MintBlock { throw new BlockActionError('Bad User DID', ref.blockType, ref.uuid); } - try { - const root = await this.users.getHederaAccount(ref.policyOwner); - const doc = await this.mintProcessing(token, vcs, vsMessages, topicId, rule, root, curUser, ref); - await ref.runNext(curUser, state); - ref.callDependencyCallbacks(curUser); - ref.callParentContainerCallback(curUser); - } catch (e) { - throw e; - } + const root = await this.users.getHederaAccount(ref.policyOwner); + const doc = await this.mintProcessing(token, vcs, vsMessages, topicId, rule, root, curUser, ref); + ref.triggerEvents(PolicyOutputEventType.RunEvent, curUser, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, curUser, event.data); } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -190,4 +211,4 @@ export class MintBlock { resultsContainer.addBlockError(ref.uuid, `Unhandled exception ${error.message}`); } } -} \ No newline at end of file +} diff --git a/guardian-service/src/policy-engine/blocks/pagination-addon.ts b/guardian-service/src/policy-engine/blocks/pagination-addon.ts index e03f605b8b..c15b16c97e 100644 --- a/guardian-service/src/policy-engine/blocks/pagination-addon.ts +++ b/guardian-service/src/policy-engine/blocks/pagination-addon.ts @@ -2,9 +2,21 @@ import { SourceAddon, StateField } from '@policy-engine/helpers/decorators'; import { IAuthUser } from '@auth/auth.interface'; import { PolicyComponentsUtils } from '@policy-engine/policy-components-utils'; import { IPolicySourceBlock } from '@policy-engine/policy-engine.interface'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @SourceAddon({ - blockType: 'paginationAddon' + blockType: 'paginationAddon', + about: { + label: 'Pagination', + title: `Add 'Pagination' Addon`, + post: true, + get: true, + children: ChildrenType.None, + control: ControlType.Special, + input: null, + output: null, + defaultEvent: false + } }) export class PaginationAddon { @@ -26,7 +38,7 @@ export class PaginationAddon { } } const ref = PolicyComponentsUtils.GetBlockRef(this); - const totalCount = (await (ref.parent as IPolicySourceBlock).getSources(user)).length; + const totalCount = (await (ref.parent as IPolicySourceBlock).getGlobalSources(user, null)).length; if (this.state[user.did].size !== totalCount) { this.state[user.did].size = totalCount; diff --git a/guardian-service/src/policy-engine/blocks/policy-roles.ts b/guardian-service/src/policy-engine/blocks/policy-roles.ts index d69a167e43..604dc0cf2d 100644 --- a/guardian-service/src/policy-engine/blocks/policy-roles.ts +++ b/guardian-service/src/policy-engine/blocks/policy-roles.ts @@ -3,10 +3,26 @@ import { IAuthUser } from '@auth/auth.interface'; import { getMongoRepository } from 'typeorm'; import { Policy } from '@entity/policy'; import { PolicyComponentsUtils } from '../policy-components-utils'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyInputEventType } from '@policy-engine/interfaces'; @EventBlock({ blockType: 'policyRolesBlock', commonBlock: false, + about: { + label: 'Roles', + title: `Add 'Choice Of Roles' Block`, + post: true, + get: true, + children: ChildrenType.None, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } }) export class PolicyRolesBlock { async getData(user: IAuthUser): Promise { diff --git a/guardian-service/src/policy-engine/blocks/reassigning.block.ts b/guardian-service/src/policy-engine/blocks/reassigning.block.ts index 2e06211856..fae24f4b3a 100644 --- a/guardian-service/src/policy-engine/blocks/reassigning.block.ts +++ b/guardian-service/src/policy-engine/blocks/reassigning.block.ts @@ -1,4 +1,4 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { Inject } from '@helpers/decorators/inject'; import { KeyType, Wallet } from '@helpers/wallet'; import { PolicyComponentsUtils } from '../policy-components-utils'; @@ -7,10 +7,28 @@ import { IAuthUser } from '@auth/auth.interface'; import { CatchErrors } from '@policy-engine/helpers/decorators/catch-errors'; import { VcHelper } from '@helpers/vcHelper'; import { Users } from '@helpers/users'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @BasicBlock({ blockType: 'reassigningBlock', - commonBlock: false + commonBlock: false, + about: { + label: 'Reassigning', + title: `Add 'Reassigning' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class ReassigningBlock { @Inject() @@ -36,7 +54,7 @@ export class ReassigningBlock { } else { root = await this.users.getHederaAccount(user.did); } - + let owner: IAuthUser; if (ref.options.actor == 'owner') { owner = await this.users.getUserById(document.owner); @@ -64,15 +82,21 @@ export class ReassigningBlock { return { item, owner }; } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - async runAction(state: any, user: IAuthUser) { + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); - const { item, owner } = await this.documentReassigning(state, user); - state.data = item; + const { item, owner } = await this.documentReassigning(event.data, event.user); + event.data.data = item; ref.log(`Reassigning Document: ${JSON.stringify(item)}`); - await ref.runNext(owner, state); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); - // ref.updateBlock(state, user, ''); + + ref.triggerEvents(PolicyOutputEventType.RunEvent, owner, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, owner, event.data); } } diff --git a/guardian-service/src/policy-engine/blocks/report-block.ts b/guardian-service/src/policy-engine/blocks/report-block.ts index f346a5bc48..3f93d25c16 100644 --- a/guardian-service/src/policy-engine/blocks/report-block.ts +++ b/guardian-service/src/policy-engine/blocks/report-block.ts @@ -13,17 +13,33 @@ import { IVPReport, SchemaEntity, SchemaStatus -} from 'interfaces'; +} from '@guardian/interfaces'; import { BlockActionError } from '@policy-engine/errors'; import { Users } from '@helpers/users'; import { getMongoRepository } from 'typeorm'; import { VpDocument } from '@entity/vp-document'; import { VcDocument } from '@entity/vc-document'; import { Schema } from '@entity/schema'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { PolicyInputEventType } from '@policy-engine/interfaces'; @Report({ blockType: 'reportBlock', - commonBlock: false + commonBlock: false, + about: { + label: 'Report', + title: `Add 'Report' Block`, + post: true, + get: true, + children: ChildrenType.Special, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: null, + defaultEvent: false + } }) export class ReportBlock { @Inject() @@ -88,7 +104,6 @@ export class ReportBlock { return { hash: null, uiMetaData: ref.options.uiMetaData, - schemes: null, data: null }; } @@ -194,7 +209,7 @@ export class ReportBlock { if (policyCreator) { const policyCreatorDocument: IReportItem = { type: 'VC', - title: 'RootAuthority', + title: 'StandardRegistry', description: 'Account Creation', visible: true, tag: 'Account Creation', @@ -214,12 +229,9 @@ export class ReportBlock { await this.reportUserMap(report); - const schemes = await getMongoRepository(Schema).find({ status: SchemaStatus.PUBLISHED }); - return { hash: hash, uiMetaData: ref.options.uiMetaData, - schemes: schemes, data: report }; } catch (error) { diff --git a/guardian-service/src/policy-engine/blocks/report-item-block.ts b/guardian-service/src/policy-engine/blocks/report-item-block.ts index cc74d8b121..4337fe961b 100644 --- a/guardian-service/src/policy-engine/blocks/report-item-block.ts +++ b/guardian-service/src/policy-engine/blocks/report-item-block.ts @@ -4,17 +4,29 @@ import { findOptions, getVCIssuer } from '@helpers/utils'; import { ReportItem } from '@policy-engine/helpers/decorators'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IPolicyReportItemBlock } from '@policy-engine/policy-engine.interface'; -import { IReportItem } from 'interfaces'; +import { IReportItem } from '@guardian/interfaces'; import { BlockActionError } from '@policy-engine/errors'; import { getMongoRepository } from 'typeorm'; import { VcDocument } from '@entity/vc-document'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Report item block */ @ReportItem({ blockType: 'reportItemBlock', - commonBlock: true + commonBlock: true, + about: { + label: 'Report Item', + title: `Add 'Report Item' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Special, + input: null, + output: null, + defaultEvent: false + } }) export class ReportItemBlock { @Inject() diff --git a/guardian-service/src/policy-engine/blocks/request-vc-document-block.ts b/guardian-service/src/policy-engine/blocks/request-vc-document-block.ts index 547a3c06dd..c3071fd1bf 100644 --- a/guardian-service/src/policy-engine/blocks/request-vc-document-block.ts +++ b/guardian-service/src/policy-engine/blocks/request-vc-document-block.ts @@ -2,24 +2,41 @@ import { Inject } from '@helpers/decorators/inject'; import { KeyType, Wallet } from '@helpers/wallet'; import { BlockActionError } from '@policy-engine/errors'; import { PolicyComponentsUtils } from '../policy-components-utils'; -import { DidDocumentStatus, TopicType, Schema } from 'interfaces'; +import { DidDocumentStatus, TopicType, Schema } from '@guardian/interfaces'; import { IAuthUser } from '@auth/auth.interface'; import { EventBlock } from '../helpers/decorators/event-block'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; -import { StateField } from '@policy-engine/helpers/decorators'; +import { ActionCallback, StateField } from '@policy-engine/helpers/decorators'; import { DIDDocument, DIDMessage, HederaUtils, MessageAction, MessageServer } from '@hedera-modules'; import { VcHelper } from '@helpers/vcHelper'; import { getMongoRepository } from 'typeorm'; import { Schema as SchemaCollection } from '@entity/schema'; import { DidDocument as DidDocumentCollection } from '@entity/did-document'; -import { VcDocument as VcDocumentCollection } from '@entity/vc-document'; -import { Topic } from '@entity/topic'; import { IPolicyRequestBlock } from '@policy-engine/policy-engine.interface'; import { PolicyUtils } from '@policy-engine/helpers/utils'; +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @EventBlock({ blockType: 'requestVcDocumentBlock', commonBlock: false, + about: { + label: 'Request', + title: `Add 'Request' Block`, + post: true, + get: true, + children: ChildrenType.Special, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class RequestVcDocumentBlock { @StateField() @@ -33,6 +50,9 @@ export class RequestVcDocumentBlock { constructor() { } + @ActionCallback({ + output: PolicyOutputEventType.RefreshEvent + }) async changeActive(user: IAuthUser, active: boolean) { const ref = PolicyComponentsUtils.GetBlockRef(this); let blockState: any; @@ -43,9 +63,9 @@ export class RequestVcDocumentBlock { blockState = this.state[user.did]; } blockState.active = active; + ref.updateBlock(blockState, user); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, null); } getActive(user: IAuthUser) { @@ -68,7 +88,8 @@ export class RequestVcDocumentBlock { if (!this.schema) { const schema = await getMongoRepository(SchemaCollection).findOne({ - iri: ref.options.schema + iri: ref.options.schema, + topicId: ref.topicId }); this.schema = schema ? new Schema(schema) : null; } @@ -91,6 +112,9 @@ export class RequestVcDocumentBlock { }; } + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) async setData(user: IAuthUser, _data: any): Promise { const ref = PolicyComponentsUtils.GetBlockRef(this); ref.log(`setData`); @@ -152,7 +176,9 @@ export class RequestVcDocumentBlock { } await this.changeActive(user, true); - await ref.runNext(user, { data: item }); + const state = { data: item }; + ref.triggerEvents(PolicyOutputEventType.RunEvent, user, state); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, state); } catch (error) { ref.error(`setData: ${error.message}`); await this.changeActive(user, true); @@ -220,13 +246,19 @@ export class RequestVcDocumentBlock { resultsContainer.addBlockError(ref.uuid, 'Option "schema" must be a string'); return; } - const schema = await getMongoRepository(SchemaCollection).findOne({ iri: ref.options.schema }); + const schema = await getMongoRepository(SchemaCollection).findOne({ + iri: ref.options.schema, + topicId: ref.topicId + }); if (!schema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.schema}" does not exist`); return; } if (ref.options.presetSchema) { - const presetSchema = await getMongoRepository(SchemaCollection).findOne({ iri: ref.options.presetSchema }); + const presetSchema = await getMongoRepository(SchemaCollection).findOne({ + iri: ref.options.presetSchema, + topicId: ref.topicId + }); if (!presetSchema) { resultsContainer.addBlockError(ref.uuid, `Schema with id "${ref.options.presetSchema}" does not exist`); return; diff --git a/guardian-service/src/policy-engine/blocks/retirement-block.ts b/guardian-service/src/policy-engine/blocks/retirement-block.ts index 035eedc7c3..6ae69d5dc2 100644 --- a/guardian-service/src/policy-engine/blocks/retirement-block.ts +++ b/guardian-service/src/policy-engine/blocks/retirement-block.ts @@ -1,8 +1,8 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { Inject } from '@helpers/decorators/inject'; import { Users } from '@helpers/users'; import { BlockActionError } from '@policy-engine/errors'; -import { DocumentSignature, SchemaEntity, SchemaHelper } from 'interfaces'; +import { DocumentSignature, SchemaEntity, SchemaHelper } from '@guardian/interfaces'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IAuthUser } from '@auth/auth.interface'; @@ -14,23 +14,39 @@ import { Schema as SchemaCollection } from '@entity/schema'; import { Token as TokenCollection } from '@entity/token'; import { DataTypes, PolicyUtils } from '@policy-engine/helpers/utils'; import { AnyBlockType } from '@policy-engine/policy-engine.interface'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Retirement block */ @BasicBlock({ blockType: 'retirementDocumentBlock', - commonBlock: true + commonBlock: true, + about: { + label: 'Wipe', + title: `Add 'Wipe' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class RetirementBlock { @Inject() private users: Users; - private async createWipeVC(root: any, token: any, data: any): Promise { + private async createWipeVC(root: any, token: any, data: any, ref: AnyBlockType): Promise { const vcHelper = new VcHelper(); - const policySchema = await getMongoRepository(SchemaCollection).findOne({ - entity: SchemaEntity.WIPE_TOKEN - }); + const policySchema = await PolicyUtils.getSchema(ref.topicId, SchemaEntity.WIPE_TOKEN); const vcSubject = { ...SchemaHelper.getContext(policySchema), date: (new Date()).toISOString(), @@ -69,7 +85,7 @@ export class RetirementBlock { const uuid = HederaUtils.randomUUID(); const amount = PolicyUtils.aggregate(rule, document); const [tokenValue, tokenAmount] = PolicyUtils.tokenAmount(token, amount); - const wipeVC = await this.createWipeVC(root, token, tokenAmount); + const wipeVC = await this.createWipeVC(root, token, tokenAmount, ref); const vcs = [].concat(document, wipeVC); const vp = await this.createVP(root, uuid, vcs); @@ -122,8 +138,15 @@ export class RetirementBlock { return vp; } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - async runAction(state: any, user: IAuthUser) { + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); const { tokenId, rule } = ref.options; const token = await getMongoRepository(TokenCollection).findOne({ tokenId }); @@ -131,7 +154,7 @@ export class RetirementBlock { throw new BlockActionError('Bad token id', ref.blockType, ref.uuid); } - const docs = PolicyUtils.getArray(state.data); + const docs = PolicyUtils.getArray(event.data.data); if (!docs.length && docs[0]) { throw new BlockActionError('Bad VC', ref.blockType, ref.uuid); } @@ -161,11 +184,11 @@ export class RetirementBlock { try { const root = await this.users.getHederaAccount(ref.policyOwner); const doc = await this.retirementProcessing(token, vcs, vsMessages, topicId, rule, root, curUser, ref); - await ref.runNext(curUser, state); - ref.callDependencyCallbacks(curUser); - ref.callParentContainerCallback(curUser); - } catch (e) { - throw e; + + ref.triggerEvents(PolicyOutputEventType.RunEvent, curUser, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, curUser, event.data); + } catch (error) { + throw error; } } diff --git a/guardian-service/src/policy-engine/blocks/revoke-block.ts b/guardian-service/src/policy-engine/blocks/revoke-block.ts new file mode 100644 index 0000000000..23643501c8 --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/revoke-block.ts @@ -0,0 +1,199 @@ +import { ActionCallback, BasicBlock, EventBlock } from '@policy-engine/helpers/decorators'; +import { IAuthUser } from '@auth/auth.interface'; +import { Inject } from '@helpers/decorators/inject'; +import { PolicyComponentsUtils } from '../policy-components-utils'; +import { getMongoRepository } from 'typeorm'; +import { Users } from '@helpers/users'; +import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; +import { AnyBlockType, IPolicyInterfaceBlock } from '@policy-engine/policy-engine.interface'; +import { Message, MessageServer } from '@hedera-modules'; +import { VcDocument } from '@entity/vc-document'; +import { PolicyUtils } from '@policy-engine/helpers/utils'; +import { DocumentState } from '@entity/document-state'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { VpDocument } from '@entity/vp-document'; +import { DidDocument } from '@entity/did-document'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; +import { CatchErrors } from '@policy-engine/helpers/decorators/catch-errors'; + +export const RevokedStatus = 'Revoked'; + +/** + * Revoke document action with UI + */ + @BasicBlock({ + blockType: 'revokeBlock', + about: { + label: 'Revoke Document', + title: `Add 'Revoke' Block`, + post: true, + get: true, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent + ], + defaultEvent: true + } +}) +@EventBlock({ + blockType: 'revokeBlock', + commonBlock: false, +}) +export class RevokeBlock { + @Inject() + private users: Users; + + async sendToHedera( + message: Message, + messageServer: MessageServer, + ref: AnyBlockType, + revokeMessage: string, + parentId?: string[] + ) { + const topic = await PolicyUtils.getTopicById(message.topicId.toString(), ref); + message.revoke(revokeMessage, parentId); + await messageServer + .setTopicObject(topic) + .sendMessage(message, false); + } + + async findRelatedMessageIds( + topicMessage: any, + topicMessages: any[], + relatedMessageIds: any[]= [], + parentId?: string + ): Promise { + if (!topicMessage) { + throw new Error('Topic message to find related messages is empty'); + } + const relatedMessages = topicMessages.filter( + (message: any) => (message.relationships && message.relationships.includes(topicMessage.id)) + ); + for (const relatedMessage of relatedMessages) { + await this.findRelatedMessageIds( + relatedMessage, + topicMessages, + relatedMessageIds, + topicMessage.id + ); + } + const relatedMessageId = relatedMessageIds.find(item => item.id === topicMessage.id); + if (!relatedMessageId) { + relatedMessageIds.push({ + parentIds: parentId ? [parentId] : undefined, + id: topicMessage.id + }); + } else if (relatedMessageId.parentIds && !relatedMessageId.parentIds.includes(parentId)){ + relatedMessageId.parentIds.push(parentId); + } + return relatedMessageIds; + } + + async findDocumentByMessageIds(messageIds: string[]): Promise { + const filters: any = { + where: { + messageId: { $in: messageIds } + }, + order: { + messageId: "ASC" + } + }; + const vcDocuments: any[] = await getMongoRepository(VcDocument).find(filters); + const vpDocuments: any[] = await getMongoRepository(VpDocument).find(filters); + const didDocuments: any[] = await getMongoRepository(DidDocument).find(filters); + return vcDocuments.concat(vpDocuments).concat(didDocuments); + } + + + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent] + }) + @CatchErrors() + async runAction(event: IPolicyEvent): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const uiMetaData = ref.options.uiMetaData; + const data = event.data.data; + const hederaAccount = await this.users.getHederaAccount(event.user.did); + const messageServer = new MessageServer(hederaAccount.hederaAccountId, hederaAccount.hederaAccountKey); + const policyTopics = await PolicyUtils.getPolicyTopics(ref.policyId); + const policyTopicsMessages = []; + for (const topicId of policyTopics.map(topic => topic.topicId)) { + const topicMessages = await messageServer.getMessages(topicId); + policyTopicsMessages.push(...topicMessages); + } + const revokedMessagesIds = policyTopicsMessages + .filter(item => item.isRevoked()) + .map(item => item.getMessageId()); + const messagesToFind = policyTopicsMessages + .filter(item => !revokedMessagesIds.includes(item.getMessageId())); + const topicMessage = policyTopicsMessages.find(item => item.id == data.messageId); + const relatedMessages = await this.findRelatedMessageIds(topicMessage, messagesToFind); + for (const policyTopicMessage of policyTopicsMessages) { + const relatedMessage = relatedMessages.find(item=> item.id === policyTopicMessage.id); + if (relatedMessage) { + await this.sendToHedera( + policyTopicMessage, + messageServer, + ref, + data.comment, + relatedMessage.parentIds + ); + } + } + const documents = await this.findDocumentByMessageIds(relatedMessages.map(item => item.id)); + for (const doc of documents) { + doc.option = doc.option || {}; + doc.option.status = RevokedStatus; + doc.comment = data.comment; + } + if (uiMetaData && uiMetaData.updatePrevDoc && data.relationships) { + const prevDocs = await this.findDocumentByMessageIds(data.relationships); + const prevDocument = prevDocs[prevDocs.length-1]; + if (prevDocument) { + prevDocument.option.status = uiMetaData.prevDocStatus; + await getMongoRepository(VcDocument).update(prevDocument.id, prevDocument); + const docStatusRepo = getMongoRepository(DocumentState); + docStatusRepo.save({ + documentId: prevDocument.id, + status: uiMetaData.prevDocStatus + }); + } + } + const state = { + data: documents + }; + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, state); + } + + public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + try { + if (!ref.options.uiMetaData || (typeof ref.options.uiMetaData !== 'object')) { + resultsContainer.addBlockError(ref.uuid, 'Option "uiMetaData" does not set'); + return; + } + + if (!ref.options.uiMetaData.name) { + resultsContainer.addBlockError(ref.uuid, 'Option "Button Name" does not set'); + } + + if (!ref.options.uiMetaData.title) { + resultsContainer.addBlockError(ref.uuid, 'Option "Title" does not set'); + } + + if (!ref.options.uiMetaData.description) { + resultsContainer.addBlockError(ref.uuid, 'Option "Description" does not set'); + } + + if (ref.options.uiMetaData.updatePrevDoc && !ref.options.uiMetaData.prevDocStatus) { + resultsContainer.addBlockError(ref.uuid, 'Option "Status Value" does not set'); + } + } catch (error) { + resultsContainer.addBlockError(ref.uuid, `Unhandled exception ${error.message}`); + } + } +} diff --git a/guardian-service/src/policy-engine/blocks/send-to-guardian-block.ts b/guardian-service/src/policy-engine/blocks/send-to-guardian-block.ts index 648e1a4487..46cda6cc38 100644 --- a/guardian-service/src/policy-engine/blocks/send-to-guardian-block.ts +++ b/guardian-service/src/policy-engine/blocks/send-to-guardian-block.ts @@ -1,6 +1,6 @@ import { BlockActionError } from '@policy-engine/errors'; -import { BasicBlock } from '@policy-engine/helpers/decorators'; -import { DocumentSignature, DocumentStatus, TopicType } from 'interfaces'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; +import { DocumentSignature, DocumentStatus, TopicType } from '@guardian/interfaces'; import { Inject } from '@helpers/decorators/inject'; import { Users } from '@helpers/users'; import { KeyType, Wallet } from '@helpers/wallet'; @@ -13,10 +13,29 @@ import { MessageAction, MessageServer, VcDocument as HVcDocument, VCMessage } fr import { getMongoRepository } from 'typeorm'; import { ApprovalDocument } from '@entity/approval-document'; import { PolicyUtils } from '@policy-engine/helpers/utils'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; @BasicBlock({ blockType: 'sendToGuardianBlock', - commonBlock: true + commonBlock: true, + publishExternalEvent: true, + about: { + label: 'Send', + title: `Add 'Send' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: true + } }) export class SendToGuardianBlock { @Inject() @@ -103,14 +122,25 @@ export class SendToGuardianBlock { } async sendToDatabase(document: any, currentUser: IAuthUser, ref: IPolicyBlock) { - const { documentType } = ref.options; + let { documentType } = ref.options; + if (documentType === 'document') { + const doc = document?.document; + if (doc && doc.verificationMethod) { + documentType = 'did'; + } else if (doc.type && doc.type.includes('VerifiablePresentation')) { + documentType = 'vp'; + } else if (doc.type && doc.type.includes('VerifiableCredential')) { + documentType = 'vc'; + } + } + switch (documentType) { case 'vc': { const vc = HVcDocument.fromJsonTree(document.document); const doc: any = { policyId: ref.policyId, tag: ref.tag, - type: ref.options.entityType, + type: ref.options.entityType || document.type, hash: vc.toCredentialHash(), document: vc.toJsonTree(), owner: document.owner, @@ -122,6 +152,7 @@ export class SendToGuardianBlock { messageId: document.messageId || null, topicId: document.topicId || null, relationships: document.relationships || [], + comment: document.comment }; return await PolicyUtils.updateVCRecord(doc); } @@ -140,11 +171,11 @@ export class SendToGuardianBlock { try { const root = await this.users.getHederaAccount(ref.policyOwner); const user = await this.users.getHederaAccount(document.owner); - + let topicOwner = user; - if(ref.options.topicOwner == 'user') { + if (ref.options.topicOwner == 'user') { topicOwner = await this.users.getHederaAccount(currentUser.did); - } else if(ref.options.topicOwner == 'issuer') { + } else if (ref.options.topicOwner == 'issuer') { topicOwner = await this.users.getHederaAccount(document.document.issuer); } else { topicOwner = user; @@ -156,6 +187,7 @@ export class SendToGuardianBlock { const topic = await PolicyUtils.getTopic(ref.options.topic, root, topicOwner, ref); const vc = HVcDocument.fromJsonTree(document.document); const vcMessage = new VCMessage(MessageAction.CreateVC); + vcMessage.setStatus(document.option?.status || DocumentStatus.NEW); vcMessage.setDocument(vc); vcMessage.setRelationships(document.relationships); const messageServer = new MessageServer(user.hederaAccountId, user.hederaAccountKey); @@ -176,7 +208,7 @@ export class SendToGuardianBlock { document.policyId = ref.policyId; document.tag = ref.tag; - document.type = ref.options.entityType; + document.type = ref.options.entityType || document.type; if (ref.options.forceNew) { document = { ...document }; @@ -201,26 +233,32 @@ export class SendToGuardianBlock { return document; } + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) @CatchErrors() - async runAction(state: any, user: IAuthUser) { + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); ref.log(`runAction`); - const docs: any | any[] = state.data; + const docs: any | any[] = event.data.data; if (Array.isArray(docs)) { const newDocs = []; for (let doc of docs) { - const newDoc = await this.documentSender(doc, user); + const newDoc = await this.documentSender(doc, event.user); newDocs.push(newDoc); } - state.data = newDocs; + event.data.data = newDocs; } else { - state.data = await this.documentSender(docs, user); + event.data.data = await this.documentSender(docs, event.user); } - await ref.runNext(user, state); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, event.user, event.data); } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -233,7 +271,7 @@ export class SendToGuardianBlock { } if (ref.options.dataSource == 'database') { - if (!['vc', 'did', 'vp'].find(item => item === ref.options.documentType)) { + if (!['vc', 'did', 'vp', 'document'].find(item => item === ref.options.documentType)) { resultsContainer.addBlockError(ref.uuid, 'Option "documentType" must be one of vc, did, vp'); } } diff --git a/guardian-service/src/policy-engine/blocks/set-relationships-block.ts b/guardian-service/src/policy-engine/blocks/set-relationships-block.ts new file mode 100644 index 0000000000..6dc666e4de --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/set-relationships-block.ts @@ -0,0 +1,50 @@ +import { ActionCallback, EventBlock } from '@policy-engine/helpers/decorators'; +import { PolicyComponentsUtils } from '../policy-components-utils'; +import { IPolicyRequestBlock } from '@policy-engine/policy-engine.interface'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; + +/** + * Set document relationships action + */ +@EventBlock({ + blockType: 'setRelationshipsBlock', + commonBlock: false, + about: { + label: 'Set Relationships', + title: `Add 'Relationships' Block`, + post: false, + get: false, + children: ChildrenType.Special, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RunEvent + ], + defaultEvent: true + } +}) +export class SetRelationshipsBlock { + + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent] + }) + async runAction(event: IPolicyEvent) { + const ref = PolicyComponentsUtils.GetBlockRef(this); + let data: any[] = await ref.getSources(event.user); + let relationships = []; + for (const doc of data) { + if (doc.messageId && !relationships.includes(doc.messageId)) { + relationships.push(doc.messageId); + } + } + const document: any = event.data?.data; + if (document) { + document.relationships = document.relationships ? document.relationships.concat(relationships) : relationships; + } + + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, event.data); + } +} diff --git a/guardian-service/src/policy-engine/blocks/step-block.ts b/guardian-service/src/policy-engine/blocks/step-block.ts new file mode 100644 index 0000000000..4f0acc3cbc --- /dev/null +++ b/guardian-service/src/policy-engine/blocks/step-block.ts @@ -0,0 +1,142 @@ +import { ActionCallback, ContainerBlock, StateField } from '@policy-engine/helpers/decorators'; +import { BlockActionError } from '@policy-engine/errors'; +import { PolicyComponentsUtils } from '../policy-components-utils'; +import { AnyBlockType, IPolicyBlock, IPolicyContainerBlock } from '@policy-engine/policy-engine.interface'; +import { IAuthUser } from '@auth/auth.interface'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; + +/** + * Step block + */ +@ContainerBlock({ + blockType: 'interfaceStepBlock', + commonBlock: false, + about: { + label: 'Step', + title: `Add 'Step' Block`, + post: false, + get: true, + children: ChildrenType.Any, + control: ControlType.UI, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.RefreshEvent, + ], + output: [ + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: false + } +}) +export class InterfaceStepBlock { + @StateField() + state: { [key: string]: any } = { index: 0 }; + + @ActionCallback({ + output: PolicyOutputEventType.RefreshEvent + }) + async changeStep(user: IAuthUser, data: any, target: IPolicyBlock) { + const ref = PolicyComponentsUtils.GetBlockRef(this); + let blockState: any; + if (!this.state.hasOwnProperty(user.did)) { + blockState = {}; + this.state[user.did] = blockState; + } else { + blockState = this.state[user.did]; + } + + if (target) { + const index = ref.children.findIndex(c => c.uuid == target.uuid); + blockState.index = index; + if (blockState.index === -1) { + throw new BlockActionError('Bad child block', ref.blockType, ref.uuid); + } + } else { + throw new BlockActionError('Bad child block', ref.blockType, ref.uuid); + } + ref.log(`changeStep: ${blockState?.index}, ${user?.did}`); + ref.updateBlock(blockState, user); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, null); + } + + /** + * @event PolicyEventType.ReleaseEvent + * @param {IPolicyEvent} event + */ + @ActionCallback({ + type: PolicyInputEventType.ReleaseEvent + }) + async releaseChild(event: IPolicyEvent) { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const index = ref.children.findIndex(c => c.uuid === event.sourceId); + if ( + index != -1 && + index === (ref.children.length - 1) && + ref.options.cyclic + ) { + const user = event.user; + if(user) { + let blockState: any; + if (!this.state.hasOwnProperty(user.did)) { + blockState = {}; + this.state[user.did] = blockState; + } else { + blockState = this.state[user.did]; + } + blockState.index = 0; + ref.updateBlock(blockState, user); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, user, null); + } + } + } + + async getData(user: IAuthUser): Promise { + const ref = PolicyComponentsUtils.GetBlockRef(this); + let blockState: any; + if (!this.state.hasOwnProperty(user.did)) { + blockState = {}; + this.state[user.did] = blockState; + } else { + blockState = this.state[user.did]; + } + if (blockState.index === undefined) { + blockState.index = 0; + } + const { options } = ref; + return { uiMetaData: options.uiMetaData, index: blockState.index }; + } + + public isChildActive(child: AnyBlockType, user: IAuthUser): boolean { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const childIndex = ref.children.indexOf(child); + if (childIndex === -1) { + throw new BlockActionError('Bad block child', ref.blockType, ref.uuid); + } + + let index = 0; + const state = this.state[user.did]; + if (state) { + index = state.index; + } + return index === childIndex; + } + + public isCyclic(): boolean { + const ref = PolicyComponentsUtils.GetBlockRef(this); + return !!ref.options.cyclic; + } + + + // public getNextChild(uuid: string): IPolicyBlock { + // const ref = PolicyComponentsUtils.GetBlockRef(this); + // const index = ref.getChildIndex(uuid); + // if (index !== -1) { + // let next = ref.children[index + 1]; + // if (!next && ref.options.cyclic) { + // next = ref.children[0]; + // } + // return next; + // } + // } +} diff --git a/guardian-service/src/policy-engine/blocks/switch-block.ts b/guardian-service/src/policy-engine/blocks/switch-block.ts index 6df76debd0..6ab6076047 100644 --- a/guardian-service/src/policy-engine/blocks/switch-block.ts +++ b/guardian-service/src/policy-engine/blocks/switch-block.ts @@ -1,4 +1,4 @@ -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock } from '@policy-engine/helpers/decorators'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; import { IAuthUser } from '@auth/auth.interface'; @@ -6,13 +6,30 @@ import { VcDocument } from '@hedera-modules'; import { Users } from '@helpers/users'; import { Inject } from '@helpers/decorators/inject'; import { PolicyUtils } from '@policy-engine/helpers/utils'; +import { IPolicyEvent, PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Switch block */ @BasicBlock({ blockType: 'switchBlock', - commonBlock: true + commonBlock: true, + about: { + label: 'Switch', + title: `Add 'Switch' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Server, + input: [ + PolicyInputEventType.RunEvent + ], + output: [ + PolicyOutputEventType.RefreshEvent + ], + defaultEvent: false + } }) export class SwitchBlock { @Inject() @@ -26,7 +43,7 @@ export class SwitchBlock { if (Array.isArray(docs)) { const scopes: any[] = []; for (let doc of docs) { - if (doc.document) { + if (doc.document && doc.document.type.includes('VerifiableCredential')) { const element = VcDocument.fromJsonTree(doc.document); const scope = PolicyUtils.getVCScope(element); scopes.push(scope); @@ -61,12 +78,19 @@ export class SwitchBlock { return result; } - async runAction(state: any, user: IAuthUser) { + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) + async runAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); - ref.log(`switch: ${user?.did}`); + ref.log(`switch: ${event.user?.did}`); - const docs: any | any[] = state.data; + const docs: any | any[] = event.data.data; let owner: string = null; let issuer: string = null; @@ -84,10 +108,10 @@ export class SwitchBlock { const { conditions, executionFlow } = ref.options; for (let i = 0; i < conditions.length; i++) { const condition = conditions[i]; - const type = condition.type; - const value = condition.value; - const actor = condition.actor; - const target = condition.target; + const type = condition.type as string; + const value = condition.value as string; + const actor = condition.actor as string; + const tag = condition.tag as PolicyOutputEventType; let result = false; if (type == 'equal') { @@ -106,7 +130,7 @@ export class SwitchBlock { result = true; } - let curUser: IAuthUser = user; + let curUser: IAuthUser = event.user; if (actor == 'owner' && owner) { curUser = await this.users.getUserById(owner); } else if (actor == 'issuer' && issuer) { @@ -116,8 +140,8 @@ export class SwitchBlock { ref.log(`check condition: ${curUser?.did}, ${type}, ${value}, ${result}, ${JSON.stringify(scope)}`); if (result) { - const block = PolicyComponentsUtils.GetBlockByTag(ref.policyId, target) as any; - ref.runTarget(curUser, state, block).then(); + ref.triggerEvents(tag, curUser, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, curUser, event.data); if (executionFlow == 'firstTrue') { return; } @@ -136,18 +160,12 @@ export class SwitchBlock { resultsContainer.addBlockError(ref.uuid, 'Option "conditions" does not set'); } + const tagMap = {}; if (Array.isArray(ref.options.conditions)) { for (let condition of ref.options.conditions) { if (!['equal', 'not_equal', 'unconditional'].find(item => item === condition.type)) { resultsContainer.addBlockError(ref.uuid, 'Option "condition.type" must be one of equal, not_equal, unconditional'); } - if (!condition.target && !resultsContainer.isTagExist(condition.target)) { - resultsContainer.addBlockError(ref.uuid, `Tag "${condition.target}" does not exist`); - } - if (condition.target == ref.tag) { - resultsContainer.addBlockError(ref.uuid, `A block cannot redirect to itself`); - } - if (condition.type == 'equal' || condition.type == 'not_equal') { if (!condition.value) { resultsContainer.addBlockError(ref.uuid, 'Option "condition.value" does not set'); @@ -156,6 +174,15 @@ export class SwitchBlock { } } + if (!condition.tag) { + resultsContainer.addBlockError(ref.uuid, `Option "tag" does not set`); + } + + if (tagMap[condition.tag]) { + resultsContainer.addBlockError(ref.uuid, `Condition Tag ${condition.tag} already exist`); + } + + tagMap[condition.tag] = true; } } else { resultsContainer.addBlockError(ref.uuid, 'Option "conditions" must be an array'); diff --git a/guardian-service/src/policy-engine/blocks/timer-block.ts b/guardian-service/src/policy-engine/blocks/timer-block.ts index 1ef431f6d8..8fbb0726b2 100644 --- a/guardian-service/src/policy-engine/blocks/timer-block.ts +++ b/guardian-service/src/policy-engine/blocks/timer-block.ts @@ -1,20 +1,41 @@ import moment from 'moment'; import { CronJob } from 'cron'; -import { BasicBlock } from '@policy-engine/helpers/decorators'; +import { ActionCallback, BasicBlock, StateField } from '@policy-engine/helpers/decorators'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; import { PolicyComponentsUtils } from '../policy-components-utils'; -import { IAuthUser } from '@auth/auth.interface'; import { AnyBlockType } from '@policy-engine/policy-engine.interface'; import { Users } from '@helpers/users'; import { Inject } from '@helpers/decorators/inject'; -import { StateField } from '@policy-engine/helpers/decorators'; +import { PolicyInputEventType as PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces/policy-event-type'; +import { IPolicyEvent } from '@policy-engine/interfaces'; +import { ChildrenType, ControlType } from '@policy-engine/interfaces/block-about'; /** * Aggregate block */ @BasicBlock({ blockType: 'timerBlock', - commonBlock: true + commonBlock: true, + publishExternalEvent: true, + about: { + label: 'Timer', + title: `Add 'Timer' Block`, + post: false, + get: false, + children: ChildrenType.None, + control: ControlType.Special, + input: [ + PolicyInputEventType.RunEvent, + PolicyInputEventType.StartTimerEvent, + PolicyInputEventType.StopTimerEvent + ], + output: [ + PolicyOutputEventType.RunEvent, + PolicyOutputEventType.RefreshEvent, + PolicyOutputEventType.TimerEvent + ], + defaultEvent: true + } }) export class TimerBlock { @StateField() @@ -28,7 +49,10 @@ export class TimerBlock { private job: CronJob; private endTime: number; - start() { + public beforeInit(): void { + } + + afterInit() { const ref = PolicyComponentsUtils.GetBlockRef(this); this.startCron(ref); } @@ -47,7 +71,7 @@ export class TimerBlock { } this.endTime = Infinity; - if(ref.options.endDate) { + if (ref.options.endDate) { let ed = moment(ref.options.endDate).utc(); if (ed.isValid()) { this.endTime = ed.toDate().getTime(); @@ -124,6 +148,9 @@ export class TimerBlock { } } + @ActionCallback({ + output: PolicyOutputEventType.TimerEvent + }) private async tickCron(ref: AnyBlockType) { ref.log(`tick scheduler`); @@ -135,27 +162,61 @@ export class TimerBlock { } } - PolicyComponentsUtils.TriggerEvent({ - type: 'TimerEvent', - policyId: ref.policyId, - target: ref.tag, - targetId: ref.uuid, - user: null, - data: map - }) + ref.triggerEvents(PolicyOutputEventType.TimerEvent, null, map); + } + + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + @ActionCallback({ + output: [PolicyOutputEventType.RunEvent, PolicyOutputEventType.RefreshEvent] + }) + async runAction(event: IPolicyEvent) { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const owner: string = event.data?.data?.owner; + if (owner) { + this.state[owner] = true; + ref.log(`start scheduler for: ${owner}`); + } + await ref.saveState(); + + ref.triggerEvents(PolicyOutputEventType.RunEvent, event.user, event.data); + ref.triggerEvents(PolicyOutputEventType.RefreshEvent, event.user, event.data); } - async runAction(state: any, user: IAuthUser) { + /** + * @event PolicyEventType.StartTimerEvent + * @param {IPolicyEvent} event + */ + @ActionCallback({ + type: PolicyInputEventType.StartTimerEvent + }) + async startAction(event: IPolicyEvent) { const ref = PolicyComponentsUtils.GetBlockRef(this); - const owner: string = state?.data?.owner; + const owner: string = event.data?.data?.owner; if (owner) { this.state[owner] = true; ref.log(`start scheduler for: ${owner}`); } await ref.saveState(); - await ref.runNext(user, state); - ref.callDependencyCallbacks(user); - ref.callParentContainerCallback(user); + } + + /** + * @event PolicyEventType.StopTimerEvent + * @param {IPolicyEvent} event + */ + @ActionCallback({ + type: PolicyInputEventType.StopTimerEvent + }) + async stopAction(event: IPolicyEvent) { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const owner: string = event.data?.data?.owner; + if (owner) { + this.state[owner] = false; + ref.log(`stop scheduler for: ${owner}`); + } + await ref.saveState(); } public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { @@ -175,4 +236,4 @@ export class TimerBlock { resultsContainer.addBlockError(ref.uuid, `Unhandled exception ${error.message}`); } } -} \ No newline at end of file +} diff --git a/guardian-service/src/policy-engine/helpers/data-transform-engine/transform-state.ts b/guardian-service/src/policy-engine/helpers/data-transform-engine/transform-state.ts index f56b1e16ca..ce77f07698 100644 --- a/guardian-service/src/policy-engine/helpers/data-transform-engine/transform-state.ts +++ b/guardian-service/src/policy-engine/helpers/data-transform-engine/transform-state.ts @@ -20,8 +20,8 @@ export function TransformState(rules: any, state: any, updateSource: string, upd const updates = {}; try { updates[configuration.target] = expression(state); - } catch (e) { - throw new BlockActionError(e.message, PolicyComponentsUtils.GetBlockByUUID(updateTarget).blockType, updateTarget); + } catch (error) { + throw new BlockActionError(error.message, PolicyComponentsUtils.GetBlockByUUID(updateTarget).blockType, updateTarget); } return Object.assign({}, state, updates); } diff --git a/guardian-service/src/policy-engine/helpers/decorators/basic-block.ts b/guardian-service/src/policy-engine/helpers/decorators/basic-block.ts index 30a99fa6e0..9d83cb1015 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/basic-block.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/basic-block.ts @@ -1,18 +1,19 @@ import { PolicyBlockDefaultOptions } from '@policy-engine/helpers/policy-block-default-options'; -import { PolicyBlockDependencies, PolicyBlockMap, PolicyTagMap } from '@policy-engine/interfaces'; +import { EventConfig, PolicyBlockMap, PolicyTagMap } from '@policy-engine/interfaces'; import { PolicyBlockDecoratorOptions, PolicyBlockFullArgumentList } from '@policy-engine/interfaces/block-options'; -import { PolicyRole } from 'interfaces'; -import { Logger } from 'logger-helper'; +import { ExternalMessageEvents, PolicyRole } from '@guardian/interfaces'; import { AnyBlockType, IPolicyBlock, ISerializedBlock, } from '../../policy-engine.interface'; import { PolicyComponentsUtils } from '../../policy-components-utils'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; -import { IAuthUser } from '../../../auth/auth.interface'; +import { IAuthUser } from '@auth/auth.interface'; import { getMongoRepository } from 'typeorm'; import { BlockState } from '@entity/block-state'; import deepEqual from 'deep-equal'; import { BlockActionError } from '@policy-engine/errors'; import { Policy } from '@entity/policy'; -import { PolicyEvent } from '@policy-engine/interfaces/policy-event'; +import { IPolicyEvent, PolicyLink } from '@policy-engine/interfaces/policy-event'; +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces/policy-event-type'; +import { ExternalEventChannel, Logger } from '@guardian/common'; /** * Basic block decorator @@ -27,7 +28,6 @@ export function BasicBlock(options: Partial) { public readonly tag: string | null, public defaultActive: boolean, protected readonly permissions: PolicyRole[], - protected readonly dependencies: PolicyBlockDependencies, private readonly _uuid: string, private readonly _parent: IPolicyBlock, private readonly _options: any @@ -63,13 +63,14 @@ export function BasicBlock(options: Partial) { PolicyBlockDefaultOptions(), { defaultActive: false, - permissions: [], - dependencies: [] + permissions: [] } ) as PolicyBlockFullArgumentList; return class extends basicClass { static blockType = o.blockType; + static about = o.about; + static publishExternalEvent = o.publishExternalEvent; protected oldDataState: any = {}; protected currentDataState: any = {}; @@ -78,6 +79,12 @@ export function BasicBlock(options: Partial) { public policyId: string; public policyOwner: string; public policyInstance: any; + public topicId: string; + + public sourceLinks: PolicyLink[]; + public targetLinks: PolicyLink[]; + + public actions: any[]; public readonly blockClassName = 'BasicBlock'; @@ -86,7 +93,6 @@ export function BasicBlock(options: Partial) { defaultActive: boolean, tag: string, permissions: PolicyRole[], - dependencies: PolicyBlockDependencies, _parent: IPolicyBlock, _options: any ) { @@ -96,7 +102,6 @@ export function BasicBlock(options: Partial) { tag || o.tag, defaultActive || o.defaultActive, permissions || o.permissions, - dependencies || o.dependencies, _uuid, _parent || o._parent, _options @@ -106,6 +111,152 @@ export function BasicBlock(options: Partial) { if (this.parent) { this.parent.registerChild(this as any as IPolicyBlock); } + + this.sourceLinks = []; + this.targetLinks = []; + + if (!Array.isArray(this.actions)) { + this.actions = []; + } + this.actions.push([PolicyInputEventType.RunEvent, this.runAction]); + this.actions.push([PolicyInputEventType.RefreshEvent, this.refreshAction]); + } + + public get next(): IPolicyBlock { + if (this.parent) { + return this.parent.getNextChild(this.uuid); + } + return undefined; + } + + public get events(): EventConfig[] { + return this.options.events || []; + } + + public async beforeInit(): Promise { + if (typeof super.beforeInit === 'function') { + super.beforeInit(); + } + } + + public async afterInit(): Promise { + await this.restoreState(); + + if (typeof super.afterInit === 'function') { + super.afterInit(); + } + } + + public getChild(uuid: string): IPolicyBlock { + if (this.children) { + for (const child of this.children) { + if (child.uuid === uuid) { + return child; + } + } + } + return undefined; + } + + public getChildIndex(uuid: string): number { + if (this.children) { + for (let i = 0; i < this.children.length; i++) { + if (this.children[i].uuid === uuid) { + return i; + } + } + } + return -1; + } + + public getNextChild(uuid: string): IPolicyBlock { + if (typeof super.getNextChild === 'function') { + return super.getNextChild(uuid); + } + const index = this.getChildIndex(uuid); + if (index !== -1) { + return this.children[index + 1]; + } + } + + public addSourceLink(link: PolicyLink): void { + this.sourceLinks.push(link) + } + + public addTargetLink(link: PolicyLink): void { + this.targetLinks.push(link) + } + + public triggerEvents(output: PolicyOutputEventType, user?: IAuthUser, data?: any): void { + for (let link of this.sourceLinks) { + if (link.outputType == output) { + link.run(user, data); + } + } + } + + public triggerEvent(event: any, user?: IAuthUser, data?: any): void { + console.error('triggerEvent'); + } + + /** + * @event PolicyEventType.Run + * @param {IPolicyEvent} event + */ + public async runAction(event: IPolicyEvent): Promise { + const parent = this.parent as any; + if (parent && (typeof parent['changeStep'] === 'function')) { + await parent.changeStep(event.user, event.data, this); + } + let result: any; + if (typeof super.runAction === 'function') { + result = await super.runAction(event); + } + if (this.publishExternalEvent) { + new ExternalEventChannel().publishMessage( + ExternalMessageEvents.BLOCK_RUN_EVENTS, + { + uuid: this.uuid, + blockType: this.blockType, + blockTag: this.tag, + data: event.data, + result: result + } + ) + } + return result; + } + + /** + * @event PolicyEventType.DependencyEvent + * @param {IPolicyEvent} event + */ + public async refreshAction(event: IPolicyEvent): Promise { + if (typeof super.refreshAction === 'function') { + return await super.refreshAction(event); + } + this.updateBlock(event.data, event.user, ''); + } + + public async updateBlock(state: any, user: IAuthUser, tag: string) { + await this.saveState(); + if (!this.options.followUser) { + const policy = await getMongoRepository(Policy).findOne(this.policyId); + + for (let [did, role] of Object.entries(policy.registeredUsers)) { + if (this.permissions.includes(role)) { + PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did } as any, tag); + } else if (this.permissions.includes('ANY_ROLE')) { + PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did } as any, tag); + } + } + + if (this.permissions.includes('OWNER')) { + PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did: this.policyOwner } as any, tag); + } + } else { + PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, user, tag); + } } /** @@ -114,8 +265,9 @@ export function BasicBlock(options: Partial) { * @return {boolean} - true if state was changed */ public updateDataState(user, state: any): boolean { + this.oldDataState[user.did] = this.currentDataState[user.did]; - this.currentDataState[user.did] = state; + this.currentDataState[user.did] = { state }; return !deepEqual(this.currentDataState[user.did], this.oldDataState[user.did], { strict: true }) @@ -133,7 +285,7 @@ export function BasicBlock(options: Partial) { }) } - public setPolicyId(id): void { + public setPolicyId(id: string): void { this.policyId = id; } @@ -144,6 +296,10 @@ export function BasicBlock(options: Partial) { this.policyInstance = policy; } + public setTopicId(id: string): void { + this.topicId = id; + } + public async validate(resultsContainer: PolicyValidationResultsContainer): Promise { resultsContainer.registerBlock(this as any as IPolicyBlock); if (resultsContainer.countTags(this.tag) > 1) { @@ -164,49 +320,6 @@ export function BasicBlock(options: Partial) { return; } - public async runNext(user: IAuthUser, data: any): Promise { - if (this.options.stopPropagation) { - return; - } - if (this.parent && (typeof this.parent['changeStep'] === 'function')) { - await this.parent.changeStep(user, data, this.parent.children[this.parent.children.indexOf(this as any) + 1]); - } - } - - public async runTarget(user: IAuthUser, data: any, target: IPolicyBlock): Promise { - if (target.parent && (typeof target.parent['changeStep'] === 'function')) { - await target.parent.changeStep(user, data, target); - } - } - - public async runAction(...args): Promise { - if (typeof super.runAction === 'function') { - return await super.runAction(...args); - } - } - - public async updateBlock(state: any, user: IAuthUser, tag: string) { - await this.saveState(); - if (!this.options.followUser) { - const policy = await getMongoRepository(Policy).findOne(this.policyId); - - for (let [did, role] of Object.entries(policy.registeredUsers)) { - if (this.permissions.includes(role)) { - PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did } as any, tag); - } else if (this.permissions.includes('ANY_ROLE')) { - PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did } as any, tag); - } - } - - if (this.permissions.includes('OWNER')) { - PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, { did: this.policyOwner } as any, tag); - } - } else { - PolicyComponentsUtils.BlockUpdateFn(this.uuid, state, user, tag); - } - - } - public isChildActive(child: AnyBlockType, user: IAuthUser): boolean { if (typeof super.isChildActive === 'function') { return super.isChildActive(child, user); @@ -298,9 +411,6 @@ export function BasicBlock(options: Partial) { if (this.tag) { obj.tag = this.tag; } - if (this.dependencies && (this.dependencies.length > 0)) { - obj.dependencies = this.dependencies; - } if ((this as any).children && ((this as any).children.length > 0)) { obj.children = []; for (let child of (this as any).children) { @@ -321,36 +431,7 @@ export function BasicBlock(options: Partial) { } } - public start() { - for (let dep of this.dependencies) { - PolicyComponentsUtils.RegisterEvent( - this.policyId, dep, 'DependencyEvent', (event: PolicyEvent) => { - this.updateBlock({}, event.user, ''); - } - ); - } - if (typeof super.start === 'function') { - super.start(); - } - } - public callDependencyCallbacks(user: IAuthUser) { - PolicyComponentsUtils.TriggerEvent({ - type: 'DependencyEvent', - policyId: this.policyId, - target: this.tag, - targetId: this.uuid, - user: user, - data: null - }); - } - - public callParentContainerCallback(user: IAuthUser) { - if (this.parent?.blockClassName === 'ContainerBlock') { - this.parent.updateBlock({}, user, ''); - } - } - protected log(message: string) { this.logger.info(message, ['GUARDIAN_SERVICE', this.uuid, this.blockType, this.tag, this.policyId]); } diff --git a/guardian-service/src/policy-engine/helpers/decorators/catch-errors.ts b/guardian-service/src/policy-engine/helpers/decorators/catch-errors.ts index 1747922e44..1b589624df 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/catch-errors.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/catch-errors.ts @@ -1,19 +1,18 @@ -import { BlockErrorActions } from 'interfaces'; +import { BlockErrorActions } from '@guardian/interfaces'; import { PolicyComponentsUtils } from '@policy-engine/policy-components-utils'; -import { Logger } from 'logger-helper'; +import { Logger } from '@guardian/common'; export function CatchErrors() { return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { descriptor.value = new Proxy(target[propertyKey], { async apply(target: any, thisArg: any, argArray: any[]): Promise { - const user = argArray[1]; + const user = argArray[0]; const f = async () => { try { await target.apply(thisArg, argArray); - } catch (e) { - new Logger().error(e.message, ['guardian-service', thisArg.uuid, thisArg.blockType, 'block-runtime', thisArg.policyId]); - console.error(e.message); - PolicyComponentsUtils.BlockErrorFn(thisArg.blockType, e.message, user); + } catch (error) { + await new Logger().error(error, ['guardian-service', thisArg.uuid, thisArg.blockType, 'block-runtime', thisArg.policyId]); + PolicyComponentsUtils.BlockErrorFn(thisArg.blockType, error.message, user); switch (thisArg.options.onErrorAction) { case BlockErrorActions.RETRY: { setTimeout(f, parseInt(thisArg.options.errorTimeout, 10)); diff --git a/guardian-service/src/policy-engine/helpers/decorators/container-block.ts b/guardian-service/src/policy-engine/helpers/decorators/container-block.ts index cd05cd16a2..a7f6af3e5f 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/container-block.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/container-block.ts @@ -4,7 +4,7 @@ import { PolicyComponentsUtils } from '../../policy-components-utils'; import { IAuthUser } from '@auth/auth.interface'; import { getMongoRepository } from 'typeorm'; import { Policy } from '@entity/policy'; -import { IPolicyContainerBlock } from '@policy-engine/policy-engine.interface'; +import { IPolicyBlock, IPolicyContainerBlock } from '@policy-engine/policy-engine.interface'; /** * Container block decorator @@ -18,14 +18,11 @@ export function ContainerBlock(options: Partial) { public readonly blockClassName = 'ContainerBlock'; - async changeStep(user, data, target) { + async changeStep(user: IAuthUser, data: any, target: IPolicyBlock) { let result: any; if (typeof super.changeStep === 'function') { result = super.changeStep(user, data, target); } - if (target) { - await target.runAction(data, user) - } return result; } @@ -66,6 +63,29 @@ export function ContainerBlock(options: Partial) { const changed = (this as any).updateDataState(user, result); return result; } + + isLast(target: IPolicyBlock): boolean { + const ref = PolicyComponentsUtils.GetBlockRef(this); + const index = ref.children.findIndex(c => c.uuid == target.uuid); + return index == (ref.children.length - 1); + } + + isCyclic(): boolean { + if (typeof super.isCyclic === 'function') { + return super.isCyclic(); + } + return false; + } + + getLast(): IPolicyBlock { + const ref = PolicyComponentsUtils.GetBlockRef(this); + return ref.children[0]; + } + + getFirst(): IPolicyBlock { + const ref = PolicyComponentsUtils.GetBlockRef(this); + return ref.children[ref.children.length - 1]; + } } } } diff --git a/guardian-service/src/policy-engine/helpers/decorators/data-source-addon.ts b/guardian-service/src/policy-engine/helpers/decorators/data-source-addon.ts index 8b744fdfe6..c1c1e90185 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/data-source-addon.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/data-source-addon.ts @@ -2,6 +2,7 @@ import { PolicyBlockDecoratorOptions } from '@policy-engine/interfaces'; import { BasicBlock } from '@policy-engine/helpers/decorators/basic-block'; import { PolicyComponentsUtils } from '../../policy-components-utils'; import { BlockActionError } from '@policy-engine/errors'; +import { IAuthUser } from '@auth/auth.interface'; export function DataSourceAddon(options: Partial) { return function (constructor: new (...args: any) => any): any { @@ -44,24 +45,25 @@ export function DataSourceAddon(options: Partial) { return result; } - protected async getSources(...args): Promise { - let data = []; - for (let child of this.children) { - if (child.blockClassName === 'SourceAddon') { - const childData = await child.getFromSource(...args); - data = data.concat(childData) - } - } - return data; - } - protected setFilters(filters, user): void { if (typeof super.setFilters === 'function') { super.setFilters(filters, user); } else { this.filters[user.did] = filters } + } + protected async getSources(user: IAuthUser, globalFilters: any): Promise { + let data = []; + for (let child of this.children) { + if (child.blockClassName === 'SourceAddon') { + const childData = await child.getFromSource(user, globalFilters); + for (const item of childData) { + data.push(item); + } + } + } + return data; } } } diff --git a/guardian-service/src/policy-engine/helpers/decorators/data-source-block.ts b/guardian-service/src/policy-engine/helpers/decorators/data-source-block.ts index 76aaa185c1..3bf77392b0 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/data-source-block.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/data-source-block.ts @@ -1,3 +1,4 @@ +import { IAuthUser } from '@auth/auth.interface'; import { BasicBlock } from '@policy-engine/helpers/decorators/basic-block'; import { PolicyBlockDecoratorOptions } from '@policy-engine/interfaces/block-options'; import { IPolicyBlock } from '@policy-engine/policy-engine.interface'; @@ -25,7 +26,9 @@ export function DataSourceBlock(options: Partial) { const filters: IPolicyBlock[] = []; for (let child of this.children) { - if (child.blockClassName === 'SourceAddon') { + if (child.blockClassName === 'DataSourceAddon') { + filters.push(child); + } else if (child.blockClassName === 'SourceAddon') { for (let filter of child.children) { filters.push(filter); } @@ -41,17 +44,31 @@ export function DataSourceBlock(options: Partial) { }) } - protected async getSources(...args): Promise { + protected async getGlobalSources(user: IAuthUser, paginationData: any) { + const dynFilters = {}; + for (let child of this.children) { + if (child.blockClassName === 'DataSourceAddon') { + for (let [key, value] of Object.entries(child.getFilters(user))) { + dynFilters[key] = { $eq: value }; + } + } + } + return await this.getSources(user, dynFilters, paginationData); + } + + protected async getSources(user: IAuthUser, globalFilters: any, paginationData: any): Promise { let data = []; for (let child of this.children) { if (child.blockClassName === 'SourceAddon') { - data = data.concat(await child.getFromSource(...args)) + const childData = await child.getFromSource(user, globalFilters); + for (const item of childData) { + data.push(item); + } } } - - if (args[1]) { - const start = args[1].page * args[1].itemsPerPage; - const end = start + args[1].itemsPerPage; + if (paginationData) { + const start = paginationData.page * paginationData.itemsPerPage; + const end = start + paginationData.itemsPerPage; data = data.slice(start, end); } return data; diff --git a/guardian-service/src/policy-engine/helpers/decorators/event-block.ts b/guardian-service/src/policy-engine/helpers/decorators/event-block.ts index 58a9492cff..c46f5afd81 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/event-block.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/event-block.ts @@ -1,6 +1,7 @@ import { PolicyBlockDecoratorOptions } from '@policy-engine/interfaces/block-options'; import { BasicBlock } from './basic-block'; import { BlockActionError } from '@policy-engine/errors'; +import { IAuthUser } from '@auth/auth.interface'; /** * Event block decorator @@ -17,9 +18,7 @@ export function EventBlock(options: Partial) { async getData(...args) { const [user] = args; if (typeof super.getData === 'function') { - const data = await super.getData(...args); - const changed = (this as any).updateDataState(user, data); - return data; + return await super.getData(...args); } return {}; } @@ -34,11 +33,14 @@ export function EventBlock(options: Partial) { return {}; } - protected async getSources(...args): Promise { + protected async getSources(user: IAuthUser, globalFilters: any): Promise { let data = []; for (let child of this.children) { if (child.blockClassName === 'SourceAddon') { - data = data.concat(await child.getFromSource(...args)) + const childData = await child.getFromSource(user, globalFilters); + for (const item of childData) { + data.push(item); + } } } return data; diff --git a/guardian-service/src/policy-engine/helpers/decorators/event-callback.ts b/guardian-service/src/policy-engine/helpers/decorators/event-callback.ts new file mode 100644 index 0000000000..ec292ee092 --- /dev/null +++ b/guardian-service/src/policy-engine/helpers/decorators/event-callback.ts @@ -0,0 +1,37 @@ +import { PolicyInputEventType, PolicyOutputEventType } from '@policy-engine/interfaces/policy-event-type'; + +export function ActionCallback(config: { + type?: PolicyInputEventType, + output?: PolicyOutputEventType | PolicyOutputEventType[] +}) { + return (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => { + if (!Array.isArray(target.actions)) { + target.actions = []; + } + if (!Array.isArray(target.outputActions)) { + target.outputActions = []; + } + if (config.type) { + target.actions.push([ + config.type, + new Proxy(target[propertyKey], { + async apply(target: any, thisArg: any, argArray: any[]): Promise { + descriptor.value.apply(thisArg, argArray); + } + }) + ]); + } + if (config.output) { + if (Array.isArray(config.output)) { + for (let i = 0; i < config.output.length; i++) { + const output = config.output[i]; + if (target.outputActions.indexOf(output) == -1) { + target.outputActions.push(output); + } + } + } else if (target.outputActions.indexOf(config.output) == -1) { + target.outputActions.push(config.output); + } + } + } +} diff --git a/guardian-service/src/policy-engine/helpers/decorators/index.ts b/guardian-service/src/policy-engine/helpers/decorators/index.ts index 7fdb8f2d89..3d2ed50611 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/index.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/index.ts @@ -9,3 +9,5 @@ export { CalculateAddon } from './calculate-addon'; export { CalculateBlock } from './calculate-block'; export { Report } from './report-block'; export { ReportItem } from './report-item-block'; +export { ActionCallback } from './event-callback'; + diff --git a/guardian-service/src/policy-engine/helpers/decorators/source-addon.ts b/guardian-service/src/policy-engine/helpers/decorators/source-addon.ts index 5cf8392548..12b49ac3ef 100644 --- a/guardian-service/src/policy-engine/helpers/decorators/source-addon.ts +++ b/guardian-service/src/policy-engine/helpers/decorators/source-addon.ts @@ -1,6 +1,7 @@ import { PolicyBlockDecoratorOptions } from '@policy-engine/interfaces'; import { BasicBlock } from '@policy-engine/helpers/decorators/basic-block'; import { IPolicyBlock } from '@policy-engine/policy-engine.interface'; +import { IAuthUser } from '@auth/auth.interface'; export function SourceAddon(options: Partial) { return function (constructor: new (...args: any) => any): any { @@ -10,9 +11,9 @@ export function SourceAddon(options: Partial) { public readonly blockClassName = 'SourceAddon'; - public getFromSource(...args): any[] { + public getFromSource(user: IAuthUser, globalFilters: any): any[] { if (typeof super.getFromSource === 'function') { - return super.getFromSource(...args) + return super.getFromSource(user, globalFilters); } return []; } diff --git a/guardian-service/src/policy-engine/helpers/get-other-options.ts b/guardian-service/src/policy-engine/helpers/get-other-options.ts index 5023a03953..bf67065639 100644 --- a/guardian-service/src/policy-engine/helpers/get-other-options.ts +++ b/guardian-service/src/policy-engine/helpers/get-other-options.ts @@ -11,7 +11,6 @@ export function GetOtherOptions(options: tag, defaultActive, permissions, - dependencies, blockMap, tagMap, _uuid, diff --git a/guardian-service/src/policy-engine/helpers/policy-block-default-options.ts b/guardian-service/src/policy-engine/helpers/policy-block-default-options.ts index 54b39ef326..477dacb6fb 100644 --- a/guardian-service/src/policy-engine/helpers/policy-block-default-options.ts +++ b/guardian-service/src/policy-engine/helpers/policy-block-default-options.ts @@ -9,7 +9,6 @@ export function PolicyBlockDefaultOptions(): PolicyBlockOptionsPartial { tag: null, defaultActive: false, permissions: [], - dependencies: [], _parent: null }) } diff --git a/guardian-service/src/policy-engine/helpers/policy-import-export-helper.ts b/guardian-service/src/policy-engine/helpers/policy-import-export-helper.ts index 03af10b499..d3ece4df46 100644 --- a/guardian-service/src/policy-engine/helpers/policy-import-export-helper.ts +++ b/guardian-service/src/policy-engine/helpers/policy-import-export-helper.ts @@ -11,15 +11,20 @@ import { getMongoRepository } from 'typeorm'; import { GenerateUUIDv4 } from '@policy-engine/helpers/uuidv4'; import { Token } from '@entity/token'; import { Schema } from '@entity/schema'; -import { TopicType } from 'interfaces'; +import { SchemaEntity, TopicType } from '@guardian/interfaces'; import { Users } from '@helpers/users'; import { HederaSDKHelper, MessageAction, MessageServer, MessageType, PolicyMessage } from '@hedera-modules'; import { Topic } from '@entity/topic'; -import { importSchemaByFiles } from '@api/schema.service'; +import { importSchemaByFiles, publishSystemSchema } from '@api/schema.service'; import { TopicHelper } from '@helpers/topicHelper'; import { PrivateKey } from '@hashgraph/sdk'; +import { PolicyConverterUtils } from '@policy-engine/policy-converter-utils'; +import { PolicyUtils } from './utils'; +import { Schema as SchemaCollection } from '@entity/schema'; export class PolicyImportExportHelper { + static policyFileName = 'policy.json'; + /** * Generate Zip File * @param policy policy to pack @@ -28,35 +33,20 @@ export class PolicyImportExportHelper { */ static async generateZipFile(policy: Policy): Promise { const policyObject = { ...policy }; + const topicId = policyObject.topicId; + delete policyObject.id; delete policyObject.messageId; delete policyObject.registeredUsers; delete policyObject.status; + delete policyObject.topicId; + const tokenIds = findAllEntities(policyObject.config, ['tokenId']); - const schemesIds = findAllEntities(policyObject.config, SchemaFields); const tokens = await getMongoRepository(Token).find({ where: { tokenId: { $in: tokenIds } } }); - const rootSchemes = await getMongoRepository(Schema).find({ - where: { iri: { $in: schemesIds } } - }); - const defs: any[] = rootSchemes.map(s => s.document.$defs); - const map: any = {}; - for (let i = 0; i < rootSchemes.length; i++) { - const id = rootSchemes[i].iri; - map[id] = id; - } - for (let i = 0; i < defs.length; i++) { - if (defs[i]) { - const ids = Object.keys(defs[i]); - for (let j = 0; j < ids.length; j++) { - const id = ids[j]; - map[id] = id; - } - } - } - const allSchemesIds = Object.keys(map); - const schemes = await getMongoRepository(Schema).find({ - where: { iri: { $in: allSchemesIds } } + const schemas = await getMongoRepository(Schema).find({ + topicId: topicId, + readonly: false }); const zip = new JSZip(); @@ -71,16 +61,16 @@ export class PolicyImportExportHelper { token.freezeKey = token.freezeKey ? "..." : null; zip.file(`tokens/${token.tokenName}.json`, JSON.stringify(token)); } - zip.folder('schemes') - for (let schema of schemes) { + zip.folder('schemas') + for (let schema of schemas) { const item = { ...schema }; delete item.id; delete item.status; delete item.readonly; - zip.file(`schemes/${schema.iri}.json`, JSON.stringify(schema)); + zip.file(`schemas/${schema.iri}.json`, JSON.stringify(schema)); } - zip.file(`policy.json`, JSON.stringify(policyObject)); + zip.file(this.policyFileName, JSON.stringify(policyObject)); return zip; } @@ -92,22 +82,24 @@ export class PolicyImportExportHelper { static async parseZipFile(zipFile: any): Promise { const zip = new JSZip(); const content = await zip.loadAsync(zipFile); - let policyString = await content.files['policy.json'].async('string'); + if (!content.files[this.policyFileName] || content.files[this.policyFileName].dir) { + throw 'Zip file is not a policy'; + } + let policyString = await content.files[this.policyFileName].async('string'); const tokensStringArray = await Promise.all(Object.entries(content.files) .filter(file => !file[1].dir) .filter(file => /^tokens\/.+/.test(file[0])) .map(file => file[1].async('string'))); - const schemesStringArray = await Promise.all(Object.entries(content.files) + const schemasStringArray = await Promise.all(Object.entries(content.files) .filter(file => !file[1].dir) - .filter(file => /^schemes\/.+/.test(file[0])) + .filter(file => /^schem[a,e]s\/.+/.test(file[0])) .map(file => file[1].async('string'))); const policy = JSON.parse(policyString); const tokens = tokensStringArray.map(item => JSON.parse(item)); - const schemes = schemesStringArray.map(item => JSON.parse(item)); - - return { policy, tokens, schemes }; + const schemas = schemasStringArray.map(item => JSON.parse(item)); + return { policy, tokens, schemas }; } /** @@ -118,8 +110,8 @@ export class PolicyImportExportHelper { * @returns Policies by owner */ static async importPolicy(policyToImport: any, policyOwner: string): Promise { - const { policy, tokens, schemes } = policyToImport; - + const { policy, tokens, schemas } = policyToImport; + delete policy.id; delete policy.messageId; delete policy.version; @@ -131,7 +123,6 @@ export class PolicyImportExportHelper { policy.owner = policyOwner; policy.status = 'DRAFT'; - const users = new Users(); const root = await users.getHederaAccount(policyOwner); @@ -155,7 +146,25 @@ export class PolicyImportExportHelper { .setTopicObject(parent) .sendMessage(message); - await topicHelper.link(topicRow, parent, messageStatus.getId()); + await topicHelper.twoWayLink(topicRow, parent, messageStatus.getId()); + + const systemSchemas = new Array(4); + systemSchemas[0] = await PolicyUtils.getSystemSchema(SchemaEntity.POLICY); + systemSchemas[1] = await PolicyUtils.getSystemSchema(SchemaEntity.MINT_TOKEN); + systemSchemas[2] = await PolicyUtils.getSystemSchema(SchemaEntity.MINT_NFTOKEN); + systemSchemas[3] = await PolicyUtils.getSystemSchema(SchemaEntity.WIPE_TOKEN); + + for (let i = 0; i < systemSchemas.length; i++) { + messageServer.setTopicObject(topicRow); + const schema = systemSchemas[i]; + if(schema) { + schema.creator = policyOwner; + schema.owner = policyOwner; + const item = await publishSystemSchema(schema, messageServer, MessageAction.PublishSystemSchema); + const newItem = getMongoRepository(SchemaCollection).create(item); + await getMongoRepository(SchemaCollection).save(newItem); + } + } // Import Tokens if (tokens) { @@ -211,11 +220,11 @@ export class PolicyImportExportHelper { } } - // Import Schemes - const schemesMap = await importSchemaByFiles(policyOwner, schemes, topicRow.topicId); + // Import Schemas + const schemasMap = await importSchemaByFiles(policyOwner, schemas, topicRow.topicId); // Replace id - await this.replaceConfig(policy, schemesMap); + await this.replaceConfig(policy, schemasMap); // Save const model = getMongoRepository(Policy).create(policy as Policy); @@ -228,25 +237,19 @@ export class PolicyImportExportHelper { return result; } - static async replaceConfig(policy: Policy, schemesMap: any) { + static async replaceConfig(policy: Policy, schemasMap: any) { if (await getMongoRepository(Policy).findOne({ name: policy.name })) { policy.name = policy.name + '_' + Date.now(); } - for (let index = 0; index < schemesMap.length; index++) { - const item = schemesMap[index]; + for (let index = 0; index < schemasMap.length; index++) { + const item = schemasMap[index]; replaceAllEntities(policy.config, SchemaFields, item.oldIRI, item.newIRI); } // compatibility with older versions - replaceAllEntities(policy.config, ['blockType'], 'interfaceDocumentsSource', 'interfaceDocumentsSourceBlock'); - replaceAllEntities(policy.config, ['blockType'], 'requestVcDocument', 'requestVcDocumentBlock'); - replaceAllEntities(policy.config, ['blockType'], 'sendToGuardian', 'sendToGuardianBlock'); - replaceAllEntities(policy.config, ['blockType'], 'interfaceAction', 'interfaceActionBlock'); - replaceAllEntities(policy.config, ['blockType'], 'mintDocument', 'mintDocumentBlock'); - replaceAllEntities(policy.config, ['blockType'], 'aggregateDocument', 'aggregateDocumentBlock'); - replaceAllEntities(policy.config, ['blockType'], 'wipeDocument', 'retirementDocumentBlock'); - + policy = PolicyConverterUtils.PolicyConverter(policy); + policy.codeVersion = PolicyConverterUtils.VERSION; regenerateIds(policy.config); } } diff --git a/guardian-service/src/policy-engine/helpers/utils.ts b/guardian-service/src/policy-engine/helpers/utils.ts index 0472d689b0..c9126fe109 100644 --- a/guardian-service/src/policy-engine/helpers/utils.ts +++ b/guardian-service/src/policy-engine/helpers/utils.ts @@ -1,15 +1,18 @@ import { Token } from "@entity/token"; -import { HederaSDKHelper, HederaUtils, VcDocument, VpDocument } from "@hedera-modules"; +import { HederaSDKHelper, HederaUtils, VcDocument } from "@hedera-modules"; import * as mathjs from 'mathjs'; import { VcDocument as VcDocumentCollection } from '@entity/vc-document'; import { VpDocument as VpDocumentCollection } from '@entity/vp-document'; import { DidDocument as DidDocumentCollection } from '@entity/did-document'; +import { Schema as SchemaCollection } from '@entity/schema'; import { getMongoRepository } from "typeorm"; import { AnyBlockType } from "@policy-engine/policy-engine.interface"; import { IAuthUser } from "@auth/auth.interface"; -import { DocumentSignature, DocumentStatus, TopicType } from "interfaces"; +import { DocumentStatus, ExternalMessageEvents, SchemaEntity, TopicType } from '@guardian/interfaces'; import { Topic } from "@entity/topic"; import { TopicHelper } from "@helpers/topicHelper"; +import { DocumentState } from "@entity/document-state"; +import { ExternalEventChannel } from "@guardian/common"; export enum DataTypes { MRV = 'mrv', @@ -84,8 +87,18 @@ export class PolicyUtils { } public static async updateVCRecord(row: VcDocumentCollection): Promise { - let item = await getMongoRepository(VcDocumentCollection).findOne({ hash: row.hash }); + let item = await getMongoRepository(VcDocumentCollection).findOne({ + where: { + hash: { $eq: row.hash }, + hederaStatus: {$not: { $eq: DocumentStatus.REVOKE }} + } + }); + const docStatusRepo = getMongoRepository(DocumentState); + let updateStatus = false; if (item) { + if (row.option?.status) { + updateStatus = item.option?.status !== row.option.status + } item.owner = row.owner; item.assign = row.assign; item.option = row.option; @@ -97,12 +110,22 @@ export class PolicyUtils { item.document = row.document; item.messageId = row.messageId || item.messageId; item.topicId = row.topicId || item.topicId; + item.comment = row.comment; + item.relationships = row.relationships; await getMongoRepository(VcDocumentCollection).update(item.id, item); - return item; } else { item = getMongoRepository(VcDocumentCollection).create(row); - return await getMongoRepository(VcDocumentCollection).save(item); + updateStatus = !!item.option?.status; + await getMongoRepository(VcDocumentCollection).save(item); } + if (updateStatus) { + docStatusRepo.save({ + documentId: item.id, + status: item.option.status, + reason: item.comment + }); + } + return item; } public static async updateDIDRecord(row: DidDocumentCollection): Promise { @@ -119,8 +142,7 @@ export class PolicyUtils { } public static async updateVPRecord(row: VpDocumentCollection): Promise { - const doc = getMongoRepository(VpDocumentCollection).create(row); - return await getMongoRepository(VpDocumentCollection).save(doc); + return await getMongoRepository(VpDocumentCollection).save(row); } public static async saveVP(row: VpDocumentCollection): Promise { @@ -173,6 +195,7 @@ export class PolicyUtils { await client.mint(tokenId, supplyKey, tokenValue, uuid); await client.transfer(tokenId, user.hederaAccountId, adminId, adminKey, tokenValue, uuid); } + new ExternalEventChannel().publishMessage(ExternalMessageEvents.TOKEN_MINTED, { tokenId, tokenValue, memo: uuid }) console.log('Mint: End'); } @@ -225,7 +248,7 @@ export class PolicyUtils { policyId: ref.policyId, policyUUID: null }); - await topicHelper.link(topic, rootTopic, null); + await topicHelper.twoWayLink(topic, rootTopic, null); } } else { topic = rootTopic; @@ -251,6 +274,13 @@ export class PolicyUtils { return topic; } + public static async getPolicyTopics(policyId: string): Promise { + const topics = await getMongoRepository(Topic).find({ + policyId: policyId + }) + return topics; + } + public static getSubjectId(data: any): string { try { if (data) { @@ -265,4 +295,22 @@ export class PolicyUtils { } return null; } + + public static async getSchema(topicId: string, entity: SchemaEntity): Promise { + const policySchema = await getMongoRepository(SchemaCollection).findOne({ + entity: entity, + readonly: true, + topicId: topicId + }); + return policySchema; + } + + public static async getSystemSchema(entity: SchemaEntity): Promise { + const policySchema = await getMongoRepository(SchemaCollection).findOne({ + entity: entity, + system: true, + active: true + }); + return policySchema; + } } diff --git a/guardian-service/src/policy-engine/interfaces/block-about.ts b/guardian-service/src/policy-engine/interfaces/block-about.ts new file mode 100644 index 0000000000..b80251d223 --- /dev/null +++ b/guardian-service/src/policy-engine/interfaces/block-about.ts @@ -0,0 +1,26 @@ +import { PolicyInputEventType, PolicyOutputEventType } from "./policy-event-type"; + +export enum ChildrenType { + None = 'None', + Special = 'Special', + Any = 'Any', +} + +export enum ControlType { + UI = 'UI', + Special = 'Special', + Server = 'Server', + None = 'None', +} + +export interface BlockAbout { + label: string, + title: string, + post: boolean, + get: boolean, + input?: PolicyInputEventType[], + output?: PolicyOutputEventType[], + children: ChildrenType, + control: ControlType, + defaultEvent: boolean +} \ No newline at end of file diff --git a/guardian-service/src/policy-engine/interfaces/block-options.ts b/guardian-service/src/policy-engine/interfaces/block-options.ts index dc4418fc81..6c17e38e20 100644 --- a/guardian-service/src/policy-engine/interfaces/block-options.ts +++ b/guardian-service/src/policy-engine/interfaces/block-options.ts @@ -1,11 +1,14 @@ -import { PolicyBlockDependencies, PolicyBlockMap, PolicyTagMap } from './'; +import { PolicyBlockMap, PolicyTagMap } from './'; import { IPolicyBlock, } from '@policy-engine/policy-engine.interface'; -import { UserRole } from 'interfaces'; +import { UserRole } from '@guardian/interfaces'; +import { BlockAbout } from './block-about'; export interface PolicyBlockDecoratorOptions { blockType: string; commonBlock?: boolean; + about?: BlockAbout; + publishExternalEvent?: boolean; } export interface PolicyBlockConstructorParams { @@ -13,7 +16,6 @@ export interface PolicyBlockConstructorParams { tag?: string; permissions: UserRole[]; _parent: IPolicyBlock; - dependencies: PolicyBlockDependencies; options?: any; id?: string; } diff --git a/guardian-service/src/policy-engine/interfaces/block-state.ts b/guardian-service/src/policy-engine/interfaces/block-state.ts index b0a30b72a5..ddc4f599fc 100644 --- a/guardian-service/src/policy-engine/interfaces/block-state.ts +++ b/guardian-service/src/policy-engine/interfaces/block-state.ts @@ -13,8 +13,5 @@ export interface PolicyBlockStateCommon { } export type PolicyBlockState = PolicyBlockStateCommon>; - -export type PolicyBlockDependencies = string[]; - export type PolicyBlockMap = Map; export type PolicyTagMap = Map; diff --git a/guardian-service/src/policy-engine/interfaces/event-config.ts b/guardian-service/src/policy-engine/interfaces/event-config.ts new file mode 100644 index 0000000000..1e4be5f009 --- /dev/null +++ b/guardian-service/src/policy-engine/interfaces/event-config.ts @@ -0,0 +1,10 @@ +import { EventActor, PolicyInputEventType, PolicyOutputEventType } from "./policy-event-type"; + +export interface EventConfig { + output: PolicyOutputEventType + input: PolicyInputEventType; + target: string; + source: string; + disabled: boolean; + actor: EventActor; +} \ No newline at end of file diff --git a/guardian-service/src/policy-engine/interfaces/index.ts b/guardian-service/src/policy-engine/interfaces/index.ts index 1c28ca0632..5ac3359010 100644 --- a/guardian-service/src/policy-engine/interfaces/index.ts +++ b/guardian-service/src/policy-engine/interfaces/index.ts @@ -1,5 +1,5 @@ export { - PolicyBlockDependencies, PolicyBlockMap, + PolicyBlockMap, PolicyBlockState, PolicyBlockStateCommon, PolicyBlockStateData, PolicyTagMap @@ -17,3 +17,20 @@ export { BlockError, BlockErrorDTO } from './block-error'; + +export { + PolicyInputEventType, + PolicyOutputEventType +} from './policy-event-type'; + +export { + IPolicyEvent, + PolicyLink, + EventCallback +} from './policy-event'; + +export { + EventConfig +} from './event-config'; + +export { EventActor } from "./policy-event-type"; \ No newline at end of file diff --git a/guardian-service/src/policy-engine/interfaces/policy-event-type.ts b/guardian-service/src/policy-engine/interfaces/policy-event-type.ts new file mode 100644 index 0000000000..1a80c990a5 --- /dev/null +++ b/guardian-service/src/policy-engine/interfaces/policy-event-type.ts @@ -0,0 +1,21 @@ +export enum PolicyInputEventType { + TimerEvent = 'TimerEvent', + StartTimerEvent = 'StartTimerEvent', + StopTimerEvent = 'StopTimerEvent', + RefreshEvent = 'RefreshEvent', + RunEvent = 'RunEvent', + ReleaseEvent = 'ReleaseEvent' +} + +export enum PolicyOutputEventType { + TimerEvent = 'TimerEvent', + RunEvent = 'RunEvent', + RefreshEvent = 'RefreshEvent', + DropdownEvent = 'DropdownEvent', +} + +export enum EventActor { + Owner = 'owner', + Issuer = 'issuer', + EventInitiator = '', +} diff --git a/guardian-service/src/policy-engine/interfaces/policy-event.ts b/guardian-service/src/policy-engine/interfaces/policy-event.ts index b61695d4e0..81a795253f 100644 --- a/guardian-service/src/policy-engine/interfaces/policy-event.ts +++ b/guardian-service/src/policy-engine/interfaces/policy-event.ts @@ -1,10 +1,104 @@ import { IAuthUser } from "@auth/auth.interface"; +import { AnyBlockType } from "@policy-engine/policy-engine.interface"; +import { EventActor, PolicyInputEventType, PolicyOutputEventType } from "./policy-event-type"; -export interface PolicyEvent { - type: string; // Event Type; - target: string; // Block Tag; +export type EventCallback = (event: IPolicyEvent) => void; + +export interface IPolicyEvent { + type: PolicyInputEventType; // Event Type; + inputType: PolicyInputEventType; + outputType: PolicyOutputEventType; policyId: string; // Policy Id; - targetId: string; // Block Id; + source: string; // Block Tag; + sourceId: string; // Block Id; + target?: string; // Block Tag; + targetId?: string; // Block Id; user?: IAuthUser; data?: T; +} + +export class PolicyLink { + public readonly type: PolicyInputEventType; + public readonly inputType: PolicyInputEventType; + public readonly outputType: PolicyOutputEventType; + public readonly policyId: string; + public readonly source: AnyBlockType; + public readonly target: AnyBlockType; + public readonly actor: EventActor; + + private readonly callback?: EventCallback; + + constructor( + inputType: PolicyInputEventType, + outputType: PolicyOutputEventType, + source: AnyBlockType, + target: AnyBlockType, + actor: EventActor, + fn: EventCallback + ) { + this.type = inputType; + this.inputType = inputType; + this.outputType = outputType; + this.policyId = source.policyId; + this.source = source; + this.target = target; + this.actor = actor; + this.callback = fn; + } + + public run(user?: IAuthUser, data?: T): void { + if (this.actor == EventActor.Owner) { + user = this.createUser(this.getOwner(data)); + } else if (this.actor == EventActor.Issuer) { + user = this.createUser(this.getIssuer(data)); + } + this.callback.call(this.target, { + type: this.type, + inputType: this.inputType, + outputType: this.outputType, + policyId: this.policyId, + source: this.source.tag, + sourceId: this.source.uuid, + target: this.target.tag, + targetId: this.target.uuid, + user: user, + data: data + }) + } + + private getOwner(data: any): string { + console.log('getOwner', data); + if (!data) { + return null; + } + if (data.data) { + data = Array.isArray(data.data) ? data.data[0] : data.data; + } + return data ? data.owner : null; + } + + private getIssuer(data: any): string { + console.log('getIssuer', data); + if (!data) { + return null; + } + if (data.data) { + data = Array.isArray(data.data) ? data.data[0] : data.data; + } + if (data) { + if (data.document) { + return data.document.issuer; + } + return data.owner; + } + return null; + } + + private createUser(did: string): IAuthUser { + console.log('createUser', did) + if (did) { + return { did } as IAuthUser; + } + return null; + } } \ No newline at end of file diff --git a/guardian-service/src/policy-engine/policy-components-utils.ts b/guardian-service/src/policy-engine/policy-components-utils.ts index d78a707948..c0e0a03d66 100644 --- a/guardian-service/src/policy-engine/policy-components-utils.ts +++ b/guardian-service/src/policy-engine/policy-components-utils.ts @@ -2,80 +2,104 @@ import { PolicyBlockConstructorParams, PolicyBlockFullArgumentList, PolicyBlockMap, - PolicyTagMap + PolicyTagMap, + IPolicyEvent, + PolicyLink, + PolicyInputEventType, + EventCallback, + PolicyOutputEventType } from '@policy-engine/interfaces'; -import { PolicyRole } from 'interfaces'; +import { PolicyRole } from '@guardian/interfaces'; import { IAuthUser } from '@auth/auth.interface'; import { GenerateUUIDv4 } from './helpers/uuidv4'; -import { AnyBlockType, IPolicyBlock, IPolicyInterfaceBlock } from './policy-engine.interface'; +import { AnyBlockType, IPolicyBlock, IPolicyContainerBlock, IPolicyInterfaceBlock, ISerializedBlock, ISerializedBlockExtend } from './policy-engine.interface'; import { getMongoRepository } from 'typeorm'; import { Policy } from '@entity/policy'; import { STATE_KEY } from '@policy-engine/helpers/constants'; import { GetBlockByType } from '@policy-engine/blocks/get-block-by-type'; import { GetOtherOptions } from '@policy-engine/helpers/get-other-options'; -import { PolicyEvent } from './interfaces/policy-event'; +import { GetBlockAbout } from '@policy-engine/blocks'; +import { EventActor } from './interfaces/policy-event-type'; + +export type PolicyActionMap = Map>> export class PolicyComponentsUtils { public static BlockUpdateFn: (uuid: string, state: any, user: IAuthUser, tag?: string) => void; public static BlockErrorFn: (blockType: string, message: any, user: IAuthUser) => void; + private static ExternalDataBlocks: Map = new Map(); - private static PolicyBlockMapObject: PolicyBlockMap = new Map(); - private static PolicyTagMapObject: Map = new Map(); - private static BlockEventSubscriptions: Map>> = new Map(); - - public static RegisterEvent(policyId: string, tag: string, eventType: string, fn: Function): void { - let policyMap: Map>; - if (PolicyComponentsUtils.BlockEventSubscriptions.has(policyId)) { - policyMap = PolicyComponentsUtils.BlockEventSubscriptions.get(policyId); - } else { - policyMap = new Map(); - PolicyComponentsUtils.BlockEventSubscriptions.set(policyId, policyMap); - } + private static BlockByUUIDMap: PolicyBlockMap = new Map(); + private static BlockUUIDByTagMap: Map = new Map(); + private static PolicyAction: Map = new Map(); - let tagMap: Map; - if (policyMap.has(tag)) { - tagMap = policyMap.get(tag); + private static logEvents(text: string) { + // console.error(text); + } + + public static RegisterAction(target: any, eventType: PolicyInputEventType, fn: EventCallback): void { + const policyId = target.policyId; + const targetId = target.uuid; + + let policyMap: PolicyActionMap; + if (PolicyComponentsUtils.PolicyAction.has(policyId)) { + policyMap = PolicyComponentsUtils.PolicyAction.get(policyId); } else { - tagMap = new Map(); - policyMap.set(tag, tagMap); + policyMap = new Map(); + PolicyComponentsUtils.PolicyAction.set(policyId, policyMap); } - let subscriptionsArray: Function[]; - if (!Array.isArray(tagMap.get(eventType))) { - subscriptionsArray = []; - tagMap.set(eventType, subscriptionsArray); + let targetMap: Map>; + if (policyMap.has(targetId)) { + targetMap = policyMap.get(targetId); } else { - subscriptionsArray = tagMap.get(eventType); + targetMap = new Map(); + policyMap.set(targetId, targetMap); } - subscriptionsArray.push(fn); + targetMap.set(eventType, fn); } - public static RemoveEventAll(policyId: string, tag: string, eventType: string): void { - if (PolicyComponentsUtils.BlockEventSubscriptions.has(policyId)) { - const policy = PolicyComponentsUtils.BlockEventSubscriptions.get(policyId); - if (policy.has(tag)) { - const block = policy.get(tag); - if (block.has(eventType)) { - block.set(eventType, []); + public static CreateLink( + source: IPolicyBlock, + output: PolicyOutputEventType, + target: IPolicyBlock, + input: PolicyInputEventType, + actor: EventActor + ): PolicyLink { + if (!source || !target) { + return null; + } + if (PolicyComponentsUtils.PolicyAction.has(source.policyId)) { + const policyMap = PolicyComponentsUtils.PolicyAction.get(source.policyId); + if (policyMap.has(target.uuid)) { + const blockMap = policyMap.get(target.uuid); + if (blockMap.has(input)) { + const fn = blockMap.get(input); + return new PolicyLink(input, output, source, target, actor, fn); } } } + return null; } - public static TriggerEvent(event: PolicyEvent): void { - if (PolicyComponentsUtils.BlockEventSubscriptions.has(event.policyId)) { - const policy = PolicyComponentsUtils.BlockEventSubscriptions.get(event.policyId); - if (policy.has(event.target)) { - const block = policy.get(event.target); - if (block.has(event.type)) { - const functions = block.get(event.type); - for (let i = 0; i < functions.length; i++) { - const fn = functions[i]; - fn(event); - } - } - } + public static RegisterLink( + source: IPolicyBlock, + output: PolicyOutputEventType, + target: IPolicyBlock, + input: PolicyInputEventType, + actor: EventActor + ): void { + if (!source || !target) { + PolicyComponentsUtils.logEvents(`link error: ${source?.uuid}(${source?.tag})(${output}) -> ${target?.uuid}(${target?.tag})(${input})`); + return; + } + const link = PolicyComponentsUtils.CreateLink(source, output, target, input, actor); + if (link) { + link.source.addSourceLink(link); + link.target.addTargetLink(link); + PolicyComponentsUtils.logEvents(`link registered: ${source?.uuid}(${source?.tag})(${output}) -> ${target?.uuid}(${target?.tag})(${input})`); + } else { + PolicyComponentsUtils.logEvents(`link error: ${source?.uuid}(${source?.tag})(${output}) -> ${target?.uuid}(${target?.tag})(${input})`); } } @@ -86,7 +110,7 @@ export class PolicyComponentsUtils { let uuid: string; do { uuid = GenerateUUIDv4(); - } while (PolicyComponentsUtils.PolicyBlockMapObject.has(uuid)); + } while (PolicyComponentsUtils.BlockByUUIDMap.has(uuid)); return uuid; } @@ -96,14 +120,14 @@ export class PolicyComponentsUtils { * @param component * @constructor */ - public static RegisterComponent(policyId: string, component: IPolicyBlock): void { - PolicyComponentsUtils.PolicyBlockMapObject.set(component.uuid, component); - let tagMap; - if (!this.PolicyTagMapObject.has(policyId)) { + private static RegisterComponent(policyId: string, component: IPolicyBlock): void { + PolicyComponentsUtils.BlockByUUIDMap.set(component.uuid, component); + let tagMap: PolicyTagMap; + if (!this.BlockUUIDByTagMap.has(policyId)) { tagMap = new Map(); - this.PolicyTagMapObject.set(policyId, tagMap); + this.BlockUUIDByTagMap.set(policyId, tagMap); } else { - tagMap = this.PolicyTagMapObject.get(policyId); + tagMap = this.BlockUUIDByTagMap.get(policyId); } if (component.tag) { if (tagMap.has(component.tag)) { @@ -114,8 +138,125 @@ export class PolicyComponentsUtils { if (component.blockClassName === 'ExternalData') { PolicyComponentsUtils.ExternalDataBlocks.set(component.uuid, component); } + } + + public static BuildInstance( + policy: Policy, + policyId: string, + block: ISerializedBlock, + parent: IPolicyBlock, + allInstances: IPolicyBlock[] + ): IPolicyBlock { + const { blockType, children, ...params }: ISerializedBlockExtend = block; + + if (parent) { + params._parent = parent; + } + + let options = params as any; + if (options.options) { + options = Object.assign(options, options.options); + } + const blockConstructor = GetBlockByType(blockType) as any; + const blockInstance = new blockConstructor( + options.id || PolicyComponentsUtils.GenerateNewUUID(), + options.defaultActive, + options.tag, + options.permissions, + options._parent, + GetOtherOptions(options as PolicyBlockFullArgumentList) + ); + blockInstance.setPolicyId(policyId); + blockInstance.setPolicyOwner(policy.owner); + blockInstance.setPolicyInstance(policy); + blockInstance.setTopicId(policy.topicId); + + allInstances.push(blockInstance); + + if (children && children.length) { + for (let child of children) { + PolicyComponentsUtils.BuildInstance( + policy, policyId, child, blockInstance, allInstances + ); + } + } + + return blockInstance; + } + + public static BuildBlockTree( + policy: Policy, + policyId: string, + allInstances: IPolicyBlock[] + + ): IPolicyInterfaceBlock { + const configObject = policy.config as ISerializedBlock; + const model = PolicyComponentsUtils.BuildInstance( + policy, policyId, configObject, null, allInstances + ); + + return model as any; + } + + public static async RegisterBlockTree(allInstances: IPolicyBlock[]) { + for (let instance of allInstances) { + PolicyComponentsUtils.RegisterComponent(instance.policyId, instance); + + for (let event of instance.actions) { + PolicyComponentsUtils.RegisterAction(instance, event[0], event[1]); + } + + await instance.beforeInit(); + } - component.start(); + for (let instance of allInstances) { + await instance.afterInit(); + await PolicyComponentsUtils.RegisterDefaultEvent(instance); + await PolicyComponentsUtils.RegisterCustomEvent(instance); + } + } + + private static async RegisterDefaultEvent(instance: IPolicyBlock) { + if (!instance.options.stopPropagation) { + PolicyComponentsUtils.RegisterLink( + instance, PolicyOutputEventType.RunEvent, + instance.next, PolicyInputEventType.RunEvent, + EventActor.EventInitiator + ); + } + if (instance.parent?.blockClassName === 'ContainerBlock') { + const parent = instance.parent as IPolicyContainerBlock; + PolicyComponentsUtils.RegisterLink( + instance, PolicyOutputEventType.RefreshEvent, + parent, PolicyInputEventType.RefreshEvent, + EventActor.EventInitiator + ); + } + if (instance.parent?.blockType === 'interfaceStepBlock') { + PolicyComponentsUtils.RegisterLink( + instance, PolicyOutputEventType.RunEvent, + instance.parent, PolicyInputEventType.ReleaseEvent, + EventActor.EventInitiator + ); + } + } + + private static async RegisterCustomEvent(instance: IPolicyBlock) { + for (let event of instance.events) { + if (!event.disabled) { + if (event.source == instance.tag) { + const target = PolicyComponentsUtils.GetBlockByTag(instance.policyId, event.target); + PolicyComponentsUtils.RegisterLink(instance, event.output, target, event.input, event.actor); + } else if (event.target == instance.tag) { + const source = PolicyComponentsUtils.GetBlockByTag(instance.policyId, event.source); + PolicyComponentsUtils.RegisterLink(source, event.output, instance, event.input, event.actor); + } else { + const target = PolicyComponentsUtils.GetBlockByTag(instance.policyId, event.target); + const source = PolicyComponentsUtils.GetBlockByTag(instance.policyId, event.source); + PolicyComponentsUtils.RegisterLink(source, event.output, target, event.input, event.actor); + } + } + } } /** @@ -136,7 +277,7 @@ export class PolicyComponentsUtils { * @param uuid */ public static IfUUIDRegistered(uuid: string): boolean { - return PolicyComponentsUtils.PolicyBlockMapObject.has(uuid); + return PolicyComponentsUtils.BlockByUUIDMap.has(uuid); } /** @@ -146,7 +287,7 @@ export class PolicyComponentsUtils { * @param user */ public static IfHasPermission(uuid: string, role: PolicyRole, user: IAuthUser | null): boolean { - const block = PolicyComponentsUtils.PolicyBlockMapObject.get(uuid); + const block = PolicyComponentsUtils.BlockByUUIDMap.get(uuid); return block.hasPermission(role, user); } @@ -155,7 +296,7 @@ export class PolicyComponentsUtils { * @param uuid */ public static GetBlockByUUID(uuid: string): T { - return PolicyComponentsUtils.PolicyBlockMapObject.get(uuid) as T; + return PolicyComponentsUtils.BlockByUUIDMap.get(uuid) as T; } /** @@ -164,7 +305,7 @@ export class PolicyComponentsUtils { * @param tag */ public static GetBlockByTag(policyId: string, tag: string): IPolicyBlock { - return PolicyComponentsUtils.PolicyBlockMapObject.get(this.PolicyTagMapObject.get(policyId).get(tag)); + return PolicyComponentsUtils.BlockByUUIDMap.get(this.BlockUUIDByTagMap.get(policyId).get(tag)); } /** @@ -175,36 +316,6 @@ export class PolicyComponentsUtils { return target[STATE_KEY]; } - /** - * Configure new block instance - * @param policyId - * @param blockType - * @param options - * @param skipRegistration - */ - public static ConfigureBlock(policyId: string, blockType: string, - options: Partial, - skipRegistration?: boolean): any { - if (options.options) { - options = Object.assign(options, options.options); - } - const blockConstructor = GetBlockByType(blockType) as any; - const instance = new blockConstructor( - options.id || PolicyComponentsUtils.GenerateNewUUID(), - options.defaultActive, - options.tag, - options.permissions, - options.dependencies, - options._parent, - GetOtherOptions(options as PolicyBlockFullArgumentList) - ); - instance.setPolicyId(policyId); - if (!skipRegistration) { - PolicyComponentsUtils.RegisterComponent(policyId, instance); - } - return instance; - } - /** * Return block instance reference * @param obj @@ -220,4 +331,8 @@ export class PolicyComponentsUtils { public static GetBlockUniqueOptionsObject(obj: any): { [key: string]: any } { return obj.options; } -} \ No newline at end of file + + public static GetBlockAbout(): any { + return GetBlockAbout(); + } +} diff --git a/guardian-service/src/policy-engine/policy-converter-utils.ts b/guardian-service/src/policy-engine/policy-converter-utils.ts new file mode 100644 index 0000000000..3496034dc2 --- /dev/null +++ b/guardian-service/src/policy-engine/policy-converter-utils.ts @@ -0,0 +1,201 @@ +import { Policy } from "@entity/policy"; +import { UserType } from "@guardian/interfaces"; +import { EventConfig, PolicyInputEventType, PolicyOutputEventType, EventActor } from "./interfaces"; + +export class PolicyConverterUtils { + public static readonly VERSION = '1.2.0'; + + public static PolicyConverter(policy: Policy): Policy { + if (policy.codeVersion === PolicyConverterUtils.VERSION) { + return policy; + } + + policy.config = PolicyConverterUtils.BlockConverter(policy.config); + policy.codeVersion = PolicyConverterUtils.VERSION; + return policy; + } + + private static BlockConverter( + block: any, + parent?: any, + index?: any, + next?: any, + prev?: any + ): any { + + block = PolicyConverterUtils.v1_0_0(block, parent, index, next, prev); + block = PolicyConverterUtils.v1_1_0(block, parent, index, next, prev); + block = PolicyConverterUtils.v1_2_0(block, parent, index, next, prev); + + if (block.children && block.children.length) { + for (let i = 0; i < block.children.length; i++) { + block.children[i] = PolicyConverterUtils.BlockConverter( + block.children[i], block, i, block.children[i + 1], block.children[i - 1] + ); + } + } + return block; + } + + private static v1_0_0( + block: any, + parent?: any, + index?: any, + next?: any, + prev?: any + ): any { + switch (block.blockType) { + case 'interfaceDocumentsSource': + block.blockType = 'interfaceDocumentsSourceBlock'; + break; + case 'requestVcDocument': + block.blockType = 'requestVcDocumentBlock'; + break; + case 'sendToGuardian': + block.blockType = 'sendToGuardianBlock'; + break; + case 'interfaceAction': + block.blockType = 'interfaceActionBlock'; + break; + case 'mintDocument': + block.blockType = 'mintDocumentBlock'; + break; + case 'aggregateDocument': + block.blockType = 'aggregateDocumentBlock'; + break; + case 'wipeDocument': + block.blockType = 'retirementDocumentBlock'; + break; + } + return block; + } + + private static v1_1_0( + block: any, + parent?: any, + index?: any, + next?: any, + prev?: any + ): any { + if (!block.events) { + block.events = []; + if (block.dependencies && block.dependencies.length) { + for (let dep of block.dependencies) { + const refresh: EventConfig = { + output: PolicyOutputEventType.RefreshEvent, + input: PolicyInputEventType.RefreshEvent, + source: dep, + target: block.tag, + disabled: false, + actor: null + } + block.events.push(refresh); + } + } + // if(block.followUser) { + // } + } + if (block.blockType == 'interfaceActionBlock') { + if (block.type == 'selector' && + block.uiMetaData && + block.uiMetaData.options + ) { + const options: any[] = block.uiMetaData.options; + for (let i = 0; i < options.length; i++) { + if (!options[i].tag) { + options[i].tag = `Option_${i}`; + } + const run: EventConfig = { + output: options[i].tag, + input: PolicyInputEventType.RunEvent, + source: block.tag, + target: options[i].bindBlock, + disabled: false, + actor: (options[i].user === UserType.CURRENT ? + EventActor.EventInitiator : + EventActor.Owner) + } + block.events.push(run); + } + } + if (block.type == 'dropdown') { + const run: EventConfig = { + output: PolicyOutputEventType.DropdownEvent, + input: PolicyInputEventType.RunEvent, + source: block.tag, + target: block.bindBlock, + disabled: false, + actor: null + } + block.events.push(run); + } + } + if (block.blockType == 'switchBlock') { + if (block.conditions) { + const conditions: any[] = block.conditions; + for (let i = 0; i < conditions.length; i++) { + if (!conditions[i].tag) { + conditions[i].tag = `Condition_${i}`; + } + const run: EventConfig = { + output: conditions[i].tag, + input: PolicyInputEventType.RunEvent, + source: block.tag, + target: conditions[i].bindBlock, + disabled: false, + actor: null + } + block.events.push(run); + } + } + } + if (block.blockType == 'aggregateDocumentBlock') { + if (block.timer) { + const timer: EventConfig = { + output: PolicyOutputEventType.TimerEvent, + input: PolicyInputEventType.RunEvent, + source: block.timer, + target: block.tag, + disabled: false, + actor: null + } + block.events.push(timer); + } + } + return block; + } + + private static v1_2_0( + block: any, + parent?: any, + index?: any, + next?: any, + prev?: any + ): any { + if (block.blockType == 'interfaceActionBlock') { + if (block.type == 'selector') { + if (!block.uiMetaData) { + block.uiMetaData = {}; + } + block.blockType = 'buttonBlock'; + block.uiMetaData.buttons = []; + if (block.uiMetaData.options) { + const options: any[] = block.uiMetaData.options; + for (let i = 0; i < options.length; i++) { + block.uiMetaData.buttons.push({ + tag: options[i].tag, + name: options[i].name, + type: 'selector', + filters: [], + field: block.field, + value: options[i].value, + uiClass: options[i].uiClass + }); + } + delete block.uiMetaData.options; + } + } + } + return block; + } +} diff --git a/guardian-service/src/policy-engine/policy-engine.interface.ts b/guardian-service/src/policy-engine/policy-engine.interface.ts index 2eef2d8642..c267437eeb 100644 --- a/guardian-service/src/policy-engine/policy-engine.interface.ts +++ b/guardian-service/src/policy-engine/policy-engine.interface.ts @@ -1,6 +1,8 @@ -import { PolicyRole } from 'interfaces'; +import { PolicyRole } from '@guardian/interfaces'; import { IAuthUser } from '@auth/auth.interface'; import { PolicyValidationResultsContainer } from '@policy-engine/policy-validation-results-container'; +import { PolicyInputEventType, PolicyOutputEventType } from './interfaces/policy-event-type'; +import { EventConfig, IPolicyEvent } from './interfaces'; export interface IPolicyRoles { [policyId: string]: string; @@ -11,7 +13,6 @@ export interface ISerializedBlock { defaultActive: boolean; tag?: string; permissions: string[]; - dependencies?: string[]; uuid?: string; children?: ISerializedBlock[]; } @@ -33,24 +34,42 @@ export interface IPolicyBlock { policyId: string; policyOwner: string; policyInstance: any; - changeStep?: (user: IAuthUser, data: any, target: IPolicyBlock) => Promise; - checkDataStateDiffer?: (user) => boolean + topicId: string; + + readonly actions: any[]; + readonly outputActions: any[]; + readonly events: EventConfig[]; + + readonly next: IPolicyBlock; + + + setPolicyId(id: string): void; + + setPolicyOwner(did: string): void; + + setPolicyInstance(policy: any): void; + + setTopicId(id: string): void; + + getChild(uuid: string): IPolicyBlock; + + getChildIndex(uuid: string): number; + + getNextChild(uuid: string): IPolicyBlock; + + checkDataStateDiffer?: (user: IAuthUser) => boolean serialize(): ISerializedBlock; updateBlock(state: any, user: IAuthUser, tag?: string): any; - hasPermission(role: PolicyRole | null, user: IAuthUser | null); + hasPermission(role: PolicyRole | null, user: IAuthUser | null): any; registerChild(child: IPolicyBlock): void; - destroy(); + destroy(): void; - validate(resultsContainer: PolicyValidationResultsContainer); - - runNext(user: IAuthUser, data: any); - - runTarget(user: IAuthUser, data: any, target: AnyBlockType) + validate(resultsContainer: PolicyValidationResultsContainer): void; isChildActive(child: AnyBlockType, user: IAuthUser): boolean; @@ -62,13 +81,21 @@ export interface IPolicyBlock { warn(message: string): void; - start(); - - callDependencyCallbacks(user: IAuthUser); + triggerEvents(eventType: PolicyOutputEventType, user?: IAuthUser, data?: any): void; - callParentContainerCallback(user: IAuthUser); + triggerEvent(event: any, user?: IAuthUser, data?: any): void; saveState(): Promise; + + beforeInit(): Promise; + + afterInit(): Promise; + + addSourceLink(link: any): void; + + addTargetLink(link: any): void; + + runAction(event: IPolicyEvent): Promise; } export interface IPolicyInterfaceBlock extends IPolicyBlock { @@ -77,18 +104,34 @@ export interface IPolicyInterfaceBlock extends IPolicyBlock { setData(user: IAuthUser | null, data: any): Promise; getData(user: IAuthUser | null, uuid: string, queryParams?: any): Promise; + + updateDataState(user: IAuthUser, data: any): boolean; } export interface IPolicyContainerBlock extends IPolicyBlock { getData(user: IAuthUser | null, uuid: string, queryParams?: any): Promise; + + changeStep(user: IAuthUser, data: any, target: IPolicyBlock): Promise; + + isLast(target: IPolicyBlock): boolean; + + isCyclic(): boolean; + + getLast(): IPolicyBlock; + + getFirst(): IPolicyBlock; } export interface IPolicySourceBlock extends IPolicyBlock { getData(user: IAuthUser | null, uuid: string, queryParams?: any): Promise; + getChildFiltersAddons(): IPolicyBlock[]; + getFiltersAddons(): IPolicyBlock[]; - getSources(user: IAuthUser, sliceData?: any): Promise + getSources(user: IAuthUser, globalFilters: any, paginationData: any): Promise; + + getGlobalSources(user: IAuthUser, paginationData: any): Promise; getCommonAddons(): IPolicyBlock[]; } @@ -100,9 +143,9 @@ export interface IPolicyAddonBlock extends IPolicyBlock { getData(user: IAuthUser | null, uuid: string, queryParams?: any): Promise; - getSources(user: IAuthUser): any; + getSources(user: IAuthUser, globalFilters: any): any; - getFromSource(user: IAuthUser): any; + getFromSource(user: IAuthUser, globalFilters: any): any; getFilters(user: IAuthUser): { [key: string]: string }; diff --git a/guardian-service/src/policy-engine/policy-engine.service.ts b/guardian-service/src/policy-engine/policy-engine.service.ts index 0c0d5773ff..cf4cd0b98a 100644 --- a/guardian-service/src/policy-engine/policy-engine.service.ts +++ b/guardian-service/src/policy-engine/policy-engine.service.ts @@ -4,8 +4,9 @@ import { SchemaStatus, TopicType, ModelHelper, - SchemaHelper -} from 'interfaces'; + SchemaHelper, + Schema +} from '@guardian/interfaces'; import { findAllEntities, replaceAllEntities, @@ -24,21 +25,22 @@ import { } from './policy-engine.interface'; import { Schema as SchemaCollection } from '@entity/schema'; import { VcDocument as VcDocumentCollection } from '@entity/vc-document'; -import { incrementSchemaVersion, publishSchema } from '@api/schema.service'; +import { incrementSchemaVersion, findAndPublishSchema, publishSchema, publishSystemSchema } from '@api/schema.service'; import { PolicyImportExportHelper } from './helpers/policy-import-export-helper'; import { VcHelper } from '@helpers/vcHelper'; import { Users } from '@helpers/users'; import { Inject } from '@helpers/decorators/inject'; -import { Logger } from 'logger-helper'; import { Policy } from '@entity/policy'; -import { getConnection, getMongoRepository } from 'typeorm'; +import { getMongoRepository } from 'typeorm'; import { DeepPartial } from 'typeorm/common/DeepPartial'; import { IAuthUser } from '@auth/auth.interface'; import { PolicyComponentsUtils } from './policy-components-utils'; import { BlockTreeGenerator } from './block-tree-generator'; import { Topic } from '@entity/topic'; import { TopicHelper } from '@helpers/topicHelper'; -import { MessageBrokerChannel, MessageResponse, MessageError, BinaryMessageResponse } from 'common'; +import { MessageBrokerChannel, MessageResponse, MessageError, BinaryMessageResponse, Logger } from '@guardian/common'; +import { PolicyConverterUtils } from './policy-converter-utils'; +import { PolicyUtils } from './helpers/utils'; export class PolicyEngineService { @Inject() @@ -74,12 +76,26 @@ export class PolicyEngineService { const policy = await getMongoRepository(Policy).findOne(block.policyId) const role = policy.registeredUsers[user.did]; + let changed = true; + if (PolicyComponentsUtils.IfUUIDRegistered(uuid) && PolicyComponentsUtils.IfHasPermission(uuid, role, user)) { - await this.channel.request(['api-gateway', 'update-block'].join('.'), { - uuid, - state, - user - }) + if ([ + 'interfaceStepBlock', + 'interfaceContainerBlock' + ].includes(block.blockType)) { + changed = true; + } else if (typeof PolicyComponentsUtils.GetBlockRef(block).getData === 'function') { + const data = await PolicyComponentsUtils.GetBlockRef(block).getData(user, null, null); + changed = PolicyComponentsUtils.GetBlockRef(block).updateDataState(user, data); + } + + if (changed) { + await this.channel.request(['api-gateway', 'update-block'].join('.'), { + uuid, + state, + user + }); + } } } @@ -96,6 +112,8 @@ export class PolicyEngineService { } private async createPolicy(data: Policy, owner: string): Promise { + const logger = new Logger(); + logger.info('Create Policy', ['GUARDIAN_SERVICE']); const model = getMongoRepository(Policy).create(data as DeepPartial); if (!model.config) { model.config = { @@ -129,11 +147,11 @@ export class PolicyEngineService { let newTopic: Topic; const root = await this.users.getHederaAccount(owner); - if (model.topicId) { - const topic = await getMongoRepository(Topic).findOne({ topicId: model.topicId }); - } else { + if (!model.topicId) { + logger.info('Create Policy: Create New Topic', ['GUARDIAN_SERVICE']); const parent = await getMongoRepository(Topic).findOne({ owner: owner, type: TopicType.UserTopic }); const topicHelper = new TopicHelper(root.hederaAccountId, root.hederaAccountKey); + const topic = await topicHelper.create({ type: TopicType.PolicyTopic, name: model.name || TopicType.PolicyTopic, @@ -151,11 +169,31 @@ export class PolicyEngineService { .setTopicObject(parent) .sendMessage(message); - await topicHelper.link(topic, parent, messageStatus.getId()); + await topicHelper.twoWayLink(topic, parent, messageStatus.getId()); + + const systemSchemas = new Array(4); + systemSchemas[0] = await PolicyUtils.getSystemSchema(SchemaEntity.POLICY); + systemSchemas[1] = await PolicyUtils.getSystemSchema(SchemaEntity.MINT_TOKEN); + systemSchemas[2] = await PolicyUtils.getSystemSchema(SchemaEntity.MINT_NFTOKEN); + systemSchemas[3] = await PolicyUtils.getSystemSchema(SchemaEntity.WIPE_TOKEN); + + for (let i = 0; i < systemSchemas.length; i++) { + logger.info('Create Policy: Publish System Schema', ['GUARDIAN_SERVICE']); + messageServer.setTopicObject(topic); + const schema = systemSchemas[i]; + schema.creator = owner; + schema.owner = owner; + const item = await publishSystemSchema(schema, messageServer, MessageAction.PublishSystemSchema); + const newItem = getMongoRepository(SchemaCollection).create(item); + await getMongoRepository(SchemaCollection).save(newItem); + } + newTopic = topic; } + model.codeVersion = PolicyConverterUtils.VERSION; const policy = await getMongoRepository(Policy).save(model); + if (newTopic) { newTopic.policyId = policy.id.toString(); newTopic.policyUUID = policy.uuid; @@ -178,22 +216,31 @@ export class PolicyEngineService { return await getMongoRepository(Policy).save(model); } - private async publishSchemes(model: Policy, owner: string): Promise { - const schemaIRIs = findAllEntities(model.config, SchemaFields); + private async publishSchemas(model: Policy, owner: string): Promise { + const schemas = await getMongoRepository(SchemaCollection).find({ topicId: model.topicId }); + const schemaIRIs = schemas.map(s => s.iri); for (let i = 0; i < schemaIRIs.length; i++) { const schemaIRI = schemaIRIs[i]; const schema = await incrementSchemaVersion(schemaIRI, owner); if (schema.status == SchemaStatus.PUBLISHED) { continue; } - const newSchema = await publishSchema(schema.id, schema.version, owner); + const newSchema = await findAndPublishSchema(schema.id, schema.version, owner); replaceAllEntities(model.config, SchemaFields, schemaIRI, newSchema.iri); } return model; } private async publishPolicy(model: Policy, owner: string, version: string): Promise { - model = await this.publishSchemes(model, owner); + const logger = new Logger(); + logger.info('Publish Policy', ['GUARDIAN_SERVICE']); + + const root = await this.users.getHederaAccount(owner); + const topic = await getMongoRepository(Topic).findOne({ topicId: model.topicId }); + const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey) + .setTopicObject(topic); + + model = await this.publishSchemas(model, owner); model.status = 'PUBLISH'; model.version = version; @@ -201,10 +248,6 @@ export class PolicyEngineService { const zip = await PolicyImportExportHelper.generateZipFile(model); const buffer = await zip.generateAsync({ type: 'arraybuffer' }); - const root = await this.users.getHederaAccount(owner); - const topic = await getMongoRepository(Topic).findOne({ topicId: model.topicId }); - const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey); - const topicHelper = new TopicHelper(root.hederaAccountId, root.hederaAccountKey); const rootTopic = await topicHelper.create({ type: TopicType.InstancePolicyTopic, @@ -217,18 +260,19 @@ export class PolicyEngineService { const message = new PolicyMessage(MessageType.InstancePolicy, MessageAction.PublishPolicy); message.setDocument(model, buffer); - const result = await messageServer.setTopicObject(topic).sendMessage(message); + const result = await messageServer.sendMessage(message); model.messageId = result.getId(); model.instanceTopicId = rootTopic.topicId; - await topicHelper.link(rootTopic, topic, result.getId()); + await topicHelper.twoWayLink(rootTopic, topic, result.getId()); const messageId = result.getId(); const url = result.getUrl(); - const policySchema = await getMongoRepository(SchemaCollection).findOne({ entity: SchemaEntity.POLICY }); + + const policySchema = await PolicyUtils.getSchema(model.topicId, SchemaEntity.POLICY); + const vcHelper = new VcHelper(); - const credentialSubject = { - ...SchemaHelper.getContext(policySchema), + let credentialSubject: any = { id: messageId, name: model.name, description: model.description, @@ -241,6 +285,11 @@ export class PolicyEngineService { uuid: model.uuid, operation: 'PUBLISH' } + if (policySchema) { + const schemaObject = new Schema(policySchema); + credentialSubject = SchemaHelper.updateObjectContext(schemaObject, credentialSubject); + } + const vc = await vcHelper.createVC(owner, root.hederaAccountKey, credentialSubject); const doc = getMongoRepository(VcDocumentCollection).create({ hash: vc.toCredentialHash(), @@ -251,6 +300,8 @@ export class PolicyEngineService { }); await getMongoRepository(VcDocumentCollection).save(doc); + logger.info('Published Policy', ['GUARDIAN_SERVICE']); + return await getMongoRepository(Policy).save(model); } @@ -317,7 +368,7 @@ export class PolicyEngineService { return new MessageResponse({ policies, count }); } catch (error) { - return new MessageError(error.message); + return new MessageError(error); } }); @@ -332,7 +383,7 @@ export class PolicyEngineService { }); return new MessageResponse(policies); } catch (error) { - return new MessageError(error.message); + return new MessageError(error); } }); @@ -342,9 +393,9 @@ export class PolicyEngineService { delete result.registeredUsers; return new MessageResponse(result); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -400,9 +451,8 @@ export class PolicyEngineService { errors }); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - console.error(error.message); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -416,8 +466,8 @@ export class PolicyEngineService { policy }); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -428,9 +478,9 @@ export class PolicyEngineService { const userFull = await this.users.getUser(user.username); return new MessageResponse(await block.getData(userFull, block.uuid)); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.error(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -441,8 +491,8 @@ export class PolicyEngineService { const data = await (PolicyComponentsUtils.GetBlockByUUID(blockId) as IPolicyInterfaceBlock).getData(userFull, blockId, null) return new MessageResponse(data); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -453,8 +503,8 @@ export class PolicyEngineService { const result = await (PolicyComponentsUtils.GetBlockByUUID(blockId) as IPolicyInterfaceBlock).setData(userFull, data) return new MessageResponse(result); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -465,7 +515,7 @@ export class PolicyEngineService { const block = PolicyComponentsUtils.GetBlockByTag(policyId, tag); return new MessageResponse({ id: block.uuid }); } catch (error) { - return new MessageError(error.message); + return new MessageError(error); } }); @@ -482,8 +532,8 @@ export class PolicyEngineService { } return new MessageResponse(parents); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -499,9 +549,9 @@ export class PolicyEngineService { console.log("File size: " + file.byteLength); return new BinaryMessageResponse(file); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); + new Logger().error(error, ['GUARDIAN_SERVICE']); console.log(error); - return new MessageError(error.message); + return new MessageError(error); } }); @@ -521,8 +571,8 @@ export class PolicyEngineService { owner: policy.owner }); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -536,8 +586,9 @@ export class PolicyEngineService { const policyToImport = await PolicyImportExportHelper.parseZipFile(Buffer.from(zip.data)); return new MessageResponse(policyToImport); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + console.log(error, error.message); + return new MessageError(error); } }); @@ -547,14 +598,15 @@ export class PolicyEngineService { if (!zip) { throw new Error('file in body is empty'); } + new Logger().info(`Import policy by file`, ['GUARDIAN_SERVICE']); const userFull = await this.users.getUser(user.username); const policyToImport = await PolicyImportExportHelper.parseZipFile(Buffer.from(zip.data)); const policy = await PolicyImportExportHelper.importPolicy(policyToImport, userFull.did); const policies = await getMongoRepository(Policy).find({ owner: userFull.did }); return new MessageResponse(policies); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -566,6 +618,8 @@ export class PolicyEngineService { throw new Error('Policy ID in body is empty'); } + new Logger().info(`Import policy by message`, ['GUARDIAN_SERVICE']); + const root = await this.users.getHederaAccount(userFull.did); const messageServer = new MessageServer(root.hederaAccountId, root.hederaAccountKey); const message = await messageServer.getMessage(messageId); @@ -601,8 +655,8 @@ export class PolicyEngineService { return new MessageResponse(policyToImport); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -631,8 +685,8 @@ export class PolicyEngineService { const policies = await getMongoRepository(Policy).find({ owner: userFull.did }); return new MessageResponse(policies); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); } }); @@ -641,8 +695,18 @@ export class PolicyEngineService { await PolicyComponentsUtils.ReceiveExternalData(msg); return new MessageResponse(true); } catch (error) { - new Logger().error(error.toString(), ['GUARDIAN_SERVICE']); - return new MessageError(error.message); + new Logger().error(error, ['GUARDIAN_SERVICE']); + return new MessageError(error); + } + }); + + + this.channel.response(PolicyEngineEvents.BLOCK_ABOUT, async (msg) => { + try { + const about = PolicyComponentsUtils.GetBlockAbout(); + return new MessageResponse(about); + } catch (error) { + return new MessageError(error); } }); } diff --git a/guardian-service/system-schemas/system-schemas.json b/guardian-service/system-schemas/system-schemas.json new file mode 100644 index 0000000000..e6285548b4 --- /dev/null +++ b/guardian-service/system-schemas/system-schemas.json @@ -0,0 +1,433 @@ +[ + { + "uuid": "MintNFToken", + "name": "MintNFToken", + "entity": "MINT_NFTOKEN", + "document": { + "$id": "#MintNFToken", + "$comment": "{ \"term\": \"MintNFToken\", \"@id\": \"undefined#MintNFToken\" }", + "title": "MintNFToken", + "description": "MintNFToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "serials": { + "$comment": "{\"term\": \"serials\", \"@id\": \"https://www.schema.org/text\"}", + "title": "serials", + "description": "serials", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "serials", + "tokenId" + ], + "additionalProperties": false + } + }, + { + "uuid": "MintToken", + "name": "MintToken", + "entity": "MINT_TOKEN", + "document": { + "$id": "#MintToken&1.0.0", + "$comment": "{ \"term\": \"MintToken&1.0.0\", \"@id\": \"undefined#MintToken&1.0.0\" }", + "title": "MintToken", + "description": "MintToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "amount": { + "$comment": "{\"term\": \"amount\", \"@id\": \"https://www.schema.org/text\"}", + "title": "amount", + "description": "amount", + "type": "string", + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "amount", + "tokenId" + ], + "additionalProperties": false + } + }, + { + "uuid": "Policy", + "name": "Policy", + "entity": "POLICY", + "document": { + "$id": "#Policy&1.0.0", + "$comment": "{ \"term\": \"Policy&1.0.0\", \"@id\": \"undefined#Policy&1.0.0\" }", + "title": "Policy", + "description": "Policy", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "$comment": "{\"term\": \"name\", \"@id\": \"https://www.schema.org/text\"}", + "title": "name", + "description": "name", + "type": "string", + "readOnly": false + }, + "description": { + "$comment": "{\"term\": \"description\", \"@id\": \"https://www.schema.org/text\"}", + "title": "description", + "description": "description", + "type": "string", + "readOnly": false + }, + "topicDescription": { + "$comment": "{\"term\": \"topicDescription\", \"@id\": \"https://www.schema.org/text\"}", + "title": "topicDescription", + "description": "topicDescription", + "type": "string", + "readOnly": false + }, + "version": { + "$comment": "{\"term\": \"version\", \"@id\": \"https://www.schema.org/text\"}", + "title": "version", + "description": "version", + "type": "string", + "readOnly": false + }, + "policyTag": { + "$comment": "{\"term\": \"policyTag\", \"@id\": \"https://www.schema.org/text\"}", + "title": "policyTag", + "description": "policyTag", + "type": "string", + "readOnly": false + }, + "owner": { + "$comment": "{\"term\": \"owner\", \"@id\": \"https://www.schema.org/text\"}", + "title": "owner", + "description": "owner", + "type": "string", + "readOnly": false + }, + "cid": { + "$comment": "{\"term\": \"cid\", \"@id\": \"https://www.schema.org/text\"}", + "title": "cid", + "description": "cid", + "type": "string", + "readOnly": false + }, + "url": { + "$comment": "{\"term\": \"url\", \"@id\": \"https://www.schema.org/text\"}", + "title": "url", + "description": "url", + "type": "string", + "readOnly": false + }, + "uuid": { + "$comment": "{\"term\": \"uuid\", \"@id\": \"https://www.schema.org/text\"}", + "title": "uuid", + "description": "uuid", + "type": "string", + "readOnly": false + }, + "operation": { + "$comment": "{\"term\": \"operation\", \"@id\": \"https://www.schema.org/text\"}", + "title": "operation", + "description": "operation", + "type": "string", + "readOnly": false + } + }, + "required": [ + "name", + "description", + "topicDescription", + "version", + "policyTag", + "owner", + "cid", + "url", + "uuid", + "operation" + ], + "additionalProperties": false + } + }, + { + "uuid": "StandardRegistry", + "name": "StandardRegistry", + "entity": "STANDARD_REGISTRY", + "document": { + "$id": "#StandardRegistry&1.0.0", + "$comment": "{ \"term\": \"StandardRegistry&1.0.0\", \"@id\": \"undefined#StandardRegistry&1.0.0\" }", + "title": "StandardRegistry", + "description": "StandardRegistry", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "geography": { + "$comment": "{\"term\": \"geography\", \"@id\": \"https://www.schema.org/text\"}", + "title": "geography", + "description": "geography", + "type": "string", + "readOnly": false + }, + "law": { + "$comment": "{\"term\": \"law\", \"@id\": \"https://www.schema.org/text\"}", + "title": "law", + "description": "law", + "type": "string", + "readOnly": false + }, + "tags": { + "$comment": "{\"term\": \"tags\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tags", + "description": "tags", + "type": "string", + "readOnly": false + }, + "ISIC": { + "$comment": "{\"term\": \"ISIC\", \"@id\": \"https://www.schema.org/text\"}", + "title": "ISIC", + "description": "ISIC", + "type": "string", + "readOnly": false + } + }, + "required": [ + "geography", + "law", + "tags" + ], + "additionalProperties": false + } + }, + { + "uuid": "WipeToken", + "name": "WipeToken", + "entity": "WIPE_TOKEN", + "document": { + "$id": "#WipeToken&1.0.0", + "$comment": "{ \"term\": \"WipeToken&1.0.0\", \"@id\": \"undefined#WipeToken&1.0.0\" }", + "title": "WipeToken", + "description": "WipeToken", + "type": "object", + "properties": { + "@context": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "type": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "readOnly": true + }, + "id": { + "type": "string", + "readOnly": true + }, + "date": { + "$comment": "{\"term\": \"date\", \"@id\": \"https://www.schema.org/text\"}", + "title": "date", + "description": "date", + "type": "string", + "readOnly": false + }, + "amount": { + "$comment": "{\"term\": \"amount\", \"@id\": \"https://www.schema.org/text\"}", + "title": "amount", + "description": "amount", + "type": "string", + "readOnly": false + }, + "tokenId": { + "$comment": "{\"term\": \"tokenId\", \"@id\": \"https://www.schema.org/text\"}", + "title": "tokenId", + "description": "tokenId", + "type": "string", + "readOnly": false + } + }, + "required": [ + "date", + "amount", + "tokenId" + ], + "additionalProperties": false + } + } +] \ No newline at end of file diff --git a/guardian-service/system-schemes/system-schemes.json b/guardian-service/system-schemes/system-schemes.json deleted file mode 100644 index b9c12fa933..0000000000 --- a/guardian-service/system-schemes/system-schemes.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "MINT_NFTOKEN": "1648050452.168946122", - "MINT_TOKEN": "1648050464.170190891", - "POLICY": "1648050474.194518992", - "ROOT_AUTHORITY": "1648050485.461249427", - "WIPE_TOKEN": "1648050495.614894000" -} \ No newline at end of file diff --git a/guardian-service/tests/api/approve.service.test.js b/guardian-service/tests/api/approve.service.test.js index 88047ace5b..14a3601aad 100644 --- a/guardian-service/tests/api/approve.service.test.js +++ b/guardian-service/tests/api/approve.service.test.js @@ -1,9 +1,20 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const rewire = require("rewire"); const { ApprovalDocument } = require("../../dist/entity/approval-document"); -const { ApplicationState, MessageResponse } = require("common"); +const { ApplicationState, MessageResponse } = require("@guardian/common"); const state = new ApplicationState(); state.updateState('READY'); diff --git a/guardian-service/tests/api/config.service.test.js b/guardian-service/tests/api/config.service.test.js index de71933179..544290edc9 100644 --- a/guardian-service/tests/api/config.service.test.js +++ b/guardian-service/tests/api/config.service.test.js @@ -1,8 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const rewire = require("rewire"); -const { ApplicationState } = require("common"); +const { ApplicationState } = require("@guardian/common"); const { Settings } = require("../../dist/entity/settings"); const { Topic } = require("../../dist/entity/topic"); const state = new ApplicationState(); @@ -30,7 +41,7 @@ class MockLogger { } } -configAPIModule.__set__('logger_helper_1', { +configAPIModule.__set__('common_1', { Logger: MockLogger }); diff --git a/guardian-service/tests/api/documents.service.test.js b/guardian-service/tests/api/documents.service.test.js index cf5918c686..e12176ab9a 100644 --- a/guardian-service/tests/api/documents.service.test.js +++ b/guardian-service/tests/api/documents.service.test.js @@ -1,8 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const rewire = require("rewire"); -const { ApplicationState } = require("common"); +const { ApplicationState } = require("@guardian/common"); const { DidDocument } = require("../../dist/entity/did-document"); const { VcDocument } = require("../../dist/entity/vc-document"); const { VpDocument } = require("../../dist/entity/vp-document"); diff --git a/guardian-service/tests/api/loader.service.test.js b/guardian-service/tests/api/loader.service.test.js index 2fac01d7d0..64bbd9e22b 100644 --- a/guardian-service/tests/api/loader.service.test.js +++ b/guardian-service/tests/api/loader.service.test.js @@ -1,8 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const rewire = require("rewire"); -const { ApplicationState } = require("common"); +const { ApplicationState } = require("@guardian/common"); const { DidDocument } = require("../../dist/entity/did-document"); const { Schema } = require("../../dist/entity/schema"); const state = new ApplicationState(); @@ -30,7 +41,7 @@ class MockLogger { } } -loaderAPIModule.__set__('logger_helper_1', { +loaderAPIModule.__set__('common_1', { Logger: MockLogger }); diff --git a/guardian-service/tests/api/profile.service.test.js b/guardian-service/tests/api/profile.service.test.js index de83813a98..5b192008bd 100644 --- a/guardian-service/tests/api/profile.service.test.js +++ b/guardian-service/tests/api/profile.service.test.js @@ -1,8 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const rewire = require("rewire"); -const { ApplicationState } = require("common"); +const { ApplicationState } = require("@guardian/common"); const state = new ApplicationState(); state.updateState('READY'); @@ -166,7 +177,7 @@ profileAPIModule.__set__('_hedera_modules_1', { CreateDID: 'CreateDID' } }); -profileAPIModule.__set__('logger_helper_1', { +profileAPIModule.__set__('common_1', { Logger: MockLogger }); profileAPIModule.__set__('topicHelper_1', { diff --git a/guardian-service/tests/api/schema.service.test.js b/guardian-service/tests/api/schema.service.test.js index 92d6a95377..98ffd48577 100644 --- a/guardian-service/tests/api/schema.service.test.js +++ b/guardian-service/tests/api/schema.service.test.js @@ -1,9 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require("module-alias"); +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const rewire = require("rewire"); const schemaAPIModule = rewire("../../dist/api/schema.service"); const topicHelperModule = rewire("../../dist/helpers/topicHelper.js") -const { ApplicationState } = require("common"); +const { ApplicationState } = require("@guardian/common"); const state = new ApplicationState(); state.updateState('READY'); @@ -119,7 +129,7 @@ describe('Schema Service API', function () { schemaAPIModule.__set__('users_1', { Users: MockUsers, }); - schemaAPIModule.__set__('logger_helper_1', { + schemaAPIModule.__set__('common_1', { Logger: MockLogger }); schemaAPIModule.__set__('typeorm_1', { diff --git a/guardian-service/tests/unit-tests/approve.test.js b/guardian-service/tests/unit-tests/approve.test.js index 8dab38230b..0cdfc1d7be 100644 --- a/guardian-service/tests/unit-tests/approve.test.js +++ b/guardian-service/tests/unit-tests/approve.test.js @@ -1,8 +1,19 @@ -require('module-alias/register'); +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const { approveAPI } = require('../../dist/api/approve.service'); -const { ApplicationState, ApplicationStates } = require('interfaces'); +const { ApplicationState, ApplicationStates } = require('@guardian/interfaces'); const { createChannel, diff --git a/guardian-service/tests/unit-tests/blocks/block-tree-generator.test.js b/guardian-service/tests/unit-tests/blocks/block-tree-generator.test.js index aa02999372..f6c87c7667 100644 --- a/guardian-service/tests/unit-tests/blocks/block-tree-generator.test.js +++ b/guardian-service/tests/unit-tests/blocks/block-tree-generator.test.js @@ -1,6 +1,17 @@ -require('module-alias/register'); +const moduleAlias = require('module-alias'); const rewire = require("rewire"); +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const {Inject} = rewire('../../../dist/helpers/decorators/inject'); const { BlockTreeGenerator } = require("../../../dist/policy-engine/block-tree-generator"); diff --git a/guardian-service/tests/unit-tests/blocks/information-block.test.js b/guardian-service/tests/unit-tests/blocks/information-block.test.js index 7fa79d3ff9..f42db5e936 100644 --- a/guardian-service/tests/unit-tests/blocks/information-block.test.js +++ b/guardian-service/tests/unit-tests/blocks/information-block.test.js @@ -1,4 +1,16 @@ -require('module-alias/register'); +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const {assert} = require('chai'); describe('Information block', function() { diff --git a/guardian-service/tests/unit-tests/blocks/policy-components-utils.test.js b/guardian-service/tests/unit-tests/blocks/policy-components-utils.test.js index 8385a7fa87..4567ff00f9 100644 --- a/guardian-service/tests/unit-tests/blocks/policy-components-utils.test.js +++ b/guardian-service/tests/unit-tests/blocks/policy-components-utils.test.js @@ -1,4 +1,16 @@ -require('module-alias/register'); +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const rewire = require("rewire"); const {Inject} = rewire('../../../dist/helpers/decorators/inject'); diff --git a/guardian-service/tests/unit-tests/config.test.js b/guardian-service/tests/unit-tests/config.test.js index db6594026f..ea6b00de5d 100644 --- a/guardian-service/tests/unit-tests/config.test.js +++ b/guardian-service/tests/unit-tests/config.test.js @@ -1,3 +1,16 @@ +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const { expect, assert } = require('chai'); const { configAPI } = require('../../dist/api/config.service'); const { @@ -6,7 +19,7 @@ const { checkMessage, checkError } = require('./helper'); -const { ApplicationState, ApplicationStates } = require('interfaces'); +const { ApplicationState, ApplicationStates } = require('@guardian/interfaces'); describe('Config service', function () { let service, channel, settingsRepository, topicRepository; diff --git a/guardian-service/tests/unit-tests/document-loader/did-document-loader.test.js b/guardian-service/tests/unit-tests/document-loader/did-document-loader.test.js index 4556e03a88..da792c9f4e 100644 --- a/guardian-service/tests/unit-tests/document-loader/did-document-loader.test.js +++ b/guardian-service/tests/unit-tests/document-loader/did-document-loader.test.js @@ -1,4 +1,15 @@ -require('module-alias/register'); +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); describe('DidDocumentLoader', function () { it('Create', async function () { diff --git a/guardian-service/tests/unit-tests/documents.test.js b/guardian-service/tests/unit-tests/documents.test.js index bba006f84f..c733ecacd0 100644 --- a/guardian-service/tests/unit-tests/documents.test.js +++ b/guardian-service/tests/unit-tests/documents.test.js @@ -1,4 +1,15 @@ -require("module-alias/register"); +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); const { expect, assert } = require('chai'); const { documentsAPI } = require('../../dist/api/documents.service'); const { @@ -7,7 +18,7 @@ const { checkMessage, checkError } = require('./helper'); -const { ApplicationState, ApplicationStates } = require('interfaces'); +const { ApplicationState, ApplicationStates } = require('@guardian/interfaces'); describe('Documents service', function () { let channel; diff --git a/guardian-service/tests/unit-tests/dump/vc_document.js b/guardian-service/tests/unit-tests/dump/vc_document.js index 3d9a80a5da..aac4acb3d8 100644 --- a/guardian-service/tests/unit-tests/dump/vc_document.js +++ b/guardian-service/tests/unit-tests/dump/vc_document.js @@ -13,7 +13,7 @@ module.exports.vc_document = [{ 'id': '4cb4a454-74f5-4b30-853d-524e36174614', 'type': [ 'VerifiableCredential', - 'RootAuthority' + 'StandardRegistry' ], 'credentialSubject': [ { @@ -21,7 +21,7 @@ module.exports.vc_document = [{ 'https://localhost/schema' ], 'id': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'type': 'RootAuthority', + 'type': 'StandardRegistry', 'name': '2' } ], @@ -35,7 +35,7 @@ module.exports.vc_document = [{ 'jws': 'eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..r9CsVgVkY448yyxrXPQ5VlY9Ey9-6FrH9lhd26_dwsn6dak0nVEUuGeCUQqkjt7iaAAOqbKU6Aqw1i7bR-UJCA' } }, - 'type': 'ROOT_AUTHORITY', + 'type': 'STANDARD_REGISTRY', 'signature': 1, 'status': 'ISSUE', 'createDate': { diff --git a/guardian-service/tests/unit-tests/loader.test.js b/guardian-service/tests/unit-tests/loader.test.js index 8cd94e78e3..df32a5b20b 100644 --- a/guardian-service/tests/unit-tests/loader.test.js +++ b/guardian-service/tests/unit-tests/loader.test.js @@ -1,10 +1,23 @@ +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const { expect, assert } = require('chai'); const { loaderAPI } = require('../../dist/api/loader.service'); const { DIDDocumentLoader } = require('../../dist/document-loader/did-document-loader'); const { ContextDocumentLoader } = require('../../dist/document-loader/context-loader'); const { VCSchemaLoader } = require('../../dist/document-loader/vc-schema-loader'); const { SubjectSchemaLoader } = require('../../dist/document-loader/subject-schema-loader'); -const { ApplicationState, ApplicationStates } = require('interfaces'); +const { ApplicationState, ApplicationStates } = require('@guardian/interfaces'); const { createChannel, diff --git a/guardian-service/tests/unit-tests/mockup/trust-chain.service.js b/guardian-service/tests/unit-tests/mockup/trust-chain.service.js index 1aec4a7063..567e8cf680 100644 --- a/guardian-service/tests/unit-tests/mockup/trust-chain.service.js +++ b/guardian-service/tests/unit-tests/mockup/trust-chain.service.js @@ -434,7 +434,7 @@ module.exports.testObject1 = [ 'id': '4cb4a454-74f5-4b30-853d-524e36174614', 'type': [ 'VerifiableCredential', - 'RootAuthority' + 'StandardRegistry' ], 'credentialSubject': [ { @@ -442,7 +442,7 @@ module.exports.testObject1 = [ 'https://localhost/schema' ], 'id': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'type': 'RootAuthority', + 'type': 'StandardRegistry', 'name': '2' } ], @@ -457,8 +457,8 @@ module.exports.testObject1 = [ } }, 'owner': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'schema': 'RootAuthority', - 'entity': 'RootAuthority', + 'schema': 'StandardRegistry', + 'entity': 'StandardRegistry', 'label': 'HASH', 'tag': 'Account Creation' } @@ -897,14 +897,15 @@ module.exports.testObject2 = [ 'id': '4cb4a454-74f5-4b30-853d-524e36174614', 'type': [ 'VerifiableCredential', - 'RootAuthority' + 'StandardRegistry' ], 'credentialSubject': [ { '@context': [ 'https://localhost/schema' ], - 'id': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', 'type': 'RootAuthority', + 'id': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', + 'type': 'StandardRegistry', 'name': '2' } ], @@ -919,8 +920,8 @@ module.exports.testObject2 = [ } }, 'owner': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'schema': 'RootAuthority', - 'entity': 'RootAuthority', + 'schema': 'StandardRegistry', + 'entity': 'StandardRegistry', 'label': 'HASH', 'tag': 'Account Creation' } @@ -1102,7 +1103,7 @@ module.exports.testObject3 = [ 'id': '4cb4a454-74f5-4b30-853d-524e36174614', 'type': [ 'VerifiableCredential', - 'RootAuthority' + 'StandardRegistry' ], 'credentialSubject': [ { @@ -1110,7 +1111,7 @@ module.exports.testObject3 = [ 'https://localhost/schema' ], 'id': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'type': 'RootAuthority', + 'type': 'StandardRegistry', 'name': '2' } ], @@ -1125,8 +1126,8 @@ module.exports.testObject3 = [ } }, 'owner': 'did:hedera:testnet:x719ZpApzxdFA23aUFsDLVjyNHPMeMcYpAcYBmW8nVn;hedera:testnet:fid=0.0.2859201', - 'schema': 'RootAuthority', - 'entity': 'RootAuthority', + 'schema': 'StandardRegistry', + 'entity': 'StandardRegistry', 'label': 'HASH', 'tag': 'Account Creation' } diff --git a/guardian-service/tests/unit-tests/trust-chain.test.js b/guardian-service/tests/unit-tests/trust-chain.test.js index 1be17eccca..d37104824e 100644 --- a/guardian-service/tests/unit-tests/trust-chain.test.js +++ b/guardian-service/tests/unit-tests/trust-chain.test.js @@ -1,3 +1,16 @@ +const moduleAlias = require('module-alias'); + +moduleAlias.addAliases({ + "@api": process.cwd() + '/dist' + "/api", + "@entity": process.cwd() + '/dist' + "/entity", + "@subscribers": process.cwd() + '/dist' + "dist/subscribers", + "@helpers": process.cwd() + '/dist' + "/helpers", + "@auth": process.cwd() + '/dist' + "/auth", + "@policy-engine": process.cwd() + '/dist' + "/policy-engine", + "@hedera-modules": process.cwd() + '/dist' + "/hedera-modules/index", + "@document-loader": process.cwd() + '/dist' + "/document-loader" +}); + const { expect, assert } = require('chai'); const { trustChainAPI } = require('../../dist/api/trust-chain.service'); const { did_document } = require('./dump/did_document'); @@ -10,7 +23,7 @@ const { checkMessage, checkError } = require('./helper'); -const { ApplicationState, ApplicationStates } = require('interfaces'); +const { ApplicationState, ApplicationStates } = require('@guardian/interfaces'); describe('Trust Chain service', function () { let service, channel; diff --git a/interfaces/package-lock.json b/interfaces/package-lock.json index c9f11e8b85..35cbeda9ca 100644 --- a/interfaces/package-lock.json +++ b/interfaces/package-lock.json @@ -1,12 +1,12 @@ { - "name": "interfaces", - "version": "2.0.0", + "name": "@guardian/interfaces", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "interfaces", - "version": "2.0.0", + "name": "@guardian/interfaces", + "version": "2.1.0", "license": "Apache-2.0", "dependencies": { "reflect-metadata": "^0.1.13" diff --git a/interfaces/package.json b/interfaces/package.json index 91ff2ac587..d28645f037 100644 --- a/interfaces/package.json +++ b/interfaces/package.json @@ -16,12 +16,14 @@ "license": "Apache-2.0", "main": "dist/index.js", "module": "dist/index.js", - "name": "interfaces", + "name": "@guardian/interfaces", "scripts": { + "prepare": "npm run build", "build": "tsc", "dev": "tsc -w", "lint": "tslint --project .", "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/interfaces/src/helpers/field-types-dictionary.ts b/interfaces/src/helpers/field-types-dictionary.ts new file mode 100644 index 0000000000..2f5a568e3a --- /dev/null +++ b/interfaces/src/helpers/field-types-dictionary.ts @@ -0,0 +1,83 @@ +export class FieldTypesDictionary { + public static readonly FieldTypes = [ + { + name: "Number", + type: 'number', + format: undefined, + pattern: undefined, + isRef: false + }, + { + name: "Integer", + type: 'integer', + format: undefined, + pattern: undefined, + isRef: false + }, + { + name: "String", + type: 'string', + format: undefined, + pattern: undefined, + isRef: false + }, + { + name: "Boolean", + type: 'boolean', + format: undefined, + pattern: undefined, + isRef: false + }, + { + name: "Date", + type: 'string', + format: 'date', + pattern: undefined, + isRef: false + }, + { + name: "Time", + type: 'string', + format: 'time', + pattern: undefined, + isRef: false + }, + { + name: "DateTime", + type: 'string', + format: 'date-time', + pattern: undefined, + isRef: false + }, + { + name: "Duration", + type: 'string', + format: 'duration', + pattern: undefined, + isRef: false + }, + { + name: "URL", + type: 'string', + format: 'url', + pattern: undefined, + isRef: false + }, + { + name: "Email", + type: 'string', + format: 'email', + pattern: undefined, + isRef: false + }, + { + name: "Image", + type: 'string', + format: undefined, + pattern: '^((https):\/\/)?ipfs.io\/ipfs\/.+', + isRef: false + } + ]; + + public static readonly MeasureFieldTypes = [] +} \ No newline at end of file diff --git a/interfaces/src/helpers/schema-helper.ts b/interfaces/src/helpers/schema-helper.ts index 3605627bb3..c4e7f5b825 100644 --- a/interfaces/src/helpers/schema-helper.ts +++ b/interfaces/src/helpers/schema-helper.ts @@ -136,6 +136,8 @@ export class SchemaHelper { const format = isRef || !property.format ? null : String(property.format); const pattern = isRef || !property.pattern ? null : String(property.pattern); const readOnly = !!property.readOnly; + const unit = isRef || !property.unit ? null : String(property.unit); + const unitSystem = isRef || !property.unitSystem ? null : String(property.unitSystem); fields.push({ name: name, title: title, @@ -143,6 +145,8 @@ export class SchemaHelper { type: ref, format: format, pattern: pattern, + unit: unit, + unitSystem: unitSystem, required: !!required[name], isRef: isRef, isArray: isArray, @@ -300,6 +304,12 @@ export class SchemaHelper { if (field.pattern) { item.pattern = field.pattern; } + if (field.unit) { + item.unit = field.unit; + } + if (field.unitSystem) { + item.unitSystem = field.unitSystem; + } } if (field.required) { required.push(field.name); @@ -454,11 +464,11 @@ export class SchemaHelper { return true; } - public static findRefs(target: Schema, schemes: Schema[]) { + public static findRefs(target: Schema, schemas: Schema[]) { const map = {}; const schemaMap = {}; - for (let i = 0; i < schemes.length; i++) { - const element = schemes[i]; + for (let i = 0; i < schemas.length; i++) { + const element = schemas[i]; schemaMap[element.iri] = element.document; } for (let i = 0; i < target.fields.length; i++) { @@ -542,4 +552,41 @@ export class SchemaHelper { return schema; } } + + private static _clearFieldsContext(json: any): any { + delete json.type; + delete json['@context']; + + const keys = Object.keys(json); + for (const key of keys) { + if (Object.prototype.toString.call(json[key]) === '[object Object]') { + json[key] = this._clearFieldsContext(json[key]); + } + } + + return json; + } + + private static _updateFieldsContext(fields: SchemaField[], json: any): any { + if (Object.prototype.toString.call(json) !== '[object Object]') { + return json; + } + for (const field of fields) { + const value = json[field.name]; + if (field.isRef && value) { + this._updateFieldsContext(field.fields, value); + value.type = field.context.type; + value['@context'] = field.context.context; + } + } + return json; + } + + public static updateObjectContext(schema: Schema, json: any): any { + json = this._clearFieldsContext(json); + json = this._updateFieldsContext(schema.fields, json); + json.type = schema.type; + json['@context'] = [schema.contextURL]; + return json; + } } diff --git a/interfaces/src/index.ts b/interfaces/src/index.ts index 44a26fbcd5..7601884ab1 100644 --- a/interfaces/src/index.ts +++ b/interfaces/src/index.ts @@ -10,7 +10,7 @@ export { RootState } from './type/root-state.type'; export { PolicyEngineEvents } from './type/policy-engine-events'; export { SchemaEntity } from './type/schema-entity.type'; export { UserRole, PolicyRole } from './type/user-role.type'; -export { MessageAPI } from './type/message-api.type'; +export * from './type/message-api.type'; export { IApprovalDocument } from './interface/approval-document.interface'; export { ICredentialSubject } from './interface/credential-subject.interface'; export { IDidObject } from './interface/did-object.interface'; @@ -47,4 +47,6 @@ export { UserType } from './type/user.type'; export { IDidDocument } from './interface/did-document'; export { IVerificationMethod } from './interface/verification-method'; export { ApplicationStates } from './type/application-states.type'; +export { FieldTypesDictionary } from './helpers/field-types-dictionary'; +export { UnitSystem } from './type/unit-system.type'; export * from './interface/messages'; \ No newline at end of file diff --git a/interfaces/src/interface/log.interface.ts b/interfaces/src/interface/log.interface.ts index eda8c64037..9e3d44ee3f 100644 --- a/interfaces/src/interface/log.interface.ts +++ b/interfaces/src/interface/log.interface.ts @@ -4,4 +4,5 @@ export interface ILog { message?: string; type: LogType; attributes?: string[]; + level?: number; } \ No newline at end of file diff --git a/interfaces/src/interface/messages/account.message.ts b/interfaces/src/interface/messages/account.message.ts index 9d44e901bc..c640f25ccb 100644 --- a/interfaces/src/interface/messages/account.message.ts +++ b/interfaces/src/interface/messages/account.message.ts @@ -28,7 +28,7 @@ export interface IGetAllUserResponse { did: string; } -export interface IRootAuthorityUserResponse { +export interface IStandardRegistryUserResponse { username: string; did: string; } diff --git a/interfaces/src/interface/schema-document.interface.ts b/interfaces/src/interface/schema-document.interface.ts index 32654f7bd0..8290f709ad 100644 --- a/interfaces/src/interface/schema-document.interface.ts +++ b/interfaces/src/interface/schema-document.interface.ts @@ -30,6 +30,8 @@ export interface ISchemaDocument { format?: SchemaDataFormat; pattern?: string; readOnly?: boolean; + unit?: string, + unitSystem?: string, properties?: { [x: string]: ISchemaDocument; } diff --git a/interfaces/src/interface/schema-field.interface.ts b/interfaces/src/interface/schema-field.interface.ts index b3ddaa3d75..c269ed872f 100644 --- a/interfaces/src/interface/schema-field.interface.ts +++ b/interfaces/src/interface/schema-field.interface.ts @@ -13,6 +13,8 @@ export interface SchemaField { readOnly: boolean; fields?: SchemaField[]; conditions?: SchemaCondition[]; + unit?: string, + unitSystem?: string, context?: { type: string; context: string; diff --git a/interfaces/src/interface/schema.interface.ts b/interfaces/src/interface/schema.interface.ts index 612f377706..73a13d6a13 100644 --- a/interfaces/src/interface/schema.interface.ts +++ b/interfaces/src/interface/schema.interface.ts @@ -26,4 +26,6 @@ export interface ISchema { isCreator?: boolean; relationships?: string; category?: SchemaCategory; + system?: boolean; + active?: boolean; } diff --git a/interfaces/src/interface/user.interface.ts b/interfaces/src/interface/user.interface.ts index 7f18bd0fb7..5d59869df4 100644 --- a/interfaces/src/interface/user.interface.ts +++ b/interfaces/src/interface/user.interface.ts @@ -17,6 +17,7 @@ export interface IUser { walletToken?: string; did?: string; topicId?: string; + parentTopicId?: string; parent?: string; didDocument?: IDidObject; vcDocument?: IVCDocument; diff --git a/interfaces/src/interface/vc-document.interface.ts b/interfaces/src/interface/vc-document.interface.ts index 5fef5d4c56..1855cb67d6 100644 --- a/interfaces/src/interface/vc-document.interface.ts +++ b/interfaces/src/interface/vc-document.interface.ts @@ -10,6 +10,7 @@ export interface IVCDocument { createDate?: Date; updateDate?: Date; hederaStatus?: DocumentStatus; + comment?: string; type: string; signature?: number; policyId: string; diff --git a/interfaces/src/models/schema.ts b/interfaces/src/models/schema.ts index 396483c7f7..fdc9ee6fa6 100644 --- a/interfaces/src/models/schema.ts +++ b/interfaces/src/models/schema.ts @@ -30,7 +30,8 @@ export class Schema implements ISchema { public fields: SchemaField[]; public conditions: SchemaCondition[]; public previousVersion: string; - + public active?: boolean; + public system?: boolean; private userDID: string; constructor(schema?: ISchema) { @@ -44,6 +45,8 @@ export class Schema implements ISchema { this.entity = schema.entity || SchemaEntity.NONE; this.status = schema.status || SchemaStatus.DRAFT; this.readonly = schema.readonly || false; + this.system = schema.system || false; + this.active = schema.active || false; this.version = schema.version || ""; this.creator = schema.creator || ""; this.owner = schema.owner || ""; @@ -85,6 +88,8 @@ export class Schema implements ISchema { this.entity = SchemaEntity.NONE; this.status = SchemaStatus.DRAFT; this.readonly = false; + this.system = false; + this.active = false; this.document = null; this.context = null; this.version = ""; @@ -144,6 +149,8 @@ export class Schema implements ISchema { clone.entity = this.entity; clone.status = this.status; clone.readonly = this.readonly; + clone.system = this.system; + clone.active = this.active; clone.document = this.document; clone.context = this.context; clone.version = this.version; @@ -173,7 +180,7 @@ export class Schema implements ISchema { this.document = SchemaHelper.buildDocument(this, fields, conditions); } - public updateRefs(schemes: Schema[]): void { - this.document.$defs = SchemaHelper.findRefs(this, schemes); + public updateRefs(schemas: Schema[]): void { + this.document.$defs = SchemaHelper.findRefs(this, schemas); } } diff --git a/interfaces/src/type/auth-events.ts b/interfaces/src/type/auth-events.ts index 2cee45c5bb..3dc495eca4 100644 --- a/interfaces/src/type/auth-events.ts +++ b/interfaces/src/type/auth-events.ts @@ -1,15 +1,15 @@ export enum AuthEvents { - GET_USER_BY_TOKEN = 'get-user-by-token', - REGISTER_NEW_USER = 'register-new-user', - GENERATE_NEW_TOKEN = 'generate_new_token', - GET_ALL_USER_ACCOUNTS = 'get-all-users', - GET_ALL_USER_ACCOUNTS_DEMO = 'get-all-users-demo', - GET_ALL_ROOT_AUTHORITY_ACCOUNTS = 'get-all-root-authority-demo', - GET_USER = 'get-user', - GET_USER_BY_ID = 'get-user-by-id', - GET_USERS_BY_ID = 'get-users-by-id', - GET_USERS_BY_ROLE = 'get-users-by-role', - UPDATE_USER = 'update-user', - SAVE_USER = 'save-user', - GET_ALL_ROOT_AUTHORITY = 'GET_ALL_ROOT_AUTHORITY' + GET_USER_BY_TOKEN = 'GET_USER_BY_TOKEN', + REGISTER_NEW_USER = 'REGISTER_NEW_USER', + GENERATE_NEW_TOKEN = 'GENERATE_NEW_TOKEN', + GET_ALL_USER_ACCOUNTS = 'GET_ALL_USER_ACCOUNTS', + GET_ALL_USER_ACCOUNTS_DEMO = 'GET_ALL_USER_ACCOUNTS_DEMO', + GET_ALL_STANDARD_REGISTRY_ACCOUNTS = 'GET_ALL_STANDARD_REGISTRY_ACCOUNTS', + GET_USER = 'GET_USER', + GET_USER_BY_ID = 'GET_USER_BY_ID', + GET_USERS_BY_ID = 'GET_USERS_BY_ID', + GET_USERS_BY_ROLE = 'GET_USERS_BY_ROLE', + UPDATE_USER = 'UPDATE_USER', + SAVE_USER = 'SAVE_USER', + GET_ALL_STANDARD_REGISTRY = 'GET_ALL_STANDARD_REGISTRY' } diff --git a/interfaces/src/type/message-api.type.ts b/interfaces/src/type/message-api.type.ts index 362f7e0ed5..7ad19ecabf 100644 --- a/interfaces/src/type/message-api.type.ts +++ b/interfaces/src/type/message-api.type.ts @@ -3,7 +3,7 @@ export enum MessageAPI { GET_VC_DOCUMENTS = 'get-vc-documents', SET_DID_DOCUMENT = 'set-did-document', SET_VC_DOCUMENT = 'set-vc-document', - GET_SCHEMES = 'get-schemes', + GET_SCHEMAS = 'get-schemas', GET_TOKENS = 'get-tokens', SET_TOKEN = 'set-token', IMPORT_TOKENS = 'import-tokens', @@ -17,7 +17,7 @@ export enum MessageAPI { GET_CHAIN = 'get-chain', SET_VP_DOCUMENT = 'set-vp-document', IMPORT_SCHEMA = 'import-schema', - EXPORT_SCHEMES = 'export-schema', + EXPORT_SCHEMAS = 'export-schema', PUBLISH_SCHEMA = 'publish-schema', UNPUBLISHED_SCHEMA = 'unpublished-schema', DELETE_SCHEMA = 'delete-schema', @@ -26,8 +26,8 @@ export enum MessageAPI { IPFS_GET_FILE = 'ipfs-get-file', GET_SCHEMA = 'get-schema', GENERATE_DEMO_KEY = 'GENERATE_DEMO_KEY', - IMPORT_SCHEMES_BY_MESSAGES = 'IMPORT_SCHEMES_BY_MESSAGES', - IMPORT_SCHEMES_BY_FILE = 'IMPORT_SCHEMES_BY_FILE', + IMPORT_SCHEMAS_BY_MESSAGES = 'IMPORT_SCHEMAS_BY_MESSAGES', + IMPORT_SCHEMAS_BY_FILE = 'IMPORT_SCHEMAS_BY_FILE', INCREMENT_SCHEMA_VERSION = 'INCREMENT_SCHEMA_VERSION', UPDATE_SETTINGS = 'UPDATE_SETTINGS', GET_SETTINGS = 'GET_SETTINGS', @@ -38,14 +38,25 @@ export enum MessageAPI { ASSOCIATE_TOKEN = 'ASSOCIATE_TOKEN', GET_ASSOCIATED_TOKENS = 'GET_ASSOCIATED_TOKENS', GET_INFO_TOKEN = 'GET_INFO_TOKEN', - CREATE_ROOT_AUTHORITY='CREATE_ROOT_AUTHORITY', - CREATE_USER_PROFILE='CREATE_USER_PROFILE', - GET_USER_BALANCE='GET_USER_BALANCE', + CREATE_STANDARD_REGISTRY = 'CREATE_STANDARD_REGISTRY', + CREATE_USER_PROFILE = 'CREATE_USER_PROFILE', + GET_USER_BALANCE = 'GET_USER_BALANCE', GET_TOPIC = 'GET_TOPIC', GET_ATTRIBUTES = 'GET_ATTRIBUTES', GET_STATUS = 'GET_STATUS', UPDATE_STATUS = 'UPDATE_STATUS', CREATE_SCHEMA = 'CREATE_SCHEMA', UPDATE_SCHEMA = 'UPDATE_SCHEMA', - GET_USER_ROLES = 'GET_USER_ROLES' + GET_USER_ROLES = 'GET_USER_ROLES', + CREATE_SYSTEM_SCHEMA = 'CREATE_SYSTEM_SCHEMA', + GET_SYSTEM_SCHEMAS = 'GET_SYSTEM_SCHEMAS', + ACTIVE_SCHEMA = 'ACTIVE_SCHEMA', + GET_SYSTEM_SCHEMA = 'GET_SYSTEM_SCHEMA' } + +export enum ExternalMessageEvents { + IPFS_ADDED_FILE = "external-events.ipfs_added_file", + TOKEN_MINTED = 'external-events.token_minted', + ERROR_LOG = 'external-events.error_logs', + BLOCK_RUN_EVENTS = 'external-events.block_run_action_event', +} \ No newline at end of file diff --git a/interfaces/src/type/policy-engine-events.ts b/interfaces/src/type/policy-engine-events.ts index 71b20615d8..cb8fa3e357 100644 --- a/interfaces/src/type/policy-engine-events.ts +++ b/interfaces/src/type/policy-engine-events.ts @@ -16,5 +16,6 @@ export enum PolicyEngineEvents { POLICY_IMPORT_MESSAGE = 'policy-import-message', GET_POLICIES = 'get-policies', GET_POLICY = 'get-policy', - GET_BLOCK_PARENTS = 'get-block-parents' + GET_BLOCK_PARENTS = 'get-block-parents', + BLOCK_ABOUT = 'block-about' } diff --git a/interfaces/src/type/schema-entity.type.ts b/interfaces/src/type/schema-entity.type.ts index 385ee508ec..21a01b771e 100644 --- a/interfaces/src/type/schema-entity.type.ts +++ b/interfaces/src/type/schema-entity.type.ts @@ -1,14 +1,10 @@ export enum SchemaEntity { NONE = 'NONE', - INSTALLER = 'INSTALLER', - INVERTER = 'INVERTER', + VC = 'VC', MRV = 'MRV', - TOKEN = 'TOKEN', - ROOT_AUTHORITY = 'ROOT_AUTHORITY', - MINT = 'MINT', - RETIREMENT = 'RETIREMENT', + STANDARD_REGISTRY = 'STANDARD_REGISTRY', + USER = 'USER', POLICY = 'POLICY', - POLICY_IMPORTED = 'POLICY_IMPORTED', MINT_TOKEN = 'MINT_TOKEN', WIPE_TOKEN = 'WIPE_TOKEN', MINT_NFTOKEN = 'MINT_NFTOKEN' diff --git a/interfaces/src/type/unit-system.type.ts b/interfaces/src/type/unit-system.type.ts new file mode 100644 index 0000000000..4f2f435671 --- /dev/null +++ b/interfaces/src/type/unit-system.type.ts @@ -0,0 +1,4 @@ +export enum UnitSystem { + Postfix = 'postfix', + Prefix = 'prefix' +} \ No newline at end of file diff --git a/interfaces/src/type/user-role.type.ts b/interfaces/src/type/user-role.type.ts index 049f8f8800..14fbf695fa 100644 --- a/interfaces/src/type/user-role.type.ts +++ b/interfaces/src/type/user-role.type.ts @@ -1,7 +1,7 @@ export enum UserRole { - ROOT_AUTHORITY = 'ROOT_AUTHORITY', + STANDARD_REGISTRY = 'STANDARD_REGISTRY', USER = 'USER', AUDITOR = 'AUDITOR' } -export type PolicyRole = 'NO_ROLE' | 'OWNER' | 'ANY_ROLE' | 'ROOT_AUTHORITY' | string; +export type PolicyRole = 'NO_ROLE' | 'OWNER' | 'ANY_ROLE' | 'STANDARD_REGISTRY' | string; diff --git a/interfaces/tsconfig.json b/interfaces/tsconfig.json index a10534fb71..e79f0d31c3 100644 --- a/interfaces/tsconfig.json +++ b/interfaces/tsconfig.json @@ -1,9 +1,8 @@ { "compilerOptions": { "module": "commonjs", - "target": "es6", + "target": "es5", "lib": [ - "dom", "es5", "es6" ], diff --git a/ipfs-client/Dockerfile b/ipfs-client/Dockerfile index a201ef3425..29b0aa433c 100644 --- a/ipfs-client/Dockerfile +++ b/ipfs-client/Dockerfile @@ -5,28 +5,23 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build - -WORKDIR /usr/logger-helper -COPY ./logger-helper/package*.json ./ -COPY ./logger-helper/tsconfig.json ./ +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz RUN npm install -ADD ./logger-helper/src ./src/. -RUN npm run build +RUN npm pack WORKDIR /usr/ipfs-client COPY ./ipfs-client/package*.json ./ COPY ./ipfs-client/tsconfig.json ./ COPY ./ipfs-client/.env.docker ./.env +RUN npm install --force /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install --force ADD ./ipfs-client/src ./src/. RUN npm run build diff --git a/ipfs-client/package-lock.json b/ipfs-client/package-lock.json index 3113805ff3..7ec7d17ff2 100644 --- a/ipfs-client/package-lock.json +++ b/ipfs-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "ipfs-client", - "version": "2.1.0", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ipfs-client", - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "@web-std/fetch": "3.0.0", @@ -19,7 +19,6 @@ "fs-extra": "^10.0.0", "interfaces": "file:../interfaces", "js-yaml": "^4.1.0", - "logger-helper": "file:../logger-helper", "mathjs": "^10.1.0", "module-alias": "^2.2.2", "mongodb": "^4.2.1", @@ -40,7 +39,7 @@ } }, "../common": { - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "interfaces": "file:../interfaces", @@ -55,7 +54,7 @@ } }, "../interfaces": { - "version": "2.1.0", + "version": "2.0.0", "license": "Apache-2.0", "dependencies": { "reflect-metadata": "^0.1.13" @@ -67,20 +66,6 @@ "typescript": "^4.5.5" } }, - "../logger-helper": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "common": "file:../common", - "interfaces": "file:../interfaces" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "node_modules/@assemblyscript/loader": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", @@ -2788,10 +2773,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/logger-helper": { - "resolved": "../logger-helper", - "link": true - }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -7241,17 +7222,6 @@ "is-unicode-supported": "^0.1.0" } }, - "logger-helper": { - "version": "file:../logger-helper", - "requires": { - "@types/node": "^17.0.13", - "common": "file:../common", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", diff --git a/ipfs-client/package.json b/ipfs-client/package.json index ae6bf4b80d..308488d7ec 100644 --- a/ipfs-client/package.json +++ b/ipfs-client/package.json @@ -4,6 +4,8 @@ }, "author": "Envision Blockchain Solutions ", "dependencies": { + "@guardian/common": "^2.2.0-prerelease", + "@guardian/interfaces": "^2.2.0-prerelease", "@web-std/fetch": "3.0.0", "axios": "^0.26.1", "axios-retry": "^3.2.4", @@ -11,16 +13,13 @@ "cross-blob": "^2.0.1", "dotenv": "^16.0.0", "fs-extra": "^10.0.0", - "interfaces": "file:../interfaces", "js-yaml": "^4.1.0", "mathjs": "^10.1.0", "module-alias": "^2.2.2", + "mongodb": "4.2.1", "nft.storage": "^5.2.0", - "mongodb": "^4.2.1", "reflect-metadata": "^0.1.13", - "typeorm": "^0.2.41", - "common":"file:../common", - "logger-helper": "file:../logger-helper" + "typeorm": "^0.2.41" }, "description": "", "devDependencies": { @@ -47,5 +46,6 @@ "start": "node dist/index.js", "test": "mocha tests/**/*.test.js --reporter mocha-junit-reporter --reporter-options mochaFile=../test_results/ipfs-client.xml" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/ipfs-client/src/api/file.service.ts b/ipfs-client/src/api/file.service.ts index cb1af0eeb4..30891b396e 100644 --- a/ipfs-client/src/api/file.service.ts +++ b/ipfs-client/src/api/file.service.ts @@ -4,16 +4,16 @@ import axios from 'axios'; import axiosRetry from 'axios-retry'; import { MongoRepository } from 'typeorm'; import { Settings } from '../entity/settings'; -import { Logger } from 'logger-helper'; import { MessageAPI, + ExternalMessageEvents, CommonSettings, IGetFileMessage, IIpfsSettingsResponse, IAddFileMessage, IFileResponse -} from 'interfaces'; -import { MessageBrokerChannel, MessageError, MessageResponse } from 'common'; +} from '@guardian/interfaces'; +import { MessageBrokerChannel, MessageError, MessageResponse, Logger } from '@guardian/common'; export const IPFS_PUBLIC_GATEWAY = 'https://ipfs.io/ipfs'; @@ -41,12 +41,13 @@ export const fileAPI = async function ( let blob = new Blob([Buffer.from(msg.content, 'base64')]); const cid = await client.storeBlob(blob); const url = `${IPFS_PUBLIC_GATEWAY}/${cid}`; + channel.publish(ExternalMessageEvents.IPFS_ADDED_FILE, { cid, url }); return new MessageResponse({ cid, url },); } - catch (e) { - new Logger().error(e.toString(), ['IPFS_CLIENT']); - return new MessageError(e.message); + catch (error) { + new Logger().error(error, ['IPFS_CLIENT']); + return new MessageError(error); } }) @@ -82,9 +83,9 @@ export const fileAPI = async function ( return new MessageResponse(fileRes.data) } } - catch (e) { - new Logger().error(e.toString(), ['IPFS_CLIENT']); - return new MessageResponse({ error: e.message }); + catch (error) { + new Logger().error(error, ['IPFS_CLIENT']); + return new MessageResponse({ error: error.message }); } }) @@ -116,9 +117,9 @@ export const fileAPI = async function ( client = new NFTStorage({ token: settings.nftApiKey }); return new MessageResponse({}); } - catch (e) { - new Logger().error(e.toString(), ['IPFS_CLIENT']); - return new MessageResponse({ error: e.message }); + catch (error) { + new Logger().error(error, ['IPFS_CLIENT']); + return new MessageResponse({ error: error.message }); } }) diff --git a/ipfs-client/src/app.ts b/ipfs-client/src/app.ts index 4845765646..2b79b934e9 100644 --- a/ipfs-client/src/app.ts +++ b/ipfs-client/src/app.ts @@ -1,8 +1,7 @@ -import { ApplicationStates } from 'interfaces'; -import { Logger } from 'logger-helper'; +import { ApplicationStates } from '@guardian/interfaces'; import { NFTStorage } from 'nft.storage'; import { createConnection } from 'typeorm'; -import { MessageBrokerChannel, ApplicationState } from 'common'; +import { MessageBrokerChannel, ApplicationState, Logger } from '@guardian/common'; import { fileAPI } from './api/file.service'; import { Settings } from './entity/settings'; @@ -29,14 +28,22 @@ Promise.all([ const state = new ApplicationState('IPFS_CLIENT'); const channel = new MessageBrokerChannel(cn, 'ipfs-client'); + new Logger().setChannel(channel); state.setChannel(channel); + + // Check configuration + if (!process.env.NFT_API_KEY || process.env.NFT_API_KEY.length < 20) { + await new Logger().error('You need to fill NFT_API_KEY field in .env file', ['IPFS_CLIENT']); + throw ('You need to fill NFT_API_KEY field in .env file'); + } + /////////////// + state.updateState(ApplicationStates.STARTED); const settingsRepository = db.getMongoRepository(Settings); const nftApiKey = await settingsRepository.findOne({ name: "NFT_API_KEY" }); - new Logger().setChannel(channel); state.updateState(ApplicationStates.INITIALIZING); await fileAPI(channel, new NFTStorage({ token: nftApiKey?.value || process.env.NFT_API_KEY }), settingsRepository); diff --git a/ipfs-client/src/config.ts b/ipfs-client/src/config.ts index 6a6add81f1..e24fdd0d57 100644 --- a/ipfs-client/src/config.ts +++ b/ipfs-client/src/config.ts @@ -1,7 +1,8 @@ +import moduleAlias from 'module-alias'; import dotenv from 'dotenv'; -dotenv.config(); +moduleAlias.addAliases({ + "@api": __dirname + "/api" +}); -if (!process.env.NFT_API_KEY || process.env.NFT_API_KEY.length < 20) { - throw ('You need to fill NFT_API_KEY field in .env file'); -} \ No newline at end of file +dotenv.config(); diff --git a/logger-helper/package-lock.json b/logger-helper/package-lock.json deleted file mode 100644 index 4314e722fb..0000000000 --- a/logger-helper/package-lock.json +++ /dev/null @@ -1,2642 +0,0 @@ -{ - "name": "logger-helper", - "version": "2.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "logger-helper", - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "common": "file:../common", - "interfaces": "file:../interfaces" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "../common": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "interfaces": "file:../interfaces", - "nats": "^2.6.1", - "reflect-metadata": "^0.1.13" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "../interfaces": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "reflect-metadata": "^0.1.13" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", - "dev": true - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true, - "peer": true - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "peer": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "peer": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "peer": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common": { - "resolved": "../common", - "link": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "peer": true - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "peer": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "peer": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "peer": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "peer": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "peer": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/interfaces": { - "resolved": "../interfaces", - "link": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "peer": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "peer": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "peer": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", - "dev": true, - "peer": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.2.0", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha-junit-reporter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz", - "integrity": "sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg==", - "dev": true, - "dependencies": { - "debug": "^2.2.0", - "md5": "^2.1.0", - "mkdirp": "~0.5.1", - "strip-ansi": "^6.0.1", - "xml": "^1.0.0" - }, - "peerDependencies": { - "mocha": ">=2.2.5" - } - }, - "node_modules/mocha-junit-reporter/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mocha-junit-reporter/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "peer": true - }, - "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true, - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "peer": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/tslint/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslint/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true, - "peer": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "peer": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", - "dev": true - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true, - "peer": true - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "peer": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "peer": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "peer": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "peer": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "peer": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "peer": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "peer": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "peer": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "common": { - "version": "file:../common", - "requires": { - "@types/node": "^17.0.13", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "nats": "^2.6.1", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "peer": true - } - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "peer": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "peer": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "peer": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "peer": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "peer": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "peer": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "peer": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "peer": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true, - "peer": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "peer": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "peer": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "peer": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "peer": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "interfaces": { - "version": "file:../interfaces", - "requires": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "peer": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "peer": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "peer": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "peer": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "peer": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "peer": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "peer": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "peer": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "peer": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "peer": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", - "dev": true, - "peer": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.2.0", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - } - }, - "mocha-junit-reporter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz", - "integrity": "sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "md5": "^2.1.0", - "mkdirp": "~0.5.1", - "strip-ansi": "^6.0.1", - "xml": "^1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "peer": true - }, - "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true, - "peer": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "peer": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "peer": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "peer": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "peer": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "peer": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "peer": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "peer": true - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "peer": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "peer": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "peer": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "peer": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true, - "peer": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "peer": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "peer": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "peer": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "peer": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "peer": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "peer": true - } - } -} diff --git a/logger-helper/package.json b/logger-helper/package.json deleted file mode 100644 index 19f75fa800..0000000000 --- a/logger-helper/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "author": "Envision Blockchain Solutions ", - "description": "", - "dependencies": { - "interfaces": "file:../interfaces", - "common": "file:../common" - }, - "devDependencies": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - }, - "files": [ - "dist" - ], - "license": "Apache-2.0", - "main": "dist/index.js", - "module": "dist/index.js", - "name": "logger-helper", - "scripts": { - "build": "tsc", - "dev": "tsc -w", - "lint": "tslint --project .", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "2.1.0" -} diff --git a/logger-helper/src/index.ts b/logger-helper/src/index.ts deleted file mode 100644 index 9e1e2eac1c..0000000000 --- a/logger-helper/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Logger } from './helpers/logger'; \ No newline at end of file diff --git a/logger-helper/tsconfig.json b/logger-helper/tsconfig.json deleted file mode 100644 index f6bda6ab76..0000000000 --- a/logger-helper/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "lib": [ - "es5", - "es6" - ], - "moduleResolution": "node", - "sourceMap": true, - "outDir": "dist/", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "esModuleInterop": true, - "declaration": true, - "skipLibCheck": true, - }, - "include": [ - "src/**/*" - ], - "exclude": [ - "node_modules" - ], - "compileOnSave": true -} diff --git a/logger-helper/tslint.json b/logger-helper/tslint.json deleted file mode 100644 index bf191dc1c7..0000000000 --- a/logger-helper/tslint.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "extends": "tslint:recommended", - "rules": { - "max-line-length": { - "options": [360] - }, - "new-parens": true, - "no-arg": true, - "no-bitwise": false, - "no-conditional-assignment": true, - "no-consecutive-blank-lines": false, - "only-arrow-functions": false, - "no-empty": false, - "no-console": false, - "triple-equals": false, - "prefer-for-of": false, - "max-classes-per-file": false, - "no-shadowed-variable": false, - "prefer-const": false, - "object-literal-shorthand": false, - "no-var-keyword": false, - "one-variable-per-declaration": false, - "no-trailing-whitespace": false, - "unified-signatures": false - }, - "jsRules": { - "max-line-length": { - "options": [120] - } - } -} diff --git a/logger-service/Dockerfile b/logger-service/Dockerfile index beb630f252..ea829b3285 100644 --- a/logger-service/Dockerfile +++ b/logger-service/Dockerfile @@ -5,21 +5,23 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz +RUN npm install +RUN npm pack WORKDIR /usr/logger-service COPY ./logger-service/package*.json ./ COPY ./logger-service/tsconfig.json ./ COPY ./logger-service/.env.docker ./.env +RUN npm install --force /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install --force ADD ./logger-service/src ./src/. RUN npm run build diff --git a/logger-service/nodemon.json b/logger-service/nodemon.json index 8b879fd87b..660aa69975 100644 --- a/logger-service/nodemon.json +++ b/logger-service/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["./dist", "../interfaces/dist", "../common/dist", "../logger-helper/dist"], + "watch": ["./dist", "../interfaces/dist", "../common/dist"], "delay": 2500, "ext": "ts, js", "exec": "node dist/index.js" diff --git a/logger-service/package-lock.json b/logger-service/package-lock.json index 81053371b5..a05f9cd214 100644 --- a/logger-service/package-lock.json +++ b/logger-service/package-lock.json @@ -9,14 +9,14 @@ "version": "2.1.0", "license": "Apache-2.0", "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", "@web-std/fetch": "3.0.0", - "common": "file:../common", "cors": "^2.8.5", "dotenv": "^16.0.0", "fs-extra": "^10.0.0", - "interfaces": "file:../interfaces", "module-alias": "^2.2.2", - "mongodb": "^4.2.1", + "mongodb": "4.2.1", "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" }, @@ -32,12 +32,15 @@ } }, "../common": { + "name": "@guardian/common", "version": "2.1.0", + "extraneous": true, "license": "Apache-2.0", "dependencies": { - "interfaces": "file:../interfaces", + "@guardian/interfaces": "^2.0.0", "nats": "^2.6.1", - "reflect-metadata": "^0.1.13" + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" }, "devDependencies": { "@types/node": "^17.0.13", @@ -47,7 +50,9 @@ } }, "../interfaces": { + "name": "@guardian/interfaces", "version": "2.1.0", + "extraneous": true, "license": "Apache-2.0", "dependencies": { "reflect-metadata": "^0.1.13" @@ -165,6 +170,27 @@ "node": ">=4" } }, + "node_modules/@guardian/common": { + "version": "2.1.0", + "resolved": "^2.0.0", + "integrity": "sha512-bqAsqCkspopdFjaxIH6ndpPoANucdih00ukQAPxHhKNnwIUM/o56HxU/c90R0QB8j93byWqQi6OL9wmSj0qFUA==", + "license": "Apache-2.0", + "dependencies": { + "@guardian/interfaces": "^2.0.0", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" + } + }, + "node_modules/@guardian/interfaces": { + "version": "2.1.0", + "resolved": "^2.0.0", + "integrity": "sha512-QSO9is2vgbKecPCB0XLtj+wI7OkQNXTEilE2hpBmweMgbRgiXp6wWVPMMGdXVyRqS4EByIT1xnFWx0LqCQ9qMQ==", + "license": "Apache-2.0", + "dependencies": { + "reflect-metadata": "^0.1.13" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -759,10 +785,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/common": { - "resolved": "../common", - "link": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1422,10 +1444,6 @@ "node": ">=10" } }, - "node_modules/interfaces": { - "resolved": "../interfaces", - "link": true - }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -1439,11 +1457,6 @@ "node": ">= 0.4" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -2081,14 +2094,13 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" }, "node_modules/mongodb": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz", - "integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.1.tgz", + "integrity": "sha512-nDC+ulM/Ea3Q2VG5eemuGfB7T4ORwrtKegH2XW9OLlUBgQF6OTNrzFCS1Z3SJGVA+T0Sr1xBYV6DMnp0A7us0g==", "dependencies": { - "bson": "^4.6.1", + "bson": "^4.6.0", "denque": "^2.0.1", - "mongodb-connection-string-url": "^2.5.2", - "socks": "^2.6.2" + "mongodb-connection-string-url": "^2.2.0" }, "engines": { "node": ">=12.9.0" @@ -2134,6 +2146,34 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "dependencies": { + "nkeys.js": "^1.0.0-9" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "dependencies": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/nkeys.js/node_modules/@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + }, "node_modules/nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", @@ -2680,28 +2720,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3027,6 +3045,11 @@ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -3575,6 +3598,15 @@ "@types/zen-observable": "0.8.3", "zen-observable": "0.8.15" } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } } }, "dependencies": { @@ -3662,6 +3694,23 @@ } } }, + "@guardian/common": { + "version": "^2.0.0", + "integrity": "sha512-bqAsqCkspopdFjaxIH6ndpPoANucdih00ukQAPxHhKNnwIUM/o56HxU/c90R0QB8j93byWqQi6OL9wmSj0qFUA==", + "requires": { + "@guardian/interfaces": "^2.0.0", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" + } + }, + "@guardian/interfaces": { + "version": "^2.0.0", + "integrity": "sha512-QSO9is2vgbKecPCB0XLtj+wI7OkQNXTEilE2hpBmweMgbRgiXp6wWVPMMGdXVyRqS4EByIT1xnFWx0LqCQ9qMQ==", + "requires": { + "reflect-metadata": "^0.1.13" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -4100,18 +4149,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "common": { - "version": "file:../common", - "requires": { - "@types/node": "^17.0.13", - "interfaces": "file:../interfaces", - "mocha-junit-reporter": "^2.0.2", - "nats": "^2.6.1", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -4575,16 +4612,6 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, - "interfaces": { - "version": "file:../interfaces", - "requires": { - "@types/node": "^17.0.13", - "mocha-junit-reporter": "^2.0.2", - "reflect-metadata": "^0.1.13", - "tslint": "^6.1.3", - "typescript": "^4.5.5" - } - }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -4595,11 +4622,6 @@ "side-channel": "^1.0.4" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -5059,15 +5081,14 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" }, "mongodb": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz", - "integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.1.tgz", + "integrity": "sha512-nDC+ulM/Ea3Q2VG5eemuGfB7T4ORwrtKegH2XW9OLlUBgQF6OTNrzFCS1Z3SJGVA+T0Sr1xBYV6DMnp0A7us0g==", "requires": { - "bson": "^4.6.1", + "bson": "^4.6.0", "denque": "^2.0.1", - "mongodb-connection-string-url": "^2.5.2", - "saslprep": "^1.0.3", - "socks": "^2.6.2" + "mongodb-connection-string-url": "^2.2.0", + "saslprep": "^1.0.3" } }, "mongodb-connection-string-url": { @@ -5101,6 +5122,30 @@ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, + "nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "requires": { + "nkeys.js": "^1.0.0-9" + } + }, + "nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "requires": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + } + } + }, "nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", @@ -5506,20 +5551,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -5765,6 +5796,11 @@ "tslib": "^1.8.1" } }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -6128,6 +6164,11 @@ "@types/zen-observable": "0.8.3", "zen-observable": "0.8.15" } + }, + "zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=" } } } diff --git a/logger-service/package.json b/logger-service/package.json index 88d48b4002..7d58be6d6d 100644 --- a/logger-service/package.json +++ b/logger-service/package.json @@ -1,20 +1,17 @@ { - "_moduleAliases": { - "@api": "dist/api", - "@entity": "dist/entity" - }, + "packageManager": "yarn@3.2.1", "author": "Envision Blockchain Solutions ", "dependencies": { + "@guardian/common": "^2.2.0-prerelease", + "@guardian/interfaces": "^2.2.0-prerelease", "@web-std/fetch": "3.0.0", "cors": "^2.8.5", "dotenv": "^16.0.0", "fs-extra": "^10.0.0", - "interfaces": "file:../interfaces", "module-alias": "^2.2.2", - "mongodb": "^4.2.1", + "mongodb": "4.2.1", "reflect-metadata": "^0.1.13", - "typeorm": "^0.2.41", - "common":"file:../common" + "typeorm": "^0.2.41" }, "description": "", "devDependencies": { @@ -39,5 +36,6 @@ "lint": "tslint --project .", "start": "node dist/index.js" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/logger-service/src/api/logger.service.ts b/logger-service/src/api/logger.service.ts index 2278e12231..cc07a3ad57 100644 --- a/logger-service/src/api/logger.service.ts +++ b/logger-service/src/api/logger.service.ts @@ -1,7 +1,7 @@ import { MongoRepository } from 'typeorm'; import { Log } from '@entity/log'; -import { MessageBrokerChannel, MessageResponse, MessageError } from 'common'; -import { MessageAPI, ILog, IGetLogsMessage, IGetLogsResponse, IGetLogAttributesMessage } from 'interfaces'; +import { MessageBrokerChannel, MessageResponse, MessageError, Logger } from '@guardian/common'; +import { MessageAPI, ILog, IGetLogsMessage, IGetLogsResponse, IGetLogAttributesMessage, LogType, ExternalMessageEvents } from '@guardian/interfaces'; export const loggerAPI = async function ( @@ -10,29 +10,34 @@ export const loggerAPI = async function ( ): Promise { /** * Add log message - * + * * @param {Message} [payload] - Log message - * + * */ channel.response(MessageAPI.WRITE_LOG, async (message) => { try { if (!message) { throw new Error("Log message is empty"); } + await logRepository.save(message); + + if (message.type === LogType.ERROR) { + channel.publish(ExternalMessageEvents.ERROR_LOG, message); + } return new MessageResponse(true); } - catch (e) { - return new MessageError(e); + catch (error) { + return new MessageError(error); } }) /** * Get application logs. - * + * * @param {any} [msg.filters] - logs filter options * @param {IPageParameters} [msg.pageParameters] - Page parameters - * + * * @return {any} - Logs */ channel.response(MessageAPI.GET_LOGS, async (msg) => { @@ -57,16 +62,16 @@ export const loggerAPI = async function ( totalCount }); } - catch (e) { - return new MessageError(e.toString()); + catch (error) { + return new MessageError(error); } }) /** * Get attributes. - * + * * @param {any} [payload.name] - Name to filter - * + * * @return {any} - Attributes */ channel.response(MessageAPI.GET_ATTRIBUTES, async (msg) => { @@ -87,8 +92,8 @@ export const loggerAPI = async function ( attrCursor.close(); return new MessageResponse(attrObject?.uniqueValues?.sort() || []); } - catch (e) { - return new MessageError(e.toString()); + catch (error) { + return new MessageError(error.toString()); } }) } diff --git a/logger-service/src/app.ts b/logger-service/src/app.ts index c48a4f6ce5..123495b7ce 100644 --- a/logger-service/src/app.ts +++ b/logger-service/src/app.ts @@ -1,8 +1,8 @@ import { createConnection } from 'typeorm'; import { loggerAPI } from '@api/logger.service'; import { Log } from '@entity/log'; -import { ApplicationState, MessageBrokerChannel } from 'common'; -import { ApplicationStates } from 'interfaces' +import { ApplicationState, MessageBrokerChannel } from '@guardian/common'; +import { ApplicationStates } from '@guardian/interfaces' Promise.all([ diff --git a/logger-service/src/config.ts b/logger-service/src/config.ts index 9adbfac25a..39e2c7e399 100644 --- a/logger-service/src/config.ts +++ b/logger-service/src/config.ts @@ -1,3 +1,9 @@ +import moduleAlias from 'module-alias'; import dotenv from 'dotenv'; -dotenv.config(); \ No newline at end of file +moduleAlias.addAliases({ + "@api": __dirname + "/api", + "@entity": __dirname + "/entity" +}); + +dotenv.config(); diff --git a/logger-service/src/entity/log.ts b/logger-service/src/entity/log.ts index ed70eda043..7ea96f3bc1 100644 --- a/logger-service/src/entity/log.ts +++ b/logger-service/src/entity/log.ts @@ -1,5 +1,5 @@ import { Column, CreateDateColumn, Entity, ObjectIdColumn } from 'typeorm'; -import { ILog, LogType } from 'interfaces'; +import { ILog, LogType } from '@guardian/interfaces'; @Entity() export class Log implements ILog { @@ -17,4 +17,4 @@ export class Log implements ILog { @Column() attributes?: string[] -} \ No newline at end of file +} diff --git a/mrv-sender/Dockerfile b/mrv-sender/Dockerfile index bad634aa7b..a46cf3f00f 100644 --- a/mrv-sender/Dockerfile +++ b/mrv-sender/Dockerfile @@ -5,20 +5,22 @@ ENV PLATFORM="docker" WORKDIR /usr/interfaces COPY ./interfaces/package*.json ./ COPY ./interfaces/tsconfig.json ./ -RUN npm install ADD ./interfaces/src ./src/. -RUN npm run build +RUN npm install +RUN npm pack WORKDIR /usr/common COPY ./common/package*.json ./ COPY ./common/tsconfig.json ./ -RUN npm install ADD ./common/src ./src/. -RUN npm run build +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz +RUN npm install +RUN npm pack WORKDIR /usr/mrv-sender COPY ./mrv-sender/package*.json ./ COPY ./mrv-sender/tsconfig.json ./ +RUN npm install /usr/interfaces/guardian-interfaces-*.tgz /usr/common/guardian-common-*.tgz RUN npm install ADD ./mrv-sender/src ./src/. ADD ./mrv-sender/public ./public/. diff --git a/mrv-sender/nodemon.json b/mrv-sender/nodemon.json index 8b879fd87b..660aa69975 100644 --- a/mrv-sender/nodemon.json +++ b/mrv-sender/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["./dist", "../interfaces/dist", "../common/dist", "../logger-helper/dist"], + "watch": ["./dist", "../interfaces/dist", "../common/dist"], "delay": 2500, "ext": "ts, js", "exec": "node dist/index.js" diff --git a/mrv-sender/package.json b/mrv-sender/package.json index 4bf1de888f..cfa2994772 100644 --- a/mrv-sender/package.json +++ b/mrv-sender/package.json @@ -1,6 +1,7 @@ { "author": "Envision Blockchain Solutions ", "dependencies": { + "@guardian/common": "^2.2.0-prerelease", "@transmute/credentials-context": "0.7.0-unstable.40", "@transmute/did-context": "0.7.0-unstable.40", "@transmute/ed25519-signature-2018": "0.7.0-unstable.40", @@ -10,8 +11,7 @@ "@transmute/vc.js": "0.7.0-unstable.40", "axios": "^0.26.1", "express": "^4.17.3", - "jose": "4.3.8", - "common":"file:../common" + "jose": "4.3.8" }, "description": "", "devDependencies": { @@ -29,5 +29,6 @@ "dev:docker": "nodemon .", "start": "node dist/index.js" }, - "version": "2.1.0" + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" } diff --git a/mrv-sender/public/index.html b/mrv-sender/public/index.html index fce0da1a0f..1c86c4f031 100644 --- a/mrv-sender/public/index.html +++ b/mrv-sender/public/index.html @@ -2,337 +2,10 @@ - + Title - + @@ -345,4 +18,4 @@
- \ No newline at end of file + diff --git a/mrv-sender/public/script.js b/mrv-sender/public/script.js index 716dce1f3f..506e1181e1 100644 --- a/mrv-sender/public/script.js +++ b/mrv-sender/public/script.js @@ -1,9 +1,5 @@ const configs = []; -async function makeRequest() { - -} - function addFile() { let configFile; const config = document.getElementById('config'); diff --git a/mrv-sender/public/style.css b/mrv-sender/public/style.css new file mode 100644 index 0000000000..b774d74d1e --- /dev/null +++ b/mrv-sender/public/style.css @@ -0,0 +1,325 @@ +.container { + width: 100%; + position: relative; + display: block; +} + +.alert { + border-color: red; +} + +.circle { + border-radius: 50%; + width: 80px; + height: 80px; + background-color: rgb(255 255 255); + position: absolute; + left: 35px; + top: 35px; + pointer-events: none; +} + +.circle::after { + content: " "; + position: absolute; + display: block; + background-color: #aaa; + height: 10px; + margin-top: -5px; + top: 50%; + left: 5px; + right: 5px; + z-index: 9; +} + +.circle::before { + content: " "; + position: absolute; + display: block; + background-color: #aaa; + width: 10px; + margin-left: -5px; + left: 50%; + top: 5px; + bottom: 5px; + z-index: 9; +} + +.config { + width: 150px; + height: 150px; + position: relative; + border: 1px dashed #000; + margin-bottom: 30px; + border-radius: 5px; + cursor: pointer; +} + +button#start { + margin-bottom: 30px; +} + +table#results { + position: relative; + width: 100%; + border: 1px solid #000; +} + + +.t-headers { + display: flex; +} + +.t-row { + display: flex; +} + +.t-col-1 { + width: 200px; + overflow: hidden; + display: block; + padding: 5px 10px; + white-space: nowrap; + text-overflow: ellipsis; +} + +.t-col-2 { + width: 200px; + overflow: hidden; + display: block; + padding: 5px 10px; + white-space: nowrap; + text-overflow: ellipsis; +} + +.t-col-3 { + width: 200px; + overflow: hidden; + display: block; + padding: 5px 10px; + white-space: nowrap; + text-overflow: ellipsis; +} + +.t-col-4 { + width: 200px; + overflow: hidden; + display: block; + padding: 5px 10px; + white-space: nowrap; + text-overflow: ellipsis; +} + +.t-col-5 { + width: 200px; + overflow: hidden; + display: block; + padding: 5px 10px; + white-space: nowrap; + text-overflow: ellipsis; +} + + + + + + + + +.config-header { + display: flex; +} + +.config-collapse-hide { + width: 0px; + height: 0px; + margin: 6px 0px 6px 8px; + border: 6px solid #999; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + cursor: pointer; +} + +.config-collapse-show { + width: 0px; + height: 0px; + margin: 10px 4px 2px 4px; + border: 6px solid #999; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + cursor: pointer; +} + +.config-status { + width: 16px; + height: 16px; + + border-radius: 50%; + margin: 4px; +} + +.config-status-stopped { + background: #f00; +} + +.config-status-started { + background: #0f0; +} + +.config-name { + height: 18px; + padding: 3px 12px; + min-width: 750px; +} + +.config-control-start { + width: 0px; + height: 0px; + margin: 3px 4px 4px 4px; + border: 8px solid #00ab02; + border-left-width: 12px; + border-right-width: 0px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + cursor: pointer; +} + +.config-control-stop { + width: 4px; + height: 16px; + margin: 3px 4px 4px 4px; + border: 0px solid #ea0000; + border-left-width: 4px; + border-right-width: 4px; + border-top-color: transparent; + border-bottom-color: transparent; + cursor: pointer; +} + +.config-body-hide { + display: none; +} + +.config-row { + position: relative; + padding: 5px; + margin: 5px; + border: 1px solid #e4e4e4; +} + +.config-body { + border-top: 1px solid #e4e4e4; + padding-top: 8px; + padding-left: 22px; + margin-top: 4px; +} + +.dialog { + position: fixed; + width: 100%; + height: 100%; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.4); + z-index: 999; +} + +.dialog-content { + background: #fff; + position: absolute; + width: 620px; + padding: 20px; + border-radius: 5px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} + +.btn-cancel { + background-color: rgba(0, 0, 0, .12); + box-sizing: border-box; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + outline: none; + border: none; + -webkit-tap-highlight-color: transparent; + display: inline-block; + white-space: nowrap; + text-decoration: none; + vertical-align: baseline; + text-align: center; + margin: 0; + min-width: 64px; + line-height: 36px; + padding: 0 16px; + border-radius: 4px; + overflow: visible; + margin-left: 8px; +} + +.btn-ok { + color: #fff; + background-color: #3f51b5; + box-sizing: border-box; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + outline: none; + border: none; + -webkit-tap-highlight-color: transparent; + display: inline-block; + white-space: nowrap; + text-decoration: none; + vertical-align: baseline; + text-align: center; + margin: 0; + min-width: 64px; + line-height: 36px; + padding: 0 16px; + border-radius: 4px; + overflow: visible; +} + +.dialog-content-setting { + margin-bottom: 16px; +} + +.dialog-content-row { + display: flex; + padding: 5px 0px; + height: 26px; +} + +.dialog-row-name { + padding-right: 8px; + min-width: 70px; +} + +.random-field .dialog-row-value {} + +.config-last-value, +.config-config { + max-height: 280px; + overflow: auto; +} + +.dialog-row-input { + margin-left: 10px; + padding-left: 10px; + border-left: 1px solid; + margin-right: 10px; +} +.dialog-row-decimal { + width: 25px; + margin-right: 10px; +} diff --git a/mrv-sender/src/index.ts b/mrv-sender/src/index.ts index 3796d4de71..b25bf41b75 100644 --- a/mrv-sender/src/index.ts +++ b/mrv-sender/src/index.ts @@ -62,12 +62,11 @@ const PORT = process.env.PORT || 3005; vcSubject.accountId = hederaAccountId; document = await vcHelper.createVC(vcSubject, didDocument, did); - - console.log("created vc"); - console.log(document); - } catch (e) { - console.error(e); - res.status(500).json(e); + + console.log("created vc", document); + } catch (error) { + console.error(error); + res.status(500).json(error); return; } @@ -77,12 +76,12 @@ const PORT = process.env.PORT || 3005; policyTag: policyTag } try { - console.error('start post'); + console.log('start post'); const resp = await axios.post(url, body); - console.error('end post'); - } catch (e) { - console.error(e); - res.status(500).json(e); + console.log('end post', resp); + } catch (error) { + console.error(error); + res.status(500).json(error); return; } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..65edcce4f1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,28729 @@ +{ + "name": "guardian", + "version": "2.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "guardian", + "version": "2.1.0", + "workspaces": [ + "interfaces", + "common", + "logger-helper", + "api-docs", + "api-gateway", + "auth-service", + "guardian-service", + "ipfs-client", + "logger-service" + ] + }, + "api-docs": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "dotenv": "^16.0.0", + "express": "^4.17.3", + "js-yaml": "^4.1.0", + "swagger-ui-express": "^4.3.0" + }, + "devDependencies": { + "@types/express": "^4.17.13", + "@types/js-yaml": "^4.0.5", + "@types/node": "^17.0.23", + "@types/swagger-ui-express": "^4.1.3", + "tslint": "^6.1.3", + "typescript": "^4.6.3" + } + }, + "api-gateway": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "dotenv": "^16.0.0", + "express": "^4.17.1", + "jszip": "^3.7.1", + "module-alias": "^2.2.2", + "reflect-metadata": "^0.1.13", + "ws": "^8.2.1" + }, + "devDependencies": { + "@types/express": "^4.17.13", + "@types/jszip": "^3.4.1", + "@types/node": "^17.0.13", + "@types/ws": "^8.2.2", + "chai": "^4.3.4", + "cross-env": "^7.0.3", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "nodemon": "^2.0.12", + "rewire": "^6.0.0", + "sinon": "^13.0.1", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "auth-service": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "dotenv": "^16.0.0", + "jsonwebtoken": "^8.5.1", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + }, + "devDependencies": { + "@types/jsonwebtoken": "^8.5.4", + "@types/node": "^17.0.13", + "chai": "^4.3.4", + "cross-env": "^7.0.3", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "nodemon": "^2.0.12", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "auth-service/node_modules/mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "dependencies": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "socks": "^2.6.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "common": { + "name": "@guardian/common", + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/interfaces": "^2.0.0", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "zlib": "^1.0.5" + }, + "devDependencies": { + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "guardian-service": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@hashgraph/sdk": "^2.15.0", + "@transmute/credentials-context": "^0.7.0-unstable.60", + "@transmute/did-context": "^0.7.0-unstable.60", + "@transmute/ed25519-signature-2018": "^0.7.0-unstable.60", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/vc.js": "^0.7.0-unstable.60", + "ajv": "^8.10.0", + "ajv-formats": "^2.1.1", + "axios": "^0.25.0", + "bs58": "^4.0.1", + "cors": "^2.8.5", + "cron": "^2.0.0", + "deep-equal": "^2.0.5", + "dotenv": "^16.0.0", + "express": "^4.17.1", + "fs-extra": "^10.0.0", + "jszip": "^3.7.1", + "mathjs": "^10.1.0", + "module-alias": "^2.2.2", + "moment": "^2.29.1", + "mongodb": "^4.2.1", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + }, + "devDependencies": { + "@types/deep-equal": "^1.0.1", + "@types/express": "^4.17.13", + "@types/fs-extra": "^9.0.12", + "@types/jszip": "^3.4.1", + "@types/node": "^17.0.13", + "chai": "4.3.4", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "nodemon": "^2.0.12", + "rewire": "^6.0.0", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "guardian-service/node_modules/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "guardian-service/node_modules/mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "dependencies": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "socks": "^2.6.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "interfaces": { + "name": "@guardian/interfaces", + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "reflect-metadata": "^0.1.13" + }, + "devDependencies": { + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "ipfs-client": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@web-std/fetch": "3.0.0", + "axios": "^0.26.1", + "axios-retry": "^3.2.4", + "cors": "^2.8.5", + "cross-blob": "^2.0.1", + "dotenv": "^16.0.0", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "mathjs": "^10.1.0", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "nft.storage": "^5.2.0", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + }, + "devDependencies": { + "@types/fs-extra": "^9.0.12", + "@types/js-yaml": "^4.0.3", + "@types/node": "^17.0.13", + "chai": "4.3.4", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "nodemon": "^2.0.12", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "ipfs-client/node_modules/axios": { + "version": "0.26.1", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "ipfs-client/node_modules/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "ipfs-client/node_modules/mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "dependencies": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "socks": "^2.6.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "logger-helper": { + "name": "@guardian/logger-helper", + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0" + }, + "devDependencies": { + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "logger-service": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@web-std/fetch": "3.0.0", + "cors": "^2.8.5", + "dotenv": "^16.0.0", + "fs-extra": "^10.0.0", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + }, + "devDependencies": { + "@types/fs-extra": "^9.0.12", + "@types/node": "^17.0.13", + "chai": "4.3.6", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "nodemon": "^2.0.12", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "logger-service/node_modules/mongodb": { + "version": "4.4.1", + "license": "Apache-2.0", + "dependencies": { + "bson": "^4.6.1", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "socks": "^2.6.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", + "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" + }, + "node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "peer": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "peer": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.17.12.tgz", + "integrity": "sha512-LpsTRw725eBAXXKUOnJJct+SEaOzwR78zahcLuripD2+dKc2Sj+8Q2DzA+GC/jOpOu/KlDXuxrzG214o1zTauQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-default-from": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "peer": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "peer": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-assign": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz", + "integrity": "sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz", + "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz", + "integrity": "sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bitauth/libauth": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@bitauth/libauth/-/libauth-1.19.1.tgz", + "integrity": "sha512-R524tD5VwOt3QRHr7N518nqTVR/HKgfWL4LypekcGuNQN8R4PWScvuRcRzrY39A28kLztMv+TJdiKuMNbkU1ug==", + "engines": { + "node": ">=8.9" + } + }, + "node_modules/@did-core/data-model": { + "version": "0.1.1-unstable.15", + "resolved": "https://registry.npmjs.org/@did-core/data-model/-/data-model-0.1.1-unstable.15.tgz", + "integrity": "sha512-l7gxLxegcXW7389G+j6o+S24lS8uasmJx5txWpW3QadNvOawKwvWn8bV59SdHSK806xNzIZaCLKmXKxebs8yAQ==", + "dependencies": { + "factory.ts": "^0.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@did-core/did-ld-json": { + "version": "0.1.1-unstable.15", + "resolved": "https://registry.npmjs.org/@did-core/did-ld-json/-/did-ld-json-0.1.1-unstable.15.tgz", + "integrity": "sha512-p2jKRxSU+eJJqd+ewCklYp/XZ6ysISk8VU2/kANCoB/WwUy/kVgw2rUNScRDXw2utr9Qj36P8EZTYi4aj7vRCQ==", + "dependencies": { + "@transmute/did-context": "^0.6.1-unstable.25", + "jsonld-checker": "^0.1.6" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@did-core/did-ld-json/node_modules/@transmute/did-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" + }, + "node_modules/@digitalbazaar/http-client": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-1.2.0.tgz", + "integrity": "sha512-W9KQQ5pUJcaR0I4c2HPJC0a7kRbZApIorZgPnEDwMBgj16iQzutGLrCXYaZOmxqVLVNqqlQ4aUJh+HBQZy4W6Q==", + "dependencies": { + "esm": "^3.2.22", + "ky": "^0.25.1", + "ky-universal": "^0.8.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.6.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", + "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "node_modules/@expo/bunyan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", + "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==", + "engines": [ + "node >=0.10.0" + ], + "peer": true, + "dependencies": { + "uuid": "^8.0.0" + }, + "optionalDependencies": { + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "node_modules/@expo/bunyan/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/cli": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.1.5.tgz", + "integrity": "sha512-27LNT3b9MtBHEosmvJiC9Ug9aJpQAK9T3cC8ekaB9cHnVcJw+mJs2kdVBYpV1aBjKkH7T57aiWWimZp0O7m1wQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.14.0", + "@expo/code-signing-certificates": "^0.0.2", + "@expo/config": "~6.0.23", + "@expo/config-plugins": "~4.1.4", + "@expo/dev-server": "~0.1.110", + "@expo/devcert": "^1.0.0", + "@expo/json-file": "^8.2.35", + "@expo/metro-config": "~0.3.16", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "~0.0.52", + "@expo/plist": "^0.0.18", + "@expo/prebuild-config": "~4.0.0", + "@expo/rudder-sdk-node": "1.1.1", + "@expo/spawn-async": "1.5.0", + "@expo/xcpretty": "^4.1.1", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", + "accepts": "^1.3.8", + "arg": "4.1.0", + "better-opn": "~3.0.2", + "bplist-parser": "^0.3.1", + "cacache": "^15.3.0", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "env-editor": "^0.4.1", + "form-data": "^3.0.1", + "freeport-async": "2.0.0", + "fs-extra": "~8.1.0", + "getenv": "^1.0.0", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "internal-ip": "4.3.0", + "is-root": "^2.1.0", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", + "md5-file": "^3.2.3", + "md5hex": "^1.0.0", + "minipass": "3.1.6", + "node-fetch": "^2.6.7", + "node-forge": "^1.3.1", + "npm-package-arg": "^7.0.0", + "ora": "3.4.0", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "requireg": "^0.2.2", + "resolve-from": "^5.0.0", + "semver": "^6.3.0", + "slugify": "^1.3.4", + "structured-headers": "^0.4.1", + "tar": "^6.0.5", + "tempy": "^0.7.1", + "terminal-link": "^2.1.1", + "text-table": "^0.2.0", + "url-join": "4.0.0", + "uuid": "^3.4.0", + "wrap-ansi": "^7.0.0" + }, + "bin": { + "expo-internal": "build/bin/cli" + } + }, + "node_modules/@expo/cli/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@expo/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@expo/cli/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@expo/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@expo/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz", + "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==", + "peer": true, + "dependencies": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" + } + }, + "node_modules/@expo/config": { + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.24.tgz", + "integrity": "sha512-OcACI1md1Yo5TQmUxxueJ/RaTlR2Mgl6KswTFOYCL1XJERF/jjAx95zhWXH+JQGdlM0yB0vqM6vB6GbUFRvLxA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "slugify": "^1.3.4", + "sucrase": "^3.20.0" + } + }, + "node_modules/@expo/config-plugins": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.5.tgz", + "integrity": "sha512-RVvU40RtZt12HavuDAe+LDIq9lHj7sheOfMEHdmpJ/uTA8pgvkbc56XF6JHQD+yRr6+uhhb+JnAasGq49dsQbw==", + "peer": true, + "dependencies": { + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + } + }, + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/config-types": { + "version": "45.0.0", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-45.0.0.tgz", + "integrity": "sha512-/QGhhLWyaGautgEyU50UJr5YqKJix5t77ePTwreOVAhmZH+ff3nrrtYTTnccx+qF08ZNQmfAyYMCD3rQfzpiJA==", + "peer": true + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/dev-server": { + "version": "0.1.113", + "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.113.tgz", + "integrity": "sha512-PT3HT+3h4ZS1bw6Zz8fqjNeryKOWe1FqGdnz4RSASxZGCzib6VHLfLbJeYHkq7t+ashSXRoAw3XW/9yVdbUqLA==", + "peer": true, + "dependencies": { + "@expo/bunyan": "4.0.0", + "@expo/metro-config": "0.3.18", + "@expo/osascript": "2.0.33", + "body-parser": "1.19.0", + "chalk": "^4.0.0", + "connect": "^3.7.0", + "fs-extra": "9.0.0", + "node-fetch": "^2.6.0", + "open": "^8.3.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "serialize-error": "6.0.0", + "temp-dir": "^2.0.0" + } + }, + "node_modules/@expo/dev-server/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/dev-server/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/dev-server/node_modules/serialize-error": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-6.0.0.tgz", + "integrity": "sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA==", + "peer": true, + "dependencies": { + "type-fest": "^0.12.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/dev-server/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/dev-server/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@expo/devcert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz", + "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==", + "peer": true, + "dependencies": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@expo/devcert/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/@expo/image-utils": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz", + "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==", + "peer": true, + "dependencies": { + "@expo/spawn-async": "1.5.0", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "mime": "^2.4.4", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "tempy": "0.3.0" + } + }, + "node_modules/@expo/image-utils/node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "peer": true, + "dependencies": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/image-utils/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/image-utils/node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "peer": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "peer": true, + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/metro-config": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.18.tgz", + "integrity": "sha512-DWtwV67kD8X2uOKIs5QyHlHD+6L6RAgudZZDBmu433ZvL62HAUYfjEi3+i0jeMiUqN85o1vbXg6xqWnBCpS50g==", + "peer": true, + "dependencies": { + "@expo/config": "6.0.24", + "@expo/json-file": "8.2.36", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", + "getenv": "^1.0.0", + "resolve-from": "^5.0.0", + "sucrase": "^3.20.0" + } + }, + "node_modules/@expo/osascript": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz", + "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==", + "peer": true, + "dependencies": { + "@expo/spawn-async": "^1.5.0", + "exec-async": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "0.0.54", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.54.tgz", + "integrity": "sha512-Sr7UsDh9Pcta1gAFZJgszodewEvg/XSRV1oV+iTrkUEhP7NziMrK5dE71O2FHmKGfdrDQgLexvq8HLZdfRskKw==", + "peer": true, + "dependencies": { + "@expo/json-file": "8.2.36", + "@expo/spawn-async": "^1.5.0", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "find-yarn-workspace-root": "~2.0.0", + "npm-package-arg": "^7.0.0", + "rimraf": "^3.0.2", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + } + }, + "node_modules/@expo/package-manager/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/package-manager/node_modules/sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "peer": true + }, + "node_modules/@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "peer": true, + "dependencies": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/prebuild-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-4.0.2.tgz", + "integrity": "sha512-+AQ/EVgcySl3cvYMmZLaEyGkxvQnO+UFU2mshmUoUh5lTIFTNKl1aVo0UmYW2/JehmKu6bxOrr/lL5byHv+fcQ==", + "peer": true, + "dependencies": { + "@expo/config": "6.0.24", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/image-utils": "0.3.20", + "@expo/json-file": "8.2.36", + "debug": "^4.3.1", + "expo-modules-autolinking": "0.8.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "xml2js": "0.4.23" + } + }, + "node_modules/@expo/prebuild-config/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "peer": true, + "dependencies": { + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "peer": true + }, + "node_modules/@expo/spawn-async": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", + "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/spawn-async/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@expo/spawn-async/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/spawn-async/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@expo/spawn-async/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@expo/spawn-async/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@expo/spawn-async/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/@expo/vector-icons": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-13.0.0.tgz", + "integrity": "sha512-TI+l71+5aSKnShYclFa14Kum+hQMZ86b95SH6tQUG3qZEmLTarvWpKwqtTwQKqvlJSJrpFiSFu3eCuZokY6zWA==", + "peer": true + }, + "node_modules/@expo/xcpretty": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.1.3.tgz", + "integrity": "sha512-testj0jpEe1IwRfnmQ3shizTXOY6IGcuMJg1vtmXy2bC9sPTLK1wjliRJp2xCJGcp1ZbEA1/eptzX+6MDnYjrA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + }, + "bin": { + "excpretty": "build/cli.js" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "peer": true + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "peer": true, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", + "dependencies": { + "@grpc/proto-loader": "^0.6.4", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", + "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", + "dependencies": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.11.3", + "yargs": "^16.2.0" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@guardian/common": { + "resolved": "common", + "link": true + }, + "node_modules/@guardian/interfaces": { + "resolved": "interfaces", + "link": true + }, + "node_modules/@guardian/logger-helper": { + "resolved": "logger-helper", + "link": true + }, + "node_modules/@hashgraph/cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.2.0.tgz", + "integrity": "sha512-sr7C4iUWIHnLU4LXgafkwEpDOpgtqHhQfAbPiyatzjngPu0euYZ0xeNSrzOpo2SXOhCyUffHFs4z/orIIkaYpg==", + "dependencies": { + "bignumber.js": "^9.0.2", + "crypto-js": "^4.1.1", + "elliptic": "^6.5.4", + "js-base64": "^3.7.2", + "tweetnacl": "^1.0.3", + "utf8": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "expo": "^45.0.3", + "expo-crypto": "^10.1.2", + "expo-random": "^12.1.2" + } + }, + "node_modules/@hashgraph/proto": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.5.0.tgz", + "integrity": "sha512-354Ozgf55mdPUUcED5E8n2ehGMO6mpOgtMIo4l4+t/wpp1qRmOfbHlVfI4TQN7W4WMb/CRnmbjCl6KDF/SnTxA==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "^6.11.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@hashgraph/sdk": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.15.0.tgz", + "integrity": "sha512-SP3Wnb7DlLwwhLqr3tnYfKVMyL6wfm+5aBCM6K0ES90b9yYlnTYehMO/EJAmSlvwer2abmzxEneHXP/DmK9LoQ==", + "dependencies": { + "@ethersproject/rlp": "^5.6.0", + "@grpc/grpc-js": "^1.6.7", + "@hashgraph/cryptography": "^1.2.0", + "@hashgraph/proto": "2.5.0", + "axios": "^0.27.2", + "bignumber.js": "^9.0.2", + "crypto-js": "^4.1.1", + "js-base64": "^3.7.2", + "js-logger": "^1.6.1", + "long": "^4.0.0", + "protobufjs": "^6.11.2", + "utf8": "^3.0.0" + }, + "engines": { + "node": ">=10.17.0" + }, + "peerDependencies": { + "expo": "^45.0.3" + } + }, + "node_modules/@hashgraph/sdk/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@hashgraph/sdk/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@ipld/car": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.4.tgz", + "integrity": "sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==", + "dependencies": { + "@ipld/dag-cbor": "^7.0.0", + "multiformats": "^9.5.4", + "varint": "^6.0.0" + } + }, + "node_modules/@ipld/car/node_modules/@ipld/dag-cbor": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.2.tgz", + "integrity": "sha512-V9EhJVWXqzjjRs0kiZfUXOaq8y6R2C4AAmfGoMeszqGOBgfACr5tFAgAwZY0e8z/OpmJWpCrZhzPRTZV0c/gjA==", + "dependencies": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "node_modules/@ipld/dag-cbor": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz", + "integrity": "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==", + "dependencies": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "node_modules/@ipld/dag-pb": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.17.tgz", + "integrity": "sha512-AmzOdmdv5hT8iGsrbpzm5R0Fvk7DEbtwcglG2gJLvW9q3zwb+E681hY4EwEELypM1Rfnp/JDA9dGqYcpEi/iAg==", + "dependencies": { + "multiformats": "^9.5.4" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@mattrglobal/bbs-signatures": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", + "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", + "optionalDependencies": { + "@mattrglobal/node-bbs-signatures": "0.11.0" + } + }, + "node_modules/@mattrglobal/bls12381-key-pair": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", + "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "dependencies": { + "@mattrglobal/bbs-signatures": "0.5.0", + "bs58": "4.0.1", + "rfc4648": "1.4.0" + } + }, + "node_modules/@mattrglobal/node-bbs-signatures": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", + "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "neon-cli": "0.4.0", + "node-pre-gyp": "0.14.0" + }, + "engines": { + "node": ">=10", + "yarn": "1.x" + } + }, + "node_modules/@multiformats/murmur3": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.3.tgz", + "integrity": "sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw==", + "dependencies": { + "multiformats": "^9.5.4", + "murmurhash3js-revisited": "^3.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "peer": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "peer": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "peer": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.8.tgz", + "integrity": "sha512-u34H/bpqCdDuqrCVZvH0vpwFBT/dNEdNY+eE8u4IuC26yYnhDkXF4+Hliqca88Avbb7hyN2EF/eokyDdyS7G/A==", + "dependencies": { + "asn1js": "^3.0.4", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz", + "integrity": "sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==", + "dependencies": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0", + "webcrypto-core": "^1.7.4" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@react-native/normalize-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.0.0.tgz", + "integrity": "sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==", + "peer": true + }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "peer": true, + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", + "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" + }, + "node_modules/@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + }, + "node_modules/@stablelib/aes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", + "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/aes-kw": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", + "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", + "dependencies": { + "@stablelib/aes": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "dependencies": { + "@stablelib/int": "^1.0.1" + } + }, + "node_modules/@stablelib/blockcipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", + "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" + }, + "node_modules/@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" + }, + "node_modules/@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "dependencies": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" + }, + "node_modules/@stablelib/ed25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", + "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", + "dependencies": { + "@stablelib/random": "^1.0.1", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" + }, + "node_modules/@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" + }, + "node_modules/@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "dependencies": { + "@stablelib/bytes": "^1.0.1" + } + }, + "node_modules/@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "dependencies": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", + "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha512": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", + "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" + }, + "node_modules/@stablelib/x25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz", + "integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==", + "dependencies": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/xchacha20": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", + "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/xchacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", + "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", + "dependencies": { + "@stablelib/aead": "^1.0.1", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1", + "@stablelib/xchacha20": "^1.0.1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@transmute/bls12381-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-QLgg0fPlGuNM3yt5LPfid1/f5bsDnnsJe/1NJRmQ3MmBMjjVIXmg9boT7TRISjMetMZa7QEP/3KUfjvaxSU+UQ==", + "dependencies": { + "@mattrglobal/bls12381-key-pair": "^0.5.0", + "@transmute/ld-key-pair": "^0.7.0-unstable.60" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/credentials-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-UvEqLuxcqdq7IsIRAKrW9tLRuinXnZgjIpP3e4vdEGdKrCXZtwS1oYM/Mt2cmqPeuISydiZjOzsNqUZYroTeoA==" + }, + "node_modules/@transmute/did-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-6hnwcqVn+aFyx7yNvJ8W1SoAp7d21bBYF1FI0mGi4KJk6p83hvHYIlpdqMT4xvaR6txyeOLbZUoozaZFd1HVpw==" + }, + "node_modules/@transmute/did-key-common": { + "version": "0.3.0-unstable.8", + "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.3.0-unstable.8.tgz", + "integrity": "sha512-R/EaPMKjd2n7BKNr9y6rpnwe+QvCbxaVdTVWfO43OfgtBjeXQSZEURwgK4cMJ4yTSmGcg+vWecJHX7ciUkpWiQ==", + "dependencies": { + "@did-core/data-model": "^0.1.1-unstable.13", + "@did-core/did-ld-json": "^0.1.1-unstable.13", + "@transmute/did-context": "^0.6.1-unstable.36", + "@transmute/ld-key-pair": "^0.6.1-unstable.36", + "@transmute/security-context": "^0.6.1-unstable.36" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@transmute/did-key-common/node_modules/@transmute/did-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" + }, + "node_modules/@transmute/did-key-common/node_modules/@transmute/ld-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" + }, + "node_modules/@transmute/did-key-common/node_modules/@transmute/security-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-GtLmG65qlORrz/2S4I74DT+vA4+qXsFxrMr0cNOXjUqZBd/AW1PTrFnryLF9907BfoiD58HC9qb1WVGWjSlBYw==" + }, + "node_modules/@transmute/did-key-ed25519": { + "version": "0.3.0-unstable.8", + "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.3.0-unstable.8.tgz", + "integrity": "sha512-j6MQrUOVLsPqWRD7fn5XNwnE8Skb8jhJa61csDaJSCUQDvmlVwjaHpj+T/DS/MQ5AhQ+eLdtcVtOSjk4lc3NZA==", + "dependencies": { + "@transmute/did-key-common": "^0.3.0-unstable.8", + "@transmute/ed25519-key-pair": "^0.6.1-unstable.37" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/ed25519-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-l34yzE/QnQwmdk5xY9g2kD55e4XPp/jTZQzPu7I6J4Ar+bMaL/0RLL/pgvwyI7qUpsddxRf4WPZCCcZveqPcdA==", + "dependencies": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.6.1-unstable.37", + "@transmute/x25519-key-pair": "^0.6.1-unstable.37" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/ld-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" + }, + "node_modules/@transmute/did-key-ed25519/node_modules/@transmute/x25519-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-j6zR9IoJmgVhUCVH8YVGpsgQf99SxPKZ00LGnUheBAQzgj2lULGBQ44G+GqBCdzfT0qweptTfp1RjqqHEpizeA==", + "dependencies": { + "@stablelib/x25519": "^1.0.0", + "@transmute/ld-key-pair": "^0.6.1-unstable.37" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/ed25519-key-pair": { + "version": "0.7.0-unstable.2", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.2.tgz", + "integrity": "sha512-B0jg348Z8F0+lGWQic28xVxBZiXOJYbisWp6EfP4fQdMV3G4sES9YubpdiuoZHjesDZrf6xZ7cEB81mjGJMUkA==", + "dependencies": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.2", + "@transmute/x25519-key-pair": "^0.7.0-unstable.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/ed25519-signature-2018": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.60.tgz", + "integrity": "sha512-6Ch2u5/M0KWKw0FGTFf3rk824PZBeJJ8tgvGFWQIZk3dPfybkz4Ih+eZ7o1APXsy7J4EN7BSl+kg6g5DMmzBpw==", + "dependencies": { + "@transmute/ed25519-key-pair": "0.7.0-unstable.2", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "jsonld": "^5.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@transmute/jose-ld": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.60.tgz", + "integrity": "sha512-OAEJFVnB411VGRR5Jqgm/VRzNSCkuf66MQI4HvJsiYLlpooKhTSGuILWvnqtaT72Y9of7LNJNHlE5h/oVuqVIQ==", + "dependencies": { + "@peculiar/webcrypto": "^1.1.6", + "@stablelib/aes-kw": "^1.0.0", + "@stablelib/xchacha20poly1305": "^1.0.0", + "base64url": "^3.0.1", + "jose": "^4.3.8", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/json-web-signature": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.60.tgz", + "integrity": "sha512-vS9xIUZ1zihGp+ExXuRF0W6qr1TnkNFxAvss8jDExF1k+hgYvAzxhhH3uOkuIGmXPFj48A/69mXgcasULoncJQ==", + "dependencies": { + "@transmute/bls12381-key-pair": "^0.7.0-unstable.60", + "@transmute/ed25519-key-pair": "^0.7.0-unstable.60", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/secp256k1-key-pair": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/web-crypto-key-pair": "^0.7.0-unstable.60", + "jsonld": "^5.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/json-web-signature/node_modules/@transmute/ed25519-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-ZL123tGO5m2CIxuQuXv81XauYzlCxQVX5ulGVSlh4Yt74MZjzUILFnBMR19SZOlfRfSjgV4oJOwhQNWYXidBuw==", + "dependencies": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "@transmute/x25519-key-pair": "^0.7.0-unstable.60" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/jsonld-schema": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.60.tgz", + "integrity": "sha512-zKVU5uJ5s4rNhZDWawr0qejVlBV3IvZuKiYbr/wr44To0ZVtZraM0n0x0YhsBOcRnbDIODHZ+i/XcFu6Mwj6Fw==", + "dependencies": { + "ajv": "^8.6.1", + "genson-js": "0.0.5", + "jsonld": "^5.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/ld-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-GKYzOiSH++c9pFsZeZfIcc2IfYvxgHUGI3lymtaPDwSlFV/1XKsOHxXobwgf5SWv30GfI+sBDmBoeaQ92sKj+g==" + }, + "node_modules/@transmute/linked-data-proof": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.60.tgz", + "integrity": "sha512-GtyGLItYN2NUPb7IAKOj+7bVhc+LR6MRuW/SXHrvnyG24IZasAjXIPzU1g/eoMTjM4X/4N/1HGooHBeALU/eCQ==", + "dependencies": { + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/secp256k1-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-gH0+JXlg6OKT4nS6GUtJ9bgwYvfGEFDDMS+xDXgmh5nfgHhdjRjoLb2ckp5qmt6GzJ5gbIQAxVcFkZgSWegjhQ==", + "dependencies": { + "@bitauth/libauth": "^1.18.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "secp256k1": "^4.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/security-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-zkCp5k9i+KLnqCa8cx3gIYGv490iKGysjyMbK8maHlo4GejGHXR1ZZgoWYHnuEHcVpzs1m2oferjJ1TCIdrwdA==" + }, + "node_modules/@transmute/vc.js": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.60.tgz", + "integrity": "sha512-r6xHSerlkE59hvQdlF/d/kl4AIApI5/55d3vvbMilEqSkBvgHIk29NxNz6Q7IjXoZegWBOyviKeOzQ3bJWGARQ==", + "dependencies": { + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/linked-data-proof": "^0.7.0-unstable.60", + "jsonld": "^5.2.0", + "moment": "^2.29.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/web-crypto-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-8Y4UGycX8ri9JLO65YIrLLohE4/cphcm4/ERX45hrPCgzBzHO/axLn7b5IQPI5iI9Brt7HtJZ2Wg4wmU2aJl/Q==", + "dependencies": { + "@peculiar/webcrypto": "^1.1.6", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "big-integer": "^1.6.48" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@transmute/x25519-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-dKUnr4QxE0T7w+IeHTr244hbJBkCO07wibbxhsqINi1CuAhIgTyFnoaUZlJidc6q1dA/2VR9eL3B8OcdEm6Teg==", + "dependencies": { + "@stablelib/x25519": "^1.0.0", + "@transmute/ld-key-pair": "^0.7.0-unstable.60" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-mMUu4nWHLBlHtxXY17Fg6+ucS/MnndyOWyOe7MmwkoMYxvfQU2ajtRaEvqSUv+aVkMqH/C0NCI8UoVfRNQ10yg==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", + "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jszip": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.4.1.tgz", + "integrity": "sha512-TezXjmf3lj+zQ651r6hPqvSScqBLvyPI9FxdXBqpEwBijNGQ2NXpaFW/7joGzveYkKQUil7iiDHLo6LV71Pc0A==", + "deprecated": "This is a stub types definition. jszip provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "jszip": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" + }, + "node_modules/@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/swagger-ui-express": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.3.tgz", + "integrity": "sha512-jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==", + "dev": true, + "dependencies": { + "@types/express": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "peer": true + }, + "node_modules/@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/@urql/core": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "peer": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "peer": true, + "dependencies": { + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@web-std/blob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.4.tgz", + "integrity": "sha512-+dibyiw+uHYK4dX5cJ7HA+gtDAaUUe6JsOryp2ZpAC7h4ICsh49E34JwHoEKPlPvP0llCrNzz45vvD+xX5QDBg==", + "dependencies": { + "@web-std/stream": "1.0.0", + "web-encoding": "1.1.5" + } + }, + "node_modules/@web-std/fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-3.0.0.tgz", + "integrity": "sha512-U1b9gjmBZllDL/B+F4eef0Yq2eJDsmPzZOGGOpoMry/bPIUVT0WCIj3PO6jZaGtcQY8JpyiFJa1S8Z4KJJGl0Q==", + "dependencies": { + "@web-std/blob": "^3.0.0", + "@web-std/form-data": "^3.0.0", + "@web3-storage/multipart-parser": "^1.0.0", + "data-uri-to-buffer": "^3.0.1" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@web-std/file": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@web-std/file/-/file-3.0.2.tgz", + "integrity": "sha512-pIH0uuZsmY8YFvSHP1NsBIiMT/1ce0suPrX74fEeO3Wbr1+rW0fUGEe4d0R99iLwXtyCwyserqCFI4BJkJlkRA==", + "dependencies": { + "@web-std/blob": "^3.0.3" + } + }, + "node_modules/@web-std/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@web-std/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-rhc8IRw66sJ0FHcnC84kT3mTN6eACTuNftkt1XSl1Ef6WRKq4Pz65xixxqZymAZl1K3USpwhLci4SKNn4PYxWQ==", + "dependencies": { + "web-encoding": "1.1.5" + } + }, + "node_modules/@web-std/stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.0.tgz", + "integrity": "sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==", + "peer": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "devOptional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "optional": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ansi-escape-sequences/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/api-docs": { + "resolved": "api-docs", + "link": true + }, + "node_modules/api-gateway": { + "resolved": "api-gateway", + "link": true + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q==", + "peer": true + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "peer": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "optional": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "peer": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/auth-service": { + "resolved": "auth-service", + "link": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/axios-retry": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.5.tgz", + "integrity": "sha512-a8umkKbfIkTiYJQLx3v3TzKM85TGKB8ZQYz4zwykt2fpO64TsRlUhjaPaAb3fqMWCXFm2YhWcd8V5FHDKO9bSA==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "peer": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-module-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", + "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", + "peer": true, + "dependencies": { + "find-babel-config": "^1.2.0", + "glob": "^7.1.6", + "pkg-up": "^3.1.0", + "reselect": "^4.0.0", + "resolve": "^1.13.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-react-native-web": { + "version": "0.17.7", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.17.7.tgz", + "integrity": "sha512-UBLfIsfU3vi//Ab4i0WSWAfm1whLTK9uJoH0RPZ6a67eS/h9JGYjKy7+1RpHxSBviHi9NIMiYfWseTLjyIsE1g==", + "peer": true + }, + "node_modules/babel-preset-expo": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.1.0.tgz", + "integrity": "sha512-dFcgT7AY5n15bLnfOM6R25f8Lh7YSALj4zeGze6aspYHfVrREYcovVG0eMGpY9V24fnwByNRv85lElc1jAj1Mw==", + "peer": true, + "dependencies": { + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-transform-react-jsx": "^7.12.17", + "@babel/preset-env": "^7.12.9", + "babel-plugin-module-resolver": "^4.1.0", + "babel-plugin-react-native-web": "~0.17.1", + "metro-react-native-babel-preset": "~0.67.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "peer": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/blob-polyfill": { + "version": "5.0.20210201", + "resolved": "https://registry.npmjs.org/blob-polyfill/-/blob-polyfill-5.0.20210201.tgz", + "integrity": "sha512-SrH6IG6aXL9pCgSysBCiDpGcAJ1j6/c1qCwR3sTEQJhb+MTk6FITNA6eW6WNYQDNZVi4Z9GjxH5v2MMTv59CrQ==" + }, + "node_modules/blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "dependencies": { + "browser-readablestream-to-it": "^1.0.3" + } + }, + "node_modules/blockstore-core": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz", + "integrity": "sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA==", + "dependencies": { + "err-code": "^3.0.1", + "interface-blockstore": "^2.0.2", + "interface-store": "^2.0.1", + "it-all": "^1.0.4", + "it-drain": "^1.0.4", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "multiformats": "^9.4.7" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "peer": true + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "peer": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bplist-creator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "peer": true, + "dependencies": { + "stream-buffers": "2.2.x" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "peer": true, + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", + "escalade": "^3.1.1", + "node-releases": "^2.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bson": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "peer": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "peer": true + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "peer": true + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "peer": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001350", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz", + "integrity": "sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "peer": true + }, + "node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" + }, + "node_modules/carbites": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/carbites/-/carbites-1.0.6.tgz", + "integrity": "sha512-dS9IQvnrb5VIRvSTNz5Ff+mB9d2MFfi5mojtJi7Rlss79VeF190jr0sZdA7eW0CGHotvHkZaWuM6wgfD9PEFRg==", + "dependencies": { + "@ipld/car": "^3.0.1", + "@ipld/dag-cbor": "^6.0.3", + "@ipld/dag-pb": "^2.0.2", + "multiformats": "^9.0.4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/cborg": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.9.4.tgz", + "integrity": "sha512-ltobKo17xKYJolhg8UxQhvzcqXhjtUnovwe9Xx59Izo32gLwozGoJs/efp+8dZ5+zu9pNJYnHtmp6iJnDUapww==", + "bin": { + "cborg": "cli.js" + } + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "optional": true + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "peer": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "optional": true + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "node_modules/command-line-args": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", + "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", + "optional": true, + "dependencies": { + "array-back": "^2.0.0", + "find-replace": "^1.0.3", + "typical": "^2.6.1" + }, + "bin": { + "command-line-args": "bin/cli.js" + } + }, + "node_modules/command-line-commands": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", + "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", + "optional": true, + "dependencies": { + "array-back": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "optional": true, + "dependencies": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "peer": true + }, + "node_modules/complex.js": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", + "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/component-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", + "integrity": "sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==", + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js-compat": { + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz", + "integrity": "sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==", + "peer": true, + "dependencies": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cron": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cron/-/cron-2.0.0.tgz", + "integrity": "sha512-RPeRunBCFr/WEo7WLp8Jnm45F/ziGJiHVvVQEBSDTSGu6uHW49b2FOP2O14DcXlGJRLhwE7TIoDzHHK4KmlL6g==", + "dependencies": { + "luxon": "^1.23.x" + } + }, + "node_modules/cross-blob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cross-blob/-/cross-blob-2.0.1.tgz", + "integrity": "sha512-ARuKPPo3I6DSqizal4UCyMCiGPQdMpMJS3Owx6Lleuh26vSt2UnfWRwbMLCYqbJUrcol+KzGVSLR91ezSHP80A==", + "dependencies": { + "blob-polyfill": "^5.0.20210201", + "fetch-blob": "^2.1.2" + }, + "engines": { + "node": "^10.17.0 || >=12.3.0" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "peer": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", + "peer": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "dependencies": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "peer": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "peer": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "peer": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "dependencies": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-fetch": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", + "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", + "dependencies": { + "encoding": "^0.1.13" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.148", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz", + "integrity": "sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ==", + "peer": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "peer": true + }, + "node_modules/err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "peer": true + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/expo": { + "version": "45.0.5", + "resolved": "https://registry.npmjs.org/expo/-/expo-45.0.5.tgz", + "integrity": "sha512-ND+Fo/iLZK1ubMvPFzraIQBvtGL7a4ZHGIP8N1PjcOtTGrCc6X7IWyLkfPMAck2yhd80ZTbos8vTU3SAUuBcJw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.14.0", + "@expo/cli": "0.1.5", + "@expo/vector-icons": "^13.0.0", + "babel-preset-expo": "~9.1.0", + "cross-spawn": "^6.0.5", + "expo-application": "~4.1.0", + "expo-asset": "~8.5.0", + "expo-constants": "~13.1.1", + "expo-file-system": "~14.0.0", + "expo-font": "~10.1.0", + "expo-keep-awake": "~10.1.1", + "expo-modules-autolinking": "0.8.1", + "expo-modules-core": "0.9.2", + "fbemitter": "^3.0.0", + "getenv": "^1.0.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3", + "node-fetch": "^2.6.7", + "pretty-format": "^26.5.2", + "uuid": "^3.4.0" + }, + "bin": { + "expo": "bin/cli.js" + }, + "optionalDependencies": { + "expo-error-recovery": "~3.1.0" + } + }, + "node_modules/expo-application": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.1.0.tgz", + "integrity": "sha512-Z2kctgVMpYZB1Iwaxd+XcMBq7h8EEY50GGrwxXsb1OHHQKN+WEVGBWxjvtPkAroqCdujLaB5HBay46gvUHRDQg==", + "peer": true, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-asset": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.5.0.tgz", + "integrity": "sha512-k3QErZYxb6e6rPkJ1sG5yIJ7bhd4RFvnFStz0ZCO6SfktGygBAjTz5aTOLaaomiCIObRiBQ4byky/RLdli/NLw==", + "peer": true, + "dependencies": { + "blueimp-md5": "^2.10.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3", + "path-browserify": "^1.0.0", + "url-parse": "^1.5.9" + } + }, + "node_modules/expo-constants": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.1.1.tgz", + "integrity": "sha512-QRVHrrMCLenBzWZ8M+EvCXM+jjdQzFMW27YQHRac3SGGoND1hWr81scOmGwlFo2wLZrYXm8HcYt1E6ry3IIwrA==", + "peer": true, + "dependencies": { + "@expo/config": "^6.0.14", + "uuid": "^3.3.2" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-crypto": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.2.0.tgz", + "integrity": "sha512-YVFp+DJXBtt4t6oZXepnzb+xwpKzFbXn3B9Oma1Tfh6J0rIlm/I20UW/5apdvEdbj44fxJ5DsiZeyADI3bcZkQ==", + "peer": true, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-error-recovery": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.1.0.tgz", + "integrity": "sha512-qUxCW7kPB6AVX5h3ZPVnxw4LLZWsRwAPBtRDlh1UDN7GWZ+CQN1SNk0w0BPotjNtSlXEZSFDqKqtoDDAUYjNmg==", + "optional": true, + "peer": true, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-file-system": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.0.0.tgz", + "integrity": "sha512-Asva7ehLUq/PIem6Y+/OQvoIqhFqYDd7l4l49yDRDgLSbK2I7Fr8qGhDeDpnUXrMVamg2uwt9zRGhyrjFNRhVw==", + "peer": true, + "dependencies": { + "@expo/config-plugins": "^4.0.14", + "uuid": "^3.4.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-font": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.1.0.tgz", + "integrity": "sha512-vmhzpE95Ym4iOj8IELof+C/3Weert2B3LyxV5rBjGosjzBdov+o+S6b5mN7Yc9kyEGykwB6k7npL45X3hFYDQA==", + "peer": true, + "dependencies": { + "fontfaceobserver": "^2.1.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-keep-awake": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.1.1.tgz", + "integrity": "sha512-9zC0sdhQljUeMr2yQ7o4kzEZXVAy82fFOAZE1+TwPL7qR0b0sphe7OJ5T1GX1qLcwuVaJ8YewaPoLSHRk79+Rg==", + "peer": true, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-modules-autolinking": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.8.1.tgz", + "integrity": "sha512-S8qfaXCv//7tQWV9M+JKx3CF7ypYhDdSUbkUQdaVO/r8D76/aRTArY/aRw1yEfaAOzyK8C8diDToV1itl51DfQ==", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "commander": "^7.2.0", + "fast-glob": "^3.2.5", + "find-up": "^5.0.0", + "fs-extra": "^9.1.0" + }, + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + } + }, + "node_modules/expo-modules-autolinking/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo-modules-core": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.9.2.tgz", + "integrity": "sha512-p/C0GJxFIIDGwmrWi70Q0ggfsgeUFS25ZkkBgoaHT7MVgiMjlKA/DCC3D6ZUkHl/JlzUm0aTftIGS8LWXsnZBw==", + "peer": true, + "dependencies": { + "compare-versions": "^3.4.0", + "invariant": "^2.2.4" + } + }, + "node_modules/expo-random": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.2.0.tgz", + "integrity": "sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g==", + "peer": true, + "dependencies": { + "base64-js": "^1.3.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/expo/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/expo/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/expo/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expo/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expo/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "optional": true, + "dependencies": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/factory.ts": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/factory.ts/-/factory.ts-0.5.2.tgz", + "integrity": "sha512-I4YDKuyMW+s2PocnWh/Ekv9wSStt/MNN1ZRb1qhy0Kv056ndlzbLHDsW9KEmTAqMpLI3BtjSqEdZ7ZfdnaXn9w==", + "dependencies": { + "clone-deep": "^4.0.1", + "source-map-support": "^0.5.19" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-fifo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", + "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "peer": true, + "dependencies": { + "fbjs": "^3.0.0" + } + }, + "node_modules/fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "peer": true, + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "peer": true + }, + "node_modules/fetch-blob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", + "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==", + "engines": { + "node": "^10.17.0 || >=12.3.0" + }, + "peerDependenciesMeta": { + "domexception": { + "optional": true + } + } + }, + "node_modules/fetch-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", + "peer": true + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", + "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "peer": true, + "dependencies": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-babel-config/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/find-replace": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", + "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", + "optional": true, + "dependencies": { + "array-back": "^1.0.4", + "test-value": "^2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-replace/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "optional": true, + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "peer": true, + "dependencies": { + "micromatch": "^4.0.2" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fontfaceobserver": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", + "peer": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/genson-js": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/genson-js/-/genson-js-0.0.5.tgz", + "integrity": "sha512-1i1y9MIGzTRkn4TusWQwLWLu8IJGHgSE+fbQRt1fy68ZKEq2GjDZI/7NUSZFOfTbHz8bgjP4iCIOcdYrgEsMBA==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-config": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", + "integrity": "sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA==", + "optional": true, + "dependencies": { + "iniparser": "~1.0.5" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "peer": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/guardian-service": { + "resolved": "guardian-service", + "link": true + }, + "node_modules/hamt-sharding": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz", + "integrity": "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==", + "dependencies": { + "sparse-array": "^1.3.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "optional": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "peer": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "peer": true + }, + "node_modules/http-errors/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "peer": true + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb-keyval": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.1.0.tgz", + "integrity": "sha512-u/qHZ75rlD3gH+Zah8dAJVJcGW/RfCnfNrFkElC5RpRCnpsCXXhqjVk+6MoVKJ3WhmNbRYdI6IIVP88e+5sxGw==", + "dependencies": { + "safari-14-idb-fix": "^3.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "peer": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/iniparser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", + "integrity": "sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw==", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "optional": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "optional": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "optional": true + }, + "node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "optional": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optional": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/interface-blockstore": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz", + "integrity": "sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==", + "dependencies": { + "interface-store": "^2.0.2", + "multiformats": "^9.0.4" + } + }, + "node_modules/interface-datastore": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz", + "integrity": "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==", + "dependencies": { + "interface-store": "^2.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "peer": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "peer": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipfs-car": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ipfs-car/-/ipfs-car-0.6.2.tgz", + "integrity": "sha512-tliuakkKKtCa4TTnFT3zJKjq/aD8EGKX8Y0ybCyrAW0fo/n2koZpxiLjBvtTs47Rqyji6ggXo+atPbJJ60hJmg==", + "dependencies": { + "@ipld/car": "^3.2.3", + "@web-std/blob": "^3.0.1", + "bl": "^5.0.0", + "blockstore-core": "^1.0.2", + "browser-readablestream-to-it": "^1.0.2", + "idb-keyval": "^6.0.3", + "interface-blockstore": "^2.0.2", + "ipfs-core-types": "^0.8.3", + "ipfs-core-utils": "^0.12.1", + "ipfs-unixfs-exporter": "^7.0.4", + "ipfs-unixfs-importer": "^9.0.4", + "ipfs-utils": "^9.0.2", + "it-all": "^1.0.5", + "it-last": "^1.0.5", + "it-pipe": "^1.1.0", + "meow": "^9.0.0", + "move-file": "^2.1.0", + "multiformats": "^9.6.3", + "stream-to-it": "^0.2.3", + "streaming-iterables": "^6.0.0", + "uint8arrays": "^3.0.0" + }, + "bin": { + "🚘": "dist/cjs/cli/cli.js", + "ipfs-car": "dist/cjs/cli/cli.js" + } + }, + "node_modules/ipfs-client": { + "resolved": "ipfs-client", + "link": true + }, + "node_modules/ipfs-core-types": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.8.4.tgz", + "integrity": "sha512-sbRZA1QX3xJ6ywTiVQZMOxhlhp4osAZX2SXx3azOLxAtxmGWDMkHYt722VV4nZ2GyJy8qyk5GHQIZ0uvQnpaTg==", + "dependencies": { + "interface-datastore": "^6.0.2", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13" + } + }, + "node_modules/ipfs-core-utils": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.12.2.tgz", + "integrity": "sha512-RfxP3rPhXuqKIUmTAUhmee6fmaV3A7LMnjOUikRKpSyqESz/DR7aGK7tbttMxkZdkSEr0rFXlqbyb0vVwmn0wQ==", + "dependencies": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.8.4", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.2", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.2", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiaddr-to-uri": "^8.0.0", + "multiformats": "^9.4.13", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/ipfs-unixfs": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", + "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", + "dependencies": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-unixfs-exporter": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.11.tgz", + "integrity": "sha512-qTYa69J7HbI2EIYNUddKPg9Y3rHkYZV0bNdmzZKA5+ZbwRVoUEuBW/cguEqTp22zHygh3sMnzYZFm0naVIdMgQ==", + "dependencies": { + "@ipld/dag-cbor": "^7.0.2", + "@ipld/dag-pb": "^2.0.2", + "@multiformats/murmur3": "^1.0.3", + "err-code": "^3.0.1", + "hamt-sharding": "^2.0.0", + "interface-blockstore": "^2.0.3", + "ipfs-unixfs": "^6.0.0", + "it-last": "^1.0.5", + "multiformats": "^9.4.2", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-unixfs-exporter/node_modules/@ipld/dag-cbor": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.2.tgz", + "integrity": "sha512-V9EhJVWXqzjjRs0kiZfUXOaq8y6R2C4AAmfGoMeszqGOBgfACr5tFAgAwZY0e8z/OpmJWpCrZhzPRTZV0c/gjA==", + "dependencies": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "node_modules/ipfs-unixfs-importer": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.10.tgz", + "integrity": "sha512-W+tQTVcSmXtFh7FWYWwPBGXJ1xDgREbIyI1E5JzDcimZLIyT5gGMfxR3oKPxxWj+GKMpP5ilvMQrbsPzWcm3Fw==", + "dependencies": { + "@ipld/dag-pb": "^2.0.2", + "@multiformats/murmur3": "^1.0.3", + "bl": "^5.0.0", + "err-code": "^3.0.1", + "hamt-sharding": "^2.0.0", + "interface-blockstore": "^2.0.3", + "ipfs-unixfs": "^6.0.0", + "it-all": "^1.0.5", + "it-batch": "^1.0.8", + "it-first": "^1.0.6", + "it-parallel-batch": "^1.0.9", + "merge-options": "^3.0.4", + "multiformats": "^9.4.2", + "rabin-wasm": "^0.1.4", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-utils": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.6.tgz", + "integrity": "sha512-/WfdwOIiJVb3uqfKRQ9Eo+vCEKsDgp7h4Pdc37MRwAiFciZ7xKAkEqsfXubV0VQi8x5jWTifeHn8WEPBLL451w==", + "dependencies": { + "any-signal": "^3.0.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "^1.0.1", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" + } + }, + "node_modules/ipfs-utils/node_modules/any-signal": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", + "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" + }, + "node_modules/ipfs-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/ipfs-utils/node_modules/node-fetch": { + "name": "@achingbrain/node-fetch", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-electron": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", + "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "peer": true, + "dependencies": { + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "peer": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ip/node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "peer": true, + "dependencies": { + "is-invalid-path": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", + "engines": { + "node": ">=12" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/it-all": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", + "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + }, + "node_modules/it-batch": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", + "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" + }, + "node_modules/it-drain": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", + "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" + }, + "node_modules/it-filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", + "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" + }, + "node_modules/it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "node_modules/it-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "dependencies": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "node_modules/it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" + }, + "node_modules/it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "node_modules/it-parallel-batch": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz", + "integrity": "sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg==", + "dependencies": { + "it-batch": "^1.0.9" + } + }, + "node_modules/it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" + }, + "node_modules/it-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" + }, + "node_modules/it-take": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", + "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" + }, + "node_modules/it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "dependencies": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/it-to-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/it-to-stream/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "node_modules/jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "peer": true + }, + "node_modules/join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", + "peer": true + }, + "node_modules/jose": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.1.tgz", + "integrity": "sha512-+/hpTbRcCw9YC0TOfN1W47pej4a9lRmltdOVdRLz5FP5UvUq3CenhXjQK7u/8NdMIIShMXYAh9VLPhc7TjhvFw==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-base64": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", + "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==" + }, + "node_modules/js-logger": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/js-logger/-/js-logger-1.6.1.tgz", + "integrity": "sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "peer": true, + "dependencies": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/json-schema-deref-sync/node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "peer": true, + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonld": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-5.2.0.tgz", + "integrity": "sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw==", + "dependencies": { + "@digitalbazaar/http-client": "^1.1.0", + "canonicalize": "^1.0.1", + "lru-cache": "^6.0.0", + "rdf-canonize": "^3.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsonld-checker": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/jsonld-checker/-/jsonld-checker-0.1.7.tgz", + "integrity": "sha512-AFBFjRttHzB5Q78SATl5Qhc3hQEnmiEqLuUIpfVx8bn5ODhO1M0IiV9PRPUMe6IZjedGWOZEmzieNIBs88EDVg==", + "dependencies": { + "jsonld": "^3.1.1", + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonld-checker/node_modules/jsonld": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-3.3.2.tgz", + "integrity": "sha512-DXqG/fdiG7eJ8FzvSd58bW8DQsulQR/gjLYUz9PxBP/WTTpB2HzjjdxSAx5aBHewJ0RiFAV/QcqGCJjxHvuIzw==", + "dependencies": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0", + "xmldom": "0.1.19" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonld-checker/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/jsonld-checker/node_modules/rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "dependencies": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonld-checker/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jszip": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ky": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", + "integrity": "sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/ky-universal": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.8.2.tgz", + "integrity": "sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "node-fetch": "3.0.0-beta.9" + }, + "engines": { + "node": ">=10.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky-universal?sponsor=1" + }, + "peerDependencies": { + "ky": ">=0.17.0", + "web-streams-polyfill": ">=2.0.0" + }, + "peerDependenciesMeta": { + "web-streams-polyfill": { + "optional": true + } + } + }, + "node_modules/ky-universal/node_modules/node-fetch": { + "version": "3.0.0-beta.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", + "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==", + "dependencies": { + "data-uri-to-buffer": "^3.0.1", + "fetch-blob": "^2.1.1" + }, + "engines": { + "node": "^10.17 || >=12.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "peer": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "optional": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logger-service": { + "resolved": "logger-service", + "link": true + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/luxon": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz", + "integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==", + "engines": { + "node": "*" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathjs": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", + "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "complex.js": "^2.1.1", + "decimal.js": "^10.3.1", + "escape-latex": "^1.2.0", + "fraction.js": "^4.2.0", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^2.1.0" + }, + "bin": { + "mathjs": "bin/cli.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "peer": true, + "dependencies": { + "buffer-alloc": "^1.1.0" + }, + "bin": { + "md5-file": "cli.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", + "peer": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", + "peer": true + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/metro-react-native-babel-preset": { + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", + "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", + "peer": true, + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "peer": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha-junit-reporter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz", + "integrity": "sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^6.0.1", + "xml": "^1.0.0" + }, + "peerDependencies": { + "mocha": ">=2.2.5" + } + }, + "node_modules/mocha-junit-reporter/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha-junit-reporter/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" + }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "engines": { + "node": "*" + } + }, + "node_modules/mongodb": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", + "optional": true, + "peer": true, + "dependencies": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.1.8", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz", + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongodb/node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "optional": true, + "peer": true, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/mongodb/node_modules/bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/mongodb/node_modules/denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/move-file": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", + "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", + "dependencies": { + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/move-file/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multiaddr": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", + "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", + "dependencies": { + "dns-over-http-resolver": "^1.2.3", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multiformats": "^9.4.5", + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/multiaddr-to-uri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", + "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", + "dependencies": { + "multiaddr": "^10.0.0" + } + }, + "node_modules/multiformats": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.5.tgz", + "integrity": "sha512-vMwf/FUO+qAPvl3vlSZEgEVFY/AxeZq5yg761ScF3CZsXgmTi/HGkicUiNN0CI4PW8FiY2P0OLklOcmQjdQJhw==" + }, + "node_modules/murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "optional": true + }, + "node_modules/mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", + "optional": true, + "peer": true, + "dependencies": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mv/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "optional": true, + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mv/node_modules/rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "optional": true, + "peer": true, + "dependencies": { + "glob": "^6.0.1" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "peerDependencies": { + "abort-controller": "*" + } + }, + "node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "dependencies": { + "nkeys.js": "^1.0.0-9" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "optional": true, + "peer": true, + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "optional": true + }, + "node_modules/neon-cli": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", + "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", + "optional": true, + "dependencies": { + "chalk": "~2.1.0", + "command-line-args": "^4.0.2", + "command-line-commands": "^2.0.0", + "command-line-usage": "^4.0.0", + "git-config": "0.0.7", + "handlebars": "^4.1.0", + "inquirer": "^3.0.6", + "mkdirp": "^0.5.1", + "quickly-copy-file": "^1.0.0", + "rimraf": "^2.6.1", + "rsvp": "^4.6.1", + "semver": "^5.1.0", + "toml": "^2.3.0", + "ts-typed-json": "^0.2.2", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + }, + "bin": { + "neon": "bin/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/neon-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/neon-cli/node_modules/chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "optional": true, + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/neon-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/neon-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "optional": true + }, + "node_modules/neon-cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/neon-cli/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/neon-cli/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/neon-cli/node_modules/supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "optional": true, + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "peer": true + }, + "node_modules/nft.storage": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/nft.storage/-/nft.storage-5.2.5.tgz", + "integrity": "sha512-ITP9ETleKIZvSRsjpHi6JFFE/YVcp9jwwyi+Q1GtdNmFc5Xyu1g7it+yrk7m5+iSEMcOjSJGPQrktnUTe0qtAg==", + "dependencies": { + "@ipld/car": "^3.2.3", + "@ipld/dag-cbor": "^6.0.13", + "@web-std/blob": "^3.0.1", + "@web-std/fetch": "^3.0.3", + "@web-std/file": "^3.0.0", + "@web-std/form-data": "^3.0.0", + "carbites": "^1.0.6", + "ipfs-car": "^0.6.2", + "multiformats": "^9.6.3", + "p-retry": "^4.6.1", + "streaming-iterables": "^6.0.0" + } + }, + "node_modules/nft.storage/node_modules/@web-std/fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-3.0.3.tgz", + "integrity": "sha512-PtaKr6qvw2AmKChugzhQWuTa12dpbogHRBxwcleAZ35UhWucnfD4N+g3f7qYK2OeioSWTK3yMf6n/kOOfqxHaQ==", + "dependencies": { + "@web-std/blob": "^3.0.3", + "@web-std/form-data": "^3.0.2", + "@web3-storage/multipart-parser": "^1.0.0", + "data-uri-to-buffer": "^3.0.1" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "peer": true + }, + "node_modules/nise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nise/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "dependencies": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/nkeys.js/node_modules/@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "peer": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-pre-gyp": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", + "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", + "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/node-pre-gyp/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "optional": true + }, + "node_modules/node-pre-gyp/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/node-pre-gyp/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp/node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "optional": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-pre-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "peer": true + }, + "node_modules/nodemon": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "optional": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "optional": true + }, + "node_modules/npm-package-arg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "peer": true, + "dependencies": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "peer": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "optional": true, + "peer": true, + "dependencies": { + "require-at": "^1.0.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "peer": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "dependencies": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "peer": true, + "dependencies": { + "pngjs": "^3.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "peer": true, + "dependencies": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + } + }, + "node_modules/password-prompt/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/password-prompt/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/password-prompt/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/password-prompt/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/password-prompt/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/password-prompt/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "peer": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "peer": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "peer": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "peer": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "peer": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "peer": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "peer": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "peer": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/quickly-copy-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", + "integrity": "sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg==", + "optional": true, + "dependencies": { + "mkdirp": "~0.5.0" + } + }, + "node_modules/rabin-wasm": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", + "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", + "dependencies": { + "@assemblyscript/loader": "^0.9.4", + "bl": "^5.0.0", + "debug": "^4.3.1", + "minimist": "^1.2.5", + "node-fetch": "^2.6.1", + "readable-stream": "^3.6.0" + }, + "bin": { + "rabin-wasm": "cli/bin.js" + } + }, + "node_modules/rabin-wasm/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "peer": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rdf-canonize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.0.0.tgz", + "integrity": "sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w==", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "peer": true + }, + "node_modules/react-native-fetch-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "dependencies": { + "p-defer": "^3.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "peer": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "peer": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "peer": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", + "peer": true + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "peer": true, + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "peer": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "peer": true + }, + "node_modules/reselect": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==", + "peer": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "peer": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rewire": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "dev": true, + "dependencies": { + "eslint": "^7.32.0" + } + }, + "node_modules/rfc4648": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", + "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "optional": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", + "optional": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", + "optional": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/safari-14-idb-fix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", + "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true, + "peer": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "optional": true + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-plist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "peer": true, + "dependencies": { + "bplist-creator": "0.1.0", + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + } + }, + "node_modules/simple-plist/node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "peer": true, + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/sinon": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", + "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sparse-array": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", + "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "peer": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "peer": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "peer": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/stream-to-it": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/streaming-iterables": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", + "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "optional": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "optional": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "peer": true + }, + "node_modules/sucrase": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.21.0.tgz", + "integrity": "sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==", + "peer": true, + "dependencies": { + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "peer": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swagger-ui-dist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.12.0.tgz", + "integrity": "sha512-B0Iy2ueXtbByE6OOyHTi3lFQkpPi/L7kFOKFeKTr44za7dJIELa9kzaca6GkndCgpK1QTjArnoXG+aUy0XQp1w==" + }, + "node_modules/swagger-ui-express": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.4.0.tgz", + "integrity": "sha512-1CzRkHG386VQMVZK406jcpgnW2a9A5A/NiAjKhsFTQqUBWRF+uGbXTU/mA7WSV3mTzyOQDvjBdWP/c2qd5lqKw==", + "dependencies": { + "swagger-ui-dist": ">=4.11.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "optional": true, + "dependencies": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "peer": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "peer": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "optional": true, + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-value/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "optional": true, + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", + "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", + "optional": true + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "peer": true + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "peer": true + }, + "node_modules/ts-typed-json": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", + "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", + "optional": true, + "dependencies": { + "rsvp": "^3.5.0" + } + }, + "node_modules/ts-typed-json/node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "optional": true, + "engines": { + "node": "0.12.* || 4.* || 6.* || >= 7.*" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + } + }, + "node_modules/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/tslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/tslint/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/tslint/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslint/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-function": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz", + "integrity": "sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typeorm": { + "version": "0.2.45", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz", + "integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==", + "dependencies": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "glob": "^7.1.6", + "js-yaml": "^4.0.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.1.0", + "uuid": "^8.3.2", + "xml2js": "^0.4.23", + "yargs": "^17.0.1", + "zen-observable-ts": "^1.0.0" + }, + "bin": { + "typeorm": "cli.js" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@sap/hana-client": "^2.11.14", + "better-sqlite3": "^7.1.2", + "hdb-pool": "^0.1.6", + "ioredis": "^4.28.3", + "mongodb": "^3.6.0", + "mssql": "^6.3.1", + "mysql2": "^2.2.5", + "oracledb": "^5.1.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.2", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/typeorm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typeorm/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/typeorm/node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/typeorm/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "optional": true + }, + "node_modules/ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", + "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "peer": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "peer": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "peer": true + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "peer": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "peer": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "dependencies": { + "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webcrypto-core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "dependencies": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "peer": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "optional": true + }, + "node_modules/wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "optional": true, + "dependencies": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/ws": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", + "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "peer": true, + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/xcode/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "peer": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmldom": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", + "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=", + "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", + "engines": { + "node": ">=0.1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "node_modules/zen-observable-ts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz", + "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", + "dependencies": { + "@types/zen-observable": "0.8.3", + "zen-observable": "0.8.15" + } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@assemblyscript/loader": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", + "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "peer": true + }, + "@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "peer": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "peer": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "peer": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "peer": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "peer": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "peer": true, + "requires": { + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "peer": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "peer": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", + "charcodes": "^0.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.17.12.tgz", + "integrity": "sha512-LpsTRw725eBAXXKUOnJJct+SEaOzwR78zahcLuripD2+dKc2Sj+8Q2DzA+GC/jOpOu/KlDXuxrzG214o1zTauQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-default-from": "^7.16.7" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "peer": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "peer": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "peer": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "peer": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "peer": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "peer": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-object-assign": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz", + "integrity": "sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz", + "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz", + "integrity": "sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + } + } + }, + "@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + } + } + }, + "@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bitauth/libauth": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@bitauth/libauth/-/libauth-1.19.1.tgz", + "integrity": "sha512-R524tD5VwOt3QRHr7N518nqTVR/HKgfWL4LypekcGuNQN8R4PWScvuRcRzrY39A28kLztMv+TJdiKuMNbkU1ug==" + }, + "@did-core/data-model": { + "version": "0.1.1-unstable.15", + "resolved": "https://registry.npmjs.org/@did-core/data-model/-/data-model-0.1.1-unstable.15.tgz", + "integrity": "sha512-l7gxLxegcXW7389G+j6o+S24lS8uasmJx5txWpW3QadNvOawKwvWn8bV59SdHSK806xNzIZaCLKmXKxebs8yAQ==", + "requires": { + "factory.ts": "^0.5.1" + } + }, + "@did-core/did-ld-json": { + "version": "0.1.1-unstable.15", + "resolved": "https://registry.npmjs.org/@did-core/did-ld-json/-/did-ld-json-0.1.1-unstable.15.tgz", + "integrity": "sha512-p2jKRxSU+eJJqd+ewCklYp/XZ6ysISk8VU2/kANCoB/WwUy/kVgw2rUNScRDXw2utr9Qj36P8EZTYi4aj7vRCQ==", + "requires": { + "@transmute/did-context": "^0.6.1-unstable.25", + "jsonld-checker": "^0.1.6" + }, + "dependencies": { + "@transmute/did-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" + } + } + }, + "@digitalbazaar/http-client": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-1.2.0.tgz", + "integrity": "sha512-W9KQQ5pUJcaR0I4c2HPJC0a7kRbZApIorZgPnEDwMBgj16iQzutGLrCXYaZOmxqVLVNqqlQ4aUJh+HBQZy4W6Q==", + "requires": { + "esm": "^3.2.22", + "ky": "^0.25.1", + "ky-universal": "^0.8.2" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "requires": { + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/logger": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", + "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" + }, + "@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "@expo/bunyan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", + "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==", + "peer": true, + "requires": { + "mv": "~2", + "safe-json-stringify": "~1", + "uuid": "^8.0.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + } + } + }, + "@expo/cli": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.1.5.tgz", + "integrity": "sha512-27LNT3b9MtBHEosmvJiC9Ug9aJpQAK9T3cC8ekaB9cHnVcJw+mJs2kdVBYpV1aBjKkH7T57aiWWimZp0O7m1wQ==", + "peer": true, + "requires": { + "@babel/runtime": "^7.14.0", + "@expo/code-signing-certificates": "^0.0.2", + "@expo/config": "~6.0.23", + "@expo/config-plugins": "~4.1.4", + "@expo/dev-server": "~0.1.110", + "@expo/devcert": "^1.0.0", + "@expo/json-file": "^8.2.35", + "@expo/metro-config": "~0.3.16", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "~0.0.52", + "@expo/plist": "^0.0.18", + "@expo/prebuild-config": "~4.0.0", + "@expo/rudder-sdk-node": "1.1.1", + "@expo/spawn-async": "1.5.0", + "@expo/xcpretty": "^4.1.1", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", + "accepts": "^1.3.8", + "arg": "4.1.0", + "better-opn": "~3.0.2", + "bplist-parser": "^0.3.1", + "cacache": "^15.3.0", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "env-editor": "^0.4.1", + "form-data": "^3.0.1", + "freeport-async": "2.0.0", + "fs-extra": "~8.1.0", + "getenv": "^1.0.0", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "internal-ip": "4.3.0", + "is-root": "^2.1.0", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", + "md5-file": "^3.2.3", + "md5hex": "^1.0.0", + "minipass": "3.1.6", + "node-fetch": "^2.6.7", + "node-forge": "^1.3.1", + "npm-package-arg": "^7.0.0", + "ora": "3.4.0", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "requireg": "^0.2.2", + "resolve-from": "^5.0.0", + "semver": "^6.3.0", + "slugify": "^1.3.4", + "structured-headers": "^0.4.1", + "tar": "^6.0.5", + "tempy": "^0.7.1", + "terminal-link": "^2.1.1", + "text-table": "^0.2.0", + "url-join": "4.0.0", + "uuid": "^3.4.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true + } + } + }, + "@expo/code-signing-certificates": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz", + "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==", + "peer": true, + "requires": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" + } + }, + "@expo/config": { + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-6.0.24.tgz", + "integrity": "sha512-OcACI1md1Yo5TQmUxxueJ/RaTlR2Mgl6KswTFOYCL1XJERF/jjAx95zhWXH+JQGdlM0yB0vqM6vB6GbUFRvLxA==", + "peer": true, + "requires": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "slugify": "^1.3.4", + "sucrase": "^3.20.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + } + } + }, + "@expo/config-plugins": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.5.tgz", + "integrity": "sha512-RVvU40RtZt12HavuDAe+LDIq9lHj7sheOfMEHdmpJ/uTA8pgvkbc56XF6JHQD+yRr6+uhhb+JnAasGq49dsQbw==", + "peer": true, + "requires": { + "@expo/config-types": "^45.0.0", + "@expo/json-file": "8.2.36", + "@expo/plist": "0.0.18", + "@expo/sdk-runtime-versions": "^1.0.0", + "@react-native/normalize-color": "^2.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "xcode": "^3.0.1", + "xml2js": "0.4.23" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@expo/config-types": { + "version": "45.0.0", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-45.0.0.tgz", + "integrity": "sha512-/QGhhLWyaGautgEyU50UJr5YqKJix5t77ePTwreOVAhmZH+ff3nrrtYTTnccx+qF08ZNQmfAyYMCD3rQfzpiJA==", + "peer": true + }, + "@expo/dev-server": { + "version": "0.1.113", + "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.113.tgz", + "integrity": "sha512-PT3HT+3h4ZS1bw6Zz8fqjNeryKOWe1FqGdnz4RSASxZGCzib6VHLfLbJeYHkq7t+ashSXRoAw3XW/9yVdbUqLA==", + "peer": true, + "requires": { + "@expo/bunyan": "4.0.0", + "@expo/metro-config": "0.3.18", + "@expo/osascript": "2.0.33", + "body-parser": "1.19.0", + "chalk": "^4.0.0", + "connect": "^3.7.0", + "fs-extra": "9.0.0", + "node-fetch": "^2.6.0", + "open": "^8.3.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "serialize-error": "6.0.0", + "temp-dir": "^2.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + }, + "serialize-error": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-6.0.0.tgz", + "integrity": "sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA==", + "peer": true, + "requires": { + "type-fest": "^0.12.0" + } + }, + "type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "peer": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true + } + } + }, + "@expo/devcert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz", + "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==", + "peer": true, + "requires": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + } + } + }, + "@expo/image-utils": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz", + "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==", + "peer": true, + "requires": { + "@expo/spawn-async": "1.5.0", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "mime": "^2.4.4", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "tempy": "0.3.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "peer": true + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "peer": true + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "peer": true, + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "peer": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "peer": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "peer": true + } + } + }, + "@expo/json-file": { + "version": "8.2.36", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz", + "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==", + "peer": true, + "requires": { + "@babel/code-frame": "~7.10.4", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + } + }, + "@expo/metro-config": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.18.tgz", + "integrity": "sha512-DWtwV67kD8X2uOKIs5QyHlHD+6L6RAgudZZDBmu433ZvL62HAUYfjEi3+i0jeMiUqN85o1vbXg6xqWnBCpS50g==", + "peer": true, + "requires": { + "@expo/config": "6.0.24", + "@expo/json-file": "8.2.36", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", + "getenv": "^1.0.0", + "resolve-from": "^5.0.0", + "sucrase": "^3.20.0" + } + }, + "@expo/osascript": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz", + "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==", + "peer": true, + "requires": { + "@expo/spawn-async": "^1.5.0", + "exec-async": "^2.2.0" + } + }, + "@expo/package-manager": { + "version": "0.0.54", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.54.tgz", + "integrity": "sha512-Sr7UsDh9Pcta1gAFZJgszodewEvg/XSRV1oV+iTrkUEhP7NziMrK5dE71O2FHmKGfdrDQgLexvq8HLZdfRskKw==", + "peer": true, + "requires": { + "@expo/json-file": "8.2.36", + "@expo/spawn-async": "^1.5.0", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "find-yarn-workspace-root": "~2.0.0", + "npm-package-arg": "^7.0.0", + "rimraf": "^3.0.2", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "peer": true + } + } + }, + "@expo/plist": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz", + "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==", + "peer": true, + "requires": { + "@xmldom/xmldom": "~0.7.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "@expo/prebuild-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-4.0.2.tgz", + "integrity": "sha512-+AQ/EVgcySl3cvYMmZLaEyGkxvQnO+UFU2mshmUoUh5lTIFTNKl1aVo0UmYW2/JehmKu6bxOrr/lL5byHv+fcQ==", + "peer": true, + "requires": { + "@expo/config": "6.0.24", + "@expo/config-plugins": "4.1.5", + "@expo/config-types": "^45.0.0", + "@expo/image-utils": "0.3.20", + "@expo/json-file": "8.2.36", + "debug": "^4.3.1", + "expo-modules-autolinking": "0.8.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "xml2js": "0.4.23" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "peer": true + } + } + }, + "@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "peer": true, + "requires": { + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + } + } + }, + "@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "peer": true + }, + "@expo/spawn-async": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", + "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.5" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@expo/vector-icons": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-13.0.0.tgz", + "integrity": "sha512-TI+l71+5aSKnShYclFa14Kum+hQMZ86b95SH6tQUG3qZEmLTarvWpKwqtTwQKqvlJSJrpFiSFu3eCuZokY6zWA==", + "peer": true + }, + "@expo/xcpretty": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.1.3.tgz", + "integrity": "sha512-testj0jpEe1IwRfnmQ3shizTXOY6IGcuMJg1vtmXy2bC9sPTLK1wjliRJp2xCJGcp1ZbEA1/eptzX+6MDnYjrA==", + "peer": true, + "requires": { + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + } + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "peer": true + }, + "@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "peer": true, + "requires": {} + }, + "@grpc/grpc-js": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", + "requires": { + "@grpc/proto-loader": "^0.6.4", + "@types/node": ">=12.12.47" + } + }, + "@grpc/proto-loader": { + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", + "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.11.3", + "yargs": "^16.2.0" + } + }, + "@guardian/common": { + "version": "file:common", + "requires": { + "@guardian/interfaces": "^2.0.0", + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "nats": "^2.6.1", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typescript": "^4.5.5", + "zlib": "^1.0.5" + } + }, + "@guardian/interfaces": { + "version": "file:interfaces", + "requires": { + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "@guardian/logger-helper": { + "version": "file:logger-helper", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@types/node": "^17.0.13", + "mocha-junit-reporter": "^2.0.2", + "tslint": "^6.1.3", + "typescript": "^4.5.5" + } + }, + "@hashgraph/cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.2.0.tgz", + "integrity": "sha512-sr7C4iUWIHnLU4LXgafkwEpDOpgtqHhQfAbPiyatzjngPu0euYZ0xeNSrzOpo2SXOhCyUffHFs4z/orIIkaYpg==", + "requires": { + "bignumber.js": "^9.0.2", + "crypto-js": "^4.1.1", + "elliptic": "^6.5.4", + "js-base64": "^3.7.2", + "tweetnacl": "^1.0.3", + "utf8": "^3.0.0" + } + }, + "@hashgraph/proto": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.5.0.tgz", + "integrity": "sha512-354Ozgf55mdPUUcED5E8n2ehGMO6mpOgtMIo4l4+t/wpp1qRmOfbHlVfI4TQN7W4WMb/CRnmbjCl6KDF/SnTxA==", + "requires": { + "long": "^4.0.0", + "protobufjs": "^6.11.2" + } + }, + "@hashgraph/sdk": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.15.0.tgz", + "integrity": "sha512-SP3Wnb7DlLwwhLqr3tnYfKVMyL6wfm+5aBCM6K0ES90b9yYlnTYehMO/EJAmSlvwer2abmzxEneHXP/DmK9LoQ==", + "requires": { + "@ethersproject/rlp": "^5.6.0", + "@grpc/grpc-js": "^1.6.7", + "@hashgraph/cryptography": "^1.2.0", + "@hashgraph/proto": "2.5.0", + "axios": "^0.27.2", + "bignumber.js": "^9.0.2", + "crypto-js": "^4.1.1", + "js-base64": "^3.7.2", + "js-logger": "^1.6.1", + "long": "^4.0.0", + "protobufjs": "^6.11.2", + "utf8": "^3.0.0" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@ipld/car": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.4.tgz", + "integrity": "sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==", + "requires": { + "@ipld/dag-cbor": "^7.0.0", + "multiformats": "^9.5.4", + "varint": "^6.0.0" + }, + "dependencies": { + "@ipld/dag-cbor": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.2.tgz", + "integrity": "sha512-V9EhJVWXqzjjRs0kiZfUXOaq8y6R2C4AAmfGoMeszqGOBgfACr5tFAgAwZY0e8z/OpmJWpCrZhzPRTZV0c/gjA==", + "requires": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + } + } + }, + "@ipld/dag-cbor": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz", + "integrity": "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==", + "requires": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "@ipld/dag-pb": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.17.tgz", + "integrity": "sha512-AmzOdmdv5hT8iGsrbpzm5R0Fvk7DEbtwcglG2gJLvW9q3zwb+E681hY4EwEELypM1Rfnp/JDA9dGqYcpEi/iAg==", + "requires": { + "multiformats": "^9.5.4" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@mattrglobal/bbs-signatures": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", + "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", + "requires": { + "@mattrglobal/node-bbs-signatures": "0.11.0" + } + }, + "@mattrglobal/bls12381-key-pair": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", + "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "requires": { + "@mattrglobal/bbs-signatures": "0.5.0", + "bs58": "4.0.1", + "rfc4648": "1.4.0" + } + }, + "@mattrglobal/node-bbs-signatures": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", + "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", + "optional": true, + "requires": { + "neon-cli": "0.4.0", + "node-pre-gyp": "0.14.0" + } + }, + "@multiformats/murmur3": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.3.tgz", + "integrity": "sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw==", + "requires": { + "multiformats": "^9.5.4", + "murmurhash3js-revisited": "^3.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "peer": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "peer": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "peer": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "peer": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "peer": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@peculiar/asn1-schema": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.8.tgz", + "integrity": "sha512-u34H/bpqCdDuqrCVZvH0vpwFBT/dNEdNY+eE8u4IuC26yYnhDkXF4+Hliqca88Avbb7hyN2EF/eokyDdyS7G/A==", + "requires": { + "asn1js": "^3.0.4", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz", + "integrity": "sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==", + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0", + "webcrypto-core": "^1.7.4" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@react-native/normalize-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.0.0.tgz", + "integrity": "sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==", + "peer": true + }, + "@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "peer": true, + "requires": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "@sqltools/formatter": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", + "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" + }, + "@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + }, + "@stablelib/aes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", + "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/aes-kw": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", + "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", + "requires": { + "@stablelib/aes": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "requires": { + "@stablelib/int": "^1.0.1" + } + }, + "@stablelib/blockcipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", + "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" + }, + "@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" + }, + "@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "requires": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" + }, + "@stablelib/ed25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", + "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", + "requires": { + "@stablelib/random": "^1.0.1", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" + }, + "@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" + }, + "@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "requires": { + "@stablelib/bytes": "^1.0.1" + } + }, + "@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "requires": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", + "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/sha512": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", + "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" + }, + "@stablelib/x25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz", + "integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==", + "requires": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/xchacha20": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", + "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/xchacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", + "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", + "requires": { + "@stablelib/aead": "^1.0.1", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1", + "@stablelib/xchacha20": "^1.0.1" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@transmute/bls12381-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/bls12381-key-pair/-/bls12381-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-QLgg0fPlGuNM3yt5LPfid1/f5bsDnnsJe/1NJRmQ3MmBMjjVIXmg9boT7TRISjMetMZa7QEP/3KUfjvaxSU+UQ==", + "requires": { + "@mattrglobal/bls12381-key-pair": "^0.5.0", + "@transmute/ld-key-pair": "^0.7.0-unstable.60" + } + }, + "@transmute/credentials-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/credentials-context/-/credentials-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-UvEqLuxcqdq7IsIRAKrW9tLRuinXnZgjIpP3e4vdEGdKrCXZtwS1oYM/Mt2cmqPeuISydiZjOzsNqUZYroTeoA==" + }, + "@transmute/did-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-6hnwcqVn+aFyx7yNvJ8W1SoAp7d21bBYF1FI0mGi4KJk6p83hvHYIlpdqMT4xvaR6txyeOLbZUoozaZFd1HVpw==" + }, + "@transmute/did-key-common": { + "version": "0.3.0-unstable.8", + "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.3.0-unstable.8.tgz", + "integrity": "sha512-R/EaPMKjd2n7BKNr9y6rpnwe+QvCbxaVdTVWfO43OfgtBjeXQSZEURwgK4cMJ4yTSmGcg+vWecJHX7ciUkpWiQ==", + "requires": { + "@did-core/data-model": "^0.1.1-unstable.13", + "@did-core/did-ld-json": "^0.1.1-unstable.13", + "@transmute/did-context": "^0.6.1-unstable.36", + "@transmute/ld-key-pair": "^0.6.1-unstable.36", + "@transmute/security-context": "^0.6.1-unstable.36" + }, + "dependencies": { + "@transmute/did-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/did-context/-/did-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-p/QnG3QKS4218hjIDgdvJOFATCXsAnZKgy4egqRrJLlo3Y6OaDBg7cA73dixOwUPoEKob0K6rLIGcsCI/L1acw==" + }, + "@transmute/ld-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" + }, + "@transmute/security-context": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.6.1-unstable.37.tgz", + "integrity": "sha512-GtLmG65qlORrz/2S4I74DT+vA4+qXsFxrMr0cNOXjUqZBd/AW1PTrFnryLF9907BfoiD58HC9qb1WVGWjSlBYw==" + } + } + }, + "@transmute/did-key-ed25519": { + "version": "0.3.0-unstable.8", + "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.3.0-unstable.8.tgz", + "integrity": "sha512-j6MQrUOVLsPqWRD7fn5XNwnE8Skb8jhJa61csDaJSCUQDvmlVwjaHpj+T/DS/MQ5AhQ+eLdtcVtOSjk4lc3NZA==", + "requires": { + "@transmute/did-key-common": "^0.3.0-unstable.8", + "@transmute/ed25519-key-pair": "^0.6.1-unstable.37" + }, + "dependencies": { + "@transmute/ed25519-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-l34yzE/QnQwmdk5xY9g2kD55e4XPp/jTZQzPu7I6J4Ar+bMaL/0RLL/pgvwyI7qUpsddxRf4WPZCCcZveqPcdA==", + "requires": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.6.1-unstable.37", + "@transmute/x25519-key-pair": "^0.6.1-unstable.37" + } + }, + "@transmute/ld-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" + }, + "@transmute/x25519-key-pair": { + "version": "0.6.1-unstable.37", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.6.1-unstable.37.tgz", + "integrity": "sha512-j6zR9IoJmgVhUCVH8YVGpsgQf99SxPKZ00LGnUheBAQzgj2lULGBQ44G+GqBCdzfT0qweptTfp1RjqqHEpizeA==", + "requires": { + "@stablelib/x25519": "^1.0.0", + "@transmute/ld-key-pair": "^0.6.1-unstable.37" + } + } + } + }, + "@transmute/ed25519-key-pair": { + "version": "0.7.0-unstable.2", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.2.tgz", + "integrity": "sha512-B0jg348Z8F0+lGWQic28xVxBZiXOJYbisWp6EfP4fQdMV3G4sES9YubpdiuoZHjesDZrf6xZ7cEB81mjGJMUkA==", + "requires": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.2", + "@transmute/x25519-key-pair": "^0.7.0-unstable.2" + } + }, + "@transmute/ed25519-signature-2018": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-signature-2018/-/ed25519-signature-2018-0.7.0-unstable.60.tgz", + "integrity": "sha512-6Ch2u5/M0KWKw0FGTFf3rk824PZBeJJ8tgvGFWQIZk3dPfybkz4Ih+eZ7o1APXsy7J4EN7BSl+kg6g5DMmzBpw==", + "requires": { + "@transmute/ed25519-key-pair": "0.7.0-unstable.2", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "jsonld": "^5.2.0" + } + }, + "@transmute/jose-ld": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jose-ld/-/jose-ld-0.7.0-unstable.60.tgz", + "integrity": "sha512-OAEJFVnB411VGRR5Jqgm/VRzNSCkuf66MQI4HvJsiYLlpooKhTSGuILWvnqtaT72Y9of7LNJNHlE5h/oVuqVIQ==", + "requires": { + "@peculiar/webcrypto": "^1.1.6", + "@stablelib/aes-kw": "^1.0.0", + "@stablelib/xchacha20poly1305": "^1.0.0", + "base64url": "^3.0.1", + "jose": "^4.3.8", + "web-streams-polyfill": "^3.0.3" + } + }, + "@transmute/json-web-signature": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/json-web-signature/-/json-web-signature-0.7.0-unstable.60.tgz", + "integrity": "sha512-vS9xIUZ1zihGp+ExXuRF0W6qr1TnkNFxAvss8jDExF1k+hgYvAzxhhH3uOkuIGmXPFj48A/69mXgcasULoncJQ==", + "requires": { + "@transmute/bls12381-key-pair": "^0.7.0-unstable.60", + "@transmute/ed25519-key-pair": "^0.7.0-unstable.60", + "@transmute/jose-ld": "^0.7.0-unstable.60", + "@transmute/secp256k1-key-pair": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/web-crypto-key-pair": "^0.7.0-unstable.60", + "jsonld": "^5.2.0" + }, + "dependencies": { + "@transmute/ed25519-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ed25519-key-pair/-/ed25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-ZL123tGO5m2CIxuQuXv81XauYzlCxQVX5ulGVSlh4Yt74MZjzUILFnBMR19SZOlfRfSjgV4oJOwhQNWYXidBuw==", + "requires": { + "@stablelib/ed25519": "^1.0.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "@transmute/x25519-key-pair": "^0.7.0-unstable.60" + } + } + } + }, + "@transmute/jsonld-schema": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/jsonld-schema/-/jsonld-schema-0.7.0-unstable.60.tgz", + "integrity": "sha512-zKVU5uJ5s4rNhZDWawr0qejVlBV3IvZuKiYbr/wr44To0ZVtZraM0n0x0YhsBOcRnbDIODHZ+i/XcFu6Mwj6Fw==", + "requires": { + "ajv": "^8.6.1", + "genson-js": "0.0.5", + "jsonld": "^5.2.0" + } + }, + "@transmute/ld-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-GKYzOiSH++c9pFsZeZfIcc2IfYvxgHUGI3lymtaPDwSlFV/1XKsOHxXobwgf5SWv30GfI+sBDmBoeaQ92sKj+g==" + }, + "@transmute/linked-data-proof": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/linked-data-proof/-/linked-data-proof-0.7.0-unstable.60.tgz", + "integrity": "sha512-GtyGLItYN2NUPb7IAKOj+7bVhc+LR6MRuW/SXHrvnyG24IZasAjXIPzU1g/eoMTjM4X/4N/1HGooHBeALU/eCQ==", + "requires": { + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "serialize-error": "^7.0.1" + } + }, + "@transmute/secp256k1-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/secp256k1-key-pair/-/secp256k1-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-gH0+JXlg6OKT4nS6GUtJ9bgwYvfGEFDDMS+xDXgmh5nfgHhdjRjoLb2ckp5qmt6GzJ5gbIQAxVcFkZgSWegjhQ==", + "requires": { + "@bitauth/libauth": "^1.18.1", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "secp256k1": "^4.0.2" + } + }, + "@transmute/security-context": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/security-context/-/security-context-0.7.0-unstable.60.tgz", + "integrity": "sha512-zkCp5k9i+KLnqCa8cx3gIYGv490iKGysjyMbK8maHlo4GejGHXR1ZZgoWYHnuEHcVpzs1m2oferjJ1TCIdrwdA==" + }, + "@transmute/vc.js": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/vc.js/-/vc.js-0.7.0-unstable.60.tgz", + "integrity": "sha512-r6xHSerlkE59hvQdlF/d/kl4AIApI5/55d3vvbMilEqSkBvgHIk29NxNz6Q7IjXoZegWBOyviKeOzQ3bJWGARQ==", + "requires": { + "@transmute/did-key-ed25519": "^0.3.0-unstable.5", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/linked-data-proof": "^0.7.0-unstable.60", + "jsonld": "^5.2.0", + "moment": "^2.29.1" + } + }, + "@transmute/web-crypto-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-8Y4UGycX8ri9JLO65YIrLLohE4/cphcm4/ERX45hrPCgzBzHO/axLn7b5IQPI5iI9Brt7HtJZ2Wg4wmU2aJl/Q==", + "requires": { + "@peculiar/webcrypto": "^1.1.6", + "@transmute/ld-key-pair": "^0.7.0-unstable.60", + "big-integer": "^1.6.48" + } + }, + "@transmute/x25519-key-pair": { + "version": "0.7.0-unstable.60", + "resolved": "https://registry.npmjs.org/@transmute/x25519-key-pair/-/x25519-key-pair-0.7.0-unstable.60.tgz", + "integrity": "sha512-dKUnr4QxE0T7w+IeHTr244hbJBkCO07wibbxhsqINi1CuAhIgTyFnoaUZlJidc6q1dA/2VR9eL3B8OcdEm6Teg==", + "requires": { + "@stablelib/x25519": "^1.0.0", + "@transmute/ld-key-pair": "^0.7.0-unstable.60" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-mMUu4nWHLBlHtxXY17Fg6+ucS/MnndyOWyOe7MmwkoMYxvfQU2ajtRaEvqSUv+aVkMqH/C0NCI8UoVfRNQ10yg==", + "dev": true + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "peer": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "peer": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, + "@types/jsonwebtoken": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", + "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jszip": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.4.1.tgz", + "integrity": "sha512-TezXjmf3lj+zQ651r6hPqvSScqBLvyPI9FxdXBqpEwBijNGQ2NXpaFW/7joGzveYkKQUil7iiDHLo6LV71Pc0A==", + "dev": true, + "requires": { + "jszip": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" + }, + "@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/swagger-ui-express": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.3.tgz", + "integrity": "sha512-jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==", + "dev": true, + "requires": { + "@types/express": "*", + "@types/serve-static": "*" + } + }, + "@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "peer": true + }, + "@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "@urql/core": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "peer": true, + "requires": { + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + } + }, + "@urql/exchange-retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "peer": true, + "requires": { + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" + } + }, + "@web-std/blob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.4.tgz", + "integrity": "sha512-+dibyiw+uHYK4dX5cJ7HA+gtDAaUUe6JsOryp2ZpAC7h4ICsh49E34JwHoEKPlPvP0llCrNzz45vvD+xX5QDBg==", + "requires": { + "@web-std/stream": "1.0.0", + "web-encoding": "1.1.5" + } + }, + "@web-std/fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-3.0.0.tgz", + "integrity": "sha512-U1b9gjmBZllDL/B+F4eef0Yq2eJDsmPzZOGGOpoMry/bPIUVT0WCIj3PO6jZaGtcQY8JpyiFJa1S8Z4KJJGl0Q==", + "requires": { + "@web-std/blob": "^3.0.0", + "@web-std/form-data": "^3.0.0", + "@web3-storage/multipart-parser": "^1.0.0", + "data-uri-to-buffer": "^3.0.1" + } + }, + "@web-std/file": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@web-std/file/-/file-3.0.2.tgz", + "integrity": "sha512-pIH0uuZsmY8YFvSHP1NsBIiMT/1ce0suPrX74fEeO3Wbr1+rW0fUGEe4d0R99iLwXtyCwyserqCFI4BJkJlkRA==", + "requires": { + "@web-std/blob": "^3.0.3" + } + }, + "@web-std/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@web-std/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-rhc8IRw66sJ0FHcnC84kT3mTN6eACTuNftkt1XSl1Ef6WRKq4Pz65xixxqZymAZl1K3USpwhLci4SKNn4PYxWQ==", + "requires": { + "web-encoding": "1.1.5" + } + }, + "@web-std/stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.0.tgz", + "integrity": "sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==", + "requires": { + "web-streams-polyfill": "^3.1.1" + } + }, + "@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" + }, + "@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==", + "peer": true + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "devOptional": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "optional": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "optional": true + } + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "api-docs": { + "version": "file:api-docs", + "requires": { + "@types/express": "^4.17.13", + "@types/js-yaml": "^4.0.5", + "@types/node": "^17.0.23", + "@types/swagger-ui-express": "^4.1.3", + "dotenv": "^16.0.0", + "express": "^4.17.3", + "js-yaml": "^4.1.0", + "swagger-ui-express": "^4.3.0", + "tslint": "^6.1.3", + "typescript": "^4.6.3" + } + }, + "api-gateway": { + "version": "file:api-gateway", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@types/express": "^4.17.13", + "@types/jszip": "^3.4.1", + "@types/node": "^17.0.13", + "@types/ws": "^8.2.2", + "chai": "^4.3.4", + "cross-env": "^7.0.3", + "dotenv": "^16.0.0", + "express": "^4.17.1", + "jszip": "^3.7.1", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "module-alias": "^2.2.2", + "nodemon": "^2.0.12", + "reflect-metadata": "^0.1.13", + "rewire": "^6.0.0", + "sinon": "^13.0.1", + "tslint": "^6.1.3", + "typescript": "^4.5.5", + "ws": "^8.2.1" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" + }, + "application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q==", + "peer": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "peer": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "optional": true, + "requires": { + "typical": "^2.6.1" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "peer": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "peer": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "peer": true + }, + "auth-service": { + "version": "file:auth-service", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@types/jsonwebtoken": "^8.5.4", + "@types/node": "^17.0.13", + "chai": "^4.3.4", + "cross-env": "^7.0.3", + "dotenv": "^16.0.0", + "jsonwebtoken": "^8.5.1", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "nodemon": "^2.0.12", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typeorm": "^0.2.41", + "typescript": "^4.5.5" + }, + "dependencies": { + "mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "requires": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "saslprep": "^1.0.3", + "socks": "^2.6.2" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "requires": { + "follow-redirects": "^1.14.7" + } + }, + "axios-retry": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.5.tgz", + "integrity": "sha512-a8umkKbfIkTiYJQLx3v3TzKM85TGKB8ZQYz4zwykt2fpO64TsRlUhjaPaAb3fqMWCXFm2YhWcd8V5FHDKO9bSA==", + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "peer": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", + "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", + "peer": true, + "requires": { + "find-babel-config": "^1.2.0", + "glob": "^7.1.6", + "pkg-up": "^3.1.0", + "reselect": "^4.0.0", + "resolve": "^1.13.1" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "peer": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "peer": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-plugin-react-native-web": { + "version": "0.17.7", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.17.7.tgz", + "integrity": "sha512-UBLfIsfU3vi//Ab4i0WSWAfm1whLTK9uJoH0RPZ6a67eS/h9JGYjKy7+1RpHxSBviHi9NIMiYfWseTLjyIsE1g==", + "peer": true + }, + "babel-preset-expo": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.1.0.tgz", + "integrity": "sha512-dFcgT7AY5n15bLnfOM6R25f8Lh7YSALj4zeGze6aspYHfVrREYcovVG0eMGpY9V24fnwByNRv85lElc1jAj1Mw==", + "peer": true, + "requires": { + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-transform-react-jsx": "^7.12.17", + "@babel/preset-env": "^7.12.9", + "babel-plugin-module-resolver": "^4.1.0", + "babel-plugin-react-native-web": "~0.17.1", + "metro-react-native-babel-preset": "~0.67.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "peer": true, + "requires": { + "open": "^8.0.4" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "blob-polyfill": { + "version": "5.0.20210201", + "resolved": "https://registry.npmjs.org/blob-polyfill/-/blob-polyfill-5.0.20210201.tgz", + "integrity": "sha512-SrH6IG6aXL9pCgSysBCiDpGcAJ1j6/c1qCwR3sTEQJhb+MTk6FITNA6eW6WNYQDNZVi4Z9GjxH5v2MMTv59CrQ==" + }, + "blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "requires": { + "browser-readablestream-to-it": "^1.0.3" + } + }, + "blockstore-core": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz", + "integrity": "sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA==", + "requires": { + "err-code": "^3.0.1", + "interface-blockstore": "^2.0.2", + "interface-store": "^2.0.1", + "it-all": "^1.0.4", + "it-drain": "^1.0.4", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "multiformats": "^9.4.7" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "peer": true + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "peer": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + } + } + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "bplist-creator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "peer": true, + "requires": { + "stream-buffers": "2.2.x" + } + }, + "bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "peer": true, + "requires": { + "big-integer": "1.6.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", + "escalade": "^3.1.1", + "node-releases": "^2.0.5", + "picocolors": "^1.0.0" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bson": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "peer": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "peer": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "peer": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "peer": true + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "peer": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001350", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz", + "integrity": "sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw==", + "peer": true + }, + "canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" + }, + "carbites": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/carbites/-/carbites-1.0.6.tgz", + "integrity": "sha512-dS9IQvnrb5VIRvSTNz5Ff+mB9d2MFfi5mojtJi7Rlss79VeF190jr0sZdA7eW0CGHotvHkZaWuM6wgfD9PEFRg==", + "requires": { + "@ipld/car": "^3.0.1", + "@ipld/dag-cbor": "^6.0.3", + "@ipld/dag-pb": "^2.0.2", + "multiformats": "^9.0.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "cborg": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.9.4.tgz", + "integrity": "sha512-ltobKo17xKYJolhg8UxQhvzcqXhjtUnovwe9Xx59Izo32gLwozGoJs/efp+8dZ5+zu9pNJYnHtmp6iJnDUapww==" + }, + "chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "peer": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "optional": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "peer": true + }, + "ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "peer": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "peer": true + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "optional": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "peer": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "optional": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "command-line-args": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", + "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", + "optional": true, + "requires": { + "array-back": "^2.0.0", + "find-replace": "^1.0.3", + "typical": "^2.6.1" + } + }, + "command-line-commands": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", + "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", + "optional": true, + "requires": { + "array-back": "^2.0.0" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "optional": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "peer": true + }, + "complex.js": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", + "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==" + }, + "component-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", + "integrity": "sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==", + "peer": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + } + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-js-compat": { + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz", + "integrity": "sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==", + "peer": true, + "requires": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "peer": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cron": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cron/-/cron-2.0.0.tgz", + "integrity": "sha512-RPeRunBCFr/WEo7WLp8Jnm45F/ziGJiHVvVQEBSDTSGu6uHW49b2FOP2O14DcXlGJRLhwE7TIoDzHHK4KmlL6g==", + "requires": { + "luxon": "^1.23.x" + } + }, + "cross-blob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cross-blob/-/cross-blob-2.0.1.tgz", + "integrity": "sha512-ARuKPPo3I6DSqizal4UCyMCiGPQdMpMJS3Owx6Lleuh26vSt2UnfWRwbMLCYqbJUrcol+KzGVSLR91ezSHP80A==", + "requires": { + "blob-polyfill": "^5.0.20210201", + "fetch-blob": "^2.1.2" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "peer": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", + "peer": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" + } + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "requires": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "peer": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "peer": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "peer": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "peer": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "peer": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "peer": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "requires": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-fetch": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", + "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", + "requires": { + "encoding": "^0.1.13" + } + }, + "electron-to-chromium": { + "version": "1.4.148", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz", + "integrity": "sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ==", + "peer": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "peer": true + }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "peer": true + }, + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "peer": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "expo": { + "version": "45.0.5", + "resolved": "https://registry.npmjs.org/expo/-/expo-45.0.5.tgz", + "integrity": "sha512-ND+Fo/iLZK1ubMvPFzraIQBvtGL7a4ZHGIP8N1PjcOtTGrCc6X7IWyLkfPMAck2yhd80ZTbos8vTU3SAUuBcJw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.14.0", + "@expo/cli": "0.1.5", + "@expo/vector-icons": "^13.0.0", + "babel-preset-expo": "~9.1.0", + "cross-spawn": "^6.0.5", + "expo-application": "~4.1.0", + "expo-asset": "~8.5.0", + "expo-constants": "~13.1.1", + "expo-error-recovery": "~3.1.0", + "expo-file-system": "~14.0.0", + "expo-font": "~10.1.0", + "expo-keep-awake": "~10.1.1", + "expo-modules-autolinking": "0.8.1", + "expo-modules-core": "0.9.2", + "fbemitter": "^3.0.0", + "getenv": "^1.0.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3", + "node-fetch": "^2.6.7", + "pretty-format": "^26.5.2", + "uuid": "^3.4.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "expo-application": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.1.0.tgz", + "integrity": "sha512-Z2kctgVMpYZB1Iwaxd+XcMBq7h8EEY50GGrwxXsb1OHHQKN+WEVGBWxjvtPkAroqCdujLaB5HBay46gvUHRDQg==", + "peer": true, + "requires": {} + }, + "expo-asset": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.5.0.tgz", + "integrity": "sha512-k3QErZYxb6e6rPkJ1sG5yIJ7bhd4RFvnFStz0ZCO6SfktGygBAjTz5aTOLaaomiCIObRiBQ4byky/RLdli/NLw==", + "peer": true, + "requires": { + "blueimp-md5": "^2.10.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3", + "path-browserify": "^1.0.0", + "url-parse": "^1.5.9" + } + }, + "expo-constants": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.1.1.tgz", + "integrity": "sha512-QRVHrrMCLenBzWZ8M+EvCXM+jjdQzFMW27YQHRac3SGGoND1hWr81scOmGwlFo2wLZrYXm8HcYt1E6ry3IIwrA==", + "peer": true, + "requires": { + "@expo/config": "^6.0.14", + "uuid": "^3.3.2" + } + }, + "expo-crypto": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-10.2.0.tgz", + "integrity": "sha512-YVFp+DJXBtt4t6oZXepnzb+xwpKzFbXn3B9Oma1Tfh6J0rIlm/I20UW/5apdvEdbj44fxJ5DsiZeyADI3bcZkQ==", + "peer": true, + "requires": {} + }, + "expo-error-recovery": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.1.0.tgz", + "integrity": "sha512-qUxCW7kPB6AVX5h3ZPVnxw4LLZWsRwAPBtRDlh1UDN7GWZ+CQN1SNk0w0BPotjNtSlXEZSFDqKqtoDDAUYjNmg==", + "optional": true, + "peer": true, + "requires": {} + }, + "expo-file-system": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.0.0.tgz", + "integrity": "sha512-Asva7ehLUq/PIem6Y+/OQvoIqhFqYDd7l4l49yDRDgLSbK2I7Fr8qGhDeDpnUXrMVamg2uwt9zRGhyrjFNRhVw==", + "peer": true, + "requires": { + "@expo/config-plugins": "^4.0.14", + "uuid": "^3.4.0" + } + }, + "expo-font": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.1.0.tgz", + "integrity": "sha512-vmhzpE95Ym4iOj8IELof+C/3Weert2B3LyxV5rBjGosjzBdov+o+S6b5mN7Yc9kyEGykwB6k7npL45X3hFYDQA==", + "peer": true, + "requires": { + "fontfaceobserver": "^2.1.0" + } + }, + "expo-keep-awake": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.1.1.tgz", + "integrity": "sha512-9zC0sdhQljUeMr2yQ7o4kzEZXVAy82fFOAZE1+TwPL7qR0b0sphe7OJ5T1GX1qLcwuVaJ8YewaPoLSHRk79+Rg==", + "peer": true, + "requires": {} + }, + "expo-modules-autolinking": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.8.1.tgz", + "integrity": "sha512-S8qfaXCv//7tQWV9M+JKx3CF7ypYhDdSUbkUQdaVO/r8D76/aRTArY/aRw1yEfaAOzyK8C8diDToV1itl51DfQ==", + "peer": true, + "requires": { + "chalk": "^4.1.0", + "commander": "^7.2.0", + "fast-glob": "^3.2.5", + "find-up": "^5.0.0", + "fs-extra": "^9.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "expo-modules-core": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.9.2.tgz", + "integrity": "sha512-p/C0GJxFIIDGwmrWi70Q0ggfsgeUFS25ZkkBgoaHT7MVgiMjlKA/DCC3D6ZUkHl/JlzUm0aTftIGS8LWXsnZBw==", + "peer": true, + "requires": { + "compare-versions": "^3.4.0", + "invariant": "^2.2.4" + } + }, + "expo-random": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.2.0.tgz", + "integrity": "sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g==", + "peer": true, + "requires": { + "base64-js": "^1.3.0" + } + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "optional": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "factory.ts": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/factory.ts/-/factory.ts-0.5.2.tgz", + "integrity": "sha512-I4YDKuyMW+s2PocnWh/Ekv9wSStt/MNN1ZRb1qhy0Kv056ndlzbLHDsW9KEmTAqMpLI3BtjSqEdZ7ZfdnaXn9w==", + "requires": { + "clone-deep": "^4.0.1", + "source-map-support": "^0.5.19" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-fifo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", + "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "peer": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "peer": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "peer": true, + "requires": { + "fbjs": "^3.0.0" + } + }, + "fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "peer": true, + "requires": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "peer": true + }, + "fetch-blob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz", + "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==" + }, + "fetch-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", + "peer": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "peer": true + } + } + }, + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", + "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "peer": true, + "requires": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "peer": true + } + } + }, + "find-replace": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", + "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", + "optional": true, + "requires": { + "array-back": "^1.0.4", + "test-value": "^2.1.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "optional": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } + } + }, + "find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "peer": true, + "requires": { + "micromatch": "^4.0.2" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, + "fontfaceobserver": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", + "peer": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "peer": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "genson-js": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/genson-js/-/genson-js-0.0.5.tgz", + "integrity": "sha512-1i1y9MIGzTRkn4TusWQwLWLu8IJGHgSE+fbQRt1fy68ZKEq2GjDZI/7NUSZFOfTbHz8bgjP4iCIOcdYrgEsMBA==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "peer": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "peer": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-config": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", + "integrity": "sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA==", + "optional": true, + "requires": { + "iniparser": "~1.0.5" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "peer": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "peer": true + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "peer": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "guardian-service": { + "version": "file:guardian-service", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@hashgraph/sdk": "^2.15.0", + "@transmute/credentials-context": "^0.7.0-unstable.60", + "@transmute/did-context": "^0.7.0-unstable.60", + "@transmute/ed25519-signature-2018": "^0.7.0-unstable.60", + "@transmute/json-web-signature": "^0.7.0-unstable.60", + "@transmute/jsonld-schema": "^0.7.0-unstable.60", + "@transmute/security-context": "^0.7.0-unstable.60", + "@transmute/vc.js": "^0.7.0-unstable.60", + "@types/deep-equal": "^1.0.1", + "@types/express": "^4.17.13", + "@types/fs-extra": "^9.0.12", + "@types/jszip": "^3.4.1", + "@types/node": "^17.0.13", + "ajv": "^8.10.0", + "ajv-formats": "^2.1.1", + "axios": "^0.25.0", + "bs58": "^4.0.1", + "chai": "4.3.4", + "cors": "^2.8.5", + "cron": "^2.0.0", + "deep-equal": "^2.0.5", + "dotenv": "^16.0.0", + "express": "^4.17.1", + "fs-extra": "^10.0.0", + "jszip": "^3.7.1", + "mathjs": "^10.1.0", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "module-alias": "^2.2.2", + "moment": "^2.29.1", + "mongodb": "^4.2.1", + "nodemon": "^2.0.12", + "reflect-metadata": "^0.1.13", + "rewire": "^6.0.0", + "tslint": "^6.1.3", + "typeorm": "^0.2.41", + "typescript": "^4.5.5" + }, + "dependencies": { + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "requires": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "saslprep": "^1.0.3", + "socks": "^2.6.2" + } + } + } + }, + "hamt-sharding": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz", + "integrity": "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==", + "requires": { + "sparse-array": "^1.3.1", + "uint8arrays": "^3.0.0" + } + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "optional": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + } + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "peer": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "peer": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "peer": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "peer": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idb-keyval": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.1.0.tgz", + "integrity": "sha512-u/qHZ75rlD3gH+Zah8dAJVJcGW/RfCnfNrFkElC5RpRCnpsCXXhqjVk+6MoVKJ3WhmNbRYdI6IIVP88e+5sxGw==", + "requires": { + "safari-14-idb-fix": "^3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "peer": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "iniparser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", + "integrity": "sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw==", + "optional": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "optional": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "optional": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optional": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "interface-blockstore": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz", + "integrity": "sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==", + "requires": { + "interface-store": "^2.0.2", + "multiformats": "^9.0.4" + } + }, + "interface-datastore": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz", + "integrity": "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==", + "requires": { + "interface-store": "^2.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "peer": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "peer": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "peer": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "ipfs-car": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ipfs-car/-/ipfs-car-0.6.2.tgz", + "integrity": "sha512-tliuakkKKtCa4TTnFT3zJKjq/aD8EGKX8Y0ybCyrAW0fo/n2koZpxiLjBvtTs47Rqyji6ggXo+atPbJJ60hJmg==", + "requires": { + "@ipld/car": "^3.2.3", + "@web-std/blob": "^3.0.1", + "bl": "^5.0.0", + "blockstore-core": "^1.0.2", + "browser-readablestream-to-it": "^1.0.2", + "idb-keyval": "^6.0.3", + "interface-blockstore": "^2.0.2", + "ipfs-core-types": "^0.8.3", + "ipfs-core-utils": "^0.12.1", + "ipfs-unixfs-exporter": "^7.0.4", + "ipfs-unixfs-importer": "^9.0.4", + "ipfs-utils": "^9.0.2", + "it-all": "^1.0.5", + "it-last": "^1.0.5", + "it-pipe": "^1.1.0", + "meow": "^9.0.0", + "move-file": "^2.1.0", + "multiformats": "^9.6.3", + "stream-to-it": "^0.2.3", + "streaming-iterables": "^6.0.0", + "uint8arrays": "^3.0.0" + } + }, + "ipfs-client": { + "version": "file:ipfs-client", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@guardian/logger-helper": "^2.0.0", + "@types/fs-extra": "^9.0.12", + "@types/js-yaml": "^4.0.3", + "@types/node": "^17.0.13", + "@web-std/fetch": "3.0.0", + "axios": "^0.26.1", + "axios-retry": "^3.2.4", + "chai": "4.3.4", + "cors": "^2.8.5", + "cross-blob": "^2.0.1", + "dotenv": "^16.0.0", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "mathjs": "^10.1.0", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "nft.storage": "^5.2.0", + "nodemon": "^2.0.12", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typeorm": "^0.2.41", + "typescript": "^4.5.5" + }, + "dependencies": { + "axios": { + "version": "0.26.1", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "mongodb": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", + "requires": { + "bson": "^4.6.3", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "saslprep": "^1.0.3", + "socks": "^2.6.2" + } + } + } + }, + "ipfs-core-types": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.8.4.tgz", + "integrity": "sha512-sbRZA1QX3xJ6ywTiVQZMOxhlhp4osAZX2SXx3azOLxAtxmGWDMkHYt722VV4nZ2GyJy8qyk5GHQIZ0uvQnpaTg==", + "requires": { + "interface-datastore": "^6.0.2", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13" + } + }, + "ipfs-core-utils": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.12.2.tgz", + "integrity": "sha512-RfxP3rPhXuqKIUmTAUhmee6fmaV3A7LMnjOUikRKpSyqESz/DR7aGK7tbttMxkZdkSEr0rFXlqbyb0vVwmn0wQ==", + "requires": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.8.4", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.2", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.2", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiaddr-to-uri": "^8.0.0", + "multiformats": "^9.4.13", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^3.0.0" + } + }, + "ipfs-unixfs": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", + "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", + "requires": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" + } + }, + "ipfs-unixfs-exporter": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.11.tgz", + "integrity": "sha512-qTYa69J7HbI2EIYNUddKPg9Y3rHkYZV0bNdmzZKA5+ZbwRVoUEuBW/cguEqTp22zHygh3sMnzYZFm0naVIdMgQ==", + "requires": { + "@ipld/dag-cbor": "^7.0.2", + "@ipld/dag-pb": "^2.0.2", + "@multiformats/murmur3": "^1.0.3", + "err-code": "^3.0.1", + "hamt-sharding": "^2.0.0", + "interface-blockstore": "^2.0.3", + "ipfs-unixfs": "^6.0.0", + "it-last": "^1.0.5", + "multiformats": "^9.4.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "@ipld/dag-cbor": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.2.tgz", + "integrity": "sha512-V9EhJVWXqzjjRs0kiZfUXOaq8y6R2C4AAmfGoMeszqGOBgfACr5tFAgAwZY0e8z/OpmJWpCrZhzPRTZV0c/gjA==", + "requires": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + } + } + }, + "ipfs-unixfs-importer": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.10.tgz", + "integrity": "sha512-W+tQTVcSmXtFh7FWYWwPBGXJ1xDgREbIyI1E5JzDcimZLIyT5gGMfxR3oKPxxWj+GKMpP5ilvMQrbsPzWcm3Fw==", + "requires": { + "@ipld/dag-pb": "^2.0.2", + "@multiformats/murmur3": "^1.0.3", + "bl": "^5.0.0", + "err-code": "^3.0.1", + "hamt-sharding": "^2.0.0", + "interface-blockstore": "^2.0.3", + "ipfs-unixfs": "^6.0.0", + "it-all": "^1.0.5", + "it-batch": "^1.0.8", + "it-first": "^1.0.6", + "it-parallel-batch": "^1.0.9", + "merge-options": "^3.0.4", + "multiformats": "^9.4.2", + "rabin-wasm": "^0.1.4", + "uint8arrays": "^3.0.0" + } + }, + "ipfs-utils": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.6.tgz", + "integrity": "sha512-/WfdwOIiJVb3uqfKRQ9Eo+vCEKsDgp7h4Pdc37MRwAiFciZ7xKAkEqsfXubV0VQi8x5jWTifeHn8WEPBLL451w==", + "requires": { + "any-signal": "^3.0.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "^1.0.1", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "any-signal": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", + "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node-fetch": { + "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" + } + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + } + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "peer": true + }, + "is-electron": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", + "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "optional": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "peer": true, + "requires": { + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "peer": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "peer": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + }, + "dependencies": { + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" + } + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "peer": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "peer": true + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "peer": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "peer": true, + "requires": { + "is-invalid-path": "^0.1.0" + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "peer": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "it-all": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", + "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + }, + "it-batch": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", + "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" + }, + "it-drain": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", + "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" + }, + "it-filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", + "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" + }, + "it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "it-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "requires": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" + }, + "it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "it-parallel-batch": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz", + "integrity": "sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg==", + "requires": { + "it-batch": "^1.0.9" + } + }, + "it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" + }, + "it-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" + }, + "it-take": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", + "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" + }, + "it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "requires": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "peer": true + }, + "join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", + "peer": true + }, + "jose": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.1.tgz", + "integrity": "sha512-+/hpTbRcCw9YC0TOfN1W47pej4a9lRmltdOVdRLz5FP5UvUq3CenhXjQK7u/8NdMIIShMXYAh9VLPhc7TjhvFw==" + }, + "js-base64": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", + "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==" + }, + "js-logger": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/js-logger/-/js-logger-1.6.1.tgz", + "integrity": "sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "peer": true, + "requires": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "dependencies": { + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "peer": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + } + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "peer": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonld": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-5.2.0.tgz", + "integrity": "sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw==", + "requires": { + "@digitalbazaar/http-client": "^1.1.0", + "canonicalize": "^1.0.1", + "lru-cache": "^6.0.0", + "rdf-canonize": "^3.0.0" + } + }, + "jsonld-checker": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/jsonld-checker/-/jsonld-checker-0.1.7.tgz", + "integrity": "sha512-AFBFjRttHzB5Q78SATl5Qhc3hQEnmiEqLuUIpfVx8bn5ODhO1M0IiV9PRPUMe6IZjedGWOZEmzieNIBs88EDVg==", + "requires": { + "jsonld": "^3.1.1", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "jsonld": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-3.3.2.tgz", + "integrity": "sha512-DXqG/fdiG7eJ8FzvSd58bW8DQsulQR/gjLYUz9PxBP/WTTpB2HzjjdxSAx5aBHewJ0RiFAV/QcqGCJjxHvuIzw==", + "requires": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0", + "xmldom": "0.1.19" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "requires": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true + }, + "ky": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/ky/-/ky-0.25.1.tgz", + "integrity": "sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==" + }, + "ky-universal": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.8.2.tgz", + "integrity": "sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==", + "requires": { + "abort-controller": "^3.0.0", + "node-fetch": "3.0.0-beta.9" + }, + "dependencies": { + "node-fetch": { + "version": "3.0.0-beta.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", + "integrity": "sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==", + "requires": { + "data-uri-to-buffer": "^3.0.1", + "fetch-blob": "^2.1.1" + } + } + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "peer": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "logger-service": { + "version": "file:logger-service", + "requires": { + "@guardian/common": "^2.0.0", + "@guardian/interfaces": "^2.0.0", + "@types/fs-extra": "^9.0.12", + "@types/node": "^17.0.13", + "@web-std/fetch": "3.0.0", + "chai": "4.3.6", + "cors": "^2.8.5", + "dotenv": "^16.0.0", + "fs-extra": "^10.0.0", + "mocha": "^9.2.0", + "mocha-junit-reporter": "^2.0.2", + "module-alias": "^2.2.2", + "mongodb": "^4.2.1", + "nodemon": "^2.0.12", + "reflect-metadata": "^0.1.13", + "tslint": "^6.1.3", + "typeorm": "^0.2.41", + "typescript": "^4.5.5" + }, + "dependencies": { + "mongodb": { + "version": "4.4.1", + "requires": { + "bson": "^4.6.1", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.5.2", + "saslprep": "^1.0.3", + "socks": "^2.6.2" + } + } + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "luxon": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz", + "integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + }, + "mathjs": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", + "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", + "requires": { + "@babel/runtime": "^7.18.3", + "complex.js": "^2.1.1", + "decimal.js": "^10.3.1", + "escape-latex": "^1.2.0", + "fraction.js": "^4.2.0", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^2.1.0" + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "peer": true, + "requires": { + "buffer-alloc": "^1.1.0" + } + }, + "md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", + "peer": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", + "peer": true + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "requires": { + "is-plain-obj": "^2.1.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "peer": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "metro-react-native-babel-preset": { + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", + "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", + "peer": true, + "requires": { + "@babel/core": "^7.14.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" + } + } + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "peer": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "peer": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "peer": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "mocha-junit-reporter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz", + "integrity": "sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^6.0.1", + "xml": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, + "mongodb": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", + "optional": true, + "peer": true, + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.1.8", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + }, + "dependencies": { + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "optional": true, + "peer": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "optional": true, + "peer": true + }, + "denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "optional": true, + "peer": true + } + } + }, + "mongodb-connection-string-url": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz", + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "move-file": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", + "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", + "requires": { + "path-exists": "^4.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multiaddr": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", + "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", + "requires": { + "dns-over-http-resolver": "^1.2.3", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multiformats": "^9.4.5", + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "multiaddr-to-uri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", + "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", + "requires": { + "multiaddr": "^10.0.0" + } + }, + "multiformats": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.5.tgz", + "integrity": "sha512-vMwf/FUO+qAPvl3vlSZEgEVFY/AxeZq5yg761ScF3CZsXgmTi/HGkicUiNN0CI4PW8FiY2P0OLklOcmQjdQJhw==" + }, + "murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "optional": true + }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", + "optional": true, + "peer": true, + "requires": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "optional": true, + "peer": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "optional": true, + "peer": true, + "requires": { + "glob": "^6.0.1" + } + } + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" + }, + "native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "requires": {} + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + }, + "nats": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.7.1.tgz", + "integrity": "sha512-aH0OXxasfLCTG+LQCFRaWoL1kqejCQg7B+t4z++JgLPgfdpQMET1Rqo95I06DEQyIJGTTgYpxkI/zC0ul8V3pw==", + "requires": { + "nkeys.js": "^1.0.0-9" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "optional": true, + "peer": true + }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "optional": true + }, + "neon-cli": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", + "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", + "optional": true, + "requires": { + "chalk": "~2.1.0", + "command-line-args": "^4.0.2", + "command-line-commands": "^2.0.0", + "command-line-usage": "^4.0.0", + "git-config": "0.0.7", + "handlebars": "^4.1.0", + "inquirer": "^3.0.6", + "mkdirp": "^0.5.1", + "quickly-copy-file": "^1.0.0", + "rimraf": "^2.6.1", + "rsvp": "^4.6.1", + "semver": "^5.1.0", + "toml": "^2.3.0", + "ts-typed-json": "^0.2.2", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "optional": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "optional": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "optional": true, + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "peer": true + }, + "nft.storage": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/nft.storage/-/nft.storage-5.2.5.tgz", + "integrity": "sha512-ITP9ETleKIZvSRsjpHi6JFFE/YVcp9jwwyi+Q1GtdNmFc5Xyu1g7it+yrk7m5+iSEMcOjSJGPQrktnUTe0qtAg==", + "requires": { + "@ipld/car": "^3.2.3", + "@ipld/dag-cbor": "^6.0.13", + "@web-std/blob": "^3.0.1", + "@web-std/fetch": "^3.0.3", + "@web-std/file": "^3.0.0", + "@web-std/form-data": "^3.0.0", + "carbites": "^1.0.6", + "ipfs-car": "^0.6.2", + "multiformats": "^9.6.3", + "p-retry": "^4.6.1", + "streaming-iterables": "^6.0.0" + }, + "dependencies": { + "@web-std/fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-3.0.3.tgz", + "integrity": "sha512-PtaKr6qvw2AmKChugzhQWuTa12dpbogHRBxwcleAZ35UhWucnfD4N+g3f7qYK2OeioSWTK3yMf6n/kOOfqxHaQ==", + "requires": { + "@web-std/blob": "^3.0.3", + "@web-std/form-data": "^3.0.2", + "@web3-storage/multipart-parser": "^1.0.0", + "data-uri-to-buffer": "^3.0.1" + } + } + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "peer": true + }, + "nise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "nkeys.js": { + "version": "1.0.0-9", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.0-9.tgz", + "integrity": "sha512-m9O0NQT+3rUe1om6MWpxV77EuHql/LdorDH+FYQkoeARcM2V0sQ89kM36fArWaHWq/25EmNmQUW0MhLTcbqW1A==", + "requires": { + "@types/node": "^14.0.26", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" + } + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "peer": true + }, + "node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" + }, + "node-pre-gyp": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", + "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "optional": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true + } + } + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "peer": true + }, + "nodemon": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "optional": true + }, + "npm-package-arg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "peer": true, + "requires": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + } + } + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "peer": true, + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "optional": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "peer": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "optional": true, + "peer": true, + "requires": { + "require-at": "^1.0.6" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "peer": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "peer": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" + }, + "p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "requires": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "peer": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "peer": true, + "requires": { + "pngjs": "^3.3.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "peer": true, + "requires": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "peer": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "peer": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "peer": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "peer": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "peer": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "requires": { + "p-limit": "^2.0.0" + } + } + } + }, + "plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "peer": true, + "requires": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "dependencies": { + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "peer": true + } + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "peer": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "peer": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "peer": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "peer": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "peer": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "requires": { + "tslib": "^2.4.0" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "peer": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "peer": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "peer": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "peer": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" + }, + "quickly-copy-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", + "integrity": "sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg==", + "optional": true, + "requires": { + "mkdirp": "~0.5.0" + } + }, + "rabin-wasm": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", + "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", + "requires": { + "@assemblyscript/loader": "^0.9.4", + "bl": "^5.0.0", + "debug": "^4.3.1", + "minimist": "^1.2.5", + "node-fetch": "^2.6.1", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "peer": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + } + } + }, + "rdf-canonize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.0.0.tgz", + "integrity": "sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w==", + "requires": { + "setimmediate": "^1.0.5" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "peer": true + }, + "react-native-fetch-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "requires": { + "p-defer": "^3.0.0" + } + }, + "react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "peer": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "requires": { + "ms": "^2.1.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "optional": true + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "peer": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "peer": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "peer": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "peer": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "peer": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "peer": true + } + } + }, + "remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", + "peer": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + } + } + }, + "require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==", + "optional": true, + "peer": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "peer": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "peer": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "peer": true + }, + "reselect": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==", + "peer": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "peer": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "peer": true + }, + "rewire": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "dev": true, + "requires": { + "eslint": "^7.32.0" + } + }, + "rfc4648": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", + "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "optional": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "optional": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "peer": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", + "optional": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", + "optional": true, + "requires": { + "rx-lite": "*" + } + }, + "safari-14-idb-fix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", + "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true, + "peer": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } + } + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "optional": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-plist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "peer": true, + "requires": { + "bplist-creator": "0.1.0", + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + }, + "dependencies": { + "bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "peer": true, + "requires": { + "big-integer": "1.6.x" + } + } + } + }, + "sinon": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", + "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "peer": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + } + } + }, + "slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "peer": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, + "socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sparse-array": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", + "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "peer": true, + "requires": { + "through": "2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "peer": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "peer": true + }, + "stream-to-it": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "streaming-iterables": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", + "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "peer": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "peer": true + }, + "sucrase": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.21.0.tgz", + "integrity": "sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==", + "peer": true, + "requires": { + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "peer": true + } + } + }, + "sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "peer": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "swagger-ui-dist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.12.0.tgz", + "integrity": "sha512-B0Iy2ueXtbByE6OOyHTi3lFQkpPi/L7kFOKFeKTr44za7dJIELa9kzaca6GkndCgpK1QTjArnoXG+aUy0XQp1w==" + }, + "swagger-ui-express": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.4.0.tgz", + "integrity": "sha512-1CzRkHG386VQMVZK406jcpgnW2a9A5A/NiAjKhsFTQqUBWRF+uGbXTU/mA7WSV3mTzyOQDvjBdWP/c2qd5lqKw==", + "requires": { + "swagger-ui-dist": ">=4.11.0" + } + }, + "table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "optional": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "peer": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true + } + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "peer": true + }, + "tempy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "peer": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "peer": true + }, + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "peer": true + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "peer": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true + } + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "optional": true, + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "optional": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "requires": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + } + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "peer": true + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "peer": true + }, + "toml": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", + "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", + "optional": true + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "peer": true + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "peer": true + }, + "ts-typed-json": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", + "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", + "optional": true, + "requires": { + "rsvp": "^3.5.0" + }, + "dependencies": { + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "optional": true + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-function": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-2.1.0.tgz", + "integrity": "sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ==" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typeorm": { + "version": "0.2.45", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz", + "integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==", + "requires": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "glob": "^7.1.6", + "js-yaml": "^4.0.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.1.0", + "uuid": "^8.3.2", + "xml2js": "^0.4.23", + "yargs": "^17.0.1", + "zen-observable-ts": "^1.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" + } + } + }, + "typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "dev": true + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "optional": true + }, + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "peer": true + }, + "uglify-js": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", + "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", + "optional": true + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "peer": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "peer": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "peer": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "peer": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "peer": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "peer": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "peer": true + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "peer": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "peer": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "peer": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "requires": { + "@zxing/text-encoding": "0.9.0", + "util": "^0.12.3" + } + }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + }, + "webcrypto-core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.9" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "peer": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "optional": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "optional": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + } + }, + "workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", + "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "requires": {} + }, + "xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "peer": true, + "requires": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "dependencies": { + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "peer": true + } + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } + }, + "xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "peer": true + }, + "xmldom": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", + "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz", + "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", + "requires": { + "@types/zen-observable": "0.8.3", + "zen-observable": "0.8.15" + } + }, + "zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000..2579fb1ab0 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "guardian", + "private": true, + "packageManager": "yarn@3.2.1", + "workspaces": [ + "interfaces", + "common", + "api-docs", + "api-gateway", + "auth-service", + "guardian-service", + "ipfs-client", + "logger-service", + "mrv-sender" + ], + "version": "2.2.0-prerelease", + "stableVersion": "2.2.0" +} diff --git a/topic-viewer/package.json b/topic-viewer/package.json index a0ab2c8f15..c1bb7c2738 100644 --- a/topic-viewer/package.json +++ b/topic-viewer/package.json @@ -19,5 +19,5 @@ "dev": "tsc -w", "start": "node dist/index.js" }, - "version": "2.1.0" + "version": "2.2.0-prerelease" } diff --git a/topic-viewer/public/index.html b/topic-viewer/public/index.html index 8bb97678d6..d2836dc3c0 100644 --- a/topic-viewer/public/index.html +++ b/topic-viewer/public/index.html @@ -55,6 +55,7 @@ .message-name { font-weight: bold; + cursor: pointer; } .topic-name { @@ -95,6 +96,10 @@ border-color: #c77000; } + .type-Schema.action-publish-system-schema { + background: rgb(255 0 0 / 8%); + } + .type-Instance-Policy { background: rgb(16 0 255 / 5%); border-color: #000ec7; @@ -169,6 +174,10 @@
+
+ + +