@solidstarters/solid-core 1.2.127 → 1.2.129

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 (35) hide show
  1. package/dist/entities/common.entity.js +2 -2
  2. package/dist/entities/common.entity.js.map +1 -1
  3. package/dist/filters/http-exception.filter.d.ts +2 -0
  4. package/dist/filters/http-exception.filter.d.ts.map +1 -1
  5. package/dist/filters/http-exception.filter.js +17 -16
  6. package/dist/filters/http-exception.filter.js.map +1 -1
  7. package/dist/helpers/schematic.service.js +1 -1
  8. package/dist/helpers/schematic.service.js.map +1 -1
  9. package/dist/helpers/solid-registry.d.ts.map +1 -1
  10. package/dist/helpers/solid-registry.js.map +1 -1
  11. package/dist/seeders/seed-data/solid-core-metadata.json +16 -3
  12. package/dist/services/authentication.service.js +1 -1
  13. package/dist/services/authentication.service.js.map +1 -1
  14. package/dist/services/model-metadata.service.d.ts +1 -0
  15. package/dist/services/model-metadata.service.d.ts.map +1 -1
  16. package/dist/services/model-metadata.service.js +15 -3
  17. package/dist/services/model-metadata.service.js.map +1 -1
  18. package/dist/solid-core.module.d.ts.map +1 -1
  19. package/dist/solid-core.module.js +5 -0
  20. package/dist/solid-core.module.js.map +1 -1
  21. package/dist/subscribers/computed-entity-field.subscriber.d.ts +6 -4
  22. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  23. package/dist/subscribers/computed-entity-field.subscriber.js +28 -23
  24. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +1 -1
  27. package/src/entities/common.entity.ts +2 -2
  28. package/src/filters/http-exception.filter.ts +16 -15
  29. package/src/helpers/schematic.service.ts +1 -1
  30. package/src/helpers/solid-registry.ts +0 -10
  31. package/src/seeders/seed-data/solid-core-metadata.json +16 -3
  32. package/src/services/authentication.service.ts +1 -1
  33. package/src/services/model-metadata.service.ts +21 -23
  34. package/src/solid-core.module.ts +6 -0
  35. package/src/subscribers/computed-entity-field.subscriber.ts +45 -35
@@ -51,11 +51,11 @@ __decorate([
51
51
  __metadata("design:type", Number)
52
52
  ], CommonEntity.prototype, "defaultEntityLocaleId", void 0);
53
53
  __decorate([
54
- (0, typeorm_1.ManyToOne)(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true }),
54
+ (0, typeorm_1.ManyToOne)(() => require('./user.entity').User?.default ?? require('./user.entity').User, { onDelete: 'SET NULL', nullable: true }),
55
55
  __metadata("design:type", Function)
56
56
  ], CommonEntity.prototype, "createdBy", void 0);
57
57
  __decorate([
58
- (0, typeorm_1.ManyToOne)(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true }),
58
+ (0, typeorm_1.ManyToOne)(() => require('./user.entity').User?.default ?? require('./user.entity').User, { onDelete: 'SET NULL', nullable: true }),
59
59
  __metadata("design:type", Function)
60
60
  ], CommonEntity.prototype, "updatedBy", void 0);
61
61
  //# sourceMappingURL=common.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.entity.js","sourceRoot":"","sources":["../../src/entities/common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAA0H;AAG1H,MAAsB,YAAY;;;;CA8BjC;AA9BD,oCA8BC;AA5BG;IADC,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAClC;AAGV;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;oDACpC;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BACrE,IAAI;iDAAC;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDAC7C;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2DAC3C;AAG9B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC7F;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC7F","sourcesContent":["import { Column, CreateDateColumn, DeleteDateColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from \"typeorm\";\nimport type { User } from \"./user.entity\";\n\nexport abstract class CommonEntity {\n @PrimaryGeneratedColumn({ type: 'integer' })\n id: number\n\n @CreateDateColumn({ type: \"timestamp\", name: \"created_at\" })\n createdAt: Date;\n\n @UpdateDateColumn({ type: \"timestamp\", name: \"updated_at\" })\n updatedAt: Date;\n\n @DeleteDateColumn({ type: \"timestamp\", name: \"deleted_at\" })\n deletedAt: Date;\n\n @Column({ name: \"deletedTracker\", default: \"not-deleted\" })\n deletedTracker: string;\n\n @Column({ type: \"timestamp\", name: 'published_at', default: null ,nullable: true})\n publishedAt: Date;\n\n @Column({ type: \"varchar\", name: 'locale_name', default: null })\n localeName: string;\n\n @Column({ type: \"int\", name: 'default_entity_locale_id', default: null })\n defaultEntityLocaleId: number;\n\n @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n createdBy: User;\n\n @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { nullable: true })\n updatedBy: User; \n}\n"]}
1
+ {"version":3,"file":"common.entity.js","sourceRoot":"","sources":["../../src/entities/common.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAA0H;AAG1H,MAAsB,YAAY;;;;CA8BjC;AA9BD,oCA8BC;AA5BG;IADC,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAClC;AAGV;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACjD,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;;oDACpC;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BACrE,IAAI;iDAAC;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDAC7C;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2DAC3C;AAG9B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnH;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnH","sourcesContent":["import { Column, CreateDateColumn, DeleteDateColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from \"typeorm\";\nimport type { User } from \"./user.entity\";\n\nexport abstract class CommonEntity {\n @PrimaryGeneratedColumn({ type: 'integer' })\n id: number\n\n @CreateDateColumn({ type: \"timestamp\", name: \"created_at\" })\n createdAt: Date;\n\n @UpdateDateColumn({ type: \"timestamp\", name: \"updated_at\" })\n updatedAt: Date;\n\n @DeleteDateColumn({ type: \"timestamp\", name: \"deleted_at\" })\n deletedAt: Date;\n\n @Column({ name: \"deletedTracker\", default: \"not-deleted\" })\n deletedTracker: string;\n\n @Column({ type: \"timestamp\", name: 'published_at', default: null ,nullable: true})\n publishedAt: Date;\n\n @Column({ type: \"varchar\", name: 'locale_name', default: null })\n localeName: string;\n\n @Column({ type: \"int\", name: 'default_entity_locale_id', default: null })\n defaultEntityLocaleId: number;\n\n @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { onDelete: 'SET NULL', nullable: true })\n createdBy: User;\n\n @ManyToOne(() => require('./user.entity').User?.default ?? require('./user.entity').User, { onDelete: 'SET NULL', nullable: true })\n updatedBy: User; \n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
2
2
  export declare class HttpExceptionFilter implements ExceptionFilter {
3
3
  private readonly logger;
4
+ constructor();
4
5
  catch(exception: any, host: ArgumentsHost): void;
6
+ private getErrorJson;
5
7
  }
6
8
  //# sourceMappingURL=http-exception.filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAI/E,qBACa,mBAAoB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa;CA6B5C"}
1
+ {"version":3,"file":"http-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,aAAa,EAAsB,MAAM,gBAAgB,CAAC;AAI3F,qBAEa,mBAAoB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;;IAM/D,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa;IAiBzC,OAAO,CAAC,YAAY;CAQvB"}
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  var HttpExceptionFilter_1;
9
12
  Object.defineProperty(exports, "__esModule", { value: true });
10
13
  exports.HttpExceptionFilter = void 0;
@@ -13,6 +16,7 @@ const logging_interceptor_1 = require("../interceptors/logging.interceptor");
13
16
  let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
14
17
  constructor() {
15
18
  this.logger = new common_1.Logger(HttpExceptionFilter_1.name);
19
+ this.logger.debug('HttpExceptionFilter initialized');
16
20
  }
17
21
  catch(exception, host) {
18
22
  const ctx = host.switchToHttp();
@@ -23,25 +27,22 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
23
27
  const { method, url } = request;
24
28
  this.logger.error(`[${status || 500} ${logging_interceptor_1.HttpStatusCodeMessages[status] || 'Internal Server Error'}] ${method} ${url} - ${message}`);
25
29
  this.logger.error(exception.stack || 'No stack trace available');
26
- if (exception.response) {
27
- response.status(status).json({
28
- ...exception.response,
29
- error: message,
30
- data: {}
31
- });
32
- }
33
- else {
34
- response.status(status).json({
35
- statusCode: status,
36
- message: [message],
37
- error: message,
38
- data: {}
39
- });
40
- }
30
+ const errorJson = this.getErrorJson(status, message, exception.response);
31
+ response.status(status).json(errorJson);
32
+ }
33
+ getErrorJson(status, message, additionalErrorData = {}) {
34
+ return {
35
+ statusCode: status,
36
+ message: [message],
37
+ error: logging_interceptor_1.HttpStatusCodeMessages[status] || 'Internal Server Error',
38
+ data: additionalErrorData
39
+ };
41
40
  }
42
41
  };
43
42
  exports.HttpExceptionFilter = HttpExceptionFilter;
44
43
  exports.HttpExceptionFilter = HttpExceptionFilter = HttpExceptionFilter_1 = __decorate([
45
- (0, common_1.Catch)()
44
+ (0, common_1.Catch)(),
45
+ (0, common_1.Injectable)(),
46
+ __metadata("design:paramtypes", [])
46
47
  ], HttpExceptionFilter);
47
48
  //# sourceMappingURL=http-exception.filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAE/E,6EAA6E;AAGtE,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAAzB;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IA+BnE,CAAC;IA7BG,KAAK,CAAC,SAAc,EAAE,IAAmB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,uBAAuB,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAGhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,4CAAsB,CAAC,MAAM,CAAC,IAAI,uBAAuB,KAAK,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QACnI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QAGjE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;gBACzB,GAAG,SAAS,CAAC,QAAQ;gBACrB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;QACP,CAAC;aACI,CAAC;YACF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;gBACzB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,cAAK,GAAE;GACK,mBAAmB,CAgC/B","sourcesContent":["import { ExceptionFilter, Catch, ArgumentsHost, Logger } from '@nestjs/common';\nimport { Response } from 'express';\nimport { HttpStatusCodeMessages } from '../interceptors/logging.interceptor';\n\n@Catch()\nexport class HttpExceptionFilter implements ExceptionFilter {\n private readonly logger = new Logger(HttpExceptionFilter.name);\n\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n const request = ctx.getRequest();\n const status = exception.status || 500;\n const message = exception.message || 'Internal server error';\n const { method, url } = request;\n\n // Log the error here\n this.logger.error(`[${status || 500} ${HttpStatusCodeMessages[status] || 'Internal Server Error'}] ${method} ${url} - ${message}`);\n this.logger.error(exception.stack || 'No stack trace available');\n\n // Send the response to the client\n if (exception.response) {\n response.status(status).json({\n ...exception.response,\n error: message,\n data: {}\n });\n }\n else {\n response.status(status).json({\n statusCode: status,\n message: [message],\n error: message,\n data: {}\n });\n }\n }\n}"]}
1
+ {"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA2F;AAE3F,6EAA6E;AAItE,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAG5B;QAFiB,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;QAG3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAc,EAAE,IAAmB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,uBAAuB,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAGhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,4CAAsB,CAAC,MAAM,CAAC,IAAI,uBAAuB,KAAK,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QACnI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QAGjE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,MAAqB,EAAE,OAAe,EAAE,sBAA+B,EAAE;QAC1F,OAAO;YACH,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,CAAC,OAAO,CAAC;YAClB,KAAK,EAAE,4CAAsB,CAAC,MAAM,CAAC,IAAI,uBAAuB;YAChE,IAAI,EAAE,mBAAmB;SAC5B,CAAA;IACL,CAAC;CACJ,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAF/B,IAAA,cAAK,GAAE;IACP,IAAA,mBAAU,GAAE;;GACA,mBAAmB,CAgC/B","sourcesContent":["import { ExceptionFilter, Catch, ArgumentsHost, Logger, Injectable } from '@nestjs/common';\nimport { Response } from 'express';\nimport { HttpStatusCodeMessages } from '../interceptors/logging.interceptor';\n\n@Catch()\n@Injectable()\nexport class HttpExceptionFilter implements ExceptionFilter {\n private readonly logger = new Logger(HttpExceptionFilter.name);\n\n constructor() {\n this.logger.debug('HttpExceptionFilter initialized');\n } \n\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n const request = ctx.getRequest();\n const status = exception.status || 500;\n const message = exception.message || 'Internal server error';\n const { method, url } = request;\n\n // Log the error here\n this.logger.error(`[${status || 500} ${HttpStatusCodeMessages[status] || 'Internal Server Error'}] ${method} ${url} - ${message}`);\n this.logger.error(exception.stack || 'No stack trace available');\n\n // Send the response to the client\n const errorJson = this.getErrorJson(status, message, exception.response);\n response.status(status).json(errorJson);\n }\n\n private getErrorJson(status: number|string, message: string, additionalErrorData: unknown = {}): any {\n return {\n statusCode: status,\n message: [message],\n error: HttpStatusCodeMessages[status] || 'Internal Server Error',\n data: additionalErrorData\n }\n }\n}"]}
@@ -60,7 +60,7 @@ let SchematicService = SchematicService_1 = class SchematicService {
60
60
  return !this.solidRegistry.getCommonEntityKeys().includes(field.name);
61
61
  })
62
62
  .map((field) => {
63
- return `--fields='${JSON.stringify(field)}'`;
63
+ return `--fields='${JSON.stringify(field).replace(/'/g, "\\'")}'`;
64
64
  })
65
65
  .join(' ');
66
66
  const schematicCommand = modelCommand + ' ' + fieldCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"schematic.service.js","sourceRoot":"","sources":["../../src/helpers/schematic.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { CommandService } from './command.service';\nimport { snakeCase } from \"lodash\";\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { SolidRegistry } from './solid-registry';\n\nexport const ADD_MODULE_COMMAND = 'add-module';\nexport type GenerateModuleOptions = {\n module: string;\n};\ntype FieldOptions = {\n module: string;\n model: string;\n moduleDisplayName: string;\n table?: string;\n dataSource: string;\n fields: any[]; //FIXME This type can be improved\n modelEnableSoftDelete?: boolean;\n parentModel?: string; \n parentModule?: string;\n draftPublishWorkflowEnabled?: boolean;\n};\nexport const REMOVE_FIELDS_COMMAND = 'remove-fields';\nexport const REFRESH_MODEL_COMMAND = 'refresh-model';\n\n//TODO Rename to CodeBuilder service\n@Injectable()\nexport class SchematicService {\n private readonly logger = new Logger(SchematicService.name);\n private readonly SCHEMATIC_PROJECT = '@solidstarters/solid-code-builder';\n constructor(private readonly commandService: CommandService, private readonly solidRegistry: SolidRegistry) { }\n\n async executeSchematicCommand(\n command: string,\n options: GenerateModuleOptions | FieldOptions,\n debug = false,\n ): Promise<string> {\n return await this.commandService.executeCommand(\n this.generateSchematicCommand(command, options, debug),\n );\n }\n\n private generateSchematicCommand(\n command: string,\n options: GenerateModuleOptions | FieldOptions,\n debug: boolean,\n ): string {\n const baseCommand = `schematics ${this.SCHEMATIC_PROJECT}:${command} --debug=${debug}`;\n if (\n command === REMOVE_FIELDS_COMMAND ||\n command === REFRESH_MODEL_COMMAND\n ) {\n const fieldOptions = options as FieldOptions;\n let modelCommand = `${baseCommand} --module=${fieldOptions.module} --model=${fieldOptions.model}`;\n if (fieldOptions.moduleDisplayName) {\n modelCommand += ` --module-display-name=${snakeCase(fieldOptions.moduleDisplayName)}`;\n }\n\n if (fieldOptions.table) {\n modelCommand += ` --table=${fieldOptions.table}`;\n }\n\n if (fieldOptions.dataSource) {\n modelCommand += ` --data-source=${fieldOptions.dataSource}`;\n }\n\n if (fieldOptions.modelEnableSoftDelete) {\n modelCommand += ` --model-enable-soft-delete=${fieldOptions.modelEnableSoftDelete}`;\n }\n\n if (fieldOptions.parentModel) {\n modelCommand += ` --parent-model=${fieldOptions.parentModel}`;\n }\n if (fieldOptions.parentModule) {\n modelCommand += ` --parent-module=${fieldOptions.parentModule}`;\n }\n\n if (fieldOptions.draftPublishWorkflowEnabled) {\n modelCommand += ` --draft-publish-workflow-enabled=${fieldOptions.draftPublishWorkflowEnabled}`;\n }\n \n let fieldCommand = fieldOptions.fields\n .filter((field) => {\n return !this.solidRegistry.getCommonEntityKeys().includes(field.name);\n })\n .map((field) => {\n return `--fields='${JSON.stringify(field)}'`;\n })\n .join(' ');\n const schematicCommand = modelCommand + ' ' + fieldCommand;\n // console.log('schematicCommand', schematicCommand);\n return schematicCommand;\n } else if (command === ADD_MODULE_COMMAND) {\n const moduleOptions = options as GenerateModuleOptions;\n // console.log('moduleOptions', moduleOptions);\n const schematicCommand = ` ${baseCommand} --module=${moduleOptions.module}`;\n // console.log('schematicCommand', schematicCommand);\n this.logger.debug('schematicCommand', schematicCommand);\n return schematicCommand;\n } else {\n throw new Error('Schematic command not supported.');\n }\n }\n}\n"]}
1
+ {"version":3,"file":"schematic.service.js","sourceRoot":"","sources":["../../src/helpers/schematic.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { CommandService } from './command.service';\nimport { snakeCase } from \"lodash\";\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { SolidRegistry } from './solid-registry';\n\nexport const ADD_MODULE_COMMAND = 'add-module';\nexport type GenerateModuleOptions = {\n module: string;\n};\ntype FieldOptions = {\n module: string;\n model: string;\n moduleDisplayName: string;\n table?: string;\n dataSource: string;\n fields: any[]; //FIXME This type can be improved\n modelEnableSoftDelete?: boolean;\n parentModel?: string; \n parentModule?: string;\n draftPublishWorkflowEnabled?: boolean;\n};\nexport const REMOVE_FIELDS_COMMAND = 'remove-fields';\nexport const REFRESH_MODEL_COMMAND = 'refresh-model';\n\n//TODO Rename to CodeBuilder service\n@Injectable()\nexport class SchematicService {\n private readonly logger = new Logger(SchematicService.name);\n private readonly SCHEMATIC_PROJECT = '@solidstarters/solid-code-builder';\n constructor(private readonly commandService: CommandService, private readonly solidRegistry: SolidRegistry) { }\n\n async executeSchematicCommand(\n command: string,\n options: GenerateModuleOptions | FieldOptions,\n debug = false,\n ): Promise<string> {\n return await this.commandService.executeCommand(\n this.generateSchematicCommand(command, options, debug),\n );\n }\n\n private generateSchematicCommand(\n command: string,\n options: GenerateModuleOptions | FieldOptions,\n debug: boolean,\n ): string {\n const baseCommand = `schematics ${this.SCHEMATIC_PROJECT}:${command} --debug=${debug}`;\n if (\n command === REMOVE_FIELDS_COMMAND ||\n command === REFRESH_MODEL_COMMAND\n ) {\n const fieldOptions = options as FieldOptions;\n let modelCommand = `${baseCommand} --module=${fieldOptions.module} --model=${fieldOptions.model}`;\n if (fieldOptions.moduleDisplayName) {\n modelCommand += ` --module-display-name=${snakeCase(fieldOptions.moduleDisplayName)}`;\n }\n\n if (fieldOptions.table) {\n modelCommand += ` --table=${fieldOptions.table}`;\n }\n\n if (fieldOptions.dataSource) {\n modelCommand += ` --data-source=${fieldOptions.dataSource}`;\n }\n\n if (fieldOptions.modelEnableSoftDelete) {\n modelCommand += ` --model-enable-soft-delete=${fieldOptions.modelEnableSoftDelete}`;\n }\n\n if (fieldOptions.parentModel) {\n modelCommand += ` --parent-model=${fieldOptions.parentModel}`;\n }\n if (fieldOptions.parentModule) {\n modelCommand += ` --parent-module=${fieldOptions.parentModule}`;\n }\n\n if (fieldOptions.draftPublishWorkflowEnabled) {\n modelCommand += ` --draft-publish-workflow-enabled=${fieldOptions.draftPublishWorkflowEnabled}`;\n }\n \n let fieldCommand = fieldOptions.fields\n .filter((field) => {\n return !this.solidRegistry.getCommonEntityKeys().includes(field.name);\n })\n .map((field) => {\n return `--fields='${JSON.stringify(field).replace(/'/g, \"\\\\'\")}'`;\n })\n .join(' ');\n const schematicCommand = modelCommand + ' ' + fieldCommand;\n // console.log('schematicCommand', schematicCommand);\n return schematicCommand;\n } else if (command === ADD_MODULE_COMMAND) {\n const moduleOptions = options as GenerateModuleOptions;\n // console.log('moduleOptions', moduleOptions);\n const schematicCommand = ` ${baseCommand} --module=${moduleOptions.module}`;\n // console.log('schematicCommand', schematicCommand);\n this.logger.debug('schematicCommand', schematicCommand);\n return schematicCommand;\n } else {\n throw new Error('Schematic command not supported.');\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"solid-registry.d.ts","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solid-registry.d.ts","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solid-registry.js","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAc5C,IAAY,uBAyBX;AAzBD,WAAY,uBAAuB;IACjC,4DAAiC,CAAA;IACjC,0DAA+B,CAAA;IAC/B,0DAA+B,CAAA;IAC/B,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;IACzB,0DAA+B,CAAA;IAC/B,4DAAiC,CAAA;IACjC,8DAAmC,CAAA;IACnC,0DAA+B,CAAA;IAC/B,wDAA6B,CAAA;IAC7B,wEAA6C,CAAA;IAC7C,0CAAe,CAAA;IACf,gEAAqC,CAAA;IACrC,4DAAiC,CAAA;IACjC,kDAAuB,CAAA;IACvB,oEAAyC,CAAA;IACzC,wDAA6B,CAAA;IAC7B,wDAA6B,CAAA;IAC7B,8CAAmB,CAAA;IACnB,sDAA2B,CAAA;IAC3B,sEAA2C,CAAA;IAC3C,wDAA6B,CAAA;IAC7B,wCAAa,CAAA;IACb,4CAAiB,CAAA;AACnB,CAAC,EAzBW,uBAAuB,uCAAvB,uBAAuB,QAyBlC;AAeM,IAAM,aAAa,GAAnB,MAAM,aAAa;IAAnB;QACG,YAAO,GAAyB,IAAI,GAAG,EAAE,CAAC;QAC1C,0BAAqB,GAAyB,IAAI,GAAG,EAAE,CAAC;QACxD,uBAAkB,GAAyB,IAAI,GAAG,EAAE,CAAC;QACrD,2BAAsB,GAAyB,IAAI,GAAG,EAAE,CAAC;QACzD,yBAAoB,GAAyB,IAAI,GAAG,EAAE,CAAC;QACvD,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;QACjD,YAAO,GAAyB,IAAI,GAAG,EAAE,CAAC;QAC1C,kBAAa,GAAmB,EAAE,CAAC;QACnC,YAAO,GAAa,EAAE,CAAC;QACvB,0BAAqB,GAA4B,EAAE,CAAC;IAgJ9D,CAAC;IA9IC,kBAAkB,CAAC,IAAY,EAAE,WAAqB;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,mBAAmB,CAAC,WAAoC;QACtD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,MAAuB;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB,CAAC,iBAAkC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,6BAA6B,CAAC,qBAAsC;QAClE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,4BAA4B,CAAC,oBAAqC;QAChE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,2BAA2B,CAAC,mBAAoC;QAC9D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,OAA0B;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAsC,IAAY;QAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/C,OAAO,iBAAiB,CAAC,QAAQ,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,wBAAwB;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAChD,CAAC;IAED,+BAA+B,CAAC,IAAY;QAC1C,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,oBAAoB,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvC,OAAO,oBAAoB,CAAC,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,IAAY;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACrG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,YAAY,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,uBAAuB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAChF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,qBAAqB,CAAC,aAA6B;QACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,OAAiB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,6BAA6B,CAAC,qBAA8C;QAC1E,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAGD,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;IACxE,CAAC;IAED,gBAAgB,CAAC,iBAAyB,EAAE,YAAsB,EAAE;QAElE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,iBAAiB,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,iBAAiB,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;IACL,CAAC;IAYD,mBAAmB;QACjB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;IAEzJ,CAAC;CAEF,CAAA;AA1JY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CA0JzB","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { ComputedFieldTriggerConfig, ComputedFieldValueType } from 'src/dtos/create-field-metadata.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { Locale } from 'src/entities/locale.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';\nimport { ISelectionProvider, ISelectionProviderContext } from \"../interfaces\";\n\ntype ControllerMetadata = {\n name: string;\n methods: string[];\n};\n\nexport enum RESERVED_SOLID_KEYWORDS {\n moduleMetadata = \"moduleMetadata\",\n modelMetadata = \"modelMetadata\",\n fieldMetadata = \"fieldMetadata\",\n dataSource = \"dataSource\",\n repository = \"repository\",\n entityManager = \"entityManager\",\n actionMetadata = \"actionMetadata\",\n emailAttachment = \"emailAttachment\",\n emailTemplate = \"emailTemplate\",\n listOfValues = \"listOfValues\",\n mediaStorageProvider = \"mediaStorageProvider\",\n media = \"media\",\n menuItemMetadata = \"menuItemMetadata\",\n mqMessageQueue = \"mqMessageQueue\",\n mqMessage = \"mqMessage\",\n permissionMetadata = \"permissionMetadata\",\n roleMetadata = \"roleMetadata\",\n securityRule = \"securityRule\",\n setting = \"setting\",\n smsTemplate = \"smsTemplate\",\n userPasswordHistory = \"userPasswordHistory\",\n userMetadata = \"userMetadata\",\n user = \"user\",\n locale = \"locale\"\n}\n\nexport interface ComputedFieldMetadata<TContext = any> {\n moduleName: string; // Name of the module where the computed field is defined\n modelName: string; // Name of the model where the computed field is defined\n fieldName: string; // Name of the field that is computed\n computedFieldValueType: ComputedFieldValueType; // Type of the computed field value (e.g., string, number, etc.)\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[]; // JSON stringified object containing the trigger configuration\n // Example: '{\"models\": [\"User\", \"Product\"], \"operations\": [\"create\", \"update\"]}'\n computedFieldValueProviderName: string; // Name of the provider that computes the field value\n // Example: '{\"contextKey\": \"contextValue\"}'\n computedFieldValueProviderCtxt: TContext; // Context for the computed field value\n}\n\n@Injectable()\nexport class SolidRegistry {\n private seeders: Set<InstanceWrapper> = new Set();\n private scheduledJobProviders: Set<InstanceWrapper> = new Set();\n private selectionProviders: Set<InstanceWrapper> = new Set();\n private computedFieldProviders: Set<InstanceWrapper> = new Set();\n private solidDatabaseModules: Set<InstanceWrapper> = new Set();\n private controllers: Set<ControllerMetadata> = new Set();\n private modules: Set<InstanceWrapper> = new Set();\n private securityRules: SecurityRule[] = [];\n private locales: Locale[] = [];\n private computedFieldMetadata: ComputedFieldMetadata[] = [];\n\n registerController(name: string, methodNames: string[]): void {\n this.controllers.add({ name: name, methods: methodNames });\n }\n\n registerControllers(controllers: Set<ControllerMetadata>): void {\n this.controllers = controllers;\n }\n\n registerSeeder(seeder: InstanceWrapper): void {\n this.seeders.add(seeder);\n }\n\n registerSelectionProvider(selectionProvider: InstanceWrapper): void {\n this.selectionProviders.add(selectionProvider);\n }\n\n registerComputedFieldProvider(computedFieldProvider: InstanceWrapper): void {\n this.computedFieldProviders.add(computedFieldProvider);\n }\n\n registerScheduledJobProvider(scheduledJobProvider: InstanceWrapper): void {\n this.scheduledJobProviders.add(scheduledJobProvider);\n }\n\n registerSolidDatabaseModule(solidDatabaseModule: InstanceWrapper): void {\n this.solidDatabaseModules.add(solidDatabaseModule);\n }\n\n registerModules(modules: InstanceWrapper[]): void {\n this.modules = new Set(modules);\n }\n\n getSeeders(): Array<InstanceWrapper> {\n return Array.from(this.seeders);\n }\n\n getControllers(): ControllerMetadata[] {\n return Array.from(this.controllers);\n }\n\n getSelectionProviders(): Array<InstanceWrapper> {\n return Array.from(this.selectionProviders);\n }\n\n getSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const selectionProviders = this.getSelectionProviders();\n\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n if (selectionProvider.instance.name() === name) {\n return selectionProvider.instance;\n }\n }\n }\n\n getComputedFieldProviders(): Array<InstanceWrapper> {\n return Array.from(this.computedFieldProviders);\n }\n\n getScheduledJobProviders(): Array<InstanceWrapper> {\n return Array.from(this.scheduledJobProviders);\n }\n\n getScheduledJobProviderInstance(name: string): IScheduledJob {\n const scheduledJobProviders = this.getScheduledJobProviders();\n\n for (let i = 0; i < scheduledJobProviders.length; i++) {\n const scheduledJobProvider = scheduledJobProviders[i];\n if (scheduledJobProvider.name === name) {\n return scheduledJobProvider.instance;\n }\n }\n }\n \n getComputedFieldProvider(name: string): InstanceWrapper {\n const provider = this.getComputedFieldProviders().filter((provider) => provider.name === name).pop();\n if (!provider) {\n throw new Error(`Computed Field Provider with name ${name} not found`);\n }\n return provider\n }\n\n getSolidDatabaseModules(): Array<InstanceWrapper> {\n return Array.from(this.solidDatabaseModules);\n }\n\n getModules(): Array<InstanceWrapper> {\n return Array.from(this.modules);\n }\n\n getModule(name: string): InstanceWrapper {\n const module = this.getModules().filter((module) => module.name === name).pop();\n return module\n }\n\n registerSecurityRules(securityRules: SecurityRule[]) {\n this.securityRules = securityRules;\n }\n\n registerlocales(locales: Locale[]) {\n this.locales = locales;\n }\n\n registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {\n this.computedFieldMetadata = computedFieldMetadata;\n }\n\n getComputedFieldMetadata(): ComputedFieldMetadata[] {\n return this.computedFieldMetadata;\n }\n\n //TODO:getlocales from locale model and return default locale where isDefault:true \n getDefaultLocale(): Locale | null {\n return this.locales.find(locale => locale.isDefault === true) || null;\n }\n\n getSecurityRules(modelSingularName: string, roleNames: string[] = []): SecurityRule[] {\n // If no role is provided, return all security rules for the model\n if (roleNames.length === 0) {\n return this.securityRules.filter((rule) => rule.modelMetadata.singularName === modelSingularName);\n }\n // If roles are provided, filter the security rules by model and roles\n return this.securityRules.filter((rule) => {\n return rule.modelMetadata.singularName === modelSingularName && roleNames.includes(rule.role.name);\n });\n }\n\n /**\n * @deprecated You can directly pass the entityName to typeORM, if you are using this just for doing operations against a particular entity.\n */\n // Returns the entity target class from the entity name\n // getEntityTarget(entityManager: EntityManager, entityName: string): any { //TODO Can be refactored to use this function from crud helper service\n // const entityMetadatas = entityManager.connection.entityMetadatas;\n // const entityMetadata = entityMetadatas.find(em => em.name === entityName);\n // return entityMetadata.target;\n // }\n\n getCommonEntityKeys(): (keyof CommonEntity)[] {\n return ['id', 'createdAt', 'updatedAt', 'deletedAt', 'createdBy', 'updatedBy', 'deletedTracker', 'localeName', 'defaultEntityLocaleId', 'publishedAt'];\n // return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];\n }\n\n}"]}
1
+ {"version":3,"file":"solid-registry.js","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { ComputedFieldTriggerConfig, ComputedFieldValueType } from 'src/dtos/create-field-metadata.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { Locale } from 'src/entities/locale.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';\nimport { ISelectionProvider, ISelectionProviderContext } from \"../interfaces\";\n\ntype ControllerMetadata = {\n name: string;\n methods: string[];\n};\n\nexport enum RESERVED_SOLID_KEYWORDS {\n moduleMetadata = \"moduleMetadata\",\n modelMetadata = \"modelMetadata\",\n fieldMetadata = \"fieldMetadata\",\n dataSource = \"dataSource\",\n repository = \"repository\",\n entityManager = \"entityManager\",\n actionMetadata = \"actionMetadata\",\n emailAttachment = \"emailAttachment\",\n emailTemplate = \"emailTemplate\",\n listOfValues = \"listOfValues\",\n mediaStorageProvider = \"mediaStorageProvider\",\n media = \"media\",\n menuItemMetadata = \"menuItemMetadata\",\n mqMessageQueue = \"mqMessageQueue\",\n mqMessage = \"mqMessage\",\n permissionMetadata = \"permissionMetadata\",\n roleMetadata = \"roleMetadata\",\n securityRule = \"securityRule\",\n setting = \"setting\",\n smsTemplate = \"smsTemplate\",\n userPasswordHistory = \"userPasswordHistory\",\n userMetadata = \"userMetadata\",\n user = \"user\",\n locale = \"locale\"\n}\n\nexport interface ComputedFieldMetadata<TContext = any> {\n moduleName: string; // Name of the module where the computed field is defined\n modelName: string; // Name of the model where the computed field is defined\n fieldName: string; // Name of the field that is computed\n computedFieldValueType: ComputedFieldValueType; // Type of the computed field value (e.g., string, number, etc.)\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[]; // JSON stringified object containing the trigger configuration\n // Example: '{\"models\": [\"User\", \"Product\"], \"operations\": [\"create\", \"update\"]}'\n computedFieldValueProviderName: string; // Name of the provider that computes the field value\n // Example: '{\"contextKey\": \"contextValue\"}'\n computedFieldValueProviderCtxt: TContext; // Context for the computed field value\n}\n\n@Injectable()\nexport class SolidRegistry {\n private seeders: Set<InstanceWrapper> = new Set();\n private scheduledJobProviders: Set<InstanceWrapper> = new Set();\n private selectionProviders: Set<InstanceWrapper> = new Set();\n private computedFieldProviders: Set<InstanceWrapper> = new Set();\n private solidDatabaseModules: Set<InstanceWrapper> = new Set();\n private controllers: Set<ControllerMetadata> = new Set();\n private modules: Set<InstanceWrapper> = new Set();\n private securityRules: SecurityRule[] = [];\n private locales: Locale[] = [];\n private computedFieldMetadata: ComputedFieldMetadata[] = [];\n\n registerController(name: string, methodNames: string[]): void {\n this.controllers.add({ name: name, methods: methodNames });\n }\n\n registerControllers(controllers: Set<ControllerMetadata>): void {\n this.controllers = controllers;\n }\n\n registerSeeder(seeder: InstanceWrapper): void {\n this.seeders.add(seeder);\n }\n\n registerSelectionProvider(selectionProvider: InstanceWrapper): void {\n this.selectionProviders.add(selectionProvider);\n }\n\n registerComputedFieldProvider(computedFieldProvider: InstanceWrapper): void {\n this.computedFieldProviders.add(computedFieldProvider);\n }\n\n registerScheduledJobProvider(scheduledJobProvider: InstanceWrapper): void {\n this.scheduledJobProviders.add(scheduledJobProvider);\n }\n\n registerSolidDatabaseModule(solidDatabaseModule: InstanceWrapper): void {\n this.solidDatabaseModules.add(solidDatabaseModule);\n }\n\n registerModules(modules: InstanceWrapper[]): void {\n this.modules = new Set(modules);\n }\n\n getSeeders(): Array<InstanceWrapper> {\n return Array.from(this.seeders);\n }\n\n getControllers(): ControllerMetadata[] {\n return Array.from(this.controllers);\n }\n\n getSelectionProviders(): Array<InstanceWrapper> {\n return Array.from(this.selectionProviders);\n }\n\n getSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const selectionProviders = this.getSelectionProviders();\n\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n if (selectionProvider.instance.name() === name) {\n return selectionProvider.instance;\n }\n }\n }\n\n getComputedFieldProviders(): Array<InstanceWrapper> {\n return Array.from(this.computedFieldProviders);\n }\n\n getScheduledJobProviders(): Array<InstanceWrapper> {\n return Array.from(this.scheduledJobProviders);\n }\n\n getScheduledJobProviderInstance(name: string): IScheduledJob {\n const scheduledJobProviders = this.getScheduledJobProviders();\n\n for (let i = 0; i < scheduledJobProviders.length; i++) {\n const scheduledJobProvider = scheduledJobProviders[i];\n if (scheduledJobProvider.name === name) {\n return scheduledJobProvider.instance;\n }\n }\n }\n \n getComputedFieldProvider(name: string): InstanceWrapper {\n const provider = this.getComputedFieldProviders().filter((provider) => provider.name === name).pop();\n if (!provider) {\n throw new Error(`Computed Field Provider with name ${name} not found`);\n }\n return provider\n }\n\n getSolidDatabaseModules(): Array<InstanceWrapper> {\n return Array.from(this.solidDatabaseModules);\n }\n\n getModules(): Array<InstanceWrapper> {\n return Array.from(this.modules);\n }\n\n getModule(name: string): InstanceWrapper {\n const module = this.getModules().filter((module) => module.name === name).pop();\n return module\n }\n\n registerSecurityRules(securityRules: SecurityRule[]) {\n this.securityRules = securityRules;\n }\n\n registerlocales(locales: Locale[]) {\n this.locales = locales;\n }\n\n registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {\n this.computedFieldMetadata = computedFieldMetadata;\n }\n\n getComputedFieldMetadata(): ComputedFieldMetadata[] {\n return this.computedFieldMetadata;\n }\n\n //TODO:getlocales from locale model and return default locale where isDefault:true \n getDefaultLocale(): Locale | null {\n return this.locales.find(locale => locale.isDefault === true) || null;\n }\n\n getSecurityRules(modelSingularName: string, roleNames: string[] = []): SecurityRule[] {\n // If no role is provided, return all security rules for the model\n if (roleNames.length === 0) {\n return this.securityRules.filter((rule) => rule.modelMetadata.singularName === modelSingularName);\n }\n // If roles are provided, filter the security rules by model and roles\n return this.securityRules.filter((rule) => {\n return rule.modelMetadata.singularName === modelSingularName && roleNames.includes(rule.role.name);\n });\n }\n\n getCommonEntityKeys(): (keyof CommonEntity)[] {\n return ['id', 'createdAt', 'updatedAt', 'deletedAt', 'createdBy', 'updatedBy', 'deletedTracker', 'localeName', 'defaultEntityLocaleId', 'publishedAt'];\n // return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];\n }\n\n}"]}
@@ -5050,7 +5050,8 @@
5050
5050
  "rowButtons": [
5051
5051
  {
5052
5052
  "attrs": {
5053
- "className": "pi pi-cog",
5053
+ "className": "p-button-text",
5054
+ "icon": "pi pi-cog",
5054
5055
  "label": "Generate Code",
5055
5056
  "action": "GenerateModuleCodeRowAction",
5056
5057
  "openInPopup": true,
@@ -5217,11 +5218,23 @@
5217
5218
  "truncateAfter": 50,
5218
5219
  "create": true,
5219
5220
  "edit": true,
5220
- "delete": true,
5221
+ "delete": false,
5221
5222
  "rowButtons": [
5222
5223
  {
5223
5224
  "attrs": {
5224
- "className": "pi pi-cog",
5225
+ "icon": "pi pi-trash",
5226
+ "className": "p-button-danger p-button-text",
5227
+ "label": "Delete",
5228
+ "action": "DeleteModelRowAction",
5229
+ "customComponentIsSystem": true,
5230
+ "actionInContextMenu": true,
5231
+ "openInPopup": true
5232
+ }
5233
+ },
5234
+ {
5235
+ "attrs": {
5236
+ "icon": "pi pi-cog",
5237
+ "className": "p-button-text",
5225
5238
  "label": "Generate Code",
5226
5239
  "action": "GenerateModelCodeRowAction",
5227
5240
  "customComponentIsSystem": true,
@@ -125,7 +125,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
125
125
  try {
126
126
  const onForcePasswordChange = await this.getConfig('forceChangePasswordOnFirstLogin');
127
127
  const extensionUser = extensionUserRepo.merge(extensionUserRepo.create(), extensionUserDto);
128
- var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(extensionUser, signUpDto, onForcePasswordChange);
128
+ var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(extensionUser, signUpDto, true, onForcePasswordChange);
129
129
  const savedUser = await extensionUserRepo.save(user);
130
130
  await this.handlePostSignup(savedUser, signUpDto.roles, pwd, autoGeneratedPwd);
131
131
  return savedUser;