wabe 0.6.11 → 0.6.13

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 (162) hide show
  1. package/dist/authentication/Session.d.ts +10 -12
  2. package/dist/authentication/cookies.d.ts +1 -0
  3. package/dist/authentication/index.d.ts +1 -0
  4. package/dist/authentication/interface.d.ts +20 -0
  5. package/dist/authentication/security.d.ts +18 -0
  6. package/dist/database/DatabaseController.d.ts +57 -3
  7. package/dist/database/interface.d.ts +5 -0
  8. package/dist/file/interface.d.ts +23 -0
  9. package/dist/file/security.d.ts +6 -0
  10. package/dist/graphql/GraphQLSchema.d.ts +1 -1
  11. package/dist/graphql/resolvers.d.ts +1 -0
  12. package/dist/hooks/protected.d.ts +3 -0
  13. package/dist/hooks/virtualFields.d.ts +3 -0
  14. package/dist/index.js +1757 -818
  15. package/dist/schema/Schema.d.ts +66 -7
  16. package/dist/server/index.d.ts +2 -1
  17. package/dist/server/routes/index.d.ts +4 -1
  18. package/dist/utils/database.d.ts +1 -0
  19. package/dist/utils/export.d.ts +1 -0
  20. package/dist/utils/index.d.ts +1 -0
  21. package/package.json +7 -4
  22. package/bucket/b.txt +0 -1
  23. package/dev/index.ts +0 -215
  24. package/generated/schema.graphql +0 -1892
  25. package/generated/wabe.ts +0 -439
  26. package/src/authentication/OTP.test.ts +0 -69
  27. package/src/authentication/OTP.ts +0 -64
  28. package/src/authentication/Session.test.ts +0 -629
  29. package/src/authentication/Session.ts +0 -493
  30. package/src/authentication/defaultAuthentication.ts +0 -209
  31. package/src/authentication/index.ts +0 -3
  32. package/src/authentication/interface.ts +0 -155
  33. package/src/authentication/oauth/GitHub.test.ts +0 -91
  34. package/src/authentication/oauth/GitHub.ts +0 -121
  35. package/src/authentication/oauth/Google.test.ts +0 -91
  36. package/src/authentication/oauth/Google.ts +0 -101
  37. package/src/authentication/oauth/Oauth2Client.test.ts +0 -219
  38. package/src/authentication/oauth/Oauth2Client.ts +0 -135
  39. package/src/authentication/oauth/index.ts +0 -2
  40. package/src/authentication/oauth/utils.test.ts +0 -33
  41. package/src/authentication/oauth/utils.ts +0 -27
  42. package/src/authentication/providers/EmailOTP.test.ts +0 -127
  43. package/src/authentication/providers/EmailOTP.ts +0 -84
  44. package/src/authentication/providers/EmailPassword.test.ts +0 -176
  45. package/src/authentication/providers/EmailPassword.ts +0 -116
  46. package/src/authentication/providers/EmailPasswordSRP.test.ts +0 -208
  47. package/src/authentication/providers/EmailPasswordSRP.ts +0 -179
  48. package/src/authentication/providers/GitHub.ts +0 -24
  49. package/src/authentication/providers/Google.ts +0 -24
  50. package/src/authentication/providers/OAuth.test.ts +0 -185
  51. package/src/authentication/providers/OAuth.ts +0 -106
  52. package/src/authentication/providers/PhonePassword.test.ts +0 -176
  53. package/src/authentication/providers/PhonePassword.ts +0 -115
  54. package/src/authentication/providers/QRCodeOTP.test.ts +0 -77
  55. package/src/authentication/providers/QRCodeOTP.ts +0 -58
  56. package/src/authentication/providers/index.ts +0 -6
  57. package/src/authentication/resolvers/refreshResolver.test.ts +0 -30
  58. package/src/authentication/resolvers/refreshResolver.ts +0 -19
  59. package/src/authentication/resolvers/signInWithResolver.inte.test.ts +0 -59
  60. package/src/authentication/resolvers/signInWithResolver.test.ts +0 -293
  61. package/src/authentication/resolvers/signInWithResolver.ts +0 -92
  62. package/src/authentication/resolvers/signOutResolver.test.ts +0 -38
  63. package/src/authentication/resolvers/signOutResolver.ts +0 -18
  64. package/src/authentication/resolvers/signUpWithResolver.test.ts +0 -180
  65. package/src/authentication/resolvers/signUpWithResolver.ts +0 -65
  66. package/src/authentication/resolvers/verifyChallenge.test.ts +0 -133
  67. package/src/authentication/resolvers/verifyChallenge.ts +0 -62
  68. package/src/authentication/roles.test.ts +0 -49
  69. package/src/authentication/roles.ts +0 -40
  70. package/src/authentication/utils.test.ts +0 -97
  71. package/src/authentication/utils.ts +0 -39
  72. package/src/cache/InMemoryCache.test.ts +0 -62
  73. package/src/cache/InMemoryCache.ts +0 -45
  74. package/src/cron/index.test.ts +0 -17
  75. package/src/cron/index.ts +0 -43
  76. package/src/database/DatabaseController.test.ts +0 -613
  77. package/src/database/DatabaseController.ts +0 -1007
  78. package/src/database/index.test.ts +0 -1372
  79. package/src/database/index.ts +0 -9
  80. package/src/database/interface.ts +0 -302
  81. package/src/email/DevAdapter.ts +0 -7
  82. package/src/email/EmailController.test.ts +0 -29
  83. package/src/email/EmailController.ts +0 -13
  84. package/src/email/index.ts +0 -2
  85. package/src/email/interface.ts +0 -36
  86. package/src/email/templates/sendOtpCode.ts +0 -120
  87. package/src/file/FileController.ts +0 -28
  88. package/src/file/FileDevAdapter.ts +0 -51
  89. package/src/file/hookDeleteFile.ts +0 -25
  90. package/src/file/hookReadFile.ts +0 -66
  91. package/src/file/hookUploadFile.ts +0 -50
  92. package/src/file/index.test.ts +0 -932
  93. package/src/file/index.ts +0 -2
  94. package/src/file/interface.ts +0 -39
  95. package/src/graphql/GraphQLSchema.test.ts +0 -4408
  96. package/src/graphql/GraphQLSchema.ts +0 -880
  97. package/src/graphql/index.ts +0 -2
  98. package/src/graphql/parseGraphqlSchema.ts +0 -85
  99. package/src/graphql/parser.test.ts +0 -203
  100. package/src/graphql/parser.ts +0 -542
  101. package/src/graphql/pointerAndRelationFunction.ts +0 -191
  102. package/src/graphql/resolvers.ts +0 -442
  103. package/src/graphql/tests/aggregation.test.ts +0 -1115
  104. package/src/graphql/tests/e2e.test.ts +0 -590
  105. package/src/graphql/tests/scalars.test.ts +0 -250
  106. package/src/graphql/types.ts +0 -227
  107. package/src/hooks/HookObject.test.ts +0 -122
  108. package/src/hooks/HookObject.ts +0 -165
  109. package/src/hooks/authentication.ts +0 -67
  110. package/src/hooks/createUser.test.ts +0 -77
  111. package/src/hooks/createUser.ts +0 -10
  112. package/src/hooks/defaultFields.test.ts +0 -176
  113. package/src/hooks/defaultFields.ts +0 -32
  114. package/src/hooks/deleteSession.test.ts +0 -181
  115. package/src/hooks/deleteSession.ts +0 -20
  116. package/src/hooks/hashFieldHook.test.ts +0 -152
  117. package/src/hooks/hashFieldHook.ts +0 -89
  118. package/src/hooks/index.test.ts +0 -258
  119. package/src/hooks/index.ts +0 -414
  120. package/src/hooks/permissions.test.ts +0 -412
  121. package/src/hooks/permissions.ts +0 -93
  122. package/src/hooks/protected.test.ts +0 -551
  123. package/src/hooks/protected.ts +0 -60
  124. package/src/hooks/searchableFields.test.ts +0 -147
  125. package/src/hooks/searchableFields.ts +0 -86
  126. package/src/hooks/session.test.ts +0 -134
  127. package/src/hooks/session.ts +0 -76
  128. package/src/hooks/setEmail.test.ts +0 -216
  129. package/src/hooks/setEmail.ts +0 -33
  130. package/src/hooks/setupAcl.test.ts +0 -618
  131. package/src/hooks/setupAcl.ts +0 -25
  132. package/src/index.ts +0 -9
  133. package/src/schema/Schema.test.ts +0 -482
  134. package/src/schema/Schema.ts +0 -757
  135. package/src/schema/defaultResolvers.ts +0 -93
  136. package/src/schema/index.ts +0 -1
  137. package/src/schema/resolvers/meResolver.test.ts +0 -62
  138. package/src/schema/resolvers/meResolver.ts +0 -10
  139. package/src/schema/resolvers/resetPassword.test.ts +0 -341
  140. package/src/schema/resolvers/resetPassword.ts +0 -63
  141. package/src/schema/resolvers/sendEmail.test.ts +0 -118
  142. package/src/schema/resolvers/sendEmail.ts +0 -21
  143. package/src/schema/resolvers/sendOtpCode.test.ts +0 -141
  144. package/src/schema/resolvers/sendOtpCode.ts +0 -52
  145. package/src/security.test.ts +0 -3434
  146. package/src/server/defaultSessionHandler.test.ts +0 -62
  147. package/src/server/defaultSessionHandler.ts +0 -105
  148. package/src/server/generateCodegen.ts +0 -433
  149. package/src/server/index.test.ts +0 -532
  150. package/src/server/index.ts +0 -334
  151. package/src/server/interface.ts +0 -11
  152. package/src/server/routes/authHandler.ts +0 -169
  153. package/src/server/routes/index.ts +0 -39
  154. package/src/utils/crypto.test.ts +0 -41
  155. package/src/utils/crypto.ts +0 -105
  156. package/src/utils/export.ts +0 -11
  157. package/src/utils/helper.ts +0 -204
  158. package/src/utils/index.test.ts +0 -11
  159. package/src/utils/index.ts +0 -189
  160. package/src/utils/preload.ts +0 -8
  161. package/src/utils/testHelper.ts +0 -116
  162. package/tsconfig.json +0 -32
@@ -1,482 +0,0 @@
1
- import { describe, expect, it } from 'bun:test'
2
- import { Schema } from './Schema'
3
- import { RoleEnum } from '../../generated/wabe'
4
- import type { DevWabeTypes } from '../utils/helper'
5
-
6
- describe('Schema', () => {
7
- it('should merge default class with custom class', () => {
8
- const schema = new Schema<DevWabeTypes>({
9
- schema: {
10
- classes: [
11
- {
12
- name: 'Class1',
13
- fields: {
14
- field1: {
15
- type: 'String',
16
- },
17
- field2: {
18
- type: 'Int',
19
- },
20
- },
21
- },
22
- {
23
- name: 'Class2',
24
- fields: {
25
- field3: {
26
- type: 'String',
27
- },
28
- field4: {
29
- type: 'Int',
30
- },
31
- },
32
- },
33
- {
34
- name: 'Class1',
35
- fields: {
36
- fields3: {
37
- type: 'String',
38
- },
39
- },
40
- },
41
- ],
42
- },
43
- } as any)
44
-
45
- expect(schema.schema?.classes?.[0]).toEqual({
46
- name: 'Class1',
47
- fields: {
48
- field1: {
49
- type: 'String',
50
- },
51
- field2: {
52
- type: 'Int',
53
- },
54
- fields3: {
55
- type: 'String',
56
- },
57
- createdAt: {
58
- type: 'Date',
59
- },
60
- updatedAt: {
61
- type: 'Date',
62
- },
63
- acl: expect.any(Object),
64
- search: {
65
- type: 'Array',
66
- typeValue: 'String',
67
- },
68
- },
69
- })
70
-
71
- expect(schema.schema?.classes?.[1]).toEqual({
72
- name: 'Class2',
73
- fields: {
74
- field3: {
75
- type: 'String',
76
- },
77
- field4: {
78
- type: 'Int',
79
- },
80
- createdAt: {
81
- type: 'Date',
82
- },
83
- updatedAt: {
84
- type: 'Date',
85
- },
86
- acl: expect.any(Object),
87
- search: {
88
- type: 'Array',
89
- typeValue: 'String',
90
- },
91
- },
92
- })
93
- })
94
-
95
- it('should merge default class with custom class with resolvers', () => {
96
- const schema = new Schema({
97
- schema: {
98
- classes: [
99
- {
100
- name: 'Class1',
101
- fields: {
102
- field1: {
103
- type: 'String',
104
- },
105
- field2: {
106
- type: 'Int',
107
- },
108
- },
109
- },
110
- {
111
- name: 'Class2',
112
- fields: {
113
- field3: {
114
- type: 'String',
115
- },
116
- field4: {
117
- type: 'Int',
118
- },
119
- },
120
- },
121
- {
122
- name: 'Class1',
123
- fields: {
124
- field1: {
125
- type: 'Int',
126
- defaultValue: 1,
127
- },
128
- },
129
- },
130
- ],
131
- resolvers: {
132
- queries: {
133
- getClass1: {
134
- type: 'String',
135
- resolve: () => 'Class1',
136
- },
137
- getClass2: {
138
- type: 'String',
139
- resolve: () => 'Class1',
140
- },
141
- },
142
- },
143
- },
144
- } as any)
145
-
146
- expect(schema.schema?.classes?.[0]).toEqual({
147
- name: 'Class1',
148
- fields: expect.objectContaining({
149
- field1: {
150
- type: 'Int',
151
- defaultValue: 1,
152
- },
153
- field2: {
154
- type: 'Int',
155
- },
156
- createdAt: {
157
- type: 'Date',
158
- },
159
- updatedAt: {
160
- type: 'Date',
161
- },
162
- acl: expect.any(Object),
163
- }),
164
- })
165
-
166
- expect(schema.schema?.classes?.[1]).toEqual({
167
- name: 'Class2',
168
- fields: expect.objectContaining({
169
- field3: {
170
- type: 'String',
171
- },
172
- field4: {
173
- type: 'Int',
174
- },
175
- createdAt: {
176
- type: 'Date',
177
- },
178
- updatedAt: {
179
- type: 'Date',
180
- },
181
- acl: expect.any(Object),
182
- }),
183
- })
184
- })
185
-
186
- it('should merge default class with custom class with field with same name', () => {
187
- const schema = new Schema({
188
- schema: {
189
- classes: [
190
- {
191
- name: 'Class1',
192
- fields: {
193
- field1: {
194
- type: 'String',
195
- },
196
- field2: {
197
- type: 'Int',
198
- },
199
- },
200
- },
201
- {
202
- name: 'Class2',
203
- fields: {
204
- field3: {
205
- type: 'String',
206
- },
207
- field4: {
208
- type: 'Int',
209
- },
210
- },
211
- },
212
- {
213
- name: 'Class1',
214
- fields: {
215
- field1: {
216
- type: 'Int',
217
- defaultValue: 1,
218
- },
219
- },
220
- },
221
- ],
222
- },
223
- } as any)
224
-
225
- expect(schema.schema?.classes?.[0]).toEqual({
226
- name: 'Class1',
227
- fields: expect.objectContaining({
228
- field1: {
229
- type: 'Int',
230
- defaultValue: 1,
231
- },
232
- field2: {
233
- type: 'Int',
234
- },
235
- createdAt: {
236
- type: 'Date',
237
- },
238
- updatedAt: {
239
- type: 'Date',
240
- },
241
- acl: expect.any(Object),
242
- }),
243
- })
244
-
245
- expect(schema.schema?.classes?.[1]).toEqual({
246
- name: 'Class2',
247
- fields: expect.objectContaining({
248
- field3: {
249
- type: 'String',
250
- },
251
- field4: {
252
- type: 'Int',
253
- },
254
- createdAt: {
255
- type: 'Date',
256
- },
257
- updatedAt: {
258
- type: 'Date',
259
- },
260
- acl: expect.any(Object),
261
- }),
262
- })
263
- })
264
-
265
- it('should merge default class with custom class with same different description', () => {
266
- const schema = new Schema({
267
- schema: {
268
- classes: [
269
- {
270
- name: 'Class1',
271
- description: 'Class1 description',
272
- fields: {
273
- field1: {
274
- type: 'String',
275
- },
276
- field2: {
277
- type: 'Int',
278
- },
279
- },
280
- },
281
- {
282
- name: 'Class2',
283
- fields: {
284
- field3: {
285
- type: 'String',
286
- },
287
- field4: {
288
- type: 'Int',
289
- },
290
- },
291
- },
292
- {
293
- name: 'Class1',
294
- description: 'new Class1 description',
295
- fields: {
296
- field1: {
297
- type: 'Int',
298
- defaultValue: 1,
299
- },
300
- },
301
- },
302
- ],
303
- },
304
- } as any)
305
-
306
- expect(schema.schema?.classes?.[0]).toEqual({
307
- name: 'Class1',
308
- description: 'new Class1 description',
309
- fields: expect.objectContaining({
310
- field1: {
311
- type: 'Int',
312
- defaultValue: 1,
313
- },
314
- field2: {
315
- type: 'Int',
316
- },
317
- createdAt: {
318
- type: 'Date',
319
- },
320
- updatedAt: {
321
- type: 'Date',
322
- },
323
- acl: expect.any(Object),
324
- }),
325
- })
326
-
327
- expect(schema.schema?.classes?.[1]).toEqual({
328
- name: 'Class2',
329
- fields: expect.objectContaining({
330
- field3: {
331
- type: 'String',
332
- },
333
- field4: {
334
- type: 'Int',
335
- },
336
- createdAt: {
337
- type: 'Date',
338
- },
339
- updatedAt: {
340
- type: 'Date',
341
- },
342
- acl: expect.any(Object),
343
- }),
344
- })
345
- })
346
-
347
- it('should add default enums', () => {
348
- const schema = new Schema({
349
- schema: {
350
- classes: [],
351
- enums: [
352
- {
353
- name: 'EnumTest',
354
- values: {
355
- A: 'A',
356
- B: 'B',
357
- },
358
- },
359
- ],
360
- },
361
- } as any)
362
-
363
- expect(schema.schema.enums).toEqual(
364
- expect.arrayContaining([
365
- {
366
- name: 'EnumTest',
367
- values: {
368
- A: 'A',
369
- B: 'B',
370
- },
371
- },
372
- {
373
- name: 'AuthenticationProvider',
374
- values: expect.any(Object),
375
- },
376
- {
377
- name: 'SecondaryFactor',
378
- values: expect.any(Object),
379
- },
380
- ]),
381
- )
382
- })
383
-
384
- it('should overwrite class permissions', () => {
385
- const schema = new Schema({
386
- schema: {
387
- classes: [
388
- {
389
- name: 'User',
390
- fields: {},
391
- permissions: {
392
- read: {
393
- requireAuthentication: false,
394
- },
395
- update: {
396
- requireAuthentication: false,
397
- },
398
- },
399
- },
400
- ],
401
- },
402
- } as any)
403
-
404
- const userClass = schema.schema?.classes?.find((schemaClass) => schemaClass.name === 'User')
405
-
406
- expect(userClass?.permissions).toEqual({
407
- // Default permissions
408
- create: {
409
- requireAuthentication: false,
410
- },
411
- delete: {
412
- authorizedRoles: [],
413
- requireAuthentication: true,
414
- },
415
- // Overwrite permissions
416
- read: {
417
- requireAuthentication: false,
418
- },
419
- update: {
420
- requireAuthentication: false,
421
- },
422
- })
423
- })
424
-
425
- it('should merge default class with permissions', () => {
426
- const schema = new Schema<DevWabeTypes>({
427
- schema: {
428
- classes: [
429
- {
430
- name: '_Session',
431
- fields: {},
432
- permissions: {
433
- read: {
434
- authorizedRoles: [RoleEnum.Admin],
435
- requireAuthentication: true,
436
- },
437
- update: {
438
- authorizedRoles: [RoleEnum.Admin],
439
- requireAuthentication: true,
440
- },
441
- delete: {
442
- authorizedRoles: [RoleEnum.Admin],
443
- requireAuthentication: true,
444
- },
445
- create: {
446
- authorizedRoles: [RoleEnum.Admin],
447
- requireAuthentication: true,
448
- },
449
- },
450
- },
451
- ],
452
- },
453
- } as any)
454
-
455
- const _sessionClass = schema.schema?.classes?.find(
456
- (schemaClass) => schemaClass.name === '_Session',
457
- )
458
-
459
- expect(_sessionClass).toEqual({
460
- name: '_Session',
461
- fields: expect.anything(),
462
- permissions: {
463
- read: {
464
- authorizedRoles: [RoleEnum.Admin],
465
- requireAuthentication: true,
466
- },
467
- update: {
468
- authorizedRoles: [RoleEnum.Admin],
469
- requireAuthentication: true,
470
- },
471
- delete: {
472
- authorizedRoles: [RoleEnum.Admin],
473
- requireAuthentication: true,
474
- },
475
- create: {
476
- authorizedRoles: [RoleEnum.Admin],
477
- requireAuthentication: true,
478
- },
479
- },
480
- })
481
- })
482
- })