@niledatabase/server 3.0.0-alpha.20 → 3.0.0-alpha.21
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/db/NileInstance.d.ts +1 -0
- package/dist/server.cjs.development.js +129 -112
- package/dist/server.cjs.development.js.map +1 -1
- package/dist/server.cjs.production.min.js +1 -1
- package/dist/server.cjs.production.min.js.map +1 -1
- package/dist/server.esm.js +130 -113
- package/dist/server.esm.js.map +1 -1
- package/dist/types.d.ts +7 -5
- package/dist/utils/Config/index.d.ts +2 -1
- package/dist/utils/Logger.d.ts +3 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("dotenv/config");var e=require("pg"),t=require("jose");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t,n,r,a,s,u){try{var o=e[s](u),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,s){var u=e.apply(t,n);function o(e){r(u,a,s,o,i,"next",e)}function i(e){r(u,a,s,o,i,"throw",e)}o(void 0)}))}}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,h(r.key),r)}}function u(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(null,arguments)}function c(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,l(e,t)}function f(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function p(){p=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",o=s.asyncIterator||"@@asyncIterator",i=s.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var s=Object.create((t&&t.prototype instanceof w?t:w).prototype),u=new _(r||[]);return a(s,"_invoke",{value:S(e,n,u)}),s}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var h="suspendedStart",d="suspendedYield",v="executing",b="completed",g={};function w(){}function m(){}function y(){}var x={};c(x,u,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(P([])));k&&k!==n&&r.call(k,u)&&(x=k);var I=y.prototype=w.prototype=Object.create(x);function N(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(a,s,u,o){var i=l(e[a],e,s);if("throw"!==i.type){var c=i.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,u,o)}),(function(e){n("throw",e,u,o)})):t.resolve(f).then((function(e){c.value=e,u(c)}),(function(e){return n("throw",e,u,o)}))}o(i.arg)}var s;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return s=s?s.then(a,a):a()}})}function S(t,n,r){var a=h;return function(s,u){if(a===v)throw Error("Generator is already running");if(a===b){if("throw"===s)throw u;return{value:e,done:!0}}for(r.method=s,r.arg=u;;){var o=r.delegate;if(o){var i=R(o,r);if(i){if(i===g)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===h)throw a=b,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=v;var c=l(t,n,r);if("normal"===c.type){if(a=r.done?b:d,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(a=b,r.method="throw",r.arg=c.arg)}}}function R(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,R(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var s=l(a,t.iterator,n.arg);if("throw"===s.type)return n.method="throw",n.arg=s.arg,n.delegate=null,g;var u=s.arg;return u?u.done?(n[t.resultName]=u.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):u:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function U(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,s=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return s.next=s}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=y,a(I,"constructor",{value:y,configurable:!0}),a(y,"constructor",{value:m,configurable:!0}),m.displayName=c(y,i,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,i,"GeneratorFunction")),e.prototype=Object.create(I),e},t.awrap=function(e){return{__await:e}},N(T.prototype),c(T.prototype,o,(function(){return this})),t.AsyncIterator=T,t.async=function(e,n,r,a,s){void 0===s&&(s=Promise);var u=new T(f(e,n,r,a),s);return t.isGeneratorFunction(n)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},N(I),c(I,i,"Generator"),c(I,u,(function(){return this})),c(I,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(U),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return o.type="throw",o.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var s=this.tryEntries.length-1;s>=0;--s){var u=this.tryEntries[s],o=u.completion;if("root"===u.tryLoc)return a("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),c=r.call(u,"finallyLoc");if(i&&c){if(this.prev<u.catchLoc)return a(u.catchLoc,!0);if(this.prev<u.finallyLoc)return a(u.finallyLoc)}else if(i){if(this.prev<u.catchLoc)return a(u.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return a(u.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var s=a;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=t&&t<=s.finallyLoc&&(s=null);var u=s?s.completion:{};return u.type=e,u.arg=t,s?(this.method="next",this.next=s.finallyLoc,g):this.complete(u)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),U(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;U(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function l(e,t){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},l(e,t)}function h(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var d="[0m";function v(e){for(var t,n,r,a,s,u,o=arguments.length,i=new Array(o>1?o-1:0),c=1;c<o;c++)i[c-1]=arguments[c];var f=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return{info:function(t,r){null!=e&&e.debug&&console.info("[niledb][DEBUG]"+n.join("")+" "+t,r?"\n"+JSON.stringify(r,null,2):"")},warn:function(t,r){null!=e&&e.debug&&console.warn("[33m[niledb][WARN]"+d+n.join("")+" "+t,JSON.stringify(r,null,2))},error:function(e,t){console.error("[31m[niledb][ERROR]"+d+n.join("")+" "+e,t)}}}(e,i);return{info:null!=(t=null==e||null==(n=e.logger)?void 0:n.info)?t:f.info,warn:null!=(r=null==e||null==(a=e.logger)?void 0:a.warn)?r:f.warn,error:null!=(s=null==e||null==(u=e.logger)?void 0:u.error)?s:f.error}}var b=function(e){var t=e.config,n=e.logger,r=v(t,"[username]").info;return null!=t&&t.user?(n&&r(n+"[config] "+t.user),String(null==t?void 0:t.user)):(n&&r(n+"[NILEDB_USER] "+process.env.NILEDB_USER),process.env.NILEDB_USER)},g=function(e){var t=e.config,n=e.logger,r=v(t,"[password]").info;return null!=t&&t.password?String(t.password):(n&&r(n+"[NILEDB_PASSWORD] "+process.env.NILEDB_PASSWORD),process.env.NILEDB_PASSWORD)},w=function(e){var t,n,r,a=e.config,s=e.logger,u=v(a,"[token]").info;return null!=a&&null!=(t=a.api)&&t.token?(s&&u(s+"[config] "+(null==(n=a.api)?void 0:n.token)),String(null==(r=a.api)?void 0:r.token)):process.env.NILEDB_TOKEN?(s&&u(s+"[NILEDB_TOKEN] "+process.env.NILEDB_TOKEN),process.env.NILEDB_TOKEN):void 0},m=function(e){var t=e.config,n=e.logger,r=v(t,"[databaseName]").info;return null!=t&&t.databaseName?(n&&r(n+"[config] "+t.databaseName),String(t.databaseName)):process.env.NILEDB_NAME?(n&&r(n+"[NILEDB_NAME] "+process.env.NILEDB_NAME),process.env.NILEDB_NAME):null},y=function(e){var t,n=e.config,r=e.logger,a=v(n,"[basePath]"),s=a.warn,u=a.info,o=null==n||null==(t=n.api)?void 0:t.basePath;return o?(r&&u(r+"[config] "+o),o):process.env.NILEDB_API_URL?(r&&u(r+"[NILEDB_API_URL] "+process.env.NILEDB_API_URL),new URL(process.env.NILEDB_API_URL).href):void s("not set. Must run auto-configuration")},x=function(e){var t=e.config,n=e.logger,r=v(t,"[basePath]").info;return null!=t&&t.configureUrl?(n&&r(n+"[config] "+t.configureUrl),t.configureUrl):process.env.NILEDB_CONFIGURE?(n&&r(n+"[NILEDB_CONFIGURE] "+process.env.NILEDB_CONFIGURE),process.env.NILEDB_CONFIGURE.startsWith("http")?process.env.NILEDB_CONFIGURE:"https://"+process.env.NILEDB_CONFIGURE):(n&&r(n+"[default] https://global.thenile.dev"),"https://global.thenile.dev")};function E(e){var t=e.config,n=e.logger,r=v(t,"[db.host]").info;if(null!=t&&t.db&&t.db.host)return n&&r(n+"[config] "+(null==t?void 0:t.db.host)),t.db.host;if(process.env.NILEDB_POSTGRES_URL){var a=new URL(process.env.NILEDB_POSTGRES_URL);return n&&r(n+"[NILEDB_POSTGRES_URL] "+a.host),a.host}return process.env.NILEDB_HOST?(n&&r(n+"[NILEDB_HOST] "+process.env.NILEDB_HOST),process.env.NILEDB_HOST):(n&&r(n+"[default] db.thenile.dev"),"db.thenile.dev")}function k(e){var t,n,r=e.config,a=e.logger,s=v(r,"[db.port]").info;return null!=r&&null!=(t=r.db)&&t.port&&null!=r.db.port?(a&&s(a+"[config] "+(null==r?void 0:r.db.port)),Number(null==(n=r.db)?void 0:n.port)):process.env.NILEDB_PORT?(a&&s(a+"[NILEDB_PORT] "+process.env.NILEDB_PORT),Number(process.env.NILEDB_PORT)):(a&&s(a+"[default] 5432"),5432)}var I,N=["host","port"],T=["host","port"],S=function(){return u((function(e){var t=e.basePath,n=e.cookieKey,r=e.token;this.cookieKey=void 0,this.basePath=void 0,this._token=void 0,this.basePath=t,this.cookieKey=n,this._token=r}),[{key:"token",get:function(){return this._token},set:function(e){this._token=e}}])}(),R=function(){return u((function(e,t){var n,r,s,u=this;this.user=void 0,this.password=void 0,this.databaseId=void 0,this.databaseName=void 0,this.routePrefix=void 0,this.routes=void 0,this.debug=void 0,this.db=void 0,this.api=void 0,this._tenantId=void 0,this._userId=void 0,this.configure=function(){var e=a(p().mark((function e(t){var n,r,a,s,o,c,l,h,d,I,T,R,L,U,_,P,O,D,A,B,q,j,G,C,H,M,K,F,W;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=v(t,"[init]"),o=s.info,c=s.error,l={config:t},h=null!=(n=t.db)?n:{},d=h.host,I=h.port,T=f(h,N),R=null!=d?d:E(l),L=null!=I?I:k(l),U=y(l),!(R&&u.databaseName&&u.databaseId&&U)){e.next=12;break}return o("Already configured, aborting fetch"),u.api=new S({basePath:U,cookieKey:null!=(_=null==t||null==(P=t.api)?void 0:P.cookieKey)?_:"token",token:w({config:t})}),u.db=i({user:u.user,password:u.password,host:R,port:L,database:u.databaseName},T),o("[config set]",{db:u.db,api:u.api}),e.abrupt("return",u);case 12:return O=x(l),D=m({config:t,logger:"getInfo"}),A=new URL(O+"/databases/configure"),D&&A.searchParams.set("databaseName",D),o("configuring from "+A.href),e.next=19,fetch(A,{headers:{Authorization:"Bearer "+(p={config:t},b(p)+":"+g(p))}});case 19:return j=(B=e.sent).clone(),e.prev=21,e.next=24,B.json();case 24:G=e.sent,404===B.status&&o("is the configured databaseName correct?"),q=G.status&&"READY"!==G.status?{message:"Database is not ready yet"}:G,e.next=36;break;case 29:return e.prev=29,e.t0=e.catch(21),e.next=33,j.text();case 33:c(C=e.sent),q={message:C};case 36:if(o("[fetched database]",q),!("message"in q)){e.next=45;break}if(!("statusCode"in q)){e.next=44;break}throw c(q),new Error("HTTP error has occurred");case 44:throw new Error("Unable to auto-configure. Please remove NILEDB_NAME, NILEDB_API_URL, NILEDB_POSTGRES_URL, and/or NILEDB_HOST from your environment variables.");case 45:"object"==typeof q&&(M=(H=q).apiHost,K=H.dbHost,F=H.name,U=U||M,u.databaseId=H.id,u.databaseName=F,W=new URL(K),R=W.host);case 46:return u.api=new S({basePath:U,cookieKey:null!=(r=null==t||null==(a=t.api)?void 0:a.cookieKey)?r:"token",token:w({config:t})}),u.db=i({user:u.user,password:u.password,host:R,port:L,database:u.databaseName},T),o("[config set]",{db:u.db,api:u.api}),e.abrupt("return",u);case 50:case"end":return e.stop()}var p}),e,null,[[21,29]])})));return function(t){return e.apply(this,arguments)}}();var o={config:e,logger:t};if(this.user=b(o),this.password=g(o),!this.user)throw new Error("User is required. Set NILEDB_USER as an environment variable or set `user` in the config options.");if(!this.password)throw new Error("Password is required. Set NILEDB_PASSWORD as an environment variable or set `password` in the config options.");this.databaseId=function(e){var t=e.config,n=e.logger,r=v(t,"[databaseId]").info;return null!=t&&t.databaseId?(n&&r(n+"[config] "+t.databaseId),String(null==t?void 0:t.databaseId)):process.env.NILEDB_POSTGRES_URL?new URL(process.env.NILEDB_POSTGRES_URL).pathname.substring(1):(n&&r(n+"[NILEDB_ID] "+process.env.NILEDB_ID),process.env.NILEDB_ID)}(o),this.databaseName=m(o),this._tenantId=function(e){var t=e.config,n=e.logger,r=v(t,"[tenantId]").info;return null!=t&&t.tenantId?(n&&r(n+"[config] "+t.tenantId),t.tenantId):process.env.NILEDB_TENANT?(n&&r(n+"[NILEDB_TENANT] "+process.env.NILEDB_TENANT),process.env.NILEDB_TENANT):null}(o),this.debug=Boolean(null==e?void 0:e.debug),this._userId=null==e?void 0:e.userId;var c=y(o),l=null!=(n=null==e?void 0:e.db)?n:{},h=l.host,d=l.port,I=f(l,T),R=null!=h?h:E(o),L=null!=d?d:k(o);this.api=new S({basePath:c,cookieKey:null!=(r=null==e||null==(s=e.api)?void 0:s.cookieKey)?r:"token",token:w({config:e})}),this.db=i({user:this.user,password:this.password,host:R,port:L},I),this.databaseName&&(this.db.database=this.databaseName)}),[{key:"tenantId",get:function(){return this._tenantId},set:function(e){this._tenantId=e}},{key:"userId",get:function(){return this._userId},set:function(e){this._userId=e}}])}();!function(e){e.User="userId",e.Tenant="tenantId",e.Token="token",e.EvictPool="EvictPool"}(I||(I={}));var L=new(function(){function e(){this.events={}}var t=e.prototype;return t.publish=function(e,t){var n=this.events[e];if(n)for(var r,a=o(n);!(r=a()).done;)(0,r.value)(t)},t.subscribe=function(e,t){this.events[e]||(this.events[e]=[]),this.events[e].push(t)},t.unsubscribe=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);-1!==r&&n.splice(r,1),0===n.length&&delete this.events[e]}},e}()),U=function(e){L.publish(I.Tenant,e)},_=function(e){L.publish(I.User,e)},P=function(e){L.publish(I.EvictPool,e)},O=["afterCreate"],D=function(){function t(t,n){var r=this;this.pool=void 0,this.tenantId=void 0,this.userId=void 0,this.id=void 0,this.config=void 0,this.timer=void 0;var s=v(t,"[NileInstance]"),u=s.warn,o=s.info;this.id=n;var c=i({min:0,max:10,idleTimeoutMillis:3e4},t.db),l=c.afterCreate,h=f(c,O);t.db=c,this.config=t,o(JSON.stringify(this.config.db)),this.pool=function(e,t){var n=v(t,"[pool]"),r=n.info,a=n.error;return new Proxy(e,{get:function(e,n){if("query"===n){t.db.connectionString||(t.user&&t.password?t.db.database||a("Database name is missing from the config. Call `nile.init()` or set NILEDB_ID in your .env"):a("Cannot connect to the database. User and/or password are missing. Generate them at https://console.thenile.dev"));var s=e[n];return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.apply(void 0,["query"].concat(t)),s.apply(this,t)}}return e[n]}})}(new e.Pool(h),this.config),"function"==typeof l&&u("Providing an pool configuration will stop automatic tenant context setting."),this.startTimeout(),this.pool.on("connect",function(){var e=a(p().mark((function e(n){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o("pool connected"),A(t)(n,(function(e){var n=v(t,"[after create callback]");e&&((0,n.error)("after create failed",{message:e.message,stack:e.stack}),P(r.id))})),r.startTimeout();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),this.pool.on("error",function(){var e=a(p().mark((function e(t){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o("pool failed",{message:t.message,stack:t.stack}),r.timer&&clearTimeout(r.timer),P(r.id);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}return t.prototype.startTimeout=function(){var e,t=this,n=v(this.config,"[NileInstance]").info;this.timer&&clearTimeout(this.timer),this.timer=setTimeout((function(){var e;n("Pool reached idleTimeoutMillis. "+t.id+" evicted after "+(null!=(e=Number(t.config.db.idleTimeoutMillis))?e:3e4)+"ms"),t.pool.end((function(){P(t.id),n("Pool end called for "+t.id)}))}),null!=(e=Number(this.config.db.idleTimeoutMillis))?e:3e4)},t}();function A(e){var t=v(e,"[afterCreate]"),n=t.warn,r=t.info;return function(t,a){if(t.on("error",(function(e){n("Connection was terminated by server",{message:e.message,stack:e.stack}),a(e,t)})),e.tenantId){var s=["SET nile.tenant_id = '"+e.tenantId+"'"];e.userId&&(e.tenantId||n("A user id cannot be set in context without a tenant id"),s.push("SET nile.user_id = '"+e.userId+"'")),t.query(s.join(";"),(function(n){1===s.length&&r("[tenant id] "+e.tenantId),2===s.length&&r("[user id] "+e.userId),a(n,t)}))}a(null,t)}}var B=function(){function e(e){var t=this;this.connections=void 0,this.cleared=void 0,this.poolWatcherFn=void 0,this.poolWatcher=function(e){return function(n){var r=v(e,"[DBManager]"),a=r.info,s=r.warn;n&&t.connections.has(n)?(a("Removing "+n+" from db connection pool."),t.connections.delete(n)):s("missed eviction of "+n)}},this.getConnection=function(e){var n=v(e,"[DBManager]").info,r=t.makeId(e.tenantId,e.userId),a=t.connections.get(r);if(n("# of instances: "+t.connections.size),a)return n("returning existing "+r),a.startTimeout(),a.pool;var s=new D(new R(e),r);return t.connections.set(r,s),n("created new "+r),n("# of instances: "+t.connections.size),t.cleared&&(t.cleared=!1),s.pool},this.clear=function(e){(0,v(e,"[DBManager]").info)("Clearing all connections "+t.connections.size),t.cleared=!0,t.connections.clear()},this.cleared=!1,this.connections=new Map,this.poolWatcherFn=this.poolWatcher(e),L.subscribe(I.EvictPool,this.poolWatcherFn)}return e.prototype.makeId=function(e,t){return e&&t?e+":"+t:e?""+e:"base"},e}(),q=process.env.NILEDB_API_URL;function j(e,t,n){var r=e.api.basePath||q;if(!r)throw new Error("An API url is required. Set it via NILEDB_API_URL. Was auto configuration run?");var a=new URLSearchParams(n);return[r,t.substring(1,t.length)].join("/")+(n?"?"+a.toString():"")}var G=function(e){return{ME:j(e,"/me"),USERS:function(t){return j(e,"/users",t?{tenantId:t}:void 0)},USER:function(t){return j(e,"/users/"+t)},TENANTS:j(e,"/tenants"),TENANT:function(t){return j(e,"/tenants/"+t)},SIGNUP:j(e,"/signup"),TENANT_USERS:function(t){return j(e,"/tenants/"+t+"/users")},TENANT_USER:function(t,n){return j(e,"/tenants/"+t+"/users/"+n)},USER_TENANTS:function(t){return j(e,"/users/"+t+"/tenants")}}};function C(e,t){return new URL(e).pathname.startsWith(t)}var H=["request"];function M(e,t,n){return K.apply(this,arguments)}function K(){return K=a(p().mark((function e(t,n,r){var a,s,u,o,c,l,h,d,b,g,w,m;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=v(r,"[REQUEST]"),u=s.info,o=s.error,c=n.request,l=f(n,H),h=new URL(c.url),(d=new Headers(c.headers)).set("host",h.host),d.set("niledb-origin",h.origin),"POST"!==(b=i({},l,{headers:d})).method&&"PUT"!==b.method||(b.body=null!=(g=l.body)?g:c.body,b.duplex="half"),e.next=10,fetch(t,i({},b)).catch((function(e){return o("An error has occurred in the fetch",{message:e.message,stack:e.stack}),new Response("An unexpected (most likely configuration) problem has occurred",{status:500})}));case 10:return m="function"==typeof(null==(w=e.sent)?void 0:w.clone)?null==w?void 0:w.clone():null,e.t0=u,e.t1="["+(null!=(a=b.method)?a:"GET")+"] "+t,e.t2=null==w?void 0:w.status,e.t3=null==w?void 0:w.statusText,e.next=18,null==m?void 0:m.text();case 18:return e.t4=e.sent,e.t5={status:e.t2,statusText:e.t3,text:e.t4},(0,e.t0)(e.t1,e.t5),e.abrupt("return",w);case 22:case"end":return e.stop()}}),e)}))),K.apply(this,arguments)}function F(e,t,n){return W.apply(this,arguments)}function W(){return(W=a(p().mark((function e(t,n,r){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,M(t,n,r);case 2:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(e,t){return z.apply(this,arguments)}function z(){return z=a(p().mark((function e(t,n){var r;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=G(n).ME,e.t0=t.method,e.next="GET"===e.t0?4:7;break;case 4:return e.next=6,F(r,{request:t},n);case 6:return e.abrupt("return",e.sent);case 7:return e.abrupt("return",new Response("method not allowed",{status:405}));case 8:case"end":return e.stop()}}),e)}))),z.apply(this,arguments)}function V(e,t){return C(t.url,e.ME)}function Y(e,t){return $.apply(this,arguments)}function $(){return($=a(p().mark((function e(t,n){var r,a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(n,"[nileauth]"),s=r.error,(a=r.info)("checking auth"),a("using session"+(u=n.api.basePath+"/auth/session")),t.headers.delete("content-length"),e.next=7,M(u,{request:t},n);case 7:if(o=e.sent){e.next=11;break}return a("no session found"),e.abrupt("return",void 0);case 11:return a("session active"),e.prev=12,e.next=15,new Response(o.body).json();case 15:return e.abrupt("return",e.sent);case 18:return e.prev=18,e.t0=e.catch(12),s(e.t0),e.abrupt("return",void 0);case 22:case"end":return e.stop()}}),e,null,[[12,18]])})))).apply(this,arguments)}var Q=function(e,t){this.response=void 0,this.response=new Response(e,t)},X="niledb-tenant-id";function Z(e,t){var n,r=null==(n=e.get("cookie"))?void 0:n.split("; "),a={};if(r)for(var s,u=o(r);!(s=u()).done;){var i=s.value.split("="),c=i.slice(1).join("=");a[i[0]]=c}if(r)for(var f,p=o(r);!(f=p()).done;){var l=f.value.split("="),h=l.slice(1).join("=");a[l[0]]=h}return t?a[t]:null}function ee(e,t){var n,r=Z(e,X);return null!=(n=null!=r?r:null==e?void 0:e.get(X))?n:null==t?void 0:t.tenantId}function te(e,n){var r,a=Z(e,n.api.cookieKey);return a?t.decodeJwt(a).sub:null!=(r=null==e?void 0:e.get("niledb-user-id"))?r:n.userId}function ne(e,t,n){return re.apply(this,arguments)}function re(){return(re=a(p().mark((function e(t,n,r){var a,s,u,o,c,f,l,h,d,b,g,m,y,x,E,k,I,N,T,S;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=v(t,"[server]"),c=o.info,f=o.error,l=""+(null==(a=t.api)?void 0:a.basePath)+n,h=null==(s=t.api)?void 0:s.cookieKey,d=new Headers(null==r?void 0:r.headers),(b=new Headers(null==r?void 0:r.headers)).set("content-type","application/json; charset=utf-8"),d.get("Authorization")||((g=Z(d,h))?b.set("Authorization","Bearer "+g):w({config:t})&&b.set("Authorization","Bearer "+w({config:t}))),m=ee(d,t),U(m),y=te(d,t),_(y),!l.includes("{tenantId}")||m){e.next=14;break}return e.abrupt("return",new Q("tenantId is not set for request",{status:400}));case 14:return x=l.replace("{tenantId}",encodeURIComponent(String(m))).replace("{userId}",encodeURIComponent(String(y))),c("[fetch] "+x),e.next=18,fetch(x,i({},r,{headers:b})).catch((function(e){f("[fetch][response]",{message:e.message,stack:e.stack})}));case 18:if(!((E=e.sent)&&E.status>=200&&E.status<300)){e.next=40;break}if("function"!=typeof E.clone){e.next=39;break}return e.prev=21,e.t0=c,e.next=25,E.clone().json();case 25:e.t1=e.sent,e.t2="[fetch][response] "+e.t1,(0,e.t0)(e.t2),e.next=39;break;case 30:return e.prev=30,e.t3=e.catch(21),e.t4=c,e.next=35,E.clone().text();case 35:e.t5=e.sent,e.t6="[fetch][response] "+e.t5,e.t7={e:e.t3},(0,e.t4)(e.t6,e.t7);case 39:return e.abrupt("return",E);case 40:if(404!==(null==E?void 0:E.status)){e.next=42;break}return e.abrupt("return",new Q("Not found",{status:404}));case 42:if(401!==(null==E?void 0:E.status)){e.next=44;break}return e.abrupt("return",new Q("Unauthorized",{status:401}));case 44:if(405!==(null==E?void 0:E.status)){e.next=46;break}return e.abrupt("return",new Q("Method not allowed",{status:405}));case 46:return I="function"==typeof(null==E?void 0:E.clone)?E.clone():null,N="",e.prev=48,e.next=51,null==E?void 0:E.json();case 51:k=e.sent,e.next=62;break;case 54:if(e.prev=54,e.t8=e.catch(48),!I){e.next=61;break}return e.next=59,I.text();case 59:(N=e.sent)&&f("[fetch][response] status: "+I.status+"]",{message:N});case 61:N||f("[fetch][response]",{e:e.t8});case 62:if(!N){e.next=64;break}return e.abrupt("return",new Q(N,{status:null==I?void 0:I.status}));case 64:if(!k||!("message"in k)){e.next=68;break}return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] "+(T=k.message)),e.abrupt("return",new Q(T,{status:400}));case 68:if(!k||!("errors"in k)){e.next=72;break}return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] "+(S=k.errors[0])),e.abrupt("return",new Q(S,{status:400}));case 72:return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] UNHANDLED ERROR",{res:k}),e.abrupt("return",new Q(null,{status:null!=(u=null==E?void 0:E.status)?u:500}));case 74:case"end":return e.stop()}}),e,null,[[21,30],[48,54]])})))).apply(this,arguments)}function ae(e,t){return se.apply(this,arguments)}function se(){return(se=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.body=n.request.body,n.method="POST",r=new URL(n.request.url),a=r.searchParams.get("tenantId"),s=null!=a?a:ee(n.request.headers),u=G(t).USERS(s||void 0),e.next=8,M(u,n,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ue(e,t,n){return oe.apply(this,arguments)}function oe(){return(oe=a(p().mark((function e(t,n,r){var a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=new URL(n.request.url),s=a.searchParams.get("tenantId"),u=null!=s?s:ee(n.request.headers)){e.next=6;break}return r("[GET] No tenant id provided."),e.abrupt("return",new Response(null,{status:404}));case 6:return o=G(t).TENANT_USERS(u),n.method="GET",e.next=10,M(o,n,t);case 10:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ie(e,t,n){return ce.apply(this,arguments)}function ce(){return(ce=a(p().mark((function e(t,n,r){var a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return",new Response(null,{status:401}));case 2:return r.body=r.request.body,r.method="PUT",a=new URL(r.request.url).pathname.split("/").reverse(),s=a[0],u=G(t).USER(s),e.next=8,M(u,r,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e,t){return pe.apply(this,arguments)}function pe(){return pe=a(p().mark((function e(t,n){var r,a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES][USERS]"),a=r.info,e.next=3,Y(t,n);case 3:s=e.sent,e.t0=t.method,e.next="GET"===e.t0?7:"POST"===e.t0?10:"PUT"===e.t0?13:16;break;case 7:return e.next=9,ue(n,{request:t},a);case 9:case 12:case 15:return e.abrupt("return",e.sent);case 10:return e.next=12,ae(n,{request:t});case 13:return e.next=15,ie(n,s,{request:t});case 16:return e.abrupt("return",new Response("method not allowed",{status:405}));case 17:case"end":return e.stop()}}),e)}))),pe.apply(this,arguments)}function le(e,t){return C(t.url,e.USERS)}function he(e,t){return de.apply(this,arguments)}function de(){return(de=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),a=r.pathname.split("/").reverse(),s=a[1],u=""+G(t).TENANT_USERS(s),e.next=5,M(u,n,t);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(e,t,n){return be.apply(this,arguments)}function be(){return(be=a(p().mark((function e(t,n,r){var a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new URL(r.request.url),s=a.pathname.split("/").reverse(),u=s[1],r.body=JSON.stringify({email:n.email}),r.method="PUT",o=G(t).TENANT_USERS(u),e.next=7,M(o,r,t);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ge(e,t){return we.apply(this,arguments)}function we(){return(we=a(p().mark((function e(t,n){var r,a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),a=r.pathname.split("/").reverse(),s=a[0],u=a[2],n.method="DELETE",n.body=JSON.stringify({email:s}),o=""+G(t).TENANT_USER(u,s),e.next=7,M(o,n,t);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function me(e,t){return ye.apply(this,arguments)}function ye(){return(ye=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),a=r.pathname.split("/").reverse(),s=a[1],n.method="PUT",u=""+G(t).TENANT_USERS(s),e.next=6,M(u,n,t);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var xe="TENANT_USERS";function Ee(e,t){return ke.apply(this,arguments)}function ke(){return ke=a(p().mark((function e(t,n){var r,a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES]["+xe+"]"),a=r.info,e.next=3,Y(t,n);case 3:if(s=e.sent){e.next=7;break}return a("401"),e.abrupt("return",new Response(null,{status:401}));case 7:if(new URL(t.url).pathname.split("/").reverse()[1]){e.next=12;break}return a("No tenant id found in path"),e.abrupt("return",new Response(null,{status:404}));case 12:e.t0=t.method,e.next="GET"===e.t0?15:"POST"===e.t0?18:"PUT"===e.t0?21:"DELETE"===e.t0?24:27;break;case 15:return e.next=17,he(n,{request:t});case 17:case 20:case 23:case 26:return e.abrupt("return",e.sent);case 18:return e.next=20,ve(n,s,{request:t});case 21:return e.next=23,me(n,{request:t});case 24:return e.next=26,ge(n,{request:t});case 27:return e.abrupt("return",new Response("method not allowed",{status:405}));case 28:case"end":return e.stop()}}),e)}))),ke.apply(this,arguments)}function Ie(e,t){var n=new URL(t.url).pathname.split("/").reverse(),r=n[0],a=n[1],s=e[xe].replace("{tenantId}",n[2]).replace("{userId}",r);return"users"===r&&(s=e[xe].replace("{tenantId}",a)),C(t.url,s)}function Ne(e,t,n){return Te.apply(this,arguments)}function Te(){return(Te=a(p().mark((function e(t,n,r){var a;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=""+G(t).USER_TENANTS(n.id),"object"==typeof n&&"user"in n&&n.user&&(a=""+G(t).USER_TENANTS(n.user.id)),e.next=4,M(a,r,t);case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Se(e,t,n){return Re.apply(this,arguments)}function Re(){return(Re=a(p().mark((function e(t,n,r){var a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=new URL(n.request.url),s=a.pathname.split("/").reverse(),u=s[0]){e.next=5;break}return r("[GET] No tenant id provided."),e.abrupt("return",new Response(null,{status:404}));case 5:return n.method="GET",o=""+G(t).TENANT(u),e.next=9,M(o,n,t);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Le(e,t){return Ue.apply(this,arguments)}function Ue(){return(Ue=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new URL(n.request.url),a=r.pathname.split("/").reverse(),s=a[0]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return n.method="DELETE",u=""+G(t).TENANT(s),e.next=8,M(u,n,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _e(e,t){return Pe.apply(this,arguments)}function Pe(){return(Pe=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new URL(n.request.url),a=r.pathname.split("/").reverse(),s=a[0]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return n.body=n.request.body,n.method="PUT",u=""+G(t).TENANT(s),e.next=9,M(u,n,t);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e,t){return De.apply(this,arguments)}function De(){return(De=a(p().mark((function e(t,n){var r;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.body=n.request.body,n.method="POST",r=""+G(t).TENANTS,e.next=5,M(r,n,t);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ae="TENANTS";function Be(e,t){return qe.apply(this,arguments)}function qe(){return qe=a(p().mark((function e(t,n){var r,a,s,u,o;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES]["+Ae+"]"),a=r.info,e.next=3,Y(t,n);case 3:if(s=e.sent){e.next=7;break}return a("401"),e.abrupt("return",new Response(null,{status:401}));case 7:u=t.url.split("/").reverse(),o=u[0],e.t0=t.method,e.next="GET"===e.t0?11:"POST"===e.t0?18:"DELETE"===e.t0?21:"PUT"===e.t0?24:27;break;case 11:if(!(c=o)||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5|7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(c)){e.next=15;break}return e.next=14,Se(n,{request:t},a);case 14:case 17:case 20:case 23:case 26:return e.abrupt("return",e.sent);case 15:return e.next=17,Ne(n,s,{request:t});case 18:return e.next=20,Oe(n,{request:t});case 21:return e.next=23,Le(n,{request:t});case 24:return e.next=26,_e(n,{request:t});case 27:return e.abrupt("return",new Response("method not allowed",{status:405}));case 28:case"end":return e.stop()}var c}),e)}))),qe.apply(this,arguments)}function je(e,t){return C(t.url,e[Ae])}var Ge=function(e){return{SIGNIN:j(e,"/auth/signin"),PROVIDERS:j(e,"/auth/providers"),SESSION:j(e,"/auth/session"),CSRF:j(e,"/auth/csrf"),CALLBACK:j(e,"/auth/callback"),SIGNOUT:j(e,"/auth/signout"),ERROR:j(e,"/auth/error")}},Ce="SIGNIN";function He(e,t){return Me.apply(this,arguments)}function Me(){return(Me=a(p().mark((function e(t,n){var r,a,s,u,o,c;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Ge(n)[Ce],a={method:t.method,headers:t.headers},"POST"===t.method&&("function"==typeof t.clone&&(a.body=t.clone().body),s=new URL(t.url).pathname.split("/").reverse(),u=s[0],r=Ge(n)[Ce]+"/"+u),o=new URL(t.url),c=new URLSearchParams(o.search),r+=""!==c.toString()?"?"+c.toString():"",e.next=8,M(r,i({},a,{request:t}),n);case 8:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ke(e,t){return C(t.url,e[Ce])}function Fe(e,t){return We.apply(this,arguments)}function We(){return(We=a(p().mark((function e(t,n){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).SESSION,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Je(e,t){return C(t.url,e.SESSION)}function ze(e,t){return Ve.apply(this,arguments)}function Ve(){return(Ve=a(p().mark((function e(t,n){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).PROVIDERS,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ye(e,t){return C(t.url,e.PROVIDERS)}function $e(e,t){return Qe.apply(this,arguments)}function Qe(){return(Qe=a(p().mark((function e(t,n){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).CSRF,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Xe(e,t){return C(t.url,e.CSRF)}function Ze(e,t){return et.apply(this,arguments)}function et(){return(et=a(p().mark((function e(t,n){var r,a,s,u,o,c,f,l;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES][CALLBACK]"),a=r.error,s=new URL(t.url).pathname.split("/").reverse(),u=s[0],o=new URL(t.url),c=new URLSearchParams(o.search),f=Ge(n).CALLBACK+"/"+u+(""!==c.toString()?"?"+c.toString():""),e.next=7,M(f,{request:t,method:t.method},n).catch((function(e){a("an error as occurred",e)}));case 7:if(!(null==(l=e.sent)?void 0:l.headers.get("location"))){e.next=11;break}return e.abrupt("return",new Response(null==l?void 0:l.body,{status:302,headers:null==l?void 0:l.headers}));case 11:return e.abrupt("return",new Response(null==l?void 0:l.body,{status:null==l?void 0:l.status,headers:null==l?void 0:l.headers}));case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function tt(e,t){return C(t.url,e.CALLBACK)}var nt="SIGNOUT";function rt(e,t){return at.apply(this,arguments)}function at(){return(at=a(p().mark((function e(t,n){var r,a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Ge(n)[nt],a={method:t.method},"POST"===t.method&&(a.body=t.body,s=new URL(t.url).pathname.split("/").reverse(),u=s[0],r=Ge(n)[nt]+"/"+u),e.next=5,M(r,i({},a,{request:t}),n);case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function st(e,t){return C(t.url,e[nt])}var ut="ERROR";function ot(e,t){return it.apply(this,arguments)}function it(){return(it=a(p().mark((function e(t,n){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n)[ut],{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ct(e,t){return C(t.url,e[ut])}var ft=function(e){return void 0===e&&(e="/api"),{SIGNIN:e+"/auth/signin",PROVIDERS:e+"/auth/providers",SESSION:e+"/auth/session",CSRF:e+"/auth/csrf",CALLBACK:e+"/auth/callback",SIGNOUT:e+"/auth/signout",ERROR:e+"/auth/error",ME:e+"/me",USERS:e+"/users",TENANTS:e+"/tenants",TENANT_USER:e+"/tenants/{tenantId}/users/{userId}",TENANT_USERS:e+"/tenants/{tenantId}/users",SIGNUP:e+"/signup"}},pt="http://localhost";function lt(e,t){var n=v(e,"[server side login]"),r=n.info,s=n.error,u=ft(e.routePrefix);return function(){var e=a(p().mark((function e(n){var a,o,i,c,f,l,h,d,v,b,g,w,m,y,x,E,k,I,N,T,S,R,L;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=n.password,(i=n.email)&&c){e.next=3;break}throw new Error("Server side login requires a user email and password.");case 3:return r("Obtaining providers for "+i),f=new URL(""+pt+u.PROVIDERS),l=new Request(f,{method:"GET",headers:new Headers({host:f.host})}),e.next=8,t.POST(l);case 8:if(404!==(null==(h=e.sent)?void 0:h.status)){e.next=11;break}throw new Error("Unable to login, cannot find region api.");case 11:return e.prev=11,e.next=14,null==h?void 0:h.json();case 14:d=e.sent,e.next=21;break;case 17:e.prev=17,e.t0=e.catch(11),r(f,{sessionRes:h}),s(e.t0);case 21:return r("Obtaining csrf"),v=new URL(""+pt+u.CSRF),b=new Request(v,{method:"GET",headers:new Headers({host:f.host})}),e.next=26,t.POST(b);case 26:return g=e.sent,e.prev=27,e.next=30,null==g?void 0:g.json();case 30:if(e.t1=m=e.sent,null==e.t1){e.next=35;break}e.t2=m,e.next=36;break;case 35:e.t2={};case 36:w=null==(y=e.t2)?void 0:y.csrfToken,e.next=44;break;case 40:e.prev=40,e.t3=e.catch(27),r(f,{csrfRes:g}),s(e.t3,{csrfRes:g});case 44:if(x=null!=(a=d)?a:{},E=x.credentials,k=null==g?void 0:g.headers.get("set-cookie"),E){e.next=48;break}throw new Error("Unable to obtain credential provider. Aborting server side login.");case 48:if(I=new URL(E.callbackUrl),k){e.next=51;break}throw new Error("Unable to authenticate REST");case 51:return r("Attempting sign in with email "+i),N=new Request(I,{method:"POST",headers:new Headers({"content-type":"application/json",cookie:k}),body:JSON.stringify({email:i,password:c,csrfToken:w,callbackUrl:E.callbackUrl})}),e.next=55,t.POST(N);case 55:if(S=null==(T=e.sent)?void 0:T.headers.get("set-cookie")){e.next=59;break}throw new Error("authentication failed");case 59:if(R=null!=(o=/(nile\.session-token=.+?);/.exec(S))?o:[],L=R[1]){e.next=62;break}throw new Error("Server login failed");case 62:return r("Server login successful",{authCookie:S,csrfCookie:k}),e.abrupt("return",new Headers({cookie:[L,k].join("; ")}));case 64:case"end":return e.stop()}}),e,null,[[11,17],[27,40]])})));return function(t){return e.apply(this,arguments)}}()}var ht,dt=function(e){function t(t){return e.call(this,t)||this}c(t,e);var n=t.prototype;return n.rawRequest=function(){var e=a(p().mark((function e(t,n,r,a){var s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=i({},r,{body:a,method:t}),e.next=3,ne(this,n,s);case 3:if(!((u=e.sent)instanceof Q)){e.next=6;break}return e.abrupt("return",u.response);case 6:return e.abrupt("return",u);case 7:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a){return e.apply(this,arguments)}}(),n.request=function(){var e=a(p().mark((function e(t,n,r,a){var s,u,o,c,f,l,h,d;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new Headers(a?null==a?void 0:a.headers:{}),r instanceof Headers?(u=r.get(X),o=r.get("cookie"),u&&s.set(X,u),o&&s.set("cookie",o)):r instanceof Request&&(c=new Headers(null==r?void 0:r.headers),f=c.get(X),l=c.get("cookie"),f&&s.set(X,f),l&&s.set("cookie",l)),h=JSON.stringify(r),"GET"!==t){e.next=7;break}h=void 0,e.next=14;break;case 7:if(!(r instanceof Request)){e.next=13;break}return e.next=10,new Response(r.body).text();case 10:h=e.sent,e.next=14;break;case 13:(r instanceof Headers||"{}"===JSON.stringify(r)||r&&"object"==typeof r&&0===Object.values(r).length)&&(h=void 0);case 14:return d=i({},a,{headers:s}),e.next=17,this.rawRequest(t,n,d,h);case 17:return e.abrupt("return",e.sent);case 18:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a){return e.apply(this,arguments)}}(),n.post=function(){var e=a(p().mark((function e(t,n,r){var a;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("POST",n,t,r);case 2:if(!((a=e.sent)&&a.status>=200&&a.status<300)){e.next=5;break}return e.abrupt("return",a.json());case 5:return e.abrupt("return",a);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.get=function(){var e=a(p().mark((function e(t,n,r){var a;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("GET",n,t,r);case 2:if(!((a=e.sent)&&a.status>=200&&a.status<300)){e.next=5;break}return e.abrupt("return",a.json());case 5:return e.abrupt("return",a);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.put=function(){var e=a(p().mark((function e(t,n,r){var a;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("PUT",n,t,r);case 2:if(!((a=e.sent)&&a.status>=200&&a.status<300)){e.next=5;break}return e.abrupt("return",a.json());case 5:return e.abrupt("return",a);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.delete=function(){var e=a(p().mark((function e(t,n,r){var a;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("DELETE",n,t,r);case 2:if(!((a=e.sent)&&a.status>=200&&a.status<300)){e.next=5;break}return e.abrupt("return",a.json());case 5:return e.abrupt("return",a);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t}(R),vt=function(e){function t(t,n){var r;return(r=e.call(this,t)||this).headers=void 0,r.createTenant=function(){var e=a(p().mark((function e(t,n){var a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="string"==typeof t?new Request(""+r.api.basePath+r.tenantsUrl,{body:JSON.stringify({name:t}),method:"POST"}):t,s=new dt(r),u=r.handleHeaders(n),e.abrupt("return",s.post(a,r.tenantsUrl,u));case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.getTenant=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof t&&(r.tenantId=t),a=new dt(r),s=r.handleHeaders(n),e.abrupt("return",a.get(t,r.tenantUrl,s));case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.listTenants=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),s=r.handleHeaders(n),e.abrupt("return",a.get(t,r.tenantListUrl,s));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.headers=n,r}return c(t,e),t.prototype.handleHeaders=function(e){var t;if(this.headers)return e?(e.headers=new Headers(i({},this.headers,null==(t=e)?void 0:t.headers)),e):e={headers:this.headers}},u(t,[{key:"tenantsUrl",get:function(){return"/tenants"}},{key:"tenantUrl",get:function(){var e;return"/tenants/"+(null!=(e=this.tenantId)?e:"{tenantId}")}},{key:"tenantListUrl",get:function(){var e;return"/users/"+(null!=(e=this.userId)?e:"{userId}")+"/tenants"}}])}(R),bt=function(e){function t(t,n){var r;return(r=e.call(this,t)||this).headers=void 0,r.createUser=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),s=r.handleHeaders(n),e.next=4,a.post(t,r.usersUrl,s);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.updateUser=function(){var e=a(p().mark((function e(t,n,a){var s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),u=r.handleHeaders(a),e.next=4,s.put(n,r.usersUrl+"/"+t,u);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.listUsers=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),s=r.handleHeaders(n),e.next=4,a.get(t,r.tenantUsersUrl,s);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.linkUser=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),s=r.handleHeaders(n),e.next=4,a.put(t,r.tenantUsersUrl,s);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.tenantUsersDeleteUrl=function(e){var t;return"/tenants/"+(null!=(t=r.tenantId)?t:"{tenantId}")+"/users/"+(null!=e?e:"{userId}")},r.getUserId=function(){var e=a(p().mark((function e(t){var n;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Request)){e.next=6;break}return e.next=3,new Response(null==t?void 0:t.body).json();case 3:if(!(n=e.sent)){e.next=6;break}return e.abrupt("return",n.id);case 6:if(!("id"in t)){e.next=8;break}return e.abrupt("return",t.id);case 8:return e.abrupt("return",null);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.unlinkUser=function(){var e=a(p().mark((function e(t,n){var a,s,u;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),e.next=3,r.getUserId(t);case 3:return s=e.sent,u=r.handleHeaders(n),e.next=7,a.delete(t,r.tenantUsersDeleteUrl(s),u);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.me=function(){var e=a(p().mark((function e(t,n){var a,s;return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),s=r.handleHeaders(n),e.next=4,a.get(t,r.meUrl,s);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.headers=n,r}return c(t,e),t.prototype.handleHeaders=function(e){var t;if(this.headers)return e?(e.headers=new Headers(i({},this.headers,null==(t=e)?void 0:t.headers)),e):e={headers:this.headers}},u(t,[{key:"usersUrl",get:function(){return"/users"}},{key:"tenantUsersUrl",get:function(){var e;return"/tenants/"+(null!=(e=this.tenantId)?e:"{tenantId}")+"/users"}},{key:"meUrl",get:function(){return"/me"}}])}(R),gt=function(){function e(e){this.config=void 0,this.users=void 0,this.tenants=void 0,this.routes=void 0,this.handlers=void 0,this.config=e,this.users=new bt(e),this.tenants=new vt(e),this.routes=i({},ft(null==e?void 0:e.routePrefix),null==e?void 0:e.routes),this.handlers=function(e,t){var n=function(e,t){var n=v(t,"[GET MATCHER]"),r=n.info,s=n.warn;return function(){var n=a(p().mark((function n(a){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!V(e,a)){n.next=3;break}return r("matches me"),n.abrupt("return",J(a,t));case 3:if(!Ie(e,a)){n.next=6;break}return r("matches tenant users"),n.abrupt("return",Ee(a,t));case 6:if(!le(e,a)){n.next=9;break}return r("matches users"),n.abrupt("return",fe(a,t));case 9:if(!je(e,a)){n.next=12;break}return r("matches tenants"),n.abrupt("return",Be(a,t));case 12:if(!Je(e,a)){n.next=15;break}return r("matches session"),n.abrupt("return",Fe(a,t));case 15:if(!Ke(e,a)){n.next=18;break}return r("matches signin"),n.abrupt("return",He(a,t));case 18:if(!Ye(e,a)){n.next=21;break}return r("matches providers"),n.abrupt("return",ze(a,t));case 21:if(!Xe(e,a)){n.next=24;break}return r("matches csrf"),n.abrupt("return",$e(a,t));case 24:if(!tt(e,a)){n.next=27;break}return r("matches callback"),n.abrupt("return",Ze(a,t));case 27:if(!st(e,a)){n.next=30;break}return r("matches signout"),n.abrupt("return",rt(a,t));case 30:if(!ct(e,a)){n.next=33;break}return r("matches error"),n.abrupt("return",ot(a,t));case 33:return s("No GET routes matched"),n.abrupt("return",new Response(null,{status:404}));case 35:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),r=function(e,t){var n=v(t,"[POST MATCHER]"),r=n.info,s=n.warn;return function(){var n=a(p().mark((function n(a){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,a)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(a,t));case 3:if(!le(e,a)){n.next=6;break}return r("matches users"),n.abrupt("return",fe(a,t));case 6:if(!je(e,a)){n.next=9;break}return r("matches tenants"),n.abrupt("return",Be(a,t));case 9:if(!Je(e,a)){n.next=12;break}return r("matches session"),n.abrupt("return",Fe(a,t));case 12:if(!Ke(e,a)){n.next=15;break}return r("matches signin"),n.abrupt("return",He(a,t));case 15:if(!Ye(e,a)){n.next=18;break}return r("matches providers"),n.abrupt("return",ze(a,t));case 18:if(!Xe(e,a)){n.next=21;break}return r("matches csrf"),n.abrupt("return",$e(a,t));case 21:if(!tt(e,a)){n.next=24;break}return r("matches callback"),n.abrupt("return",Ze(a,t));case 24:if(!st(e,a)){n.next=27;break}return r("matches signout"),n.abrupt("return",rt(a,t));case 27:return s("No POST routes matched"),n.abrupt("return",new Response(null,{status:404}));case 29:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),s=function(e,t){var n=v(t,"[DELETE MATCHER]"),r=n.info,s=n.warn;return function(){var n=a(p().mark((function n(a){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,a)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(a,t));case 3:if(!je(e,a)){n.next=6;break}return r("matches tenants"),n.abrupt("return",Be(a,t));case 6:return s("No DELETE routes matched"),n.abrupt("return",new Response(null,{status:404}));case 8:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),u=function(e,t){var n=v(t,"[PUT MATCHER]"),r=n.info,s=n.warn;return function(){var n=a(p().mark((function n(a){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,a)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(a,t));case 3:if(!le(e,a)){n.next=6;break}return r("matches users"),n.abrupt("return",fe(a,t));case 6:if(!je(e,a)){n.next=9;break}return r("matches tenants"),n.abrupt("return",Be(a,t));case 9:return s("No PUT routes matched"),n.abrupt("return",new Response(null,{status:404}));case 11:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t);return{GET:n,POST:r,DELETE:s,PUT:u}}(this.routes,e)}return e.prototype.login=function(){var e=a(p().mark((function e(t){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,lt(this.config,this.handlers)(t);case 2:this.headers=e.sent;case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),u(e,[{key:"headers",set:function(e){this.users=new bt(this.config,e),this.tenants=new vt(this.config,e)}}])}(),wt=function(){function e(e){var t=this;this.config=void 0,this.api=void 0,this.manager=void 0,this.config=new R(e,"[initial config]"),this.api=new gt(this.config),this.manager=new B(this.config),L.subscribe(I.Tenant,(function(e){t.tenantId=e})),L.subscribe(I.User,(function(e){t.userId=e})),L.subscribe(I.Token,(function(e){t.token=e}))}var t=e.prototype;return t.setConfig=function(e){this.config=new R(e)},t.init=function(){var e=a(p().mark((function e(t){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.config.configure(i({},this.config,t));case 2:return this.setConfig(e.sent),this.api=new gt(this.config),e.abrupt("return",this);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getInstance=function(e){var t=i({},this.config,e),n=new R(t);return this.setConfig(n),this.tenantId=n.tenantId,this.userId=n.userId,this.token=n.api.token,this.databaseId=n.databaseId,this},u(e,[{key:"databaseId",set:function(e){e&&(this.config.databaseId=e,this.api.users.databaseId=e,this.api.tenants.databaseId=e)}},{key:"userId",get:function(){return this.config.userId},set:function(e){this.databaseId=this.config.databaseId,this.config.userId=e,this.api&&(this.api.users.userId=this.config.userId,this.api.tenants.userId=this.config.userId)}},{key:"tenantId",get:function(){return this.config.tenantId},set:function(e){this.databaseId=this.config.databaseId,this.config.tenantId=e,this.api&&(this.api.users.tenantId=e,this.api.tenants.tenantId=e)}},{key:"token",get:function(){var e;return null==(e=this.config)||null==(e=e.api)?void 0:e.token},set:function(e){e&&(this.config.api.token=e,this.api&&(this.api.users.api.token=e,this.api.tenants.api.token=e))}},{key:"db",get:function(){return this.manager.getConnection(this.config)}}])}();function mt(e){return yt.apply(this,arguments)}function yt(){return(yt=a(p().mark((function e(t){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ht||(ht=new wt(t)),e.next=3,ht.init();case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}exports.Nile=mt,exports.Server=wt,exports.default=mt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("dotenv/config");var e=require("pg"),t=require("jose");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t,n,r,s,a,u){try{var o=e[a](u),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(r,s)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(s,a){var u=e.apply(t,n);function o(e){r(u,s,a,o,i,"next",e)}function i(e){r(u,s,a,o,i,"throw",e)}o(void 0)}))}}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,h(r.key),r)}}function u(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var s=0;return function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(null,arguments)}function c(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,p(e,t)}function f(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function l(){l=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,s=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",i=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=Object.create((t&&t.prototype instanceof w?t:w).prototype),u=new _(r||[]);return s(a,"_invoke",{value:S(e,n,u)}),a}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var h="suspendedStart",d="suspendedYield",v="executing",b="completed",g={};function w(){}function m(){}function y(){}var x={};c(x,u,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(P([])));k&&k!==n&&r.call(k,u)&&(x=k);var I=y.prototype=w.prototype=Object.create(x);function N(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(s,a,u,o){var i=p(e[s],e,a);if("throw"!==i.type){var c=i.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,u,o)}),(function(e){n("throw",e,u,o)})):t.resolve(f).then((function(e){c.value=e,u(c)}),(function(e){return n("throw",e,u,o)}))}o(i.arg)}var a;s(this,"_invoke",{value:function(e,r){function s(){return new t((function(t,s){n(e,r,t,s)}))}return a=a?a.then(s,s):s()}})}function S(t,n,r){var s=h;return function(a,u){if(s===v)throw Error("Generator is already running");if(s===b){if("throw"===a)throw u;return{value:e,done:!0}}for(r.method=a,r.arg=u;;){var o=r.delegate;if(o){var i=R(o,r);if(i){if(i===g)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(s===h)throw s=b,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);s=v;var c=p(t,n,r);if("normal"===c.type){if(s=r.done?b:d,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(s=b,r.method="throw",r.arg=c.arg)}}}function R(t,n){var r=n.method,s=t.iterator[r];if(s===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,R(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var a=p(s,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,g;var u=a.arg;return u?u.done?(n[t.resultName]=u.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):u:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function U(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(U,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,a=function n(){for(;++s<t.length;)if(r.call(t,s))return n.value=t[s],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=y,s(I,"constructor",{value:y,configurable:!0}),s(y,"constructor",{value:m,configurable:!0}),m.displayName=c(y,i,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,i,"GeneratorFunction")),e.prototype=Object.create(I),e},t.awrap=function(e){return{__await:e}},N(T.prototype),c(T.prototype,o,(function(){return this})),t.AsyncIterator=T,t.async=function(e,n,r,s,a){void 0===a&&(a=Promise);var u=new T(f(e,n,r,s),a);return t.isGeneratorFunction(n)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},N(I),c(I,i,"Generator"),c(I,u,(function(){return this})),c(I,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function s(r,s){return o.type="throw",o.arg=t,n.next=r,s&&(n.method="next",n.arg=e),!!s}for(var a=this.tryEntries.length-1;a>=0;--a){var u=this.tryEntries[a],o=u.completion;if("root"===u.tryLoc)return s("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),c=r.call(u,"finallyLoc");if(i&&c){if(this.prev<u.catchLoc)return s(u.catchLoc,!0);if(this.prev<u.finallyLoc)return s(u.finallyLoc)}else if(i){if(this.prev<u.catchLoc)return s(u.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return s(u.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var s=this.tryEntries[n];if(s.tryLoc<=this.prev&&r.call(s,"finallyLoc")&&this.prev<s.finallyLoc){var a=s;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var u=a?a.completion:{};return u.type=e,u.arg=t,a?(this.method="next",this.next=a.finallyLoc,g):this.complete(u)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var s=r.arg;L(n)}return s}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function h(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var d="[0m";function v(e){for(var t,n,r,s,a,u,o,i,c=arguments.length,f=new Array(c>1?c-1:0),l=1;l<c;l++)f[l-1]=arguments[l];var p=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return{info:function(t,r){null!=e&&e.debug&&console.info("[niledb][DEBUG]"+n.join("")+" "+t,r?"\n"+JSON.stringify(r,null,2):"")},debug:function(t,r){null!=e&&e.debug&&console.debug("[niledb][DEBUG]"+n.join("")+" "+t,r?"\n"+JSON.stringify(r,null,2):"")},warn:function(t,r){null!=e&&e.debug&&console.warn("[33m[niledb][WARN]"+d+n.join("")+" "+t,JSON.stringify(r,null,2))},error:function(e,t){console.error("[31m[niledb][ERROR]"+d+n.join("")+" "+e,t)}}}(e,f),h=null!=(t=null==e||null==(n=e.logger)?void 0:n.info)?t:p.info,v=null!=(r=null==e||null==(s=e.logger)?void 0:s.debug)?r:p.debug;return{info:h,warn:null!=(a=null==e||null==(u=e.logger)?void 0:u.warn)?a:p.warn,error:null!=(o=null==e||null==(i=e.logger)?void 0:i.error)?o:p.error,debug:v}}var b=function(e){var t=e.config,n=e.logger,r=v(t,"[username]").info;return null!=t&&t.user?(n&&r(n+"[config] "+t.user),String(null==t?void 0:t.user)):(n&&r(n+"[NILEDB_USER] "+process.env.NILEDB_USER),process.env.NILEDB_USER)},g=function(e){var t=e.config,n=e.logger,r=v(t,"[password]").info;return null!=t&&t.password?String(t.password):(n&&r(n+"[NILEDB_PASSWORD] "+process.env.NILEDB_PASSWORD),process.env.NILEDB_PASSWORD)},w=function(e){var t,n,r,s=e.config,a=e.logger,u=v(s,"[token]").info;return null!=s&&null!=(t=s.api)&&t.token?(a&&u(a+"[config] "+(null==(n=s.api)?void 0:n.token)),String(null==(r=s.api)?void 0:r.token)):process.env.NILEDB_TOKEN?(a&&u(a+"[NILEDB_TOKEN] "+process.env.NILEDB_TOKEN),process.env.NILEDB_TOKEN):void 0},m=function(e){var t=e.config,n=e.logger,r=v(t,"[databaseName]").info;return null!=t&&t.databaseName?(n&&r(n+"[config] "+t.databaseName),String(t.databaseName)):process.env.NILEDB_NAME?(n&&r(n+"[NILEDB_NAME] "+process.env.NILEDB_NAME),process.env.NILEDB_NAME):null},y=function(e){var t,n=e.config,r=e.logger,s=v(n,"[basePath]"),a=s.warn,u=s.info,o=null==n||null==(t=n.api)?void 0:t.basePath;return o?(r&&u(r+"[config] "+o),o):process.env.NILEDB_API_URL?(r&&u(r+"[NILEDB_API_URL] "+process.env.NILEDB_API_URL),new URL(process.env.NILEDB_API_URL).href):void a("not set. Must run auto-configuration")},x=function(e){var t=e.config,n=e.logger,r=v(t,"[basePath]").info;return null!=t&&t.configureUrl?(n&&r(n+"[config] "+t.configureUrl),t.configureUrl):process.env.NILEDB_CONFIGURE?(n&&r(n+"[NILEDB_CONFIGURE] "+process.env.NILEDB_CONFIGURE),process.env.NILEDB_CONFIGURE.startsWith("http")?process.env.NILEDB_CONFIGURE:"https://"+process.env.NILEDB_CONFIGURE):(n&&r(n+"[default] https://global.thenile.dev"),"https://global.thenile.dev")};function E(e){var t=e.config,n=e.logger,r=v(t,"[db.host]").info;if(null!=t&&t.db&&t.db.host)return n&&r(n+"[config] "+(null==t?void 0:t.db.host)),t.db.host;if(process.env.NILEDB_POSTGRES_URL){var s=new URL(process.env.NILEDB_POSTGRES_URL);return n&&r(n+"[NILEDB_POSTGRES_URL] "+s.host),s.host}return process.env.NILEDB_HOST?(n&&r(n+"[NILEDB_HOST] "+process.env.NILEDB_HOST),process.env.NILEDB_HOST):(n&&r(n+"[default] db.thenile.dev"),"db.thenile.dev")}function k(e){var t,n,r=e.config,s=e.logger,a=v(r,"[db.port]").info;return null!=r&&null!=(t=r.db)&&t.port&&null!=r.db.port?(s&&a(s+"[config] "+(null==r?void 0:r.db.port)),Number(null==(n=r.db)?void 0:n.port)):process.env.NILEDB_PORT?(s&&a(s+"[NILEDB_PORT] "+process.env.NILEDB_PORT),Number(process.env.NILEDB_PORT)):(s&&a(s+"[default] 5432"),5432)}var I,N=["host","port"],T=["host","port"],S=function(){return u((function(e){var t=e.basePath,n=e.cookieKey,r=e.token;this.cookieKey=void 0,this.basePath=void 0,this._token=void 0,this.basePath=t,this.cookieKey=n,this._token=r}),[{key:"token",get:function(){return this._token},set:function(e){this._token=e}}])}(),R=function(){return u((function(e,t){var n,r,a,u=this;this.user=void 0,this.password=void 0,this.databaseId=void 0,this.databaseName=void 0,this.routePrefix=void 0,this.routes=void 0,this.logger=void 0,this.debug=void 0,this.db=void 0,this.api=void 0,this._tenantId=void 0,this._userId=void 0,this.configure=function(){var e=s(l().mark((function e(t){var n,r,s,a,o,c,p,h,d,I,T,R,U,L,_,P,O,D,A,B,q,j,G,C,H,M,K,F,W,J;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=v(t,"[init]"),o=a.info,c=a.error,p=a.debug,h={config:t},d=null!=(n=t.db)?n:{},I=d.host,T=d.port,R=f(d,N),U=null!=I?I:E(h),L=null!=T?T:k(h),_=y(h),!(U&&u.databaseName&&u.databaseId&&_)){e.next=12;break}return o("Already configured, aborting fetch"),u.api=new S({basePath:_,cookieKey:null!=(P=null==t||null==(O=t.api)?void 0:O.cookieKey)?P:"token",token:w({config:t})}),u.db=i({user:u.user,password:u.password,host:U,port:L,database:u.databaseName},R),o("[config set]",{db:u.db,api:u.api}),e.abrupt("return",u);case 12:return D=x(h),A=m({config:t,logger:"getInfo"}),B=new URL(D+"/databases/configure"),A&&B.searchParams.set("databaseName",A),o("configuring from "+B.href),e.next=19,fetch(B,{headers:{Authorization:"Bearer "+(l={config:t},b(l)+":"+g(l))}});case 19:return G=(q=e.sent).clone(),e.prev=21,e.next=24,q.json();case 24:C=e.sent,404===q.status&&o("is the configured databaseName correct?"),j=C.status&&"READY"!==C.status?{message:"Database is not ready yet"}:C,e.next=37;break;case 29:return e.prev=29,e.t0=e.catch(21),e.next=33,G.text();case 33:H=e.sent,p("Unable to auto-configure"),c(H),j={message:H};case 37:if(o("[fetched database]",j),!("message"in j)){e.next=46;break}if(!("statusCode"in j)){e.next=45;break}throw c(j),new Error("HTTP error has occurred");case 45:throw new Error("Unable to auto-configure. Please remove NILEDB_NAME, NILEDB_API_URL, NILEDB_POSTGRES_URL, and/or NILEDB_HOST from your environment variables.");case 46:"object"==typeof j&&(K=(M=j).apiHost,F=M.dbHost,W=M.name,_=_||K,u.databaseId=M.id,u.databaseName=W,J=new URL(F),U=J.host);case 47:return u.api=new S({basePath:_,cookieKey:null!=(r=null==t||null==(s=t.api)?void 0:s.cookieKey)?r:"token",token:w({config:t})}),u.db=i({user:u.user,password:u.password,host:U,port:L,database:u.databaseName},R),o("[config set]",{db:u.db,api:u.api}),e.abrupt("return",u);case 51:case"end":return e.stop()}var l}),e,null,[[21,29]])})));return function(t){return e.apply(this,arguments)}}();var o={config:e,logger:t};if(this.user=b(o),this.logger=null==e?void 0:e.logger,this.password=g(o),!this.user)throw new Error("User is required. Set NILEDB_USER as an environment variable or set `user` in the config options.");if(!this.password)throw new Error("Password is required. Set NILEDB_PASSWORD as an environment variable or set `password` in the config options.");this.databaseId=function(e){var t=e.config,n=e.logger,r=v(t,"[databaseId]").info;return null!=t&&t.databaseId?(n&&r(n+"[config] "+t.databaseId),String(null==t?void 0:t.databaseId)):process.env.NILEDB_POSTGRES_URL?new URL(process.env.NILEDB_POSTGRES_URL).pathname.substring(1):(n&&r(n+"[NILEDB_ID] "+process.env.NILEDB_ID),process.env.NILEDB_ID)}(o),this.databaseName=m(o),this._tenantId=function(e){var t=e.config,n=e.logger,r=v(t,"[tenantId]").info;return null!=t&&t.tenantId?(n&&r(n+"[config] "+t.tenantId),t.tenantId):process.env.NILEDB_TENANT?(n&&r(n+"[NILEDB_TENANT] "+process.env.NILEDB_TENANT),process.env.NILEDB_TENANT):null}(o),this.debug=Boolean(null==e?void 0:e.debug),this._userId=null==e?void 0:e.userId;var c=y(o),p=null!=(n=null==e?void 0:e.db)?n:{},h=p.host,d=p.port,I=f(p,T),R=null!=h?h:E(o),U=null!=d?d:k(o);this.api=new S({basePath:c,cookieKey:null!=(r=null==e||null==(a=e.api)?void 0:a.cookieKey)?r:"token",token:w({config:e})}),this.db=i({user:this.user,password:this.password,host:R,port:U},I),this.databaseName&&(this.db.database=this.databaseName)}),[{key:"tenantId",get:function(){return this._tenantId},set:function(e){this._tenantId=e}},{key:"userId",get:function(){return this._userId},set:function(e){this._userId=e}}])}();!function(e){e.User="userId",e.Tenant="tenantId",e.Token="token",e.EvictPool="EvictPool"}(I||(I={}));var U=new(function(){function e(){this.events={}}var t=e.prototype;return t.publish=function(e,t){var n=this.events[e];if(n)for(var r,s=o(n);!(r=s()).done;)(0,r.value)(t)},t.subscribe=function(e,t){this.events[e]||(this.events[e]=[]),this.events[e].push(t)},t.unsubscribe=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);-1!==r&&n.splice(r,1),0===n.length&&delete this.events[e]}},e}()),L=function(e){U.publish(I.Tenant,e)},_=function(e){U.publish(I.User,e)},P=function(e){U.publish(I.EvictPool,e)},O=["afterCreate"],D=function(){function t(t,n){var r=this;this.pool=void 0,this.tenantId=void 0,this.userId=void 0,this.id=void 0,this.config=void 0,this.timer=void 0;var a=v(t,"[NileInstance]"),u=a.warn,o=a.info,c=a.debug;this.id=n;var p=i({min:0,max:10,idleTimeoutMillis:3e4},t.db),h=p.afterCreate,d=f(p,O);t.db=p,this.config=t,c(JSON.stringify(this.config.db)),this.pool=function(e,t){var n=v(t,"[pool]"),r=n.info,s=n.error;return new Proxy(e,{get:function(e,n){if("query"===n){t.db.connectionString||(t.user&&t.password?t.db.database||s("Database name is missing from the config. Call `nile.init()` or set NILEDB_ID in your .env"):s("Cannot connect to the database. User and/or password are missing. Generate them at https://console.thenile.dev"));var a=e[n];return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.apply(void 0,["query"].concat(t)),a.apply(this,t)}}return e[n]}})}(new e.Pool(d),this.config),"function"==typeof h&&u("Providing an pool configuration will stop automatic tenant context setting."),this.startTimeout(),this.pool.on("connect",function(){var e=s(l().mark((function e(n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c("pool connected"),r.startTimeout(),A(t,r.id+"-"+r.timer)(n,(function(e){var n=v(t,"[after create callback]").error;e&&(clearTimeout(r.timer),n("after create failed",{message:e.message,stack:e.stack}),P(r.id))}));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),this.pool.on("error",(function(e){clearTimeout(r.timer),o("pool "+r.id+" failed",{message:e.message,stack:e.stack}),P(r.id)}))}var n=t.prototype;return n.startTimeout=function(){var e,t=this,n=v(this.config,"[NileInstance]").debug;this.timer&&clearTimeout(this.timer),this.timer=setTimeout((function(){var e;n("Pool reached idleTimeoutMillis. "+t.id+" evicted after "+(null!=(e=Number(t.config.db.idleTimeoutMillis))?e:3e4)+"ms"),t.pool.end((function(){clearTimeout(t.timer),P(t.id)}))}),null!=(e=Number(this.config.db.idleTimeoutMillis))?e:3e4)},n.shutdown=function(){var e=this,t=v(this.config,"[NileInstance]").debug;t("attempting to shut down "+this.id),clearTimeout(this.timer),this.pool.end((function(){t(e.id+" has been shut down")}))},t}();function A(e,t){var n=v(e,"[afterCreate]"),r=n.error,s=n.warn,a=n.debug;return function(n,u){if(n.on("error",(function(e){r("Connection "+t+" was terminated by server",{message:e.message,stack:e.stack}),u(e,n)})),e.tenantId){var o=["SET nile.tenant_id = '"+e.tenantId+"'"];e.userId&&(e.tenantId||s("A user id cannot be set in context without a tenant id"),o.push("SET nile.user_id = '"+e.userId+"'")),n.query(o.join(";"),(function(s){1===o.length&&a("connection context set: tenantId="+e.tenantId),2===o.length&&a("connection context set: tenantId="+e.tenantId+" userId="+e.userId),s&&r("query connection failed",{cause:s.cause,stack:s.stack,message:s.message,name:s.name,id:t}),u(s,n)}))}u(null,n)}}var B=function(){function e(e){var t=this;this.connections=void 0,this.cleared=void 0,this.poolWatcherFn=void 0,this.poolWatcher=function(e){return function(n){var r=v(e,"[DBManager]"),s=r.info,a=r.warn;if(n&&t.connections.has(n)){s("Removing "+n+" from db connection pool.");var u=t.connections.get(n);null==u||u.shutdown(),t.connections.delete(n)}else a("missed eviction of "+n)}},this.getConnection=function(e){var n=v(e,"[DBManager]").info,r=t.makeId(e.tenantId,e.userId),s=t.connections.get(r);if(n("# of instances: "+t.connections.size),s)return n("returning existing "+r),s.startTimeout(),s.pool;var a=new D(new R(e),r);return t.connections.set(r,a),n("created new "+r),n("# of instances: "+t.connections.size),t.cleared&&(t.cleared=!1),a.pool},this.clear=function(e){(0,v(e,"[DBManager]").info)("Clearing all connections "+t.connections.size),t.cleared=!0,t.connections.clear()},this.cleared=!1,this.connections=new Map,this.poolWatcherFn=this.poolWatcher(e),U.subscribe(I.EvictPool,this.poolWatcherFn)}return e.prototype.makeId=function(e,t){return e&&t?e+":"+t:e?""+e:"base"},e}(),q=process.env.NILEDB_API_URL;function j(e,t,n){var r=e.api.basePath||q;if(!r)throw new Error("An API url is required. Set it via NILEDB_API_URL. Was auto configuration run?");var s=new URLSearchParams(n);return[r,t.substring(1,t.length)].join("/")+(n?"?"+s.toString():"")}var G=function(e){return{ME:j(e,"/me"),USERS:function(t){return j(e,"/users",t?{tenantId:t}:void 0)},USER:function(t){return j(e,"/users/"+t)},TENANTS:j(e,"/tenants"),TENANT:function(t){return j(e,"/tenants/"+t)},SIGNUP:j(e,"/signup"),TENANT_USERS:function(t){return j(e,"/tenants/"+t+"/users")},TENANT_USER:function(t,n){return j(e,"/tenants/"+t+"/users/"+n)},USER_TENANTS:function(t){return j(e,"/users/"+t+"/tenants")}}};function C(e,t){return new URL(e).pathname.startsWith(t)}var H=["request"];function M(e,t,n){return K.apply(this,arguments)}function K(){return K=s(l().mark((function e(t,n,r){var s,a,u,o,c,p,h,d,b,g,w,m;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=v(r,"[REQUEST]"),u=a.info,o=a.error,c=n.request,p=f(n,H),h=new URL(c.url),(d=new Headers(c.headers)).set("host",h.host),d.set("niledb-origin",h.origin),"POST"!==(b=i({},p,{headers:d})).method&&"PUT"!==b.method||(b.body=null!=(g=p.body)?g:c.body,b.duplex="half"),e.next=10,fetch(t,i({},b)).catch((function(e){return o("An error has occurred in the fetch",{message:e.message,stack:e.stack}),new Response("An unexpected (most likely configuration) problem has occurred",{status:500})}));case 10:return m="function"==typeof(null==(w=e.sent)?void 0:w.clone)?null==w?void 0:w.clone():null,e.t0=u,e.t1="["+(null!=(s=b.method)?s:"GET")+"] "+t,e.t2=null==w?void 0:w.status,e.t3=null==w?void 0:w.statusText,e.next=18,null==m?void 0:m.text();case 18:return e.t4=e.sent,e.t5={status:e.t2,statusText:e.t3,text:e.t4},(0,e.t0)(e.t1,e.t5),e.abrupt("return",w);case 22:case"end":return e.stop()}}),e)}))),K.apply(this,arguments)}function F(e,t,n){return W.apply(this,arguments)}function W(){return(W=s(l().mark((function e(t,n,r){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,M(t,n,r);case 2:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(e,t){return z.apply(this,arguments)}function z(){return z=s(l().mark((function e(t,n){var r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=G(n).ME,e.t0=t.method,e.next="GET"===e.t0?4:7;break;case 4:return e.next=6,F(r,{request:t},n);case 6:return e.abrupt("return",e.sent);case 7:return e.abrupt("return",new Response("method not allowed",{status:405}));case 8:case"end":return e.stop()}}),e)}))),z.apply(this,arguments)}function V(e,t){return C(t.url,e.ME)}function Y(e,t){return $.apply(this,arguments)}function $(){return($=s(l().mark((function e(t,n){var r,s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(n,"[nileauth]"),a=r.error,(s=r.info)("checking auth"),s("using session"+(u=n.api.basePath+"/auth/session")),t.headers.delete("content-length"),e.next=7,M(u,{request:t},n);case 7:if(o=e.sent){e.next=11;break}return s("no session found"),e.abrupt("return",void 0);case 11:return s("session active"),e.prev=12,e.next=15,new Response(o.body).json();case 15:return e.abrupt("return",e.sent);case 18:return e.prev=18,e.t0=e.catch(12),a(e.t0),e.abrupt("return",void 0);case 22:case"end":return e.stop()}}),e,null,[[12,18]])})))).apply(this,arguments)}var Q=function(e,t){this.response=void 0,this.response=new Response(e,t)},X="niledb-tenant-id";function Z(e,t){var n,r=null==(n=e.get("cookie"))?void 0:n.split("; "),s={};if(r)for(var a,u=o(r);!(a=u()).done;){var i=a.value.split("="),c=i.slice(1).join("=");s[i[0]]=c}if(r)for(var f,l=o(r);!(f=l()).done;){var p=f.value.split("="),h=p.slice(1).join("=");s[p[0]]=h}return t?s[t]:null}function ee(e,t){var n,r=Z(e,X);return null!=(n=null!=r?r:null==e?void 0:e.get(X))?n:null==t?void 0:t.tenantId}function te(e,n){var r,s=Z(e,n.api.cookieKey);return s?t.decodeJwt(s).sub:null!=(r=null==e?void 0:e.get("niledb-user-id"))?r:n.userId}function ne(e,t,n){return re.apply(this,arguments)}function re(){return(re=s(l().mark((function e(t,n,r){var s,a,u,o,c,f,p,h,d,b,g,m,y,x,E,k,I,N,T,S;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=v(t,"[server]"),c=o.info,f=o.error,p=""+(null==(s=t.api)?void 0:s.basePath)+n,h=null==(a=t.api)?void 0:a.cookieKey,d=new Headers(null==r?void 0:r.headers),(b=new Headers(null==r?void 0:r.headers)).set("content-type","application/json; charset=utf-8"),d.get("Authorization")||((g=Z(d,h))?b.set("Authorization","Bearer "+g):w({config:t})&&b.set("Authorization","Bearer "+w({config:t}))),m=ee(d,t),L(m),y=te(d,t),_(y),!p.includes("{tenantId}")||m){e.next=14;break}return e.abrupt("return",new Q("tenantId is not set for request",{status:400}));case 14:return x=p.replace("{tenantId}",encodeURIComponent(String(m))).replace("{userId}",encodeURIComponent(String(y))),c("[fetch] "+x),e.next=18,fetch(x,i({},r,{headers:b})).catch((function(e){f("[fetch][response]",{message:e.message,stack:e.stack})}));case 18:if(!((E=e.sent)&&E.status>=200&&E.status<300)){e.next=40;break}if("function"!=typeof E.clone){e.next=39;break}return e.prev=21,e.t0=c,e.next=25,E.clone().json();case 25:e.t1=e.sent,e.t2="[fetch][response] "+e.t1,(0,e.t0)(e.t2),e.next=39;break;case 30:return e.prev=30,e.t3=e.catch(21),e.t4=c,e.next=35,E.clone().text();case 35:e.t5=e.sent,e.t6="[fetch][response] "+e.t5,e.t7={e:e.t3},(0,e.t4)(e.t6,e.t7);case 39:return e.abrupt("return",E);case 40:if(404!==(null==E?void 0:E.status)){e.next=42;break}return e.abrupt("return",new Q("Not found",{status:404}));case 42:if(401!==(null==E?void 0:E.status)){e.next=44;break}return e.abrupt("return",new Q("Unauthorized",{status:401}));case 44:if(405!==(null==E?void 0:E.status)){e.next=46;break}return e.abrupt("return",new Q("Method not allowed",{status:405}));case 46:return I="function"==typeof(null==E?void 0:E.clone)?E.clone():null,N="",e.prev=48,e.next=51,null==E?void 0:E.json();case 51:k=e.sent,e.next=62;break;case 54:if(e.prev=54,e.t8=e.catch(48),!I){e.next=61;break}return e.next=59,I.text();case 59:(N=e.sent)&&f("[fetch][response] status: "+I.status+"]",{message:N});case 61:N||f("[fetch][response]",{e:e.t8});case 62:if(!N){e.next=64;break}return e.abrupt("return",new Q(N,{status:null==I?void 0:I.status}));case 64:if(!k||!("message"in k)){e.next=68;break}return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] "+(T=k.message)),e.abrupt("return",new Q(T,{status:400}));case 68:if(!k||!("errors"in k)){e.next=72;break}return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] "+(S=k.errors[0])),e.abrupt("return",new Q(S,{status:400}));case 72:return f("[fetch][response] status: "+(null==I?void 0:I.status)+"] UNHANDLED ERROR",{res:k}),e.abrupt("return",new Q(null,{status:null!=(u=null==E?void 0:E.status)?u:500}));case 74:case"end":return e.stop()}}),e,null,[[21,30],[48,54]])})))).apply(this,arguments)}function se(e,t){return ae.apply(this,arguments)}function ae(){return(ae=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.body=n.request.body,n.method="POST",r=new URL(n.request.url),s=r.searchParams.get("tenantId"),a=null!=s?s:ee(n.request.headers),u=G(t).USERS(a||void 0),e.next=8,M(u,n,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ue(e,t,n){return oe.apply(this,arguments)}function oe(){return(oe=s(l().mark((function e(t,n,r){var s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(n.request.url),a=s.searchParams.get("tenantId"),u=null!=a?a:ee(n.request.headers)){e.next=6;break}return r("[GET] No tenant id provided."),e.abrupt("return",new Response(null,{status:404}));case 6:return o=G(t).TENANT_USERS(u),n.method="GET",e.next=10,M(o,n,t);case 10:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ie(e,t,n){return ce.apply(this,arguments)}function ce(){return(ce=s(l().mark((function e(t,n,r){var s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return",new Response(null,{status:401}));case 2:return r.body=r.request.body,r.method="PUT",s=new URL(r.request.url).pathname.split("/").reverse(),a=s[0],u=G(t).USER(a),e.next=8,M(u,r,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e,t){return le.apply(this,arguments)}function le(){return le=s(l().mark((function e(t,n){var r,s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES][USERS]"),s=r.info,e.next=3,Y(t,n);case 3:a=e.sent,e.t0=t.method,e.next="GET"===e.t0?7:"POST"===e.t0?10:"PUT"===e.t0?13:16;break;case 7:return e.next=9,ue(n,{request:t},s);case 9:case 12:case 15:return e.abrupt("return",e.sent);case 10:return e.next=12,se(n,{request:t});case 13:return e.next=15,ie(n,a,{request:t});case 16:return e.abrupt("return",new Response("method not allowed",{status:405}));case 17:case"end":return e.stop()}}),e)}))),le.apply(this,arguments)}function pe(e,t){return C(t.url,e.USERS)}function he(e,t){return de.apply(this,arguments)}function de(){return(de=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),s=r.pathname.split("/").reverse(),a=s[1],u=""+G(t).TENANT_USERS(a),e.next=5,M(u,n,t);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(e,t,n){return be.apply(this,arguments)}function be(){return(be=s(l().mark((function e(t,n,r){var s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new URL(r.request.url),a=s.pathname.split("/").reverse(),u=a[1],r.body=JSON.stringify({email:n.email}),r.method="PUT",o=G(t).TENANT_USERS(u),e.next=7,M(o,r,t);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ge(e,t){return we.apply(this,arguments)}function we(){return(we=s(l().mark((function e(t,n){var r,s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),s=r.pathname.split("/").reverse(),a=s[0],u=s[2],n.method="DELETE",n.body=JSON.stringify({email:a}),o=""+G(t).TENANT_USER(u,a),e.next=7,M(o,n,t);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function me(e,t){return ye.apply(this,arguments)}function ye(){return(ye=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(n.request.url),s=r.pathname.split("/").reverse(),a=s[1],n.method="PUT",u=""+G(t).TENANT_USERS(a),e.next=6,M(u,n,t);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var xe="TENANT_USERS";function Ee(e,t){return ke.apply(this,arguments)}function ke(){return ke=s(l().mark((function e(t,n){var r,s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES]["+xe+"]"),s=r.info,e.next=3,Y(t,n);case 3:if(a=e.sent){e.next=7;break}return s("401"),e.abrupt("return",new Response(null,{status:401}));case 7:if(new URL(t.url).pathname.split("/").reverse()[1]){e.next=12;break}return s("No tenant id found in path"),e.abrupt("return",new Response(null,{status:404}));case 12:e.t0=t.method,e.next="GET"===e.t0?15:"POST"===e.t0?18:"PUT"===e.t0?21:"DELETE"===e.t0?24:27;break;case 15:return e.next=17,he(n,{request:t});case 17:case 20:case 23:case 26:return e.abrupt("return",e.sent);case 18:return e.next=20,ve(n,a,{request:t});case 21:return e.next=23,me(n,{request:t});case 24:return e.next=26,ge(n,{request:t});case 27:return e.abrupt("return",new Response("method not allowed",{status:405}));case 28:case"end":return e.stop()}}),e)}))),ke.apply(this,arguments)}function Ie(e,t){var n=new URL(t.url).pathname.split("/").reverse(),r=n[0],s=n[1],a=e[xe].replace("{tenantId}",n[2]).replace("{userId}",r);return"users"===r&&(a=e[xe].replace("{tenantId}",s)),C(t.url,a)}function Ne(e,t,n){return Te.apply(this,arguments)}function Te(){return(Te=s(l().mark((function e(t,n,r){var s;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=""+G(t).USER_TENANTS(n.id),"object"==typeof n&&"user"in n&&n.user&&(s=""+G(t).USER_TENANTS(n.user.id)),e.next=4,M(s,r,t);case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Se(e,t,n){return Re.apply(this,arguments)}function Re(){return(Re=s(l().mark((function e(t,n,r){var s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(n.request.url),a=s.pathname.split("/").reverse(),u=a[0]){e.next=5;break}return r("[GET] No tenant id provided."),e.abrupt("return",new Response(null,{status:404}));case 5:return n.method="GET",o=""+G(t).TENANT(u),e.next=9,M(o,n,t);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ue(e,t){return Le.apply(this,arguments)}function Le(){return(Le=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new URL(n.request.url),s=r.pathname.split("/").reverse(),a=s[0]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return n.method="DELETE",u=""+G(t).TENANT(a),e.next=8,M(u,n,t);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _e(e,t){return Pe.apply(this,arguments)}function Pe(){return(Pe=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new URL(n.request.url),s=r.pathname.split("/").reverse(),a=s[0]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return n.body=n.request.body,n.method="PUT",u=""+G(t).TENANT(a),e.next=9,M(u,n,t);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e,t){return De.apply(this,arguments)}function De(){return(De=s(l().mark((function e(t,n){var r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.body=n.request.body,n.method="POST",r=""+G(t).TENANTS,e.next=5,M(r,n,t);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ae="TENANTS";function Be(e,t){return qe.apply(this,arguments)}function qe(){return qe=s(l().mark((function e(t,n){var r,s,a,u,o;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES]["+Ae+"]"),s=r.info,e.next=3,Y(t,n);case 3:if(a=e.sent){e.next=7;break}return s("401"),e.abrupt("return",new Response(null,{status:401}));case 7:u=t.url.split("/").reverse(),o=u[0],e.t0=t.method,e.next="GET"===e.t0?11:"POST"===e.t0?18:"DELETE"===e.t0?21:"PUT"===e.t0?24:27;break;case 11:if(!(c=o)||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5|7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(c)){e.next=15;break}return e.next=14,Se(n,{request:t},s);case 14:case 17:case 20:case 23:case 26:return e.abrupt("return",e.sent);case 15:return e.next=17,Ne(n,a,{request:t});case 18:return e.next=20,Oe(n,{request:t});case 21:return e.next=23,Ue(n,{request:t});case 24:return e.next=26,_e(n,{request:t});case 27:return e.abrupt("return",new Response("method not allowed",{status:405}));case 28:case"end":return e.stop()}var c}),e)}))),qe.apply(this,arguments)}function je(e,t){return C(t.url,e[Ae])}var Ge=function(e){return{SIGNIN:j(e,"/auth/signin"),PROVIDERS:j(e,"/auth/providers"),SESSION:j(e,"/auth/session"),CSRF:j(e,"/auth/csrf"),CALLBACK:j(e,"/auth/callback"),SIGNOUT:j(e,"/auth/signout"),ERROR:j(e,"/auth/error")}},Ce="SIGNIN";function He(e,t){return Me.apply(this,arguments)}function Me(){return(Me=s(l().mark((function e(t,n){var r,s,a,u,o,c;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Ge(n)[Ce],s={method:t.method,headers:t.headers},"POST"===t.method&&("function"==typeof t.clone&&(s.body=t.clone().body),a=new URL(t.url).pathname.split("/").reverse(),u=a[0],r=Ge(n)[Ce]+"/"+u),o=new URL(t.url),c=new URLSearchParams(o.search),r+=""!==c.toString()?"?"+c.toString():"",e.next=8,M(r,i({},s,{request:t}),n);case 8:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ke(e,t){return C(t.url,e[Ce])}function Fe(e,t){return We.apply(this,arguments)}function We(){return(We=s(l().mark((function e(t,n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).SESSION,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Je(e,t){return C(t.url,e.SESSION)}function ze(e,t){return Ve.apply(this,arguments)}function Ve(){return(Ve=s(l().mark((function e(t,n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).PROVIDERS,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ye(e,t){return C(t.url,e.PROVIDERS)}function $e(e,t){return Qe.apply(this,arguments)}function Qe(){return(Qe=s(l().mark((function e(t,n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n).CSRF,{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Xe(e,t){return C(t.url,e.CSRF)}function Ze(e,t){return et.apply(this,arguments)}function et(){return(et=s(l().mark((function e(t,n){var r,s,a,u,o,c,f,p;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=v(i({},n,{debug:n.debug}),"[ROUTES][CALLBACK]"),s=r.error,a=new URL(t.url).pathname.split("/").reverse(),u=a[0],o=new URL(t.url),c=new URLSearchParams(o.search),f=Ge(n).CALLBACK+"/"+u+(""!==c.toString()?"?"+c.toString():""),e.next=7,M(f,{request:t,method:t.method},n).catch((function(e){s("an error as occurred",e)}));case 7:if(!(null==(p=e.sent)?void 0:p.headers.get("location"))){e.next=11;break}return e.abrupt("return",new Response(null==p?void 0:p.body,{status:302,headers:null==p?void 0:p.headers}));case 11:return e.abrupt("return",new Response(null==p?void 0:p.body,{status:null==p?void 0:p.status,headers:null==p?void 0:p.headers}));case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function tt(e,t){return C(t.url,e.CALLBACK)}var nt="SIGNOUT";function rt(e,t){return st.apply(this,arguments)}function st(){return(st=s(l().mark((function e(t,n){var r,s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Ge(n)[nt],s={method:t.method},"POST"===t.method&&(s.body=t.body,a=new URL(t.url).pathname.split("/").reverse(),u=a[0],r=Ge(n)[nt]+"/"+u),e.next=5,M(r,i({},s,{request:t}),n);case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function at(e,t){return C(t.url,e[nt])}var ut="ERROR";function ot(e,t){return it.apply(this,arguments)}function it(){return(it=s(l().mark((function e(t,n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",M(Ge(n)[ut],{method:t.method,request:t},n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ct(e,t){return C(t.url,e[ut])}var ft=function(e){return void 0===e&&(e="/api"),{SIGNIN:e+"/auth/signin",PROVIDERS:e+"/auth/providers",SESSION:e+"/auth/session",CSRF:e+"/auth/csrf",CALLBACK:e+"/auth/callback",SIGNOUT:e+"/auth/signout",ERROR:e+"/auth/error",ME:e+"/me",USERS:e+"/users",TENANTS:e+"/tenants",TENANT_USER:e+"/tenants/{tenantId}/users/{userId}",TENANT_USERS:e+"/tenants/{tenantId}/users",SIGNUP:e+"/signup"}},lt="https://us-west-2.api.dev.thenile.dev";function pt(e,t){var n=v(e,"[server side login]"),r=n.info,a=n.error,u=ft(e.routePrefix);return function(){var e=s(l().mark((function e(n){var s,o,c,f,p,h,d,v,b,g,w,m,y,x,E,k,I,N,T,S,R,U,L,_;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=n.password,(c=n.email)&&f){e.next=3;break}throw new Error("Server side login requires a user email and password.");case 3:return p=new URL(""+lt+u.PROVIDERS),h={host:p.host,"niledb-origin":lt},r("Obtaining providers for "+c),d=new Request(p,i({method:"GET"},h)),e.next=9,t.POST(d);case 9:if(404!==(null==(v=e.sent)?void 0:v.status)){e.next=12;break}throw new Error("Unable to login, cannot find region api.");case 12:return e.prev=12,e.next=15,null==v?void 0:v.json();case 15:b=e.sent,e.next=22;break;case 18:e.prev=18,e.t0=e.catch(12),r(p,{sessionRes:v}),a(e.t0);case 22:return r("Obtaining csrf"),g=new URL(""+lt+u.CSRF),w=new Request(g,{method:"GET",headers:new Headers(i({},h))}),e.next=27,t.POST(w);case 27:return m=e.sent,e.prev=28,e.next=31,null==m?void 0:m.json();case 31:if(e.t1=x=e.sent,null==e.t1){e.next=36;break}e.t2=x,e.next=37;break;case 36:e.t2={};case 37:y=null==(E=e.t2)?void 0:E.csrfToken,e.next=45;break;case 41:e.prev=41,e.t3=e.catch(28),r(p,{csrfRes:m}),a(e.t3,{csrfRes:m});case 45:if(k=null!=(s=b)?s:{},I=k.credentials,N=null==m?void 0:m.headers.get("set-cookie"),I){e.next=49;break}throw new Error("Unable to obtain credential provider. Aborting server side login.");case 49:if(T=new URL(I.callbackUrl),N){e.next=52;break}throw new Error("Unable to authenticate REST");case 52:return r("Attempting sign in with email "+c),S=new Request(T,{method:"POST",headers:new Headers(i({"content-type":"application/json",cookie:N},h)),body:JSON.stringify({email:c,password:f,csrfToken:y,callbackUrl:I.callbackUrl})}),e.next=56,t.POST(S);case 56:if(U=null==(R=e.sent)?void 0:R.headers.get("set-cookie")){e.next=60;break}throw new Error("authentication failed");case 60:if(L=null!=(o=/((__Secure-)?nile\.session-token=.+?);/.exec(U))?o:[],_=L[1]){e.next=63;break}throw new Error("Server login failed");case 63:return r("Server login successful",{authCookie:U,csrfCookie:N}),e.abrupt("return",new Headers(i({cookie:[_,N].join("; ")},h)));case 65:case"end":return e.stop()}}),e,null,[[12,18],[28,41]])})));return function(t){return e.apply(this,arguments)}}()}var ht,dt=function(e){function t(t){return e.call(this,t)||this}c(t,e);var n=t.prototype;return n.rawRequest=function(){var e=s(l().mark((function e(t,n,r,s){var a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=i({},r,{body:s,method:t}),e.next=3,ne(this,n,a);case 3:if(!((u=e.sent)instanceof Q)){e.next=6;break}return e.abrupt("return",u.response);case 6:return e.abrupt("return",u);case 7:case"end":return e.stop()}}),e,this)})));return function(t,n,r,s){return e.apply(this,arguments)}}(),n.request=function(){var e=s(l().mark((function e(t,n,r,s){var a,u,o,c,f,p,h,d;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=new Headers(s?null==s?void 0:s.headers:{}),r instanceof Headers?(u=r.get(X),o=r.get("cookie"),u&&a.set(X,u),o&&a.set("cookie",o)):r instanceof Request&&(c=new Headers(null==r?void 0:r.headers),f=c.get(X),p=c.get("cookie"),f&&a.set(X,f),p&&a.set("cookie",p)),h=JSON.stringify(r),"GET"!==t){e.next=7;break}h=void 0,e.next=14;break;case 7:if(!(r instanceof Request)){e.next=13;break}return e.next=10,new Response(r.body).text();case 10:h=e.sent,e.next=14;break;case 13:(r instanceof Headers||"{}"===JSON.stringify(r)||r&&"object"==typeof r&&0===Object.values(r).length)&&(h=void 0);case 14:return d=i({},s,{headers:a}),e.next=17,this.rawRequest(t,n,d,h);case 17:return e.abrupt("return",e.sent);case 18:case"end":return e.stop()}}),e,this)})));return function(t,n,r,s){return e.apply(this,arguments)}}(),n.post=function(){var e=s(l().mark((function e(t,n,r){var s;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("POST",n,t,r);case 2:if(!((s=e.sent)&&s.status>=200&&s.status<300)){e.next=5;break}return e.abrupt("return",s.json());case 5:return e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.get=function(){var e=s(l().mark((function e(t,n,r){var s;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("GET",n,t,r);case 2:if(!((s=e.sent)&&s.status>=200&&s.status<300)){e.next=5;break}return e.abrupt("return",s.json());case 5:return e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.put=function(){var e=s(l().mark((function e(t,n,r){var s;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("PUT",n,t,r);case 2:if(!((s=e.sent)&&s.status>=200&&s.status<300)){e.next=5;break}return e.abrupt("return",s.json());case 5:return e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.delete=function(){var e=s(l().mark((function e(t,n,r){var s;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.request("DELETE",n,t,r);case 2:if(!((s=e.sent)&&s.status>=200&&s.status<300)){e.next=5;break}return e.abrupt("return",s.json());case 5:return e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t}(R),vt=function(e){function t(t,n){var r;return(r=e.call(this,t)||this).headers=void 0,r.createTenant=function(){var e=s(l().mark((function e(t,n){var s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s="string"==typeof t?new Request(""+r.api.basePath+r.tenantsUrl,{body:JSON.stringify({name:t}),method:"POST"}):t,a=new dt(r),u=r.handleHeaders(n),e.abrupt("return",a.post(s,r.tenantsUrl,u));case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.getTenant=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof t&&(r.tenantId=t),s=new dt(r),a=r.handleHeaders(n),e.abrupt("return",s.get(t,r.tenantUrl,a));case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.listTenants=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),a=r.handleHeaders(n),e.abrupt("return",s.get(t,r.tenantListUrl,a));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.headers=n,r}return c(t,e),t.prototype.handleHeaders=function(e){var t;if(this.headers)return e?(e.headers=new Headers(i({},this.headers,null==(t=e)?void 0:t.headers)),e):e={headers:this.headers}},u(t,[{key:"tenantsUrl",get:function(){return"/tenants"}},{key:"tenantUrl",get:function(){var e;return"/tenants/"+(null!=(e=this.tenantId)?e:"{tenantId}")}},{key:"tenantListUrl",get:function(){var e;return"/users/"+(null!=(e=this.userId)?e:"{userId}")+"/tenants"}}])}(R),bt=function(e){function t(t,n){var r;return(r=e.call(this,t)||this).headers=void 0,r.createUser=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),a=r.handleHeaders(n),e.next=4,s.post(t,r.usersUrl,a);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.updateUser=function(){var e=s(l().mark((function e(t,n,s){var a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new dt(r),u=r.handleHeaders(s),e.next=4,a.put(n,r.usersUrl+"/"+t,u);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.listUsers=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),a=r.handleHeaders(n),e.next=4,s.get(t,r.tenantUsersUrl,a);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.linkUser=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),a=r.handleHeaders(n),e.next=4,s.put(t,r.tenantUsersUrl,a);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.tenantUsersDeleteUrl=function(e){var t;return"/tenants/"+(null!=(t=r.tenantId)?t:"{tenantId}")+"/users/"+(null!=e?e:"{userId}")},r.getUserId=function(){var e=s(l().mark((function e(t){var n;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Request)){e.next=6;break}return e.next=3,new Response(null==t?void 0:t.body).json();case 3:if(!(n=e.sent)){e.next=6;break}return e.abrupt("return",n.id);case 6:if(!("id"in t)){e.next=8;break}return e.abrupt("return",t.id);case 8:return e.abrupt("return",null);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.unlinkUser=function(){var e=s(l().mark((function e(t,n){var s,a,u;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),e.next=3,r.getUserId(t);case 3:return a=e.sent,u=r.handleHeaders(n),e.next=7,s.delete(t,r.tenantUsersDeleteUrl(a),u);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.me=function(){var e=s(l().mark((function e(t,n){var s,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new dt(r),a=r.handleHeaders(n),e.next=4,s.get(t,r.meUrl,a);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),r.headers=n,r}return c(t,e),t.prototype.handleHeaders=function(e){var t;if(this.headers)return e?(e.headers=new Headers(i({},this.headers,null==(t=e)?void 0:t.headers)),e):e={headers:this.headers}},u(t,[{key:"usersUrl",get:function(){return"/users"}},{key:"tenantUsersUrl",get:function(){var e;return"/tenants/"+(null!=(e=this.tenantId)?e:"{tenantId}")+"/users"}},{key:"meUrl",get:function(){return"/me"}}])}(R),gt=function(){function e(e){this.config=void 0,this.users=void 0,this.tenants=void 0,this.routes=void 0,this.handlers=void 0,this.config=e,this.users=new bt(e),this.tenants=new vt(e),this.routes=i({},ft(null==e?void 0:e.routePrefix),null==e?void 0:e.routes),this.handlers=function(e,t){var n=function(e,t){var n=v(t,"[GET MATCHER]"),r=n.info,a=n.warn;return function(){var n=s(l().mark((function n(s){return l().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!V(e,s)){n.next=3;break}return r("matches me"),n.abrupt("return",J(s,t));case 3:if(!Ie(e,s)){n.next=6;break}return r("matches tenant users"),n.abrupt("return",Ee(s,t));case 6:if(!pe(e,s)){n.next=9;break}return r("matches users"),n.abrupt("return",fe(s,t));case 9:if(!je(e,s)){n.next=12;break}return r("matches tenants"),n.abrupt("return",Be(s,t));case 12:if(!Je(e,s)){n.next=15;break}return r("matches session"),n.abrupt("return",Fe(s,t));case 15:if(!Ke(e,s)){n.next=18;break}return r("matches signin"),n.abrupt("return",He(s,t));case 18:if(!Ye(e,s)){n.next=21;break}return r("matches providers"),n.abrupt("return",ze(s,t));case 21:if(!Xe(e,s)){n.next=24;break}return r("matches csrf"),n.abrupt("return",$e(s,t));case 24:if(!tt(e,s)){n.next=27;break}return r("matches callback"),n.abrupt("return",Ze(s,t));case 27:if(!at(e,s)){n.next=30;break}return r("matches signout"),n.abrupt("return",rt(s,t));case 30:if(!ct(e,s)){n.next=33;break}return r("matches error"),n.abrupt("return",ot(s,t));case 33:return a("No GET routes matched"),n.abrupt("return",new Response(null,{status:404}));case 35:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),r=function(e,t){var n=v(t,"[POST MATCHER]"),r=n.info,a=n.warn;return function(){var n=s(l().mark((function n(s){return l().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,s)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(s,t));case 3:if(!pe(e,s)){n.next=6;break}return r("matches users"),n.abrupt("return",fe(s,t));case 6:if(!je(e,s)){n.next=9;break}return r("matches tenants"),n.abrupt("return",Be(s,t));case 9:if(!Je(e,s)){n.next=12;break}return r("matches session"),n.abrupt("return",Fe(s,t));case 12:if(!Ke(e,s)){n.next=15;break}return r("matches signin"),n.abrupt("return",He(s,t));case 15:if(!Ye(e,s)){n.next=18;break}return r("matches providers"),n.abrupt("return",ze(s,t));case 18:if(!Xe(e,s)){n.next=21;break}return r("matches csrf"),n.abrupt("return",$e(s,t));case 21:if(!tt(e,s)){n.next=24;break}return r("matches callback"),n.abrupt("return",Ze(s,t));case 24:if(!at(e,s)){n.next=27;break}return r("matches signout"),n.abrupt("return",rt(s,t));case 27:return a("No POST routes matched"),n.abrupt("return",new Response(null,{status:404}));case 29:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),a=function(e,t){var n=v(t,"[DELETE MATCHER]"),r=n.info,a=n.warn;return function(){var n=s(l().mark((function n(s){return l().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,s)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(s,t));case 3:if(!je(e,s)){n.next=6;break}return r("matches tenants"),n.abrupt("return",Be(s,t));case 6:return a("No DELETE routes matched"),n.abrupt("return",new Response(null,{status:404}));case 8:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t),u=function(e,t){var n=v(t,"[PUT MATCHER]"),r=n.info,a=n.warn;return function(){var n=s(l().mark((function n(s){return l().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Ie(e,s)){n.next=3;break}return r("matches tenant users"),n.abrupt("return",Ee(s,t));case 3:if(!pe(e,s)){n.next=6;break}return r("matches users"),n.abrupt("return",fe(s,t));case 6:if(!je(e,s)){n.next=9;break}return r("matches tenants"),n.abrupt("return",Be(s,t));case 9:return a("No PUT routes matched"),n.abrupt("return",new Response(null,{status:404}));case 11:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}(e,t);return{GET:n,POST:r,DELETE:a,PUT:u}}(this.routes,e)}return e.prototype.login=function(){var e=s(l().mark((function e(t){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pt(this.config,this.handlers)(t);case 2:this.headers=e.sent;case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),u(e,[{key:"headers",set:function(e){this.users=new bt(this.config,e),this.tenants=new vt(this.config,e)}}])}(),wt=function(){function e(e){var t=this;this.config=void 0,this.api=void 0,this.manager=void 0,this.config=new R(e,"[initial config]"),this.api=new gt(this.config),this.manager=new B(this.config),U.subscribe(I.Tenant,(function(e){t.tenantId=e})),U.subscribe(I.User,(function(e){t.userId=e})),U.subscribe(I.Token,(function(e){t.token=e}))}var t=e.prototype;return t.setConfig=function(e){this.config=new R(e)},t.init=function(){var e=s(l().mark((function e(t){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.config.configure(i({},this.config,t));case 2:return this.setConfig(e.sent),this.api=new gt(this.config),e.abrupt("return",this);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getInstance=function(e){var t=i({},this.config,e),n=new R(t);return this.setConfig(n),this.tenantId=n.tenantId,this.userId=n.userId,this.token=n.api.token,this.databaseId=n.databaseId,this},u(e,[{key:"databaseId",set:function(e){e&&(this.config.databaseId=e,this.api.users.databaseId=e,this.api.tenants.databaseId=e)}},{key:"userId",get:function(){return this.config.userId},set:function(e){this.databaseId=this.config.databaseId,this.config.userId=e,this.api&&(this.api.users.userId=this.config.userId,this.api.tenants.userId=this.config.userId)}},{key:"tenantId",get:function(){return this.config.tenantId},set:function(e){this.databaseId=this.config.databaseId,this.config.tenantId=e,this.api&&(this.api.users.tenantId=e,this.api.tenants.tenantId=e)}},{key:"token",get:function(){var e;return null==(e=this.config)||null==(e=e.api)?void 0:e.token},set:function(e){e&&(this.config.api.token=e,this.api&&(this.api.users.api.token=e,this.api.tenants.api.token=e))}},{key:"db",get:function(){return this.manager.getConnection(this.config)}}])}();function mt(e){return yt.apply(this,arguments)}function yt(){return(yt=s(l().mark((function e(t){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ht||(ht=new wt(t)),e.next=3,ht.init();case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}exports.Nile=mt,exports.Server=wt,exports.default=mt;
|
|
2
2
|
//# sourceMappingURL=server.cjs.production.min.js.map
|