@explorins/pers-shared 2.1.167 → 2.1.168

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 (163) hide show
  1. package/dist/cjs/shared-lib/dto/analytics/campaign-claim-analytics-request.dto.d.ts +1 -1
  2. package/dist/cjs/shared-lib/dto/analytics/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  3. package/dist/cjs/shared-lib/dto/analytics/redemption-redeem-analytics-request.dto.d.ts +1 -1
  4. package/dist/cjs/shared-lib/dto/analytics/redemption-redeem-analytics-request.dto.d.ts.map +1 -1
  5. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts +1 -1
  6. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -1
  7. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts +1 -1
  8. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  9. package/dist/cjs/shared-lib/dto/booking/booking.dto.d.ts +76 -0
  10. package/dist/cjs/shared-lib/dto/booking/booking.dto.d.ts.map +1 -0
  11. package/dist/cjs/shared-lib/dto/booking/booking.dto.js +291 -0
  12. package/dist/cjs/shared-lib/dto/booking/booking.dto.js.map +1 -0
  13. package/dist/cjs/shared-lib/dto/booking/index.d.ts +2 -0
  14. package/dist/cjs/shared-lib/dto/booking/index.d.ts.map +1 -0
  15. package/dist/cjs/shared-lib/dto/booking/index.js +18 -0
  16. package/dist/cjs/shared-lib/dto/booking/index.js.map +1 -0
  17. package/dist/cjs/shared-lib/dto/campaign/campaignTrigger.dto.d.ts +1 -1
  18. package/dist/cjs/shared-lib/dto/campaign/campaignTrigger.dto.d.ts.map +1 -1
  19. package/dist/cjs/shared-lib/dto/campaign/campaignTrigger.dto.js.map +1 -1
  20. package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts +2 -0
  21. package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts.map +1 -1
  22. package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.js +10 -0
  23. package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.js.map +1 -1
  24. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts +1 -1
  25. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
  26. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
  27. package/dist/cjs/shared-lib/dto/index.d.ts +1 -0
  28. package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
  29. package/dist/cjs/shared-lib/dto/index.js +2 -0
  30. package/dist/cjs/shared-lib/dto/index.js.map +1 -1
  31. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts +17 -2
  32. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
  33. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js +25 -4
  34. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
  35. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +3 -0
  36. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  37. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js +24 -0
  38. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  39. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.dto.d.ts +2 -0
  40. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.dto.d.ts.map +1 -1
  41. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.dto.js +10 -0
  42. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.dto.js.map +1 -1
  43. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js +2 -2
  44. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  45. package/dist/cjs/shared-lib/dto/user/custom-field-definition.dto.d.ts +2 -2
  46. package/dist/cjs/shared-lib/dto/user/custom-field-definition.dto.d.ts.map +1 -1
  47. package/dist/cjs/shared-lib/dto/user/custom-field-definition.dto.js +5 -25
  48. package/dist/cjs/shared-lib/dto/user/custom-field-definition.dto.js.map +1 -1
  49. package/dist/cjs/shared-lib/dto/user/user.dto.d.ts +2 -0
  50. package/dist/cjs/shared-lib/dto/user/user.dto.d.ts.map +1 -1
  51. package/dist/cjs/shared-lib/dto/user/user.dto.js +10 -0
  52. package/dist/cjs/shared-lib/dto/user/user.dto.js.map +1 -1
  53. package/dist/cjs/shared-lib/interfaces/local-storage-item.interface.d.ts +3 -0
  54. package/dist/cjs/shared-lib/interfaces/local-storage-item.interface.d.ts.map +1 -1
  55. package/dist/cjs/shared-lib/types/booking.type.d.ts +21 -0
  56. package/dist/cjs/shared-lib/types/booking.type.d.ts.map +1 -0
  57. package/dist/cjs/shared-lib/types/booking.type.js +15 -0
  58. package/dist/cjs/shared-lib/types/booking.type.js.map +1 -0
  59. package/dist/cjs/shared-lib/types/custom-fields.type.d.ts +17 -10
  60. package/dist/cjs/shared-lib/types/custom-fields.type.d.ts.map +1 -1
  61. package/dist/cjs/shared-lib/types/custom-fields.type.js +9 -2
  62. package/dist/cjs/shared-lib/types/custom-fields.type.js.map +1 -1
  63. package/dist/cjs/shared-lib/types/data-source.type.d.ts +90 -0
  64. package/dist/cjs/shared-lib/types/data-source.type.d.ts.map +1 -0
  65. package/dist/cjs/shared-lib/types/data-source.type.js +74 -0
  66. package/dist/cjs/shared-lib/types/data-source.type.js.map +1 -0
  67. package/dist/cjs/shared-lib/types/index.d.ts +2 -0
  68. package/dist/cjs/shared-lib/types/index.d.ts.map +1 -1
  69. package/dist/cjs/shared-lib/types/index.js +2 -0
  70. package/dist/cjs/shared-lib/types/index.js.map +1 -1
  71. package/dist/cjs/shared-lib/types/redemption-include-relation.type.d.ts +6 -4
  72. package/dist/cjs/shared-lib/types/redemption-include-relation.type.d.ts.map +1 -1
  73. package/dist/cjs/shared-lib/types/redemption-include-relation.type.js +2 -1
  74. package/dist/cjs/shared-lib/types/redemption-include-relation.type.js.map +1 -1
  75. package/dist/cjs/shared-lib/validation/field-validation.d.ts +2 -12
  76. package/dist/cjs/shared-lib/validation/field-validation.d.ts.map +1 -1
  77. package/dist/cjs/shared-lib/validation/field-validation.js +27 -79
  78. package/dist/cjs/shared-lib/validation/field-validation.js.map +1 -1
  79. package/dist/cjs/shared-lib/validation/validation.types.d.ts +13 -46
  80. package/dist/cjs/shared-lib/validation/validation.types.d.ts.map +1 -1
  81. package/dist/cjs/shared-lib/validation/validation.types.js.map +1 -1
  82. package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics-request.dto.d.ts +1 -1
  83. package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  84. package/dist/esm/shared-lib/dto/analytics/redemption-redeem-analytics-request.dto.d.ts +1 -1
  85. package/dist/esm/shared-lib/dto/analytics/redemption-redeem-analytics-request.dto.d.ts.map +1 -1
  86. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts +1 -1
  87. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -1
  88. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts +1 -1
  89. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  90. package/dist/esm/shared-lib/dto/booking/booking.dto.d.ts +76 -0
  91. package/dist/esm/shared-lib/dto/booking/booking.dto.d.ts.map +1 -0
  92. package/dist/esm/shared-lib/dto/booking/booking.dto.js +241 -0
  93. package/dist/esm/shared-lib/dto/booking/booking.dto.js.map +1 -0
  94. package/dist/esm/shared-lib/dto/booking/index.d.ts +2 -0
  95. package/dist/esm/shared-lib/dto/booking/index.d.ts.map +1 -0
  96. package/dist/esm/shared-lib/dto/booking/index.js +2 -0
  97. package/dist/esm/shared-lib/dto/booking/index.js.map +1 -0
  98. package/dist/esm/shared-lib/dto/campaign/campaignTrigger.dto.d.ts +1 -1
  99. package/dist/esm/shared-lib/dto/campaign/campaignTrigger.dto.d.ts.map +1 -1
  100. package/dist/esm/shared-lib/dto/campaign/campaignTrigger.dto.js.map +1 -1
  101. package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts +2 -0
  102. package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts.map +1 -1
  103. package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.js +9 -0
  104. package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.js.map +1 -1
  105. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts +1 -1
  106. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
  107. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
  108. package/dist/esm/shared-lib/dto/index.d.ts +1 -0
  109. package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
  110. package/dist/esm/shared-lib/dto/index.js +2 -0
  111. package/dist/esm/shared-lib/dto/index.js.map +1 -1
  112. package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts +17 -2
  113. package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
  114. package/dist/esm/shared-lib/dto/redemption/redemption.dto.js +24 -4
  115. package/dist/esm/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
  116. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +3 -0
  117. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  118. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js +23 -1
  119. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  120. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.dto.d.ts +2 -0
  121. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.dto.d.ts.map +1 -1
  122. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.dto.js +10 -1
  123. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.dto.js.map +1 -1
  124. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js +2 -2
  125. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  126. package/dist/esm/shared-lib/dto/user/custom-field-definition.dto.d.ts +2 -2
  127. package/dist/esm/shared-lib/dto/user/custom-field-definition.dto.d.ts.map +1 -1
  128. package/dist/esm/shared-lib/dto/user/custom-field-definition.dto.js +5 -24
  129. package/dist/esm/shared-lib/dto/user/custom-field-definition.dto.js.map +1 -1
  130. package/dist/esm/shared-lib/dto/user/user.dto.d.ts +2 -0
  131. package/dist/esm/shared-lib/dto/user/user.dto.d.ts.map +1 -1
  132. package/dist/esm/shared-lib/dto/user/user.dto.js +9 -0
  133. package/dist/esm/shared-lib/dto/user/user.dto.js.map +1 -1
  134. package/dist/esm/shared-lib/interfaces/local-storage-item.interface.d.ts +3 -0
  135. package/dist/esm/shared-lib/interfaces/local-storage-item.interface.d.ts.map +1 -1
  136. package/dist/esm/shared-lib/types/booking.type.d.ts +21 -0
  137. package/dist/esm/shared-lib/types/booking.type.d.ts.map +1 -0
  138. package/dist/esm/shared-lib/types/booking.type.js +12 -0
  139. package/dist/esm/shared-lib/types/booking.type.js.map +1 -0
  140. package/dist/esm/shared-lib/types/custom-fields.type.d.ts +17 -10
  141. package/dist/esm/shared-lib/types/custom-fields.type.d.ts.map +1 -1
  142. package/dist/esm/shared-lib/types/custom-fields.type.js +8 -1
  143. package/dist/esm/shared-lib/types/custom-fields.type.js.map +1 -1
  144. package/dist/esm/shared-lib/types/data-source.type.d.ts +90 -0
  145. package/dist/esm/shared-lib/types/data-source.type.d.ts.map +1 -0
  146. package/dist/esm/shared-lib/types/data-source.type.js +70 -0
  147. package/dist/esm/shared-lib/types/data-source.type.js.map +1 -0
  148. package/dist/esm/shared-lib/types/index.d.ts +2 -0
  149. package/dist/esm/shared-lib/types/index.d.ts.map +1 -1
  150. package/dist/esm/shared-lib/types/index.js +2 -0
  151. package/dist/esm/shared-lib/types/index.js.map +1 -1
  152. package/dist/esm/shared-lib/types/redemption-include-relation.type.d.ts +6 -4
  153. package/dist/esm/shared-lib/types/redemption-include-relation.type.d.ts.map +1 -1
  154. package/dist/esm/shared-lib/types/redemption-include-relation.type.js +2 -1
  155. package/dist/esm/shared-lib/types/redemption-include-relation.type.js.map +1 -1
  156. package/dist/esm/shared-lib/validation/field-validation.d.ts +2 -12
  157. package/dist/esm/shared-lib/validation/field-validation.d.ts.map +1 -1
  158. package/dist/esm/shared-lib/validation/field-validation.js +26 -77
  159. package/dist/esm/shared-lib/validation/field-validation.js.map +1 -1
  160. package/dist/esm/shared-lib/validation/validation.types.d.ts +13 -46
  161. package/dist/esm/shared-lib/validation/validation.types.d.ts.map +1 -1
  162. package/dist/esm/shared-lib/validation/validation.types.js.map +1 -1
  163. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Booking status computed at query time.
3
+ */
4
+ export type BookingStatus = 'past' | 'active' | 'future';
5
+ /**
6
+ * Booking requirement types for redemption eligibility.
7
+ * Determines what kind of booking a user must have to redeem.
8
+ */
9
+ export type BookingRequirementType = 'active' | 'future' | 'past' | 'active_future' | 'any';
10
+ /**
11
+ * Location types for bookings.
12
+ * Broad categories for different booking contexts.
13
+ */
14
+ export declare const LOCATION_TYPES: readonly ["property", "service", "event", "experience", "destination"];
15
+ export type LocationType = typeof LOCATION_TYPES[number];
16
+ /**
17
+ * @deprecated Use DataSource from data-source.type.ts instead
18
+ * Keeping for backward compatibility during migration.
19
+ */
20
+ export type BookingSource = 'manual' | 'api' | 'import' | 'migration';
21
+ //# sourceMappingURL=booking.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booking.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,cAAc,wEAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Location types for bookings.
3
+ * Broad categories for different booking contexts.
4
+ */
5
+ export const LOCATION_TYPES = [
6
+ 'property', // Physical property (hotel, resort, vacation rental)
7
+ 'service', // Service-based booking (spa, salon, restaurant)
8
+ 'event', // Event/activity booking (concert, tour, class)
9
+ 'experience', // Experience package (multi-activity, bundle)
10
+ 'destination', // Destination/location-based (city pass, area access)
11
+ ];
12
+ //# sourceMappingURL=booking.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booking.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAM,qDAAqD;IACrE,SAAS,EAAO,iDAAiD;IACjE,OAAO,EAAS,gDAAgD;IAChE,YAAY,EAAI,8CAA8C;IAC9D,aAAa,EAAG,sDAAsD;CAC9D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { UserModelField, userModelFields } from './unique-user-identifier-keys';
2
- import type { FieldValidationRules, FieldComparison, ComparisonOperator, ValidationErrorDetail, FieldType, FieldDefinition, ObjectFieldSchema } from '../validation';
2
+ import type { FieldValidationRules, FieldComparison, ComparisonOperator, ValidationErrorDetail, FieldType, FieldDefinition } from '../validation';
3
3
  /**
4
4
  * Built-in user profile fields that can be required for redemptions.
5
5
  * These are a subset of UserModelField - excludes 'id' and 'identifierEmail'
@@ -57,7 +57,6 @@ export interface BuiltInFieldDefinition {
57
57
  label: string;
58
58
  description: string;
59
59
  fieldType: BuiltInFieldType;
60
- objectSchema: null;
61
60
  selectOptions: null;
62
61
  selectOptionsSource: null;
63
62
  validation: null;
@@ -91,12 +90,11 @@ export interface CustomFieldValidationInfo {
91
90
  value: string;
92
91
  label: string;
93
92
  }[] | null;
94
- objectSchema: ObjectFieldSchema[] | null;
95
93
  validation: FieldValidationRules | null;
96
94
  }
97
95
  export type CustomFieldValidationRules = FieldValidationRules;
98
96
  export type CustomFieldType = FieldType;
99
- export type { FieldComparison, ComparisonOperator, ValidationErrorDetail, FieldDefinition, ObjectFieldSchema };
97
+ export type { FieldComparison, ComparisonOperator, ValidationErrorDetail, FieldDefinition };
100
98
  export { validateFieldValue, validateFieldComparisons, validateAllFields, compareValues, getOperatorText, } from '../validation';
101
99
  export interface UserFieldValidationResult {
102
100
  valid: boolean;
@@ -120,6 +118,15 @@ declare const customFieldEntityTypesArray: readonly ["user", "business", "campai
120
118
  export type CustomFieldEntityType = typeof customFieldEntityTypesArray[number];
121
119
  /** All supported custom field entity types for iteration/validation */
122
120
  export declare const customFieldEntityTypes: CustomFieldEntityType[];
121
+ /**
122
+ * Entity types available for select options source (includes static sources)
123
+ * - Database entities: user, business, campaign, redemption
124
+ * - Static sources: country (ISO 3166-1 country list)
125
+ */
126
+ declare const selectOptionsSourceEntityArray: readonly ["user", "business", "campaign", "redemption", "country"];
127
+ export type SelectOptionsSourceEntity = typeof selectOptionsSourceEntityArray[number];
128
+ /** All supported select options source entities for iteration/validation */
129
+ export declare const selectOptionsSourceEntities: SelectOptionsSourceEntity[];
123
130
  /**
124
131
  * Filter conditions for dynamic select options
125
132
  */
@@ -135,12 +142,12 @@ export interface SelectOptionsFilter {
135
142
  * Configuration for fetching select options dynamically from an entity
136
143
  */
137
144
  export interface SelectOptionsSource {
138
- /** Entity to fetch options from */
139
- entity: CustomFieldEntityType;
140
- /** Field to use as option value (usually 'id') */
141
- valueField: string;
142
- /** Field to use as option label (e.g., 'name') */
143
- labelField: string;
145
+ /** Entity to fetch options from (database entities or static sources like 'country') */
146
+ entity: SelectOptionsSourceEntity;
147
+ /** Field to use as option value (usually 'id'). Optional for static sources. */
148
+ valueField?: string;
149
+ /** Field to use as option label (e.g., 'name'). Optional for static sources. */
150
+ labelField?: string;
144
151
  /** Optional filter conditions */
145
152
  filter?: SelectOptionsFilter;
146
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/custom-fields.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-fields.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/custom-fields.type.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,6 @@ export const getBuiltInFieldDefinition = (field) => {
78
78
  label: metadata.label,
79
79
  description: metadata.description,
80
80
  fieldType: metadata.fieldType,
81
- objectSchema: null,
82
81
  selectOptions: null,
83
82
  selectOptionsSource: null,
84
83
  validation: null,
@@ -107,4 +106,12 @@ export { validateFieldValue, validateFieldComparisons, validateAllFields, compar
107
106
  const customFieldEntityTypesArray = ['user', 'business', 'campaign', 'redemption'];
108
107
  /** All supported custom field entity types for iteration/validation */
109
108
  export const customFieldEntityTypes = [...customFieldEntityTypesArray];
109
+ /**
110
+ * Entity types available for select options source (includes static sources)
111
+ * - Database entities: user, business, campaign, redemption
112
+ * - Static sources: country (ISO 3166-1 country list)
113
+ */
114
+ const selectOptionsSourceEntityArray = [...customFieldEntityTypesArray, 'country'];
115
+ /** All supported select options source entities for iteration/validation */
116
+ export const selectOptionsSourceEntities = [...selectOptionsSourceEntityArray];
110
117
  //# sourceMappingURL=custom-fields.type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/custom-fields.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-fields.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/custom-fields.type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Unified data source tracking for analytics across all entities.
3
+ *
4
+ * Use this type to track the origin/channel of data for:
5
+ * - Users (registration source)
6
+ * - Claims (how the claim was initiated)
7
+ * - Redeems (redemption channel)
8
+ * - Bookings (booking source)
9
+ * - Purchases (transaction origin)
10
+ *
11
+ * ## HTTP Headers for SDK/API
12
+ *
13
+ * | Header | Purpose | Examples |
14
+ * |---------------------|----------------------------|-------------------------------------------------------|
15
+ * | `x-source-channel` | How the request arrived | `web`, `mobile`, `api`, `admin`, `webhook`, `import` |
16
+ * | `x-source-medium` | Marketing channel type | `email`, `referral`, `direct`, `organic`, `paid` |
17
+ * | `x-source-campaign` | Campaign ID for attribution| `summer_promo_2026`, `welcome_series`, `partner_launch`|
18
+ * | `x-source` | Traffic origin reference | `google`, `facebook`, `partner_xyz`, `qr_code_lobby` |
19
+ *
20
+ * ## Example Scenarios
21
+ *
22
+ * | Scenario | channel | medium | campaign | source |
23
+ * |-----------------------------|-----------|------------|--------------|--------------|
24
+ * | User clicks email link | `web` | `email` | `summer_promo`| `mailchimp` |
25
+ * | Mobile app registration | `mobile` | `app` | - | - |
26
+ * | Partner API integration | `api` | `affiliate`| - | `partner_xyz`|
27
+ * | QR code scan in hotel | `mobile` | `referral` | `lobby_qr` | `qr_code` |
28
+ * | Admin creates user | `admin` | - | - | - |
29
+ * | Webhook from Stripe | `webhook` | - | - | `stripe` |
30
+ *
31
+ * @example
32
+ * // Simple usage - just channel
33
+ * const source: DataSource = { channel: 'web' };
34
+ *
35
+ * // Full attribution tracking
36
+ * const source: DataSource = {
37
+ * channel: 'web',
38
+ * medium: 'email',
39
+ * campaign: 'summer_promo_2026',
40
+ * source: 'mailchimp',
41
+ * referrer: 'https://email.example.com/campaign/123'
42
+ * };
43
+ */
44
+ /**
45
+ * Primary ingestion channels for data source tracking.
46
+ */
47
+ export declare const DATA_SOURCE_CHANNELS: readonly ["web", "mobile", "api", "admin", "system", "import", "webhook", "sync", "migration"];
48
+ export type DataSourceChannel = typeof DATA_SOURCE_CHANNELS[number];
49
+ /**
50
+ * Unified data source tracking interface.
51
+ *
52
+ * Provides both simple channel categorization and optional
53
+ * detailed attribution fields for analytics.
54
+ */
55
+ export interface DataSource {
56
+ /**
57
+ * Primary ingestion channel.
58
+ * Required field for basic source categorization.
59
+ */
60
+ channel: DataSourceChannel;
61
+ /**
62
+ * Marketing medium for attribution.
63
+ * Examples: 'email', 'referral', 'direct', 'organic', 'paid', 'social', 'affiliate'
64
+ */
65
+ medium?: string;
66
+ /**
67
+ * Campaign identifier for tracking.
68
+ * Examples: 'summer_promo_2026', 'welcome_series', 'partner_launch'
69
+ */
70
+ campaign?: string;
71
+ /**
72
+ * Traffic source reference.
73
+ * Examples: 'google', 'facebook', 'partner_xyz', 'newsletter'
74
+ */
75
+ source?: string;
76
+ /**
77
+ * Original referrer URL.
78
+ * Full URL of the referring page.
79
+ */
80
+ referrer?: string;
81
+ }
82
+ /**
83
+ * Type guard to check if a value is a valid DataSourceChannel.
84
+ */
85
+ export declare function isDataSourceChannel(value: unknown): value is DataSourceChannel;
86
+ /**
87
+ * Default data source for manual/admin operations.
88
+ */
89
+ export declare const DEFAULT_DATA_SOURCE: DataSource;
90
+ //# sourceMappingURL=data-source.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-source.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/data-source.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,gGAUvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAEjC,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Unified data source tracking for analytics across all entities.
3
+ *
4
+ * Use this type to track the origin/channel of data for:
5
+ * - Users (registration source)
6
+ * - Claims (how the claim was initiated)
7
+ * - Redeems (redemption channel)
8
+ * - Bookings (booking source)
9
+ * - Purchases (transaction origin)
10
+ *
11
+ * ## HTTP Headers for SDK/API
12
+ *
13
+ * | Header | Purpose | Examples |
14
+ * |---------------------|----------------------------|-------------------------------------------------------|
15
+ * | `x-source-channel` | How the request arrived | `web`, `mobile`, `api`, `admin`, `webhook`, `import` |
16
+ * | `x-source-medium` | Marketing channel type | `email`, `referral`, `direct`, `organic`, `paid` |
17
+ * | `x-source-campaign` | Campaign ID for attribution| `summer_promo_2026`, `welcome_series`, `partner_launch`|
18
+ * | `x-source` | Traffic origin reference | `google`, `facebook`, `partner_xyz`, `qr_code_lobby` |
19
+ *
20
+ * ## Example Scenarios
21
+ *
22
+ * | Scenario | channel | medium | campaign | source |
23
+ * |-----------------------------|-----------|------------|--------------|--------------|
24
+ * | User clicks email link | `web` | `email` | `summer_promo`| `mailchimp` |
25
+ * | Mobile app registration | `mobile` | `app` | - | - |
26
+ * | Partner API integration | `api` | `affiliate`| - | `partner_xyz`|
27
+ * | QR code scan in hotel | `mobile` | `referral` | `lobby_qr` | `qr_code` |
28
+ * | Admin creates user | `admin` | - | - | - |
29
+ * | Webhook from Stripe | `webhook` | - | - | `stripe` |
30
+ *
31
+ * @example
32
+ * // Simple usage - just channel
33
+ * const source: DataSource = { channel: 'web' };
34
+ *
35
+ * // Full attribution tracking
36
+ * const source: DataSource = {
37
+ * channel: 'web',
38
+ * medium: 'email',
39
+ * campaign: 'summer_promo_2026',
40
+ * source: 'mailchimp',
41
+ * referrer: 'https://email.example.com/campaign/123'
42
+ * };
43
+ */
44
+ /**
45
+ * Primary ingestion channels for data source tracking.
46
+ */
47
+ export const DATA_SOURCE_CHANNELS = [
48
+ 'web', // Web application/browser
49
+ 'mobile', // Mobile app (iOS/Android)
50
+ 'api', // Direct API integration
51
+ 'admin', // Admin panel/back-office
52
+ 'system', // System-generated (automated)
53
+ 'import', // Bulk import/CSV upload
54
+ 'webhook', // External webhook callback
55
+ 'sync', // Synchronization from external system
56
+ 'migration', // Data migration
57
+ ];
58
+ /**
59
+ * Type guard to check if a value is a valid DataSourceChannel.
60
+ */
61
+ export function isDataSourceChannel(value) {
62
+ return typeof value === 'string' && DATA_SOURCE_CHANNELS.includes(value);
63
+ }
64
+ /**
65
+ * Default data source for manual/admin operations.
66
+ */
67
+ export const DEFAULT_DATA_SOURCE = {
68
+ channel: 'admin',
69
+ };
70
+ //# sourceMappingURL=data-source.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-source.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/data-source.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAQ,0BAA0B;IACvC,QAAQ,EAAK,2BAA2B;IACxC,KAAK,EAAQ,yBAAyB;IACtC,OAAO,EAAM,0BAA0B;IACvC,QAAQ,EAAK,+BAA+B;IAC5C,QAAQ,EAAK,yBAAyB;IACtC,SAAS,EAAI,4BAA4B;IACzC,MAAM,EAAO,uCAAuC;IACpD,WAAW,EAAE,iBAAiB;CACtB,CAAC;AA0CX;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAA0B,CAAC,CAAC;AAChG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,OAAO,EAAE,OAAO;CACjB,CAAC"}
@@ -19,4 +19,6 @@ export * from './business-membership-include-relation.type';
19
19
  export * from './user-include-relation.type';
20
20
  export * from './token-metadata-include-relation.type';
21
21
  export * from './filter-options.type';
22
+ export * from './booking.type';
23
+ export * from './data-source.type';
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -20,4 +20,6 @@ export * from './business-membership-include-relation.type.js';
20
20
  export * from './user-include-relation.type.js';
21
21
  export * from './token-metadata-include-relation.type.js';
22
22
  export * from './filter-options.type.js';
23
+ export * from './booking.type.js';
24
+ export * from './data-source.type.js';
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -3,15 +3,17 @@
3
3
  *
4
4
  * Follows JSON:API sideloading convention
5
5
  *
6
- * Usage: GET /redemptions?include=redeemCount,ownerBusiness,requiredUserFieldDefinitions
6
+ * Usage: GET /redemptions?include=redeemCount,ownerBusiness,userInfo,booking
7
7
  *
8
8
  * - redeemCount: Include total number of redeems for the redemption
9
9
  * - ownerBusiness: Include the owner business entity (when ownerBusinessId is set)
10
- * - requiredUserFieldDefinitions: Include full field definitions for requiredUserFields.
10
+ * - userInfo: Include user info validation with field definitions and isValid flag.
11
11
  * When user is authenticated, each definition includes `isMissing: boolean` to indicate
12
- * if the user lacks that field. Filter by `isMissing: true` to check eligibility.
12
+ * if the user lacks that field. `isValid` summarizes if all required fields are satisfied.
13
+ * - booking: Include booking validation status. When user is authenticated and
14
+ * redemption has booking requirement, includes `isValid` flag and matching `data`.
13
15
  */
14
- export type RedemptionIncludeRelation = 'redeemCount' | 'ownerBusiness' | 'requiredUserFieldDefinitions';
16
+ export type RedemptionIncludeRelation = 'redeemCount' | 'ownerBusiness' | 'userInfo' | 'booking';
15
17
  /**
16
18
  * Array of all valid redemption include relations
17
19
  * Used for runtime validation
@@ -1 +1 @@
1
- {"version":3,"file":"redemption-include-relation.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,eAAe,GAAG,8BAA8B,CAAC;AAEzG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,yBAAyB,EAIjE,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,yBAAyB,CAE3F"}
1
+ {"version":3,"file":"redemption-include-relation.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,yBAAyB,EAKjE,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,yBAAyB,CAE3F"}
@@ -5,7 +5,8 @@
5
5
  export const VALID_REDEMPTION_RELATIONS = [
6
6
  'redeemCount',
7
7
  'ownerBusiness',
8
- 'requiredUserFieldDefinitions'
8
+ 'userInfo',
9
+ 'booking'
9
10
  ];
10
11
  /**
11
12
  * Type guard to validate redemption include relation at runtime
@@ -1 +1 @@
1
- {"version":3,"file":"redemption-include-relation.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyC;IAC9E,aAAa;IACb,eAAe;IACf,8BAA8B;CACtB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,KAAkC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"redemption-include-relation.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyC;IAC9E,aAAa;IACb,eAAe;IACf,UAAU;IACV,SAAS;CACD,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,KAAkC,CAAC,CAAC;AACjF,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * Field Validation Functions
3
3
  * Shared between backend and frontend for consistent validation.
4
4
  */
5
- import type { ComparisonOperator, FieldComparison, FieldDefinition, FieldType, FieldValidationRules, ObjectFieldSchema, ValidationErrorDetail } from './validation.types';
6
- export type { ComparisonOperator, FieldComparison, FieldComparisonToField, FieldComparisonToValue, FieldDefinition, FieldType, FieldValidationRules, ObjectFieldSchema, ValidationErrorDetail, } from './validation.types';
5
+ import type { ComparisonOperator, FieldComparison, FieldDefinition, FieldType, FieldValidationRules, ValidationErrorDetail } from './validation.types';
6
+ export type { ComparisonOperator, FieldComparison, FieldComparisonToField, FieldComparisonToValue, FieldDefinition, FieldType, FieldValidationRules, ValidationErrorDetail, } from './validation.types';
7
7
  export { operatorText } from './validation.types';
8
8
  export { isValidEmail, isValidUrl, isValidWalletAddress, isValidNonEmptyString, isValidUuid, EMAIL_REGEX, EMAIL_MAX_LENGTH, URL_REGEX, WALLET_ADDRESS_REGEX, UUID_REGEX, } from './validators';
9
9
  /**
@@ -23,16 +23,6 @@ export declare const validateFieldValue: (value: unknown, rules: FieldValidation
23
23
  * Supports comparing to another field OR a literal value.
24
24
  */
25
25
  export declare const validateFieldComparisons: (fieldKey: string, value: unknown, comparisons: FieldComparison[] | undefined, allData: Record<string, unknown>, fieldType: FieldType) => ValidationErrorDetail[];
26
- /**
27
- * Validate each item in an object array against the object schema.
28
- * Checks required properties, type validation, and validates each property.
29
- *
30
- * @param fieldKey - Parent field key (for error reporting)
31
- * @param items - Array of objects to validate
32
- * @param schema - Schema defining expected properties
33
- * @returns Array of validation errors with item index in field path (e.g., "contacts[0].phone")
34
- */
35
- export declare const validateObjectArrayItems: (fieldKey: string, items: unknown[], schema: ObjectFieldSchema[]) => ValidationErrorDetail[];
36
26
  /**
37
27
  * Validate all fields in a data object against their definitions.
38
28
  * Runs both single-field and comparison validations.
@@ -1 +1 @@
1
- {"version":3,"file":"field-validation.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/validation/field-validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEf,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAK5B,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,UAAU,GACX,MAAM,cAAc,CAAC;AAMtB;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EAC5D,GAAG,CAAC,EACJ,GAAG,CAAC,EACJ,IAAI,kBAAkB,KACrB,OASF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,eAAe,GAAI,IAAI,kBAAkB,KAAG,MAA0B,CAAC;AAMpF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,EACd,OAAO,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC9C,WAAW,SAAS,KACnB,qBAAqB,GAAG,IA6G1B,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,aAAa,eAAe,EAAE,GAAG,SAAS,EAC1C,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,SAAS,KACnB,qBAAqB,EA6DvB,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,OAAO,OAAO,EAAE,EAChB,QAAQ,iBAAiB,EAAE,KAC1B,qBAAqB,EAgEvB,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,eAAe,EAAE,KAC7B,qBAAqB,EAkCvB,CAAC"}
1
+ {"version":3,"file":"field-validation.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/validation/field-validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEf,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAK5B,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,UAAU,GACX,MAAM,cAAc,CAAC;AAMtB;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EAC5D,GAAG,CAAC,EACJ,GAAG,CAAC,EACJ,IAAI,kBAAkB,KACrB,OASF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,eAAe,GAAI,IAAI,kBAAkB,KAAG,MAA0B,CAAC;AAMpF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,EACd,OAAO,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC9C,WAAW,SAAS,KACnB,qBAAqB,GAAG,IAsI1B,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,aAAa,eAAe,EAAE,GAAG,SAAS,EAC1C,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,SAAS,KACnB,qBAAqB,EA6DvB,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,eAAe,EAAE,KAC7B,qBAAqB,EA4BvB,CAAC"}
@@ -114,15 +114,38 @@ export const validateFieldValue = (value, rules, fieldType) => {
114
114
  }
115
115
  }
116
116
  break;
117
- case 'objectArray':
117
+ case 'phone':
118
+ // Basic phone validation - allows digits, spaces, dashes, parentheses, plus
119
+ const phoneRegex = /^[\d\s\-\(\)\+]+$/;
120
+ if (!phoneRegex.test(stringValue)) {
121
+ return { field: '', message: 'Invalid phone number format', code: 'phone' };
122
+ }
123
+ if (rules.minLength && stringValue.replace(/\D/g, '').length < rules.minLength) {
124
+ return { field: '', message: `Phone number too short`, code: 'minLength' };
125
+ }
126
+ if (rules.maxLength && stringValue.length > rules.maxLength) {
127
+ return { field: '', message: `Maximum ${rules.maxLength} characters allowed`, code: 'maxLength' };
128
+ }
129
+ break;
130
+ case 'select':
131
+ // Single selection - just validate it's a string (option validation done separately)
132
+ if (typeof value !== 'string') {
133
+ return { field: '', message: 'Must be a string', code: 'type' };
134
+ }
135
+ break;
136
+ case 'multiselect':
118
137
  if (!Array.isArray(value)) {
119
138
  return { field: '', message: 'Must be an array', code: 'type' };
120
139
  }
121
140
  if (rules.minItems !== undefined && value.length < rules.minItems) {
122
- return { field: '', message: `Minimum ${rules.minItems} items required`, code: 'minItems' };
141
+ return { field: '', message: `Select at least ${rules.minItems} options`, code: 'minItems' };
123
142
  }
124
143
  if (rules.maxItems !== undefined && value.length > rules.maxItems) {
125
- return { field: '', message: `Maximum ${rules.maxItems} items allowed`, code: 'maxItems' };
144
+ return { field: '', message: `Select at most ${rules.maxItems} options`, code: 'maxItems' };
145
+ }
146
+ // Validate each item is a string
147
+ if (!value.every(item => typeof item === 'string')) {
148
+ return { field: '', message: 'All selections must be strings', code: 'type' };
126
149
  }
127
150
  break;
128
151
  }
@@ -194,75 +217,6 @@ export const validateFieldComparisons = (fieldKey, value, comparisons, allData,
194
217
  return errors;
195
218
  };
196
219
  // ============================================================================
197
- // Object Array Item Validation
198
- // ============================================================================
199
- /**
200
- * Validate each item in an object array against the object schema.
201
- * Checks required properties, type validation, and validates each property.
202
- *
203
- * @param fieldKey - Parent field key (for error reporting)
204
- * @param items - Array of objects to validate
205
- * @param schema - Schema defining expected properties
206
- * @returns Array of validation errors with item index in field path (e.g., "contacts[0].phone")
207
- */
208
- export const validateObjectArrayItems = (fieldKey, items, schema) => {
209
- const errors = [];
210
- if (!Array.isArray(items))
211
- return errors;
212
- items.forEach((item, index) => {
213
- if (typeof item !== 'object' || item === null) {
214
- errors.push({
215
- field: `${fieldKey}[${index}]`,
216
- code: 'type',
217
- message: 'Item must be an object',
218
- });
219
- return;
220
- }
221
- const obj = item;
222
- // Check each schema property
223
- for (const prop of schema) {
224
- const value = obj[prop.key];
225
- const propPath = `${fieldKey}[${index}].${prop.key}`;
226
- const isEmpty = value === null || value === undefined || value === '';
227
- // Required check for nested properties (ObjectFieldSchema.required)
228
- if (prop.required && isEmpty) {
229
- errors.push({
230
- field: propPath,
231
- code: 'required',
232
- message: `${prop.label} is required`,
233
- });
234
- continue;
235
- }
236
- if (isEmpty)
237
- continue;
238
- // Convert ObjectFieldSchema inline rules to FieldValidationRules
239
- const rules = {
240
- min: prop.min,
241
- max: prop.max,
242
- minLength: prop.minLength,
243
- maxLength: prop.maxLength,
244
- pattern: prop.pattern,
245
- patternMessage: prop.patternMessage,
246
- };
247
- // Validate the property value
248
- const error = validateFieldValue(value, rules, prop.fieldType);
249
- if (error) {
250
- errors.push({ ...error, field: propPath });
251
- }
252
- }
253
- // Cross-property comparisons within the same object item
254
- // e.g., checkOutDate > checkInDate within each reservation
255
- for (const prop of schema) {
256
- const value = obj[prop.key];
257
- if (value === null || value === undefined || value === '')
258
- continue;
259
- // ObjectFieldSchema doesn't currently have comparisons, but we could
260
- // validate date fields against 'now' using minDate/maxDate if we extend the schema
261
- }
262
- });
263
- return errors;
264
- };
265
- // ============================================================================
266
220
  // Full Data Validation
267
221
  // ============================================================================
268
222
  /**
@@ -290,11 +244,6 @@ export const validateAllFields = (data, definitions) => {
290
244
  const comparisonErrors = validateFieldComparisons(key, value, def.validation.comparisons, data, def.fieldType);
291
245
  errors.push(...comparisonErrors);
292
246
  }
293
- // Object array item validation (validate each item's properties against objectSchema)
294
- if (def.fieldType === 'objectArray' && def.objectSchema && Array.isArray(value)) {
295
- const itemErrors = validateObjectArrayItems(key, value, def.objectSchema);
296
- errors.push(...itemErrors);
297
- }
298
247
  }
299
248
  return errors;
300
249
  };
@@ -1 +1 @@
1
- {"version":3,"file":"field-validation.js","sourceRoot":"","sources":["../../../../src/shared-lib/validation/field-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-validation.js","sourceRoot":"","sources":["../../../../src/shared-lib/validation/field-validation.ts"],"names":[],"mappings":"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"}