@niledatabase/server 3.0.0-alpha.2 → 3.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/Api.d.ts +22 -0
  2. package/dist/Server.d.ts +2 -25
  3. package/dist/api/routes/auth/callback.d.ts +2 -1
  4. package/dist/api/routes/auth/csrf.d.ts +2 -1
  5. package/dist/api/routes/auth/error.d.ts +2 -1
  6. package/dist/api/routes/auth/providers.d.ts +2 -1
  7. package/dist/api/routes/auth/signin.d.ts +2 -1
  8. package/dist/api/routes/auth/signout.d.ts +2 -1
  9. package/dist/api/routes/tenants/GET.d.ts +3 -2
  10. package/dist/api/routes/tenants/POST.d.ts +3 -3
  11. package/dist/api/routes/tenants/[tenantId]/DELETE.d.ts +3 -3
  12. package/dist/api/routes/tenants/[tenantId]/GET.d.ts +37 -0
  13. package/dist/api/routes/tenants/[tenantId]/PUT.d.ts +38 -0
  14. package/dist/api/routes/tenants/[tenantId]/users/GET.d.ts +3 -3
  15. package/dist/api/routes/tenants/[tenantId]/users/POST.d.ts +3 -2
  16. package/dist/api/routes/tenants/[tenantId]/users/PUT.d.ts +4 -5
  17. package/dist/api/routes/tenants/[tenantId]/users/[userId]/DELETE.d.ts +5 -5
  18. package/dist/api/routes/users/GET.d.ts +3 -2
  19. package/dist/api/routes/users/POST.d.ts +3 -3
  20. package/dist/api/routes/users/[userId]/PUT.d.ts +3 -2
  21. package/dist/api/utils/request.d.ts +1 -1
  22. package/dist/api/utils/routes/apiRoutes.d.ts +2 -1
  23. package/dist/api/utils/routes/makeRestUrl.d.ts +2 -1
  24. package/dist/api/utils/routes/proxyRoutes.d.ts +2 -1
  25. package/dist/db/DBManager.d.ts +1 -0
  26. package/dist/db/NileInstance.d.ts +1 -1
  27. package/dist/server.cjs.development.js +2790 -2485
  28. package/dist/server.cjs.development.js.map +1 -1
  29. package/dist/server.cjs.production.min.js +1 -1
  30. package/dist/server.cjs.production.min.js.map +1 -1
  31. package/dist/server.esm.js +2791 -2486
  32. package/dist/server.esm.js.map +1 -1
  33. package/dist/tenants/index.d.ts +7 -3
  34. package/dist/types.d.ts +8 -0
  35. package/dist/users/index.d.ts +7 -7
  36. package/dist/utils/Config/envVars.d.ts +1 -2
  37. package/dist/utils/Config/index.d.ts +8 -8
  38. package/dist/utils/Event/index.d.ts +0 -1
  39. package/dist/utils/Logger.d.ts +5 -4
  40. package/dist/utils/Requester/index.d.ts +5 -5
  41. package/dist/utils/Requester/types.d.ts +1 -1
  42. package/package.json +2 -2
  43. package/dist/utils/Server/index.d.ts +0 -4
package/dist/Api.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { Routes } from './api/types';
2
+ import Tenants from './tenants';
3
+ import Users from './users';
4
+ import { Config } from './utils/Config';
5
+ export declare class Api {
6
+ config: Config;
7
+ users: Users;
8
+ tenants: Tenants;
9
+ routes: Routes;
10
+ handlers: {
11
+ GET: (req: Request) => Promise<void | Response>;
12
+ POST: (req: Request) => Promise<void | Response>;
13
+ DELETE: (req: Request) => Promise<void | Response>;
14
+ PUT: (req: Request) => Promise<void | Response>;
15
+ };
16
+ constructor(config: Config);
17
+ set headers(headers: Headers);
18
+ login(payload: {
19
+ email: string;
20
+ password: string;
21
+ }): Promise<void>;
22
+ }
package/dist/Server.d.ts CHANGED
@@ -1,32 +1,11 @@
1
1
  import { Pool } from 'pg';
2
2
  import { ServerConfig } from './types';
3
3
  import { Config } from './utils/Config';
4
- import Users from './users';
5
- import Tenants from './tenants';
6
- import { Routes } from './api/types';
7
- declare class Api {
8
- config: Config;
9
- users: Users;
10
- tenants: Tenants;
11
- routes: Routes;
12
- handlers: {
13
- GET: (req: Request) => Promise<void | Response>;
14
- POST: (req: Request) => Promise<void | Response>;
15
- DELETE: (req: Request) => Promise<void | Response>;
16
- PUT: (req: Request) => Promise<void | Response>;
17
- };
18
- constructor(config: Config);
19
- set headers(headers: Headers);
20
- login(payload: {
21
- email: string;
22
- password: string;
23
- }): Promise<void>;
24
- }
4
+ import { Api } from './Api';
25
5
  export declare class Server {
26
6
  config: Config;
27
7
  api: Api;
28
8
  private manager;
29
- private servers;
30
9
  constructor(config?: ServerConfig);
31
10
  setConfig(cfg: Config): void;
32
11
  init(cfg?: Config): Promise<this>;
@@ -39,9 +18,7 @@ export declare class Server {
39
18
  set token(token: string | undefined | null);
40
19
  get db(): Pool;
41
20
  /**
42
- * A utility function if you want to manage different NileDB instances yourself
43
- * returns the global Server object, an existing server that's already been configured,
44
- * or a new one if the config isn't in the cache
21
+ * A convenience function that applies a config and ensures whatever was passed is set properly
45
22
  */
46
23
  getInstance(config: ServerConfig): Server;
47
24
  }
@@ -1,3 +1,4 @@
1
1
  import { Routes } from '../../types';
2
- export default function route(request: Request): Promise<Response>;
2
+ import { Config } from '../../../utils/Config';
3
+ export default function route(request: Request, config: Config): Promise<Response>;
3
4
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -1,3 +1,4 @@
1
1
  import { Routes } from '../../types';
2
- export default function route(req: Request): Promise<Response>;
2
+ import { Config } from '../../../utils/Config';
3
+ export default function route(req: Request, config: Config): Promise<Response>;
3
4
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -1,3 +1,4 @@
1
1
  import { Routes } from '../../types';
2
- export default function route(req: Request): Promise<Response>;
2
+ import { Config } from '../../../utils/Config';
3
+ export default function route(req: Request, config: Config): Promise<Response>;
3
4
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -1,3 +1,4 @@
1
1
  import { Routes } from '../../types';
2
- export default function route(req: Request): Promise<Response>;
2
+ import { Config } from '../../../utils/Config';
3
+ export default function route(req: Request, config: Config): Promise<Response>;
3
4
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -29,5 +29,6 @@
29
29
  * content: {}
30
30
  */
31
31
  import { Routes } from '../../types';
32
- export default function route(req: Request): Promise<Response>;
32
+ import { Config } from '../../../utils/Config';
33
+ export default function route(req: Request, config: Config): Promise<Response>;
33
34
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -1,3 +1,4 @@
1
1
  import { Routes } from '../../types';
2
- export default function route(request: Request): Promise<Response>;
2
+ import { Config } from '../../../utils/Config';
3
+ export default function route(request: Request, config: Config): Promise<Response>;
3
4
  export declare function matches(configRoutes: Routes, request: Request): boolean;
@@ -1,3 +1,4 @@
1
+ import { Config } from '../../../utils/Config';
1
2
  import { ActiveSession } from '../../utils/auth';
2
3
  /**
3
4
  * @swagger
@@ -27,6 +28,6 @@ import { ActiveSession } from '../../utils/auth';
27
28
  * description: Unauthorized
28
29
  * content: {}
29
30
  */
30
- export declare function GET(session: ActiveSession, init: RequestInit & {
31
+ export declare function GET(config: Config, session: ActiveSession, init: RequestInit & {
31
32
  request: Request;
32
- }, log: (...args: string[]) => void): Promise<Response>;
33
+ }): Promise<Response>;
@@ -1,4 +1,4 @@
1
- import { ActiveSession } from '../../utils/auth';
1
+ import { Config } from '../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
4
  * /api/tenants:
@@ -40,6 +40,6 @@ import { ActiveSession } from '../../utils/auth';
40
40
  * schema:
41
41
  * $ref: '#/components/schemas/APIError'
42
42
  */
43
- export declare function POST(session: ActiveSession, init: RequestInit & {
43
+ export declare function POST(config: Config, init: RequestInit & {
44
44
  request: Request;
45
- }, log: (...args: string[]) => void): Promise<Response>;
45
+ }): Promise<Response>;
@@ -1,4 +1,4 @@
1
- import { ActiveSession } from '../../../utils/auth';
1
+ import { Config } from '../../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
4
  * /api/tenants/{tenantId}:
@@ -29,6 +29,6 @@ import { ActiveSession } from '../../../utils/auth';
29
29
  * schema:
30
30
  * $ref: '#/components/schemas/APIError'
31
31
  */
32
- export declare function DELETE(session: ActiveSession, init: RequestInit & {
32
+ export declare function DELETE(config: Config, init: RequestInit & {
33
33
  request: Request;
34
- }, log: (...args: string[]) => void): Promise<Response>;
34
+ }): Promise<Response>;
@@ -0,0 +1,37 @@
1
+ import { Config } from '../../../../utils/Config';
2
+ /**
3
+ * @swagger
4
+ * /api/tenants/{tenantId}:
5
+ * get:
6
+ * tags:
7
+ * - tenants
8
+ * summary: Obtains a specific tenant.
9
+ * operationId: getTenant
10
+ * parameters:
11
+ * - name: tenantId
12
+ * in: path
13
+ * required: true
14
+ * schema:
15
+ * type: string
16
+ * responses:
17
+ * "200":
18
+ * description: the desired tenant
19
+ * application/json:
20
+ * schema:
21
+ * $ref: '#/components/schemas/Tenant'
22
+ * "401":
23
+ * description: Unauthorized
24
+ * content:
25
+ * application/json:
26
+ * schema:
27
+ * $ref: '#/components/schemas/APIError'
28
+ * "404":
29
+ * description: Tenant not found
30
+ * content:
31
+ * application/json:
32
+ * schema:
33
+ * $ref: '#/components/schemas/APIError'
34
+ */
35
+ export declare function GET(config: Config, init: RequestInit & {
36
+ request: Request;
37
+ }, log: (message: string | unknown, meta?: Record<string, unknown>) => void): Promise<Response>;
@@ -0,0 +1,38 @@
1
+ import { Config } from '../../../../utils/Config';
2
+ /**
3
+ * @swagger
4
+ * /api/tenants/{tenantId}:
5
+ * put:
6
+ * tags:
7
+ * - tenants
8
+ * summary: Obtains a specific tenant.
9
+ * operationId: updateTenant
10
+ * parameters:
11
+ * - name: tenantId
12
+ * in: path
13
+ * required: true
14
+ * schema:
15
+ * type: string
16
+ * responses:
17
+ * "201":
18
+ * description: update an existing tenant
19
+ * content:
20
+ * application/json:
21
+ * schema:
22
+ * $ref: '#/components/schemas/Tenant'
23
+ * "401":
24
+ * description: Unauthorized
25
+ * content:
26
+ * application/json:
27
+ * schema:
28
+ * $ref: '#/components/schemas/APIError'
29
+ * "404":
30
+ * description: Tenant not found
31
+ * content:
32
+ * application/json:
33
+ * schema:
34
+ * $ref: '#/components/schemas/APIError'
35
+ */
36
+ export declare function PUT(config: Config, init: RequestInit & {
37
+ request: Request;
38
+ }): Promise<Response>;
@@ -1,4 +1,4 @@
1
- import { ActiveSession } from '../../../../utils/auth';
1
+ import { Config } from '../../../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
4
  * /api/tenants/{tenantId}/users:
@@ -30,6 +30,6 @@ import { ActiveSession } from '../../../../utils/auth';
30
30
  * schema:
31
31
  * $ref: '#/components/schemas/APIError'
32
32
  */
33
- export declare function GET(session: ActiveSession, init: RequestInit & {
33
+ export declare function GET(config: Config, init: RequestInit & {
34
34
  request: Request;
35
- }, log: (...args: string[]) => void): Promise<Response>;
35
+ }): Promise<Response>;
@@ -1,4 +1,5 @@
1
1
  import { ActiveSession } from '../../../../utils/auth';
2
+ import { Config } from '../../../../../utils/Config';
2
3
  /**
3
4
  * @swagger
4
5
  * /api/tenants/{tenantId}/users:
@@ -39,6 +40,6 @@ import { ActiveSession } from '../../../../utils/auth';
39
40
  * schema:
40
41
  * $ref: '#/components/schemas/User'
41
42
  */
42
- export declare function POST(session: ActiveSession, init: RequestInit & {
43
+ export declare function POST(config: Config, session: ActiveSession, init: RequestInit & {
43
44
  request: Request;
44
- }, log: (...args: string[]) => void): Promise<Response>;
45
+ }): Promise<Response>;
@@ -1,4 +1,4 @@
1
- import { ActiveSession } from '../../../../utils/auth';
1
+ import { Config } from '../../../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
4
  * /api/tenants/{tenantId}/users:
@@ -15,8 +15,7 @@ import { ActiveSession } from '../../../../utils/auth';
15
15
  * type: string
16
16
  * requestBody:
17
17
  * description: |
18
- * The email and password combination the user will use to authenticate.
19
- * The `name` is optional; if provided it will be recorded in the `users` table.
18
+ * The email of the user you want to add to a tenant.
20
19
  * content:
21
20
  * application/json:
22
21
  * schema:
@@ -25,6 +24,6 @@ import { ActiveSession } from '../../../../utils/auth';
25
24
  * "201":
26
25
  * description: add user to tenant
27
26
  */
28
- export declare function PUT(session: ActiveSession, init: RequestInit & {
27
+ export declare function PUT(config: Config, init: RequestInit & {
29
28
  request: Request;
30
- }, log: (...args: string[]) => void): Promise<Response>;
29
+ }): Promise<Response>;
@@ -1,7 +1,7 @@
1
- import { ActiveSession } from '../../../../../utils/auth';
1
+ import { Config } from '../../../../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
- * /api/tenants/{tenantId}/users/{userId}:
4
+ * /api/tenants/{tenantId}/users/{email}:
5
5
  * delete:
6
6
  * tags:
7
7
  * - tenants
@@ -15,7 +15,7 @@ import { ActiveSession } from '../../../../../utils/auth';
15
15
  * required: true
16
16
  * schema:
17
17
  * type: string
18
- * - name: userId
18
+ * - name: email
19
19
  * in: path
20
20
  * required: true
21
21
  * schema:
@@ -25,6 +25,6 @@ import { ActiveSession } from '../../../../../utils/auth';
25
25
  * "204":
26
26
  * description: User removed
27
27
  */
28
- export declare function DELETE(session: ActiveSession, init: RequestInit & {
28
+ export declare function DELETE(config: Config, init: RequestInit & {
29
29
  request: Request;
30
- }, log: (...args: string[]) => void): Promise<Response>;
30
+ }): Promise<Response>;
@@ -1,3 +1,4 @@
1
+ import { Config } from '../../../utils/Config';
1
2
  /**
2
3
  * @swagger
3
4
  * /api/users:
@@ -29,6 +30,6 @@
29
30
  * description: Unauthorized
30
31
  * content: {}
31
32
  */
32
- export declare function GET(init: RequestInit & {
33
+ export declare function GET(config: Config, init: RequestInit & {
33
34
  request: Request;
34
- }, log: (...args: string[]) => void): Promise<Response>;
35
+ }, log: (message: string | unknown, meta?: Record<string, unknown>) => void): Promise<Response>;
@@ -1,4 +1,4 @@
1
- import { ActiveSession } from '../../utils/auth';
1
+ import { Config } from '../../../utils/Config';
2
2
  /**
3
3
  * @swagger
4
4
  * /api/users:
@@ -61,6 +61,6 @@ import { ActiveSession } from '../../utils/auth';
61
61
  * description: Unauthorized
62
62
  * content: {}
63
63
  */
64
- export declare function POST(session: void | ActiveSession, init: RequestInit & {
64
+ export declare function POST(config: Config, init: RequestInit & {
65
65
  request: Request;
66
- }, log?: (...args: string[]) => void): Promise<Response>;
66
+ }): Promise<Response>;
@@ -1,4 +1,5 @@
1
1
  import { ActiveSession } from '../../../utils/auth';
2
+ import { Config } from '../../../../utils/Config';
2
3
  /**
3
4
  * @swagger
4
5
  * /api/users/{userid}:
@@ -35,6 +36,6 @@ import { ActiveSession } from '../../../utils/auth';
35
36
  * description: Unauthorized
36
37
  * content: {}
37
38
  */
38
- export declare function PUT(session: void | ActiveSession, init: RequestInit & {
39
+ export declare function PUT(config: Config, session: void | ActiveSession, init: RequestInit & {
39
40
  request: Request;
40
- }, log: (...args: string[]) => void): Promise<Response>;
41
+ }): Promise<Response>;
@@ -1,4 +1,4 @@
1
1
  import { Config } from '../../utils/Config';
2
2
  export default function request(url: string, _init: RequestInit & {
3
3
  request: Request;
4
- }, config?: Config): Promise<Response>;
4
+ }, config: Config): Promise<Response>;
@@ -1,6 +1,7 @@
1
+ import { Config } from '../../../utils/Config';
1
2
  type ApiRouteKeys = keyof typeof apiRoutes;
2
3
  export type ApiRoutePaths = (typeof apiRoutes)[ApiRouteKeys];
3
- export declare const apiRoutes: {
4
+ export declare const apiRoutes: (config: Config) => {
4
5
  ME: string;
5
6
  USERS: (tenantId?: string) => string;
6
7
  USER: (userId: string) => string;
@@ -1 +1,2 @@
1
- export declare function makeRestUrl(path: string, qp?: Record<string, string>): string;
1
+ import { Config } from '../../../utils/Config';
2
+ export declare function makeRestUrl(config: Config, path: string, qp?: Record<string, string>): string;
@@ -1,4 +1,5 @@
1
- export declare const proxyRoutes: {
1
+ import { Config } from '../../../utils/Config';
2
+ export declare const proxyRoutes: (config: Config) => {
2
3
  SIGNIN: string;
3
4
  PROVIDERS: string;
4
5
  SESSION: string;
@@ -4,6 +4,7 @@ import NileDatabase from './NileInstance';
4
4
  export default class DBManager {
5
5
  connections: Map<string, NileDatabase>;
6
6
  cleared: boolean;
7
+ private poolWatcherFn;
7
8
  private makeId;
8
9
  constructor(config: ServerConfig);
9
10
  poolWatcher: (config: ServerConfig) => (id: undefined | null | string) => void;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Pool } from 'pg';
3
2
  import { Config } from '../utils/Config';
4
3
  declare class NileDatabase {
@@ -10,5 +9,6 @@ declare class NileDatabase {
10
9
  timer: NodeJS.Timeout | undefined;
11
10
  constructor(config: Config, id: string);
12
11
  startTimeout(): void;
12
+ shutdown(): void;
13
13
  }
14
14
  export default NileDatabase;