@peerbit/server 5.0.33 → 5.0.34-55cebfe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/aws.browser.d.ts +1 -0
- package/dist/src/aws.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/aws.d.ts +1 -0
- package/dist/src/aws.d.ts.map +1 -0
- package/{lib/esm → dist/src}/aws.js +43 -44
- package/dist/src/aws.js.map +1 -0
- package/dist/src/bin.d.ts +3 -0
- package/dist/src/bin.d.ts.map +1 -0
- package/{lib/esm → dist/src}/bin.js.map +1 -1
- package/{lib/esm → dist/src}/cli.d.ts +1 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/{lib/esm → dist/src}/cli.js +107 -106
- package/dist/src/cli.js.map +1 -0
- package/{lib/esm → dist/src}/client.d.ts +6 -5
- package/dist/src/client.d.ts.map +1 -0
- package/{lib/esm → dist/src}/client.js +28 -36
- package/dist/src/client.js.map +1 -0
- package/dist/src/config.browser.d.ts +1 -0
- package/dist/src/config.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -0
- package/{lib/esm → dist/src}/config.js +6 -6
- package/dist/src/config.js.map +1 -0
- package/dist/src/docker.browser.d.ts +1 -0
- package/dist/src/docker.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/docker.d.ts +1 -0
- package/dist/src/docker.d.ts.map +1 -0
- package/{lib/esm → dist/src}/docker.js +2 -2
- package/dist/src/docker.js.map +1 -0
- package/{lib/esm → dist/src}/domain.d.ts +1 -7
- package/dist/src/domain.d.ts.map +1 -0
- package/{lib/esm → dist/src}/domain.js +6 -13
- package/dist/src/domain.js.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/{lib/esm → dist/src}/peerbit.d.ts +2 -1
- package/dist/src/peerbit.d.ts.map +1 -0
- package/{lib/esm → dist/src}/peerbit.js +10 -9
- package/dist/src/peerbit.js.map +1 -0
- package/dist/src/remotes.browser.d.ts +1 -0
- package/dist/src/remotes.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/remotes.d.ts +1 -0
- package/dist/src/remotes.d.ts.map +1 -0
- package/{lib/esm → dist/src}/remotes.js +1 -1
- package/{lib/esm → dist/src}/routes.d.ts +1 -0
- package/dist/src/routes.d.ts.map +1 -0
- package/dist/src/server.browser.d.ts +1 -0
- package/dist/src/server.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/server.d.ts +2 -2
- package/dist/src/server.d.ts.map +1 -0
- package/{lib/esm → dist/src}/server.js +25 -27
- package/dist/src/server.js.map +1 -0
- package/{lib/esm → dist/src}/session.d.ts +2 -2
- package/dist/src/session.d.ts.map +1 -0
- package/{lib/esm → dist/src}/session.js +2 -2
- package/{lib/esm/signes-request.d.ts → dist/src/signed-request.d.ts} +3 -3
- package/dist/src/signed-request.d.ts.map +1 -0
- package/{lib/esm/signes-request.js → dist/src/signed-request.js} +3 -3
- package/{lib/esm/signes-request.js.map → dist/src/signed-request.js.map} +1 -1
- package/dist/src/trust.browser.d.ts +1 -0
- package/dist/src/trust.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/trust.d.ts +1 -0
- package/dist/src/trust.d.ts.map +1 -0
- package/{lib/esm → dist/src}/types.d.ts +1 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/test/api.spec.d.ts +2 -0
- package/dist/test/api.spec.d.ts.map +1 -0
- package/dist/test/api.spec.js +223 -0
- package/dist/test/api.spec.js.map +1 -0
- package/dist/test/cli.spec.d.ts +2 -0
- package/dist/test/cli.spec.d.ts.map +1 -0
- package/dist/test/cli.spec.js +264 -0
- package/dist/test/cli.spec.js.map +1 -0
- package/dist/test/client.spec.d.ts +2 -0
- package/dist/test/client.spec.d.ts.map +1 -0
- package/dist/test/client.spec.js +23 -0
- package/dist/test/client.spec.js.map +1 -0
- package/dist/test/config.spec.d.ts +2 -0
- package/dist/test/config.spec.d.ts.map +1 -0
- package/dist/test/config.spec.js +12 -0
- package/dist/test/config.spec.js.map +1 -0
- package/dist/test/domain.integration.spec.d.ts +2 -0
- package/dist/test/domain.integration.spec.d.ts.map +1 -0
- package/dist/test/domain.integration.spec.js +101 -0
- package/dist/test/domain.integration.spec.js.map +1 -0
- package/dist/test/launch.spec.d.ts +1 -0
- package/dist/test/launch.spec.d.ts.map +1 -0
- package/dist/test/launch.spec.js +23 -0
- package/dist/test/launch.spec.js.map +1 -0
- package/dist/test/signed-request.spec.d.ts +2 -0
- package/dist/test/signed-request.spec.d.ts.map +1 -0
- package/dist/test/signed-request.spec.js +35 -0
- package/dist/test/signed-request.spec.js.map +1 -0
- package/dist/test/utils.d.ts +3 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +6 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/ui/assets/index-BNL2lkmu.js +128 -0
- package/dist/ui/assets/index-q5H34Jar.js +6 -0
- package/{lib → dist}/ui/index.html +3 -3
- package/package.json +90 -78
- package/src/aws.ts +57 -58
- package/src/bin.ts +1 -0
- package/src/cli.ts +149 -146
- package/src/client.ts +66 -81
- package/src/config.ts +12 -12
- package/src/docker.ts +3 -3
- package/src/domain.ts +16 -23
- package/src/peerbit.ts +10 -10
- package/src/remotes.ts +2 -2
- package/src/server.ts +58 -68
- package/src/session.ts +7 -7
- package/src/{signes-request.ts → signed-request.ts} +8 -8
- package/src/trust.ts +1 -1
- package/lib/esm/aws.browser.d.ts +0 -0
- package/lib/esm/aws.js.map +0 -1
- package/lib/esm/bin.d.ts +0 -2
- package/lib/esm/cli.js.map +0 -1
- package/lib/esm/client.js.map +0 -1
- package/lib/esm/config.browser.d.ts +0 -0
- package/lib/esm/config.js.map +0 -1
- package/lib/esm/docker.browser.d.ts +0 -0
- package/lib/esm/docker.js.map +0 -1
- package/lib/esm/domain.js.map +0 -1
- package/lib/esm/peerbit.js.map +0 -1
- package/lib/esm/remotes.browser.d.ts +0 -0
- package/lib/esm/server.browser.d.ts +0 -0
- package/lib/esm/server.js.map +0 -1
- package/lib/esm/trust.browser.d.ts +0 -0
- package/lib/ui/assets/index-BSyx7bor.js +0 -6
- package/lib/ui/assets/index-DUhlTXpa.js +0 -77
- package/lib/ui/assets/manifest-DSoGU8T2.json +0 -25
- /package/{lib/esm → dist}/nginx-template.conf +0 -0
- /package/{lib/esm → dist/src}/aws.browser.js +0 -0
- /package/{lib/esm → dist/src}/aws.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/bin.js +0 -0
- /package/{lib/esm → dist/src}/config.browser.js +0 -0
- /package/{lib/esm → dist/src}/config.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/docker.browser.js +0 -0
- /package/{lib/esm → dist/src}/docker.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/index.js +0 -0
- /package/{lib/esm → dist/src}/index.js.map +0 -0
- /package/{lib/esm → dist/src}/remotes.browser.js +0 -0
- /package/{lib/esm → dist/src}/remotes.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/remotes.js.map +0 -0
- /package/{lib/esm → dist/src}/routes.js +0 -0
- /package/{lib/esm → dist/src}/routes.js.map +0 -0
- /package/{lib/esm → dist/src}/server.browser.js +0 -0
- /package/{lib/esm → dist/src}/server.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/session.js.map +0 -0
- /package/{lib/esm → dist/src}/trust.browser.js +0 -0
- /package/{lib/esm → dist/src}/trust.browser.js.map +0 -0
- /package/{lib/esm → dist/src}/trust.js +0 -0
- /package/{lib/esm → dist/src}/trust.js.map +0 -0
- /package/{lib/esm → dist/src}/types.js +0 -0
- /package/{lib/esm → dist/src}/types.js.map +0 -0
- /package/{lib → dist}/ui/android-chrome-192x192.png +0 -0
- /package/{lib → dist}/ui/android-chrome-512x512.png +0 -0
- /package/{lib → dist}/ui/assets/favicon-BYZpRdSr.ico +0 -0
- /package/{lib → dist}/ui/assets/index-BDBx6C_I.css +0 -0
- /package/{lib → dist}/ui/favicon-16x16.png +0 -0
- /package/{lib → dist}/ui/favicon-32x32.png +0 -0
- /package/{lib → dist}/ui/favicon.ico +0 -0
- /package/{lib → dist}/ui/manifest.json +0 -0
- /package/{lib → dist}/ui/robots.txt +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
function Te(e,t){return function(){return e.apply(t,arguments)}}const{toString:ve}=Object.prototype,{getPrototypeOf:oe}=Object,J=(e=>t=>{const n=ve.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),A=e=>(e=e.toLowerCase(),t=>J(t)===e),V=e=>t=>typeof t===e,{isArray:L}=Array,k=V("undefined");function Ge(e){return e!==null&&!k(e)&&e.constructor!==null&&!k(e.constructor)&&O(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ae=A("ArrayBuffer");function Xe(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ae(e.buffer),t}const Qe=V("string"),O=V("function"),xe=V("number"),W=e=>e!==null&&typeof e=="object",Ze=e=>e===!0||e===!1,H=e=>{if(J(e)!=="object")return!1;const t=oe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Ye=A("Date"),et=A("File"),tt=A("Blob"),nt=A("FileList"),rt=e=>W(e)&&O(e.pipe),st=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||O(e.append)&&((t=J(e))==="formdata"||t==="object"&&O(e.toString)&&e.toString()==="[object FormData]"))},ot=A("URLSearchParams"),[it,at,ct,ut]=["ReadableStream","Request","Response","Headers"].map(A),lt=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function j(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),L(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let c;for(r=0;r<i;r++)c=o[r],t.call(null,e[c],c,e)}}function Ce(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ne=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Pe=e=>!k(e)&&e!==Ne;function Z(){const{caseless:e}=Pe(this)&&this||{},t={},n=(r,s)=>{const o=e&&Ce(t,s)||s;H(t[o])&&H(r)?t[o]=Z(t[o],r):H(r)?t[o]=Z({},r):L(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&j(arguments[r],n);return t}const ft=(e,t,n,{allOwnKeys:r}={})=>(j(t,(s,o)=>{n&&O(s)?e[o]=Te(s,n):e[o]=s},{allOwnKeys:r}),e),dt=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),pt=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},ht=(e,t,n,r)=>{let s,o,i;const c={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!c[i]&&(t[i]=e[i],c[i]=!0);e=n!==!1&&oe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},mt=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},yt=e=>{if(!e)return null;if(L(e))return e;let t=e.length;if(!xe(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},wt=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&oe(Uint8Array)),bt=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Et=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Rt=A("HTMLFormElement"),St=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fe=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),gt=A("RegExp"),Fe=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};j(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},Ot=e=>{Fe(e,(t,n)=>{if(O(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(O(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Tt=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return L(e)?r(e):r(String(e).split(t)),n},At=()=>{},xt=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,v="abcdefghijklmnopqrstuvwxyz",de="0123456789",_e={DIGIT:de,ALPHA:v,ALPHA_DIGIT:v+v.toUpperCase()+de},Ct=(e=16,t=_e.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function Nt(e){return!!(e&&O(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const Pt=e=>{const t=new Array(10),n=(r,s)=>{if(W(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const o=L(r)?[]:{};return j(r,(i,c)=>{const f=n(i,s+1);!k(f)&&(o[c]=f)}),t[s]=void 0,o}}return r};return n(e,0)},Ft=A("AsyncFunction"),_t=e=>e&&(W(e)||O(e))&&O(e.then)&&O(e.catch),a={isArray:L,isArrayBuffer:Ae,isBuffer:Ge,isFormData:st,isArrayBufferView:Xe,isString:Qe,isNumber:xe,isBoolean:Ze,isObject:W,isPlainObject:H,isReadableStream:it,isRequest:at,isResponse:ct,isHeaders:ut,isUndefined:k,isDate:Ye,isFile:et,isBlob:tt,isRegExp:gt,isFunction:O,isStream:rt,isURLSearchParams:ot,isTypedArray:wt,isFileList:nt,forEach:j,merge:Z,extend:ft,trim:lt,stripBOM:dt,inherits:pt,toFlatObject:ht,kindOf:J,kindOfTest:A,endsWith:mt,toArray:yt,forEachEntry:bt,matchAll:Et,isHTMLForm:Rt,hasOwnProperty:fe,hasOwnProp:fe,reduceDescriptors:Fe,freezeMethods:Ot,toObjectSet:Tt,toCamelCase:St,noop:At,toFiniteNumber:xt,findKey:Ce,global:Ne,isContextDefined:Pe,ALPHABET:_e,generateString:Ct,isSpecCompliantForm:Nt,toJSONObject:Pt,isAsyncFn:Ft,isThenable:_t};function h(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}a.inherits(h,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:a.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Le=h.prototype,Be={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Be[e]={value:e}});Object.defineProperties(h,Be);Object.defineProperty(Le,"isAxiosError",{value:!0});h.from=(e,t,n,r,s,o)=>{const i=Object.create(Le);return a.toFlatObject(e,i,function(f){return f!==Error.prototype},c=>c!=="isAxiosError"),h.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const Lt=null;function Y(e){return a.isPlainObject(e)||a.isArray(e)}function De(e){return a.endsWith(e,"[]")?e.slice(0,-2):e}function pe(e,t,n){return e?e.concat(t).map(function(s,o){return s=De(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Bt(e){return a.isArray(e)&&!e.some(Y)}const Dt=a.toFlatObject(a,{},null,function(t){return/^is[A-Z]/.test(t)});function $(e,t,n){if(!a.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,R){return!a.isUndefined(R[m])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,i=n.indexes,f=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(t);if(!a.isFunction(s))throw new TypeError("visitor must be a function");function l(d){if(d===null)return"";if(a.isDate(d))return d.toISOString();if(!f&&a.isBlob(d))throw new h("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(d)||a.isTypedArray(d)?f&&typeof Blob=="function"?new Blob([d]):Buffer.from(d):d}function u(d,m,R){let S=d;if(d&&!R&&typeof d=="object"){if(a.endsWith(m,"{}"))m=r?m:m.slice(0,-2),d=JSON.stringify(d);else if(a.isArray(d)&&Bt(d)||(a.isFileList(d)||a.endsWith(m,"[]"))&&(S=a.toArray(d)))return m=De(m),S.forEach(function(w,D){!(a.isUndefined(w)||w===null)&&t.append(i===!0?pe([m],D,o):i===null?m:m+"[]",l(w))}),!1}return Y(d)?!0:(t.append(pe(R,m,o),l(d)),!1)}const p=[],b=Object.assign(Dt,{defaultVisitor:u,convertValue:l,isVisitable:Y});function y(d,m){if(!a.isUndefined(d)){if(p.indexOf(d)!==-1)throw Error("Circular reference detected in "+m.join("."));p.push(d),a.forEach(d,function(S,x){(!(a.isUndefined(S)||S===null)&&s.call(t,S,a.isString(x)?x.trim():x,m,b))===!0&&y(S,m?m.concat(x):[x])}),p.pop()}}if(!a.isObject(e))throw new TypeError("data must be an object");return y(e),t}function he(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function ie(e,t){this._pairs=[],e&&$(e,this,t)}const Ue=ie.prototype;Ue.append=function(t,n){this._pairs.push([t,n])};Ue.toString=function(t){const n=t?function(r){return t.call(this,r,he)}:he;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ut(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ke(e,t,n){if(!t)return e;const r=n&&n.encode||Ut,s=n&&n.serialize;let o;if(s?o=s(t,n):o=a.isURLSearchParams(t)?t.toString():new ie(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class me{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){a.forEach(this.handlers,function(r){r!==null&&t(r)})}}const je={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},kt=typeof URLSearchParams<"u"?URLSearchParams:ie,jt=typeof FormData<"u"?FormData:null,qt=typeof Blob<"u"?Blob:null,Ht={isBrowser:!0,classes:{URLSearchParams:kt,FormData:jt,Blob:qt},protocols:["http","https","file","blob","url","data"]},ae=typeof window<"u"&&typeof document<"u",It=(e=>ae&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Mt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",zt=ae&&window.location.href||"http://localhost",Jt=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ae,hasStandardBrowserEnv:It,hasStandardBrowserWebWorkerEnv:Mt,origin:zt},Symbol.toStringTag,{value:"Module"})),T={...Jt,...Ht};function Vt(e,t){return $(e,new T.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,o){return T.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Wt(e){return a.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function $t(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r<s;r++)o=n[r],t[o]=e[o];return t}function qe(e){function t(n,r,s,o){let i=n[o++];if(i==="__proto__")return!0;const c=Number.isFinite(+i),f=o>=n.length;return i=!i&&a.isArray(s)?s.length:i,f?(a.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!c):((!s[i]||!a.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&a.isArray(s[i])&&(s[i]=$t(s[i])),!c)}if(a.isFormData(e)&&a.isFunction(e.entries)){const n={};return a.forEachEntry(e,(r,s)=>{t(Wt(r),s,n,0)}),n}return null}function Kt(e,t,n){if(a.isString(e))try{return(t||JSON.parse)(e),a.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const q={transitional:je,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=a.isObject(t);if(o&&a.isHTMLForm(t)&&(t=new FormData(t)),a.isFormData(t))return s?JSON.stringify(qe(t)):t;if(a.isArrayBuffer(t)||a.isBuffer(t)||a.isStream(t)||a.isFile(t)||a.isBlob(t)||a.isReadableStream(t))return t;if(a.isArrayBufferView(t))return t.buffer;if(a.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let c;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Vt(t,this.formSerializer).toString();if((c=a.isFileList(t))||r.indexOf("multipart/form-data")>-1){const f=this.env&&this.env.FormData;return $(c?{"files[]":t}:t,f&&new f,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Kt(t)):t}],transformResponse:[function(t){const n=this.transitional||q.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(a.isResponse(t)||a.isReadableStream(t))return t;if(t&&a.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(c){if(i)throw c.name==="SyntaxError"?h.from(c,h.ERR_BAD_RESPONSE,this,null,this.response):c}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:T.classes.FormData,Blob:T.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};a.forEach(["delete","get","head","post","put","patch"],e=>{q.headers[e]={}});const vt=a.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Gt=e=>{const t={};let n,r,s;return e&&e.split(`
|
|
2
|
+
`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&vt[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},ye=Symbol("internals");function U(e){return e&&String(e).trim().toLowerCase()}function I(e){return e===!1||e==null?e:a.isArray(e)?e.map(I):String(e)}function Xt(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Qt=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function G(e,t,n,r,s){if(a.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!a.isString(t)){if(a.isString(r))return t.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(t)}}function Zt(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yt(e,t){const n=a.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}class g{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(c,f,l){const u=U(f);if(!u)throw new Error("header name must be a non-empty string");const p=a.findKey(s,u);(!p||s[p]===void 0||l===!0||l===void 0&&s[p]!==!1)&&(s[p||f]=I(c))}const i=(c,f)=>a.forEach(c,(l,u)=>o(l,u,f));if(a.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(a.isString(t)&&(t=t.trim())&&!Qt(t))i(Gt(t),n);else if(a.isHeaders(t))for(const[c,f]of t.entries())o(f,c,r);else t!=null&&o(n,t,r);return this}get(t,n){if(t=U(t),t){const r=a.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Xt(s);if(a.isFunction(n))return n.call(this,s,r);if(a.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=U(t),t){const r=a.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||G(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=U(i),i){const c=a.findKey(r,i);c&&(!n||G(r,r[c],c,n))&&(delete r[c],s=!0)}}return a.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||G(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return a.forEach(this,(s,o)=>{const i=a.findKey(r,o);if(i){n[i]=I(s),delete n[o];return}const c=t?Zt(o):String(o).trim();c!==o&&delete n[o],n[c]=I(s),r[c]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return a.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
|
|
3
|
+
`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[ye]=this[ye]={accessors:{}}).accessors,s=this.prototype;function o(i){const c=U(i);r[c]||(Yt(s,i),r[c]=!0)}return a.isArray(t)?t.forEach(o):o(t),this}}g.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);a.reduceDescriptors(g.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});a.freezeMethods(g);function X(e,t){const n=this||q,r=t||n,s=g.from(r.headers);let o=r.data;return a.forEach(e,function(c){o=c.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function He(e){return!!(e&&e.__CANCEL__)}function B(e,t,n){h.call(this,e??"canceled",h.ERR_CANCELED,t,n),this.name="CanceledError"}a.inherits(B,h,{__CANCEL__:!0});function Ie(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new h("Request failed with status code "+n.status,[h.ERR_BAD_REQUEST,h.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function en(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function tn(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(f){const l=Date.now(),u=r[o];i||(i=l),n[s]=f,r[s]=l;let p=o,b=0;for(;p!==s;)b+=n[p++],p=p%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),l-i<t)return;const y=u&&l-u;return y?Math.round(b*1e3/y):void 0}}function nn(e,t){let n=0;const r=1e3/t;let s=null;return function(){const i=this===!0,c=Date.now();if(i||c-n>r)return s&&(clearTimeout(s),s=null),n=c,e.apply(null,arguments);s||(s=setTimeout(()=>(s=null,n=Date.now(),e.apply(null,arguments)),r-(c-n)))}}const M=(e,t,n=3)=>{let r=0;const s=tn(50,250);return nn(o=>{const i=o.loaded,c=o.lengthComputable?o.total:void 0,f=i-r,l=s(f),u=i<=c;r=i;const p={loaded:i,total:c,progress:c?i/c:void 0,bytes:f,rate:l||void 0,estimated:l&&c&&u?(c-i)/l:void 0,event:o,lengthComputable:c!=null};p[t?"download":"upload"]=!0,e(p)},n)},rn=T.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function s(o){let i=o;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=s(window.location.href),function(i){const c=a.isString(i)?s(i):i;return c.protocol===r.protocol&&c.host===r.host}}():function(){return function(){return!0}}(),sn=T.hasStandardBrowserEnv?{write(e,t,n,r,s,o){const i=[e+"="+encodeURIComponent(t)];a.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),a.isString(r)&&i.push("path="+r),a.isString(s)&&i.push("domain="+s),o===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function on(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function an(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Me(e,t){return e&&!on(t)?an(e,t):t}const we=e=>e instanceof g?{...e}:e;function F(e,t){t=t||{};const n={};function r(l,u,p){return a.isPlainObject(l)&&a.isPlainObject(u)?a.merge.call({caseless:p},l,u):a.isPlainObject(u)?a.merge({},u):a.isArray(u)?u.slice():u}function s(l,u,p){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l,p)}else return r(l,u,p)}function o(l,u){if(!a.isUndefined(u))return r(void 0,u)}function i(l,u){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function c(l,u,p){if(p in t)return r(l,u);if(p in e)return r(void 0,l)}const f={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:c,headers:(l,u)=>s(we(l),we(u),!0)};return a.forEach(Object.keys(Object.assign({},e,t)),function(u){const p=f[u]||s,b=p(e[u],t[u],u);a.isUndefined(b)&&p!==c||(n[u]=b)}),n}const ze=e=>{const t=F({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:c}=t;t.headers=i=g.from(i),t.url=ke(Me(t.baseURL,t.url),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let f;if(a.isFormData(n)){if(T.hasStandardBrowserEnv||T.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((f=i.getContentType())!==!1){const[l,...u]=f?f.split(";").map(p=>p.trim()).filter(Boolean):[];i.setContentType([l||"multipart/form-data",...u].join("; "))}}if(T.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(t)),r||r!==!1&&rn(t.url))){const l=s&&o&&sn.read(o);l&&i.set(s,l)}return t},cn=typeof XMLHttpRequest<"u",un=cn&&function(e){return new Promise(function(n,r){const s=ze(e);let o=s.data;const i=g.from(s.headers).normalize();let{responseType:c}=s,f;function l(){s.cancelToken&&s.cancelToken.unsubscribe(f),s.signal&&s.signal.removeEventListener("abort",f)}let u=new XMLHttpRequest;u.open(s.method.toUpperCase(),s.url,!0),u.timeout=s.timeout;function p(){if(!u)return;const y=g.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),m={data:!c||c==="text"||c==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:y,config:e,request:u};Ie(function(S){n(S),l()},function(S){r(S),l()},m),u=null}"onloadend"in u?u.onloadend=p:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(p)},u.onabort=function(){u&&(r(new h("Request aborted",h.ECONNABORTED,s,u)),u=null)},u.onerror=function(){r(new h("Network Error",h.ERR_NETWORK,s,u)),u=null},u.ontimeout=function(){let d=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const m=s.transitional||je;s.timeoutErrorMessage&&(d=s.timeoutErrorMessage),r(new h(d,m.clarifyTimeoutError?h.ETIMEDOUT:h.ECONNABORTED,s,u)),u=null},o===void 0&&i.setContentType(null),"setRequestHeader"in u&&a.forEach(i.toJSON(),function(d,m){u.setRequestHeader(m,d)}),a.isUndefined(s.withCredentials)||(u.withCredentials=!!s.withCredentials),c&&c!=="json"&&(u.responseType=s.responseType),typeof s.onDownloadProgress=="function"&&u.addEventListener("progress",M(s.onDownloadProgress,!0)),typeof s.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",M(s.onUploadProgress)),(s.cancelToken||s.signal)&&(f=y=>{u&&(r(!y||y.type?new B(null,e,u):y),u.abort(),u=null)},s.cancelToken&&s.cancelToken.subscribe(f),s.signal&&(s.signal.aborted?f():s.signal.addEventListener("abort",f)));const b=en(s.url);if(b&&T.protocols.indexOf(b)===-1){r(new h("Unsupported protocol "+b+":",h.ERR_BAD_REQUEST,e));return}u.send(o||null)})},ln=(e,t)=>{let n=new AbortController,r;const s=function(f){if(!r){r=!0,i();const l=f instanceof Error?f:this.reason;n.abort(l instanceof h?l:new B(l instanceof Error?l.message:l))}};let o=t&&setTimeout(()=>{s(new h(`timeout ${t} of ms exceeded`,h.ETIMEDOUT))},t);const i=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(f=>{f&&(f.removeEventListener?f.removeEventListener("abort",s):f.unsubscribe(s))}),e=null)};e.forEach(f=>f&&f.addEventListener&&f.addEventListener("abort",s));const{signal:c}=n;return c.unsubscribe=i,[c,()=>{o&&clearTimeout(o),o=null}]},fn=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,s;for(;r<n;)s=r+t,yield e.slice(r,s),r=s},dn=async function*(e,t,n){for await(const r of e)yield*fn(ArrayBuffer.isView(r)?r:await n(String(r)),t)},be=(e,t,n,r,s)=>{const o=dn(e,t,s);let i=0;return new ReadableStream({type:"bytes",async pull(c){const{done:f,value:l}=await o.next();if(f){c.close(),r();return}let u=l.byteLength;n&&n(i+=u),c.enqueue(new Uint8Array(l))},cancel(c){return r(c),o.return()}},{highWaterMark:2})},Ee=(e,t)=>{const n=e!=null;return r=>setTimeout(()=>t({lengthComputable:n,total:e,loaded:r}))},K=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Je=K&&typeof ReadableStream=="function",ee=K&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),pn=Je&&(()=>{let e=!1;const t=new Request(T.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})(),Re=64*1024,te=Je&&!!(()=>{try{return a.isReadableStream(new Response("").body)}catch{}})(),z={stream:te&&(e=>e.body)};K&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!z[t]&&(z[t]=a.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new h(`Response type '${t}' is not supported`,h.ERR_NOT_SUPPORT,r)})})})(new Response);const hn=async e=>{if(e==null)return 0;if(a.isBlob(e))return e.size;if(a.isSpecCompliantForm(e))return(await new Request(e).arrayBuffer()).byteLength;if(a.isArrayBufferView(e))return e.byteLength;if(a.isURLSearchParams(e)&&(e=e+""),a.isString(e))return(await ee(e)).byteLength},mn=async(e,t)=>{const n=a.toFiniteNumber(e.getContentLength());return n??hn(t)},yn=K&&(async e=>{let{url:t,method:n,data:r,signal:s,cancelToken:o,timeout:i,onDownloadProgress:c,onUploadProgress:f,responseType:l,headers:u,withCredentials:p="same-origin",fetchOptions:b}=ze(e);l=l?(l+"").toLowerCase():"text";let[y,d]=s||o||i?ln([s,o],i):[],m,R;const S=()=>{!m&&setTimeout(()=>{y&&y.unsubscribe()}),m=!0};let x;try{if(f&&pn&&n!=="get"&&n!=="head"&&(x=await mn(u,r))!==0){let C=new Request(t,{method:"POST",body:r,duplex:"half"}),_;a.isFormData(r)&&(_=C.headers.get("content-type"))&&u.setContentType(_),C.body&&(r=be(C.body,Re,Ee(x,M(f)),null,ee))}a.isString(p)||(p=p?"cors":"omit"),R=new Request(t,{...b,signal:y,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",withCredentials:p});let w=await fetch(R);const D=te&&(l==="stream"||l==="response");if(te&&(c||D)){const C={};["status","statusText","headers"].forEach(le=>{C[le]=w[le]});const _=a.toFiniteNumber(w.headers.get("content-length"));w=new Response(be(w.body,Re,c&&Ee(_,M(c,!0)),D&&S,ee),C)}l=l||"text";let Ke=await z[a.findKey(z,l)||"text"](w,e);return!D&&S(),d&&d(),await new Promise((C,_)=>{Ie(C,_,{data:Ke,headers:g.from(w.headers),status:w.status,statusText:w.statusText,config:e,request:R})})}catch(w){throw S(),w&&w.name==="TypeError"&&/fetch/i.test(w.message)?Object.assign(new h("Network Error",h.ERR_NETWORK,e,R),{cause:w.cause||w}):h.from(w,w&&w.code,e,R)}}),ne={http:Lt,xhr:un,fetch:yn};a.forEach(ne,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Se=e=>`- ${e}`,wn=e=>a.isFunction(e)||e===null||e===!1,Ve={getAdapter:e=>{e=a.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let o=0;o<t;o++){n=e[o];let i;if(r=n,!wn(n)&&(r=ne[(i=String(n)).toLowerCase()],r===void 0))throw new h(`Unknown adapter '${i}'`);if(r)break;s[i||"#"+o]=r}if(!r){const o=Object.entries(s).map(([c,f])=>`adapter ${c} `+(f===!1?"is not supported by the environment":"is not available in the build"));let i=t?o.length>1?`since :
|
|
4
|
+
`+o.map(Se).join(`
|
|
5
|
+
`):" "+Se(o[0]):"as no adapter specified";throw new h("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:ne};function Q(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new B(null,e)}function ge(e){return Q(e),e.headers=g.from(e.headers),e.data=X.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ve.getAdapter(e.adapter||q.adapter)(e).then(function(r){return Q(e),r.data=X.call(e,e.transformResponse,r),r.headers=g.from(r.headers),r},function(r){return He(r)||(Q(e),r&&r.response&&(r.response.data=X.call(e,e.transformResponse,r.response),r.response.headers=g.from(r.response.headers))),Promise.reject(r)})}const We="1.7.2",ce={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ce[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Oe={};ce.transitional=function(t,n,r){function s(o,i){return"[Axios v"+We+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,c)=>{if(t===!1)throw new h(s(i," has been removed"+(n?" in "+n:"")),h.ERR_DEPRECATED);return n&&!Oe[i]&&(Oe[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,c):!0}};function bn(e,t,n){if(typeof e!="object")throw new h("options must be an object",h.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const c=e[o],f=c===void 0||i(c,o,e);if(f!==!0)throw new h("option "+o+" must be "+f,h.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new h("Unknown option "+o,h.ERR_BAD_OPTION)}}const re={assertOptions:bn,validators:ce},N=re.validators;class P{constructor(t){this.defaults=t,this.interceptors={request:new me,response:new me}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s;Error.captureStackTrace?Error.captureStackTrace(s={}):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
6
|
+
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=F(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&re.assertOptions(r,{silentJSONParsing:N.transitional(N.boolean),forcedJSONParsing:N.transitional(N.boolean),clarifyTimeoutError:N.transitional(N.boolean)},!1),s!=null&&(a.isFunction(s)?n.paramsSerializer={serialize:s}:re.assertOptions(s,{encode:N.function,serialize:N.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&a.merge(o.common,o[n.method]);o&&a.forEach(["delete","get","head","post","put","patch","common"],d=>{delete o[d]}),n.headers=g.concat(i,o);const c=[];let f=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(f=f&&m.synchronous,c.unshift(m.fulfilled,m.rejected))});const l=[];this.interceptors.response.forEach(function(m){l.push(m.fulfilled,m.rejected)});let u,p=0,b;if(!f){const d=[ge.bind(this),void 0];for(d.unshift.apply(d,c),d.push.apply(d,l),b=d.length,u=Promise.resolve(n);p<b;)u=u.then(d[p++],d[p++]);return u}b=c.length;let y=n;for(p=0;p<b;){const d=c[p++],m=c[p++];try{y=d(y)}catch(R){m.call(this,R);break}}try{u=ge.call(this,y)}catch(d){return Promise.reject(d)}for(p=0,b=l.length;p<b;)u=u.then(l[p++],l[p++]);return u}getUri(t){t=F(this.defaults,t);const n=Me(t.baseURL,t.url);return ke(n,t.params,t.paramsSerializer)}}a.forEach(["delete","get","head","options"],function(t){P.prototype[t]=function(n,r){return this.request(F(r||{},{method:t,url:n,data:(r||{}).data}))}});a.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,c){return this.request(F(c||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}P.prototype[t]=n(),P.prototype[t+"Form"]=n(!0)});class ue{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(c=>{r.subscribe(c),o=c}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,c){r.reason||(r.reason=new B(o,i,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new ue(function(s){t=s}),cancel:t}}}function En(e){return function(n){return e.apply(null,n)}}function Rn(e){return a.isObject(e)&&e.isAxiosError===!0}const se={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(se).forEach(([e,t])=>{se[t]=e});function $e(e){const t=new P(e),n=Te(P.prototype.request,t);return a.extend(n,P.prototype,t,{allOwnKeys:!0}),a.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return $e(F(e,s))},n}const E=$e(q);E.Axios=P;E.CanceledError=B;E.CancelToken=ue;E.isCancel=He;E.VERSION=We;E.toFormData=$;E.AxiosError=h;E.Cancel=E.CanceledError;E.all=function(t){return Promise.all(t)};E.spread=En;E.isAxiosError=Rn;E.mergeConfig=F;E.AxiosHeaders=g;E.formToJSON=e=>qe(a.isHTMLForm(e)?new FormData(e):e);E.getAdapter=Ve.getAdapter;E.HttpStatusCode=se;E.default=E;const Sn=E;export{Sn as default};
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
8
|
<meta name="theme-color" content="#000000" />
|
|
9
9
|
<meta name="description" content="Peerbit node" />
|
|
10
|
-
<link rel="apple-touch-icon" href="/
|
|
10
|
+
<link rel="apple-touch-icon" href="/logo192.png" />
|
|
11
11
|
<!--
|
|
12
12
|
manifest.json provides metadata used when your web app is installed on a
|
|
13
13
|
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
|
14
14
|
-->
|
|
15
|
-
<link rel="manifest" href="/
|
|
15
|
+
<link rel="manifest" href="/manifest.json" />
|
|
16
16
|
<!--
|
|
17
17
|
Notice the use of in the tags above.
|
|
18
18
|
It will be replaced with the URL of the `public` folder during the build.
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
Learn how to configure a non-root public URL by running `npm run build`.
|
|
24
24
|
-->
|
|
25
25
|
<title>Peerbit</title>
|
|
26
|
-
<script type="module" crossorigin src="/assets/index-
|
|
26
|
+
<script type="module" crossorigin src="/assets/index-BNL2lkmu.js"></script>
|
|
27
27
|
<link rel="stylesheet" crossorigin href="/assets/index-BDBx6C_I.css">
|
|
28
28
|
</head>
|
|
29
29
|
|
package/package.json
CHANGED
|
@@ -1,80 +1,92 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
2
|
+
"name": "@peerbit/server",
|
|
3
|
+
"version": "5.0.34-55cebfe",
|
|
4
|
+
"author": "dao.xyz",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/dao-xyz/peerbit"
|
|
8
|
+
},
|
|
9
|
+
"license": "Apache-2.0",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"bin": {
|
|
13
|
+
"peerbit": "./dist/src/bin.js"
|
|
14
|
+
},
|
|
15
|
+
"module": "dist/src/index.js",
|
|
16
|
+
"types": "dist/src/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
"import": "./dist/src/index.js"
|
|
19
|
+
},
|
|
20
|
+
"browser": {
|
|
21
|
+
"./dist/src/server.js": "./dist/src/server.browser.js",
|
|
22
|
+
"./server.js": "./dist/src/server.browser.js",
|
|
23
|
+
"./dist/src/config.js": "./dist/src/config.browser.js",
|
|
24
|
+
"./config.js": "./dist/src/config.browser.js",
|
|
25
|
+
"./dist/src/remotes.js": "./dist/src/remotes.browser.js",
|
|
26
|
+
"./remotes.js": "./dist/src/remotes.browser.js",
|
|
27
|
+
"./dist/src/docker.js": "./dist/src/docker.browser.js",
|
|
28
|
+
"./docker.js": "./dist/src/docker.browser.js",
|
|
29
|
+
"./dist/src/aws.js": "./dist/src/aws.browser.js"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"src",
|
|
34
|
+
"src/nginx-template.conf",
|
|
35
|
+
"!src/test",
|
|
36
|
+
"!src/**/__tests__",
|
|
37
|
+
"!lib/**/__tests__",
|
|
38
|
+
"patches",
|
|
39
|
+
"LICENSE"
|
|
40
|
+
],
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=18"
|
|
46
|
+
},
|
|
47
|
+
"eslintConfig": {
|
|
48
|
+
"extends": "peerbit",
|
|
49
|
+
"parserOptions": {
|
|
50
|
+
"project": true,
|
|
51
|
+
"sourceType": "module"
|
|
52
|
+
},
|
|
53
|
+
"ignorePatterns": [
|
|
54
|
+
"!.aegir.js",
|
|
55
|
+
"test/ts-use",
|
|
56
|
+
"*.d.ts"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"clean": "shx rm -rf lib/*",
|
|
61
|
+
"build": "yarn clean && yarn build-lib && yarn build-ui",
|
|
62
|
+
"build-lib": "tsc -p tsconfig.json",
|
|
63
|
+
"build-ui": "cd ../frontend && yarn build && cd ../node",
|
|
64
|
+
"postbuild": "cp src/nginx-template.conf dist/ && cp -r ../frontend/dist/. dist/ui",
|
|
65
|
+
"test": "aegir test",
|
|
66
|
+
"lint": "aegir lint"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@peerbit/test-lib": "0.0.1-55cebfe",
|
|
70
|
+
"@peerbit/test-utils": "2.0.34-55cebfe",
|
|
71
|
+
"@types/yargs": "17.0.24",
|
|
72
|
+
"aws-sdk": "^2.1259.0",
|
|
73
|
+
"dotenv": "^16.1.4",
|
|
74
|
+
"@types/tmp": "^0.2.3",
|
|
75
|
+
"@types/tar-stream": "^3.1.3",
|
|
76
|
+
"shx": "^0.3.4"
|
|
77
|
+
},
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"@dao-xyz/libp2p-noise": "^14.1.2",
|
|
80
|
+
"axios": "^1.4.0",
|
|
81
|
+
"chalk": "^5.3.0",
|
|
82
|
+
"peerbit": "4.0.8-55cebfe",
|
|
83
|
+
"yargs": "^17.7.2",
|
|
84
|
+
"tar-stream": "^3.1.7",
|
|
85
|
+
"tmp": "^0.2.1",
|
|
86
|
+
"tty-table": "^4.2.1"
|
|
87
|
+
},
|
|
88
|
+
"optionalDependencies": {
|
|
89
|
+
"@aws-sdk/client-ec2": "^3.390.0",
|
|
90
|
+
"@aws-sdk/client-route-53": "^3.391.0"
|
|
91
|
+
}
|
|
80
92
|
}
|
package/src/aws.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
4
|
import { type PeerId } from "@libp2p/interface";
|
|
5
|
+
import { delay } from "@peerbit/time";
|
|
3
6
|
|
|
4
7
|
export const createRecord = async (options: {
|
|
5
8
|
domain: string;
|
|
@@ -26,9 +29,9 @@ export const createRecord = async (options: {
|
|
|
26
29
|
credentials: options.credentials
|
|
27
30
|
? {
|
|
28
31
|
accessKeyId: options.credentials.accessKeyId,
|
|
29
|
-
secretAccessKey: options.credentials.secretAccessKey
|
|
32
|
+
secretAccessKey: options.credentials.secretAccessKey,
|
|
30
33
|
}
|
|
31
|
-
: undefined
|
|
34
|
+
: undefined,
|
|
32
35
|
});
|
|
33
36
|
const cmd = new ChangeResourceRecordSetsCommand({
|
|
34
37
|
ChangeBatch: {
|
|
@@ -39,12 +42,12 @@ export const createRecord = async (options: {
|
|
|
39
42
|
Name: options.domain,
|
|
40
43
|
Type: v4 ? "A" : "AAAA",
|
|
41
44
|
TTL: 60,
|
|
42
|
-
ResourceRecords: [{ Value: myIp }]
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
]
|
|
45
|
+
ResourceRecords: [{ Value: myIp }],
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
46
49
|
},
|
|
47
|
-
HostedZoneId: options.hostedZoneId
|
|
50
|
+
HostedZoneId: options.hostedZoneId,
|
|
48
51
|
});
|
|
49
52
|
await client.send(cmd);
|
|
50
53
|
};
|
|
@@ -95,7 +98,7 @@ export const AWS_LINUX_ARM_AMIs: Record<string, string> = {
|
|
|
95
98
|
/* "us-gov-east-1",
|
|
96
99
|
"us-gov-west-1", */
|
|
97
100
|
"us-west-1": "ami-0dca369228f3b2ce7",
|
|
98
|
-
"us-west-2": "ami-0c79a55dda52434da"
|
|
101
|
+
"us-west-2": "ami-0c79a55dda52434da",
|
|
99
102
|
};
|
|
100
103
|
export const launchNodes = async (properties: {
|
|
101
104
|
region?: string;
|
|
@@ -111,7 +114,7 @@ export const launchNodes = async (properties: {
|
|
|
111
114
|
throw new Error(
|
|
112
115
|
"Unexpected node launch count: " +
|
|
113
116
|
properties.count +
|
|
114
|
-
". To prevent unwanted behaviour you can also launch 10 nodes at once"
|
|
117
|
+
". To prevent unwanted behaviour you can also launch 10 nodes at once",
|
|
115
118
|
);
|
|
116
119
|
}
|
|
117
120
|
const count = properties.count || 1;
|
|
@@ -123,7 +126,7 @@ export const launchNodes = async (properties: {
|
|
|
123
126
|
DescribeSecurityGroupsCommand,
|
|
124
127
|
CreateSecurityGroupCommand,
|
|
125
128
|
AuthorizeSecurityGroupIngressCommand,
|
|
126
|
-
DescribeInstancesCommand
|
|
129
|
+
DescribeInstancesCommand,
|
|
127
130
|
} = await import("@aws-sdk/client-ec2");
|
|
128
131
|
const client = new EC2Client({ region: properties.region });
|
|
129
132
|
const regionString = await client.config.region();
|
|
@@ -132,23 +135,23 @@ export const launchNodes = async (properties: {
|
|
|
132
135
|
await client.send(
|
|
133
136
|
new DescribeSecurityGroupsCommand({
|
|
134
137
|
Filters: [
|
|
135
|
-
{ Name: "tag:" + PURPOSE_TAG_NAME, Values: [PURPOSE_TAG_VALUE] }
|
|
136
|
-
]
|
|
137
|
-
})
|
|
138
|
+
{ Name: "tag:" + PURPOSE_TAG_NAME, Values: [PURPOSE_TAG_VALUE] },
|
|
139
|
+
],
|
|
140
|
+
}),
|
|
138
141
|
)
|
|
139
142
|
)?.SecurityGroups?.[0];
|
|
140
143
|
if (!securityGroupOut) {
|
|
141
144
|
securityGroupOut = await client.send(
|
|
142
145
|
new CreateSecurityGroupCommand({
|
|
143
146
|
GroupName: "peerbit-node",
|
|
144
|
-
Description: "Security group for running Peerbit nodes"
|
|
145
|
-
})
|
|
147
|
+
Description: "Security group for running Peerbit nodes",
|
|
148
|
+
}),
|
|
146
149
|
);
|
|
147
150
|
await client.send(
|
|
148
151
|
new CreateTagsCommand({
|
|
149
152
|
Resources: [securityGroupOut.GroupId!],
|
|
150
|
-
Tags: [{ Key: PURPOSE_TAG_NAME, Value: PURPOSE_TAG_VALUE }]
|
|
151
|
-
})
|
|
153
|
+
Tags: [{ Key: PURPOSE_TAG_NAME, Value: PURPOSE_TAG_VALUE }],
|
|
154
|
+
}),
|
|
152
155
|
);
|
|
153
156
|
await client.send(
|
|
154
157
|
new AuthorizeSecurityGroupIngressCommand({
|
|
@@ -158,40 +161,40 @@ export const launchNodes = async (properties: {
|
|
|
158
161
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
159
162
|
IpProtocol: "tcp",
|
|
160
163
|
FromPort: 80,
|
|
161
|
-
ToPort: 80
|
|
164
|
+
ToPort: 80,
|
|
162
165
|
}, // Frontend
|
|
163
166
|
{
|
|
164
167
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
165
168
|
IpProtocol: "tcp",
|
|
166
169
|
FromPort: 443,
|
|
167
|
-
ToPort: 443
|
|
170
|
+
ToPort: 443,
|
|
168
171
|
}, // Frontend SSL
|
|
169
172
|
{
|
|
170
173
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
171
174
|
IpProtocol: "tcp",
|
|
172
175
|
FromPort: 9002,
|
|
173
|
-
ToPort: 9002
|
|
176
|
+
ToPort: 9002,
|
|
174
177
|
}, // HTTPS api
|
|
175
178
|
{
|
|
176
179
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
177
180
|
IpProtocol: "tcp",
|
|
178
181
|
FromPort: 8082,
|
|
179
|
-
ToPort: 8082
|
|
182
|
+
ToPort: 8082,
|
|
180
183
|
}, // HTTP api
|
|
181
184
|
{
|
|
182
185
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
183
186
|
IpProtocol: "tcp",
|
|
184
187
|
FromPort: 4002,
|
|
185
|
-
ToPort: 4005
|
|
188
|
+
ToPort: 4005,
|
|
186
189
|
}, // libp2p
|
|
187
190
|
{
|
|
188
191
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
189
192
|
IpProtocol: "tcp",
|
|
190
193
|
FromPort: 22,
|
|
191
|
-
ToPort: 22
|
|
192
|
-
} // SSH
|
|
193
|
-
]
|
|
194
|
-
})
|
|
194
|
+
ToPort: 22,
|
|
195
|
+
}, // SSH
|
|
196
|
+
],
|
|
197
|
+
}),
|
|
195
198
|
);
|
|
196
199
|
}
|
|
197
200
|
const instanceTag =
|
|
@@ -200,8 +203,8 @@ export const launchNodes = async (properties: {
|
|
|
200
203
|
(
|
|
201
204
|
await client.send(
|
|
202
205
|
new DescribeInstancesCommand({
|
|
203
|
-
Filters: [{ Name: "tag:Purpose", Values: [instanceTag] }]
|
|
204
|
-
})
|
|
206
|
+
Filters: [{ Name: "tag:Purpose", Values: [instanceTag] }],
|
|
207
|
+
}),
|
|
205
208
|
)
|
|
206
209
|
).Reservations?.length || 0;
|
|
207
210
|
|
|
@@ -212,12 +215,12 @@ export const launchNodes = async (properties: {
|
|
|
212
215
|
SecurityGroupIds: [securityGroupOut.GroupId!],
|
|
213
216
|
InstanceType: ("t4g." + (properties.size || "micro")) as any, // TODO types
|
|
214
217
|
UserData: Buffer.from(
|
|
215
|
-
setupUserData(properties.email, properties.grantAccess)
|
|
218
|
+
setupUserData(properties.email, properties.grantAccess),
|
|
216
219
|
).toString("base64"),
|
|
217
220
|
MinCount: count,
|
|
218
|
-
MaxCount: count
|
|
221
|
+
MaxCount: count,
|
|
219
222
|
// InstanceInitiatedShutdownBehavior: 'terminate' // to enable termination when node shutting itself down
|
|
220
|
-
})
|
|
223
|
+
}),
|
|
221
224
|
);
|
|
222
225
|
|
|
223
226
|
if (!instanceOut.Instances || instanceOut.Instances.length === 0) {
|
|
@@ -237,37 +240,33 @@ export const launchNodes = async (properties: {
|
|
|
237
240
|
Resources: [instance.InstanceId!],
|
|
238
241
|
Tags: [
|
|
239
242
|
{ Key: "Name", Value: name },
|
|
240
|
-
{ Key: "Purpose", Value: instanceTag }
|
|
241
|
-
]
|
|
242
|
-
})
|
|
243
|
+
{ Key: "Purpose", Value: instanceTag },
|
|
244
|
+
],
|
|
245
|
+
}),
|
|
243
246
|
);
|
|
244
247
|
}
|
|
245
248
|
|
|
246
249
|
// wait for instance ips to become available
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
250
|
+
const info = await client.send(
|
|
251
|
+
new DescribeInstancesCommand({
|
|
252
|
+
InstanceIds: instanceOut.Instances.map((x) => x.InstanceId!),
|
|
253
|
+
}),
|
|
254
|
+
);
|
|
255
|
+
const foundInstances = info
|
|
256
|
+
.Reservations!.map((x) => x.Instances!.map((y) => y))
|
|
257
|
+
.flat()!;
|
|
258
|
+
const foundIps: string[] = [];
|
|
259
|
+
for (const out of instanceOut.Instances) {
|
|
260
|
+
const foundInstance = foundInstances.find(
|
|
261
|
+
(x) => x!.InstanceId === out.InstanceId!,
|
|
253
262
|
);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const foundIps: string[] = [];
|
|
258
|
-
for (const out of instanceOut.Instances) {
|
|
259
|
-
const foundInstance = foundInstances.find(
|
|
260
|
-
(x) => x!.InstanceId === out.InstanceId!
|
|
261
|
-
);
|
|
262
|
-
if (!foundInstance!.PublicIpAddress) {
|
|
263
|
-
await delay(3000);
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
foundIps.push(foundInstance!.PublicIpAddress!);
|
|
263
|
+
if (!foundInstance!.PublicIpAddress) {
|
|
264
|
+
await delay(3000);
|
|
265
|
+
continue;
|
|
267
266
|
}
|
|
268
|
-
|
|
269
|
-
break;
|
|
267
|
+
foundIps.push(foundInstance!.PublicIpAddress!);
|
|
270
268
|
}
|
|
269
|
+
let publicIps: string[] = foundIps;
|
|
271
270
|
|
|
272
271
|
if (publicIps.length === 0) {
|
|
273
272
|
throw new Error("Failed to resolve IPs for created instances");
|
|
@@ -278,7 +277,7 @@ export const launchNodes = async (properties: {
|
|
|
278
277
|
instanceId: instanceOut.Instances![ix].InstanceId!,
|
|
279
278
|
publicIp: v,
|
|
280
279
|
name: names[ix],
|
|
281
|
-
region: regionString
|
|
280
|
+
region: regionString,
|
|
282
281
|
};
|
|
283
282
|
}); // TODO types
|
|
284
283
|
};
|
|
@@ -292,6 +291,6 @@ export const terminateNode = async (properties: {
|
|
|
292
291
|
);
|
|
293
292
|
const client = new EC2Client({ region: properties.region });
|
|
294
293
|
await client.send(
|
|
295
|
-
new TerminateInstancesCommand({ InstanceIds: [properties.instanceId] })
|
|
294
|
+
new TerminateInstancesCommand({ InstanceIds: [properties.instanceId] }),
|
|
296
295
|
);
|
|
297
296
|
};
|