@wisemen/nestjs-custom-fields 2.0.1 → 4.0.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.
Files changed (56) hide show
  1. package/README.md +34 -0
  2. package/dist/custom-field-rules.d.ts +2 -0
  3. package/dist/custom-field-type-contract.d.ts +2 -0
  4. package/dist/custom-field-type-contract.js.map +1 -1
  5. package/dist/custom-field-types/index.d.ts +1 -0
  6. package/dist/custom-field-types/index.js +1 -0
  7. package/dist/custom-field-types/index.js.map +1 -1
  8. package/dist/custom-field-types/reference/index.d.ts +7 -0
  9. package/dist/custom-field-types/reference/index.js +8 -0
  10. package/dist/custom-field-types/reference/index.js.map +1 -0
  11. package/dist/custom-field-types/reference/reference.contract.d.ts +12 -0
  12. package/dist/custom-field-types/reference/reference.contract.js +2 -0
  13. package/dist/custom-field-types/reference/reference.contract.js.map +1 -0
  14. package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.d.ts +1 -0
  15. package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js +68 -0
  16. package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js.map +1 -0
  17. package/dist/custom-field-types/reference/reference.custom-field-value.validator.d.ts +5 -0
  18. package/dist/custom-field-types/reference/reference.custom-field-value.validator.js +41 -0
  19. package/dist/custom-field-types/reference/reference.custom-field-value.validator.js.map +1 -0
  20. package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.d.ts +1 -0
  21. package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.js +94 -0
  22. package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.js.map +1 -0
  23. package/dist/custom-field-types/reference/reference.definition-validation.d.ts +7 -0
  24. package/dist/custom-field-types/reference/reference.definition-validation.js +24 -0
  25. package/dist/custom-field-types/reference/reference.definition-validation.js.map +1 -0
  26. package/dist/custom-field-types/reference/reference.dto.d.ts +9 -0
  27. package/dist/custom-field-types/reference/reference.dto.js +34 -0
  28. package/dist/custom-field-types/reference/reference.dto.js.map +1 -0
  29. package/dist/custom-field-types/reference/reference.format.d.ts +5 -0
  30. package/dist/custom-field-types/reference/reference.format.js +7 -0
  31. package/dist/custom-field-types/reference/reference.format.js.map +1 -0
  32. package/dist/custom-field-types/reference/reference.rules.d.ts +5 -0
  33. package/dist/custom-field-types/reference/reference.rules.js +2 -0
  34. package/dist/custom-field-types/reference/reference.rules.js.map +1 -0
  35. package/dist/custom-field-types/reference/reference.value.d.ts +5 -0
  36. package/dist/custom-field-types/reference/reference.value.js +2 -0
  37. package/dist/custom-field-types/reference/reference.value.js.map +1 -0
  38. package/dist/dto/custom-field-value.dto.d.ts +7 -4
  39. package/dist/dto/custom-field-value.dto.js +6 -2
  40. package/dist/dto/custom-field-value.dto.js.map +1 -1
  41. package/dist/dto/custom-field-value.dto.unit.test.js +5 -1
  42. package/dist/dto/custom-field-value.dto.unit.test.js.map +1 -1
  43. package/dist/enum/custom-field-type.enum.d.ts +2 -1
  44. package/dist/enum/custom-field-type.enum.js +1 -0
  45. package/dist/enum/custom-field-type.enum.js.map +1 -1
  46. package/dist/factory/custom-field-definition.factory.js +6 -1
  47. package/dist/factory/custom-field-definition.factory.js.map +1 -1
  48. package/dist/index.d.ts +2 -1
  49. package/dist/index.js +2 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/typeorm/custom-field-value.column.js +2 -0
  52. package/dist/typeorm/custom-field-value.column.js.map +1 -1
  53. package/dist/validators/custom-field-value.validator.js +4 -0
  54. package/dist/validators/custom-field-value.validator.js.map +1 -1
  55. package/package.json +8 -10
  56. package/skills/getting-started/SKILL.md +34 -0
package/README.md CHANGED
@@ -128,6 +128,40 @@ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
128
128
  column and backfill `views` for your existing definitions in the same release.
129
129
  Without a backfill, every existing definition is hidden in every view.
130
130
 
131
+ ### Reference Fields
132
+
133
+ Use `CustomFieldType.REFERENCE` for a field that points to another record. The
134
+ value is the referenced record's ID as a non-empty string. The package does not
135
+ know which entity is referenced: map the definition's `entityType` and `key` to
136
+ the right route in your frontend.
137
+
138
+ Rules are optional. `format` restricts the ID to a UUID
139
+ (`ReferenceCustomFieldFormat.UUID`), digits only
140
+ (`ReferenceCustomFieldFormat.NUMERIC`) or letters and digits only
141
+ (`ReferenceCustomFieldFormat.ALPHANUMERIC`), and `regex` adds a custom pattern.
142
+ When both are set, the value must pass both.
143
+
144
+ ```ts
145
+ import { ReferenceCustomFieldFormat } from '@wisemen/nestjs-custom-fields'
146
+
147
+ const customerField = customFieldDefinition(CustomFieldType.REFERENCE, {
148
+ tenantUuid: null,
149
+ entityType: CustomFieldEntityType.TICKET,
150
+ key: 'customer',
151
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
152
+ description: null,
153
+ isRequired: false,
154
+ rules: {
155
+ format: ReferenceCustomFieldFormat.UUID
156
+ }
157
+ })
158
+ ```
159
+
160
+ When upgrading from 3.x to 4.0.0, handle `CustomFieldType.REFERENCE` wherever
161
+ you `switch` over `CustomFieldType` or build a `Record<CustomFieldType, ...>`;
162
+ those no longer type-check until the new case is added. No database migration is
163
+ needed: `type` is stored as `varchar` and `rules` as `jsonb`.
164
+
131
165
  ## Step 3: Store Values On The Entity With The Custom Column
132
166
 
133
167
  Resolved custom field values live on your own entity. Use
@@ -5,6 +5,7 @@ import type { DateCustomFieldRules as DateCustomFieldRulesModel } from '#src/cus
5
5
  import type { MonetaryCustomFieldRules as MonetaryCustomFieldRulesModel } from '#src/custom-field-types/monetary/monetary.rules.js';
6
6
  import type { MultiSelectCustomFieldRules as MultiSelectCustomFieldRulesModel } from '#src/custom-field-types/multi-select/multi-select.rules.js';
7
7
  import type { NumberCustomFieldRules as NumberCustomFieldRulesModel } from '#src/custom-field-types/number/number.rules.js';
8
+ import type { ReferenceCustomFieldRules as ReferenceCustomFieldRulesModel } from '#src/custom-field-types/reference/reference.rules.js';
8
9
  import type { SelectCustomFieldRules as SelectCustomFieldRulesModel } from '#src/custom-field-types/single-select/single-select.rules.js';
9
10
  import type { TextArrayCustomFieldRules as TextArrayCustomFieldRulesModel } from '#src/custom-field-types/text-array/text-array.rules.js';
10
11
  import type { TextCustomFieldRules as TextCustomFieldRulesModel } from '#src/custom-field-types/text/text.rules.js';
@@ -21,6 +22,7 @@ export type TimestampCustomFieldRules = TimestampCustomFieldRulesModel;
21
22
  export type SelectCustomFieldRules = SelectCustomFieldRulesModel;
22
23
  export type MultiSelectCustomFieldRules = MultiSelectCustomFieldRulesModel;
23
24
  export type MonetaryCustomFieldRules = MonetaryCustomFieldRulesModel;
25
+ export type ReferenceCustomFieldRules = ReferenceCustomFieldRulesModel;
24
26
  export type CustomFieldRulesByType<T extends CustomFieldType> = CustomFieldRulesFor<T>;
25
27
  export type CustomFieldRules = {
26
28
  [T in CustomFieldType]: CustomFieldRulesByType<T>;
@@ -3,6 +3,7 @@ import type { DateCustomFieldTypeContract } from '#src/custom-field-types/date/d
3
3
  import type { MonetaryCustomFieldTypeContract } from '#src/custom-field-types/monetary/monetary.contract.js';
4
4
  import type { MultiSelectCustomFieldTypeContract } from '#src/custom-field-types/multi-select/multi-select.contract.js';
5
5
  import type { NumberCustomFieldTypeContract } from '#src/custom-field-types/number/number.contract.js';
6
+ import type { ReferenceCustomFieldTypeContract } from '#src/custom-field-types/reference/reference.contract.js';
6
7
  import type { SingleSelectCustomFieldTypeContract } from '#src/custom-field-types/single-select/single-select.contract.js';
7
8
  import type { TextArrayCustomFieldTypeContract } from '#src/custom-field-types/text-array/text-array.contract.js';
8
9
  import type { TextCustomFieldTypeContract } from '#src/custom-field-types/text/text.contract.js';
@@ -29,6 +30,7 @@ export type CustomFieldTypeContract = Satisfies<{
29
30
  [CustomFieldType.SINGLE_SELECT]: SingleSelectCustomFieldTypeContract;
30
31
  [CustomFieldType.MULTI_SELECT]: MultiSelectCustomFieldTypeContract;
31
32
  [CustomFieldType.MONETARY]: MonetaryCustomFieldTypeContract;
33
+ [CustomFieldType.REFERENCE]: ReferenceCustomFieldTypeContract;
32
34
  }, Record<CustomFieldType, CustomFieldTypeContractBase>>;
33
35
  export type CustomFieldDomainValueByType<T extends CustomFieldType> = CustomFieldTypeContract[T]['value'];
34
36
  export type CustomFieldColumnValueByType<T extends CustomFieldType> = CustomFieldTypeContract[T]['columnValue'];
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-type-contract.js","sourceRoot":"","sources":["../lib/custom-field-type-contract.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA"}
1
+ {"version":3,"file":"custom-field-type-contract.js","sourceRoot":"","sources":["../lib/custom-field-type-contract.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA"}
@@ -3,6 +3,7 @@ export * from './date/index.js';
3
3
  export * from './monetary/index.js';
4
4
  export * from './multi-select/index.js';
5
5
  export * from './number/index.js';
6
+ export * from './reference/index.js';
6
7
  export * from './single-select/index.js';
7
8
  export * from './text-array/index.js';
8
9
  export * from './text/index.js';
@@ -3,6 +3,7 @@ export * from './date/index.js';
3
3
  export * from './monetary/index.js';
4
4
  export * from './multi-select/index.js';
5
5
  export * from './number/index.js';
6
+ export * from './reference/index.js';
6
7
  export * from './single-select/index.js';
7
8
  export * from './text-array/index.js';
8
9
  export * from './text/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/custom-field-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/custom-field-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from './reference.contract.js';
2
+ export * from './reference.definition-validation.js';
3
+ export * from './reference.dto.js';
4
+ export * from './reference.format.js';
5
+ export * from './reference.rules.js';
6
+ export * from './reference.custom-field-value.validator.js';
7
+ export * from './reference.value.js';
@@ -0,0 +1,8 @@
1
+ export * from './reference.contract.js';
2
+ export * from './reference.definition-validation.js';
3
+ export * from './reference.dto.js';
4
+ export * from './reference.format.js';
5
+ export * from './reference.rules.js';
6
+ export * from './reference.custom-field-value.validator.js';
7
+ export * from './reference.value.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sCAAsC,CAAA;AACpD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6CAA6C,CAAA;AAC3D,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { DefineContract } from '#src/custom-field-type-contract.js';
2
+ import type { ReferenceCustomFieldFormat } from './reference.format.js';
3
+ export type ReferenceCustomFieldTypeContract = DefineContract<{
4
+ value: string;
5
+ columnValue: string;
6
+ rules: {
7
+ format?: ReferenceCustomFieldFormat;
8
+ regex?: string;
9
+ };
10
+ rulesMode: 'optional';
11
+ choicesMode: 'none';
12
+ }>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reference.contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.contract.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.contract.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { LocalizedString } from '@wisemen/localized-string';
4
+ import { CustomFieldDefinitionError } from '#src/errors/custom-field-definition.error.js';
5
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
6
+ import { customFieldDefinition } from '#src/factory/custom-field-definition.factory.js';
7
+ import { ReferenceCustomFieldFormat } from './reference.format.js';
8
+ describe('reference customFieldDefinition', () => {
9
+ it('creates a reference custom field definition without rules', () => {
10
+ const definition = customFieldDefinition(CustomFieldType.REFERENCE, {
11
+ tenantUuid: null,
12
+ entityType: 'ticket',
13
+ key: 'customer',
14
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
15
+ description: null,
16
+ isRequired: false
17
+ });
18
+ expect(definition.type).toBe(CustomFieldType.REFERENCE);
19
+ expect(definition.choices).toBeNull();
20
+ expect(definition.rules).toBeNull();
21
+ });
22
+ it('creates a reference custom field definition with a format and regex', () => {
23
+ const definition = customFieldDefinition(CustomFieldType.REFERENCE, {
24
+ tenantUuid: null,
25
+ entityType: 'ticket',
26
+ key: 'customer',
27
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
28
+ description: null,
29
+ isRequired: false,
30
+ rules: {
31
+ format: ReferenceCustomFieldFormat.NUMERIC,
32
+ regex: '^[0-9]{6}$'
33
+ }
34
+ });
35
+ expect(definition.rules).toEqual({
36
+ type: CustomFieldType.REFERENCE,
37
+ format: ReferenceCustomFieldFormat.NUMERIC,
38
+ regex: '^[0-9]{6}$'
39
+ });
40
+ });
41
+ it('rejects a reference field whose format is unsupported', () => {
42
+ expect(() => customFieldDefinition(CustomFieldType.REFERENCE, {
43
+ tenantUuid: null,
44
+ entityType: 'ticket',
45
+ key: 'customer',
46
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
47
+ description: null,
48
+ isRequired: false,
49
+ rules: {
50
+ format: 'email'
51
+ }
52
+ })).toThrow(new CustomFieldDefinitionError('Reference custom field format must be a supported format'));
53
+ });
54
+ it('rejects a reference field whose regex is invalid', () => {
55
+ expect(() => customFieldDefinition(CustomFieldType.REFERENCE, {
56
+ tenantUuid: null,
57
+ entityType: 'ticket',
58
+ key: 'customer',
59
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
60
+ description: null,
61
+ isRequired: false,
62
+ rules: {
63
+ regex: '['
64
+ }
65
+ })).toThrow(new CustomFieldDefinitionError('Reference custom field regex must be a valid regular expression'));
66
+ });
67
+ });
68
+ //# sourceMappingURL=reference.custom-field-definition.factory.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.custom-field-definition.factory.unit.test.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CustomFieldDefinitionFieldsByType } from '#src/custom-field-definition.js';
2
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
3
+ type ReferenceCustomFieldDefinition = CustomFieldDefinitionFieldsByType<CustomFieldType.REFERENCE>;
4
+ export declare function validateReferenceCustomFieldValue(definition: ReferenceCustomFieldDefinition, value: string): void;
5
+ export {};
@@ -0,0 +1,41 @@
1
+ import { isAlphanumeric, isNumberString, isUUID } from 'class-validator';
2
+ import { CustomFieldValueValidationError } from '#src/validators/custom-field-value-validation.error.js';
3
+ import { exhaustiveCheck } from '#src/exhaustive-check.js';
4
+ import { ReferenceCustomFieldFormat } from './reference.format.js';
5
+ export function validateReferenceCustomFieldValue(definition, value) {
6
+ if (value.trim() === '') {
7
+ throw new CustomFieldValueValidationError('Reference custom field value can not be empty');
8
+ }
9
+ const rules = definition.rules;
10
+ if (rules === null) {
11
+ return;
12
+ }
13
+ if (rules.format !== undefined) {
14
+ validateReferenceFormat(rules.format, value);
15
+ }
16
+ if (rules.regex !== undefined && !new RegExp(rules.regex).test(value)) {
17
+ throw new CustomFieldValueValidationError('Reference custom field value must match the configured regex');
18
+ }
19
+ }
20
+ function validateReferenceFormat(format, value) {
21
+ switch (format) {
22
+ case ReferenceCustomFieldFormat.UUID:
23
+ if (!isUUID(value)) {
24
+ throw new CustomFieldValueValidationError('Reference custom field value must be a valid UUID');
25
+ }
26
+ return;
27
+ case ReferenceCustomFieldFormat.NUMERIC:
28
+ if (!isNumberString(value, { no_symbols: true })) {
29
+ throw new CustomFieldValueValidationError('Reference custom field value must be numeric');
30
+ }
31
+ return;
32
+ case ReferenceCustomFieldFormat.ALPHANUMERIC:
33
+ if (!isAlphanumeric(value)) {
34
+ throw new CustomFieldValueValidationError('Reference custom field value must be alphanumeric');
35
+ }
36
+ return;
37
+ default:
38
+ exhaustiveCheck(format);
39
+ }
40
+ }
41
+ //# sourceMappingURL=reference.custom-field-value.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.custom-field-value.validator.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-value.validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAA;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAIlE,MAAM,UAAU,iCAAiC,CAC/C,UAA0C,EAC1C,KAAa;IAEb,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,+BAA+B,CAAC,+CAA+C,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,uBAAuB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,+BAA+B,CAAC,8DAA8D,CAAC,CAAA;IAC3G,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAkC,EAAE,KAAa;IAChF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,0BAA0B,CAAC,IAAI;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,+BAA+B,CAAC,mDAAmD,CAAC,CAAA;YAChG,CAAC;YACD,OAAM;QACR,KAAK,0BAA0B,CAAC,OAAO;YACrC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,+BAA+B,CAAC,8CAA8C,CAAC,CAAA;YAC3F,CAAC;YACD,OAAM;QACR,KAAK,0BAA0B,CAAC,YAAY;YAC1C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,+BAA+B,CAAC,mDAAmD,CAAC,CAAA;YAChG,CAAC;YACD,OAAM;QACR;YACE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { describe, it } from 'node:test';
2
+ import { LocalizedString } from '@wisemen/localized-string';
3
+ import { customFieldDefinition } from '#src/factory/custom-field-definition.factory.js';
4
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
5
+ import { validateCustomFieldValue } from '#src/validators/custom-field-value.validator.js';
6
+ import { CustomFieldValueValidationError } from '#src/validators/custom-field-value-validation.error.js';
7
+ import { expect } from 'expect';
8
+ import { ReferenceCustomFieldFormat } from './reference.format.js';
9
+ function referenceDefinition(rules) {
10
+ return customFieldDefinition(CustomFieldType.REFERENCE, {
11
+ tenantUuid: null,
12
+ entityType: 'ticket',
13
+ key: 'customer',
14
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
15
+ description: null,
16
+ isRequired: false,
17
+ rules
18
+ });
19
+ }
20
+ describe('reference validateCustomFieldValue', () => {
21
+ it('accepts any non-empty reference value without rules', () => {
22
+ const definition = referenceDefinition();
23
+ expect(() => validateCustomFieldValue(definition, {
24
+ definitionUuid: definition.uuid,
25
+ type: CustomFieldType.REFERENCE,
26
+ value: 'customer-42'
27
+ })).not.toThrow();
28
+ });
29
+ it('rejects an empty reference value', () => {
30
+ const definition = referenceDefinition();
31
+ expect(() => validateCustomFieldValue(definition, {
32
+ definitionUuid: definition.uuid,
33
+ type: CustomFieldType.REFERENCE,
34
+ value: ' '
35
+ })).toThrow(new CustomFieldValueValidationError('Reference custom field value can not be empty'));
36
+ });
37
+ it('accepts a uuid reference value', () => {
38
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.UUID });
39
+ expect(() => validateCustomFieldValue(definition, {
40
+ definitionUuid: definition.uuid,
41
+ type: CustomFieldType.REFERENCE,
42
+ value: '0b8f7a3e-7c1d-4f4e-9a0a-2f5f6c8d9e10'
43
+ })).not.toThrow();
44
+ });
45
+ it('rejects a reference value that is not a uuid', () => {
46
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.UUID });
47
+ expect(() => validateCustomFieldValue(definition, {
48
+ definitionUuid: definition.uuid,
49
+ type: CustomFieldType.REFERENCE,
50
+ value: 'customer-42'
51
+ })).toThrow(new CustomFieldValueValidationError('Reference custom field value must be a valid UUID'));
52
+ });
53
+ it('accepts a numeric reference value', () => {
54
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.NUMERIC });
55
+ expect(() => validateCustomFieldValue(definition, {
56
+ definitionUuid: definition.uuid,
57
+ type: CustomFieldType.REFERENCE,
58
+ value: '42'
59
+ })).not.toThrow();
60
+ });
61
+ it('rejects a reference value that is not numeric', () => {
62
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.NUMERIC });
63
+ expect(() => validateCustomFieldValue(definition, {
64
+ definitionUuid: definition.uuid,
65
+ type: CustomFieldType.REFERENCE,
66
+ value: '12a'
67
+ })).toThrow(new CustomFieldValueValidationError('Reference custom field value must be numeric'));
68
+ });
69
+ it('accepts an alphanumeric reference value', () => {
70
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.ALPHANUMERIC });
71
+ expect(() => validateCustomFieldValue(definition, {
72
+ definitionUuid: definition.uuid,
73
+ type: CustomFieldType.REFERENCE,
74
+ value: 'CUS42'
75
+ })).not.toThrow();
76
+ });
77
+ it('rejects a reference value that is not alphanumeric', () => {
78
+ const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.ALPHANUMERIC });
79
+ expect(() => validateCustomFieldValue(definition, {
80
+ definitionUuid: definition.uuid,
81
+ type: CustomFieldType.REFERENCE,
82
+ value: 'CUS-42'
83
+ })).toThrow(new CustomFieldValueValidationError('Reference custom field value must be alphanumeric'));
84
+ });
85
+ it('rejects a reference value that does not match the regex', () => {
86
+ const definition = referenceDefinition({ regex: '^CUS-[0-9]+$' });
87
+ expect(() => validateCustomFieldValue(definition, {
88
+ definitionUuid: definition.uuid,
89
+ type: CustomFieldType.REFERENCE,
90
+ value: 'ORD-1'
91
+ })).toThrow(new CustomFieldValueValidationError('Reference custom field value must match the configured regex'));
92
+ });
93
+ });
94
+ //# sourceMappingURL=reference.custom-field-value.validator.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.custom-field-value.validator.unit.test.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-value.validator.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ResolvedCustomFieldDefinitionFields } from '#src/custom-field-definition.js';
2
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
3
+ type ReferenceCustomFieldDefinition = Extract<ResolvedCustomFieldDefinitionFields, {
4
+ type: CustomFieldType.REFERENCE;
5
+ }>;
6
+ export declare function validateReferenceCustomFieldDefinition(definition: ReferenceCustomFieldDefinition): void;
7
+ export {};
@@ -0,0 +1,24 @@
1
+ import { CustomFieldDefinitionError } from '#src/errors/custom-field-definition.error.js';
2
+ import { ReferenceCustomFieldFormat } from './reference.format.js';
3
+ export function validateReferenceCustomFieldDefinition(definition) {
4
+ if (definition.choices !== null) {
5
+ throw new CustomFieldDefinitionError('Only select custom fields can define choices');
6
+ }
7
+ const rules = definition.rules;
8
+ if (rules === null) {
9
+ return;
10
+ }
11
+ if (rules.format !== undefined
12
+ && !Object.values(ReferenceCustomFieldFormat).includes(rules.format)) {
13
+ throw new CustomFieldDefinitionError('Reference custom field format must be a supported format');
14
+ }
15
+ if (rules.regex !== undefined) {
16
+ try {
17
+ new RegExp(rules.regex);
18
+ }
19
+ catch {
20
+ throw new CustomFieldDefinitionError('Reference custom field regex must be a valid regular expression');
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=reference.definition-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.definition-validation.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.definition-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAA;AAEzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAIlE,MAAM,UAAU,sCAAsC,CAAC,UAA0C;IAC/F,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,0BAA0B,CAAC,8CAA8C,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;WACvB,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACpE,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC,0DAA0D,CAAC,CAAA;IAClG,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,0BAA0B,CAAC,iEAAiE,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseCustomFieldValueDto } from '#src/dto/base-custom-field-value.dto.js';
2
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
3
+ import { ReferenceCustomFieldValue } from '#src/custom-field-types/reference/reference.value.js';
4
+ export declare class ReferenceCustomFieldValueDto extends BaseCustomFieldValueDto {
5
+ type: CustomFieldType.REFERENCE;
6
+ value: string;
7
+ parse(): ReferenceCustomFieldValue;
8
+ static from(customFieldValue: ReferenceCustomFieldValue): ReferenceCustomFieldValueDto;
9
+ }
@@ -0,0 +1,34 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ApiProperty } from '@nestjs/swagger';
11
+ import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
12
+ import { BaseCustomFieldValueDto, createCustomFieldValueDto } from '#src/dto/base-custom-field-value.dto.js';
13
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
14
+ export class ReferenceCustomFieldValueDto extends BaseCustomFieldValueDto {
15
+ value;
16
+ parse() {
17
+ return this.toCustomFieldValue(CustomFieldType.REFERENCE, this.value);
18
+ }
19
+ static from(customFieldValue) {
20
+ return createCustomFieldValueDto(new ReferenceCustomFieldValueDto(), CustomFieldType.REFERENCE, customFieldValue.definitionUuid, customFieldValue.value);
21
+ }
22
+ }
23
+ __decorate([
24
+ ApiProperty({ enum: [CustomFieldType.REFERENCE] }),
25
+ IsEnum([CustomFieldType.REFERENCE]),
26
+ __metadata("design:type", String)
27
+ ], ReferenceCustomFieldValueDto.prototype, "type", void 0);
28
+ __decorate([
29
+ ApiProperty({ type: String }),
30
+ IsString(),
31
+ IsNotEmpty(),
32
+ __metadata("design:type", String)
33
+ ], ReferenceCustomFieldValueDto.prototype, "value", void 0);
34
+ //# sourceMappingURL=reference.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.dto.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,MAAM,OAAO,4BAA6B,SAAQ,uBAAuB;IAQvE,KAAK,CAAQ;IAEb,KAAK;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,gBAA2C;QACrD,OAAO,yBAAyB,CAAC,IAAI,4BAA4B,EAAE,EAAE,eAAe,CAAC,SAAS,EAAE,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC1J,CAAC;CACF;AAdS;IAFP,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAClD,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;;0DACG;AAKvC;IAHC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE;IACV,UAAU,EAAE;;2DACA"}
@@ -0,0 +1,5 @@
1
+ export declare enum ReferenceCustomFieldFormat {
2
+ UUID = "uuid",
3
+ NUMERIC = "numeric",
4
+ ALPHANUMERIC = "alphanumeric"
5
+ }
@@ -0,0 +1,7 @@
1
+ export var ReferenceCustomFieldFormat;
2
+ (function (ReferenceCustomFieldFormat) {
3
+ ReferenceCustomFieldFormat["UUID"] = "uuid";
4
+ ReferenceCustomFieldFormat["NUMERIC"] = "numeric";
5
+ ReferenceCustomFieldFormat["ALPHANUMERIC"] = "alphanumeric";
6
+ })(ReferenceCustomFieldFormat || (ReferenceCustomFieldFormat = {}));
7
+ //# sourceMappingURL=reference.format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.format.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.format.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,2CAAa,CAAA;IACb,iDAAmB,CAAA;IACnB,2DAA6B,CAAA;AAC/B,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC"}
@@ -0,0 +1,5 @@
1
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
2
+ import type { ReferenceCustomFieldTypeContract } from './reference.contract.js';
3
+ export type ReferenceCustomFieldRules = {
4
+ type: CustomFieldType.REFERENCE;
5
+ } & ReferenceCustomFieldTypeContract['rules'];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reference.rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.rules.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.rules.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { BaseCustomFieldValue } from '#src/custom-field-value.js';
2
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
3
+ import type { ReferenceCustomFieldTypeContract } from './reference.contract.js';
4
+ export type ReferenceCustomFieldValue = BaseCustomFieldValue<CustomFieldType.REFERENCE, ReferenceCustomFieldTypeContract['value']>;
5
+ export type ReferenceCustomFieldColumnValue = BaseCustomFieldValue<CustomFieldType.REFERENCE, ReferenceCustomFieldTypeContract['columnValue']>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reference.value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.value.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.value.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { type ApiPropertyOptions } from '@nestjs/swagger';
2
- import type { BooleanCustomFieldValue, DateCustomFieldValue, MonetaryCustomFieldValue, MultiSelectCustomFieldValue, NumberCustomFieldValue, SingleSelectCustomFieldValue, TextArrayCustomFieldValue, TextCustomFieldValue, TimestampCustomFieldValue } from '#src/custom-field-types/index.js';
2
+ import type { BooleanCustomFieldValue, DateCustomFieldValue, MonetaryCustomFieldValue, MultiSelectCustomFieldValue, NumberCustomFieldValue, ReferenceCustomFieldValue, SingleSelectCustomFieldValue, TextArrayCustomFieldValue, TextCustomFieldValue, TimestampCustomFieldValue } from '#src/custom-field-types/index.js';
3
3
  import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
4
4
  import type { CustomFieldValue } from '#src/custom-field-value.js';
5
5
  import { BooleanCustomFieldValueDto } from '#src/custom-field-types/boolean/boolean.dto.js';
@@ -7,6 +7,7 @@ import { DateCustomFieldValueDto } from '#src/custom-field-types/date/date.dto.j
7
7
  import { MonetaryCustomFieldValueDto } from '#src/custom-field-types/monetary/monetary.dto.js';
8
8
  import { MultiSelectCustomFieldValueDto } from '#src/custom-field-types/multi-select/multi-select.dto.js';
9
9
  import { NumberCustomFieldValueDto } from '#src/custom-field-types/number/number.dto.js';
10
+ import { ReferenceCustomFieldValueDto } from '#src/custom-field-types/reference/reference.dto.js';
10
11
  import { SingleSelectCustomFieldValueDto } from '#src/custom-field-types/single-select/single-select.dto.js';
11
12
  import { TextArrayCustomFieldValueDto } from '#src/custom-field-types/text-array/text-array.dto.js';
12
13
  import { TextCustomFieldValueDto } from '#src/custom-field-types/text/text.dto.js';
@@ -23,11 +24,12 @@ declare abstract class _CustomFieldValueDto extends BaseCustomFieldValueDto {
23
24
  static from(customFieldValue: SingleSelectCustomFieldValue): SingleSelectCustomFieldValueDto;
24
25
  static from(customFieldValue: MultiSelectCustomFieldValue): MultiSelectCustomFieldValueDto;
25
26
  static from(customFieldValue: MonetaryCustomFieldValue): MonetaryCustomFieldValueDto;
27
+ static from(customFieldValue: ReferenceCustomFieldValue): ReferenceCustomFieldValueDto;
26
28
  static from(customFieldValue: CustomFieldValue): CustomFieldValueDto;
27
29
  }
28
30
  export declare const CustomFieldValueDto: typeof _CustomFieldValueDto;
29
- export type CustomFieldValueDto = BooleanCustomFieldValueDto | DateCustomFieldValueDto | TimestampCustomFieldValueDto | MonetaryCustomFieldValueDto | MultiSelectCustomFieldValueDto | NumberCustomFieldValueDto | SingleSelectCustomFieldValueDto | TextArrayCustomFieldValueDto | TextCustomFieldValueDto;
30
- export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
31
+ export type CustomFieldValueDto = BooleanCustomFieldValueDto | DateCustomFieldValueDto | TimestampCustomFieldValueDto | MonetaryCustomFieldValueDto | MultiSelectCustomFieldValueDto | NumberCustomFieldValueDto | ReferenceCustomFieldValueDto | SingleSelectCustomFieldValueDto | TextArrayCustomFieldValueDto | TextCustomFieldValueDto;
32
+ export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
31
33
  export declare const CUSTOM_FIELD_VALUE_DTO_BY_TYPE: {
32
34
  text: typeof TextCustomFieldValueDto;
33
35
  text_array: typeof TextArrayCustomFieldValueDto;
@@ -38,8 +40,9 @@ export declare const CUSTOM_FIELD_VALUE_DTO_BY_TYPE: {
38
40
  single_select: typeof SingleSelectCustomFieldValueDto;
39
41
  multi_select: typeof MultiSelectCustomFieldValueDto;
40
42
  monetary: typeof MonetaryCustomFieldValueDto;
43
+ reference: typeof ReferenceCustomFieldValueDto;
41
44
  };
42
- export declare const CUSTOM_FIELD_VALUE_DTOS: (typeof BooleanCustomFieldValueDto | typeof DateCustomFieldValueDto | typeof MonetaryCustomFieldValueDto | typeof MultiSelectCustomFieldValueDto | typeof NumberCustomFieldValueDto | typeof SingleSelectCustomFieldValueDto | typeof TextArrayCustomFieldValueDto | typeof TextCustomFieldValueDto | typeof TimestampCustomFieldValueDto)[];
45
+ export declare const CUSTOM_FIELD_VALUE_DTOS: (typeof BooleanCustomFieldValueDto | typeof DateCustomFieldValueDto | typeof MonetaryCustomFieldValueDto | typeof MultiSelectCustomFieldValueDto | typeof NumberCustomFieldValueDto | typeof ReferenceCustomFieldValueDto | typeof SingleSelectCustomFieldValueDto | typeof TextArrayCustomFieldValueDto | typeof TextCustomFieldValueDto | typeof TimestampCustomFieldValueDto)[];
43
46
  export declare function getCustomFieldValueDtoDiscriminatorSubTypes(): Array<{
44
47
  name: CustomFieldType;
45
48
  value: CustomFieldValueDtoClass;
@@ -6,6 +6,7 @@ import { DateCustomFieldValueDto } from '#src/custom-field-types/date/date.dto.j
6
6
  import { MonetaryCustomFieldValueDto } from '#src/custom-field-types/monetary/monetary.dto.js';
7
7
  import { MultiSelectCustomFieldValueDto } from '#src/custom-field-types/multi-select/multi-select.dto.js';
8
8
  import { NumberCustomFieldValueDto } from '#src/custom-field-types/number/number.dto.js';
9
+ import { ReferenceCustomFieldValueDto } from '#src/custom-field-types/reference/reference.dto.js';
9
10
  import { SingleSelectCustomFieldValueDto } from '#src/custom-field-types/single-select/single-select.dto.js';
10
11
  import { TextArrayCustomFieldValueDto } from '#src/custom-field-types/text-array/text-array.dto.js';
11
12
  import { TextCustomFieldValueDto } from '#src/custom-field-types/text/text.dto.js';
@@ -33,13 +34,15 @@ class _CustomFieldValueDto extends BaseCustomFieldValueDto {
33
34
  return MultiSelectCustomFieldValueDto.from(customFieldValue);
34
35
  case CustomFieldType.MONETARY:
35
36
  return MonetaryCustomFieldValueDto.from(customFieldValue);
37
+ case CustomFieldType.REFERENCE:
38
+ return ReferenceCustomFieldValueDto.from(customFieldValue);
36
39
  default:
37
40
  return exhaustiveCheck(customFieldValue);
38
41
  }
39
42
  }
40
43
  }
41
44
  export const CustomFieldValueDto = _CustomFieldValueDto;
42
- export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
45
+ export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
43
46
  export const CUSTOM_FIELD_VALUE_DTO_BY_TYPE = {
44
47
  [CustomFieldType.TEXT]: TextCustomFieldValueDto,
45
48
  [CustomFieldType.TEXT_ARRAY]: TextArrayCustomFieldValueDto,
@@ -49,7 +52,8 @@ export const CUSTOM_FIELD_VALUE_DTO_BY_TYPE = {
49
52
  [CustomFieldType.TIMESTAMP]: TimestampCustomFieldValueDto,
50
53
  [CustomFieldType.SINGLE_SELECT]: SingleSelectCustomFieldValueDto,
51
54
  [CustomFieldType.MULTI_SELECT]: MultiSelectCustomFieldValueDto,
52
- [CustomFieldType.MONETARY]: MonetaryCustomFieldValueDto
55
+ [CustomFieldType.MONETARY]: MonetaryCustomFieldValueDto,
56
+ [CustomFieldType.REFERENCE]: ReferenceCustomFieldValueDto
53
57
  };
54
58
  export const CUSTOM_FIELD_VALUE_DTOS = Object.values(CUSTOM_FIELD_VALUE_DTO_BY_TYPE);
55
59
  function getCustomFieldValueDtoSchemaPathMapping() {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-value.dto.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-value.dto.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { expect } from 'expect';
3
3
  import { validate } from 'class-validator';
4
4
  import { plainDate, timestamp } from '@wisemen/datewise';
5
5
  import { Currency, Monetary } from '@wisemen/monetary';
6
- import { BooleanCustomFieldValueDto, CUSTOM_FIELD_VALUE_DTOS, CustomFieldValueDto, DateCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto, TimestampCustomFieldValueDto } from '#src/dto/custom-field-value.dto.js';
6
+ import { BooleanCustomFieldValueDto, CUSTOM_FIELD_VALUE_DTOS, CustomFieldValueDto, DateCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto, TimestampCustomFieldValueDto } from '#src/dto/custom-field-value.dto.js';
7
7
  import { generateUuid } from '#src/custom-field-definition.uuid.js';
8
8
  import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
9
9
  describe('TimestampCustomFieldValueDto', () => {
@@ -66,6 +66,10 @@ describe('CustomFieldValueDto', () => {
66
66
  {
67
67
  input: { definitionUuid, type: CustomFieldType.MONETARY, value: new Monetary(100, Currency.EUR, 2) },
68
68
  expectedClass: MonetaryCustomFieldValueDto
69
+ },
70
+ {
71
+ input: { definitionUuid, type: CustomFieldType.REFERENCE, value: 'customer-42' },
72
+ expectedClass: ReferenceCustomFieldValueDto
69
73
  }
70
74
  ];
71
75
  for (const testCase of testCases) {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-value.dto.unit.test.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-value.dto.unit.test.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAClY,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,GAAG,GAAG,IAAI,4BAA4B,EAAE,CAAA;QAE9C,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,CAAA;QACpC,GAAG,CAAC,cAAc,GAAG,YAAY,EAAE,CAAA;QACnC,GAAG,CAAC,KAAK,GAAG,qBAAqB,CAAA;QAEjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;QAElC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,GAAG,GAAG,IAAI,4BAA4B,EAAE,CAAA;QAE9C,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,CAAA;QACpC,GAAG,CAAC,cAAc,GAAG,YAAY,EAAE,CAAA;QACnC,GAAG,CAAC,KAAK,GAAG,0BAA0B,CAAA;QAEtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,uBAAuB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;IACrF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,cAAc,GAAG,YAAY,EAA6B,CAAA;QAEhE,MAAM,SAAS,GAAyF;YACtG;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;gBACrE,aAAa,EAAE,uBAAuB;aACvC;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC9E,aAAa,EAAE,4BAA4B;aAC5C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAClE,aAAa,EAAE,yBAAyB;aACzC;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrE,aAAa,EAAE,0BAA0B;aAC1C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE;gBACrF,aAAa,EAAE,uBAAuB;aACvC;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,0BAA0B,CAAC,EAAE;gBACxG,aAAa,EAAE,4BAA4B;aAC5C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;gBAChF,aAAa,EAAE,+BAA+B;aAC/C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;gBACjF,aAAa,EAAE,8BAA8B;aAC9C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;gBACpG,aAAa,EAAE,2BAA2B;aAC3C;YACD;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;gBAChF,aAAa,EAAE,4BAA4B;aAC5C;SACF,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QACzF,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -9,7 +9,8 @@ export declare enum CustomFieldType {
9
9
  DATE = "date",
10
10
  SINGLE_SELECT = "single_select",
11
11
  MULTI_SELECT = "multi_select",
12
- MONETARY = "monetary"
12
+ MONETARY = "monetary",
13
+ REFERENCE = "reference"
13
14
  }
14
15
  export declare function CustomFieldTypeColumn(options?: Omit<ColumnOptions, 'type' | 'enum' | 'enumName'>): PropertyDecorator;
15
16
  export declare function CustomFieldTypeApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
@@ -11,6 +11,7 @@ export var CustomFieldType;
11
11
  CustomFieldType["SINGLE_SELECT"] = "single_select";
12
12
  CustomFieldType["MULTI_SELECT"] = "multi_select";
13
13
  CustomFieldType["MONETARY"] = "monetary";
14
+ CustomFieldType["REFERENCE"] = "reference";
14
15
  })(CustomFieldType || (CustomFieldType = {}));
15
16
  export function CustomFieldTypeColumn(options) {
16
17
  return Column({
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-type.enum.js","sourceRoot":"","sources":["../../lib/enum/custom-field-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAE/C,MAAM,CAAN,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,gCAAa,CAAA;IACb,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,wCAAqB,CAAA;AACvB,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA2D;IAE3D,OAAO,MAAM,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"custom-field-type.enum.js","sourceRoot":"","sources":["../../lib/enum/custom-field-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAE/C,MAAM,CAAN,IAAY,eAWX;AAXD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,gCAAa,CAAA;IACb,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAXW,eAAe,KAAf,eAAe,QAW1B;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA2D;IAE3D,OAAO,MAAM,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAA;AACJ,CAAC"}
@@ -4,6 +4,7 @@ import { validateDateCustomFieldDefinition } from '#src/custom-field-types/date/
4
4
  import { validateMonetaryCustomFieldDefinition } from '#src/custom-field-types/monetary/monetary.definition-validation.js';
5
5
  import { validateMultiSelectCustomFieldDefinition } from '#src/custom-field-types/multi-select/multi-select.definition-validation.js';
6
6
  import { validateNumberCustomFieldDefinition } from '#src/custom-field-types/number/number.definition-validation.js';
7
+ import { validateReferenceCustomFieldDefinition } from '#src/custom-field-types/reference/reference.definition-validation.js';
7
8
  import { validateSingleSelectCustomFieldDefinition } from '#src/custom-field-types/single-select/single-select.definition-validation.js';
8
9
  import { validateTextArrayCustomFieldDefinition } from '#src/custom-field-types/text-array/text-array.definition-validation.js';
9
10
  import { validateTextCustomFieldDefinition } from '#src/custom-field-types/text/text.definition-validation.js';
@@ -28,7 +29,8 @@ function normalizeCustomFieldDefinition(definition) {
28
29
  case CustomFieldType.BOOLEAN:
29
30
  case CustomFieldType.DATE:
30
31
  case CustomFieldType.TIMESTAMP:
31
- case CustomFieldType.MONETARY: {
32
+ case CustomFieldType.MONETARY:
33
+ case CustomFieldType.REFERENCE: {
32
34
  const customFieldDefinition = {
33
35
  uuid: generateUuid(),
34
36
  tenantUuid: definition.tenantUuid,
@@ -136,6 +138,9 @@ function validateCustomFieldDefinition(definition) {
136
138
  case CustomFieldType.MONETARY:
137
139
  validateMonetaryCustomFieldDefinition(definition);
138
140
  return;
141
+ case CustomFieldType.REFERENCE:
142
+ validateReferenceCustomFieldDefinition(definition);
143
+ return;
139
144
  default:
140
145
  exhaustiveCheck(definition);
141
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@ export * from './custom-field-rules.js';
5
5
  export * from './custom-field-value.js';
6
6
  export * from './repositories/index.js';
7
7
  export { IsCustomFieldsValues as IsCustomFields } from './decorators/is-custom-fields.decorator.js';
8
- export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
8
+ export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
9
+ export { ReferenceCustomFieldFormat } from './custom-field-types/reference/reference.format.js';
9
10
  export { CustomFieldDefinitionError } from './errors/custom-field-definition.error.js';
10
11
  export { customFieldDefinition } from './factory/custom-field-definition.factory.js';
11
12
  export { customFieldValue } from './factory/custom-field-value.factory.js';
package/dist/index.js CHANGED
@@ -4,7 +4,8 @@ export * from './custom-field-rules.js';
4
4
  export * from './custom-field-value.js';
5
5
  export * from './repositories/index.js';
6
6
  export { IsCustomFieldsValues as IsCustomFields } from './decorators/is-custom-fields.decorator.js';
7
- export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
7
+ export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
8
+ export { ReferenceCustomFieldFormat } from './custom-field-types/reference/reference.format.js';
8
9
  export { CustomFieldDefinitionError } from './errors/custom-field-definition.error.js';
9
10
  export { customFieldDefinition } from './factory/custom-field-definition.factory.js';
10
11
  export { customFieldValue } from './factory/custom-field-value.factory.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAE/F,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAE/F,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA"}
@@ -45,6 +45,7 @@ export class CustomFieldValueTransformer {
45
45
  case CustomFieldType.BOOLEAN:
46
46
  case CustomFieldType.SINGLE_SELECT:
47
47
  case CustomFieldType.MULTI_SELECT:
48
+ case CustomFieldType.REFERENCE:
48
49
  return columnValue;
49
50
  case CustomFieldType.DATE:
50
51
  return {
@@ -73,6 +74,7 @@ export class CustomFieldValueTransformer {
73
74
  case CustomFieldType.BOOLEAN:
74
75
  case CustomFieldType.SINGLE_SELECT:
75
76
  case CustomFieldType.MULTI_SELECT:
77
+ case CustomFieldType.REFERENCE:
76
78
  return column;
77
79
  case CustomFieldType.DATE:
78
80
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-value.column.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-value.column.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-value.column.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-value.column.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { validateDateCustomFieldValue } from '#src/custom-field-types/date/date.
3
3
  import { validateMonetaryCustomFieldValue } from '#src/custom-field-types/monetary/monetary.custom-field-value.validator.js';
4
4
  import { validateMultiSelectCustomFieldValue } from '#src/custom-field-types/multi-select/multi-select.custom-field-value.validator.js';
5
5
  import { validateNumberCustomFieldValue } from '#src/custom-field-types/number/number.custom-field-value.validator.js';
6
+ import { validateReferenceCustomFieldValue } from '#src/custom-field-types/reference/reference.custom-field-value.validator.js';
6
7
  import { validateSingleSelectCustomFieldValue } from '#src/custom-field-types/single-select/single-select.custom-field-value.validator.js';
7
8
  import { validateTextArrayCustomFieldValue } from '#src/custom-field-types/text-array/text-array.custom-field-value.validator.js';
8
9
  import { validateTextCustomFieldValue } from '#src/custom-field-types/text/text.custom-field-value.validator.js';
@@ -74,6 +75,9 @@ export function validateCustomFieldValue(definition, value) {
74
75
  case CustomFieldType.MONETARY:
75
76
  validateMonetaryCustomFieldValue(definition, value.value);
76
77
  return;
78
+ case CustomFieldType.REFERENCE:
79
+ validateReferenceCustomFieldValue(definition, value.value);
80
+ return;
77
81
  default:
78
82
  exhaustiveCheck(value);
79
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-value.validator.js","sourceRoot":"","sources":["../../lib/validators/custom-field-value.validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-value.validator.js","sourceRoot":"","sources":["../../lib/validators/custom-field-value.validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/nestjs-custom-fields",
3
- "version": "2.0.1",
3
+ "version": "4.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -17,14 +17,6 @@
17
17
  "dist/",
18
18
  "skills/"
19
19
  ],
20
- "dependencies": {
21
- "@wisemen/api-error": "^1.1.1",
22
- "@wisemen/datewise": "^1.5.0",
23
- "@wisemen/localized-string": "^0.1.4",
24
- "@wisemen/monetary": "^2.0.0",
25
- "@wisemen/nestjs-typeorm": "^1.4.1",
26
- "@wisemen/validators": "^0.0.29"
27
- },
28
20
  "peerDependencies": {
29
21
  "@nestjs/common": "^11.1.28 || ^12.0.0",
30
22
  "@nestjs/core": "^11.1.28 || ^12.0.0",
@@ -32,7 +24,13 @@
32
24
  "@opentelemetry/api": "^1.9.1",
33
25
  "class-transformer": "^0.5.1",
34
26
  "class-validator": "^0.15.1",
35
- "typeorm": "^1.1.0"
27
+ "typeorm": "^1.1.0",
28
+ "@wisemen/datewise": "^1.5.0",
29
+ "@wisemen/localized-string": "^0.1.4",
30
+ "@wisemen/monetary": "^2.0.0",
31
+ "@wisemen/validators": "^0.0.29",
32
+ "@wisemen/api-error": "^1.1.1",
33
+ "@wisemen/nestjs-typeorm": "^1.4.1"
36
34
  },
37
35
  "devDependencies": {
38
36
  "@types/node": "25.3.0",
@@ -132,6 +132,40 @@ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
132
132
  column and backfill `views` for your existing definitions in the same release.
133
133
  Without a backfill, every existing definition is hidden in every view.
134
134
 
135
+ ### Reference Fields
136
+
137
+ Use `CustomFieldType.REFERENCE` for a field that points to another record. The
138
+ value is the referenced record's ID as a non-empty string. The package does not
139
+ know which entity is referenced: map the definition's `entityType` and `key` to
140
+ the right route in your frontend.
141
+
142
+ Rules are optional. `format` restricts the ID to a UUID
143
+ (`ReferenceCustomFieldFormat.UUID`), digits only
144
+ (`ReferenceCustomFieldFormat.NUMERIC`) or letters and digits only
145
+ (`ReferenceCustomFieldFormat.ALPHANUMERIC`), and `regex` adds a custom pattern.
146
+ When both are set, the value must pass both.
147
+
148
+ ```ts
149
+ import { ReferenceCustomFieldFormat } from '@wisemen/nestjs-custom-fields'
150
+
151
+ const customerField = customFieldDefinition(CustomFieldType.REFERENCE, {
152
+ tenantUuid: null,
153
+ entityType: CustomFieldEntityType.TICKET,
154
+ key: 'customer',
155
+ label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
156
+ description: null,
157
+ isRequired: false,
158
+ rules: {
159
+ format: ReferenceCustomFieldFormat.UUID
160
+ }
161
+ })
162
+ ```
163
+
164
+ When upgrading from 3.x to 4.0.0, handle `CustomFieldType.REFERENCE` wherever
165
+ you `switch` over `CustomFieldType` or build a `Record<CustomFieldType, ...>`;
166
+ those no longer type-check until the new case is added. No database migration is
167
+ needed: `type` is stored as `varchar` and `rules` as `jsonb`.
168
+
135
169
  ## Step 3: Store Values On The Entity With The Custom Column
136
170
 
137
171
  Resolved custom field values live on your own entity. Use