@explorins/pers-shared 2.1.158 → 2.1.159

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.
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC,EAAE,EAAE,MAAM,CAAM;IAGhB,QAAQ,EAAE,MAAM,CAAM;IAOtB,UAAU,EAAE,qBAAqB,CAAU;IAG3C,GAAG,EAAE,MAAM,CAAM;IAGjB,KAAK,EAAE,MAAM,CAAM;IAGnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMlC,SAAS,EAAE,eAAe,CAAU;IAOpC,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAQ;IAMvD,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAMvD,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAGrD,SAAS,EAAE,MAAM,CAAK;IAGtB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B;;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAGnD;CAAG;;AAEJ;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;GAEG;AACH,qBAAa,wBAAwB;IAEnC,OAAO,EAAE,MAAM,CAAM;IAOrB,OAAO,EAAE,uBAAuB,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"custom-field-definition.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC,EAAE,EAAE,MAAM,CAAM;IAGhB,QAAQ,EAAE,MAAM,CAAM;IAStB,UAAU,EAAG,qBAAqB,CAAC;IAMnC,GAAG,EAAG,MAAM,CAAC;IAKb,KAAK,EAAG,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IASlC,SAAS,EAAE,eAAe,CAAU;IASpC,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAQ;IAOvD,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAOvD,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAKrD,SAAS,EAAE,MAAM,CAAK;IAGtB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B;;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAGnD;CAAG;;AAEJ;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;GAEG;AACH,qBAAa,wBAAwB;IAEnC,OAAO,EAAE,MAAM,CAAM;IAOrB,OAAO,EAAE,uBAAuB,EAAE,CAAM;CACzC"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ResolvedSelectOptionsDTO = exports.UpdateCustomFieldDefinitionDTO = exports.CreateCustomFieldDefinitionDTO = exports.CustomFieldDefinitionDTO = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
14
15
  /**
15
16
  * DTO for Custom Field Definition.
16
17
  * Exposed to SDK/frontend for rendering dynamic form fields.
@@ -18,9 +19,9 @@ const swagger_1 = require("@nestjs/swagger");
18
19
  class CustomFieldDefinitionDTO {
19
20
  id = '';
20
21
  tenantId = '';
21
- entityType = 'user';
22
- key = '';
23
- label = '';
22
+ entityType;
23
+ key;
24
+ label;
24
25
  description = null;
25
26
  fieldType = 'text';
26
27
  selectOptions = null;
@@ -43,27 +44,39 @@ __decorate([
43
44
  (0, swagger_1.ApiProperty)({
44
45
  description: 'Entity type this field applies to',
45
46
  enum: ['user', 'business', 'campaign', 'redemption'],
46
- default: 'user'
47
+ required: true,
47
48
  }),
49
+ (0, class_validator_1.IsNotEmpty)({ message: 'entityType is required' }),
50
+ (0, class_validator_1.IsIn)(['user', 'business', 'campaign', 'redemption'], { message: 'entityType must be one of: user, business, campaign, redemption' }),
48
51
  __metadata("design:type", String)
49
52
  ], CustomFieldDefinitionDTO.prototype, "entityType", void 0);
50
53
  __decorate([
51
- (0, swagger_1.ApiProperty)({ description: 'Unique key within tenant+entityType (snake_case)' }),
54
+ (0, swagger_1.ApiProperty)({ description: 'Unique key within tenant+entityType (camelCase)', required: true }),
55
+ (0, class_validator_1.IsNotEmpty)({ message: 'key is required' }),
56
+ (0, class_validator_1.IsString)(),
57
+ (0, class_validator_1.Matches)(/^[a-z][a-zA-Z0-9]*$/, { message: 'key must be camelCase starting with a lowercase letter' }),
52
58
  __metadata("design:type", String)
53
59
  ], CustomFieldDefinitionDTO.prototype, "key", void 0);
54
60
  __decorate([
55
- (0, swagger_1.ApiProperty)({ description: 'Human-readable label for form display' }),
61
+ (0, swagger_1.ApiProperty)({ description: 'Human-readable label for form display', required: true }),
62
+ (0, class_validator_1.IsNotEmpty)({ message: 'label is required' }),
63
+ (0, class_validator_1.IsString)(),
56
64
  __metadata("design:type", String)
57
65
  ], CustomFieldDefinitionDTO.prototype, "label", void 0);
58
66
  __decorate([
59
67
  (0, swagger_1.ApiPropertyOptional)({ description: 'Help text / description' }),
68
+ (0, class_validator_1.IsOptional)(),
69
+ (0, class_validator_1.IsString)(),
60
70
  __metadata("design:type", Object)
61
71
  ], CustomFieldDefinitionDTO.prototype, "description", void 0);
62
72
  __decorate([
63
73
  (0, swagger_1.ApiProperty)({
64
74
  description: 'Field type: text, number, date, select, boolean, url, email',
65
- enum: ['text', 'number', 'date', 'select', 'boolean', 'url', 'email']
75
+ enum: ['text', 'number', 'date', 'select', 'boolean', 'url', 'email'],
76
+ default: 'text'
66
77
  }),
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, class_validator_1.IsIn)(['text', 'number', 'date', 'select', 'boolean', 'url', 'email']),
67
80
  __metadata("design:type", String)
68
81
  ], CustomFieldDefinitionDTO.prototype, "fieldType", void 0);
69
82
  __decorate([
@@ -72,6 +85,8 @@ __decorate([
72
85
  type: 'array',
73
86
  items: { type: 'object', properties: { value: { type: 'string' }, label: { type: 'string' } } }
74
87
  }),
88
+ (0, class_validator_1.IsOptional)(),
89
+ (0, class_validator_1.IsArray)(),
75
90
  __metadata("design:type", Object)
76
91
  ], CustomFieldDefinitionDTO.prototype, "selectOptions", void 0);
77
92
  __decorate([
@@ -79,6 +94,7 @@ __decorate([
79
94
  description: 'For select type: dynamic options from entity',
80
95
  type: 'object'
81
96
  }),
97
+ (0, class_validator_1.IsOptional)(),
82
98
  __metadata("design:type", Object)
83
99
  ], CustomFieldDefinitionDTO.prototype, "selectOptionsSource", void 0);
84
100
  __decorate([
@@ -86,10 +102,13 @@ __decorate([
86
102
  description: 'Validation rules for the field',
87
103
  type: 'object'
88
104
  }),
105
+ (0, class_validator_1.IsOptional)(),
89
106
  __metadata("design:type", Object)
90
107
  ], CustomFieldDefinitionDTO.prototype, "validation", void 0);
91
108
  __decorate([
92
109
  (0, swagger_1.ApiProperty)({ description: 'Display order (lower = first)', default: 0 }),
110
+ (0, class_validator_1.IsOptional)(),
111
+ (0, class_validator_1.IsNumber)(),
93
112
  __metadata("design:type", Number)
94
113
  ], CustomFieldDefinitionDTO.prototype, "sortOrder", void 0);
95
114
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC,EAAE,EAAE,MAAM,CAAM;IAGhB,QAAQ,EAAE,MAAM,CAAM;IAOtB,UAAU,EAAE,qBAAqB,CAAU;IAG3C,GAAG,EAAE,MAAM,CAAM;IAGjB,KAAK,EAAE,MAAM,CAAM;IAGnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMlC,SAAS,EAAE,eAAe,CAAU;IAOpC,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAQ;IAMvD,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAMvD,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAGrD,SAAS,EAAE,MAAM,CAAK;IAGtB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B;;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAGnD;CAAG;;AAEJ;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;GAEG;AACH,qBAAa,wBAAwB;IAEnC,OAAO,EAAE,MAAM,CAAM;IAOrB,OAAO,EAAE,uBAAuB,EAAE,CAAM;CACzC"}
1
+ {"version":3,"file":"custom-field-definition.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC,EAAE,EAAE,MAAM,CAAM;IAGhB,QAAQ,EAAE,MAAM,CAAM;IAStB,UAAU,EAAG,qBAAqB,CAAC;IAMnC,GAAG,EAAG,MAAM,CAAC;IAKb,KAAK,EAAG,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IASlC,SAAS,EAAE,eAAe,CAAU;IASpC,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAQ;IAOvD,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAOvD,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAKrD,SAAS,EAAE,MAAM,CAAK;IAGtB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B;;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAGnD;CAAG;;AAEJ;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;GAEG;AACH,qBAAa,wBAAwB;IAEnC,OAAO,EAAE,MAAM,CAAM;IAOrB,OAAO,EAAE,uBAAuB,EAAE,CAAM;CACzC"}
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { ApiProperty, ApiPropertyOptional, OmitType, PartialType } from '@nestjs/swagger';
8
+ import { IsNotEmpty, IsString, IsOptional, IsIn, IsNumber, IsArray, Matches } from 'class-validator';
8
9
  /**
9
10
  * DTO for Custom Field Definition.
10
11
  * Exposed to SDK/frontend for rendering dynamic form fields.
@@ -12,9 +13,9 @@ import { ApiProperty, ApiPropertyOptional, OmitType, PartialType } from '@nestjs
12
13
  export class CustomFieldDefinitionDTO {
13
14
  id = '';
14
15
  tenantId = '';
15
- entityType = 'user';
16
- key = '';
17
- label = '';
16
+ entityType;
17
+ key;
18
+ label;
18
19
  description = null;
19
20
  fieldType = 'text';
20
21
  selectOptions = null;
@@ -34,45 +35,63 @@ __decorate([
34
35
  ApiProperty({
35
36
  description: 'Entity type this field applies to',
36
37
  enum: ['user', 'business', 'campaign', 'redemption'],
37
- default: 'user'
38
- })
38
+ required: true,
39
+ }),
40
+ IsNotEmpty({ message: 'entityType is required' }),
41
+ IsIn(['user', 'business', 'campaign', 'redemption'], { message: 'entityType must be one of: user, business, campaign, redemption' })
39
42
  ], CustomFieldDefinitionDTO.prototype, "entityType", void 0);
40
43
  __decorate([
41
- ApiProperty({ description: 'Unique key within tenant+entityType (snake_case)' })
44
+ ApiProperty({ description: 'Unique key within tenant+entityType (camelCase)', required: true }),
45
+ IsNotEmpty({ message: 'key is required' }),
46
+ IsString(),
47
+ Matches(/^[a-z][a-zA-Z0-9]*$/, { message: 'key must be camelCase starting with a lowercase letter' })
42
48
  ], CustomFieldDefinitionDTO.prototype, "key", void 0);
43
49
  __decorate([
44
- ApiProperty({ description: 'Human-readable label for form display' })
50
+ ApiProperty({ description: 'Human-readable label for form display', required: true }),
51
+ IsNotEmpty({ message: 'label is required' }),
52
+ IsString()
45
53
  ], CustomFieldDefinitionDTO.prototype, "label", void 0);
46
54
  __decorate([
47
- ApiPropertyOptional({ description: 'Help text / description' })
55
+ ApiPropertyOptional({ description: 'Help text / description' }),
56
+ IsOptional(),
57
+ IsString()
48
58
  ], CustomFieldDefinitionDTO.prototype, "description", void 0);
49
59
  __decorate([
50
60
  ApiProperty({
51
61
  description: 'Field type: text, number, date, select, boolean, url, email',
52
- enum: ['text', 'number', 'date', 'select', 'boolean', 'url', 'email']
53
- })
62
+ enum: ['text', 'number', 'date', 'select', 'boolean', 'url', 'email'],
63
+ default: 'text'
64
+ }),
65
+ IsOptional(),
66
+ IsIn(['text', 'number', 'date', 'select', 'boolean', 'url', 'email'])
54
67
  ], CustomFieldDefinitionDTO.prototype, "fieldType", void 0);
55
68
  __decorate([
56
69
  ApiPropertyOptional({
57
70
  description: 'For select type: static options array',
58
71
  type: 'array',
59
72
  items: { type: 'object', properties: { value: { type: 'string' }, label: { type: 'string' } } }
60
- })
73
+ }),
74
+ IsOptional(),
75
+ IsArray()
61
76
  ], CustomFieldDefinitionDTO.prototype, "selectOptions", void 0);
62
77
  __decorate([
63
78
  ApiPropertyOptional({
64
79
  description: 'For select type: dynamic options from entity',
65
80
  type: 'object'
66
- })
81
+ }),
82
+ IsOptional()
67
83
  ], CustomFieldDefinitionDTO.prototype, "selectOptionsSource", void 0);
68
84
  __decorate([
69
85
  ApiPropertyOptional({
70
86
  description: 'Validation rules for the field',
71
87
  type: 'object'
72
- })
88
+ }),
89
+ IsOptional()
73
90
  ], CustomFieldDefinitionDTO.prototype, "validation", void 0);
74
91
  __decorate([
75
- ApiProperty({ description: 'Display order (lower = first)', default: 0 })
92
+ ApiProperty({ description: 'Display order (lower = first)', default: 0 }),
93
+ IsOptional(),
94
+ IsNumber()
76
95
  ], CustomFieldDefinitionDTO.prototype, "sortOrder", void 0);
77
96
  __decorate([
78
97
  ApiProperty({ description: 'Creation timestamp' })
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/custom-field-definition.dto.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorins/pers-shared",
3
- "version": "2.1.158",
3
+ "version": "2.1.159",
4
4
  "scripts": {
5
5
  "clean": "find dist -type f -delete 2>/dev/null || true",
6
6
  "build:esm": "tsc -p tsconfig.esm.json && node scripts/add-js-extensions.js",