@niledatabase/server 3.0.0-alpha.52 → 3.0.0-alpha.53

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":"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","file":"express.js","sourcesContent":["/* eslint-disable no-console */\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[33m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${yellow}[niledb][WARN]${reset}${params.join('')} ${message}`,\n JSON.stringify(meta, null, 2)\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${red}[niledb][ERROR]${reset}${params.join('')} ${message}`,\n meta\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{(.*)\\}/g, ':$1');\n}\n\nfunction expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const response = (await (nile.api.handlers as any)[method](\n proxyRequest\n )) as Response;\n\n let body;\n\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":"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","file":"express.js","sourcesContent":["/* eslint-disable no-console */\nimport { Routes } from '../api/types';\nimport urlMatches from '../api/utils/routes/urlMatches';\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[33m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${yellow}[niledb][WARN]${reset}${params.join('')} ${message}`,\n JSON.stringify(meta, null, 2)\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${red}[niledb][ERROR]${reset}${params.join('')} ${message}`,\n meta\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n\nexport function matchesLog(configRoutes: Routes, request: Request): boolean {\n return urlMatches(request.url, configRoutes.LOG);\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{(.*)\\}/g, ':$1');\n}\n\nfunction expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const response = (await (nile.api.handlers as any)[method](\n proxyRequest\n )) as Response;\n\n let body;\n\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":"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","file":"express.mjs","sourcesContent":["/* eslint-disable no-console */\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[33m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${yellow}[niledb][WARN]${reset}${params.join('')} ${message}`,\n JSON.stringify(meta, null, 2)\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${red}[niledb][ERROR]${reset}${params.join('')} ${message}`,\n meta\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{(.*)\\}/g, ':$1');\n}\n\nfunction expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const response = (await (nile.api.handlers as any)[method](\n proxyRequest\n )) as Response;\n\n let body;\n\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":";AAOA,IAAM,GAAM,GAAA,UAAA;AACZ,IAAM,MAAS,GAAA,UAAA;AACf,IAAM,KAAQ,GAAA,SAAA;AAEd,IAAM,UAAA,GAAa,CAAC,MAAA,EAAA,GAAgC,MAAuB,MAAA;AAAA,EACzE,IAAA,CAAK,SAA2B,IAAgC,EAAA;AAC9D,IAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,kBAAkB,MAAO,CAAA,IAAA,CAAK,EAAE,CAAC,IAAI,OAAO,CAAA,CAAA;AAAA,QAC5C,IAAO,GAAA;AAAA,EAAK,KAAK,SAAU,CAAA,IAAA,EAAM,IAAM,EAAA,CAAC,CAAC,CAAK,CAAA,GAAA;AAAA,OAChD;AAAA;AACF,GACF;AAAA,EACA,KAAA,CAAM,SAA2B,IAAgC,EAAA;AAC/D,IAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,MAAQ,OAAA,CAAA,KAAA;AAAA,QACN,kBAAkB,MAAO,CAAA,IAAA,CAAK,EAAE,CAAC,IAAI,OAAO,CAAA,CAAA;AAAA,QAC5C,IAAO,GAAA;AAAA,EAAK,KAAK,SAAU,CAAA,IAAA,EAAM,IAAM,EAAA,CAAC,CAAC,CAAK,CAAA,GAAA;AAAA,OAChD;AAAA;AACF,GACF;AAAA,EACA,IAAA,CAAK,SAA2B,IAAgC,EAAA;AAC9D,IAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,CAAA,EAAG,MAAM,CAAA,cAAA,EAAiB,KAAK,CAAA,EAAG,OAAO,IAAK,CAAA,EAAE,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA;AAAA,QAC5D,IAAK,CAAA,SAAA,CAAU,IAAM,EAAA,IAAA,EAAM,CAAC;AAAA,OAC9B;AAAA;AACF,GACF;AAAA,EACA,KAAA,CAAM,SAA2B,IAAgC,EAAA;AAC/D,IAAQ,OAAA,CAAA,KAAA;AAAA,MACN,CAAA,EAAG,GAAG,CAAA,eAAA,EAAkB,KAAK,CAAA,EAAG,OAAO,IAAK,CAAA,EAAE,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA;AAAA,MAC1D;AAAA,KACF;AAAA;AAEJ,CAAA,CAAA;AAEe,SAAR,MAAA,CACL,WACG,MACH,EAAA;AACA,EAAM,MAAA,IAAA,GAAO,UAAW,CAAA,MAAA,EAAQ,MAAM,CAAA;AACtC,EAAA,MAAM,IAAO,GAAA,MAAA,EAAQ,MAAQ,EAAA,IAAA,IAAQ,IAAK,CAAA,IAAA;AAC1C,EAAA,MAAM,KAAQ,GAAA,MAAA,EAAQ,MAAQ,EAAA,KAAA,IAAS,IAAK,CAAA,KAAA;AAC5C,EAAA,MAAM,IAAO,GAAA,MAAA,EAAQ,MAAQ,EAAA,IAAA,IAAQ,IAAK,CAAA,IAAA;AAC1C,EAAA,MAAM,KAAQ,GAAA,MAAA,EAAQ,MAAQ,EAAA,KAAA,IAAS,IAAK,CAAA,KAAA;AAC5C,EAAA,OAAO,EAAE,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,KAAM,EAAA;AACpC;;;ACnDO,SAAS,QAAQ,GAAa,EAAA;AACnC,EAAO,OAAA,GAAA,CAAI,UAAW,CAAA,WAAA,EAAa,KAAK,CAAA;AAC1C;AAEA,SAAS,aAAa,IAAc,EAAA;AAClC,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,KAAK,IAAK,CAAA,GAAA,CAAI,KAAM,CAAA,GAAA,CAAI,IAAI,OAAO,CAAA;AAAA,IACnC,MAAM,IAAK,CAAA,GAAA,CAAI,KAAM,CAAA,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,IACrC,KAAK,IAAK,CAAA,GAAA,CAAI,KAAM,CAAA,GAAA,CAAI,IAAI,OAAO,CAAA;AAAA,IACnC,QAAQ,IAAK,CAAA,GAAA,CAAI,KAAM,CAAA,MAAA,CAAO,IAAI,OAAO;AAAA,GAC3C;AACA,EAAO,OAAA;AAAA,IACL;AAAA,GACF;AACF;AAGA,eAAsB,kBAAA,CAAmB,MAAc,MAAwB,EAAA;AAC7E,EAAA,MAAM,EAAE,KAAM,EAAA,GAAI,MAAO,CAAA,IAAA,CAAK,QAAQ,cAAc,CAAA;AACpD,EAAe,eAAA,OAAA,CAEb,KAEA,GAUA,EAAA;AACA,IAAM,MAAA,OAAA,GAAU,IAAI,OAAQ,EAAA;AAC5B,IAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAU,EAAA;AACnC,MAAO,OAAA,IAAA;AAAA;AAET,IAAA,IAAI,EAAE,KAAS,IAAA,GAAA,CAAA,IAAQ,OAAO,GAAA,EAAK,QAAQ,QAAU,EAAA;AACnD,MAAA,KAAA,CAAM,iDAAiD,CAAA;AACvD,MAAO,OAAA,IAAA;AAAA;AAET,IAAM,MAAA,MAAA,GACJ,YAAY,GAAO,IAAA,OAAO,IAAI,MAAW,KAAA,QAAA,GAAW,IAAI,MAAS,GAAA,KAAA;AACnE,IAAA,IACE,SAAa,IAAA,GAAA,IACb,OAAO,GAAA,CAAI,YAAY,QACvB,IAAA,GAAA,CAAI,OACJ,IAAA,QAAA,IAAY,IAAI,OAChB,IAAA,OAAO,GAAI,CAAA,OAAA,CAAQ,WAAW,QAC9B,EAAA;AACA,MAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,EAAU,GAAI,CAAA,OAAA,CAAQ,MAAM,CAAA;AAAA;AAE1C,IAAA,MAAM,KAAqB,GAAA,EAAE,MAAQ,EAAA,GAAG,QAAQ,IAAK,EAAA;AAErD,IAAA,IAAI,UAAU,GAAK,EAAA;AACjB,MAAI,IAAA,MAAA,KAAW,MAAU,IAAA,MAAA,KAAW,KAAO,EAAA;AACzC,QAAQ,OAAA,CAAA,GAAA,CAAI,gBAAgB,kBAAkB,CAAA;AAC9C,QAAA,KAAA,CAAM,IAAO,GAAA,IAAA,CAAK,SAAU,CAAA,GAAA,CAAI,IAAI,CAAA;AAAA;AACtC;AAGF,IAAA,KAAA,CAAM,OAAU,GAAA,OAAA;AAEhB,IAAM,MAAA,MAAA,GAAS,IAAI,QAAW,GAAA,KAAA,GAAQ,IAAI,GAAI,CAAA,MAAM,IAAI,GAAI,CAAA,WAAA;AAE5D,IAAI,IAAA;AACF,MAAA,IAAI,IAAI,MAAM,CAAA;AAAA,aACP,CAAG,EAAA;AACV,MAAA,KAAA,CAAM,aAAe,EAAA;AAAA,QACnB,GAAK,EAAA,MAAA;AAAA,QACL,KAAO,EAAA;AAAA,OACR,CAAA;AACD,MAAO,OAAA,IAAA;AAAA;AAET,IAAA,MAAM,YAAe,GAAA,IAAI,OAAQ,CAAA,MAAA,EAAQ,KAAK,CAAA;AAE9C,IAAA,MAAM,QAAY,GAAA,MAAO,IAAK,CAAA,GAAA,CAAI,SAAiB,MAAM,CAAA;AAAA,MACvD;AAAA,KACF;AAEA,IAAI,IAAA,IAAA;AAEJ,IAAI,IAAA;AACF,MAAM,MAAA,OAAA,GAAU,MAAM,QAAA,CAAS,KAAM,EAAA;AACrC,MAAO,IAAA,GAAA,MAAM,QAAQ,IAAK,EAAA;AAAA,aACnB,CAAG,EAAA;AACV,MAAO,IAAA,GAAA,MAAM,SAAS,IAAK,EAAA;AAAA;AAE7B,IAAA,MAAM,aAAgD,EAAC;AACvD,IAAA,QAAA,CAAS,OAAQ,CAAA,OAAA,CAAQ,CAAC,KAAA,EAAO,GAAQ,KAAA;AACvC,MACE,IAAA,CAAC,CAAC,gBAAkB,EAAA,mBAAmB,EAAE,QAAS,CAAA,GAAA,CAAI,WAAY,EAAC,CACnE,EAAA;AACA,QAAI,IAAA,UAAA,CAAW,GAAG,CAAG,EAAA;AACnB,UAAM,MAAA,IAAA,GAAO,WAAW,GAAG,CAAA;AAC3B,UAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAG,EAAA;AACvB,YAAA,UAAA,CAAW,GAAG,CAAA,GAAI,CAAC,GAAG,MAAM,KAAK,CAAA;AAAA,WAC5B,MAAA;AACL,YAAA,UAAA,CAAW,GAAG,CAAA,GAAI,CAAC,IAAA,EAAM,KAAK,CAAA;AAAA;AAChC,SACK,MAAA;AACL,UAAA,UAAA,CAAW,GAAG,CAAI,GAAA,KAAA;AAAA;AACpB;AACF,KACD,CAAA;AAED,IAAI,IAAA,MAAA,EAAQ,iBAAiB,IAAM,EAAA;AACjC,MAAA,GAAA,CAAI,MAAO,CAAA,QAAA,CAAS,MAAM,CAAA,CAAE,IAAI,UAAU,CAAA;AAC1C,MAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,QAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,OACR,MAAA;AACL,QAAI,GAAA,CAAA,IAAA,CAAK,IAAQ,IAAA,EAAE,CAAA;AAAA;AAErB,MAAA;AAAA;AAGF,IAAO,OAAA;AAAA,MACL,IAAA;AAAA,MACA,QAAQ,QAAS,CAAA,MAAA;AAAA,MACjB,OAAS,EAAA,UAAA;AAAA,MACT;AAAA,KACF;AAAA;AAEF,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,YAAA,CAAa,IAAI,CAAA;AACnC,EAAO,OAAA,EAAE,SAAS,KAAM,EAAA;AAC1B","file":"express.mjs","sourcesContent":["/* eslint-disable no-console */\nimport { Routes } from '../api/types';\nimport urlMatches from '../api/utils/routes/urlMatches';\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[33m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `[niledb][DEBUG]${params.join('')} ${message}`,\n meta ? `\\n${JSON.stringify(meta, null, 2)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${yellow}[niledb][WARN]${reset}${params.join('')} ${message}`,\n JSON.stringify(meta, null, 2)\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${red}[niledb][ERROR]${reset}${params.join('')} ${message}`,\n meta\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n\nexport function matchesLog(configRoutes: Routes, request: Request): boolean {\n return urlMatches(request.url, configRoutes.LOG);\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{(.*)\\}/g, ':$1');\n}\n\nfunction expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const response = (await (nile.api.handlers as any)[method](\n proxyRequest\n )) as Response;\n\n let body;\n\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
package/dist/index.d.mts CHANGED
@@ -172,6 +172,7 @@ type Routes = {
172
172
  SIGNUP: string;
173
173
  VERIFY_REQUEST: string;
174
174
  PASSWORD_RESET: string;
175
+ LOG: string;
175
176
  };
176
177
 
177
178
  interface NileBody<R, B> {
package/dist/index.d.ts CHANGED
@@ -172,6 +172,7 @@ type Routes = {
172
172
  SIGNUP: string;
173
173
  VERIFY_REQUEST: string;
174
174
  PASSWORD_RESET: string;
175
+ LOG: string;
175
176
  };
176
177
 
177
178
  interface NileBody<R, B> {
package/dist/index.js CHANGED
@@ -15,6 +15,12 @@ var LoginUserResponseTokenTypeEnum = {
15
15
  IdToken: "ID_TOKEN"
16
16
  };
17
17
 
18
+ // src/api/utils/routes/urlMatches.ts
19
+ function urlMatches(requestUrl, route15) {
20
+ const url = new URL(requestUrl);
21
+ return url.pathname.startsWith(route15);
22
+ }
23
+
18
24
  // src/utils/Logger.ts
19
25
  var red = "\x1B[31m";
20
26
  var yellow = "\x1B[33m";
@@ -61,6 +67,9 @@ function Logger(config, ...params) {
61
67
  const error = config?.logger?.error ?? base.error;
62
68
  return { info, warn, error, debug };
63
69
  }
70
+ function matchesLog(configRoutes, request2) {
71
+ return urlMatches(request2.url, configRoutes.LOG);
72
+ }
64
73
 
65
74
  // src/utils/constants.ts
66
75
  var X_NILE_TENANT = "nile.tenant_id";
@@ -901,12 +910,6 @@ var apiRoutes = (config) => ({
901
910
  USER_TENANTS: (userId) => makeRestUrl(config, `/users/${userId}/tenants`)
902
911
  });
903
912
 
904
- // src/api/utils/routes/urlMatches.ts
905
- function urlMatches(requestUrl, route15) {
906
- const url = new URL(requestUrl);
907
- return url.pathname.startsWith(route15);
908
- }
909
-
910
913
  // src/api/routes/me/index.ts
911
914
  var key = "ME";
912
915
  async function GET(url, init, config) {
@@ -1626,8 +1629,12 @@ function matches14(configRoutes, request2) {
1626
1629
 
1627
1630
  // src/api/handlers/POST.ts
1628
1631
  function POSTER(configRoutes, config) {
1629
- const { info, warn } = Logger(config, "[POST MATCHER]");
1632
+ const { info, warn, error } = Logger(config, "[POST MATCHER]");
1630
1633
  return async function POST5(req) {
1634
+ if (matchesLog(configRoutes, req)) {
1635
+ error(req.body && await req.json());
1636
+ return new Response(null, { status: 200 });
1637
+ }
1631
1638
  if (matches3(configRoutes, req)) {
1632
1639
  info("matches tenant users");
1633
1640
  return route3(req, config);
@@ -1750,7 +1757,8 @@ var appRoutes = (prefix = "/api") => ({
1750
1757
  TENANT: `${prefix}/tenants/{tenantId}`,
1751
1758
  TENANT_USER: `${prefix}/tenants/{tenantId}/users/{userId}`,
1752
1759
  TENANT_USERS: `${prefix}/tenants/{tenantId}/users`,
1753
- SIGNUP: `${prefix}/signup`
1760
+ SIGNUP: `${prefix}/signup`,
1761
+ LOG: `${prefix}/auth/_log`
1754
1762
  });
1755
1763
 
1756
1764
  // src/utils/Requester/index.ts