@flusys/nestjs-form-builder 8.0.3 → 8.1.0

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/fesm/index.js CHANGED
@@ -196,6 +196,8 @@ __webpack_require__.d(__webpack_exports__, {
196
196
  __webpack_require__.d(__webpack_exports__, {
197
197
  YD: () => (/* reexport */ dtos/* .CreateFormDto */.YD),
198
198
  pZ: () => (/* reexport */ dtos/* .CreateFormResultDto */.pZ),
199
+ d7: () => (/* reexport */ dtos/* .EmailVerifiedFormResponseDto */.d7),
200
+ Q3: () => (/* reexport */ interfaces/* .FORM_BUILDER_EMAIL_PROVIDER */.Q),
199
201
  ov: () => (/* reexport */ config/* .FORM_BUILDER_EVENT_ACTIONS */.ov),
200
202
  eF: () => (/* reexport */ config/* .FORM_BUILDER_EVENT_ENTITIES */.eF),
201
203
  T$: () => (/* reexport */ config/* .FORM_BUILDER_EVENT_MODULE */.T$),
@@ -210,22 +212,30 @@ __webpack_require__.d(__webpack_exports__, {
210
212
  _Z: () => (/* reexport */ services/* .FormBuilderDataSourceProvider */._Z),
211
213
  S7: () => (/* reexport */ modules/* .FormBuilderModule */.S),
212
214
  Xl: () => (/* reexport */ entities/* .FormCompanyEntities */.Xl),
213
- Xq: () => (/* reexport */ controllers/* .FormController */.X),
215
+ Xq: () => (/* reexport */ controllers/* .FormController */.Xq),
214
216
  t$: () => (/* reexport */ entities/* .FormCoreEntities */.t$),
217
+ Vh: () => (/* reexport */ controllers/* .FormEmailAuthController */.Vh),
218
+ wW: () => (/* reexport */ services/* .FormEmailAuthService */.wW),
219
+ Kr: () => (/* reexport */ entities/* .FormEmailVerification */.Kr),
215
220
  bV: () => (/* reexport */ dtos/* .FormResponseDto */.bV),
216
221
  ez: () => (/* reexport */ entities/* .FormResult */.ez),
217
- Ye: () => (/* reexport */ controllers/* .FormResultController */.Y),
222
+ Ye: () => (/* reexport */ controllers/* .FormResultController */.Ye),
218
223
  _$: () => (/* reexport */ dtos/* .FormResultResponseDto */._$),
219
224
  vF: () => (/* reexport */ services/* .FormResultService */.vF),
220
225
  ux: () => (/* reexport */ services/* .FormService */.ux),
221
226
  Wl: () => (/* reexport */ entities/* .FormWithCompany */.Wl),
222
227
  D5: () => (/* reexport */ dtos/* .GetMyDraftDto */.D5),
223
228
  rp: () => (/* reexport */ dtos/* .GetResultsByFormDto */.rp),
229
+ BW: () => (/* reexport */ dtos/* .HasSubmittedEmailDto */.BW),
230
+ gI: () => (/* reexport */ dtos/* .LoadEmailVerifiedFormDto */.gI),
224
231
  M4: () => (/* reexport */ dtos/* .PublicFormResponseDto */.M4),
232
+ ME: () => (/* reexport */ dtos/* .RequestFormEmailOtpDto */.ME),
225
233
  sH: () => (/* reexport */ dtos/* .SubmitFormDto */.sH),
226
234
  CQ: () => (/* reexport */ dtos/* .UpdateDraftDto */.CQ),
227
235
  jQ: () => (/* reexport */ dtos/* .UpdateFormDto */.jQ),
228
236
  Uj: () => (/* reexport */ dtos/* .UpdateFormResultDto */.Uj),
237
+ uY: () => (/* reexport */ dtos/* .VerifyFormEmailOtpDto */.uY),
238
+ TU: () => (/* reexport */ dtos/* .VerifyOtpResponseDto */.TU),
229
239
  XZ: () => (/* reexport */ computed_field_utils/* .calculateComputedFields */.X),
230
240
  aY: () => (/* reexport */ docs/* .formBuilderSwaggerConfig */.a),
231
241
  iO: () => (/* reexport */ entities.getFormBuilderEntitiesByConfig),
@@ -236,14 +246,16 @@ __webpack_require__.d(__webpack_exports__, {
236
246
  var config = __webpack_require__(511);
237
247
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/docs/index.ts + 1 modules
238
248
  var docs = __webpack_require__(625);
239
- // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 3 modules
240
- var controllers = __webpack_require__(585);
241
- // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/dtos/index.ts + 1 modules
242
- var dtos = __webpack_require__(998);
243
- // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/entities/index.ts + 5 modules
244
- var entities = __webpack_require__(532);
249
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 5 modules
250
+ var controllers = __webpack_require__(971);
251
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/dtos/index.ts + 2 modules
252
+ var dtos = __webpack_require__(472);
253
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/entities/index.ts + 6 modules
254
+ var entities = __webpack_require__(814);
245
255
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/enums/index.ts
246
256
  var enums = __webpack_require__(817);
257
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/interfaces/index.ts
258
+ var interfaces = __webpack_require__(945);
247
259
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/modules/index.ts + 1 modules
248
260
  var modules = __webpack_require__(106);
249
261
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/services/index.ts
@@ -279,6 +291,19 @@ var computed_field_utils = __webpack_require__(801);
279
291
 
280
292
 
281
293
 
294
+ },
295
+ 945(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
296
+ /* import */ var _form_builder_email_provider_interface_js__rspack_import_0 = __webpack_require__(341);
297
+
298
+
299
+
300
+
301
+
302
+ __webpack_require__.d(__webpack_exports__, {
303
+ Q: () => (/* reexport safe */ _form_builder_email_provider_interface_js__rspack_import_0.Q)
304
+ });
305
+
306
+
282
307
  },
283
308
  106(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
284
309
 
@@ -293,8 +318,8 @@ var modules_ = __webpack_require__(236);
293
318
  var common_ = __webpack_require__(157);
294
319
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/config/form-builder.constants.ts
295
320
  var form_builder_constants = __webpack_require__(512);
296
- // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 3 modules
297
- var controllers = __webpack_require__(585);
321
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 5 modules
322
+ var controllers = __webpack_require__(971);
298
323
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/services/index.ts
299
324
  var services = __webpack_require__(949);
300
325
  ;// CONCATENATED MODULE: ./projects/nestjs-form-builder/src/modules/form-builder.module.ts
@@ -318,14 +343,16 @@ function _ts_decorate(decorators, target, key, desc) {
318
343
 
319
344
  class FormBuilderModule {
320
345
  static CONTROLLERS = [
321
- controllers/* .FormController */.X,
322
- controllers/* .FormResultController */.Y
346
+ controllers/* .FormController */.Xq,
347
+ controllers/* .FormResultController */.Ye,
348
+ controllers/* .FormEmailAuthController */.Vh
323
349
  ];
324
350
  static EXPORTS = [
325
351
  services/* .FormBuilderConfigService */.jS,
326
352
  services/* .FormBuilderDataSourceProvider */._Z,
327
353
  services/* .FormService */.ux,
328
- services/* .FormResultService */.vF
354
+ services/* .FormResultService */.vF,
355
+ services/* .FormEmailAuthService */.wW
329
356
  ];
330
357
  /**
331
358
  * Register FormBuilderModule synchronously
@@ -338,7 +365,10 @@ class FormBuilderModule {
338
365
  modules_.UtilsModule
339
366
  ],
340
367
  controllers: options.includeController !== false ? this.CONTROLLERS : [],
341
- providers: this.buildProviders(options),
368
+ providers: [
369
+ ...this.buildProviders(options),
370
+ ...options.providers ?? []
371
+ ],
342
372
  exports: this.EXPORTS
343
373
  };
344
374
  }
@@ -356,7 +386,8 @@ class FormBuilderModule {
356
386
  controllers: options.includeController !== false ? this.CONTROLLERS : [],
357
387
  providers: [
358
388
  ...this.buildAsyncProviders(options),
359
- ...this.buildProviders()
389
+ ...this.buildProviders(),
390
+ ...options.providers ?? []
360
391
  ],
361
392
  exports: this.EXPORTS
362
393
  };
@@ -366,7 +397,8 @@ class FormBuilderModule {
366
397
  services/* .FormBuilderConfigService */.jS,
367
398
  services/* .FormBuilderDataSourceProvider */._Z,
368
399
  services/* .FormService */.ux,
369
- services/* .FormResultService */.vF
400
+ services/* .FormResultService */.vF,
401
+ services/* .FormEmailAuthService */.wW
370
402
  ];
371
403
  if (options) {
372
404
  providers.unshift({
@@ -427,8 +459,10 @@ FormBuilderModule = _ts_decorate([
427
459
  949(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
428
460
  /* import */ var _form_builder_config_service_js__rspack_import_0 = __webpack_require__(781);
429
461
  /* import */ var _form_builder_datasource_provider_js__rspack_import_1 = __webpack_require__(593);
430
- /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(148);
462
+ /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(134);
431
463
  /* import */ var _form_result_service_js__rspack_import_3 = __webpack_require__(160);
464
+ /* import */ var _form_email_auth_service_js__rspack_import_4 = __webpack_require__(474);
465
+
432
466
 
433
467
 
434
468
 
@@ -438,7 +472,8 @@ __webpack_require__.d(__webpack_exports__, {
438
472
  _Z: () => (/* reexport safe */ _form_builder_datasource_provider_js__rspack_import_1._),
439
473
  jS: () => (/* reexport safe */ _form_builder_config_service_js__rspack_import_0.j),
440
474
  ux: () => (/* reexport safe */ _form_service_js__rspack_import_2.u),
441
- vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v)
475
+ vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v),
476
+ wW: () => (/* reexport safe */ _form_email_auth_service_js__rspack_import_4.w)
442
477
  });
443
478
 
444
479
 
@@ -447,14 +482,16 @@ __webpack_require__.d(__webpack_exports__, {
447
482
  };
448
483
  import { __webpack_require__ } from './runtime.js';
449
484
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
450
- import * as __rspack_chunk_1 from './262.js';
485
+ import * as __rspack_chunk_1 from './432.js';
451
486
  __webpack_require__.C(__rspack_chunk_1);
452
- import * as __rspack_chunk_2 from './98.js';
487
+ import * as __rspack_chunk_2 from './720.js';
453
488
  __webpack_require__.C(__rspack_chunk_2);
454
489
  import * as __rspack_chunk_3 from './index.js';
455
490
  __webpack_require__.C(__rspack_chunk_3);
456
491
  var __webpack_exports__ = __webpack_exec__(851);var __webpack_exports__CreateFormDto = __webpack_exports__.YD;
457
492
  var __webpack_exports__CreateFormResultDto = __webpack_exports__.pZ;
493
+ var __webpack_exports__EmailVerifiedFormResponseDto = __webpack_exports__.d7;
494
+ var __webpack_exports__FORM_BUILDER_EMAIL_PROVIDER = __webpack_exports__.Q3;
458
495
  var __webpack_exports__FORM_BUILDER_EVENT_ACTIONS = __webpack_exports__.ov;
459
496
  var __webpack_exports__FORM_BUILDER_EVENT_ENTITIES = __webpack_exports__.eF;
460
497
  var __webpack_exports__FORM_BUILDER_EVENT_MODULE = __webpack_exports__.T$;
@@ -471,6 +508,9 @@ var __webpack_exports__FormBuilderModule = __webpack_exports__.S7;
471
508
  var __webpack_exports__FormCompanyEntities = __webpack_exports__.Xl;
472
509
  var __webpack_exports__FormController = __webpack_exports__.Xq;
473
510
  var __webpack_exports__FormCoreEntities = __webpack_exports__.t$;
511
+ var __webpack_exports__FormEmailAuthController = __webpack_exports__.Vh;
512
+ var __webpack_exports__FormEmailAuthService = __webpack_exports__.wW;
513
+ var __webpack_exports__FormEmailVerification = __webpack_exports__.Kr;
474
514
  var __webpack_exports__FormResponseDto = __webpack_exports__.bV;
475
515
  var __webpack_exports__FormResult = __webpack_exports__.ez;
476
516
  var __webpack_exports__FormResultController = __webpack_exports__.Ye;
@@ -480,13 +520,18 @@ var __webpack_exports__FormService = __webpack_exports__.ux;
480
520
  var __webpack_exports__FormWithCompany = __webpack_exports__.Wl;
481
521
  var __webpack_exports__GetMyDraftDto = __webpack_exports__.D5;
482
522
  var __webpack_exports__GetResultsByFormDto = __webpack_exports__.rp;
523
+ var __webpack_exports__HasSubmittedEmailDto = __webpack_exports__.BW;
524
+ var __webpack_exports__LoadEmailVerifiedFormDto = __webpack_exports__.gI;
483
525
  var __webpack_exports__PublicFormResponseDto = __webpack_exports__.M4;
526
+ var __webpack_exports__RequestFormEmailOtpDto = __webpack_exports__.ME;
484
527
  var __webpack_exports__SubmitFormDto = __webpack_exports__.sH;
485
528
  var __webpack_exports__UpdateDraftDto = __webpack_exports__.CQ;
486
529
  var __webpack_exports__UpdateFormDto = __webpack_exports__.jQ;
487
530
  var __webpack_exports__UpdateFormResultDto = __webpack_exports__.Uj;
531
+ var __webpack_exports__VerifyFormEmailOtpDto = __webpack_exports__.uY;
532
+ var __webpack_exports__VerifyOtpResponseDto = __webpack_exports__.TU;
488
533
  var __webpack_exports__calculateComputedFields = __webpack_exports__.XZ;
489
534
  var __webpack_exports__formBuilderSwaggerConfig = __webpack_exports__.aY;
490
535
  var __webpack_exports__getFormBuilderEntitiesByConfig = __webpack_exports__.iO;
491
536
  var __webpack_exports__validateUserPermissions = __webpack_exports__.io;
492
- export { __webpack_exports__CreateFormDto as CreateFormDto, __webpack_exports__CreateFormResultDto as CreateFormResultDto, __webpack_exports__FORM_BUILDER_EVENT_ACTIONS as FORM_BUILDER_EVENT_ACTIONS, __webpack_exports__FORM_BUILDER_EVENT_ENTITIES as FORM_BUILDER_EVENT_ENTITIES, __webpack_exports__FORM_BUILDER_EVENT_MODULE as FORM_BUILDER_EVENT_MODULE, __webpack_exports__FORM_BUILDER_MODULE_OPTIONS as FORM_BUILDER_MODULE_OPTIONS, __webpack_exports__FORM_MESSAGES as FORM_MESSAGES, __webpack_exports__FORM_RESULT_MESSAGES as FORM_RESULT_MESSAGES, __webpack_exports__Form as Form, __webpack_exports__FormAccessInfoResponseDto as FormAccessInfoResponseDto, __webpack_exports__FormAccessType as FormAccessType, __webpack_exports__FormBase as FormBase, __webpack_exports__FormBuilderConfigService as FormBuilderConfigService, __webpack_exports__FormBuilderDataSourceProvider as FormBuilderDataSourceProvider, __webpack_exports__FormBuilderModule as FormBuilderModule, __webpack_exports__FormCompanyEntities as FormCompanyEntities, __webpack_exports__FormController as FormController, __webpack_exports__FormCoreEntities as FormCoreEntities, __webpack_exports__FormResponseDto as FormResponseDto, __webpack_exports__FormResult as FormResult, __webpack_exports__FormResultController as FormResultController, __webpack_exports__FormResultResponseDto as FormResultResponseDto, __webpack_exports__FormResultService as FormResultService, __webpack_exports__FormService as FormService, __webpack_exports__FormWithCompany as FormWithCompany, __webpack_exports__GetMyDraftDto as GetMyDraftDto, __webpack_exports__GetResultsByFormDto as GetResultsByFormDto, __webpack_exports__PublicFormResponseDto as PublicFormResponseDto, __webpack_exports__SubmitFormDto as SubmitFormDto, __webpack_exports__UpdateDraftDto as UpdateDraftDto, __webpack_exports__UpdateFormDto as UpdateFormDto, __webpack_exports__UpdateFormResultDto as UpdateFormResultDto, __webpack_exports__calculateComputedFields as calculateComputedFields, __webpack_exports__formBuilderSwaggerConfig as formBuilderSwaggerConfig, __webpack_exports__getFormBuilderEntitiesByConfig as getFormBuilderEntitiesByConfig, __webpack_exports__validateUserPermissions as validateUserPermissions };
537
+ export { __webpack_exports__CreateFormDto as CreateFormDto, __webpack_exports__CreateFormResultDto as CreateFormResultDto, __webpack_exports__EmailVerifiedFormResponseDto as EmailVerifiedFormResponseDto, __webpack_exports__FORM_BUILDER_EMAIL_PROVIDER as FORM_BUILDER_EMAIL_PROVIDER, __webpack_exports__FORM_BUILDER_EVENT_ACTIONS as FORM_BUILDER_EVENT_ACTIONS, __webpack_exports__FORM_BUILDER_EVENT_ENTITIES as FORM_BUILDER_EVENT_ENTITIES, __webpack_exports__FORM_BUILDER_EVENT_MODULE as FORM_BUILDER_EVENT_MODULE, __webpack_exports__FORM_BUILDER_MODULE_OPTIONS as FORM_BUILDER_MODULE_OPTIONS, __webpack_exports__FORM_MESSAGES as FORM_MESSAGES, __webpack_exports__FORM_RESULT_MESSAGES as FORM_RESULT_MESSAGES, __webpack_exports__Form as Form, __webpack_exports__FormAccessInfoResponseDto as FormAccessInfoResponseDto, __webpack_exports__FormAccessType as FormAccessType, __webpack_exports__FormBase as FormBase, __webpack_exports__FormBuilderConfigService as FormBuilderConfigService, __webpack_exports__FormBuilderDataSourceProvider as FormBuilderDataSourceProvider, __webpack_exports__FormBuilderModule as FormBuilderModule, __webpack_exports__FormCompanyEntities as FormCompanyEntities, __webpack_exports__FormController as FormController, __webpack_exports__FormCoreEntities as FormCoreEntities, __webpack_exports__FormEmailAuthController as FormEmailAuthController, __webpack_exports__FormEmailAuthService as FormEmailAuthService, __webpack_exports__FormEmailVerification as FormEmailVerification, __webpack_exports__FormResponseDto as FormResponseDto, __webpack_exports__FormResult as FormResult, __webpack_exports__FormResultController as FormResultController, __webpack_exports__FormResultResponseDto as FormResultResponseDto, __webpack_exports__FormResultService as FormResultService, __webpack_exports__FormService as FormService, __webpack_exports__FormWithCompany as FormWithCompany, __webpack_exports__GetMyDraftDto as GetMyDraftDto, __webpack_exports__GetResultsByFormDto as GetResultsByFormDto, __webpack_exports__HasSubmittedEmailDto as HasSubmittedEmailDto, __webpack_exports__LoadEmailVerifiedFormDto as LoadEmailVerifiedFormDto, __webpack_exports__PublicFormResponseDto as PublicFormResponseDto, __webpack_exports__RequestFormEmailOtpDto as RequestFormEmailOtpDto, __webpack_exports__SubmitFormDto as SubmitFormDto, __webpack_exports__UpdateDraftDto as UpdateDraftDto, __webpack_exports__UpdateFormDto as UpdateFormDto, __webpack_exports__UpdateFormResultDto as UpdateFormResultDto, __webpack_exports__VerifyFormEmailOtpDto as VerifyFormEmailOtpDto, __webpack_exports__VerifyOtpResponseDto as VerifyOtpResponseDto, __webpack_exports__calculateComputedFields as calculateComputedFields, __webpack_exports__formBuilderSwaggerConfig as formBuilderSwaggerConfig, __webpack_exports__getFormBuilderEntitiesByConfig as getFormBuilderEntitiesByConfig, __webpack_exports__validateUserPermissions as validateUserPermissions };
@@ -1,10 +1,30 @@
1
1
  export const __rspack_esm_id = 471;
2
2
  export const __rspack_esm_ids = [471];
3
3
  export const __webpack_modules__ = {
4
- 945() {
4
+ 341(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /**
6
+ * Provider Interface for sending form-submission verification emails.
7
+ * Implemented at the app level (composition root) using the email module,
8
+ * so nestjs-form-builder never depends on nestjs-email directly.
9
+ */ const FORM_BUILDER_EMAIL_PROVIDER = 'FORM_BUILDER_EMAIL_PROVIDER';
5
10
 
11
+ __webpack_require__.d(__webpack_exports__, {
12
+ }, {
13
+ Q: FORM_BUILDER_EMAIL_PROVIDER
14
+ });
6
15
 
7
16
 
17
+ },
18
+ 945(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
19
+ /* import */ var _form_builder_email_provider_interface_js__rspack_import_0 = __webpack_require__(341);
20
+
21
+
22
+
23
+
24
+
25
+ __webpack_require__.d(__webpack_exports__, {
26
+ Q: () => (/* reexport safe */ _form_builder_email_provider_interface_js__rspack_import_0.Q)
27
+ });
8
28
 
9
29
 
10
30
  },
@@ -14,4 +34,5 @@ import { __webpack_require__ } from '../runtime.js';
14
34
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
15
35
  import * as __rspack_chunk_1 from './index.js';
16
36
  __webpack_require__.C(__rspack_chunk_1);
17
- var __webpack_exports__ = __webpack_exec__(945);
37
+ var __webpack_exports__ = __webpack_exec__(945);var __webpack_exports__FORM_BUILDER_EMAIL_PROVIDER = __webpack_exports__.Q;
38
+ export { __webpack_exports__FORM_BUILDER_EMAIL_PROVIDER as FORM_BUILDER_EMAIL_PROVIDER };
@@ -14,8 +14,8 @@ var modules_ = __webpack_require__(236);
14
14
  var common_ = __webpack_require__(157);
15
15
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/config/form-builder.constants.ts
16
16
  var form_builder_constants = __webpack_require__(512);
17
- // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 3 modules
18
- var controllers = __webpack_require__(585);
17
+ // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/controllers/index.ts + 5 modules
18
+ var controllers = __webpack_require__(971);
19
19
  // EXTERNAL MODULE: ./projects/nestjs-form-builder/src/services/index.ts
20
20
  var services = __webpack_require__(949);
21
21
  ;// CONCATENATED MODULE: ./projects/nestjs-form-builder/src/modules/form-builder.module.ts
@@ -39,14 +39,16 @@ function _ts_decorate(decorators, target, key, desc) {
39
39
 
40
40
  class FormBuilderModule {
41
41
  static CONTROLLERS = [
42
- controllers/* .FormController */.X,
43
- controllers/* .FormResultController */.Y
42
+ controllers/* .FormController */.Xq,
43
+ controllers/* .FormResultController */.Ye,
44
+ controllers/* .FormEmailAuthController */.Vh
44
45
  ];
45
46
  static EXPORTS = [
46
47
  services/* .FormBuilderConfigService */.jS,
47
48
  services/* .FormBuilderDataSourceProvider */._Z,
48
49
  services/* .FormService */.ux,
49
- services/* .FormResultService */.vF
50
+ services/* .FormResultService */.vF,
51
+ services/* .FormEmailAuthService */.wW
50
52
  ];
51
53
  /**
52
54
  * Register FormBuilderModule synchronously
@@ -59,7 +61,10 @@ class FormBuilderModule {
59
61
  modules_.UtilsModule
60
62
  ],
61
63
  controllers: options.includeController !== false ? this.CONTROLLERS : [],
62
- providers: this.buildProviders(options),
64
+ providers: [
65
+ ...this.buildProviders(options),
66
+ ...options.providers ?? []
67
+ ],
63
68
  exports: this.EXPORTS
64
69
  };
65
70
  }
@@ -77,7 +82,8 @@ class FormBuilderModule {
77
82
  controllers: options.includeController !== false ? this.CONTROLLERS : [],
78
83
  providers: [
79
84
  ...this.buildAsyncProviders(options),
80
- ...this.buildProviders()
85
+ ...this.buildProviders(),
86
+ ...options.providers ?? []
81
87
  ],
82
88
  exports: this.EXPORTS
83
89
  };
@@ -87,7 +93,8 @@ class FormBuilderModule {
87
93
  services/* .FormBuilderConfigService */.jS,
88
94
  services/* .FormBuilderDataSourceProvider */._Z,
89
95
  services/* .FormService */.ux,
90
- services/* .FormResultService */.vF
96
+ services/* .FormResultService */.vF,
97
+ services/* .FormEmailAuthService */.wW
91
98
  ];
92
99
  if (options) {
93
100
  providers.unshift({
@@ -148,8 +155,10 @@ FormBuilderModule = _ts_decorate([
148
155
  949(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
149
156
  /* import */ var _form_builder_config_service_js__rspack_import_0 = __webpack_require__(781);
150
157
  /* import */ var _form_builder_datasource_provider_js__rspack_import_1 = __webpack_require__(593);
151
- /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(148);
158
+ /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(134);
152
159
  /* import */ var _form_result_service_js__rspack_import_3 = __webpack_require__(160);
160
+ /* import */ var _form_email_auth_service_js__rspack_import_4 = __webpack_require__(474);
161
+
153
162
 
154
163
 
155
164
 
@@ -159,7 +168,8 @@ __webpack_require__.d(__webpack_exports__, {
159
168
  _Z: () => (/* reexport safe */ _form_builder_datasource_provider_js__rspack_import_1._),
160
169
  jS: () => (/* reexport safe */ _form_builder_config_service_js__rspack_import_0.j),
161
170
  ux: () => (/* reexport safe */ _form_service_js__rspack_import_2.u),
162
- vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v)
171
+ vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v),
172
+ wW: () => (/* reexport safe */ _form_email_auth_service_js__rspack_import_4.w)
163
173
  });
164
174
 
165
175
 
@@ -168,9 +178,9 @@ __webpack_require__.d(__webpack_exports__, {
168
178
  };
169
179
  import { __webpack_require__ } from '../runtime.js';
170
180
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
171
- import * as __rspack_chunk_1 from '../262.js';
181
+ import * as __rspack_chunk_1 from '../432.js';
172
182
  __webpack_require__.C(__rspack_chunk_1);
173
- import * as __rspack_chunk_2 from '../98.js';
183
+ import * as __rspack_chunk_2 from '../720.js';
174
184
  __webpack_require__.C(__rspack_chunk_2);
175
185
  import * as __rspack_chunk_3 from './index.js';
176
186
  __webpack_require__.C(__rspack_chunk_3);
@@ -4,8 +4,10 @@ export const __webpack_modules__ = {
4
4
  949(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
5
  /* import */ var _form_builder_config_service_js__rspack_import_0 = __webpack_require__(781);
6
6
  /* import */ var _form_builder_datasource_provider_js__rspack_import_1 = __webpack_require__(593);
7
- /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(148);
7
+ /* import */ var _form_service_js__rspack_import_2 = __webpack_require__(134);
8
8
  /* import */ var _form_result_service_js__rspack_import_3 = __webpack_require__(160);
9
+ /* import */ var _form_email_auth_service_js__rspack_import_4 = __webpack_require__(474);
10
+
9
11
 
10
12
 
11
13
 
@@ -15,7 +17,8 @@ __webpack_require__.d(__webpack_exports__, {
15
17
  _Z: () => (/* reexport safe */ _form_builder_datasource_provider_js__rspack_import_1._),
16
18
  jS: () => (/* reexport safe */ _form_builder_config_service_js__rspack_import_0.j),
17
19
  ux: () => (/* reexport safe */ _form_service_js__rspack_import_2.u),
18
- vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v)
20
+ vF: () => (/* reexport safe */ _form_result_service_js__rspack_import_3.v),
21
+ wW: () => (/* reexport safe */ _form_email_auth_service_js__rspack_import_4.w)
19
22
  });
20
23
 
21
24
 
@@ -24,12 +27,13 @@ __webpack_require__.d(__webpack_exports__, {
24
27
  };
25
28
  import { __webpack_require__ } from '../runtime.js';
26
29
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
27
- import * as __rspack_chunk_1 from '../262.js';
30
+ import * as __rspack_chunk_1 from '../432.js';
28
31
  __webpack_require__.C(__rspack_chunk_1);
29
32
  import * as __rspack_chunk_2 from './index.js';
30
33
  __webpack_require__.C(__rspack_chunk_2);
31
34
  var __webpack_exports__ = __webpack_exec__(949);var __webpack_exports__FormBuilderConfigService = __webpack_exports__.jS;
32
35
  var __webpack_exports__FormBuilderDataSourceProvider = __webpack_exports__._Z;
36
+ var __webpack_exports__FormEmailAuthService = __webpack_exports__.wW;
33
37
  var __webpack_exports__FormResultService = __webpack_exports__.vF;
34
38
  var __webpack_exports__FormService = __webpack_exports__.ux;
35
- export { __webpack_exports__FormBuilderConfigService as FormBuilderConfigService, __webpack_exports__FormBuilderDataSourceProvider as FormBuilderDataSourceProvider, __webpack_exports__FormResultService as FormResultService, __webpack_exports__FormService as FormService };
39
+ export { __webpack_exports__FormBuilderConfigService as FormBuilderConfigService, __webpack_exports__FormBuilderDataSourceProvider as FormBuilderDataSourceProvider, __webpack_exports__FormEmailAuthService as FormEmailAuthService, __webpack_exports__FormResultService as FormResultService, __webpack_exports__FormService as FormService };
@@ -0,0 +1,4 @@
1
+ export interface IFormBuilderEmailProvider {
2
+ sendOtpEmail(email: string, code: string, formTitle: string, expiryMinutes: number): Promise<void>;
3
+ }
4
+ export declare const FORM_BUILDER_EMAIL_PROVIDER = "FORM_BUILDER_EMAIL_PROVIDER";
@@ -1,4 +1,4 @@
1
- import { type ModuleMetadata, type Type } from '@nestjs/common';
1
+ import { type ModuleMetadata, type Provider, type Type } from '@nestjs/common';
2
2
  import { type IBootstrapAppConfig, type IDataSourceServiceOptions, type IDynamicModuleConfig } from '@flusys/nestjs-core';
3
3
  import { type IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
4
4
  export interface IFormBuilderConfig extends IDataSourceServiceOptions {
@@ -7,6 +7,7 @@ export interface IFormBuilderConfig extends IDataSourceServiceOptions {
7
7
  export interface FormBuilderModuleOptions extends IDynamicModuleConfig {
8
8
  bootstrapAppConfig?: IBootstrapAppConfig;
9
9
  config?: IFormBuilderConfig;
10
+ providers?: Provider[];
10
11
  }
11
12
  export interface FormBuilderOptionsFactory {
12
13
  createFormBuilderOptions(): Promise<IFormBuilderConfig> | IFormBuilderConfig;
@@ -19,4 +20,5 @@ export interface FormBuilderModuleAsyncOptions extends Pick<ModuleMetadata, 'imp
19
20
  inject?: any[];
20
21
  useExisting?: Type<FormBuilderOptionsFactory>;
21
22
  useClass?: Type<FormBuilderOptionsFactory>;
23
+ providers?: Provider[];
22
24
  }
@@ -5,6 +5,7 @@ export interface IFormResult extends IIdentity {
5
5
  schemaVersion: number;
6
6
  data: Record<string, unknown>;
7
7
  submittedById: string | null;
8
+ submitterEmail: string | null;
8
9
  submittedAt: Date;
9
10
  isDraft: boolean;
10
11
  }
@@ -1,3 +1,4 @@
1
1
  export * from './form.interface.js';
2
2
  export * from './form-result.interface.js';
3
3
  export * from './form-builder-module.interface.js';
4
+ export * from './form-builder-email-provider.interface.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flusys/nestjs-form-builder",
3
- "version": "8.0.3",
3
+ "version": "8.1.0",
4
4
  "description": "Dynamic form builder module with schema versioning and access control",
5
5
  "type": "module",
6
6
  "main": "./fesm/index.js",
@@ -74,7 +74,7 @@
74
74
  "express": "^5.0.0"
75
75
  },
76
76
  "dependencies": {
77
- "@flusys/nestjs-core": "8.0.3",
78
- "@flusys/nestjs-shared": "8.0.3"
77
+ "@flusys/nestjs-core": "8.1.0",
78
+ "@flusys/nestjs-shared": "8.1.0"
79
79
  }
80
80
  }
@@ -0,0 +1,29 @@
1
+ import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
2
+ import { type IFormBuilderEmailProvider } from '../interfaces/index.js';
3
+ import { FormBuilderDataSourceProvider } from './form-builder-datasource.provider.js';
4
+ export declare class FormEmailAuthService {
5
+ private readonly dataSourceProvider;
6
+ private readonly emailProvider?;
7
+ private readonly OTP_EXPIRY_MS;
8
+ private readonly ACCESS_TOKEN_EXPIRY_MS;
9
+ private readonly MAX_OTP_ATTEMPTS;
10
+ private repository;
11
+ constructor(dataSourceProvider: FormBuilderDataSourceProvider, emailProvider?: IFormBuilderEmailProvider | undefined);
12
+ private ensureRepository;
13
+ private generateOtp;
14
+ private generateAccessToken;
15
+ private hashValue;
16
+ private normalizeEmail;
17
+ private assertEmailEnabled;
18
+ requestOtp(formId: string, email: string, formTitle: string): Promise<{
19
+ success: boolean;
20
+ message: string;
21
+ messageKey: string;
22
+ }>;
23
+ verifyOtp(formId: string, email: string, code: string): Promise<{
24
+ accessToken: string;
25
+ expiresAt: Date;
26
+ }>;
27
+ resolveAccessToken(formId: string, accessToken?: string | null): Promise<string | null>;
28
+ resolveSubmitterEmail(formId: string, user: ILoggedUserInfo | undefined, accessToken?: string): Promise<string | null>;
29
+ }
@@ -8,17 +8,24 @@ import { FormResult } from '../entities/index.js';
8
8
  import { type IFormResult } from '../interfaces/form-result.interface.js';
9
9
  import { FormBuilderConfigService } from './form-builder-config.service.js';
10
10
  import { FormBuilderDataSourceProvider } from './form-builder-datasource.provider.js';
11
+ import { FormEmailAuthService } from './form-email-auth.service.js';
11
12
  export declare class FormResultService extends ApiService<CreateFormResultDto, UpdateFormResultDto, IFormResult, FormResult> {
12
13
  protected cacheManager: HybridCache;
13
14
  protected utilsService: UtilsService;
14
15
  private readonly formBuilderConfig;
15
16
  private readonly dataSourceProvider;
17
+ private readonly formEmailAuthService;
16
18
  private formRepository;
17
- constructor(cacheManager: HybridCache, utilsService: UtilsService, formBuilderConfig: FormBuilderConfigService, dataSourceProvider: FormBuilderDataSourceProvider);
19
+ private static readonly submissionLocks;
20
+ constructor(cacheManager: HybridCache, utilsService: UtilsService, formBuilderConfig: FormBuilderConfigService, dataSourceProvider: FormBuilderDataSourceProvider, formEmailAuthService: FormEmailAuthService);
18
21
  private ensureFormRepositoryInitialized;
22
+ private withSubmissionLock;
19
23
  private getActiveForm;
20
24
  private applyCompanyFilterToQuery;
25
+ private static readonly PUBLICLY_SUBMITTABLE_ACCESS_TYPES;
21
26
  private validateSubmissionAccess;
27
+ private resolveEmailVerifiedSubmitter;
28
+ private assertSingleResponseNotExceeded;
22
29
  private buildUserDraftWhere;
23
30
  getSelectQuery(query: SelectQueryBuilder<FormResult>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
24
31
  query: SelectQueryBuilder<FormResult>;
@@ -31,6 +38,7 @@ export declare class FormResultService extends ApiService<CreateFormResultDto, U
31
38
  private applyComputedFields;
32
39
  protected convertEntityToResponseDto(entity: FormResult, _isRaw: boolean): IFormResult;
33
40
  submitForm(dto: SubmitFormDto, user: ILoggedUserInfo | null, isPublic?: boolean): Promise<IFormResult>;
41
+ private persistSubmission;
34
42
  getMyDraft(formId: string, user: ILoggedUserInfo): Promise<IFormResult | null>;
35
43
  updateDraft(draftId: string, dto: SubmitFormDto, user: ILoggedUserInfo): Promise<IFormResult>;
36
44
  private publishSubmissionEvent;
@@ -43,4 +51,5 @@ export declare class FormResultService extends ApiService<CreateFormResultDto, U
43
51
  total: number;
44
52
  }>;
45
53
  hasUserSubmitted(formId: string, user: ILoggedUserInfo): Promise<boolean>;
54
+ hasSubmittedByEmail(formId: string, email: string): Promise<boolean>;
46
55
  }
@@ -43,5 +43,7 @@ export declare class FormService extends ApiService<CreateFormDto, UpdateFormDto
43
43
  actionGroups: string[] | null;
44
44
  isActive: boolean;
45
45
  }>;
46
+ getEmailVerifiedFormEntity(formId: string): Promise<Form>;
47
+ getEmailVerifiedForm(formId: string): Promise<IPublicForm>;
46
48
  getAuthenticatedForm(formId: string, user: ILoggedUserInfo): Promise<IPublicForm>;
47
49
  }
@@ -2,3 +2,4 @@ export * from './form-builder-config.service.js';
2
2
  export * from './form-builder-datasource.provider.js';
3
3
  export * from './form.service.js';
4
4
  export * from './form-result.service.js';
5
+ export * from './form-email-auth.service.js';