@niledatabase/server 3.0.0-alpha.45 → 3.0.0-alpha.47

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
@@ -70,13 +70,13 @@ interface LoginUserResponse {
70
70
  interface User {
71
71
  id: string;
72
72
  email: string;
73
- name: string | null;
74
- familyName: string | null;
75
- givenName: string | null;
76
- picture: string | null;
73
+ name?: string | null;
74
+ familyName?: string | null;
75
+ givenName?: string | null;
76
+ picture?: string | null;
77
77
  created: string;
78
- updated: string;
79
- emailVerified: boolean | null;
78
+ updated?: string;
79
+ emailVerified?: string | null;
80
80
  tenants: {
81
81
  id: string;
82
82
  }[];
@@ -145,7 +145,7 @@ type JWT = {
145
145
  type ActiveSession = {
146
146
  id: string;
147
147
  email: string;
148
- expires: Date;
148
+ expires: string;
149
149
  user?: {
150
150
  id: string;
151
151
  name: string;
@@ -219,7 +219,7 @@ declare class Auth extends Config {
219
219
  constructor(config: Config, headers?: Headers);
220
220
  handleHeaders(init?: RequestInit): RequestInit | undefined;
221
221
  get sessionUrl(): string;
222
- session: (req: NileRequest<void> | Headers, init?: RequestInit) => Promise<Response | JWT | ActiveSession>;
222
+ getSession: (req: NileRequest<void> | Headers, init?: RequestInit) => Promise<JWT | ActiveSession | Response | undefined>;
223
223
  }
224
224
 
225
225
  declare class Tenants extends Config {
@@ -273,6 +273,7 @@ declare class Api {
273
273
  auth: Auth;
274
274
  tenants: Tenants;
275
275
  routes: Routes;
276
+ _headers: undefined | Headers;
276
277
  handlers: {
277
278
  GET: (req: Request) => Promise<void | Response>;
278
279
  POST: (req: Request) => Promise<void | Response>;
@@ -292,6 +293,7 @@ declare class Api {
292
293
  email: string;
293
294
  password: string;
294
295
  }): Promise<void>;
296
+ session(req?: Request | Headers | null | undefined): Promise<Response | JWT | ActiveSession | null | undefined>;
295
297
  }
296
298
 
297
299
  declare class Server {
package/dist/index.d.ts CHANGED
@@ -70,13 +70,13 @@ interface LoginUserResponse {
70
70
  interface User {
71
71
  id: string;
72
72
  email: string;
73
- name: string | null;
74
- familyName: string | null;
75
- givenName: string | null;
76
- picture: string | null;
73
+ name?: string | null;
74
+ familyName?: string | null;
75
+ givenName?: string | null;
76
+ picture?: string | null;
77
77
  created: string;
78
- updated: string;
79
- emailVerified: boolean | null;
78
+ updated?: string;
79
+ emailVerified?: string | null;
80
80
  tenants: {
81
81
  id: string;
82
82
  }[];
@@ -145,7 +145,7 @@ type JWT = {
145
145
  type ActiveSession = {
146
146
  id: string;
147
147
  email: string;
148
- expires: Date;
148
+ expires: string;
149
149
  user?: {
150
150
  id: string;
151
151
  name: string;
@@ -219,7 +219,7 @@ declare class Auth extends Config {
219
219
  constructor(config: Config, headers?: Headers);
220
220
  handleHeaders(init?: RequestInit): RequestInit | undefined;
221
221
  get sessionUrl(): string;
222
- session: (req: NileRequest<void> | Headers, init?: RequestInit) => Promise<Response | JWT | ActiveSession>;
222
+ getSession: (req: NileRequest<void> | Headers, init?: RequestInit) => Promise<JWT | ActiveSession | Response | undefined>;
223
223
  }
224
224
 
225
225
  declare class Tenants extends Config {
@@ -273,6 +273,7 @@ declare class Api {
273
273
  auth: Auth;
274
274
  tenants: Tenants;
275
275
  routes: Routes;
276
+ _headers: undefined | Headers;
276
277
  handlers: {
277
278
  GET: (req: Request) => Promise<void | Response>;
278
279
  POST: (req: Request) => Promise<void | Response>;
@@ -292,6 +293,7 @@ declare class Api {
292
293
  email: string;
293
294
  password: string;
294
295
  }): Promise<void>;
296
+ session(req?: Request | Headers | null | undefined): Promise<Response | JWT | ActiveSession | null | undefined>;
295
297
  }
296
298
 
297
299
  declare class Server {
package/dist/index.js CHANGED
@@ -132,6 +132,11 @@ var getDatabaseId = (cfg) => {
132
132
  logger && info(`${logger}[config] ${config?.databaseId}`);
133
133
  return String(config?.databaseId);
134
134
  }
135
+ const dbFromEnv = stringCheck(process.env.NILEDB_ID);
136
+ if (dbFromEnv) {
137
+ logger && info(`${logger}[NILEDB_ID] ${dbFromEnv}`);
138
+ return dbFromEnv;
139
+ }
135
140
  const dbId = stringCheck(process.env.NILEDB_API_URL);
136
141
  if (dbId) {
137
142
  try {
@@ -140,8 +145,7 @@ var getDatabaseId = (cfg) => {
140
145
  } catch (e) {
141
146
  }
142
147
  }
143
- logger && info(`${logger}[NILEDB_ID] ${String(process.env.NILEDB_ID)}`);
144
- return process.env.NILEDB_ID;
148
+ return null;
145
149
  };
146
150
  var getUsername = (cfg) => {
147
151
  const { config, logger } = cfg;
@@ -150,15 +154,22 @@ var getUsername = (cfg) => {
150
154
  logger && info(`${logger}[config] ${config.user}`);
151
155
  return String(config?.user);
152
156
  }
157
+ const user = stringCheck(process.env.NILEDB_USER);
158
+ if (user) {
159
+ logger && info(`${logger}[NILEDB_USER] ${user}`);
160
+ return user;
161
+ }
153
162
  const pg2 = stringCheck(process.env.NILEDB_POSTGRES_URL);
154
163
  if (pg2) {
155
- const url = new URL(pg2);
156
- if (url.username) {
157
- return url.username;
164
+ try {
165
+ const url = new URL(pg2);
166
+ if (url.username) {
167
+ return url.username;
168
+ }
169
+ } catch (e) {
158
170
  }
159
171
  }
160
- logger && info(`${logger}[NILEDB_USER] ${String(process.env.NILEDB_USER)}`);
161
- return process.env.NILEDB_USER;
172
+ return void 0;
162
173
  };
163
174
  var getPassword = (cfg) => {
164
175
  const { config, logger } = cfg;
@@ -168,15 +179,22 @@ var getPassword = (cfg) => {
168
179
  log && info(`${logger}[config] ${config?.password}`);
169
180
  return String(config?.password);
170
181
  }
182
+ const pass = stringCheck(process.env.NILEDB_PASSWORD);
183
+ if (pass) {
184
+ logger && info(`${logger}[NILEDB_PASSWORD] ${pass}`);
185
+ return pass;
186
+ }
171
187
  const pg2 = stringCheck(process.env.NILEDB_POSTGRES_URL);
172
188
  if (pg2) {
173
- const url = new URL(pg2);
174
- if (url.password) {
175
- return url.password;
189
+ try {
190
+ const url = new URL(pg2);
191
+ if (url.password) {
192
+ return url.password;
193
+ }
194
+ } catch (e) {
176
195
  }
177
196
  }
178
- logger && info(`${logger}[NILEDB_PASSWORD] ${String(process.env.NILEDB_PASSWORD)}`);
179
- return process.env.NILEDB_PASSWORD;
197
+ return void 0;
180
198
  };
181
199
  var getInfoBearer = (cfg) => {
182
200
  return `${getUsername(cfg)}:${getPassword(cfg)}`;
@@ -190,8 +208,8 @@ var getToken = (cfg) => {
190
208
  }
191
209
  const token = stringCheck(process.env.NILEDB_TOKEN);
192
210
  if (token) {
193
- logger && info(`${logger}[NILEDB_TOKEN] ${process.env.NILEDB_TOKEN}`);
194
- return process.env.NILEDB_TOKEN;
211
+ logger && info(`${logger}[NILEDB_TOKEN] ${token}`);
212
+ return token;
195
213
  }
196
214
  return void 0;
197
215
  };
@@ -204,8 +222,8 @@ var getDatabaseName = (cfg) => {
204
222
  }
205
223
  const name = stringCheck(process.env.NILEDB_NAME);
206
224
  if (name) {
207
- logger && info(`${logger}[NILEDB_NAME] ${process.env.NILEDB_NAME}`);
208
- return process.env.NILEDB_NAME;
225
+ logger && info(`${logger}[NILEDB_NAME] ${name}`);
226
+ return name;
209
227
  }
210
228
  if (process.env.NILEDB_POSTGRES_URL) {
211
229
  try {
@@ -277,6 +295,10 @@ function getDbHost(cfg) {
277
295
  logger && info(`${logger}[config] ${config?.db?.host}`);
278
296
  return String(config?.db?.host);
279
297
  }
298
+ if (stringCheck(process.env.NILEDB_HOST)) {
299
+ logger && info(`${logger}[NILEDB_HOST] ${process.env.NILEDB_HOST}`);
300
+ return process.env.NILEDB_HOST;
301
+ }
280
302
  const pg2 = stringCheck(process.env.NILEDB_POSTGRES_URL);
281
303
  if (pg2) {
282
304
  try {
@@ -286,10 +308,6 @@ function getDbHost(cfg) {
286
308
  } catch (e) {
287
309
  }
288
310
  }
289
- if (stringCheck(process.env.NILEDB_HOST)) {
290
- logger && info(`${logger}[NILEDB_HOST] ${process.env.NILEDB_HOST}`);
291
- return process.env.NILEDB_HOST;
292
- }
293
311
  logger && info(`${logger}[default] db.thenile.dev`);
294
312
  return "db.thenile.dev";
295
313
  }
@@ -574,7 +592,11 @@ async function auth(req, config) {
574
592
  }
575
593
  info("session active");
576
594
  try {
577
- return await new Response(res.body).json();
595
+ const session = await new Response(res.body).json();
596
+ if (Object.keys(session).length === 0) {
597
+ return void 0;
598
+ }
599
+ return session;
578
600
  } catch (e) {
579
601
  error(e);
580
602
  return void 0;
@@ -1390,17 +1412,15 @@ function matches8(configRoutes, request2) {
1390
1412
  // src/api/routes/auth/callback.ts
1391
1413
  var key6 = "CALLBACK";
1392
1414
  async function route9(req, config) {
1393
- const { debug, error } = Logger(
1415
+ const { error } = Logger(
1394
1416
  { ...config, debug: config.debug },
1395
1417
  `[ROUTES][${key6}]`
1396
1418
  );
1397
1419
  const [provider] = new URL(req.url).pathname.split("/").reverse();
1398
- debug(provider);
1399
1420
  try {
1400
1421
  const passThroughUrl = new URL(req.url);
1401
1422
  const params = new URLSearchParams(passThroughUrl.search);
1402
1423
  const url = `${proxyRoutes(config)[key6]}/${provider}${params.toString() !== "" ? `?${params.toString()}` : ""}`;
1403
- debug("params", { params, passThroughUrl, url, req });
1404
1424
  const res = await request(
1405
1425
  url,
1406
1426
  {
@@ -1411,7 +1431,6 @@ async function route9(req, config) {
1411
1431
  ).catch((e) => {
1412
1432
  error("an error as occurred", e);
1413
1433
  });
1414
- debug("did the res come back?", { res });
1415
1434
  const location = res?.headers.get("location");
1416
1435
  if (location) {
1417
1436
  return new Response(res?.body, {
@@ -1952,10 +1971,14 @@ var Auth = class extends Config {
1952
1971
  get sessionUrl() {
1953
1972
  return "/auth/session";
1954
1973
  }
1955
- session = async (req, init) => {
1974
+ getSession = async (req, init) => {
1956
1975
  const _requester = new Requester(this);
1957
1976
  const _init = this.handleHeaders(init);
1958
- return await _requester.get(req, this.sessionUrl, _init);
1977
+ const session = await _requester.get(req, this.sessionUrl, _init);
1978
+ if (Object.keys(session).length === 0) {
1979
+ return void 0;
1980
+ }
1981
+ return session;
1959
1982
  };
1960
1983
  };
1961
1984
 
@@ -2158,6 +2181,7 @@ var Api = class {
2158
2181
  auth;
2159
2182
  tenants;
2160
2183
  routes;
2184
+ _headers;
2161
2185
  handlers;
2162
2186
  paths;
2163
2187
  constructor(config) {
@@ -2216,10 +2240,19 @@ var Api = class {
2216
2240
  this.users = new Users(this.config, headers);
2217
2241
  this.tenants = new Tenants(this.config, headers);
2218
2242
  this.auth = new Auth(this.config, headers);
2243
+ this._headers = headers;
2219
2244
  }
2220
2245
  async login(payload) {
2221
2246
  this.headers = await serverLogin(this.config, this.handlers)(payload);
2222
2247
  }
2248
+ async session(req) {
2249
+ if (req instanceof Headers) {
2250
+ return this.auth.getSession(req);
2251
+ } else if (req instanceof Request) {
2252
+ return auth(req, this.config);
2253
+ }
2254
+ return this.auth.getSession(this._headers);
2255
+ }
2223
2256
  };
2224
2257
 
2225
2258
  // src/Server.ts