@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.
Files changed (166) hide show
  1. package/dist/src/aws.browser.d.ts +1 -0
  2. package/dist/src/aws.browser.d.ts.map +1 -0
  3. package/{lib/esm → dist/src}/aws.d.ts +1 -0
  4. package/dist/src/aws.d.ts.map +1 -0
  5. package/{lib/esm → dist/src}/aws.js +43 -44
  6. package/dist/src/aws.js.map +1 -0
  7. package/dist/src/bin.d.ts +3 -0
  8. package/dist/src/bin.d.ts.map +1 -0
  9. package/{lib/esm → dist/src}/bin.js.map +1 -1
  10. package/{lib/esm → dist/src}/cli.d.ts +1 -0
  11. package/dist/src/cli.d.ts.map +1 -0
  12. package/{lib/esm → dist/src}/cli.js +107 -106
  13. package/dist/src/cli.js.map +1 -0
  14. package/{lib/esm → dist/src}/client.d.ts +6 -5
  15. package/dist/src/client.d.ts.map +1 -0
  16. package/{lib/esm → dist/src}/client.js +28 -36
  17. package/dist/src/client.js.map +1 -0
  18. package/dist/src/config.browser.d.ts +1 -0
  19. package/dist/src/config.browser.d.ts.map +1 -0
  20. package/{lib/esm → dist/src}/config.d.ts +1 -0
  21. package/dist/src/config.d.ts.map +1 -0
  22. package/{lib/esm → dist/src}/config.js +6 -6
  23. package/dist/src/config.js.map +1 -0
  24. package/dist/src/docker.browser.d.ts +1 -0
  25. package/dist/src/docker.browser.d.ts.map +1 -0
  26. package/{lib/esm → dist/src}/docker.d.ts +1 -0
  27. package/dist/src/docker.d.ts.map +1 -0
  28. package/{lib/esm → dist/src}/docker.js +2 -2
  29. package/dist/src/docker.js.map +1 -0
  30. package/{lib/esm → dist/src}/domain.d.ts +1 -7
  31. package/dist/src/domain.d.ts.map +1 -0
  32. package/{lib/esm → dist/src}/domain.js +6 -13
  33. package/dist/src/domain.js.map +1 -0
  34. package/{lib/esm → dist/src}/index.d.ts +1 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/{lib/esm → dist/src}/peerbit.d.ts +2 -1
  37. package/dist/src/peerbit.d.ts.map +1 -0
  38. package/{lib/esm → dist/src}/peerbit.js +10 -9
  39. package/dist/src/peerbit.js.map +1 -0
  40. package/dist/src/remotes.browser.d.ts +1 -0
  41. package/dist/src/remotes.browser.d.ts.map +1 -0
  42. package/{lib/esm → dist/src}/remotes.d.ts +1 -0
  43. package/dist/src/remotes.d.ts.map +1 -0
  44. package/{lib/esm → dist/src}/remotes.js +1 -1
  45. package/{lib/esm → dist/src}/routes.d.ts +1 -0
  46. package/dist/src/routes.d.ts.map +1 -0
  47. package/dist/src/server.browser.d.ts +1 -0
  48. package/dist/src/server.browser.d.ts.map +1 -0
  49. package/{lib/esm → dist/src}/server.d.ts +2 -2
  50. package/dist/src/server.d.ts.map +1 -0
  51. package/{lib/esm → dist/src}/server.js +25 -27
  52. package/dist/src/server.js.map +1 -0
  53. package/{lib/esm → dist/src}/session.d.ts +2 -2
  54. package/dist/src/session.d.ts.map +1 -0
  55. package/{lib/esm → dist/src}/session.js +2 -2
  56. package/{lib/esm/signes-request.d.ts → dist/src/signed-request.d.ts} +3 -3
  57. package/dist/src/signed-request.d.ts.map +1 -0
  58. package/{lib/esm/signes-request.js → dist/src/signed-request.js} +3 -3
  59. package/{lib/esm/signes-request.js.map → dist/src/signed-request.js.map} +1 -1
  60. package/dist/src/trust.browser.d.ts +1 -0
  61. package/dist/src/trust.browser.d.ts.map +1 -0
  62. package/{lib/esm → dist/src}/trust.d.ts +1 -0
  63. package/dist/src/trust.d.ts.map +1 -0
  64. package/{lib/esm → dist/src}/types.d.ts +1 -0
  65. package/dist/src/types.d.ts.map +1 -0
  66. package/dist/test/api.spec.d.ts +2 -0
  67. package/dist/test/api.spec.d.ts.map +1 -0
  68. package/dist/test/api.spec.js +223 -0
  69. package/dist/test/api.spec.js.map +1 -0
  70. package/dist/test/cli.spec.d.ts +2 -0
  71. package/dist/test/cli.spec.d.ts.map +1 -0
  72. package/dist/test/cli.spec.js +264 -0
  73. package/dist/test/cli.spec.js.map +1 -0
  74. package/dist/test/client.spec.d.ts +2 -0
  75. package/dist/test/client.spec.d.ts.map +1 -0
  76. package/dist/test/client.spec.js +23 -0
  77. package/dist/test/client.spec.js.map +1 -0
  78. package/dist/test/config.spec.d.ts +2 -0
  79. package/dist/test/config.spec.d.ts.map +1 -0
  80. package/dist/test/config.spec.js +12 -0
  81. package/dist/test/config.spec.js.map +1 -0
  82. package/dist/test/domain.integration.spec.d.ts +2 -0
  83. package/dist/test/domain.integration.spec.d.ts.map +1 -0
  84. package/dist/test/domain.integration.spec.js +101 -0
  85. package/dist/test/domain.integration.spec.js.map +1 -0
  86. package/dist/test/launch.spec.d.ts +1 -0
  87. package/dist/test/launch.spec.d.ts.map +1 -0
  88. package/dist/test/launch.spec.js +23 -0
  89. package/dist/test/launch.spec.js.map +1 -0
  90. package/dist/test/signed-request.spec.d.ts +2 -0
  91. package/dist/test/signed-request.spec.d.ts.map +1 -0
  92. package/dist/test/signed-request.spec.js +35 -0
  93. package/dist/test/signed-request.spec.js.map +1 -0
  94. package/dist/test/utils.d.ts +3 -0
  95. package/dist/test/utils.d.ts.map +1 -0
  96. package/dist/test/utils.js +6 -0
  97. package/dist/test/utils.js.map +1 -0
  98. package/dist/tsconfig.tsbuildinfo +1 -0
  99. package/dist/ui/assets/index-BNL2lkmu.js +128 -0
  100. package/dist/ui/assets/index-q5H34Jar.js +6 -0
  101. package/{lib → dist}/ui/index.html +3 -3
  102. package/package.json +90 -78
  103. package/src/aws.ts +57 -58
  104. package/src/bin.ts +1 -0
  105. package/src/cli.ts +149 -146
  106. package/src/client.ts +66 -81
  107. package/src/config.ts +12 -12
  108. package/src/docker.ts +3 -3
  109. package/src/domain.ts +16 -23
  110. package/src/peerbit.ts +10 -10
  111. package/src/remotes.ts +2 -2
  112. package/src/server.ts +58 -68
  113. package/src/session.ts +7 -7
  114. package/src/{signes-request.ts → signed-request.ts} +8 -8
  115. package/src/trust.ts +1 -1
  116. package/lib/esm/aws.browser.d.ts +0 -0
  117. package/lib/esm/aws.js.map +0 -1
  118. package/lib/esm/bin.d.ts +0 -2
  119. package/lib/esm/cli.js.map +0 -1
  120. package/lib/esm/client.js.map +0 -1
  121. package/lib/esm/config.browser.d.ts +0 -0
  122. package/lib/esm/config.js.map +0 -1
  123. package/lib/esm/docker.browser.d.ts +0 -0
  124. package/lib/esm/docker.js.map +0 -1
  125. package/lib/esm/domain.js.map +0 -1
  126. package/lib/esm/peerbit.js.map +0 -1
  127. package/lib/esm/remotes.browser.d.ts +0 -0
  128. package/lib/esm/server.browser.d.ts +0 -0
  129. package/lib/esm/server.js.map +0 -1
  130. package/lib/esm/trust.browser.d.ts +0 -0
  131. package/lib/ui/assets/index-BSyx7bor.js +0 -6
  132. package/lib/ui/assets/index-DUhlTXpa.js +0 -77
  133. package/lib/ui/assets/manifest-DSoGU8T2.json +0 -25
  134. /package/{lib/esm → dist}/nginx-template.conf +0 -0
  135. /package/{lib/esm → dist/src}/aws.browser.js +0 -0
  136. /package/{lib/esm → dist/src}/aws.browser.js.map +0 -0
  137. /package/{lib/esm → dist/src}/bin.js +0 -0
  138. /package/{lib/esm → dist/src}/config.browser.js +0 -0
  139. /package/{lib/esm → dist/src}/config.browser.js.map +0 -0
  140. /package/{lib/esm → dist/src}/docker.browser.js +0 -0
  141. /package/{lib/esm → dist/src}/docker.browser.js.map +0 -0
  142. /package/{lib/esm → dist/src}/index.js +0 -0
  143. /package/{lib/esm → dist/src}/index.js.map +0 -0
  144. /package/{lib/esm → dist/src}/remotes.browser.js +0 -0
  145. /package/{lib/esm → dist/src}/remotes.browser.js.map +0 -0
  146. /package/{lib/esm → dist/src}/remotes.js.map +0 -0
  147. /package/{lib/esm → dist/src}/routes.js +0 -0
  148. /package/{lib/esm → dist/src}/routes.js.map +0 -0
  149. /package/{lib/esm → dist/src}/server.browser.js +0 -0
  150. /package/{lib/esm → dist/src}/server.browser.js.map +0 -0
  151. /package/{lib/esm → dist/src}/session.js.map +0 -0
  152. /package/{lib/esm → dist/src}/trust.browser.js +0 -0
  153. /package/{lib/esm → dist/src}/trust.browser.js.map +0 -0
  154. /package/{lib/esm → dist/src}/trust.js +0 -0
  155. /package/{lib/esm → dist/src}/trust.js.map +0 -0
  156. /package/{lib/esm → dist/src}/types.js +0 -0
  157. /package/{lib/esm → dist/src}/types.js.map +0 -0
  158. /package/{lib → dist}/ui/android-chrome-192x192.png +0 -0
  159. /package/{lib → dist}/ui/android-chrome-512x512.png +0 -0
  160. /package/{lib → dist}/ui/assets/favicon-BYZpRdSr.ico +0 -0
  161. /package/{lib → dist}/ui/assets/index-BDBx6C_I.css +0 -0
  162. /package/{lib → dist}/ui/favicon-16x16.png +0 -0
  163. /package/{lib → dist}/ui/favicon-32x32.png +0 -0
  164. /package/{lib → dist}/ui/favicon.ico +0 -0
  165. /package/{lib → dist}/ui/manifest.json +0 -0
  166. /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="/public/logo192.png" />
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="/assets/manifest-DSoGU8T2.json" />
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-DUhlTXpa.js"></script>
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
- "name": "@peerbit/server",
3
- "version": "5.0.33",
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": "./lib/esm/bin.js"
14
- },
15
- "module": "lib/esm/index.js",
16
- "types": "lib/esm/index.d.ts",
17
- "exports": {
18
- "import": "./lib/esm/index.js"
19
- },
20
- "browser": {
21
- "./lib/esm/server.js": "./lib/esm/server.browser.js",
22
- "./server.js": "./lib/esm/server.browser.js",
23
- "./lib/esm/config.js": "./lib/esm/config.browser.js",
24
- "./config.js": "./lib/esm/config.browser.js",
25
- "./lib/esm/remotes.js": "./lib/esm/remotes.browser.js",
26
- "./remotes.js": "./lib/esm/remotes.browser.js",
27
- "./lib/esm/docker.js": "./lib/esm/docker.browser.js",
28
- "./docker.js": "./lib/esm/docker.browser.js",
29
- "./lib/esm/aws.js": "./lib/esm/aws.browser.js"
30
- },
31
- "files": [
32
- "lib",
33
- "src",
34
- "src/nginx-template.conf",
35
- "!src/**/__tests__",
36
- "!lib/**/__tests__",
37
- "patches",
38
- "LICENSE"
39
- ],
40
- "publishConfig": {
41
- "access": "public"
42
- },
43
- "engines": {
44
- "node": ">=18"
45
- },
46
- "scripts": {
47
- "clean": "shx rm -rf lib/*",
48
- "build": "yarn clean && yarn build-lib && yarn build-ui",
49
- "build-lib": "tsc -p tsconfig.json",
50
- "build-ui": "cd ../frontend && yarn build && cd ../node",
51
- "postbuild": "cp src/nginx-template.conf lib/esm/ && cp -r ../frontend/dist lib/ui",
52
- "test": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.ts --runInBand --forceExit",
53
- "test:unit": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.unit.ts --runInBand --forceExit",
54
- "test:integration": "node ../node_modules/.bin/jest test -c ../../../jest.config.integration.ts --runInBand --forceExit"
55
- },
56
- "devDependencies": {
57
- "@peerbit/test-lib": "^0.0.1",
58
- "@peerbit/test-utils": "2.0.33",
59
- "@types/tmp": "^0.2.3",
60
- "@types/yargs": "17.0.24",
61
- "aws-sdk": "^2.1259.0",
62
- "dotenv": "^16.1.4"
63
- },
64
- "dependencies": {
65
- "@dao-xyz/libp2p-noise": "^14.1.2",
66
- "axios": "^1.4.0",
67
- "chalk": "^5.3.0",
68
- "peerbit": "4.0.7",
69
- "tar-stream": "^3.1.6",
70
- "tmp": "^0.2.1",
71
- "tty-table": "^4.2.1",
72
- "yargs": "^17.7.2",
73
- "zlib": "^1.0.5"
74
- },
75
- "optionalDependencies": {
76
- "@aws-sdk/client-ec2": "^3.390.0",
77
- "@aws-sdk/client-route-53": "^3.391.0"
78
- },
79
- "gitHead": "fcd486b9a5c3b7d94e2ae14f1b06ab2a0f7841ad"
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
- import { delay } from "@peerbit/time";
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
- let publicIps: string[] = [];
248
- for (let i = 0; i < 10; i++) {
249
- const info = await client.send(
250
- new DescribeInstancesCommand({
251
- InstanceIds: instanceOut.Instances.map((x) => x.InstanceId!)
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
- const foundInstances = info
255
- .Reservations!.map((x) => x.Instances!.map((y) => y))
256
- .flat()!;
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
- publicIps = foundIps;
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
  };
package/src/bin.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { cli } from "./cli.js";
3
+
3
4
  try {
4
5
  await cli();
5
6
  } catch (error: any) {