@niledatabase/server 1.0.0-alpha.195
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/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/Server.d.ts +24 -0
- package/dist/auth/index.d.ts +20 -0
- package/dist/db/index.d.ts +9 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -0
- package/dist/server.cjs.development.js +1359 -0
- package/dist/server.cjs.development.js.map +1 -0
- package/dist/server.cjs.production.min.js +2 -0
- package/dist/server.cjs.production.min.js.map +1 -0
- package/dist/server.esm.js +1353 -0
- package/dist/server.esm.js.map +1 -0
- package/dist/tenants/index.d.ts +12 -0
- package/dist/types.d.ts +40 -0
- package/dist/users/index.d.ts +11 -0
- package/dist/utils/Config.d.ts +24 -0
- package/dist/utils/Event/index.d.ts +5 -0
- package/dist/utils/Requester/index.d.ts +22 -0
- package/dist/utils/Requester/types.d.ts +52 -0
- package/dist/utils/ResponseError.d.ts +4 -0
- package/dist/utils/fetch.d.ts +7 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs.development.js","sources":["../src/utils/Config.ts","../src/utils/ResponseError.ts","../src/utils/Event/index.ts","../src/utils/fetch.ts","../src/utils/Requester/index.ts","../src/auth/index.ts","../src/users/index.ts","../src/tenants/index.ts","../src/Server.ts","../src/index.ts"],"sourcesContent":["import { KnexConfig, PgConnectionConfig, ServerConfig } from '../types';\n\nclass ApiConfig {\n public cookieKey?: string;\n public basePath?: string;\n private _token?: string;\n constructor({\n basePath,\n cookieKey,\n token,\n }: {\n basePath: string;\n cookieKey: string;\n token: string | undefined;\n }) {\n this.basePath = basePath;\n this.cookieKey = cookieKey;\n this._token = token;\n }\n\n public get token(): string | undefined {\n return this._token;\n }\n\n public set token(value: string | undefined) {\n this._token = value;\n }\n}\n\nconst niledatabase_ur = 'dev.khnum.thenile.dev';\n\nexport class Config {\n database: string;\n workspace: string;\n\n db: KnexConfig;\n\n api: ApiConfig;\n\n private _tenantId?: string | undefined;\n\n public get tenantId(): string | undefined {\n return this._tenantId;\n }\n\n public set tenantId(value: string | undefined) {\n this._tenantId = value;\n }\n\n constructor(_config?: ServerConfig) {\n this.database = String(_config?.database);\n this._tenantId = _config?.tenantId;\n this.workspace = String(_config?.workspace);\n this.api = new ApiConfig({\n basePath: _config?.api?.basePath ?? `https://${niledatabase_ur}`,\n cookieKey: _config?.api?.cookieKey ?? 'token',\n token: _config?.api?.token,\n });\n\n const host: string =\n _config?.db &&\n _config.db.connection &&\n typeof _config.db?.connection !== 'string' &&\n 'host' in _config.db.connection\n ? String(_config.db.connection.host)\n : niledatabase_ur;\n\n const port: number =\n _config?.db?.connection &&\n typeof _config.db?.connection !== 'string' &&\n 'port' in _config.db.connection\n ? Number(_config.db?.connection?.port)\n : 5432;\n\n const connection = {\n host,\n port,\n database: _config?.database,\n ...(typeof _config?.db?.connection === 'object'\n ? _config.db.connection\n : {}),\n } as PgConnectionConfig;\n\n this.db = {\n ..._config?.db,\n connection,\n };\n }\n}\n","export class ResponseError {\n response: Response;\n constructor(body?: BodyInit | null, init?: ResponseInit) {\n this.response = new Response(body, init);\n }\n}\n","type BusValues = undefined | null | string;\ntype EventFn = (params: BusValues) => void;\nclass Eventer {\n events: { [key: string]: EventFn[] };\n constructor() {\n this.events = {};\n }\n publish(eventName: string, value: BusValues) {\n // Get all the callback functions of the current event\n const callbackList = this.events[eventName];\n\n // execute each callback function\n if (callbackList) {\n for (const callback of callbackList) {\n callback(value);\n }\n }\n }\n // Subscribe to events\n subscribe(eventName: string, callback: EventFn) {\n // initialize this event\n if (!this.events[eventName]) {\n this.events[eventName] = [];\n }\n\n // store the callback function of the subscriber\n this.events[eventName].push(callback);\n }\n}\n\n// tenantId manager\nconst tenantEvent = new Eventer();\nexport const updateTenantId = (tenantId: BusValues) => {\n tenantEvent.publish('tenantId', tenantId);\n};\n\nexport const watchTenantId = (cb: EventFn) =>\n tenantEvent.subscribe('tenantId', cb);\n","import { ResponseError } from './ResponseError';\nimport { Config } from './Config';\nimport { NileRequest } from './Requester';\nimport { updateTenantId } from './Event';\n\nexport const X_NILE_TENANT = 'x-nile-tenantId';\nexport function handleTenantId(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: NileRequest<any>,\n config: Config\n): ResponseError | void {\n // already set, no need to try and figure it out\n if (config.tenantId) {\n return;\n }\n return new ResponseError('tenant id needs to be set', { status: 400 });\n}\n\nfunction getTokenFromCookie(headers: Headers, cookieKey: void | string) {\n const cookie = headers.get('cookie')?.split('; ');\n const _cookies: Record<string, string> = {};\n if (cookie) {\n for (const parts of cookie) {\n const cookieParts = parts.split('=');\n const _cookie = cookieParts.slice(1).join('=');\n const name = cookieParts[0];\n _cookies[name] = _cookie;\n }\n }\n\n if (cookie) {\n for (const parts of cookie) {\n const cookieParts = parts.split('=');\n const _cookie = cookieParts.slice(1).join('=');\n const name = cookieParts[0];\n _cookies[name] = _cookie;\n }\n }\n if (cookieKey) {\n return _cookies[cookieKey];\n }\n return null;\n}\nexport function getTenantFromHttp(headers: Headers, config: Config) {\n const cookieTenant = getTokenFromCookie(headers, 'tenantId');\n return cookieTenant ?? headers?.get(X_NILE_TENANT) ?? config.tenantId;\n}\n\nexport async function _fetch(\n config: Config,\n path: string,\n opts?: RequestInit\n): Promise<Response | ResponseError> {\n const url = `${config.api?.basePath}${path}`;\n const cookieKey = config.api?.cookieKey;\n const headers = new Headers(opts?.headers);\n const basicHeaders = new Headers();\n basicHeaders.set('content-type', 'application/json; charset=utf-8');\n const authHeader = headers.get('Authorization');\n if (!authHeader) {\n const token = getTokenFromCookie(headers, cookieKey);\n if (token) {\n basicHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n basicHeaders.set('Authorization', `Bearer ${config.api?.token}`);\n }\n }\n\n const tenantId = getTenantFromHttp(headers, config);\n updateTenantId(tenantId);\n\n if (url.includes('{tenantId}') && !tenantId) {\n return new ResponseError('tenantId is not set for request', {\n status: 400,\n });\n }\n const useableUrl = url.replace(\n '{tenantId}',\n encodeURIComponent(String(tenantId))\n );\n const response = await fetch(useableUrl, {\n ...opts,\n headers: basicHeaders,\n }).catch((e) => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n\n if (response && response.status >= 200 && response.status < 300) {\n return response;\n }\n\n let res;\n try {\n res = await (response as Response)?.json();\n } catch (e) {\n /* do the default */\n }\n if (res && 'message' in res) {\n const { message } = res;\n return new ResponseError(message, { status: 400 });\n }\n if (res && 'errors' in res) {\n const {\n errors: [message],\n } = res;\n return new ResponseError(message, { status: 400 });\n }\n\n return new ResponseError(null, {\n status: (response as Response)?.status ?? 500,\n });\n}\n","import isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\n\nimport { Config } from '../Config';\nimport { ResponseError } from '../ResponseError';\nimport { X_NILE_TENANT, _fetch } from '../fetch';\n\nexport { NileResponse, NileRequest } from './types';\n\ntype Methods = 'POST' | 'GET' | 'PUT';\nexport default class Requester<T> extends Config {\n constructor(config: Config) {\n super(config);\n }\n\n async rawRequest(\n method: Methods,\n url: string,\n init: RequestInit,\n body?: string\n ): Promise<Response> {\n const _init = {\n ...init,\n body,\n method,\n };\n\n const res = await _fetch(this, url, _init);\n\n if (res instanceof ResponseError) {\n return res.response;\n }\n\n return res;\n }\n\n /**\n * three optios here\n * 1) pass in headers for a server side request\n * 2) pass in the payload that matches the api\n * 3) pass in the request object sent by a browser\n * @param method\n * @param url\n * @param req\n * @param init\n * @returns\n */\n protected async request(\n method: Methods,\n url: string,\n req: T | Headers,\n init?: RequestInit\n ): Promise<Response> {\n // set the headers\n const headers = new Headers(init ? init?.headers : {});\n if (req instanceof Headers) {\n const tenantId = req.get(X_NILE_TENANT);\n const cookie = req.get('cookie');\n if (tenantId) {\n headers.set(X_NILE_TENANT, tenantId);\n }\n if (cookie) {\n headers.set('cookie', cookie);\n }\n } else if (req instanceof Request) {\n // pass back the X_NILE_TENANT\n const _headers = new Headers(req?.headers);\n const tenantId = _headers.get(X_NILE_TENANT);\n const cookie = _headers.get('cookie');\n if (tenantId) {\n headers.set(X_NILE_TENANT, tenantId);\n }\n if (cookie) {\n headers.set('cookie', cookie);\n }\n }\n // default the body - may be the actual payload for the API\n let body: string | undefined = JSON.stringify(req);\n\n // comes from next/some server\n if (method === 'GET') {\n body = undefined;\n } else if (req instanceof Request) {\n body = await new Response(req.body).text();\n } else if (\n // is just headers for a GET request\n req instanceof Headers ||\n isEmpty(req) ||\n (isObject(req) && Object.values(req).length === 0)\n ) {\n body = undefined;\n }\n\n const _init = {\n ...init,\n headers,\n };\n\n return await this.rawRequest(method, url, _init, body);\n }\n\n post = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('POST', url, req, init);\n };\n\n get = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('GET', url, req, init);\n };\n\n put = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('PUT', url, req, init);\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\nimport { ResponseError } from '../utils/ResponseError';\nimport { X_NILE_TENANT, getTenantFromHttp } from '../utils/fetch';\n\nexport default class Auth extends Config {\n constructor(config: Config) {\n super(config);\n }\n get loginUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users/login`;\n }\n\n login = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const headers = new Headers({ 'content-type': 'application/json' });\n const _requester = new Requester(this);\n\n const params =\n req instanceof Request\n ? new URL(req.url).searchParams\n : new URLSearchParams();\n\n const sso = params.get('sso');\n\n if (sso === 'true') {\n const providerRes = await this.listProviders(\n (req as Request).clone(),\n init\n );\n // if you have a provider, log them in\n if (\n providerRes &&\n providerRes.status >= 200 &&\n providerRes.status < 300\n ) {\n const providers = await new Response(providerRes.body).json();\n if (providers.length > 0) {\n if (providers.length > 1) {\n return new Response(JSON.stringify(providers), { status: 200 });\n // a user has to make a choice\n }\n\n // is there a way to do this? probably not.\n headers.set(X_NILE_TENANT, providers[0].tenantId);\n headers.append(\n 'set-cookie',\n `tenantId=${providers[0].tenantId}; path=/; httponly;`\n );\n // const ssoResp = await this.loginSSO(req);\n return new Response(\n JSON.stringify({\n redirectURI: `${this.api.basePath}${this.loginSSOUrl('okta')}`,\n }),\n { status: 200 }\n );\n // make it a client side redirect, because of the headers\n // if there is no provider, require a password.\n }\n }\n }\n\n const res = await _requester.post(req, this.loginUrl, init).catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n return e;\n });\n if (res instanceof ResponseError) {\n return res.response;\n }\n if (res && res.status >= 200 && res.status < 300) {\n const token: RestModels.LoginUserResponse = await res.json();\n const cookie = `${this.api?.cookieKey}=${token.token.jwt}; path=/; samesite=lax; httponly;`;\n headers.append('set-cookie', cookie);\n const { tenants } = token;\n const tenant = tenants?.values();\n const tenantId = tenant?.next().value;\n headers.set(X_NILE_TENANT, tenantId);\n headers.append('set-cookie', `tenantId=${tenantId}; path=/; httponly;`);\n return new Response(JSON.stringify(token), { status: 200, headers });\n }\n const text = await res.text();\n return new Response(text, { status: res.status });\n };\n\n loginSSO = (redirectUrl: string) => {\n const ssoLogin = async (\n req: NileRequest<unknown>\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const headers = new Headers();\n const body = await (req as Request).formData();\n const accessToken = (await body.get('access_token')) as string;\n const tenantId = (await body.get('tenantId')) as string;\n const cookie = `${this.api?.cookieKey}=${accessToken}; path=/; samesite=lax; httponly;`;\n headers.append('set-cookie', cookie);\n headers.set(X_NILE_TENANT, tenantId);\n headers.append('set-cookie', `tenantId=${tenantId}; path=/; httponly;`);\n headers.set('Location', redirectUrl);\n return new Response(null, {\n headers,\n status: 303,\n });\n };\n return ssoLogin;\n };\n\n loginSSOUrl = (provider: string) => {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }/auth/oidc/providers/${provider}/login`;\n };\n\n get signUpUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users`;\n }\n\n signUp = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const _requester = new Requester(this);\n return _requester.post(req, this.signUpUrl, init);\n };\n\n updateProviderUrl(providerName: string) {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ? encodeURIComponent(this.tenantId) : '{tenantId}'\n }/auth/oidc/providers/${encodeURIComponent(providerName)}`;\n }\n\n get listTenantProvidersUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ? encodeURIComponent(this.tenantId) : '{tenantId}'\n }/auth/oidc/providers`;\n }\n\n listTenantProviders = async (\n req: NileRequest<void | Headers>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const _requester = new Requester(this);\n return _requester.get(req, this.listTenantProvidersUrl, init);\n };\n\n createProvider = async (\n req: NileRequest<RestModels.RegisterTenantSSORequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration> => {\n const _requester = new Requester(this);\n const providerName = 'okta';\n return _requester.post(req, this.updateProviderUrl(providerName), init);\n };\n\n updateProvider = async (\n req: NileRequest<RestModels.RegisterTenantSSORequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration> => {\n const _requester = new Requester(this);\n const providerName = 'okta';\n return _requester.put(req, this.updateProviderUrl(providerName), init);\n };\n\n providerUrl(email?: undefined | string) {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(\n this.database\n )}/tenants/auth/oidc/providers${\n email ? `?email=${encodeURIComponent(email)}` : ''\n }`;\n }\n\n listProviders = async (\n req: NileRequest<void | RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const _requester = new Requester(this);\n let body: { email: string } | undefined;\n // this is a get. Get the email from the response body so the request is filtered.\n if (req && 'body' in req) {\n body = await new Response(req.body as BodyInit).json();\n }\n return _requester.get(req, this.providerUrl(body?.email), init);\n };\n\n getSSOCallbackUrl = (param: Headers | string) => {\n let tenantId;\n if (typeof tenantId === 'string') {\n tenantId = param;\n } else if (param instanceof Headers) {\n tenantId = getTenantFromHttp(param, this);\n }\n\n return `${this.api.basePath}/workspaces/${this.workspace}/databases/${this.database}/tenants/${tenantId}/auth/oidc/callback`;\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\n\nexport default class Users extends Config {\n constructor(config: Config) {\n super(config);\n }\n get tenantUsersUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }/users`;\n }\n\n createTenantUser = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const _requester = new Requester(this);\n return await _requester.post(req, this.tenantUsersUrl, init);\n };\n\n listTenantUsers = async (\n req: NileRequest<void> | Headers,\n init?: RequestInit\n ): NileResponse<RestModels.User[]> => {\n const _requester = new Requester(this);\n return await _requester.get(req, this.tenantUsersUrl, init);\n };\n\n get meUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users/me`;\n }\n\n me = async (\n req: NileRequest<void>,\n init?: RequestInit\n ): NileResponse<RestModels.User> => {\n const _requester = new Requester(this);\n return await _requester.get(req, this.meUrl, init);\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\n\nexport default class Tenants extends Config {\n constructor(config: Config) {\n super(config);\n }\n get tenantsUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants`;\n }\n get tenantUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }`;\n }\n\n createTenant = async (\n req: NileRequest<{ name: string }>,\n init?: RequestInit\n ): NileResponse<RestModels.Tenant> => {\n const _requester = new Requester(this);\n\n return _requester.post(req, this.tenantsUrl, init);\n };\n\n getTenant = async (\n req: NileRequest<void>,\n init?: RequestInit\n ): NileResponse<RestModels.Tenant> => {\n const _requester = new Requester(this);\n return _requester.get(req, this.tenantUrl, init);\n };\n}\n","import { Knex } from 'knex';\n\nimport { ServerConfig } from './types';\nimport { Config } from './utils/Config';\nimport Auth from './auth';\nimport Users from './users';\nimport Tenants from './tenants';\nimport { watchTenantId } from './utils/Event';\nimport _knex from './db';\n\ntype Api = {\n auth: Auth;\n users: Users;\n tenants: Tenants;\n};\nconst init = (config: Config): [Api, Knex] => {\n const auth = new Auth(config);\n const users = new Users(config);\n const tenants = new Tenants(config);\n const dbConfig = {\n ...config.db,\n client: 'pg',\n };\n return [\n {\n auth,\n users,\n tenants,\n },\n _knex(dbConfig),\n ];\n};\n\nclass Server {\n config: Config;\n api: Api;\n db: Knex;\n\n constructor(config?: ServerConfig) {\n this.config = new Config(config);\n const [api, knex] = init(this.config);\n this.api = api;\n this.db = knex;\n\n watchTenantId((tenantId) => {\n this.tenantId = tenantId;\n });\n }\n\n setConfig(cfg: Config) {\n // if a config has changed, re init everything\n this.api = null as unknown as Api;\n this.db = null as unknown as Knex;\n const [api, knex] = init(cfg);\n this.api = api;\n this.db = knex;\n\n this.config = cfg;\n }\n\n get tenantId(): string | undefined | null {\n return this.config.tenantId;\n }\n\n set tenantId(tenantId: string | undefined | null) {\n if (tenantId) {\n this.config.tenantId = tenantId;\n if (this.api) {\n this.api.auth.tenantId = tenantId;\n this.api.users.tenantId = tenantId;\n this.api.tenants.tenantId = tenantId;\n }\n }\n }\n\n get token(): string | undefined {\n return this.config?.api?.token;\n }\n\n set token(token: string | undefined) {\n if (token) {\n this.config.api.token = token;\n if (this.api) {\n this.api.auth.api.token = token;\n this.api.users.api.token = token;\n this.api.tenants.api.token = token;\n }\n }\n }\n}\n\nconst server = new Server();\n\nexport default function Nile(config: ServerConfig) {\n server.setConfig(new Config(config as ServerConfig));\n return server;\n}\n","import { default as Server } from './Server';\n\nmodule.exports = Server;\nexport default Server;\n"],"names":["ApiConfig","_ref","basePath","cookieKey","token","_token","_createClass","key","get","set","value","niledatabase_ur","Config","_config","database","String","_tenantId","tenantId","workspace","api","_config$api$basePath","_config$api","_config$api$cookieKey","_config$api2","_config$api3","host","db","connection","_config$db","port","_config$db2","_config$db3","Number","_config$db4","_extends","_config$db5","ResponseError","body","init","response","Response","Eventer","events","_proto","prototype","publish","eventName","callbackList","_iterator","_createForOfIteratorHelperLoose","_step","done","callback","subscribe","push","tenantEvent","updateTenantId","watchTenantId","cb","X_NILE_TENANT","getTokenFromCookie","headers","cookie","_headers$get","split","_cookies","parts","cookieParts","_cookie","slice","join","name","_iterator2","_step2","getTenantFromHttp","config","cookieTenant","_fetch","_x","_x2","_x3","_fetch2","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","opts","_response$status","url","basicHeaders","authHeader","useableUrl","res","_res","message","_res2","_res2$errors","_message","wrap","_callee$","_context","prev","next","Headers","includes","abrupt","status","replace","encodeURIComponent","fetch","e","console","log","sent","json","t0","errors","stop","Requester","_Config","_inheritsLoose","_this","call","req","request","_ref2","_callee2","_callee2$","_context2","_x4","_x5","_x6","_ref3","_callee3","_callee3$","_context3","_x7","_x8","_x9","rawRequest","_rawRequest","_callee4","method","_init","_callee4$","_context4","_x10","_x11","_x12","_x13","_request","_callee5","_headers","_callee5$","_context5","Request","JSON","stringify","undefined","text","isEmpty","isObject","Object","values","length","_x14","_x15","_x16","_x17","Auth","_requester","params","sso","providerRes","providers","_this$api","tenants","tenant","_assertThisInitialized","URL","searchParams","URLSearchParams","listProviders","clone","append","redirectURI","loginSSOUrl","post","loginUrl","error","jwt","redirectUrl","ssoLogin","_this$api2","accessToken","formData","provider","_this$tenantId","signUpUrl","_ref4","listTenantProvidersUrl","_ref5","providerName","updateProviderUrl","_ref6","_callee6","_callee6$","_context6","put","_ref7","_callee7","_body","_callee7$","_context7","providerUrl","email","param","Users","tenantUsersUrl","meUrl","Tenants","tenantsUrl","tenantUrl","auth","users","dbConfig","client","_knex","Server","knex","setConfig","cfg","_init2","_this$config","server","Nile","module","exports"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("lodash/isEmpty")),n=t(require("lodash/isObject")),r=t(require("knex"));function o(){o=function(){return e};var t,e={},n=Object.prototype,r=n.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 p(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(t){p=function(t,e,n){return t[e]=n}}function l(t,e,n,r){var o=Object.create((e&&e.prototype instanceof b?e:b).prototype),i=new L(r||[]);return a(o,"_invoke",{value:j(t,n,i)}),o}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",d="executing",v="completed",y={};function b(){}function w(){}function g(){}var m={};p(m,s,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(C([])));x&&x!==n&&r.call(x,s)&&(m=x);var I=g.prototype=b.prototype=Object.create(m);function U(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function R(t,e){function n(o,a,i,s){var u=f(t[o],t,a);if("throw"!==u.type){var c=u.arg,p=c.value;return p&&"object"==typeof p&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,i,s)}),(function(t){n("throw",t,i,s)})):e.resolve(p).then((function(t){c.value=t,i(c)}),(function(t){return n("throw",t,i,s)}))}s(u.arg)}var o;a(this,"_invoke",{value:function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}})}function j(e,n,r){var o=h;return function(a,i){if(o===d)throw new Error("Generator is already running");if(o===v){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=O(s,r);if(u){if(u===y)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=d;var c=f(e,n,r);if("normal"===c.type){if(o=r.done?v:"suspendedYield",c.arg===y)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o=v,r.method="throw",r.arg=c.arg)}}}function O(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,O(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var a=f(o,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,y;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,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function P(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 S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function C(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 o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],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=g,a(I,"constructor",{value:g,configurable:!0}),a(g,"constructor",{value:w,configurable:!0}),w.displayName=p(g,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,g):(t.__proto__=g,p(t,c,"GeneratorFunction")),t.prototype=Object.create(I),t},e.awrap=function(t){return{__await:t}},U(R.prototype),p(R.prototype,u,(function(){return this})),e.AsyncIterator=R,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new R(l(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},U(I),p(I,c,"Generator"),p(I,s,(function(){return this})),p(I,"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=C,L.prototype={constructor:L,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(S),!e)for(var n in this)"t"===n.charAt(0)&&r.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 o(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 o("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;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,y):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),y},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),S(n),y}},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;S(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:C(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function a(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 i(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){a(i,r,o,s,u,"next",t)}function u(t){a(i,r,o,s,u,"throw",t)}s(void 0)}))}}function s(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,"symbol"==typeof(o=function(t,e){if("object"!=typeof t||null===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)}(r.key))?o:String(o),r)}var o}function u(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function c(){return(c=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}).apply(this,arguments)}function p(t,e){var n,r;t.prototype=Object.create(e.prototype),t.prototype.constructor=t,n=t,r=e,(Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(n,r)}function l(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function f(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 h(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 f(t,void 0);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)?f(t,void 0):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.")}var d=function(){function t(t){var e=t.cookieKey,n=t.token;this.basePath=t.basePath,this.cookieKey=e,this._token=n}return u(t,[{key:"token",get:function(){return this._token},set:function(t){this._token=t}}]),t}(),v=function(){function t(t){var e,n,r,o,a,i,s,u,p,l;this.database=String(null==t?void 0:t.database),this._tenantId=null==t?void 0:t.tenantId,this.workspace=String(null==t?void 0:t.workspace),this.api=new d({basePath:null!=(e=null==t||null==(n=t.api)?void 0:n.basePath)?e:"https://dev.khnum.thenile.dev",cookieKey:null!=(r=null==t||null==(o=t.api)?void 0:o.cookieKey)?r:"token",token:null==t||null==(a=t.api)?void 0:a.token});var f=c({host:null!=t&&t.db&&t.db.connection&&"string"!=typeof(null==(i=t.db)?void 0:i.connection)&&"host"in t.db.connection?String(t.db.connection.host):"dev.khnum.thenile.dev",port:null!=t&&null!=(s=t.db)&&s.connection&&"string"!=typeof(null==(u=t.db)?void 0:u.connection)&&"port"in t.db.connection?Number(null==(p=t.db)||null==(p=p.connection)?void 0:p.port):5432,database:null==t?void 0:t.database},"object"==typeof(null==t||null==(l=t.db)?void 0:l.connection)?t.db.connection:{});this.db=c({},null==t?void 0:t.db,{connection:f})}return u(t,[{key:"tenantId",get:function(){return this._tenantId},set:function(t){this._tenantId=t}}]),t}(),y=function(t,e){this.response=new Response(t,e)},b=new(function(){function t(){this.events={}}var e=t.prototype;return e.publish=function(t,e){var n=this.events[t];if(n)for(var r,o=h(n);!(r=o()).done;)(0,r.value)(e)},e.subscribe=function(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)},t}()),w=function(t){b.publish("tenantId",t)};function g(t,e){var n,r=null==(n=t.get("cookie"))?void 0:n.split("; "),o={};if(r)for(var a,i=h(r);!(a=i()).done;){var s=a.value.split("="),u=s.slice(1).join("=");o[s[0]]=u}if(r)for(var c,p=h(r);!(c=p()).done;){var l=c.value.split("="),f=l.slice(1).join("=");o[l[0]]=f}return e?o[e]:null}function m(t,e){var n,r=g(t,"tenantId");return null!=(n=null!=r?r:null==t?void 0:t.get("x-nile-tenantId"))?n:e.tenantId}function k(t,e,n){return x.apply(this,arguments)}function x(){return(x=i(o().mark((function t(e,n,r){var a,i,s,u,p,l,f,h,d,v,b,k,x;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=""+(null==(a=e.api)?void 0:a.basePath)+n,p=null==(i=e.api)?void 0:i.cookieKey,l=new Headers(null==r?void 0:r.headers),(f=new Headers).set("content-type","application/json; charset=utf-8"),l.get("Authorization")||(h=g(l,p),f.set("Authorization",h?"Bearer "+h:"Bearer "+(null==(d=e.api)?void 0:d.token))),v=m(l,e),w(v),!u.includes("{tenantId}")||v){t.next=11;break}return t.abrupt("return",new y("tenantId is not set for request",{status:400}));case 11:return b=u.replace("{tenantId}",encodeURIComponent(String(v))),t.next=14,fetch(b,c({},r,{headers:f})).catch((function(t){console.log(t)}));case 14:if(!((k=t.sent)&&k.status>=200&&k.status<300)){t.next=17;break}return t.abrupt("return",k);case 17:return t.prev=17,t.next=20,null==k?void 0:k.json();case 20:x=t.sent,t.next=25;break;case 23:t.prev=23,t.t0=t.catch(17);case 25:if(!x||!("message"in x)){t.next=28;break}return t.abrupt("return",new y(x.message,{status:400}));case 28:if(!x||!("errors"in x)){t.next=31;break}return t.abrupt("return",new y(x.errors[0],{status:400}));case 31:return t.abrupt("return",new y(null,{status:null!=(s=null==k?void 0:k.status)?s:500}));case 32:case"end":return t.stop()}}),t,null,[[17,23]])})))).apply(this,arguments)}var I=function(t){function r(e){var n;return(n=t.call(this,e)||this).post=function(){var t=i(o().mark((function t(e,r,a){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.request("POST",r,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)}}(),n.get=function(){var t=i(o().mark((function t(e,r,a){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.request("GET",r,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)}}(),n.put=function(){var t=i(o().mark((function t(e,r,a){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.request("PUT",r,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)}}(),n}p(r,t);var a=r.prototype;return a.rawRequest=function(){var t=i(o().mark((function t(e,n,r,a){var i,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c({},r,{body:a,method:e}),t.next=3,k(this,n,i);case 3:if(!((s=t.sent)instanceof y)){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)}}(),a.request=function(){var t=i(o().mark((function t(r,a,i,s){var u,p,l,f,h,d,v,y;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=new Headers(s?null==s?void 0:s.headers:{}),i instanceof Headers?(p=i.get("x-nile-tenantId"),l=i.get("cookie"),p&&u.set("x-nile-tenantId",p),l&&u.set("cookie",l)):i instanceof Request&&(f=new Headers(null==i?void 0:i.headers),h=f.get("x-nile-tenantId"),d=f.get("cookie"),h&&u.set("x-nile-tenantId",h),d&&u.set("cookie",d)),v=JSON.stringify(i),"GET"!==r){t.next=7;break}v=void 0,t.next=14;break;case 7:if(!(i instanceof Request)){t.next=13;break}return t.next=10,new Response(i.body).text();case 10:v=t.sent,t.next=14;break;case 13:(i instanceof Headers||e(i)||n(i)&&0===Object.values(i).length)&&(v=void 0);case 14:return y=c({},s,{headers:u}),t.next=17,this.rawRequest(r,a,y,v);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)}}(),r}(v),U=function(t){function e(e){var n;return(n=t.call(this,e)||this).login=function(){var t=i(o().mark((function t(e,r){var a,i,s,u,c,p,f,h,d,v,b;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new Headers({"content-type":"application/json"}),i=new I(l(n)),"true"!==(e instanceof Request?new URL(e.url).searchParams:new URLSearchParams).get("sso")){t.next=18;break}return t.next=7,n.listProviders(e.clone(),r);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("x-nile-tenantId",u[0].tenantId),a.append("set-cookie","tenantId="+u[0].tenantId+"; path=/; httponly;"),t.abrupt("return",new Response(JSON.stringify({redirectURI:""+n.api.basePath+n.loginSSOUrl("okta")}),{status:200}));case 18:return t.next=20,i.post(e,n.loginUrl,r).catch((function(t){return console.error(t),t}));case 20:if(!((c=t.sent)instanceof y)){t.next=23;break}return t.abrupt("return",c.response);case 23:if(!(c&&c.status>=200&&c.status<300)){t.next=35;break}return t.next=26,c.json();case 26:return h=(null==(p=n.api)?void 0:p.cookieKey)+"="+(f=t.sent).token.jwt+"; path=/; samesite=lax; httponly;",a.append("set-cookie",h),v=null==(d=f.tenants)?void 0:d.values(),b=null==v?void 0:v.next().value,a.set("x-nile-tenantId",b),a.append("set-cookie","tenantId="+b+"; path=/; httponly;"),t.abrupt("return",new Response(JSON.stringify(f),{status:200,headers:a}));case 35:return t.next=37,c.text();case 37:return t.abrupt("return",new Response(t.sent,{status:c.status}));case 39:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.loginSSO=function(t){return function(){var e=i(o().mark((function e(r){var a,i,s,u,c,p;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new Headers,e.next=3,r.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,p=(null==(a=n.api)?void 0:a.cookieKey)+"="+u+"; path=/; samesite=lax; httponly;",i.append("set-cookie",p),i.set("x-nile-tenantId",c),i.append("set-cookie","tenantId="+c+"; path=/; httponly;"),i.set("Location",t),e.abrupt("return",new Response(null,{headers:i,status:303}));case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},n.loginSSOUrl=function(t){var e;return"/workspaces/"+encodeURIComponent(n.workspace)+"/databases/"+encodeURIComponent(n.database)+"/tenants/"+(null!=(e=n.tenantId)?e:"{tenantId}")+"/auth/oidc/providers/"+t+"/login"},n.signUp=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.post(e,n.signUpUrl,r));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.listTenantProviders=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.get(e,n.listTenantProvidersUrl,r));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.createProvider=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.post(e,n.updateProviderUrl("okta"),r));case 3:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.updateProvider=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.put(e,n.updateProviderUrl("okta"),r));case 3:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.listProviders=function(){var t=i(o().mark((function t(e,r){var a,i,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=new I(l(n)),!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,n.providerUrl(null==(a=s)?void 0:a.email),r));case 6:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.getSSOCallbackUrl=function(t){var e;return"string"==typeof e?e=t:t instanceof Headers&&(e=m(t,l(n))),n.api.basePath+"/workspaces/"+n.workspace+"/databases/"+n.database+"/tenants/"+e+"/auth/oidc/callback"},n}p(e,t);var n=e.prototype;return n.updateProviderUrl=function(t){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants/"+(this.tenantId?encodeURIComponent(this.tenantId):"{tenantId}")+"/auth/oidc/providers/"+encodeURIComponent(t)},n.providerUrl=function(t){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants/auth/oidc/providers"+(t?"?email="+encodeURIComponent(t):"")},u(e,[{key:"loginUrl",get:function(){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/users/login"}},{key:"signUpUrl",get:function(){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/users"}},{key:"listTenantProvidersUrl",get:function(){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants/"+(this.tenantId?encodeURIComponent(this.tenantId):"{tenantId}")+"/auth/oidc/providers"}}]),e}(v),R=function(t){function e(e){var n;return(n=t.call(this,e)||this).createTenantUser=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.next=3,a.post(e,n.tenantUsersUrl,r);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)}}(),n.listTenantUsers=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.next=3,a.get(e,n.tenantUsersUrl,r);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)}}(),n.me=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.next=3,a.get(e,n.meUrl,r);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)}}(),n}return p(e,t),u(e,[{key:"tenantUsersUrl",get:function(){var t;return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants/"+(null!=(t=this.tenantId)?t:"{tenantId}")+"/users"}},{key:"meUrl",get:function(){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/users/me"}}]),e}(v),j=function(t){function e(e){var n;return(n=t.call(this,e)||this).createTenant=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.post(e,n.tenantsUrl,r));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n.getTenant=function(){var t=i(o().mark((function t(e,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new I(l(n)),t.abrupt("return",a.get(e,n.tenantUrl,r));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),n}return p(e,t),u(e,[{key:"tenantsUrl",get:function(){return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants"}},{key:"tenantUrl",get:function(){var t;return"/workspaces/"+encodeURIComponent(this.workspace)+"/databases/"+encodeURIComponent(this.database)+"/tenants/"+(null!=(t=this.tenantId)?t:"{tenantId}")}}]),e}(v),O=function(t){var e=new U(t),n=new R(t),o=new j(t),a=c({},t.db,{client:"pg"});return[{auth:e,users:n,tenants:o},r(a)]},P=new(function(){function t(t){var e=this;this.config=new v(t);var n=O(this.config),r=n[1];this.api=n[0],this.db=r,b.subscribe("tenantId",(function(t){e.tenantId=t}))}return t.prototype.setConfig=function(t){this.api=null,this.db=null;var e=O(t),n=e[1];this.api=e[0],this.db=n,this.config=t},u(t,[{key:"tenantId",get:function(){return this.config.tenantId},set:function(t){t&&(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))}}]),t}());function S(t){return P.setConfig(new v(t)),P}module.exports=S,exports.default=S;
|
|
2
|
+
//# sourceMappingURL=server.cjs.production.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs.production.min.js","sources":["../src/utils/Config.ts","../src/utils/ResponseError.ts","../src/utils/Event/index.ts","../src/utils/fetch.ts","../src/utils/Requester/index.ts","../src/auth/index.ts","../src/users/index.ts","../src/tenants/index.ts","../src/Server.ts","../src/index.ts"],"sourcesContent":["import { KnexConfig, PgConnectionConfig, ServerConfig } from '../types';\n\nclass ApiConfig {\n public cookieKey?: string;\n public basePath?: string;\n private _token?: string;\n constructor({\n basePath,\n cookieKey,\n token,\n }: {\n basePath: string;\n cookieKey: string;\n token: string | undefined;\n }) {\n this.basePath = basePath;\n this.cookieKey = cookieKey;\n this._token = token;\n }\n\n public get token(): string | undefined {\n return this._token;\n }\n\n public set token(value: string | undefined) {\n this._token = value;\n }\n}\n\nconst niledatabase_ur = 'dev.khnum.thenile.dev';\n\nexport class Config {\n database: string;\n workspace: string;\n\n db: KnexConfig;\n\n api: ApiConfig;\n\n private _tenantId?: string | undefined;\n\n public get tenantId(): string | undefined {\n return this._tenantId;\n }\n\n public set tenantId(value: string | undefined) {\n this._tenantId = value;\n }\n\n constructor(_config?: ServerConfig) {\n this.database = String(_config?.database);\n this._tenantId = _config?.tenantId;\n this.workspace = String(_config?.workspace);\n this.api = new ApiConfig({\n basePath: _config?.api?.basePath ?? `https://${niledatabase_ur}`,\n cookieKey: _config?.api?.cookieKey ?? 'token',\n token: _config?.api?.token,\n });\n\n const host: string =\n _config?.db &&\n _config.db.connection &&\n typeof _config.db?.connection !== 'string' &&\n 'host' in _config.db.connection\n ? String(_config.db.connection.host)\n : niledatabase_ur;\n\n const port: number =\n _config?.db?.connection &&\n typeof _config.db?.connection !== 'string' &&\n 'port' in _config.db.connection\n ? Number(_config.db?.connection?.port)\n : 5432;\n\n const connection = {\n host,\n port,\n database: _config?.database,\n ...(typeof _config?.db?.connection === 'object'\n ? _config.db.connection\n : {}),\n } as PgConnectionConfig;\n\n this.db = {\n ..._config?.db,\n connection,\n };\n }\n}\n","export class ResponseError {\n response: Response;\n constructor(body?: BodyInit | null, init?: ResponseInit) {\n this.response = new Response(body, init);\n }\n}\n","type BusValues = undefined | null | string;\ntype EventFn = (params: BusValues) => void;\nclass Eventer {\n events: { [key: string]: EventFn[] };\n constructor() {\n this.events = {};\n }\n publish(eventName: string, value: BusValues) {\n // Get all the callback functions of the current event\n const callbackList = this.events[eventName];\n\n // execute each callback function\n if (callbackList) {\n for (const callback of callbackList) {\n callback(value);\n }\n }\n }\n // Subscribe to events\n subscribe(eventName: string, callback: EventFn) {\n // initialize this event\n if (!this.events[eventName]) {\n this.events[eventName] = [];\n }\n\n // store the callback function of the subscriber\n this.events[eventName].push(callback);\n }\n}\n\n// tenantId manager\nconst tenantEvent = new Eventer();\nexport const updateTenantId = (tenantId: BusValues) => {\n tenantEvent.publish('tenantId', tenantId);\n};\n\nexport const watchTenantId = (cb: EventFn) =>\n tenantEvent.subscribe('tenantId', cb);\n","import { ResponseError } from './ResponseError';\nimport { Config } from './Config';\nimport { NileRequest } from './Requester';\nimport { updateTenantId } from './Event';\n\nexport const X_NILE_TENANT = 'x-nile-tenantId';\nexport function handleTenantId(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: NileRequest<any>,\n config: Config\n): ResponseError | void {\n // already set, no need to try and figure it out\n if (config.tenantId) {\n return;\n }\n return new ResponseError('tenant id needs to be set', { status: 400 });\n}\n\nfunction getTokenFromCookie(headers: Headers, cookieKey: void | string) {\n const cookie = headers.get('cookie')?.split('; ');\n const _cookies: Record<string, string> = {};\n if (cookie) {\n for (const parts of cookie) {\n const cookieParts = parts.split('=');\n const _cookie = cookieParts.slice(1).join('=');\n const name = cookieParts[0];\n _cookies[name] = _cookie;\n }\n }\n\n if (cookie) {\n for (const parts of cookie) {\n const cookieParts = parts.split('=');\n const _cookie = cookieParts.slice(1).join('=');\n const name = cookieParts[0];\n _cookies[name] = _cookie;\n }\n }\n if (cookieKey) {\n return _cookies[cookieKey];\n }\n return null;\n}\nexport function getTenantFromHttp(headers: Headers, config: Config) {\n const cookieTenant = getTokenFromCookie(headers, 'tenantId');\n return cookieTenant ?? headers?.get(X_NILE_TENANT) ?? config.tenantId;\n}\n\nexport async function _fetch(\n config: Config,\n path: string,\n opts?: RequestInit\n): Promise<Response | ResponseError> {\n const url = `${config.api?.basePath}${path}`;\n const cookieKey = config.api?.cookieKey;\n const headers = new Headers(opts?.headers);\n const basicHeaders = new Headers();\n basicHeaders.set('content-type', 'application/json; charset=utf-8');\n const authHeader = headers.get('Authorization');\n if (!authHeader) {\n const token = getTokenFromCookie(headers, cookieKey);\n if (token) {\n basicHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n basicHeaders.set('Authorization', `Bearer ${config.api?.token}`);\n }\n }\n\n const tenantId = getTenantFromHttp(headers, config);\n updateTenantId(tenantId);\n\n if (url.includes('{tenantId}') && !tenantId) {\n return new ResponseError('tenantId is not set for request', {\n status: 400,\n });\n }\n const useableUrl = url.replace(\n '{tenantId}',\n encodeURIComponent(String(tenantId))\n );\n const response = await fetch(useableUrl, {\n ...opts,\n headers: basicHeaders,\n }).catch((e) => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n\n if (response && response.status >= 200 && response.status < 300) {\n return response;\n }\n\n let res;\n try {\n res = await (response as Response)?.json();\n } catch (e) {\n /* do the default */\n }\n if (res && 'message' in res) {\n const { message } = res;\n return new ResponseError(message, { status: 400 });\n }\n if (res && 'errors' in res) {\n const {\n errors: [message],\n } = res;\n return new ResponseError(message, { status: 400 });\n }\n\n return new ResponseError(null, {\n status: (response as Response)?.status ?? 500,\n });\n}\n","import isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\n\nimport { Config } from '../Config';\nimport { ResponseError } from '../ResponseError';\nimport { X_NILE_TENANT, _fetch } from '../fetch';\n\nexport { NileResponse, NileRequest } from './types';\n\ntype Methods = 'POST' | 'GET' | 'PUT';\nexport default class Requester<T> extends Config {\n constructor(config: Config) {\n super(config);\n }\n\n async rawRequest(\n method: Methods,\n url: string,\n init: RequestInit,\n body?: string\n ): Promise<Response> {\n const _init = {\n ...init,\n body,\n method,\n };\n\n const res = await _fetch(this, url, _init);\n\n if (res instanceof ResponseError) {\n return res.response;\n }\n\n return res;\n }\n\n /**\n * three optios here\n * 1) pass in headers for a server side request\n * 2) pass in the payload that matches the api\n * 3) pass in the request object sent by a browser\n * @param method\n * @param url\n * @param req\n * @param init\n * @returns\n */\n protected async request(\n method: Methods,\n url: string,\n req: T | Headers,\n init?: RequestInit\n ): Promise<Response> {\n // set the headers\n const headers = new Headers(init ? init?.headers : {});\n if (req instanceof Headers) {\n const tenantId = req.get(X_NILE_TENANT);\n const cookie = req.get('cookie');\n if (tenantId) {\n headers.set(X_NILE_TENANT, tenantId);\n }\n if (cookie) {\n headers.set('cookie', cookie);\n }\n } else if (req instanceof Request) {\n // pass back the X_NILE_TENANT\n const _headers = new Headers(req?.headers);\n const tenantId = _headers.get(X_NILE_TENANT);\n const cookie = _headers.get('cookie');\n if (tenantId) {\n headers.set(X_NILE_TENANT, tenantId);\n }\n if (cookie) {\n headers.set('cookie', cookie);\n }\n }\n // default the body - may be the actual payload for the API\n let body: string | undefined = JSON.stringify(req);\n\n // comes from next/some server\n if (method === 'GET') {\n body = undefined;\n } else if (req instanceof Request) {\n body = await new Response(req.body).text();\n } else if (\n // is just headers for a GET request\n req instanceof Headers ||\n isEmpty(req) ||\n (isObject(req) && Object.values(req).length === 0)\n ) {\n body = undefined;\n }\n\n const _init = {\n ...init,\n headers,\n };\n\n return await this.rawRequest(method, url, _init, body);\n }\n\n post = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('POST', url, req, init);\n };\n\n get = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('GET', url, req, init);\n };\n\n put = async (\n req: T | Headers,\n url: string,\n init?: RequestInit\n ): Promise<Response> => {\n return await this.request('PUT', url, req, init);\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\nimport { ResponseError } from '../utils/ResponseError';\nimport { X_NILE_TENANT, getTenantFromHttp } from '../utils/fetch';\n\nexport default class Auth extends Config {\n constructor(config: Config) {\n super(config);\n }\n get loginUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users/login`;\n }\n\n login = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const headers = new Headers({ 'content-type': 'application/json' });\n const _requester = new Requester(this);\n\n const params =\n req instanceof Request\n ? new URL(req.url).searchParams\n : new URLSearchParams();\n\n const sso = params.get('sso');\n\n if (sso === 'true') {\n const providerRes = await this.listProviders(\n (req as Request).clone(),\n init\n );\n // if you have a provider, log them in\n if (\n providerRes &&\n providerRes.status >= 200 &&\n providerRes.status < 300\n ) {\n const providers = await new Response(providerRes.body).json();\n if (providers.length > 0) {\n if (providers.length > 1) {\n return new Response(JSON.stringify(providers), { status: 200 });\n // a user has to make a choice\n }\n\n // is there a way to do this? probably not.\n headers.set(X_NILE_TENANT, providers[0].tenantId);\n headers.append(\n 'set-cookie',\n `tenantId=${providers[0].tenantId}; path=/; httponly;`\n );\n // const ssoResp = await this.loginSSO(req);\n return new Response(\n JSON.stringify({\n redirectURI: `${this.api.basePath}${this.loginSSOUrl('okta')}`,\n }),\n { status: 200 }\n );\n // make it a client side redirect, because of the headers\n // if there is no provider, require a password.\n }\n }\n }\n\n const res = await _requester.post(req, this.loginUrl, init).catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n return e;\n });\n if (res instanceof ResponseError) {\n return res.response;\n }\n if (res && res.status >= 200 && res.status < 300) {\n const token: RestModels.LoginUserResponse = await res.json();\n const cookie = `${this.api?.cookieKey}=${token.token.jwt}; path=/; samesite=lax; httponly;`;\n headers.append('set-cookie', cookie);\n const { tenants } = token;\n const tenant = tenants?.values();\n const tenantId = tenant?.next().value;\n headers.set(X_NILE_TENANT, tenantId);\n headers.append('set-cookie', `tenantId=${tenantId}; path=/; httponly;`);\n return new Response(JSON.stringify(token), { status: 200, headers });\n }\n const text = await res.text();\n return new Response(text, { status: res.status });\n };\n\n loginSSO = (redirectUrl: string) => {\n const ssoLogin = async (\n req: NileRequest<unknown>\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const headers = new Headers();\n const body = await (req as Request).formData();\n const accessToken = (await body.get('access_token')) as string;\n const tenantId = (await body.get('tenantId')) as string;\n const cookie = `${this.api?.cookieKey}=${accessToken}; path=/; samesite=lax; httponly;`;\n headers.append('set-cookie', cookie);\n headers.set(X_NILE_TENANT, tenantId);\n headers.append('set-cookie', `tenantId=${tenantId}; path=/; httponly;`);\n headers.set('Location', redirectUrl);\n return new Response(null, {\n headers,\n status: 303,\n });\n };\n return ssoLogin;\n };\n\n loginSSOUrl = (provider: string) => {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }/auth/oidc/providers/${provider}/login`;\n };\n\n get signUpUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users`;\n }\n\n signUp = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const _requester = new Requester(this);\n return _requester.post(req, this.signUpUrl, init);\n };\n\n updateProviderUrl(providerName: string) {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ? encodeURIComponent(this.tenantId) : '{tenantId}'\n }/auth/oidc/providers/${encodeURIComponent(providerName)}`;\n }\n\n get listTenantProvidersUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ? encodeURIComponent(this.tenantId) : '{tenantId}'\n }/auth/oidc/providers`;\n }\n\n listTenantProviders = async (\n req: NileRequest<void | Headers>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const _requester = new Requester(this);\n return _requester.get(req, this.listTenantProvidersUrl, init);\n };\n\n createProvider = async (\n req: NileRequest<RestModels.RegisterTenantSSORequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration> => {\n const _requester = new Requester(this);\n const providerName = 'okta';\n return _requester.post(req, this.updateProviderUrl(providerName), init);\n };\n\n updateProvider = async (\n req: NileRequest<RestModels.RegisterTenantSSORequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration> => {\n const _requester = new Requester(this);\n const providerName = 'okta';\n return _requester.put(req, this.updateProviderUrl(providerName), init);\n };\n\n providerUrl(email?: undefined | string) {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(\n this.database\n )}/tenants/auth/oidc/providers${\n email ? `?email=${encodeURIComponent(email)}` : ''\n }`;\n }\n\n listProviders = async (\n req: NileRequest<void | RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.TenantSSORegistration[]> => {\n const _requester = new Requester(this);\n let body: { email: string } | undefined;\n // this is a get. Get the email from the response body so the request is filtered.\n if (req && 'body' in req) {\n body = await new Response(req.body as BodyInit).json();\n }\n return _requester.get(req, this.providerUrl(body?.email), init);\n };\n\n getSSOCallbackUrl = (param: Headers | string) => {\n let tenantId;\n if (typeof tenantId === 'string') {\n tenantId = param;\n } else if (param instanceof Headers) {\n tenantId = getTenantFromHttp(param, this);\n }\n\n return `${this.api.basePath}/workspaces/${this.workspace}/databases/${this.database}/tenants/${tenantId}/auth/oidc/callback`;\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\n\nexport default class Users extends Config {\n constructor(config: Config) {\n super(config);\n }\n get tenantUsersUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }/users`;\n }\n\n createTenantUser = async (\n req: NileRequest<RestModels.CreateBasicUserRequest>,\n init?: RequestInit\n ): NileResponse<RestModels.LoginUserResponse> => {\n const _requester = new Requester(this);\n return await _requester.post(req, this.tenantUsersUrl, init);\n };\n\n listTenantUsers = async (\n req: NileRequest<void> | Headers,\n init?: RequestInit\n ): NileResponse<RestModels.User[]> => {\n const _requester = new Requester(this);\n return await _requester.get(req, this.tenantUsersUrl, init);\n };\n\n get meUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/users/me`;\n }\n\n me = async (\n req: NileRequest<void>,\n init?: RequestInit\n ): NileResponse<RestModels.User> => {\n const _requester = new Requester(this);\n return await _requester.get(req, this.meUrl, init);\n };\n}\n","import { RestModels } from '@niledatabase/js';\n\nimport { Config } from '../utils/Config';\nimport Requester, { NileRequest, NileResponse } from '../utils/Requester';\n\nexport default class Tenants extends Config {\n constructor(config: Config) {\n super(config);\n }\n get tenantsUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants`;\n }\n get tenantUrl() {\n return `/workspaces/${encodeURIComponent(\n this.workspace\n )}/databases/${encodeURIComponent(this.database)}/tenants/${\n this.tenantId ?? '{tenantId}'\n }`;\n }\n\n createTenant = async (\n req: NileRequest<{ name: string }>,\n init?: RequestInit\n ): NileResponse<RestModels.Tenant> => {\n const _requester = new Requester(this);\n\n return _requester.post(req, this.tenantsUrl, init);\n };\n\n getTenant = async (\n req: NileRequest<void>,\n init?: RequestInit\n ): NileResponse<RestModels.Tenant> => {\n const _requester = new Requester(this);\n return _requester.get(req, this.tenantUrl, init);\n };\n}\n","import { Knex } from 'knex';\n\nimport { ServerConfig } from './types';\nimport { Config } from './utils/Config';\nimport Auth from './auth';\nimport Users from './users';\nimport Tenants from './tenants';\nimport { watchTenantId } from './utils/Event';\nimport _knex from './db';\n\ntype Api = {\n auth: Auth;\n users: Users;\n tenants: Tenants;\n};\nconst init = (config: Config): [Api, Knex] => {\n const auth = new Auth(config);\n const users = new Users(config);\n const tenants = new Tenants(config);\n const dbConfig = {\n ...config.db,\n client: 'pg',\n };\n return [\n {\n auth,\n users,\n tenants,\n },\n _knex(dbConfig),\n ];\n};\n\nclass Server {\n config: Config;\n api: Api;\n db: Knex;\n\n constructor(config?: ServerConfig) {\n this.config = new Config(config);\n const [api, knex] = init(this.config);\n this.api = api;\n this.db = knex;\n\n watchTenantId((tenantId) => {\n this.tenantId = tenantId;\n });\n }\n\n setConfig(cfg: Config) {\n // if a config has changed, re init everything\n this.api = null as unknown as Api;\n this.db = null as unknown as Knex;\n const [api, knex] = init(cfg);\n this.api = api;\n this.db = knex;\n\n this.config = cfg;\n }\n\n get tenantId(): string | undefined | null {\n return this.config.tenantId;\n }\n\n set tenantId(tenantId: string | undefined | null) {\n if (tenantId) {\n this.config.tenantId = tenantId;\n if (this.api) {\n this.api.auth.tenantId = tenantId;\n this.api.users.tenantId = tenantId;\n this.api.tenants.tenantId = tenantId;\n }\n }\n }\n\n get token(): string | undefined {\n return this.config?.api?.token;\n }\n\n set token(token: string | undefined) {\n if (token) {\n this.config.api.token = token;\n if (this.api) {\n this.api.auth.api.token = token;\n this.api.users.api.token = token;\n this.api.tenants.api.token = token;\n }\n }\n }\n}\n\nconst server = new Server();\n\nexport default function Nile(config: ServerConfig) {\n server.setConfig(new Config(config as ServerConfig));\n return server;\n}\n","import { default as Server } from './Server';\n\nmodule.exports = Server;\nexport default Server;\n"],"names":["ApiConfig","_ref","cookieKey","token","this","basePath","_token","_createClass","key","get","set","value","Config","_config","database","String","_tenantId","tenantId","workspace","api","_config$api$basePath","_config$api","_config$api$cookieKey","_config$api2","_config$api3","connection","_extends","host","db","_config$db","port","_config$db2","_config$db3","Number","_config$db4","_config$db5","ResponseError","body","init","response","Response","tenantEvent","Eventer","events","_proto","prototype","publish","eventName","callbackList","_step","_iterator","_createForOfIteratorHelperLoose","done","callback","subscribe","push","updateTenantId","getTokenFromCookie","headers","cookie","_headers$get","split","_cookies","cookieParts","_cookie","slice","join","_step2","_iterator2","getTenantFromHttp","config","cookieTenant","_fetch","_x","_x2","_x3","_fetch2","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","opts","_response$status","url","basicHeaders","useableUrl","res","wrap","_context","prev","next","Headers","includes","abrupt","status","replace","encodeURIComponent","fetch","e","console","log","sent","json","t0","message","errors","stop","Requester","_Config","_this","call","req","request","_ref2","_callee2","_context2","_x4","_x5","_x6","_ref3","_callee3","_context3","_x7","_x8","_x9","_inheritsLoose","rawRequest","_rawRequest","_callee4","method","_init","_context4","_x10","_x11","_x12","_x13","_request","_callee5","_headers","_context5","Request","JSON","stringify","undefined","text","isEmpty","isObject","Object","values","length","_x14","_x15","_x16","_x17","Auth","_requester","providerRes","providers","_this$api","tenants","tenant","content-type","_assertThisInitialized","URL","searchParams","URLSearchParams","listProviders","clone","append","redirectURI","loginSSOUrl","post","loginUrl","error","jwt","redirectUrl","_this$api2","accessToken","formData","provider","_this$tenantId","signUpUrl","_ref4","listTenantProvidersUrl","_ref5","updateProviderUrl","_ref6","_callee6","_context6","put","_ref7","_callee7","_body","_context7","providerUrl","email","param","providerName","Users","tenantUsersUrl","meUrl","Tenants","tenantsUrl","tenantUrl","auth","users","dbConfig","client","_knex","server","Server","knex","setConfig","cfg","_init2","_this$config","Nile","module","exports"],"mappings":"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"}
|