@niledatabase/server 4.0.1 → 4.0.2-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -108,8 +108,20 @@ type Database = {
108
108
  interface CreateBasicUserRequest {
109
109
  email: string;
110
110
  password: string;
111
- preferredName?: string;
112
- newTenant?: string;
111
+ name?: string;
112
+ familyName?: string;
113
+ givenName?: string;
114
+ picture?: string;
115
+ newTenantName?: string;
116
+ tenantId?: string;
117
+ }
118
+ interface CreateTenantUserRequest {
119
+ email: string;
120
+ password: string;
121
+ name?: string;
122
+ familyName?: string;
123
+ givenName?: string;
124
+ picture?: string;
113
125
  }
114
126
  declare const LoginUserResponseTokenTypeEnum: {
115
127
  readonly AccessToken: "ACCESS_TOKEN";
@@ -261,13 +273,13 @@ declare class Tenants extends Config {
261
273
  declare class Users extends Config {
262
274
  headers?: Headers;
263
275
  constructor(config: Config, headers?: Headers);
264
- get usersUrl(): string;
276
+ usersUrl(user: CreateBasicUserRequest): string;
265
277
  get tenantUsersUrl(): string;
266
278
  get linkUsersUrl(): string;
267
279
  get tenantUserUrl(): string;
268
280
  handleHeaders(init?: RequestInit): RequestInit | undefined;
269
- createUser: <T = User | Response>(req: NileRequest<CreateBasicUserRequest>, init?: RequestInit) => Promise<T>;
270
- createTenantUser: <T = User | Response>(req: NileRequest<CreateBasicUserRequest>, init?: RequestInit) => Promise<T>;
281
+ createUser: <T = User | Response>(user: CreateBasicUserRequest, init?: RequestInit) => Promise<T>;
282
+ createTenantUser: <T = User | Response>(req: NileRequest<CreateTenantUserRequest>, init?: RequestInit) => Promise<T>;
271
283
  updateUser: <T = User[] | Response>(req: NileRequest<Partial<Omit<User, "email" | "tenants" | "created" | "updated">>>, init?: RequestInit) => Promise<T>;
272
284
  listUsers: <T = User[] | Response>(req: NileRequest<void> | Headers, init?: RequestInit) => Promise<T>;
273
285
  linkUser: <T = User | Response>(req: NileRequest<{
@@ -308,6 +320,7 @@ declare class Api {
308
320
  resetHeaders: (headers?: Headers) => void;
309
321
  set headers(headers: Headers | Record<string, string>);
310
322
  get headers(): Headers | undefined;
323
+ getCookie(req?: Request | Headers): string | null | undefined;
311
324
  login: (payload: {
312
325
  email: string;
313
326
  password: string;
@@ -340,4 +353,4 @@ declare class Server {
340
353
  }
341
354
  declare function create(config?: ServerConfig): Promise<Server>;
342
355
 
343
- export { type ActiveSession, type AfterCreate, type CreateBasicUserRequest, type Database, type JWT, type LoggerType, type LoginUserResponse, type LoginUserResponseToken, LoginUserResponseTokenTypeEnum, create as Nile, type NileDb, type NilePoolConfig, type Opts, Server, type ServerConfig, type Tenant, type User };
356
+ export { type ActiveSession, type AfterCreate, type CreateBasicUserRequest, type CreateTenantUserRequest, type Database, type JWT, type LoggerType, type LoginUserResponse, type LoginUserResponseToken, LoginUserResponseTokenTypeEnum, create as Nile, type NileDb, type NilePoolConfig, type Opts, Server, type ServerConfig, type Tenant, type User };
package/dist/index.d.ts CHANGED
@@ -108,8 +108,20 @@ type Database = {
108
108
  interface CreateBasicUserRequest {
109
109
  email: string;
110
110
  password: string;
111
- preferredName?: string;
112
- newTenant?: string;
111
+ name?: string;
112
+ familyName?: string;
113
+ givenName?: string;
114
+ picture?: string;
115
+ newTenantName?: string;
116
+ tenantId?: string;
117
+ }
118
+ interface CreateTenantUserRequest {
119
+ email: string;
120
+ password: string;
121
+ name?: string;
122
+ familyName?: string;
123
+ givenName?: string;
124
+ picture?: string;
113
125
  }
114
126
  declare const LoginUserResponseTokenTypeEnum: {
115
127
  readonly AccessToken: "ACCESS_TOKEN";
@@ -261,13 +273,13 @@ declare class Tenants extends Config {
261
273
  declare class Users extends Config {
262
274
  headers?: Headers;
263
275
  constructor(config: Config, headers?: Headers);
264
- get usersUrl(): string;
276
+ usersUrl(user: CreateBasicUserRequest): string;
265
277
  get tenantUsersUrl(): string;
266
278
  get linkUsersUrl(): string;
267
279
  get tenantUserUrl(): string;
268
280
  handleHeaders(init?: RequestInit): RequestInit | undefined;
269
- createUser: <T = User | Response>(req: NileRequest<CreateBasicUserRequest>, init?: RequestInit) => Promise<T>;
270
- createTenantUser: <T = User | Response>(req: NileRequest<CreateBasicUserRequest>, init?: RequestInit) => Promise<T>;
281
+ createUser: <T = User | Response>(user: CreateBasicUserRequest, init?: RequestInit) => Promise<T>;
282
+ createTenantUser: <T = User | Response>(req: NileRequest<CreateTenantUserRequest>, init?: RequestInit) => Promise<T>;
271
283
  updateUser: <T = User[] | Response>(req: NileRequest<Partial<Omit<User, "email" | "tenants" | "created" | "updated">>>, init?: RequestInit) => Promise<T>;
272
284
  listUsers: <T = User[] | Response>(req: NileRequest<void> | Headers, init?: RequestInit) => Promise<T>;
273
285
  linkUser: <T = User | Response>(req: NileRequest<{
@@ -308,6 +320,7 @@ declare class Api {
308
320
  resetHeaders: (headers?: Headers) => void;
309
321
  set headers(headers: Headers | Record<string, string>);
310
322
  get headers(): Headers | undefined;
323
+ getCookie(req?: Request | Headers): string | null | undefined;
311
324
  login: (payload: {
312
325
  email: string;
313
326
  password: string;
@@ -340,4 +353,4 @@ declare class Server {
340
353
  }
341
354
  declare function create(config?: ServerConfig): Promise<Server>;
342
355
 
343
- export { type ActiveSession, type AfterCreate, type CreateBasicUserRequest, type Database, type JWT, type LoggerType, type LoginUserResponse, type LoginUserResponseToken, LoginUserResponseTokenTypeEnum, create as Nile, type NileDb, type NilePoolConfig, type Opts, Server, type ServerConfig, type Tenant, type User };
356
+ export { type ActiveSession, type AfterCreate, type CreateBasicUserRequest, type CreateTenantUserRequest, type Database, type JWT, type LoggerType, type LoginUserResponse, type LoginUserResponseToken, LoginUserResponseTokenTypeEnum, create as Nile, type NileDb, type NilePoolConfig, type Opts, Server, type ServerConfig, type Tenant, type User };
package/dist/index.js CHANGED
@@ -1988,7 +1988,7 @@ function serverLogin(config, handlers) {
1988
1988
  if (!authCookie) {
1989
1989
  throw new Error("authentication failed");
1990
1990
  }
1991
- const [, token] = /((__Secure-)?nile\.session-token=.+?);/.exec(authCookie) ?? [];
1991
+ const token = parseToken(loginRes?.headers);
1992
1992
  if (!token) {
1993
1993
  error("Unable to obtain auth token", { authCookie });
1994
1994
  throw new Error("Server login failed");
@@ -2001,6 +2001,17 @@ function serverLogin(config, handlers) {
2001
2001
  return [headers, loginRes];
2002
2002
  };
2003
2003
  }
2004
+ function parseToken(headers) {
2005
+ let authCookie = headers?.get("set-cookie");
2006
+ if (!authCookie) {
2007
+ authCookie = headers?.get("cookie");
2008
+ }
2009
+ if (!authCookie) {
2010
+ return void 0;
2011
+ }
2012
+ const [, token] = /((__Secure-)?nile\.session-token=[^;]+)/.exec(authCookie) ?? [];
2013
+ return token;
2014
+ }
2004
2015
  var Auth = class extends Config {
2005
2016
  headers;
2006
2017
  resetHeaders;
@@ -2247,8 +2258,15 @@ var Users = class extends Config {
2247
2258
  super(config);
2248
2259
  this.headers = headers;
2249
2260
  }
2250
- get usersUrl() {
2251
- return "/users";
2261
+ usersUrl(user) {
2262
+ const params = new URLSearchParams();
2263
+ if (user.newTenantName) {
2264
+ params.set("newTenantName", user.newTenantName);
2265
+ }
2266
+ if (user.tenantId) {
2267
+ params.set("tenantId", user.tenantId);
2268
+ }
2269
+ return `/users?${params.size > 0 ? params : ""}`;
2252
2270
  }
2253
2271
  get tenantUsersUrl() {
2254
2272
  return `/tenants/${this.tenantId ?? "{tenantId}"}/users`;
@@ -2273,10 +2291,10 @@ var Users = class extends Config {
2273
2291
  }
2274
2292
  return void 0;
2275
2293
  }
2276
- createUser = async (req, init) => {
2294
+ createUser = async (user, init) => {
2277
2295
  const _requester = new Requester(this);
2278
2296
  const _init = this.handleHeaders(init);
2279
- return await _requester.post(req, this.usersUrl, _init);
2297
+ return await _requester.post(user, this.usersUrl(user), _init);
2280
2298
  };
2281
2299
  createTenantUser = async (req, init) => {
2282
2300
  const _requester = new Requester(this);
@@ -2450,6 +2468,14 @@ var Api = class {
2450
2468
  get headers() {
2451
2469
  return this.#headers;
2452
2470
  }
2471
+ getCookie(req) {
2472
+ if (req instanceof Headers) {
2473
+ return parseToken(req);
2474
+ } else if (req instanceof Request) {
2475
+ return parseToken(req.headers);
2476
+ }
2477
+ return null;
2478
+ }
2453
2479
  login = async (payload, config) => {
2454
2480
  const [headers, loginRes] = await serverLogin(
2455
2481
  this.config,