@webda/core 4.0.0-beta.3 → 4.0.0-beta.4

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 (135) hide show
  1. package/lib/application/application.d.ts +31 -0
  2. package/lib/application/application.d.ts.map +1 -1
  3. package/lib/application/application.js +55 -2
  4. package/lib/application/application.js.map +1 -1
  5. package/lib/application/deployment.d.ts +93 -0
  6. package/lib/application/deployment.d.ts.map +1 -0
  7. package/lib/application/deployment.js +99 -0
  8. package/lib/application/deployment.js.map +1 -0
  9. package/lib/application/unpackedapplication.d.ts.map +1 -1
  10. package/lib/application/unpackedapplication.js +9 -1
  11. package/lib/application/unpackedapplication.js.map +1 -1
  12. package/lib/bin/cli.d.ts +36 -1
  13. package/lib/bin/cli.d.ts.map +1 -1
  14. package/lib/bin/cli.js +108 -2
  15. package/lib/bin/cli.js.map +1 -1
  16. package/lib/contexts/execution.js +1 -1
  17. package/lib/contexts/execution.js.map +1 -1
  18. package/lib/contexts/operationcontext.d.ts +3 -0
  19. package/lib/contexts/operationcontext.d.ts.map +1 -1
  20. package/lib/contexts/operationcontext.js +6 -3
  21. package/lib/contexts/operationcontext.js.map +1 -1
  22. package/lib/core/core.js +1 -1
  23. package/lib/core/core.js.map +1 -1
  24. package/lib/core/hooks.d.ts +22 -0
  25. package/lib/core/hooks.d.ts.map +1 -1
  26. package/lib/core/hooks.js +24 -0
  27. package/lib/core/hooks.js.map +1 -1
  28. package/lib/deployers/deployer.d.ts +157 -0
  29. package/lib/deployers/deployer.d.ts.map +1 -0
  30. package/lib/deployers/deployer.js +81 -0
  31. package/lib/deployers/deployer.js.map +1 -0
  32. package/lib/deployers/git.d.ts +27 -0
  33. package/lib/deployers/git.d.ts.map +1 -0
  34. package/lib/deployers/git.js +66 -0
  35. package/lib/deployers/git.js.map +1 -0
  36. package/lib/deployers/packager.d.ts +85 -0
  37. package/lib/deployers/packager.d.ts.map +1 -0
  38. package/lib/deployers/packager.js +259 -0
  39. package/lib/deployers/packager.js.map +1 -0
  40. package/lib/index.d.ts +8 -3
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +8 -3
  43. package/lib/index.js.map +1 -1
  44. package/lib/models/coremodel.model.d.ts.map +1 -1
  45. package/lib/models/coremodel.model.js.map +1 -1
  46. package/lib/models/decorator.d.ts +4 -0
  47. package/lib/models/decorator.d.ts.map +1 -1
  48. package/lib/models/decorator.js +4 -0
  49. package/lib/models/decorator.js.map +1 -1
  50. package/lib/models/deployment.d.ts +2 -21
  51. package/lib/models/deployment.d.ts.map +1 -1
  52. package/lib/models/encrypted.model.d.ts +46 -0
  53. package/lib/models/encrypted.model.d.ts.map +1 -0
  54. package/lib/models/encrypted.model.js +87 -0
  55. package/lib/models/encrypted.model.js.map +1 -0
  56. package/lib/models/ident.model.d.ts +103 -64
  57. package/lib/models/ident.model.d.ts.map +1 -1
  58. package/lib/models/ident.model.js +168 -76
  59. package/lib/models/ident.model.js.map +1 -1
  60. package/lib/models/ownermodel.model.d.ts.map +1 -1
  61. package/lib/models/ownermodel.model.js +2 -1
  62. package/lib/models/ownermodel.model.js.map +1 -1
  63. package/lib/models/password.model.d.ts +78 -0
  64. package/lib/models/password.model.d.ts.map +1 -0
  65. package/lib/models/password.model.js +171 -0
  66. package/lib/models/password.model.js.map +1 -0
  67. package/lib/models/refreshtoken.model.d.ts +30 -0
  68. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  69. package/lib/models/refreshtoken.model.js +29 -0
  70. package/lib/models/refreshtoken.model.js.map +1 -0
  71. package/lib/models/registry.model.d.ts.map +1 -1
  72. package/lib/models/registry.model.js.map +1 -1
  73. package/lib/models/simpleuser.model.d.ts.map +1 -1
  74. package/lib/models/simpleuser.model.js +2 -1
  75. package/lib/models/simpleuser.model.js.map +1 -1
  76. package/lib/models/user.model.d.ts +23 -23
  77. package/lib/models/user.model.d.ts.map +1 -1
  78. package/lib/models/user.model.js +68 -29
  79. package/lib/models/user.model.js.map +1 -1
  80. package/lib/services/audit.model.d.ts.map +1 -1
  81. package/lib/services/audit.model.js +2 -1
  82. package/lib/services/audit.model.js.map +1 -1
  83. package/lib/services/domainservice.service.d.ts +39 -0
  84. package/lib/services/domainservice.service.d.ts.map +1 -1
  85. package/lib/services/domainservice.service.js +78 -2
  86. package/lib/services/domainservice.service.js.map +1 -1
  87. package/lib/services/iauthentication.d.ts +196 -3
  88. package/lib/services/iauthentication.d.ts.map +1 -1
  89. package/lib/services/servicecommands.d.ts.map +1 -1
  90. package/lib/services/servicecommands.js +17 -11
  91. package/lib/services/servicecommands.js.map +1 -1
  92. package/lib/services/token.service.d.ts +95 -0
  93. package/lib/services/token.service.d.ts.map +1 -0
  94. package/lib/services/token.service.js +182 -0
  95. package/lib/services/token.service.js.map +1 -0
  96. package/lib/session/manager.model.d.ts +16 -0
  97. package/lib/session/manager.model.d.ts.map +1 -1
  98. package/lib/session/manager.model.js +58 -1
  99. package/lib/session/manager.model.js.map +1 -1
  100. package/lib/session/session.d.ts +44 -1
  101. package/lib/session/session.d.ts.map +1 -1
  102. package/lib/session/session.js +51 -2
  103. package/lib/session/session.js.map +1 -1
  104. package/lib/stores/memory.service.d.ts.map +1 -1
  105. package/lib/stores/memory.service.js +4 -3
  106. package/lib/stores/memory.service.js.map +1 -1
  107. package/lib/templates/templates.d.ts +8 -0
  108. package/lib/templates/templates.d.ts.map +1 -1
  109. package/lib/templates/templates.js +10 -1
  110. package/lib/templates/templates.js.map +1 -1
  111. package/lib/test/behavior-fixture.model.d.ts +30 -0
  112. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  113. package/lib/test/behavior-fixture.model.js +63 -0
  114. package/lib/test/behavior-fixture.model.js.map +1 -0
  115. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  116. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  117. package/lib/test/legacyident.fixture.model.js +125 -0
  118. package/lib/test/legacyident.fixture.model.js.map +1 -0
  119. package/lib/test/objects.d.ts +2 -2
  120. package/lib/test/objects.d.ts.map +1 -1
  121. package/lib/test/objects.js +2 -2
  122. package/lib/test/objects.js.map +1 -1
  123. package/package.json +25 -8
  124. package/test/config-cached.json +2 -1
  125. package/test/config.json +3 -1
  126. package/test/my-cnf.json +1 -1
  127. package/webda.module.json +653 -375
  128. package/lib/services/authentication.service.d.ts +0 -442
  129. package/lib/services/authentication.service.d.ts.map +0 -1
  130. package/lib/services/authentication.service.js +0 -932
  131. package/lib/services/authentication.service.js.map +0 -1
  132. package/lib/services/oauth.d.ts +0 -250
  133. package/lib/services/oauth.d.ts.map +0 -1
  134. package/lib/services/oauth.js +0 -405
  135. package/lib/services/oauth.js.map +0 -1
@@ -1,442 +0,0 @@
1
- import { Counter } from "../metrics/metrics.js";
2
- import { Ident } from "../models/ident.model.js";
3
- import type { User } from "../models/user.model.js";
4
- import { Service } from "../services/service.js";
5
- import type { OperationContext } from "../contexts/operationcontext.js";
6
- import { type HttpMethodType } from "../contexts/httpcontext.js";
7
- import type { CryptoService } from "./cryptoservice.service.js";
8
- import type { Mailer } from "./mailer.service.js";
9
- import { EventWithContext } from "../events/events.js";
10
- import { ServiceParameters } from "./serviceparameters.js";
11
- import { ServiceName } from "../core/hooks.js";
12
- import { WebContext } from "../contexts/webcontext.js";
13
- import type { ModelClass, Repository } from "@webda/models";
14
- /**
15
- * Emitted when the /me route is called
16
- */
17
- export interface EventAuthenticationGetMe<T extends User = User> extends EventWithContext {
18
- user: T;
19
- }
20
- /**
21
- * Emitted when new user registered
22
- */
23
- export interface EventAuthenticationRegister<T extends User = User> extends EventAuthenticationGetMe<T> {
24
- data: any;
25
- identId: string;
26
- }
27
- /**
28
- * Emitted when user logout
29
- */
30
- export interface EventAuthenticationLogout extends EventWithContext {
31
- }
32
- /**
33
- * Sent when a user update his password
34
- */
35
- export interface EventAuthenticationPasswordUpdate<T extends User = User> extends EventAuthenticationGetMe<T> {
36
- password: string;
37
- }
38
- /**
39
- * Emitted when user login
40
- */
41
- export interface EventAuthenticationLogin<T extends User = User> extends EventWithContext {
42
- userId: string;
43
- user?: T;
44
- identId: string;
45
- ident: Ident;
46
- }
47
- /**
48
- * Export when a user failed to authenticate with his password
49
- */
50
- export interface EventAuthenticationLoginFailed<T extends User = User> extends EventAuthenticationGetMe<T> {
51
- }
52
- /**
53
- * Implement a PasswordVerifier so you can implement
54
- * your own rules
55
- */
56
- export interface PasswordVerifier extends Service {
57
- /**
58
- * If the password is not valid, send a 400 exception or
59
- * return false
60
- *
61
- * @param password to verify
62
- * @param user to verify from
63
- */
64
- validate(password: string, user?: User): Promise<boolean>;
65
- }
66
- /**
67
- * Information required to reset a password
68
- */
69
- export interface PasswordRecoveryInfos {
70
- /**
71
- * Links are short lived
72
- */
73
- expire: number;
74
- /**
75
- * Generated token
76
- */
77
- token: string;
78
- /**
79
- * Login to reset password fors
80
- */
81
- login: string;
82
- }
83
- interface PasswordRecoveryBody extends PasswordRecoveryInfos {
84
- /**
85
- * Password to set
86
- */
87
- password: string;
88
- }
89
- /**
90
- * Login info
91
- *
92
- * If register = true, you can add many other information
93
- *
94
- * @SchemaAdditionalProperties
95
- */
96
- interface LoginBody {
97
- login: string;
98
- register?: boolean;
99
- token?: string;
100
- email?: string;
101
- password?: string;
102
- }
103
- /** Parameters for the Authentication service including identity, email, and password settings */
104
- export declare class AuthenticationParameters extends ServiceParameters {
105
- /**
106
- * Idents store for authentication identifiers
107
- *
108
- * @default "Webda/Ident"
109
- */
110
- identModel?: string;
111
- /**
112
- * User store for authentication users
113
- *
114
- * @default "Webda/User"
115
- */
116
- userModel?: string;
117
- /**
118
- * @default "/auth"
119
- */
120
- url?: string;
121
- /**
122
- * Enable the email authentication
123
- */
124
- email?: {
125
- /**
126
- * Mailer service name
127
- */
128
- mailer?: ServiceName;
129
- /**
130
- * Allow user to create their account without validating their email first
131
- */
132
- postValidation: boolean;
133
- /**
134
- * Do not even validate the email at all
135
- */
136
- skipEmailValidation: boolean;
137
- /**
138
- * Minimal delay between two password recovery or validation email
139
- *
140
- * @default 3600000 * 4
141
- */
142
- delay: number;
143
- /**
144
- * When a delay is added between two attempt to authenticate
145
- *
146
- * @default 3
147
- */
148
- failedLoginBeforeDelay: number;
149
- };
150
- password: {
151
- /**
152
- * Password verifier Service name
153
- */
154
- verifier?: ServiceName;
155
- /**
156
- * Regexp that password must check
157
- * @default "{8,}"
158
- */
159
- regexp?: string;
160
- };
161
- /**
162
- * Number of salt iteration for bcrypt.hashSync
163
- */
164
- salt: string;
165
- /**
166
- * Redirect to this page when email validation failed
167
- */
168
- failureRedirect: string;
169
- /**
170
- * Redirect to this page when email validation succeed
171
- */
172
- successRedirect: string;
173
- /**
174
- * Redirect to this page once email is validate to finish the registration process
175
- */
176
- registerRedirect: string;
177
- /**
178
- * Load parameters with defaults for authentication URLs, models, and password policy
179
- * @param params - the service parameters
180
- * @returns this for chaining
181
- */
182
- load(params?: any): this;
183
- }
184
- export type AuthenticationEvents = {
185
- "Authentication.GetMe": EventAuthenticationGetMe;
186
- "Authentication.Register": EventAuthenticationRegister;
187
- "Authentication.PasswordUpdate": EventAuthenticationPasswordUpdate;
188
- "Authentication.Logout": EventAuthenticationLogout;
189
- "Authentication.Login": EventAuthenticationLogin;
190
- "Authentication.LoginFailed": EventAuthenticationLoginFailed;
191
- "Authentication.PasswordCreate": EventAuthenticationPasswordUpdate;
192
- };
193
- /**
194
- * This class is known as the Authentication module
195
- * It handles OAuth for several providers for now (Facebook, Google, Amazon, GitHub and Twitter)
196
- * It also handles email authentication with prevalidation or postvalidation of the email
197
- *
198
- * It requires two Store to work one `idents` and one `users`
199
- *
200
- * The parameters are
201
- * ```
202
- * providerName: {
203
- * clientID: '...',
204
- * clientSecret: '...',
205
- * scope: ''
206
- * },
207
- * email: {
208
- * postValidation: true|false // If postValidation=true, account created without email verification
209
- * }
210
- * url: 'url' // By default /auth
211
- * ```
212
- *
213
- * Core authentication service handling login, registration, password recovery, and email validation
214
- *
215
- * @category CoreServices
216
- * @WebdaModda
217
- */
218
- declare class Authentication<T extends AuthenticationParameters = AuthenticationParameters, E extends AuthenticationEvents = AuthenticationEvents> extends Service<T, E> {
219
- /**
220
- * Ident model to use
221
- */
222
- protected identModel: Repository<ModelClass<Ident>>;
223
- /**
224
- * User model to use
225
- */
226
- protected userModel: Repository<ModelClass<User>>;
227
- /**
228
- * Used for hmac
229
- */
230
- cryptoService: CryptoService;
231
- /**
232
- * Password verification system
233
- */
234
- _passwordVerifier: PasswordVerifier;
235
- /**
236
- *
237
- */
238
- providers: Set<string>;
239
- metrics: {
240
- login: Counter;
241
- logout: Counter;
242
- loginFailed?: Counter;
243
- recovery?: Counter;
244
- recovered?: Counter;
245
- registration?: Counter;
246
- };
247
- /**
248
- * Get user model
249
- * @returns the result
250
- */
251
- getUserModel(): Repository<ModelClass<User>>;
252
- /**
253
- * Get ident model
254
- * @returns the result
255
- */
256
- getIdentModel(): Repository<ModelClass<Ident>>;
257
- /**
258
- * @ignore
259
- * Setup the default routes
260
- */
261
- computeParameters(): void;
262
- /**
263
- * @override
264
- */
265
- initMetrics(): void;
266
- /**
267
- * Add a provider to the oauth scheme
268
- * @param name - the name to use
269
- */
270
- addProvider(name: string): void;
271
- /**
272
- * Ensure email is enabled for all emails routes
273
- * @override
274
- */
275
- getUrl(url: string, methods: HttpMethodType[]): string;
276
- /**
277
- * Send or resend an email to validate the email address
278
- *
279
- * @param ctx - the operation context
280
- * @throws 409 if ident is linked to someone else
281
- * @throws 412 if the email is already validated
282
- * @throws 429 if a validation email has been sent recently
283
- */
284
- _sendEmailValidation(ctx: any): Promise<void>;
285
- /**
286
- * Return current user
287
- * @param ctx - the operation context
288
- */
289
- _getMe(ctx: OperationContext): Promise<void>;
290
- /**
291
- * Handle both list of available authentication
292
- * and logout with method 'DELETE'
293
- *
294
- * @param ctx - the operation context
295
- * @returns the result
296
- */
297
- _listAuthentications(ctx: WebContext): Promise<void>;
298
- /**
299
- * Handle login via an identity provider, creating or linking the ident to a user
300
- * @param ctx - the operation context
301
- * @param provider - the provider name
302
- * @param identId - the identity identifier
303
- * @param profile - the user profile
304
- * @param tokens - the authentication tokens
305
- */
306
- onIdentLogin(ctx: WebContext, provider: string, identId: string, profile: any, tokens?: any): Promise<void>;
307
- /**
308
- * Create a new User with the link ident
309
- * @param ident
310
- *
311
- async createUserWithIdent(provider: string, identId: string, profile: any = {}) {
312
- if (await this.identModel.ref(`${identId}_${provider}`).exists()) {
313
- throw new Error("Ident is already known");
314
- }
315
- const ctx = await this._webda.newWebContext(new HttpContext("fake", "GET", "/"));
316
- // Pretend we logged in with the ident
317
- await this.onIdentLogin(ctx, provider, identId, profile);
318
- }
319
- */
320
- /**
321
- * Create and register a new user, emitting a registration event
322
- * @param ctx - the operation context
323
- * @param data - the data to process
324
- * @param identId - the identity identifier
325
- * @param user - the user object
326
- * @returns the result
327
- */
328
- registerUser(ctx: WebContext, data: any, identId: string, user?: User): Promise<User>;
329
- /**
330
- * Generate password recovery info (token and expiry) for a user
331
- * @param uuid - the unique identifier
332
- * @param interval - the interval
333
- * @returns the result
334
- */
335
- getPasswordRecoveryInfos(uuid: string | User, interval?: number): Promise<PasswordRecoveryInfos>;
336
- /**
337
- * Manage password recovery
338
- * @param ctx - the operation context
339
- */
340
- _passwordRecoveryEmail(ctx: WebContext): Promise<void>;
341
- /**
342
- * Verify that a password meets the configured policy or custom verifier
343
- * @param password - the password
344
- * @param user - the user object
345
- */
346
- _verifyPassword(password: string, user?: User): Promise<void>;
347
- /**
348
- * Handle password recovery: verify token and update the user's password
349
- * @param ctx - the operation context
350
- */
351
- _passwordRecovery(ctx: WebContext<PasswordRecoveryBody>): Promise<void>;
352
- /**
353
- * Callback to validate an email address
354
- * @param ctx - the operation context
355
- * @returns the result
356
- */
357
- _handleEmailCallback(ctx: WebContext): Promise<void>;
358
- /**
359
- * Send an email to recover the user password
360
- *
361
- * @param ctx - the operation context
362
- * @param user - the user object
363
- * @param email - the email address
364
- * @returns the result
365
- */
366
- sendRecoveryEmail(ctx: WebContext, user: any, email: string): Promise<any>;
367
- /**
368
- * Send an email to validate the user email by sending a unique link to
369
- * his email
370
- *
371
- * @param ctx - the operation context
372
- * @param email - the email address
373
- * @returns the result
374
- */
375
- sendValidationEmail(ctx: WebContext, email: string): Promise<any>;
376
- /**
377
- * Check the password match the stored hash
378
- * @param hash generate prior by hashPassword
379
- * @param password as entered by the user
380
- * @param pass - the password
381
- * @returns true if the condition is met
382
- */
383
- checkPassword(hash?: string, pass?: string): boolean;
384
- /**
385
- * Hash the password according to good practices
386
- *
387
- * @param pass to hash
388
- * @returns the result string
389
- */
390
- hashPassword(pass: string): string;
391
- /**
392
- * Logout user
393
- * @param ctx - the operation context
394
- */
395
- logout(ctx: WebContext): Promise<void>;
396
- /**
397
- * Login a user
398
- *
399
- * @param ctx - the operation context
400
- * @param user - the user object
401
- * @param ident - the identity object
402
- * @param provider - the provider name
403
- * @returns the result
404
- */
405
- login(ctx: WebContext, user: User | string, ident: Ident, provider: string): Promise<void>;
406
- /**
407
- * Get the mailer service
408
- * @returns the result
409
- */
410
- getMailMan(): Mailer;
411
- /**
412
- * Handle a user login request
413
- *
414
- * @param ctx - the operation context
415
- * @param ident - the identity object
416
- */
417
- protected handleLogin(ctx: WebContext<LoginBody>, ident: Ident): Promise<void>;
418
- /**
419
- * Handle the POST /auth/email
420
- *
421
- * @param ctx - the operation context
422
- * @returns the result
423
- */
424
- _handleEmail(ctx: WebContext<LoginBody>): Promise<any>;
425
- /**
426
- * Generate an HMAC-based token for email address validation
427
- * @param user - the user object
428
- * @param email - the email address
429
- * @returns the result string
430
- */
431
- generateEmailValidationToken(user: string, email: string): Promise<string>;
432
- /**
433
- * Create a new User with the link ident
434
- * @param ident - the identity object
435
- * @param provider - the provider name
436
- * @param identId - the identity identifier
437
- * @param profile - the user profile
438
- */
439
- createUserWithIdent(provider: string, identId: string, profile?: any): Promise<void>;
440
- }
441
- export { Authentication };
442
- //# sourceMappingURL=authentication.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}