@niledatabase/server 2.5.0-alpha.0 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Server.d.ts +17 -4
- package/dist/api/handlers/DELETE.d.ts +3 -0
- package/dist/api/handlers/GET.d.ts +3 -0
- package/dist/api/handlers/POST.d.ts +3 -0
- package/dist/api/handlers/PUT.d.ts +3 -0
- package/dist/api/handlers/index.d.ts +8 -0
- package/dist/api/routes/auth/callback.d.ts +3 -0
- package/dist/api/routes/auth/csrf.d.ts +3 -0
- package/dist/api/routes/auth/error.d.ts +3 -0
- package/dist/api/routes/auth/index.d.ts +7 -0
- package/dist/api/routes/auth/providers.d.ts +3 -0
- package/dist/api/routes/auth/session.d.ts +3 -0
- package/dist/api/routes/auth/signin.d.ts +33 -0
- package/dist/api/routes/auth/signout.d.ts +3 -0
- package/dist/api/routes/me/index.d.ts +4 -0
- package/dist/api/routes/tenants/GET.d.ts +32 -0
- package/dist/api/routes/tenants/POST.d.ts +45 -0
- package/dist/api/routes/tenants/[tenantId]/DELETE.d.ts +34 -0
- package/dist/api/routes/tenants/[tenantId]/users/GET.d.ts +35 -0
- package/dist/api/routes/tenants/[tenantId]/users/POST.d.ts +44 -0
- package/dist/api/routes/tenants/[tenantId]/users/PUT.d.ts +30 -0
- package/dist/api/routes/tenants/[tenantId]/users/[userId]/DELETE.d.ts +30 -0
- package/dist/api/routes/tenants/[tenantId]/users/index.d.ts +4 -0
- package/dist/api/routes/tenants/index.d.ts +4 -0
- package/dist/api/routes/users/GET.d.ts +34 -0
- package/dist/api/routes/users/POST.d.ts +66 -0
- package/dist/api/routes/users/[userId]/PUT.d.ts +40 -0
- package/dist/api/routes/users/index.d.ts +4 -0
- package/dist/api/swagger.d.ts +152 -0
- package/dist/api/types.d.ts +18 -0
- package/dist/api/utils/auth.d.ts +6 -0
- package/dist/api/utils/request.d.ts +3 -0
- package/dist/api/utils/routes/apiRoutes.d.ts +14 -0
- package/dist/api/utils/routes/defaultRoutes.d.ts +2 -0
- package/dist/api/utils/routes/makeRestUrl.d.ts +1 -0
- package/dist/api/utils/routes/proxyRoutes.d.ts +12 -0
- package/dist/api/utils/routes/urlMatches.d.ts +1 -0
- package/dist/auth/index.d.ts +12 -38
- package/dist/server.cjs.development.js +2240 -643
- 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 +2240 -643
- package/dist/server.esm.js.map +1 -1
- package/dist/tenants/index.d.ts +3 -1
- package/dist/types.d.ts +9 -0
- package/dist/users/index.d.ts +15 -5
- package/dist/utils/Config/envVars.d.ts +6 -1
- package/dist/utils/Config/index.d.ts +17 -1
- package/dist/utils/Requester/index.d.ts +2 -1
- package/dist/utils/fetch.d.ts +3 -3
- package/package.json +5 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("dotenv/config");var t=require("jose"),e=require("pg");function n(){n=function(){return e};var t,e={},r=Object.prototype,o=r.hasOwnProperty,a=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{f({},"")}catch(t){f=function(t,e,n){return t[e]=n}}function l(t,e,n,r){var o=Object.create((e&&e.prototype instanceof y?e:y).prototype),i=new O(r||[]);return a(o,"_invoke",{value:U(t,n,i)}),o}function p(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",h="suspendedYield",v="executing",g="completed",b={};function y(){}function w(){}function I(){}var m={};f(m,s,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(S([])));x&&x!==r&&o.call(x,s)&&(m=x);var E=I.prototype=y.prototype=Object.create(m);function N(t){["next","throw","return"].forEach((function(e){f(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,e){function n(r,a,i,s){var u=p(t[r],t,a);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&o.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,s)}),(function(t){n("throw",t,i,s)})):e.resolve(f).then((function(t){c.value=t,i(c)}),(function(t){return n("throw",t,i,s)}))}s(u.arg)}var r;a(this,"_invoke",{value:function(t,o){function a(){return new e((function(e,r){n(t,o,e,r)}))}return r=r?r.then(a,a):a()}})}function U(e,n,r){var o=d;return function(a,i){if(o===v)throw Error("Generator is already running");if(o===g){if("throw"===a)throw i;return{value:t,done:!0}}for(r.method=a,r.arg=i;;){var s=r.delegate;if(s){var u=_(s,r);if(u){if(u===b)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===d)throw o=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=v;var c=p(e,n,r);if("normal"===c.type){if(o=r.done?g:h,c.arg===b)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o=g,r.method="throw",r.arg=c.arg)}}}function _(e,n){var r=n.method,o=e.iterator[r];if(o===t)return n.delegate=null,"throw"===r&&e.iterator.return&&(n.method="return",n.arg=t,_(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),b;var a=p(o,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,b;var i=a.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,b):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,b)}function R(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function O(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(R,this),this.reset(!0)}function S(e){if(e||""===e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){for(;++r<e.length;)if(o.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return w.prototype=I,a(E,"constructor",{value:I,configurable:!0}),a(I,"constructor",{value:w,configurable:!0}),w.displayName=f(I,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,I):(t.__proto__=I,f(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},N(L.prototype),f(L.prototype,u,(function(){return this})),e.AsyncIterator=L,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new L(l(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},N(E),f(E,c,"Generator"),f(E,s,(function(){return this})),f(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},e.values=S,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var n in this)"t"===n.charAt(0)&&o.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=o.call(i,"catchLoc"),c=o.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var a=r;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,b):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),b},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:S(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),b}},e}function r(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}function o(t,e,n,r,o,a,i){try{var s=t[a](i),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,o)}function a(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function s(t){o(i,r,a,s,u,"next",t)}function u(t){o(i,r,a,s,u,"throw",t)}s(void 0)}))}}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,r(o.key),o)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function u(){return u=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},u.apply(this,arguments)}function c(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,f(t,e)}function f(t,e){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},f(t,e)}function l(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r<a.length;r++)e.indexOf(n=a[r])>=0||(o[n]=t[n]);return o}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function d(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}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 h(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return{info:function(){if(null!=t&&t.debug){for(var e,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];(e=console).info.apply(e,["[niledb]"].concat(n,o))}},warn:function(){if(null!=t&&t.debug){for(var e,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];(e=console).warn.apply(e,["[niledb]"].concat(n,o))}},error:function(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];(t=console).error.apply(t,["[niledb]","[ERROR]"].concat(n,r))}}}var v=function(t){var e=t.config,n=t.logger,r=h(e,"[username]").info;return null!=e&&e.user?(n&&r(n,"config",e.user),String(null==e?void 0:e.user)):(n&&r(n,"NILEDB_USER",process.env.NILEDB_USER),process.env.NILEDB_USER)},g=function(t){var e=t.config;return h(e,"[password]"),null!=e&&e.password?String(e.password):process.env.NILEDB_PASSWORD},b=function(t){var e,n,r,o=t.config,a=t.logger,i=h(o,"[token]").info;return null!=o&&null!=(e=o.api)&&e.token?(a&&i(a,"config",null==(n=o.api)?void 0:n.token),String(null==(r=o.api)?void 0:r.token)):process.env.NILEDB_TOKEN?(a&&i(a,"NILEDB_TOKEN",process.env.NILEDB_TOKEN),process.env.NILEDB_TOKEN):void 0},y=function(t){var e=t.config,n=t.logger,r=h(e,"[databaseName]").info;return null!=e&&e.databaseName?(n&&r(n,"config",e.databaseName),String(e.databaseName)):process.env.NILEDB_NAME?(n&&r(n,"NILEDB_NAME",process.env.NILEDB_NAME),process.env.NILEDB_NAME):null},w=function(t){var e,n,r=t.config,o=t.logger,a=h(r,"[basePath]").info,i=null==r||null==(e=r.api)?void 0:e.basePath;return i?(o&&a(o,"config",null==r||null==(n=r.api)?void 0:n.basePath),i):process.env.NILEDB_API_URL?(o&&a(o,"NILEDB_API_URL",process.env.NILEDB_API_URL),new URL(process.env.NILEDB_API_URL).origin):(o&&a(o,"default","https://api.thenile.dev"),"https://api.thenile.dev")},I=function(t){var e=t.logger,n=h(t.config,"[basePath]").info;return process.env.NILEDB_CONFIGURE?(e&&n(e,"NILEDB_CONFIGURE",process.env.NILEDB_CONFIGURE),"https://"+process.env.NILEDB_CONFIGURE):(e&&n(e,"default",process.env.NILEDB_CONFIGURE),"https://api.thenile.dev")};function m(t){var e=t.config,n=t.logger,r=h(e,"[db.host]").info;if(null!=e&&e.db&&e.db.host)return n&&r(n,"config",null==e?void 0:e.db.host),e.db.host;if(process.env.NILEDB_POSTGRES_URL){var o=new URL(process.env.NILEDB_POSTGRES_URL);return n&&r(n,"NILEDB_POSTGRES_URL",o.host),o.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(t){var e,n,r=t.config,o=t.logger,a=h(r,"[db.port]").info;return null!=r&&null!=(e=r.db)&&e.port&&null!=r.db.port?(o&&a(o,"config",null==r?void 0:r.db.port),Number(null==(n=r.db)?void 0:n.port)):process.env.NILEDB_PORT?(o&&a(o,"config",process.env.NILEDB_PORT),Number(process.env.NILEDB_PORT)):(o&&a(o,"default",5432),5432)}var x,E=["host","port"],N=["host","port"],L=function(){return s((function(t){var e=t.basePath,n=t.cookieKey,r=t.token;this.cookieKey=void 0,this.basePath=void 0,this._token=void 0,this.basePath=e,this.cookieKey=n,this._token=r}),[{key:"token",get:function(){return this._token},set:function(t){this._token=t}}])}(),U=function(){return s((function(t,e){var r,o,i,s=this;this.user=void 0,this.password=void 0,this.databaseId=void 0,this.databaseName=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 t=a(n().mark((function t(e){var r,o,a,i,c,f,p,d,x,N,U,_,R,P,O,S,T,D,B,j,A,C,G,H,q,M,K,F;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=h(e,"[init]"),c=i.info,f=i.error,p={config:e},d=null!=(r=e.db)?r:{},x=d.host,N=d.port,U=l(d,E),_=null!=x?x:m(p),R=null!=N?N:k(p),!(_&&s.databaseName&&s.databaseId)){t.next=8;break}return c("Alreaady configured, aborting fetch"),t.abrupt("return",s);case 8:return P=w(p),O=I(p),S=y({config:e,logger:"getInfo"}),T=new URL(O+"/databases/configure"),S&&T.searchParams.set("databaseName",S),c(T.href),t.next=16,fetch(T,{headers:{Authorization:"Bearer "+(n={config:e},v(n)+":"+g(n))}});case 16:return j=(D=t.sent).clone(),t.prev=18,t.next=21,D.json();case 21:A=t.sent,404===D.status&&c("is the configured databaseName correct?"),B=A.status&&"READY"!==A.status?{message:"Database is not ready yet"}:A,t.next=33;break;case 26:return t.prev=26,t.t0=t.catch(18),t.next=30,j.text();case 30:f(C=t.sent),B={message:C};case 33:if(c("[fetched database]",B),!("message"in B)){t.next=42;break}if(!("statusCode"in B)){t.next=41;break}throw f(B),new Error("HTTP error has occured");case 41: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 42:"object"==typeof B&&(H=(G=B).apiHost,q=G.dbHost,M=G.name,s.databaseId=G.id,s.databaseName=M,K=new URL(q),F=new URL(H),_=K.host,P=F.origin);case 43:return s.api=new L({basePath:P,cookieKey:null!=(o=null==e||null==(a=e.api)?void 0:a.cookieKey)?o:"token",token:b({config:e})}),s.db=u({user:s.user,password:s.password,host:_,port:R,database:s.databaseName},U),c("[config set]",s),t.abrupt("return",s);case 47:case"end":return t.stop()}var n}),t,null,[[18,26]])})));return function(e){return t.apply(this,arguments)}}();var c={config:t,logger:e};if(this.user=v(c),this.password=g(c),!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(t){var e=t.config,n=t.logger,r=h(e,"[databaseId]").info;return null!=e&&e.databaseId?(n&&r(n,"config",e.databaseId),String(null==e?void 0:e.databaseId)):process.env.NILEDB_POSTGRES_URL?new URL(process.env.NILEDB_POSTGRES_URL).pathname.substring(1):(n&&r(n,"env",process.env.NILEDB_ID),process.env.NILEDB_ID)}(c),this.databaseName=y(c),this._tenantId=function(t){var e=t.config,n=t.logger,r=h(e,"[tenantId]").info;return null!=e&&e.tenantId?(n&&r(n,"config",e.tenantId),e.tenantId):process.env.NILEDB_TENANT?(n&&r(n,"NILEDB_TENANT",process.env.NILEDB_TENANT),process.env.NILEDB_TENANT):null}(c),this.debug=Boolean(null==t?void 0:t.debug),this._userId=null==t?void 0:t.userId;var f=w(c),p=null!=(r=null==t?void 0:t.db)?r:{},d=p.host,x=p.port,U=l(p,N),_=null!=d?d:m(c),R=null!=x?x:k(c);this.api=new L({basePath:f,cookieKey:null!=(o=null==t||null==(i=t.api)?void 0:i.cookieKey)?o:"token",token:b({config:t})}),this.db=u({user:this.user,password:this.password,host:_,port:R},U),this.databaseName&&(this.db.database=this.databaseName)}),[{key:"tenantId",get:function(){return this._tenantId},set:function(t){this._tenantId=t}},{key:"userId",get:function(){return this._userId},set:function(t){this._userId=t}}])}(),_=function(t,e){this.response=void 0,this.response=new Response(t,e)};!function(t){t.User="userId",t.Tenant="tenantId",t.Token="token",t.EvictPool="EvictPool"}(x||(x={}));var R=new(function(){function t(){this.events=void 0,this.events={}}var e=t.prototype;return e.publish=function(t,e){var n=this.events[t];if(n)for(var r,o=d(n);!(r=o()).done;)(0,r.value)(e)},e.subscribe=function(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)},e.unsubscribe=function(t,e){var n=this.events[t].findIndex((function(t){return t===e}));-1!==n&&this.events[t].splice(n,1)},t}()),P=function(t){R.publish(x.Tenant,t)},O=function(t){R.publish(x.User,t)},S=function(t){R.publish(x.Token,t)},T=function(t){return R.subscribe(x.EvictPool,t)},D=function(t){R.publish(x.EvictPool,t)},B="x-nile-tenantId",j="x-nile-userId";function A(t,e){var n,r=null==(n=t.get("cookie"))?void 0:n.split("; "),o={};if(r)for(var a,i=d(r);!(a=i()).done;){var s=a.value.split("="),u=s.slice(1).join("=");o[s[0]]=u}if(r)for(var c,f=d(r);!(c=f()).done;){var l=c.value.split("="),p=l.slice(1).join("=");o[l[0]]=p}return e?o[e]:null}function C(t,e){var n,r=A(t,"tenantId");return null!=(n=null!=r?r:null==t?void 0:t.get(B))?n:e.tenantId}function G(e,n){var r,o=A(e,n.api.cookieKey);return o?t.decodeJwt(o).sub:null!=(r=null==e?void 0:e.get(j))?r:n.userId}function H(t,e,n){return q.apply(this,arguments)}function q(){return(q=a(n().mark((function t(e,r,o){var a,i,s,c,f,l,p,d,v,g,y,w,I,m,k,x,E,N,L,U;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(c=h(e,"[server]"),f=c.info,l=c.error,p=""+(null==(a=e.api)?void 0:a.basePath)+r,d=null==(i=e.api)?void 0:i.cookieKey,v=new Headers(null==o?void 0:o.headers),(g=new Headers).set("content-type","application/json; charset=utf-8"),v.get("Authorization")||((y=A(v,d))?g.set("Authorization","Bearer "+y):b({config:e})&&g.set("Authorization","Bearer "+b({config:e}))),w=C(v,e),P(w),I=G(v,e),O(I),!p.includes("{tenantId}")||w){t.next=14;break}return t.abrupt("return",new _("tenantId is not set for request",{status:400}));case 14:return m=p.replace("{tenantId}",encodeURIComponent(String(w))).replace("{userId}",encodeURIComponent(String(I))),f("[fetch]",m),t.next=18,fetch(m,u({},o,{headers:g})).catch((function(t){l("[fetch]","[response]",t)}));case 18:if(!((k=t.sent)&&k.status>=200&&k.status<300)){t.next=27;break}if("function"!=typeof k.clone){t.next=26;break}return t.t0=f,t.next=24,k.clone().json();case 24:t.t1=t.sent,(0,t.t0)("[fetch]","[response]",t.t1);case 26:return t.abrupt("return",k);case 27:return E="function"==typeof(null==k?void 0:k.clone)?k.clone():null,N="",t.prev=29,t.next=32,null==k?void 0:k.json();case 32:x=t.sent,t.next=43;break;case 35:if(t.prev=35,t.t2=t.catch(29),!E){t.next=42;break}return t.next=40,E.text();case 40:(N=t.sent)&&l("[fetch]","[response]","[status: "+E.status+"]",N);case 42:N||l("[fetch]","[response]",t.t2);case 43:if(!N){t.next=45;break}return t.abrupt("return",new _(N,{status:null==E?void 0:E.status}));case 45:if(!x||!("message"in x)){t.next=49;break}return l("[fetch]","[response]","[status: "+(null==E?void 0:E.status)+"]",L=x.message),t.abrupt("return",new _(L,{status:400}));case 49:if(!x||!("errors"in x)){t.next=53;break}return l("[fetch]","[response]","[status: "+(null==E?void 0:E.status)+"]",U=x.errors[0]),t.abrupt("return",new _(U,{status:400}));case 53:return l("[fetch]","[response]","[status: "+(null==E?void 0:E.status)+"]","UNHANDLED ERROR"),t.abrupt("return",new _(null,{status:null!=(s=null==k?void 0:k.status)?s:500}));case 55:case"end":return t.stop()}}),t,null,[[29,35]])})))).apply(this,arguments)}var M=function(t){function e(e){var r;return(r=t.call(this,e)||this).post=function(){var t=a(n().mark((function t(e,o,a){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r.request("POST",o,e,a);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),r.get=function(){var t=a(n().mark((function t(e,o,a){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r.request("GET",o,e,a);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),r.put=function(){var t=a(n().mark((function t(e,o,a){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r.request("PUT",o,e,a);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),r}c(e,t);var r=e.prototype;return r.rawRequest=function(){var t=a(n().mark((function t(e,r,o,a){var i,s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=u({},o,{body:a,method:e}),t.next=3,H(this,r,i);case 3:if(!((s=t.sent)instanceof _)){t.next=6;break}return t.abrupt("return",s.response);case 6:return t.abrupt("return",s);case 7:case"end":return t.stop()}}),t,this)})));return function(e,n,r,o){return t.apply(this,arguments)}}(),r.request=function(){var t=a(n().mark((function t(e,r,o,a){var i,s,c,f,l,p,d,h;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new Headers(a?null==a?void 0:a.headers:{}),o instanceof Headers?(s=o.get(B),c=o.get("cookie"),s&&i.set(B,s),c&&i.set("cookie",c)):o instanceof Request&&(f=new Headers(null==o?void 0:o.headers),l=f.get(B),p=f.get("cookie"),l&&i.set(B,l),p&&i.set("cookie",p)),d=JSON.stringify(o),"GET"!==e){t.next=7;break}d=void 0,t.next=14;break;case 7:if(!(o instanceof Request)){t.next=13;break}return t.next=10,new Response(o.body).text();case 10:d=t.sent,t.next=14;break;case 13:(o instanceof Headers||"{}"===JSON.stringify(o)||o&&"object"==typeof o&&0===Object.values(o).length)&&(d=void 0);case 14:return h=u({},a,{headers:i}),t.next=17,this.rawRequest(e,r,h,d);case 17:return t.abrupt("return",t.sent);case 18:case"end":return t.stop()}}),t,this)})));return function(e,n,r,o){return t.apply(this,arguments)}}(),e}(U),K=function(t){function e(e){var r;return(r=t.call(this,e)||this).login=function(){var t=a(n().mark((function t(e,o){var a,i,s,u,c,f,l,p,d,h,v;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new Headers({"content-type":"application/json"}),i=new M(r),"true"!==(e instanceof Request?new URL(e.url).searchParams:new URLSearchParams).get("sso")){t.next=18;break}return t.next=7,r.listProviders(e.clone(),o);case 7:if(!((s=t.sent)&&s.status>=200&&s.status<300)){t.next=18;break}return t.next=11,new Response(s.body).json();case 11:if(!((u=t.sent).length>0)){t.next=18;break}if(!(u.length>1)){t.next=15;break}return t.abrupt("return",new Response(JSON.stringify(u),{status:200}));case 15:return a.set(B,u[0].tenantId),a.append("set-cookie","tenantId="+u[0].tenantId+"; path=/; httponly;"),t.abrupt("return",new Response(JSON.stringify({redirectURI:""+r.api.basePath+r.loginSSOUrl("okta")}),{status:200}));case 18:return t.next=20,i.post(e,r.loginUrl,o).catch((function(t){return console.error(t),t}));case 20:if(!((c=t.sent)instanceof _)){t.next=23;break}return t.abrupt("return",c.response);case 23:if(!(c&&c.status>=200&&c.status<300)){t.next=36;break}return t.next=26,c.json();case 26:return p=(null==(f=r.api)?void 0:f.cookieKey)+"="+(l=t.sent).token.jwt+"; path=/; samesite=lax; httponly;",a.append("set-cookie",p),h=null==(d=l.tenants)?void 0:d.values(),v=null==h?void 0:h.next().value,a.set(B,v),a.append("set-cookie","tenantId="+v+"; path=/; httponly;"),S(l.token.jwt),t.abrupt("return",new Response(JSON.stringify(l),{status:200,headers:a}));case 36:return t.next=38,c.text();case 38:return t.abrupt("return",new Response(t.sent,{status:c.status}));case 40:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.loginSSO=function(t){var e=function(){var e=a(n().mark((function e(o){var a,i,s,u,c,f;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new Headers,e.next=3,o.formData();case 3:return s=e.sent,e.next=6,s.get("access_token");case 6:return u=e.sent,e.next=9,s.get("tenantId");case 9:return c=e.sent,f=(null==(a=r.api)?void 0:a.cookieKey)+"="+u+"; path=/; samesite=lax; httponly;",S(u),i.append("set-cookie",f),i.set(B,c),i.append("set-cookie","tenantId="+c+"; path=/; httponly;"),i.set("Location",t),e.abrupt("return",new Response(null,{headers:i,status:303}));case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return e},r.loginSSOUrl=function(t){var e;return"/databases/"+encodeURIComponent(r.databaseId)+"/tenants/"+(null!=(e=r.tenantId)?e:"{tenantId}")+"/auth/oidc/providers/"+t+"/login"},r.signUp=function(){var t=a(n().mark((function t(e,o){var a,i,s,u,c,f,l,p,d;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new Headers,i=new M(r),t.next=4,i.post(e,r.signUpUrl,o).catch((function(t){return console.error(t),t}));case 4:if(!((s=t.sent)instanceof _)){t.next=7;break}return t.abrupt("return",s.response);case 7:if(!(s&&s.status>=200&&s.status<300)){t.next=19;break}return t.next=10,s.json();case 10:return p=(null==(u=r.api)?void 0:u.cookieKey)+"="+(null==(c=(l=t.sent).token)?void 0:c.jwt)+"; path=/; samesite=lax; httponly;",a.append("set-cookie",p),d=l.id,S(null==(f=l.token)?void 0:f.jwt),O(d),a.set(j,d),a.append("set-cookie","userId="+d+"; path=/; httponly;"),t.abrupt("return",new Response(JSON.stringify(l),{status:201,headers:a}));case 19:return t.next=21,s.text();case 21:return t.abrupt("return",new Response(t.sent,{status:s.status}));case 23:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.listTenantProviders=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.abrupt("return",a.get(e,r.listTenantProvidersUrl,o));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.createProvider=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.abrupt("return",a.post(e,r.updateProviderUrl("okta"),o));case 3:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.updateProvider=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.abrupt("return",a.put(e,r.updateProviderUrl("okta"),o));case 3:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.listProviders=function(){var t=a(n().mark((function t(e,o){var a,i,s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new M(r),!e||!("body"in e)){t.next=5;break}return t.next=4,new Response(e.body).json();case 4:s=t.sent;case 5:return t.abrupt("return",i.get(e,r.providerUrl(null==(a=s)?void 0:a.email),o));case 6:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.getSSOCallbackUrl=function(t){var e;return"string"==typeof e?e=t:t instanceof Headers&&(e=C(t,r)),"/databases/"+r.databaseId+"/tenants/"+e+"/auth/oidc/callback"},r}c(e,t);var r=e.prototype;return r.updateProviderUrl=function(t){return"/databases/"+encodeURIComponent(this.databaseId)+"/tenants/"+(this.tenantId?encodeURIComponent(this.tenantId):"{tenantId}")+"/auth/oidc/providers/"+encodeURIComponent(t)},r.providerUrl=function(t){return"/databases/"+encodeURIComponent(this.databaseId)+"/tenants/auth/oidc/providers"+(t?"?email="+encodeURIComponent(t):"")},s(e,[{key:"loginUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)+"/users/login"}},{key:"signUpUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)+"/users"}},{key:"listTenantProvidersUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)+"/tenants/"+(this.tenantId?encodeURIComponent(this.tenantId):"{tenantId}")+"/auth/oidc/providers"}}])}(U),F=function(t){function e(e){var r;return(r=t.call(this,e)||this).createTenantUser=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.next=3,a.post(e,r.tenantUsersUrl,o);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.listUsers=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.next=3,a.get(e,r.usersUrl,o);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.updateUser=function(){var t=a(n().mark((function t(e,o,a){var i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new M(r),t.next=3,i.put(o,r.usersUrl+"/"+e,a);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),r.listTenantUsers=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.next=3,a.get(e,r.tenantUsersUrl,o);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.me=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.next=3,a.get(e,r.meUrl,o);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r}return c(e,t),s(e,[{key:"baseUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)}},{key:"usersUrl",get:function(){return this.baseUrl+"/users"}},{key:"tenantUsersUrl",get:function(){var t;return this.baseUrl+"/tenants/"+(null!=(t=this.tenantId)?t:"{tenantId}")+"/users"}},{key:"meUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)+"/users/me"}}])}(U),J=function(t){function e(e){var r;return(r=t.call(this,e)||this).createTenant=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.abrupt("return",a.post(e,r.tenantsUrl,o));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r.getTenant=function(){var t=a(n().mark((function t(e,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new M(r),t.abrupt("return",a.get(e,r.tenantUrl,o));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),r}return c(e,t),s(e,[{key:"tenantsUrl",get:function(){return"/databases/"+encodeURIComponent(this.databaseId)+"/tenants"}},{key:"tenantUrl",get:function(){var t;return"/databases/"+encodeURIComponent(this.databaseId)+"/tenants/"+(null!=(t=this.tenantId)?t:"{tenantId}")}}])}(U),z=["afterCreate"],W=function(){function t(t,r){var o=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 i=h(t,"[NileInstance]"),s=i.warn,c=i.info;this.id=r;var f=u({min:0,max:10,idleTimeoutMillis:3e4},t.db),p=f.afterCreate,d=l(f,z);t.db=f,this.config=t,c(this.config),this.pool=function(t,e){var n=h(e,"[pool]"),r=n.info,o=n.error;return new Proxy(t,{get:function(t,n){if("query"===n){e.db.connectionString||(e.user&&e.password?e.db.database||o("Database name is missing from the config. Call `nile.init()` or set NILEDB_ID in your .env"):o("Cannot connect to the database. User and/or password are missing. Generate them at https://console.thenile.dev"));var a=t[n];return function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return r.apply(void 0,e),a.apply(this,e)}}return t[n]}})}(new e.Pool(d),this.config),"function"==typeof p&&s("Providing an pool configuration will stop automatic tenant context setting."),this.startTimeout(),this.pool.on("connect",function(){var e=a(n().mark((function e(r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c("pool connected"),Y(t)(r,(function(e){var n=h(t,"[after create callback]");e&&((0,n.error)("after create failed",e),D(o.id))})),o.startTimeout();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),this.pool.on("error",function(){var t=a(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c("pool failed",e),o.timer&&clearTimeout(o.timer),D(o.id);case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}return t.prototype.startTimeout=function(){var t=this,e=h(this.config,"[NileInstance]").info;this.timer&&clearTimeout(this.timer),this.timer=setTimeout(a(n().mark((function r(){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e("Pool reached idleTimeoutMillis.",t.id,"evicted after",t.config.db.idleTimeoutMillis,"ms"),n.next=3,t.pool.end((function(){e("Pool end called")}));case 3:D(t.id);case 4:case"end":return n.stop()}}),r)}))),this.config.db.idleTimeoutMillis)},t}();function Y(t){var e=h(t,"[afterCreate]"),n=e.warn,r=e.info;return function(e,o){if(e.on("error",(function(t){n("Connection was terminated by server",t),o(t,e)})),t.tenantId){var a=["SET nile.tenant_id = '"+t.tenantId+"'"];t.userId&&(t.tenantId||n("A user id cannot be set in context without a tenant id"),a.push("SET nile.user_id = '"+t.userId+"'")),e.query(a.join(";"),(function(n){t.tenantId&&r("[tenant id]",t.tenantId),t.userId&&r("[user id]",t.userId),o(n,e)}))}o(null,e)}}var $=function(){function t(t){var e=this;this.connections=void 0,this.cleared=void 0,this.poolWatcher=function(t){return function(n){var r=h(t,"[DBManager]").info;n&&e.connections.has(n)&&(r("Removing",n,"from db connection pool."),e.connections.delete(n))}},this.getConnection=function(t){var n=h(t,"[DBManager]").info,r=e.makeId(t.tenantId,t.userId),o=e.connections.get(r);if(n("# of instances:",e.connections.size),o)return n("returning existing",r),o.startTimeout(),o.pool;var a=new W(new U(t),r);return e.connections.set(r,a),n("created new",r),n("# of instances:",e.connections.size),e.cleared&&(e.cleared=!1,T(e.poolWatcher(t))),a.pool},this.clear=function(t){var n;(0,h(t,"[DBManager]").info)("Clearing all connections",e.connections.size),n=e.poolWatcher(t),R.unsubscribe(x.EvictPool,n),e.cleared=!0,e.connections.clear()};var n=h(t,"[DBManager]").info;this.cleared=!1,this.connections=new Map;var r=this.makeId();n("constructor",r),this.connections.set(r,new W(new U(t),r)),T(this.poolWatcher(t))}return t.prototype.makeId=function(t,e){return t&&e?t+":"+e:t?""+t:"base"},t}(),Q=function(t){return Buffer.from(JSON.stringify(t),"base64").toString()},V=function(t){return{auth:new K(t),users:new F(t),tenants:new J(t)}},X=function(){function t(t){var e=this;this.config=void 0,this.api=void 0,this.manager=void 0,this.servers=void 0,this.config=new U(t,"[initial config]"),this.servers=new Map,this.api=V(this.config),this.manager=new $(this.config),R.subscribe(x.Tenant,(function(t){e.tenantId=t})),R.subscribe(x.User,(function(t){e.userId=t})),R.subscribe(x.Token,(function(t){e.token=t}))}var e=t.prototype;return e.setConfig=function(t){this.config=new U(t)},e.init=function(){var t=a(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.config.configure(u({},this.config,e));case 2:return this.setConfig(t.sent),this.manager.clear(this.config),this.manager=new $(this.config),this.api=V(this.config),t.abrupt("return",this);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.getInstance=function(e){var n=u({},this.config,e),r=function(t){var e=new U(t);return Q(e)}(n);if(r===Q(this.config))return this;var o=this.servers.get(r);if(o){var a=new U(n);return o.setConfig(a),o.tenantId=a.tenantId,o.userId=a.userId,o.token=a.api.token,o.databaseId=a.databaseId,o}return this.servers.set(r,new t(n)),this.servers.get(r)},s(t,[{key:"databaseId",set:function(t){t&&(this.config.databaseId=t,this.api.auth.databaseId=t,this.api.users.databaseId=t,this.api.tenants.databaseId=t)}},{key:"userId",get:function(){return this.config.userId},set:function(t){this.databaseId=this.config.databaseId,this.config.userId=t,this.api&&(this.api.auth.userId=this.config.userId,this.api.users.userId=this.config.userId,this.api.tenants.userId=this.config.userId)}},{key:"tenantId",get:function(){return this.config.tenantId},set:function(t){this.databaseId=this.config.databaseId,this.config.tenantId=t,this.api&&(this.api.auth.tenantId=t,this.api.users.tenantId=t,this.api.tenants.tenantId=t)}},{key:"token",get:function(){var t;return null==(t=this.config)||null==(t=t.api)?void 0:t.token},set:function(t){t&&(this.config.api.token=t,this.api&&(this.api.auth.api.token=t,this.api.users.api.token=t,this.api.tenants.api.token=t))}},{key:"db",get:function(){return this.manager.getConnection(this.config)}}])}();function Z(t){return tt.apply(this,arguments)}function tt(){return(tt=a(n().mark((function t(e){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=new X(e),t.next=3,r.init();case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}exports.Nile=Z,exports.Server=X,exports.default=Z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("dotenv/config");var e=require("jose"),t=require("pg");function n(){n=function(){return t};var e,t={},r=Object.prototype,a=r.hasOwnProperty,s=Object.defineProperty||function(e,t,n){e[t]=n.value},u="function"==typeof Symbol?Symbol:{},o=u.iterator||"@@iterator",i=u.asyncIterator||"@@asyncIterator",c=u.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var a=Object.create((t&&t.prototype instanceof g?t:g).prototype),u=new _(r||[]);return s(a,"_invoke",{value:R(e,n,u)}),a}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var h="suspendedStart",d="suspendedYield",v="executing",b="completed",w={};function g(){}function y(){}function m(){}var x={};f(x,o,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(P([])));k&&k!==r&&a.call(k,o)&&(x=k);var I=m.prototype=g.prototype=Object.create(x);function N(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(r,s,u,o){var i=l(e[r],e,s);if("throw"!==i.type){var c=i.arg,f=c.value;return f&&"object"==typeof f&&a.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 r;s(this,"_invoke",{value:function(e,a){function s(){return new t((function(t,r){n(e,a,t,r)}))}return r=r?r.then(s,s):s()}})}function R(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=T(o,r);if(i){if(i===w)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===w)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(a=b,r.method="throw",r.arg=c.arg)}}}function T(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,T(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),w;var s=l(a,t.iterator,n.arg);if("throw"===s.type)return n.method="throw",n.arg=s.arg,n.delegate=null,w;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,w):u:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,w)}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[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){for(;++r<t.length;)if(a.call(t,r))return n.value=t[r],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 y.prototype=m,s(I,"constructor",{value:m,configurable:!0}),s(m,"constructor",{value:y,configurable:!0}),y.displayName=f(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,f(e,c,"GeneratorFunction")),e.prototype=Object.create(I),e},t.awrap=function(e){return{__await:e}},N(S.prototype),f(S.prototype,i,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,a,s){void 0===s&&(s=Promise);var u=new S(p(e,n,r,a),s);return t.isGeneratorFunction(n)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},N(I),f(I,c,"Generator"),f(I,o,(function(){return this})),f(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)&&a.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 r(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 r("end");if(u.tryLoc<=this.prev){var i=a.call(u,"catchLoc"),c=a.call(u,"finallyLoc");if(i&&c){if(this.prev<u.catchLoc)return r(u.catchLoc,!0);if(this.prev<u.finallyLoc)return r(u.finallyLoc)}else if(i){if(this.prev<u.catchLoc)return r(u.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return r(u.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var s=r;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,w):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),w},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),w}},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),w}},t}function r(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function a(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 s(e){return function(){var t=this,n=arguments;return new Promise((function(r,s){var u=e.apply(t,n);function o(e){a(u,r,s,o,i,"next",e)}function i(e){a(u,r,s,o,i,"throw",e)}o(void 0)}))}}function u(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,r(a.key),a)}}function o(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function c(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,f(e,t)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(a[n]=e[n]);return a}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 d(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(){if(null!=e&&e.debug){for(var t,r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];(t=console).info.apply(t,["[niledb]"].concat(n,a))}},warn:function(){if(null!=e&&e.debug){for(var t,r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];(t=console).warn.apply(t,["[niledb]"].concat(n,a))}},error:function(){for(var e,t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];(e=console).error.apply(e,["[niledb]","[ERROR]"].concat(n,r))}}}var v=function(e){var t=e.config,n=e.logger,r=d(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)},b=function(e){var t=e.config;return d(t,"[password]"),null!=t&&t.password?String(t.password):process.env.NILEDB_PASSWORD},w=function(e){var t,n,r,a=e.config,s=e.logger,u=d(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},g=function(e){var t=e.config,n=e.logger,r=d(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=e.logger;if(process.env.NILEDB_LOCAL){var n=d(e.config,"[local]");return t&&(0,n.info)(t,"NILEDB_LOCAL",process.env.NILEDB_LOCAL),new URL(process.env.NILEDB_LOCAL).href}return"http://localhost:3000"},m=function(e){var t,n,r,a,s=e.config,u=e.logger,o=d(s,"[basePath]").info,i=null==s||null==(t=s.api)?void 0:t.basePath,c="";if(/\/v\d\//.test(String(i))||(c=1===(null==s||null==(n=s.api)?void 0:n.version)?"":"/v"+(null!=(r=null==s||null==(a=s.api)?void 0:a.version)?r:2)),i)return u&&o(u,"config",i),""+i+c;if(process.env.NILEDB_API_URL)return u&&o(u,"NILEDB_API_URL",process.env.NILEDB_API_URL),new URL(process.env.NILEDB_API_URL).href;throw new Error("NILEDB_API_URL is missing.")},x=function(e){var t=e.logger,n=d(e.config,"[basePath]").info;return process.env.NILEDB_CONFIGURE?(t&&n(t,"NILEDB_CONFIGURE",process.env.NILEDB_CONFIGURE),process.env.NILEDB_CONFIGURE):(t&&n(t,"default",process.env.NILEDB_CONFIGURE),"https://global.thenile.dev")};function E(e){var t=e.config,n=e.logger,r=d(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=d(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,"config",process.env.NILEDB_PORT),Number(process.env.NILEDB_PORT)):(a&&s(a,"default",5432),5432)}var I,N=["host","port"],S=["host","port"],R=function(){return o((function(e){var t=e.basePath,n=e.cookieKey,r=e.token,a=e.version,s=e.localPath;this.cookieKey=void 0,this.basePath=void 0,this.version=void 0,this.localPath=void 0,this._token=void 0,this.basePath=t,this.cookieKey=n,this.version=a,this._token=r,this.localPath=null!=s?s:"http://localhost:3000"}),[{key:"token",get:function(){return this._token},set:function(e){this._token=e}}])}(),T=function(){return o((function(e,t){var r,a,u,o,c,f=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=s(n().mark((function e(t){var r,a,s,u,o,c,l,h,I,S,T,L,U,_,P,O,D,A,B,q,j,G,C,H,M,K,F,W,z,J,V,Y;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=d(t,"[init]"),h=l.info,I=l.error,S={config:t},T=null!=(r=t.db)?r:{},L=T.host,U=T.port,_=p(T,N),P=null!=L?L:E(S),O=null!=U?U:k(S),!(P&&f.databaseName&&f.databaseId)){e.next=8;break}return h("Already configured, aborting fetch"),e.abrupt("return",f);case 8:return D=m(S),A=x(S),B=g({config:t,logger:"getInfo"}),q=new URL(A+"/databases/configure"),B&&q.searchParams.set("databaseName",B),h("configuring from",q.href),e.next=16,fetch(q,{headers:{Authorization:"Bearer "+(n={config:t},v(n)+":"+b(n))}});case 16:return C=(j=e.sent).clone(),e.prev=18,e.next=21,j.json();case 21:H=e.sent,404===j.status&&h("is the configured databaseName correct?"),G=H.status&&"READY"!==H.status?{message:"Database is not ready yet"}:H,e.next=33;break;case 26:return e.prev=26,e.t0=e.catch(18),e.next=30,C.text();case 30:I(M=e.sent),G={message:M};case 33:if(h("[fetched database]",G),!("message"in G)){e.next=42;break}if(!("statusCode"in G)){e.next=41;break}throw I(G),new Error("HTTP error has occurred");case 41: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 42:"object"==typeof G&&(F=(K=G).apiHost,W=K.dbHost,z=K.name,J=K.id,V=m(S)||F,f.databaseId=J,f.databaseName=z,Y=new URL(W),P=Y.host,D=V);case 43:return null==(a=S.config)||null==(a=a.api)||delete a.basePath,D=m(S),f.api=new R({basePath:D,cookieKey:null!=(s=null==t||null==(u=t.api)?void 0:u.cookieKey)?s:"token",token:w({config:t}),version:null!=(o=null==t||null==(c=t.api)?void 0:c.version)?o:2,localPath:y(S)}),f.db=i({user:f.user,password:f.password,host:P,port:O,database:f.databaseName},_),h("[config set]",f),e.abrupt("return",f);case 49:case"end":return e.stop()}var n}),e,null,[[18,26]])})));return function(t){return e.apply(this,arguments)}}();var l={config:e,logger:t};if(this.user=v(l),this.password=b(l),!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=d(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,"env",process.env.NILEDB_ID),process.env.NILEDB_ID)}(l),this.databaseName=g(l),this._tenantId=function(e){var t=e.config,n=e.logger,r=d(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}(l),this.debug=Boolean(null==e?void 0:e.debug),this._userId=null==e?void 0:e.userId;var h=m(l),I=null!=(r=null==e?void 0:e.db)?r:{},T=I.host,L=I.port,U=p(I,S),_=null!=T?T:E(l),P=null!=L?L:k(l);this.api=new R({basePath:h,cookieKey:null!=(a=null==e||null==(u=e.api)?void 0:u.cookieKey)?a:"token",token:w({config:e}),version:null!=(o=null==e||null==(c=e.api)?void 0:c.version)?o:2,localPath:y(l)}),this.db=i({user:this.user,password:this.password,host:_,port:P},U),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}}])}(),L=function(e,t){this.response=void 0,this.response=new Response(e,t)};!function(e){e.User="userId",e.Tenant="tenantId",e.Token="token",e.EvictPool="EvictPool"}(I||(I={}));var U=new(function(){function e(){this.events=void 0,this.events={}}var t=e.prototype;return t.publish=function(e,t){var n=this.events[e];if(n)for(var r,a=h(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].findIndex((function(e){return e===t}));-1!==n&&this.events[e].splice(n,1)},e}()),_=function(e){U.publish(I.Tenant,e)},P=function(e){U.publish(I.User,e)},O=function(e){return U.subscribe(I.EvictPool,e)},D=function(e){U.publish(I.EvictPool,e)},A="niledb-tenant-id",B="niledb-user-id";function q(e,t){var n,r=null==(n=e.get("cookie"))?void 0:n.split("; "),a={};if(r)for(var s,u=h(r);!(s=u()).done;){var o=s.value.split("="),i=o.slice(1).join("=");a[o[0]]=i}if(r)for(var c,f=h(r);!(c=f()).done;){var p=c.value.split("="),l=p.slice(1).join("=");a[p[0]]=l}return t?a[t]:null}function j(e,t){var n,r=q(e,A);return null!=(n=null!=r?r:null==e?void 0:e.get(A))?n:null==t?void 0:t.tenantId}function G(t,n){var r,a=q(t,n.api.cookieKey);return a?e.decodeJwt(a).sub:null!=(r=null==t?void 0:t.get(B))?r:n.userId}function C(e,t,n){return H.apply(this,arguments)}function H(){return H=s(n().mark((function e(t,r,a){var s,u,o,c,f,p,l,h,v,b,g,y,m,x,E,k,I,N,S,R,T;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=d(t,"[server]"),f=c.info,p=c.error,l=""+(null==(s=t.api)?void 0:s.basePath)+r,h=null==(u=t.api)?void 0:u.cookieKey,v=new Headers(null==a?void 0:a.headers),(b=new Headers(null==a?void 0:a.headers)).set("content-type","application/json; charset=utf-8"),g=Buffer.from(process.env.NILEDB_USER+":"+process.env.NILEDB_PASSWORD,"utf8").toString("base64"),b.set("niledb-creds",g),v.get("Authorization")||((y=q(v,h))?b.set("Authorization","Bearer "+y):w({config:t})&&b.set("Authorization","Bearer "+w({config:t}))),m=j(v,t),_(m),x=G(v,t),P(x),!l.includes("{tenantId}")||m){e.next=16;break}return e.abrupt("return",new L("tenantId is not set for request",{status:400}));case 16:return E=l.replace("{tenantId}",encodeURIComponent(String(m))).replace("{userId}",encodeURIComponent(String(x))),f("[fetch]",E),e.next=20,fetch(E,i({},a,{headers:b})).catch((function(e){p("[fetch]","[response]",e)}));case 20:if(!((k=e.sent)&&k.status>=200&&k.status<300)){e.next=39;break}if("function"!=typeof k.clone){e.next=38;break}return e.prev=23,e.t0=f,e.next=27,k.clone().json();case 27:e.t1=e.sent,(0,e.t0)("[fetch]","[response]",e.t1),e.next=38;break;case 31:return e.prev=31,e.t2=e.catch(23),e.t3=f,e.next=36,k.clone().text();case 36:e.t4=e.sent,(0,e.t3)("[fetch]","[response]",e.t4);case 38:return e.abrupt("return",k);case 39:if(401!==(null==k?void 0:k.status)){e.next=41;break}return e.abrupt("return",new L("Unauthorized",{status:401}));case 41:if(405!==(null==k?void 0:k.status)){e.next=43;break}return e.abrupt("return",new L("Method not allowed",{status:405}));case 43:return N="function"==typeof(null==k?void 0:k.clone)?k.clone():null,S="",e.prev=45,e.next=48,null==k?void 0:k.json();case 48:I=e.sent,e.next=59;break;case 51:if(e.prev=51,e.t5=e.catch(45),!N){e.next=58;break}return e.next=56,N.text();case 56:(S=e.sent)&&p("[fetch]","[response]","[status: "+N.status+"]",S);case 58:S||p("[fetch]","[response]",e.t5);case 59:if(!S){e.next=61;break}return e.abrupt("return",new L(S,{status:null==N?void 0:N.status}));case 61:if(!I||!("message"in I)){e.next=65;break}return p("[fetch]","[response]","[status: "+(null==N?void 0:N.status)+"]",R=I.message),e.abrupt("return",new L(R,{status:400}));case 65:if(!I||!("errors"in I)){e.next=69;break}return p("[fetch]","[response]","[status: "+(null==N?void 0:N.status)+"]",T=I.errors[0]),e.abrupt("return",new L(T,{status:400}));case 69:return p("[fetch]","[response]","[status: "+(null==N?void 0:N.status)+"]","UNHANDLED ERROR"),e.abrupt("return",new L(null,{status:null!=(o=null==k?void 0:k.status)?o:500}));case 71:case"end":return e.stop()}}),e,null,[[23,31],[45,51]])}))),H.apply(this,arguments)}var M=function(e){function t(t){var r;return(r=e.call(this,t)||this).post=function(){var e=s(n().mark((function e(t,a,s){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.request("POST",a,t,s);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.get=function(){var e=s(n().mark((function e(t,a,s){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.request("GET",a,t,s);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.put=function(){var e=s(n().mark((function e(t,a,s){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.request("PUT",a,t,s);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.delete=function(){var e=s(n().mark((function e(t,a,s){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.request("DELETE",a,t,s);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),r}c(t,e);var r=t.prototype;return r.rawRequest=function(){var e=s(n().mark((function e(t,r,a,s){var u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=i({},a,{body:s,method:t}),e.next=3,C(this,r,u);case 3:if(!((o=e.sent)instanceof L)){e.next=6;break}return e.abrupt("return",o.response);case 6:return e.abrupt("return",o);case 7:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a){return e.apply(this,arguments)}}(),r.request=function(){var e=s(n().mark((function e(t,r,a,s){var u,o,c,f,p,l,h,d;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u=new Headers(s?null==s?void 0:s.headers:{}),a instanceof Headers?(o=a.get(A),c=a.get("cookie"),o&&u.set(A,o),c&&u.set("cookie",c)):a instanceof Request&&(f=new Headers(null==a?void 0:a.headers),p=f.get(A),l=f.get("cookie"),p&&u.set(A,p),l&&u.set("cookie",l)),h=JSON.stringify(a),"GET"!==t){e.next=7;break}h=void 0,e.next=14;break;case 7:if(!(a instanceof Request)){e.next=13;break}return e.next=10,new Response(a.body).text();case 10:h=e.sent,e.next=14;break;case 13:(a instanceof Headers||"{}"===JSON.stringify(a)||a&&"object"==typeof a&&0===Object.values(a).length)&&(h=void 0);case 14:return d=i({},s,{headers:u}),e.next=17,this.rawRequest(t,r,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)}}(),t}(T),K=function(e){function t(t,r){var a;return(a=e.call(this,t)||this).headers=void 0,a.createUser=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.next=4,s.post(t,a.usersUrl,u);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)}}(),a.updateUser=function(){var e=s(n().mark((function e(t,r,s){var u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=new M(a),o=a.handleHeaders(s),e.next=4,u.put(r,a.usersUrl+"/"+t,o);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)}}(),a.listUsers=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.next=4,s.get(t,a.tenantUsersUrl,u);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)}}(),a.linkUser=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.next=4,s.put(t,a.tenantUsersUrl,u);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)}}(),a.tenantUsersDeleteUrl=function(e){var t;return"/tenants/"+(null!=(t=a.tenantId)?t:"{tenantId}")+"/users/"+(null!=e?e:"{userId}")},a.getUserId=function(){var e=s(n().mark((function e(t){var r;return n().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(!(r=e.sent)){e.next=6;break}return e.abrupt("return",r.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)}}(),a.unlinkUser=function(){var e=s(n().mark((function e(t,r){var s,u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),e.next=3,a.getUserId(t);case 3:return u=e.sent,o=a.handleHeaders(r),e.next=7,s.delete(t,a.tenantUsersDeleteUrl(u),o);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)}}(),a.me=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.next=4,s.get(t,a.meUrl,u);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)}}(),a.headers=r,a}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}},o(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"}}])}(T),F=function(e){function t(t,r){var a;return(a=e.call(this,t)||this).headers=void 0,a.createTenant=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.abrupt("return",s.post(t,a.tenantsUrl,u));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),a.getTenant=function(){var e=s(n().mark((function e(t,r){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new M(a),u=a.handleHeaders(r),e.abrupt("return",s.get(t,a.tenantUrl,u));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),a.headers=r,a}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}},o(t,[{key:"tenantsUrl",get:function(){return"/tenants"}},{key:"tenantUrl",get:function(){var e;return"/tenants/"+(null!=(e=this.tenantId)?e:"{tenantId}")}}])}(T),W=["afterCreate"],z=function(){function e(e,r){var a=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 u=d(e,"[NileInstance]"),o=u.warn,c=u.info;this.id=r;var f=i({min:0,max:10,idleTimeoutMillis:3e4},e.db),l=f.afterCreate,h=p(f,W);e.db=f,this.config=e,c(this.config.db),this.pool=function(e,t){var n=d(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,t),s.apply(this,t)}}return e[n]}})}(new t.Pool(h),this.config),"function"==typeof l&&o("Providing an pool configuration will stop automatic tenant context setting."),this.startTimeout(),this.pool.on("connect",function(){var t=s(n().mark((function t(r){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c("pool connected"),J(e)(r,(function(t){var n=d(e,"[after create callback]");t&&((0,n.error)("after create failed",t),D(a.id))})),a.startTimeout();case 4:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),this.pool.on("error",function(){var e=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c("pool failed",t),a.timer&&clearTimeout(a.timer),D(a.id);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}return e.prototype.startTimeout=function(){var e=this,t=d(this.config,"[NileInstance]").info;this.timer&&clearTimeout(this.timer),this.timer=setTimeout(s(n().mark((function r(){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t("Pool reached idleTimeoutMillis.",e.id,"evicted after",e.config.db.idleTimeoutMillis,"ms"),n.next=3,e.pool.end((function(){t("Pool end called")}));case 3:D(e.id);case 4:case"end":return n.stop()}}),r)}))),this.config.db.idleTimeoutMillis)},e}();function J(e){var t=d(e,"[afterCreate]"),n=t.warn,r=t.info;return function(t,a){if(t.on("error",(function(e){n("Connection was terminated by server",e),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){e.tenantId&&r("[tenant id]",e.tenantId),e.userId&&r("[user id]",e.userId),a(n,t)}))}a(null,t)}}var V=function(){function e(e){var t=this;this.connections=void 0,this.cleared=void 0,this.poolWatcher=function(e){return function(n){var r=d(e,"[DBManager]").info;n&&t.connections.has(n)&&(r("Removing",n,"from db connection pool."),t.connections.delete(n))}},this.getConnection=function(e){var n=d(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 z(new T(e),r);return t.connections.set(r,s),n("created new",r),n("# of instances:",t.connections.size),t.cleared&&(t.cleared=!1,O(t.poolWatcher(e))),s.pool},this.clear=function(e){var n;(0,d(e,"[DBManager]").info)("Clearing all connections",t.connections.size),n=t.poolWatcher(e),U.unsubscribe(I.EvictPool,n),t.cleared=!0,t.connections.clear()};var n=d(e,"[DBManager]").info;this.cleared=!1,this.connections=new Map;var r=this.makeId();n("constructor",r),this.connections.set(r,new z(new T(e),r)),O(this.poolWatcher(e))}return e.prototype.makeId=function(e,t){return e&&t?e+":"+t:e?""+e:"base"},e}(),Y=function(e){return Buffer.from(JSON.stringify(e),"base64").toString()};function $(e,t){return function(){var r=s(n().mark((function r(a){var s,u,o,i,c,f,p,l,h,d,v,b,w,g,y,m,x,E,k;return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=a.email,i=a.password,c=new URL(e.api.localPath+"/api/auth/providers"),f=new Request(c,{method:"GET",headers:new Headers({host:c.host})}),n.next=5,t.POST(f);case 5:return p=n.sent,n.next=8,null==p?void 0:p.json();case 8:return l=n.sent,h=new URL(e.api.localPath+"/api/auth/csrf"),d=new Request(h,{method:"GET",headers:new Headers({host:c.host})}),n.next=13,t.POST(d);case 13:return v=n.sent,n.next=16,null==v?void 0:v.json();case 16:if(n.t0=s=n.sent,null==n.t0){n.next=21;break}n.t1=s,n.next=22;break;case 21:n.t1={};case 22:if(b=n.t1.csrfToken,w=l.credentials,g=null==v?void 0:v.headers.get("set-cookie"),expect(g).toContain("nile.csrf-token="),y=new URL(w.callbackUrl),g){n.next=30;break}throw new Error("unable to authenticate REST");case 30:return m=new Request(y,{method:"POST",headers:new Headers({"content-type":"application/json",cookie:g}),body:JSON.stringify({email:o,password:i,csrfToken:b,callbackUrl:w.callbackUrl})}),n.next=33,t.POST(m);case 33:if(E=null==(x=n.sent)?void 0:x.headers.get("set-cookie")){n.next=37;break}throw new Error("authentication failed");case 37:return expect(E).toContain("nile.session-token="),k=null!=(u=/(nile\.session-token=.+?);/.exec(E))?u:[],n.abrupt("return",new Headers({cookie:[k[1],g].join("; ")}));case 40:case"end":return n.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()}var Q=process.env.NILEDB_API_URL;function X(e,t){if(!Q)throw new Error("An API url is required. Set it via NILEDB_API_URL.");var n=new URLSearchParams(t);return[Q,e.substring(1,e.length)].join("/")+(t?"?"+n.toString():"")}var Z={ME:X("/me"),USERS:function(e){return X("/users",e?{tenantId:e}:void 0)},USER:function(e){return X("/users/"+e)},TENANTS:X("/tenants"),TENANT:function(e){return X("/tenants/"+e)},SIGNUP:X("/signup"),TENANT_USERS:function(e){return X("/tenants/"+e+"/users")},TENANT_USER:function(e,t){return X("/tenants/"+e+"/users/"+t)},USER_TENANTS:function(e){return X("/users/"+e+"/tenants")}};function ee(e,t){return new URL(e).pathname.startsWith(t)}var te=["request"];function ne(e,t){return re.apply(this,arguments)}function re(){return re=s(n().mark((function e(t,r){var a,s,u,o,c,f;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=r.request,s=p(r,te),u=new URL(a.url),(o=new Headers(a.headers)).set("niledb-origin",u.origin),o.set("niledb-creds",Buffer.from(process.env.NILEDB_USER+":"+process.env.NILEDB_PASSWORD).toString("base64")),"POST"!==(c=i({},s,{headers:o})).method&&"PUT"!==c.method||(o.set("content-type","text/plain;charset=UTF-8"),c.body=null!=(f=s.body)?f:a.body,c.duplex="half"),e.next=9,fetch(t,i({},c)).catch((function(){}));case 9:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e)}))),re.apply(this,arguments)}var ae="ME",se=Z[ae];function ue(e,t){return oe.apply(this,arguments)}function oe(){return oe=s(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r("[GET]"),e.next=3,ne(se,t);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),oe.apply(this,arguments)}function ie(e,t){return ce.apply(this,arguments)}function ce(){return ce=s(n().mark((function e(t,r){var a,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=d(i({},r,{debug:r.debug}),"[ROUTES]","["+ae+"]"),s=a.info,e.t0=t.method,e.next="GET"===e.t0?4:7;break;case 4:return e.next=6,ue({request:t},s);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)}))),ce.apply(this,arguments)}function fe(e,t){return ee(t.url,e[ae])}function pe(e,t){return le.apply(this,arguments)}function le(){return(le=s(n().mark((function e(t,r){var a,s,u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=d(i({},r,{debug:!0}),"[nileauth]"),(s=a.info)("checking auth"),s("using session",u=r.api.basePath+"/auth/session"),e.next=6,ne(u,{request:t});case 6:if(o=e.sent){e.next=10;break}return s("no session found"),e.abrupt("return",void 0);case 10:return s("session active"),e.next=13,new Response(o.body).json();case 13:return e.abrupt("return",e.sent);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function he(e,t,n){return de.apply(this,arguments)}function de(){return de=s(n().mark((function e(t,r,a){var s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return",new Response(null,{status:401}));case 2:return r.body=r.request.body,r.method="POST",s=new URL(r.request.url),u=s.searchParams.get("tenantId"),o=null!=u?u:j(r.request.headers),i=Z.USERS(o||void 0),a&&a("[POST]",i),e.next=11,ne(i,r);case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)}))),de.apply(this,arguments)}function ve(e,t){return be.apply(this,arguments)}function be(){return be=s(n().mark((function e(t,r){var a,s,u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=new URL(t.request.url),s=a.searchParams.get("tenantId"),u=null!=s?s:j(t.request.headers)){e.next=6;break}return r("[GET]","[ERROR]","No tenant id provided."),e.abrupt("return",new Response(null,{status:404}));case 6:return o=Z.TENANT_USERS(u),r("[GET]",o),t.method="GET",e.next=11,ne(o,t);case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)}))),be.apply(this,arguments)}function we(e,t,n){return ge.apply(this,arguments)}function ge(){return ge=s(n().mark((function e(t,r,a){var s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){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(),u=Z.USER(s[0]),a("[PUT]",u),e.next=9,ne(u,r);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)}))),ge.apply(this,arguments)}var ye="USERS";function me(e,t){return xe.apply(this,arguments)}function xe(){return xe=s(n().mark((function e(t,r){var a,s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=d(i({},r,{debug:r.debug}),"[ROUTES]","["+ye+"]"),s=a.info,e.next=3,pe(t,r);case 3:u=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,ve({request:t},s);case 9:case 12:case 15:return e.abrupt("return",e.sent);case 10:return e.next=12,he(u,{request:t},s);case 13:return e.next=15,we(u,{request:t},s);case 16:return e.abrupt("return",new Response("method not allowed",{status:405}));case 17:case"end":return e.stop()}}),e)}))),xe.apply(this,arguments)}function Ee(e,t){return ee(t.url,e[ye])}function ke(e,t,n){return Ie.apply(this,arguments)}function Ie(){return Ie=s(n().mark((function e(t,r,a){var s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(r.request.url),u=s.pathname.split("/").reverse(),o=u[1]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return i=""+Z.TENANT_USERS(o),a("[GET]","[TENANT_USERS]",i),e.next=8,ne(i,r);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)}))),Ie.apply(this,arguments)}function Ne(e,t,n){return Se.apply(this,arguments)}function Se(){return Se=s(n().mark((function e(t,r,a){var s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=new URL(r.request.url),u=s.pathname.split("/").reverse(),o=u[1],r.body=JSON.stringify({email:t.email}),r.method="PUT",i=Z.TENANT_USERS(o),a("[PUT]",i),e.next=8,ne(i,r);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)}))),Se.apply(this,arguments)}function Re(e,t,n){return Te.apply(this,arguments)}function Te(){return Te=s(n().mark((function e(t,r,a){var s,u,o,i,c;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(r.request.url),u=s.pathname.split("/").reverse(),o=u[0],i=u[2]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return r.method="DELETE",c=""+Z.TENANT_USER(i,o),a("[DELETE]",c),e.next=9,ne(c,r);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)}))),Te.apply(this,arguments)}function Le(e,t,n){return Ue.apply(this,arguments)}function Ue(){return Ue=s(n().mark((function e(t,r,a){var s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(r.request.url),u=s.pathname.split("/").reverse(),o=u[1]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return r.method="PUT",i=""+Z.TENANT_USERS(o),a("[PUT]",i),e.next=9,ne(i,r);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)}))),Ue.apply(this,arguments)}var _e="TENANT_USERS";function Pe(e,t){return Oe.apply(this,arguments)}function Oe(){return Oe=s(n().mark((function e(t,r){var a,s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=d(i({},r,{debug:r.debug}),"[ROUTES]","["+_e+"]"),s=a.info,e.next=3,pe(t,r);case 3:if(u=e.sent){e.next=7;break}return s("401"),e.abrupt("return",new Response(null,{status:401}));case 7:e.t0=t.method,e.next="GET"===e.t0?10:"POST"===e.t0?13:"PUT"===e.t0?16:"DELETE"===e.t0?19:22;break;case 10:return e.next=12,ke(u,{request:t},s);case 12:case 15:case 18:case 21:return e.abrupt("return",e.sent);case 13:return e.next=15,Ne(u,{request:t},s);case 16:return e.next=18,Le(u,{request:t},s);case 19:return e.next=21,Re(u,{request:t},s);case 22:return e.abrupt("return",new Response("method not allowed",{status:405}));case 23:case"end":return e.stop()}}),e)}))),Oe.apply(this,arguments)}function De(e,t){var n=new URL(t.url).pathname.split("/").reverse(),r=n[0],a=n[1],s=e[_e].replace("{tenantId}",n[2]).replace("{userId}",r);return"users"===r&&(s=e[_e].replace("{tenantId}",a)),ee(t.url,s)}function Ae(e,t,n){return Be.apply(this,arguments)}function Be(){return Be=s(n().mark((function e(t,r,a){var s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=""+Z.USER_TENANTS(t.id),a("[GET]",s),e.next=4,ne(s,r);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)}))),Be.apply(this,arguments)}function qe(e,t,n){return je.apply(this,arguments)}function je(){return je=s(n().mark((function e(t,r,a){var s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=new URL(r.request.url),u=s.pathname.split("/").reverse(),o=u[0]){e.next=4;break}return e.abrupt("return",new Response(null,{status:404}));case 4:return r.method="DELETE",i=""+Z.TENANT(o),a("[DELETE]",i),e.next=9,ne(i,r);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)}))),je.apply(this,arguments)}function Ge(e,t,n){return Ce.apply(this,arguments)}function Ce(){return Ce=s(n().mark((function e(t,r,a){var s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.body=r.request.body,r.method="POST",a("[POST]",s=""+Z.TENANTS),e.next=6,ne(s,r);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)}))),Ce.apply(this,arguments)}var He="TENANTS";function Me(e,t){return Ke.apply(this,arguments)}function Ke(){return Ke=s(n().mark((function e(t,r){var a,s,u;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=d(i({},r,{debug:r.debug}),"[ROUTES]","["+He+"]"),s=a.info,e.next=3,pe(t,r);case 3:if(u=e.sent){e.next=7;break}return s("401"),e.abrupt("return",new Response(null,{status:401}));case 7:e.t0=t.method,e.next="GET"===e.t0?10:"POST"===e.t0?13:"DELETE"===e.t0?16:19;break;case 10:return e.next=12,Ae(u,{request:t},s);case 12:case 15:case 18:return e.abrupt("return",e.sent);case 13:return e.next=15,Ge(u,{request:t},s);case 16:return e.next=18,qe(u,{request:t},s);case 19:return e.abrupt("return",new Response("method not allowed",{status:405}));case 20:case"end":return e.stop()}}),e)}))),Ke.apply(this,arguments)}function Fe(e,t){return ee(t.url,e[He])}var We={SIGNIN:X("/auth/signin"),PROVIDERS:X("/auth/providers"),SESSION:X("/auth/session"),CSRF:X("/auth/csrf"),CALLBACK:X("/auth/callback"),SIGNOUT:X("/auth/signout"),ERROR:X("/auth/error")},ze="SIGNIN";function Je(e){return Ve.apply(this,arguments)}function Ve(){return Ve=s(n().mark((function e(t){var r,a,s,u,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=We[ze],a={method:t.method},"POST"===t.method&&(a.body=t.body,s=new URL(t.url).pathname.split("/").reverse(),r=We[ze]+"/"+s[0]),u=new URL(t.url),o=new URLSearchParams(u.search),r+=""!==o.toString()?"?"+o.toString():"",e.next=8,ne(r,i({},a,{request:t}));case 8:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)}))),Ve.apply(this,arguments)}function Ye(e,t){return ee(t.url,e[ze])}function $e(e){return Qe.apply(this,arguments)}function Qe(){return(Qe=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ne(We.SESSION,{method:t.method,request:t}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Xe(e,t){return ee(t.url,e.SESSION)}function Ze(e){return et.apply(this,arguments)}function et(){return(et=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ne(We.PROVIDERS,{method:t.method,request:t}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function tt(e,t){return ee(t.url,e.PROVIDERS)}function nt(e){return rt.apply(this,arguments)}function rt(){return(rt=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ne(We.CSRF,{method:t.method,request:t}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function at(e,t){return ee(t.url,e.CSRF)}var st=console,ut=st.log,ot=st.error;function it(e){return ct.apply(this,arguments)}function ct(){return ct=s(n().mark((function e(t){var r,a,s,u,o,i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URL(t.url).pathname.split("/").reverse(),a=r[0],s=new URL(t.url),u=new URLSearchParams(s.search),o=We.CALLBACK+"/"+a+(""!==u.toString()?"?"+u.toString():""),e.next=6,ne(o,{request:t,method:t.method}).catch((function(e){ot("an error has occurred in callback"),ut(e)}));case 6:if(!(null==(i=e.sent)?void 0:i.headers.get("location"))){e.next=10;break}return e.abrupt("return",new Response(null==i?void 0:i.body,{status:302,headers:null==i?void 0:i.headers}));case 10:return e.abrupt("return",new Response(null==i?void 0:i.body,{status:null==i?void 0:i.status,headers:null==i?void 0:i.headers}));case 11:case"end":return e.stop()}}),e)}))),ct.apply(this,arguments)}function ft(e,t){return ee(t.url,e.CALLBACK)}var pt="SIGNOUT";function lt(e){return ht.apply(this,arguments)}function ht(){return ht=s(n().mark((function e(t){var r,a,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=We[pt],a={method:t.method},"POST"===t.method&&(a.body=t.body,s=new URL(t.url).pathname.split("/").reverse(),r=We[pt]+"/"+s[0]),e.next=5,ne(r,i({},a,{request:t}));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)}))),ht.apply(this,arguments)}function dt(e,t){return ee(t.url,e[pt])}var vt="ERROR";function bt(e){return wt.apply(this,arguments)}function wt(){return(wt=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ne(We[vt],{method:t.method,request:t}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function gt(e,t){return ee(t.url,e[vt])}var yt=function(){function e(e){var t;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 K(e),this.tenants=new F(e),this.routes=i({},(void 0===(t=null==e?void 0:e.routePrefix)&&(t="/api"),{SIGNIN:t+"/auth/signin",PROVIDERS:t+"/auth/providers",SESSION:t+"/auth/session",CSRF:t+"/auth/csrf",CALLBACK:t+"/auth/callback",SIGNOUT:t+"/auth/signout",ERROR:t+"/auth/error",ME:t+"/me",USERS:t+"/users",TENANTS:t+"/tenants",TENANT_USER:t+"/tenants/{tenantId}/users/{userId}",TENANT_USERS:t+"/tenants/{tenantId}/users",SIGNUP:t+"/signup"}),null==e?void 0:e.routes),this.handlers=function(e,t){var r=function(e,t){return function(){var r=s(n().mark((function r(a){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!fe(e,a)){n.next=2;break}return n.abrupt("return",ie(a,t));case 2:if(!Ee(e,a)){n.next=4;break}return n.abrupt("return",me(a,t));case 4:if(!De(e,a)){n.next=6;break}return n.abrupt("return",Pe(a,t));case 6:if(!Fe(e,a)){n.next=8;break}return n.abrupt("return",Me(a,t));case 8:if(!Xe(e,a)){n.next=10;break}return n.abrupt("return",$e(a));case 10:if(!Ye(e,a)){n.next=12;break}return n.abrupt("return",Je(a));case 12:if(!tt(e,a)){n.next=14;break}return n.abrupt("return",Ze(a));case 14:if(!at(e,a)){n.next=16;break}return n.abrupt("return",nt(a));case 16:if(!ft(e,a)){n.next=18;break}return n.abrupt("return",it(a));case 18:if(!dt(e,a)){n.next=20;break}return n.abrupt("return",lt(a));case 20:if(!gt(e,a)){n.next=22;break}return n.abrupt("return",bt(a));case 22:return n.abrupt("return",new Response(null,{status:404}));case 23:case"end":return n.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()}(e,t),a=function(e,t){return function(){var r=s(n().mark((function r(a){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!De(e,a)){n.next=2;break}return n.abrupt("return",Pe(a,t));case 2:if(!Ee(e,a)){n.next=4;break}return n.abrupt("return",me(a,t));case 4:if(!Fe(e,a)){n.next=6;break}return n.abrupt("return",Me(a,t));case 6:if(!Xe(e,a)){n.next=8;break}return n.abrupt("return",$e(a));case 8:if(!Ye(e,a)){n.next=10;break}return n.abrupt("return",Je(a));case 10:if(!tt(e,a)){n.next=12;break}return n.abrupt("return",Ze(a));case 12:if(!at(e,a)){n.next=14;break}return n.abrupt("return",nt(a));case 14:if(!ft(e,a)){n.next=16;break}return n.abrupt("return",it(a));case 16:if(!dt(e,a)){n.next=18;break}return n.abrupt("return",lt(a));case 18:return n.abrupt("return",new Response(null,{status:404}));case 19:case"end":return n.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()}(e,t),u=function(e,t){return function(){var r=s(n().mark((function r(a){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!De(e,a)){n.next=2;break}return n.abrupt("return",Pe(a,t));case 2:if(!Fe(e,a)){n.next=4;break}return n.abrupt("return",Me(a,t));case 4:return n.abrupt("return",new Response(null,{status:404}));case 5:case"end":return n.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()}(e,t),o=function(e,t){return function(){var r=s(n().mark((function r(a){return n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!De(e,a)){n.next=2;break}return n.abrupt("return",Pe(a,t));case 2:if(!Ee(e,a)){n.next=4;break}return n.abrupt("return",me(a,t));case 4:if(!Fe(e,a)){n.next=6;break}return n.abrupt("return",Me(a,t));case 6:return n.abrupt("return",new Response(null,{status:404}));case 7:case"end":return n.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()}(e,t);return{GET:r,POST:a,DELETE:u,PUT:o}}(this.routes,e)}return e.prototype.login=function(){var e=s(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,$(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)}}(),o(e,[{key:"headers",set:function(e){this.users=new K(this.config,e),this.tenants=new F(this.config,e)}}])}(),mt=function(){function e(e){var t=this;this.config=void 0,this.api=void 0,this.manager=void 0,this.servers=void 0,this.config=new T(e,"[initial config]"),this.servers=new Map,this.api=new yt(this.config),this.manager=new V(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 T(e)},t.init=function(){var e=s(n().mark((function e(t){return n().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.manager.clear(this.config),this.manager=new V(this.config),this.api=new yt(this.config),e.abrupt("return",this);case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getInstance=function(t){var n=i({},this.config,t),r=function(e){var t=new T(e);return Y(t)}(n);if(r===Y(this.config))return this;var a=this.servers.get(r);if(a){var s=new T(n);return a.setConfig(s),a.tenantId=s.tenantId,a.userId=s.userId,a.token=s.api.token,a.databaseId=s.databaseId,a}return this.servers.set(r,new e(n)),this.servers.get(r)},o(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 xt(e){return Et.apply(this,arguments)}function Et(){return(Et=s(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new mt(t),e.next=3,r.init();case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}exports.Nile=xt,exports.Server=mt,exports.default=xt;
|
|
2
2
|
//# sourceMappingURL=server.cjs.production.min.js.map
|