@nymphjs/tilmeld-client 1.0.0-beta.11 → 1.0.0-beta.111

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.
@@ -0,0 +1,333 @@
1
+ import { type Server } from 'node:http';
2
+ import express from 'express';
3
+ import SQLite3Driver from '@nymphjs/driver-sqlite3';
4
+ import { Nymph as NymphServer } from '@nymphjs/nymph';
5
+ import { Nymph } from '@nymphjs/client';
6
+ import { type NymphOptions } from '@nymphjs/client';
7
+ import {
8
+ Tilmeld,
9
+ type Config as TilmeldConfig,
10
+ User as UserModelClass,
11
+ Group as GroupModelClass,
12
+ } from '@nymphjs/tilmeld';
13
+ import createServer from '@nymphjs/server';
14
+
15
+ import {
16
+ User as UserClass,
17
+ Group as GroupClass,
18
+ CurrentUserData,
19
+ } from './index.js';
20
+
21
+ describe('Tilmeld Client', () => {
22
+ let server: Server | undefined = undefined;
23
+
24
+ afterEach(async () => {
25
+ await new Promise<void>((resolve) => {
26
+ if (server) {
27
+ server.close(() => resolve()); // avoid jest open handle error
28
+ } else {
29
+ resolve();
30
+ }
31
+ });
32
+ });
33
+
34
+ async function createNymphTilmeldServer(
35
+ config?: Partial<TilmeldConfig>,
36
+ clientConfig?: Partial<NymphOptions>,
37
+ ) {
38
+ // Wait for next event loop.
39
+ await new Promise((resolve) => setTimeout(resolve, 50));
40
+
41
+ const sqliteConfig = {
42
+ filename: ':memory:',
43
+ };
44
+
45
+ const tilmeld = new Tilmeld({
46
+ jwtSecret: 'supersecrettestingsecret',
47
+ allowRegistration: true,
48
+ verifyEmail: false,
49
+ emailUsernames: false,
50
+ ...config,
51
+ });
52
+ const nymphServer = new NymphServer(
53
+ {},
54
+ new SQLite3Driver(sqliteConfig),
55
+ tilmeld,
56
+ );
57
+ const UserModel = nymphServer.addEntityClass(UserModelClass);
58
+ const GroupModel = nymphServer.addEntityClass(GroupModelClass);
59
+
60
+ const app = express();
61
+ app.use('/test', createServer(nymphServer));
62
+ server = app.listen(5084);
63
+
64
+ const nymph = new Nymph({
65
+ restUrl: 'http://localhost:5084/test/',
66
+ ...(clientConfig ?? {}),
67
+ });
68
+ const User = nymph.addEntityClass(UserClass);
69
+ User.init(nymph);
70
+ const Group = nymph.addEntityClass(GroupClass);
71
+
72
+ return {
73
+ tilmeld,
74
+ nymphServer,
75
+ UserModel,
76
+ GroupModel,
77
+ app,
78
+ nymph,
79
+ User,
80
+ Group,
81
+ };
82
+ }
83
+
84
+ async function createAdmin(User: typeof UserClass) {
85
+ const admin = User.factorySync() as UserClass & CurrentUserData;
86
+ admin.username = 'admin';
87
+ admin.email = 'root@localhost';
88
+ admin.nameFirst = 'Admin';
89
+ admin.nameLast = 'User';
90
+
91
+ try {
92
+ const result = await admin.$register({
93
+ password: 'supersecretadminpassword',
94
+ });
95
+
96
+ return { result, admin };
97
+ } catch (e: any) {
98
+ console.error('Error creating admin:', e);
99
+ throw e;
100
+ }
101
+ }
102
+
103
+ async function createUser(User: typeof UserClass) {
104
+ const user = User.factorySync() as UserClass & CurrentUserData;
105
+ user.username = 'user';
106
+ user.email = 'user@localhost';
107
+ user.nameFirst = 'Some';
108
+ user.nameLast = 'User';
109
+
110
+ try {
111
+ const result = await user.$register({
112
+ password: 'supersecretuserpassword',
113
+ });
114
+
115
+ return { result, user };
116
+ } catch (e: any) {
117
+ console.error('Error creating user:', e);
118
+ throw e;
119
+ }
120
+ }
121
+
122
+ it('get client config', async () => {
123
+ const { User } = await createNymphTilmeldServer();
124
+
125
+ const result = await User.getClientConfig();
126
+
127
+ expect(result).not.toBeNull();
128
+ expect(result.verifyEmail).toBeFalsy();
129
+ });
130
+
131
+ it('produce errors when register data is incorrect', async () => {
132
+ const { User } = await createNymphTilmeldServer();
133
+
134
+ try {
135
+ const admin = User.factorySync() as UserClass & CurrentUserData;
136
+
137
+ let result = await admin.$register({
138
+ password: 'supersecretadminpassword',
139
+ });
140
+
141
+ expect(result.result).toBeFalsy();
142
+ expect(result.loggedin).toBeFalsy();
143
+ expect(result.message).toEqual('Please specify a username.');
144
+ expect(admin.guid).toBeNull();
145
+
146
+ admin.username = 'admin';
147
+ try {
148
+ expect(
149
+ (result = await admin.$register({
150
+ password: 'supersecretadminpassword',
151
+ })),
152
+ ).toThrow();
153
+ } catch (e: any) {
154
+ expect(e.status).toEqual(400);
155
+ expect(e.message).toEqual('Please specify a valid email.');
156
+ }
157
+
158
+ admin.email = 'root@localhost';
159
+ try {
160
+ expect(
161
+ (result = await admin.$register({
162
+ password: 'supersecretadminpassword',
163
+ })),
164
+ ).toThrow();
165
+ } catch (e: any) {
166
+ expect(e.status).toEqual(400);
167
+ expect(e.message).toEqual('Invalid Group: "name" is required');
168
+ }
169
+
170
+ expect(admin.guid).toBeNull();
171
+ } catch (e: any) {
172
+ console.error('Error running test: ', e);
173
+ throw e;
174
+ }
175
+ });
176
+
177
+ it('create admin user', async () => {
178
+ const { User } = await createNymphTilmeldServer();
179
+
180
+ try {
181
+ const { result, admin } = await createAdmin(User);
182
+
183
+ expect(result.result).toBeTruthy();
184
+ expect(result.loggedin).toBeTruthy();
185
+ expect(result.message).toEqual("You're now registered and logged in!");
186
+
187
+ expect(admin.guid).not.toBeNull();
188
+ expect(typeof admin.guid).toEqual('string');
189
+
190
+ const permission = await admin.$gatekeeper('system/admin');
191
+
192
+ expect(permission).toBeTruthy();
193
+ } catch (e: any) {
194
+ console.error('Error running test: ', e);
195
+ throw e;
196
+ }
197
+ });
198
+
199
+ it('logout', async () => {
200
+ const { User } = await createNymphTilmeldServer();
201
+
202
+ try {
203
+ const { admin } = await createAdmin(User);
204
+
205
+ const user1 = await User.current();
206
+
207
+ expect(user1?.guid).toEqual(admin.guid);
208
+
209
+ expect((await admin.$logout()).result).toBeTruthy();
210
+
211
+ const user2 = await User.current();
212
+
213
+ expect(user2).toBeNull();
214
+ } catch (e: any) {
215
+ console.error('Error running test: ', e);
216
+ throw e;
217
+ }
218
+ });
219
+
220
+ it('second user', async () => {
221
+ const { User } = await createNymphTilmeldServer();
222
+
223
+ try {
224
+ const { admin } = await createAdmin(User);
225
+ expect((await admin.$logout()).result).toBeTruthy();
226
+
227
+ const { result, user } = await createUser(User);
228
+
229
+ expect(result.result).toBeTruthy();
230
+ expect(result.loggedin).toBeTruthy();
231
+ expect(result.message).toEqual("You're now registered and logged in!");
232
+
233
+ expect(user.guid).not.toBeNull();
234
+ expect(typeof user.guid).toEqual('string');
235
+
236
+ const permission = await user.$gatekeeper('system/admin');
237
+
238
+ expect(permission).toBeFalsy();
239
+ } catch (e: any) {
240
+ console.error('Error running test: ', e);
241
+ throw e;
242
+ }
243
+ });
244
+
245
+ it("doesn't issue renewed token when not needed", async () => {
246
+ const { User, nymph } = await createNymphTilmeldServer({
247
+ jwtExpire: 5,
248
+ jwtRenew: 0,
249
+ });
250
+
251
+ let responses = 0;
252
+ nymph.on('response', (response) => {
253
+ if (responses === 0) {
254
+ expect(response.headers.get('set-cookie')).toMatch(
255
+ /^TILMELDAUTH=[^;]+; Max-Age=5; Domain=localhost; Path=\/; Expires=[^;]+; SameSite=Strict$/,
256
+ );
257
+ } else {
258
+ expect(response.headers.has('set-cookie')).toBeFalsy();
259
+ }
260
+ responses++;
261
+ });
262
+
263
+ try {
264
+ const { admin } = await createAdmin(User);
265
+
266
+ expect(await admin.$gatekeeper()).toBeTruthy();
267
+
268
+ expect(responses).toEqual(2);
269
+ } catch (e: any) {
270
+ console.error('Error running test: ', e);
271
+ throw e;
272
+ }
273
+ });
274
+
275
+ it('issues renewed token when needed', async () => {
276
+ const { User, nymph } = await createNymphTilmeldServer({
277
+ jwtExpire: 5,
278
+ jwtRenew: 5,
279
+ });
280
+
281
+ let responses = 0;
282
+ nymph.on('response', (response) => {
283
+ expect(response.headers.get('set-cookie')).toMatch(
284
+ /^TILMELDAUTH=[^;]+; Max-Age=5; Domain=localhost; Path=\/; Expires=[^;]+; SameSite=Strict$/,
285
+ );
286
+ responses++;
287
+ });
288
+
289
+ try {
290
+ const { admin } = await createAdmin(User);
291
+
292
+ expect(await admin.$gatekeeper()).toBeTruthy();
293
+
294
+ expect(responses).toEqual(2);
295
+ } catch (e: any) {
296
+ console.error('Error running test: ', e);
297
+ throw e;
298
+ }
299
+ });
300
+
301
+ it("doesn't issue renewed token when requested", async () => {
302
+ const { User, nymph } = await createNymphTilmeldServer(
303
+ {
304
+ jwtExpire: 5,
305
+ jwtRenew: 5,
306
+ },
307
+ { renewTokens: false },
308
+ );
309
+
310
+ let responses = 0;
311
+ nymph.on('response', (response) => {
312
+ if (responses === 0) {
313
+ expect(response.headers.get('set-cookie')).toMatch(
314
+ /^TILMELDAUTH=[^;]+; Max-Age=5; Domain=localhost; Path=\/; Expires=[^;]+; SameSite=Strict$/,
315
+ );
316
+ } else {
317
+ expect(response.headers.has('set-cookie')).toBeFalsy();
318
+ }
319
+ responses++;
320
+ });
321
+
322
+ try {
323
+ const { admin } = await createAdmin(User);
324
+
325
+ expect(await admin.$gatekeeper()).toBeTruthy();
326
+
327
+ expect(responses).toEqual(2);
328
+ } catch (e: any) {
329
+ console.error('Error running test: ', e);
330
+ throw e;
331
+ }
332
+ });
333
+ });
package/src/index.ts CHANGED
@@ -1,9 +1,11 @@
1
- export * from './Group';
2
- import Group from './Group';
1
+ export * from './Group.js';
2
+ import Group from './Group.js';
3
3
  export { Group };
4
4
 
5
- export * from './helpers';
5
+ export * from './helpers.js';
6
6
 
7
- export * from './User';
8
- import User from './User';
7
+ export * from './Tilmeld.types.js';
8
+
9
+ export * from './User.js';
10
+ import User from './User.js';
9
11
  export { User };
package/tsconfig.json CHANGED
@@ -2,12 +2,14 @@
2
2
  "extends": "@tsconfig/recommended/tsconfig.json",
3
3
 
4
4
  "compilerOptions": {
5
- "lib": ["DOM", "ES2021"],
6
- "target": "ES2021",
5
+ "module": "ES2022",
6
+ "moduleResolution": "node",
7
+ "lib": ["DOM", "ES2022"],
8
+ "target": "ES2022",
7
9
  "noImplicitAny": true,
8
- "removeComments": true,
10
+ "removeComments": false,
9
11
  "sourceMap": true,
10
- "outDir": "lib",
12
+ "outDir": "dist",
11
13
  "resolveJsonModule": true,
12
14
  "rootDir": "src/",
13
15
  "declaration": true
package/typedoc.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": ["../../typedoc.base.json"],
3
+ "entryPoints": ["src/index.ts"]
4
+ }
package/lib/Group.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":";;AAAA,4CAA4D;AA8D5D,MAAqB,KAAM,SAAQ,eAAiB;IAIlD,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAA0B,CAAC,SAAS,GAAG,EAAE,CAAC;SACjD;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAa;QAChC,OAAO,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAsB,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAa;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAsB,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,eAAe;QAI1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,OAAO,GAAG,KAAK;QAEf,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,UAAwC;QAExC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,OAAiB,EACjB,SAAsB;QAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;YACrD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YAC9B,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,OAAiB,EACjB,SAAsB;QAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;YACvD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YAC9B,SAAS;SACV,CAAC,CAAC;IACL,CAAC;;AA1EH,wBA2EC;AAzEe,WAAK,GAAG,OAAO,CAAC"}
package/lib/User.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":"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"}
package/lib/helpers.d.ts DELETED
@@ -1,46 +0,0 @@
1
- import type UserClass from './User';
2
- import type { ClientConfig, CurrentUserData } from './User';
3
- export type RegistrationDetails = {
4
- username: string;
5
- password: string;
6
- password2: string;
7
- usernameVerified: boolean;
8
- email?: string;
9
- nameFirst?: string;
10
- nameLast?: string;
11
- phone?: string;
12
- additionalData?: {
13
- [k: string]: any;
14
- };
15
- };
16
- export declare function login(User: typeof UserClass, username: string, password: string, additionalData?: {
17
- [k: string]: any;
18
- }): Promise<{
19
- message: string;
20
- user?: (UserClass & import("./User").UserData & {
21
- abilities?: string[] | undefined;
22
- email?: string | undefined;
23
- phone?: string | undefined;
24
- group?: (import("./Group").default & import("./Group").GroupData & {
25
- abilities?: string[] | undefined;
26
- email?: string | undefined;
27
- phone?: string | undefined;
28
- user?: (UserClass & import("./User").UserData & any) | null | undefined;
29
- }) | undefined;
30
- groups?: (import("./Group").default & import("./Group").GroupData & {
31
- abilities?: string[] | undefined;
32
- email?: string | undefined;
33
- phone?: string | undefined;
34
- user?: (UserClass & import("./User").UserData & any) | null | undefined;
35
- })[] | undefined;
36
- inheritAbilities?: boolean | undefined;
37
- }) | undefined;
38
- }>;
39
- export declare function register(User: typeof UserClass, userDetails: RegistrationDetails, clientConfig?: ClientConfig): Promise<{
40
- loggedin: boolean;
41
- message: string;
42
- user?: UserClass & CurrentUserData;
43
- }>;
44
- export declare function checkUsername(User: typeof UserClass, username: string, clientConfig?: ClientConfig): Promise<{
45
- message: string;
46
- }>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export * from './Group';
2
- import Group from './Group';
3
- export { Group };
4
- export * from './helpers';
5
- export * from './User';
6
- import User from './User';
7
- export { User };
package/lib/index.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.User = exports.Group = void 0;
21
- __exportStar(require("./Group"), exports);
22
- const Group_1 = __importDefault(require("./Group"));
23
- exports.Group = Group_1.default;
24
- __exportStar(require("./helpers"), exports);
25
- __exportStar(require("./User"), exports);
26
- const User_1 = __importDefault(require("./User"));
27
- exports.User = User_1.default;
28
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,oDAA4B;AACnB,gBADF,eAAK,CACE;AAEd,4CAA0B;AAE1B,yCAAuB;AACvB,kDAA0B;AACjB,eADF,cAAI,CACE"}
package/webpack.config.js DELETED
@@ -1,31 +0,0 @@
1
- const path = require('path');
2
-
3
- module.exports = {
4
- mode: 'production',
5
- devtool: 'source-map',
6
- entry: {
7
- TilmeldClient: './lib/index.js',
8
- },
9
- output: {
10
- path: path.resolve(__dirname, 'dist'),
11
- filename: 'index.js',
12
- library: ['@nymphjs/tilmeld-client'],
13
- libraryTarget: 'umd',
14
- globalObject: 'this',
15
- },
16
- resolve: {
17
- extensions: ['.tsx', '.ts', '.js'],
18
- },
19
- externals: {
20
- '@nymphjs/client': '@nymphjs/client',
21
- },
22
- module: {
23
- rules: [
24
- {
25
- test: /\.tsx?$/,
26
- use: 'ts-loader',
27
- exclude: /node_modules/,
28
- },
29
- ],
30
- },
31
- };