@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 +10 -8
- package/dist/index.d.ts +10 -8
- package/dist/index.js +60 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
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
|
|
74
|
-
familyName
|
|
75
|
-
givenName
|
|
76
|
-
picture
|
|
73
|
+
name?: string | null;
|
|
74
|
+
familyName?: string | null;
|
|
75
|
+
givenName?: string | null;
|
|
76
|
+
picture?: string | null;
|
|
77
77
|
created: string;
|
|
78
|
-
updated
|
|
79
|
-
emailVerified
|
|
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:
|
|
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
|
-
|
|
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
|
|
74
|
-
familyName
|
|
75
|
-
givenName
|
|
76
|
-
picture
|
|
73
|
+
name?: string | null;
|
|
74
|
+
familyName?: string | null;
|
|
75
|
+
givenName?: string | null;
|
|
76
|
+
picture?: string | null;
|
|
77
77
|
created: string;
|
|
78
|
-
updated
|
|
79
|
-
emailVerified
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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
|
-
|
|
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] ${
|
|
194
|
-
return
|
|
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] ${
|
|
208
|
-
return
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
1974
|
+
getSession = async (req, init) => {
|
|
1956
1975
|
const _requester = new Requester(this);
|
|
1957
1976
|
const _init = this.handleHeaders(init);
|
|
1958
|
-
|
|
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
|