@ram_28/kf-ai-sdk 1.0.11 → 1.0.12

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 (193) hide show
  1. package/README.md +55 -48
  2. package/dist/api/client.d.ts +14 -14
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/datetime.d.ts +5 -5
  5. package/dist/api/datetime.d.ts.map +1 -1
  6. package/dist/api/index.d.ts +1 -1
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/metadata.d.ts +2 -2
  9. package/dist/api/metadata.d.ts.map +1 -1
  10. package/dist/api.cjs +1 -0
  11. package/dist/api.d.ts +4 -0
  12. package/dist/api.d.ts.map +1 -0
  13. package/dist/api.mjs +27 -0
  14. package/dist/api.types.cjs +1 -0
  15. package/dist/api.types.d.ts +4 -0
  16. package/dist/api.types.d.ts.map +1 -0
  17. package/dist/api.types.mjs +1 -0
  18. package/dist/auth/AuthProvider.d.ts +3 -3
  19. package/dist/auth/AuthProvider.d.ts.map +1 -1
  20. package/dist/auth/authClient.d.ts +4 -4
  21. package/dist/auth/authClient.d.ts.map +1 -1
  22. package/dist/auth/authConfig.d.ts +5 -5
  23. package/dist/auth/authConfig.d.ts.map +1 -1
  24. package/dist/auth/index.d.ts +1 -1
  25. package/dist/auth/index.d.ts.map +1 -1
  26. package/dist/auth/types.d.ts +21 -21
  27. package/dist/auth/types.d.ts.map +1 -1
  28. package/dist/auth/useAuth.d.ts +2 -2
  29. package/dist/auth/useAuth.d.ts.map +1 -1
  30. package/dist/auth.cjs +1 -0
  31. package/dist/auth.d.ts +5 -0
  32. package/dist/auth.d.ts.map +1 -0
  33. package/dist/auth.mjs +280 -0
  34. package/dist/auth.types.cjs +1 -0
  35. package/dist/auth.types.d.ts +2 -0
  36. package/dist/auth.types.d.ts.map +1 -0
  37. package/dist/auth.types.mjs +1 -0
  38. package/dist/base-types.d.ts +2 -0
  39. package/dist/base-types.d.ts.map +1 -0
  40. package/dist/client-C15j4O5B.cjs +1 -0
  41. package/dist/client-CfvLiGfP.js +233 -0
  42. package/dist/cn-Dr87sK3i.js +2775 -0
  43. package/dist/cn-mXUIg4vp.cjs +1 -0
  44. package/dist/components/hooks/index.d.ts +3 -3
  45. package/dist/components/hooks/index.d.ts.map +1 -1
  46. package/dist/components/hooks/useFilter/index.d.ts +2 -2
  47. package/dist/components/hooks/useFilter/index.d.ts.map +1 -1
  48. package/dist/components/hooks/useFilter/types.d.ts +19 -31
  49. package/dist/components/hooks/useFilter/types.d.ts.map +1 -1
  50. package/dist/components/hooks/useFilter/useFilter.d.ts +2 -2
  51. package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -1
  52. package/dist/components/hooks/useForm/apiClient.d.ts +6 -6
  53. package/dist/components/hooks/useForm/apiClient.d.ts.map +1 -1
  54. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts +7 -7
  55. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts.map +1 -1
  56. package/dist/components/hooks/useForm/index.d.ts +5 -5
  57. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  58. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts +10 -10
  59. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts.map +1 -1
  60. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts +7 -12
  61. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts.map +1 -1
  62. package/dist/components/hooks/useForm/schemaParser.utils.d.ts +7 -7
  63. package/dist/components/hooks/useForm/schemaParser.utils.d.ts.map +1 -1
  64. package/dist/components/hooks/useForm/types.d.ts +67 -76
  65. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  66. package/dist/components/hooks/useForm/useForm.d.ts +2 -2
  67. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  68. package/dist/components/hooks/useKanban/apiClient.d.ts +16 -16
  69. package/dist/components/hooks/useKanban/apiClient.d.ts.map +1 -1
  70. package/dist/components/hooks/useKanban/context.d.ts +3 -3
  71. package/dist/components/hooks/useKanban/context.d.ts.map +1 -1
  72. package/dist/components/hooks/useKanban/dragDropManager.d.ts +7 -7
  73. package/dist/components/hooks/useKanban/dragDropManager.d.ts.map +1 -1
  74. package/dist/components/hooks/useKanban/index.d.ts +1 -1
  75. package/dist/components/hooks/useKanban/index.d.ts.map +1 -1
  76. package/dist/components/hooks/useKanban/types.d.ts +65 -67
  77. package/dist/components/hooks/useKanban/types.d.ts.map +1 -1
  78. package/dist/components/hooks/useKanban/useKanban.d.ts +2 -2
  79. package/dist/components/hooks/useKanban/useKanban.d.ts.map +1 -1
  80. package/dist/components/hooks/useTable/index.d.ts +1 -1
  81. package/dist/components/hooks/useTable/index.d.ts.map +1 -1
  82. package/dist/components/hooks/useTable/types.d.ts +10 -10
  83. package/dist/components/hooks/useTable/types.d.ts.map +1 -1
  84. package/dist/components/hooks/useTable/useTable.d.ts +2 -2
  85. package/dist/components/hooks/useTable/useTable.d.ts.map +1 -1
  86. package/dist/filter.cjs +1 -0
  87. package/dist/filter.d.ts +3 -0
  88. package/dist/filter.d.ts.map +1 -0
  89. package/dist/filter.mjs +6 -0
  90. package/dist/filter.types.cjs +1 -0
  91. package/dist/filter.types.d.ts +2 -0
  92. package/dist/filter.types.d.ts.map +1 -0
  93. package/dist/filter.types.mjs +1 -0
  94. package/dist/form.cjs +1 -0
  95. package/dist/form.d.ts +3 -0
  96. package/dist/form.d.ts.map +1 -0
  97. package/dist/form.mjs +1346 -0
  98. package/dist/form.types.cjs +1 -0
  99. package/dist/form.types.d.ts +2 -0
  100. package/dist/form.types.d.ts.map +1 -0
  101. package/dist/form.types.mjs +1 -0
  102. package/dist/jsx-runtime-BYECrxsp.cjs +30 -0
  103. package/dist/jsx-runtime-DGlMoOmv.js +630 -0
  104. package/dist/kanban.cjs +13 -0
  105. package/dist/kanban.d.ts +5 -0
  106. package/dist/kanban.d.ts.map +1 -0
  107. package/dist/kanban.mjs +694 -0
  108. package/dist/kanban.types.cjs +1 -0
  109. package/dist/kanban.types.d.ts +2 -0
  110. package/dist/kanban.types.d.ts.map +1 -0
  111. package/dist/kanban.types.mjs +1 -0
  112. package/dist/kanban.ui.cjs +1 -0
  113. package/dist/kanban.ui.d.ts +2 -0
  114. package/dist/kanban.ui.d.ts.map +1 -0
  115. package/dist/kanban.ui.mjs +104 -0
  116. package/dist/metadata-2FLBsFcf.cjs +1 -0
  117. package/dist/metadata-DBcoDth-.js +43 -0
  118. package/dist/table.cjs +1 -0
  119. package/dist/table.d.ts +2 -0
  120. package/dist/table.d.ts.map +1 -0
  121. package/dist/table.mjs +148 -0
  122. package/dist/table.types.cjs +1 -0
  123. package/dist/table.types.d.ts +2 -0
  124. package/dist/table.types.d.ts.map +1 -0
  125. package/dist/table.types.mjs +1 -0
  126. package/dist/types/base-fields.d.ts +45 -45
  127. package/dist/types/base-fields.d.ts.map +1 -1
  128. package/dist/types/common.d.ts +45 -61
  129. package/dist/types/common.d.ts.map +1 -1
  130. package/dist/types.cjs +1 -0
  131. package/dist/types.mjs +1 -0
  132. package/dist/useFilter-CXFqEHyI.js +129 -0
  133. package/dist/useFilter-D-bCDo6Z.cjs +1 -0
  134. package/dist/utils/formatting.d.ts +4 -4
  135. package/dist/utils/formatting.d.ts.map +1 -1
  136. package/dist/utils.cjs +4 -0
  137. package/dist/utils.d.ts +3 -0
  138. package/dist/utils.d.ts.map +1 -0
  139. package/dist/utils.mjs +105 -0
  140. package/package.json +147 -9
  141. package/sdk/api/client.ts +51 -51
  142. package/sdk/api/datetime.ts +5 -5
  143. package/sdk/api/index.ts +28 -33
  144. package/sdk/api/metadata.ts +4 -4
  145. package/sdk/api.ts +24 -0
  146. package/sdk/api.types.ts +58 -0
  147. package/sdk/auth/AuthProvider.tsx +18 -18
  148. package/sdk/auth/authClient.ts +9 -9
  149. package/sdk/auth/authConfig.ts +9 -9
  150. package/sdk/auth/index.ts +5 -5
  151. package/sdk/auth/types.ts +21 -21
  152. package/sdk/auth/useAuth.ts +2 -2
  153. package/sdk/auth.ts +22 -0
  154. package/sdk/auth.types.ts +28 -0
  155. package/sdk/base-types.ts +45 -0
  156. package/sdk/components/hooks/index.ts +22 -22
  157. package/sdk/components/hooks/useFilter/index.ts +8 -14
  158. package/sdk/components/hooks/useFilter/types.ts +29 -58
  159. package/sdk/components/hooks/useFilter/useFilter.ts +41 -44
  160. package/sdk/components/hooks/useForm/apiClient.ts +8 -8
  161. package/sdk/components/hooks/useForm/expressionValidator.utils.ts +18 -18
  162. package/sdk/components/hooks/useForm/index.ts +24 -24
  163. package/sdk/components/hooks/useForm/optimizedExpressionValidator.utils.ts +22 -22
  164. package/sdk/components/hooks/useForm/ruleClassifier.utils.ts +26 -62
  165. package/sdk/components/hooks/useForm/schemaParser.utils.ts +24 -24
  166. package/sdk/components/hooks/useForm/types.ts +66 -82
  167. package/sdk/components/hooks/useForm/useForm.ts +15 -21
  168. package/sdk/components/hooks/useKanban/apiClient.ts +54 -54
  169. package/sdk/components/hooks/useKanban/context.ts +3 -3
  170. package/sdk/components/hooks/useKanban/dragDropManager.ts +19 -19
  171. package/sdk/components/hooks/useKanban/index.ts +26 -26
  172. package/sdk/components/hooks/useKanban/types.ts +69 -71
  173. package/sdk/components/hooks/useKanban/useKanban.ts +43 -51
  174. package/sdk/components/hooks/useKanban/useKanbanSimple.ts +4 -4
  175. package/sdk/components/hooks/useTable/index.ts +5 -1
  176. package/sdk/components/hooks/useTable/types.ts +10 -10
  177. package/sdk/components/hooks/useTable/useTable.ts +10 -10
  178. package/sdk/filter.ts +13 -0
  179. package/sdk/filter.types.ts +17 -0
  180. package/sdk/form.ts +15 -0
  181. package/sdk/form.types.ts +46 -0
  182. package/sdk/kanban.ts +23 -0
  183. package/sdk/kanban.types.ts +50 -0
  184. package/sdk/kanban.ui.ts +16 -0
  185. package/sdk/table.ts +7 -0
  186. package/sdk/table.types.ts +13 -0
  187. package/sdk/types/base-fields.ts +47 -47
  188. package/sdk/types/common.ts +47 -71
  189. package/sdk/types/index.ts +1 -1
  190. package/sdk/utils/formatting.ts +4 -4
  191. package/sdk/utils.ts +10 -0
  192. package/dist/index.cjs +0 -45
  193. package/dist/index.mjs +0 -6387
@@ -4,9 +4,9 @@
4
4
  // Enhanced expression evaluator with caching, dependency tracking, and performance optimizations
5
5
 
6
6
  import type {
7
- ExpressionTree,
8
- FieldValidationResult,
9
- SchemaValidationRule,
7
+ ExpressionTreeType,
8
+ FieldValidationResultType,
9
+ SchemaValidationRuleType,
10
10
  } from "./types";
11
11
 
12
12
  // ============================================================
@@ -58,11 +58,11 @@ class LRUCache<T> {
58
58
  * Analyze expression dependencies for optimized watching
59
59
  */
60
60
  export function analyzeExpressionDependencies(
61
- expression: ExpressionTree
61
+ expression: ExpressionTreeType
62
62
  ): Set<string> {
63
63
  const dependencies = new Set<string>();
64
64
 
65
- function traverse(node: ExpressionTree): void {
65
+ function traverse(node: ExpressionTreeType): void {
66
66
  switch (node.Type) {
67
67
  case "Identifier":
68
68
  if (node.Name && !node.Name.startsWith("$")) {
@@ -94,7 +94,7 @@ export function analyzeExpressionDependencies(
94
94
  * Build dependency graph for multiple expressions
95
95
  */
96
96
  export function buildDependencyGraph(
97
- rules: Record<string, SchemaValidationRule>
97
+ rules: Record<string, SchemaValidationRuleType>
98
98
  ): Map<string, Set<string>> {
99
99
  const graph = new Map<string, Set<string>>();
100
100
 
@@ -122,7 +122,7 @@ export class OptimizedExpressionEvaluator {
122
122
  * Create cache key from expression and context
123
123
  */
124
124
  private createCacheKey(
125
- expression: ExpressionTree,
125
+ expression: ExpressionTreeType,
126
126
  context: Record<string, any>
127
127
  ): string {
128
128
  const expressionHash = JSON.stringify(expression);
@@ -133,7 +133,7 @@ export class OptimizedExpressionEvaluator {
133
133
  /**
134
134
  * Get expression dependencies (cached)
135
135
  */
136
- getDependencies(expression: ExpressionTree): Set<string> {
136
+ getDependencies(expression: ExpressionTreeType): Set<string> {
137
137
  const expressionKey = JSON.stringify(expression);
138
138
 
139
139
  let dependencies = this.dependencyCache.get(expressionKey);
@@ -149,7 +149,7 @@ export class OptimizedExpressionEvaluator {
149
149
  * Check if expression result is cached and context hasn't changed
150
150
  */
151
151
  private getCachedResult(
152
- expression: ExpressionTree,
152
+ expression: ExpressionTreeType,
153
153
  context: Record<string, any>,
154
154
  lastContext?: Record<string, any>
155
155
  ): any | undefined {
@@ -173,7 +173,7 @@ export class OptimizedExpressionEvaluator {
173
173
  * Evaluate expression with caching
174
174
  */
175
175
  evaluate(
176
- expression: ExpressionTree,
176
+ expression: ExpressionTreeType,
177
177
  context: Record<string, any>,
178
178
  lastContext?: Record<string, any>
179
179
  ): any {
@@ -194,7 +194,7 @@ export class OptimizedExpressionEvaluator {
194
194
  /**
195
195
  * Core expression evaluation logic
196
196
  */
197
- private evaluateNode(node: ExpressionTree, context: Record<string, any>): any {
197
+ private evaluateNode(node: ExpressionTreeType, context: Record<string, any>): any {
198
198
  switch (node.Type) {
199
199
  case "Literal":
200
200
  return node.Value;
@@ -222,7 +222,7 @@ export class OptimizedExpressionEvaluator {
222
222
  /**
223
223
  * Get identifier value with system context support
224
224
  */
225
- private getIdentifierValue(node: ExpressionTree, context: Record<string, any>): any {
225
+ private getIdentifierValue(node: ExpressionTreeType, context: Record<string, any>): any {
226
226
  if (!node.Name) return undefined;
227
227
 
228
228
  // System identifiers
@@ -249,7 +249,7 @@ export class OptimizedExpressionEvaluator {
249
249
  /**
250
250
  * Evaluate binary expressions with type coercion
251
251
  */
252
- private evaluateBinaryExpression(node: ExpressionTree, context: Record<string, any>): any {
252
+ private evaluateBinaryExpression(node: ExpressionTreeType, context: Record<string, any>): any {
253
253
  if (!node.Arguments || node.Arguments.length !== 2) {
254
254
  throw new Error("Binary expression requires exactly 2 arguments");
255
255
  }
@@ -279,7 +279,7 @@ export class OptimizedExpressionEvaluator {
279
279
  /**
280
280
  * Evaluate logical expressions with short-circuiting
281
281
  */
282
- private evaluateLogicalExpression(node: ExpressionTree, context: Record<string, any>): any {
282
+ private evaluateLogicalExpression(node: ExpressionTreeType, context: Record<string, any>): any {
283
283
  if (!node.Arguments || node.Arguments.length < 2) {
284
284
  throw new Error("Logical expression requires at least 2 arguments");
285
285
  }
@@ -309,7 +309,7 @@ export class OptimizedExpressionEvaluator {
309
309
  /**
310
310
  * Evaluate function calls with built-in functions
311
311
  */
312
- private evaluateCallExpression(node: ExpressionTree, context: Record<string, any>): any {
312
+ private evaluateCallExpression(node: ExpressionTreeType, context: Record<string, any>): any {
313
313
  if (!node.Callee) {
314
314
  throw new Error("Call expression requires a function name");
315
315
  }
@@ -360,7 +360,7 @@ export class OptimizedExpressionEvaluator {
360
360
  /**
361
361
  * Evaluate member expressions
362
362
  */
363
- private evaluateMemberExpression(node: ExpressionTree, context: Record<string, any>): any {
363
+ private evaluateMemberExpression(node: ExpressionTreeType, context: Record<string, any>): any {
364
364
  if (!node.Arguments || node.Arguments.length === 0) {
365
365
  throw new Error("Member expression requires arguments");
366
366
  }
@@ -398,10 +398,10 @@ const globalEvaluator = new OptimizedExpressionEvaluator();
398
398
  export function validateFieldOptimized<T = Record<string, any>>(
399
399
  fieldName: string,
400
400
  fieldValue: any,
401
- validationRules: SchemaValidationRule[],
401
+ validationRules: SchemaValidationRuleType[],
402
402
  formValues: T,
403
403
  lastFormValues?: T
404
- ): FieldValidationResult<T> {
404
+ ): FieldValidationResultType<T> {
405
405
  if (!validationRules || validationRules.length === 0) {
406
406
  return { isValid: true };
407
407
  }
@@ -435,7 +435,7 @@ export function validateFieldOptimized<T = Record<string, any>>(
435
435
  * Optimized computed value calculation
436
436
  */
437
437
  export function calculateComputedValueOptimized(
438
- expression: ExpressionTree,
438
+ expression: ExpressionTreeType,
439
439
  formValues: Record<string, any>,
440
440
  lastFormValues?: Record<string, any>
441
441
  ): any {
@@ -450,7 +450,7 @@ export function calculateComputedValueOptimized(
450
450
  /**
451
451
  * Get field dependencies for optimized watching
452
452
  */
453
- export function getFieldDependencies(expression: ExpressionTree): string[] {
453
+ export function getFieldDependencies(expression: ExpressionTreeType): string[] {
454
454
  return Array.from(globalEvaluator.getDependencies(expression));
455
455
  }
456
456
 
@@ -461,11 +461,11 @@ export function batchValidateFields<T = Record<string, any>>(
461
461
  validations: Array<{
462
462
  fieldName: string;
463
463
  fieldValue: any;
464
- rules: SchemaValidationRule[];
464
+ rules: SchemaValidationRuleType[];
465
465
  }>,
466
466
  formValues: T,
467
467
  lastFormValues?: T
468
- ): Array<FieldValidationResult<T>> {
468
+ ): Array<FieldValidationResultType<T>> {
469
469
  return validations.map(({ fieldName, fieldValue, rules }) =>
470
470
  validateFieldOptimized(fieldName, fieldValue, rules, formValues, lastFormValues)
471
471
  );
@@ -4,12 +4,11 @@
4
4
  // Classifies rules by type and determines execution strategy
5
5
 
6
6
  import type {
7
- BDOSchema,
8
- BDOFieldDefinition,
9
- FormSchemaConfig,
10
- SchemaValidationRule,
11
- RuleType,
12
- FieldPermission,
7
+ BDOSchemaType,
8
+ FormSchemaConfigType,
9
+ SchemaValidationRuleType,
10
+ RuleTypeType,
11
+ FieldPermissionType,
13
12
  } from "./types";
14
13
 
15
14
  // ============================================================
@@ -20,7 +19,7 @@ import type {
20
19
  * Check if a validation rule represents a "required" validation
21
20
  * Detects patterns like: field != null, TRIM(field) != '', etc.
22
21
  */
23
- function isRequiredSchemaValidationRule(rule: SchemaValidationRule, fieldName: string): boolean {
22
+ function isRequiredSchemaValidationRule(rule: SchemaValidationRuleType, fieldName: string): boolean {
24
23
  const expression = rule.Expression?.toLowerCase() || '';
25
24
  const ruleName = rule.Name?.toLowerCase() || '';
26
25
  const ruleId = rule.Id?.toLowerCase() || '';
@@ -48,7 +47,7 @@ function isRequiredSchemaValidationRule(rule: SchemaValidationRule, fieldName: s
48
47
  * Normalize BDO schema to ensure validation rules are in centralized format
49
48
  * Extracts inline validation rules from fields and adds them to Rules.Validation
50
49
  */
51
- export function normalizeBDOSchema(schema: BDOSchema): BDOSchema {
50
+ export function normalizeBDOSchema(schema: BDOSchemaType): BDOSchemaType {
52
51
  const normalizedSchema = { ...schema };
53
52
 
54
53
  // Initialize Rules section if it doesn't exist
@@ -84,7 +83,7 @@ export function normalizeBDOSchema(schema: BDOSchema): BDOSchema {
84
83
  // Extract inline validation rules
85
84
  const ruleIds: string[] = [];
86
85
 
87
- (field.Validation as SchemaValidationRule[]).forEach((rule) => {
86
+ (field.Validation as SchemaValidationRuleType[]).forEach((rule) => {
88
87
  // Add rule to centralized Rules.Validation
89
88
  normalizedSchema.Rules.Validation![rule.Id] = rule;
90
89
  ruleIds.push(rule.Id);
@@ -146,11 +145,11 @@ export function normalizeBDOSchema(schema: BDOSchema): BDOSchema {
146
145
  /**
147
146
  * Classify rules by type from BDO schema
148
147
  */
149
- export function classifyRules(schema: BDOSchema): FormSchemaConfig["rules"] {
148
+ export function classifyRules(schema: BDOSchemaType): FormSchemaConfigType["rules"] {
150
149
  const rules = {
151
- validation: {} as Record<string, SchemaValidationRule>,
152
- computation: {} as Record<string, SchemaValidationRule>,
153
- businessLogic: {} as Record<string, SchemaValidationRule>,
150
+ validation: {} as Record<string, SchemaValidationRuleType>,
151
+ computation: {} as Record<string, SchemaValidationRuleType>,
152
+ businessLogic: {} as Record<string, SchemaValidationRuleType>,
154
153
  };
155
154
 
156
155
  // Extract rules from BDO Rules section
@@ -178,7 +177,7 @@ export function classifyRules(schema: BDOSchema): FormSchemaConfig["rules"] {
178
177
  * by analyzing the rule's target field from its name/description
179
178
  */
180
179
  function inferComputationRuleTargets(
181
- schema: BDOSchema
180
+ schema: BDOSchemaType
182
181
  ): Record<string, string> {
183
182
  const ruleToField: Record<string, string> = {};
184
183
 
@@ -222,10 +221,10 @@ function inferComputationRuleTargets(
222
221
  }
223
222
 
224
223
  export function createFieldRuleMapping(
225
- schema: BDOSchema,
226
- classifiedRules: FormSchemaConfig["rules"]
227
- ): FormSchemaConfig["fieldRules"] {
228
- const fieldRules: FormSchemaConfig["fieldRules"] = {};
224
+ schema: BDOSchemaType,
225
+ classifiedRules: FormSchemaConfigType["rules"]
226
+ ): FormSchemaConfigType["fieldRules"] {
227
+ const fieldRules: FormSchemaConfigType["fieldRules"] = {};
229
228
 
230
229
  // Initialize all fields
231
230
  Object.keys(schema.Fields).forEach((fieldName) => {
@@ -288,13 +287,13 @@ export function createFieldRuleMapping(
288
287
  * Calculate field permissions based on user role
289
288
  */
290
289
  export function calculateFieldPermissions(
291
- schema: BDOSchema,
290
+ schema: BDOSchemaType,
292
291
  userRole?: string
293
- ): Record<string, FieldPermission> {
294
- const fieldPermissions: Record<string, FieldPermission> = {};
292
+ ): Record<string, FieldPermissionType> {
293
+ const fieldPermissions: Record<string, FieldPermissionType> = {};
295
294
 
296
295
  // Default permissions (no role specified)
297
- const defaultPermission: FieldPermission = {
296
+ const defaultPermission: FieldPermissionType = {
298
297
  editable: true,
299
298
  readable: true,
300
299
  hidden: false,
@@ -338,7 +337,7 @@ export function calculateFieldPermissions(
338
337
  * Determine if rule should execute client-side or server-side
339
338
  */
340
339
  export function getRuleExecutionStrategy(
341
- ruleType: RuleType
340
+ ruleType: RuleTypeType
342
341
  ): "client" | "server" {
343
342
  switch (ruleType) {
344
343
  case "Validation":
@@ -356,11 +355,11 @@ export function getRuleExecutionStrategy(
356
355
  */
357
356
  export function getRulesForField(
358
357
  fieldName: string,
359
- fieldRules: FormSchemaConfig["fieldRules"],
360
- classifiedRules: FormSchemaConfig["rules"],
358
+ fieldRules: FormSchemaConfigType["fieldRules"],
359
+ classifiedRules: FormSchemaConfigType["rules"],
361
360
  executionType: "client" | "server"
362
- ): SchemaValidationRule[] {
363
- const rules: SchemaValidationRule[] = [];
361
+ ): SchemaValidationRuleType[] {
362
+ const rules: SchemaValidationRuleType[] = [];
364
363
  const fieldRuleMap = fieldRules[fieldName];
365
364
 
366
365
  if (!fieldRuleMap) return rules;
@@ -388,38 +387,3 @@ export function getRulesForField(
388
387
 
389
388
  return rules;
390
389
  }
391
-
392
- // ============================================================
393
- // LEGACY SCHEMA SUPPORT
394
- // ============================================================
395
-
396
- /**
397
- * Convert legacy schema format to BDO format
398
- * @deprecated Legacy schema format is no longer supported
399
- */
400
- export function convertLegacySchema(legacySchema: Record<string, BDOFieldDefinition>): BDOSchema {
401
- return {
402
- Id: "legacy_schema",
403
- Name: "Legacy Schema",
404
- Kind: "BusinessObject",
405
- Description: "Converted from legacy schema format",
406
- Rules: {
407
- Validation: {},
408
- Computation: {},
409
- BusinessLogic: {},
410
- },
411
- Fields: Object.fromEntries(
412
- Object.entries(legacySchema).map(([fieldName, field]) => [
413
- fieldName,
414
- {
415
- ...field,
416
- Id: fieldName,
417
- Name: field.Description || fieldName,
418
- Validation: [], // Legacy format needs to be processed separately
419
- },
420
- ])
421
- ),
422
- RolePermission: {},
423
- Roles: {},
424
- };
425
- }
@@ -4,12 +4,12 @@
4
4
  // Converts backend field schemas to react-hook-form validation rules
5
5
 
6
6
  import type {
7
- BDOSchema,
8
- BDOFieldDefinition,
9
- FormFieldConfig,
10
- FormSchemaConfig,
11
- SchemaValidationRule,
12
- FieldPermission,
7
+ BDOSchemaType,
8
+ BDOFieldDefinitionType,
9
+ FormFieldConfigType,
10
+ FormSchemaConfigType,
11
+ SchemaValidationRuleType,
12
+ FieldPermissionType,
13
13
  } from "./types";
14
14
  import {
15
15
  calculateDefaultValue,
@@ -85,8 +85,8 @@ function generateLabel(fieldName: string): string {
85
85
  */
86
86
  function convertSchemaValidationRules(
87
87
  fieldName: string,
88
- fieldDef: BDOFieldDefinition,
89
- _allFields: Record<string, BDOFieldDefinition>
88
+ fieldDef: BDOFieldDefinitionType,
89
+ _allFields: Record<string, BDOFieldDefinitionType>
90
90
  ): any {
91
91
  const validation: any = {};
92
92
 
@@ -130,7 +130,7 @@ function convertSchemaValidationRules(
130
130
  * Process field options for select/reference fields
131
131
  */
132
132
  function processFieldOptions(
133
- fieldDef: BDOFieldDefinition
133
+ fieldDef: BDOFieldDefinitionType
134
134
  ): Array<{ value: any; label: string }> {
135
135
  if (!fieldDef.Values) {
136
136
  return [];
@@ -161,7 +161,7 @@ function processFieldOptions(
161
161
  * Calculate default value for a field
162
162
  */
163
163
  function processDefaultValue(
164
- fieldDef: BDOFieldDefinition,
164
+ fieldDef: BDOFieldDefinitionType,
165
165
  formValues: Record<string, any> = {}
166
166
  ): any {
167
167
  if (!fieldDef.DefaultValue) {
@@ -197,17 +197,17 @@ function processDefaultValue(
197
197
  */
198
198
  function processField(
199
199
  fieldName: string,
200
- fieldDef: BDOFieldDefinition,
201
- allFields: Record<string, BDOFieldDefinition>,
200
+ fieldDef: BDOFieldDefinitionType,
201
+ allFields: Record<string, BDOFieldDefinitionType>,
202
202
  formValues: Record<string, any> = {},
203
- permission?: FieldPermission,
203
+ permission?: FieldPermissionType,
204
204
  rules?: {
205
205
  validation: string[];
206
206
  computation: string[];
207
207
  businessLogic: string[];
208
208
  }
209
- ): FormFieldConfig {
210
- const defaultPermission: FieldPermission = {
209
+ ): FormFieldConfigType {
210
+ const defaultPermission: FieldPermissionType = {
211
211
  editable: true,
212
212
  readable: true,
213
213
  hidden: false,
@@ -256,21 +256,21 @@ function processField(
256
256
  * Process complete BDO schema
257
257
  */
258
258
  export function processSchema(
259
- schema: BDOSchema,
259
+ schema: BDOSchemaType,
260
260
  formValues: Record<string, any> = {},
261
261
  userRole?: string
262
- ): FormSchemaConfig {
262
+ ): FormSchemaConfigType {
263
263
  // Ensure schema is in BDO format
264
264
  let bdoSchema = schema;
265
265
 
266
266
  // Normalize BDO schema to ensure inline validation rules are centralized
267
267
  bdoSchema = normalizeBDOSchema(bdoSchema);
268
268
 
269
- const fields: Record<string, FormFieldConfig> = {};
269
+ const fields: Record<string, FormFieldConfigType> = {};
270
270
  const fieldOrder: string[] = [];
271
271
  const computedFields: string[] = [];
272
272
  const requiredFields: string[] = [];
273
- const crossFieldValidation: SchemaValidationRule[] = [];
273
+ const crossFieldValidation: SchemaValidationRuleType[] = [];
274
274
 
275
275
  // Classify rules by type
276
276
  const classifiedRules = classifyRules(bdoSchema);
@@ -339,7 +339,7 @@ export function processSchema(
339
339
  * Update computed field values based on current form values
340
340
  */
341
341
  export function updateComputedFields(
342
- processedSchema: FormSchemaConfig,
342
+ processedSchema: FormSchemaConfigType,
343
343
  currentValues: Record<string, any>
344
344
  ): Record<string, any> {
345
345
  const computedValues: Record<string, any> = {};
@@ -401,7 +401,7 @@ function extractFieldDependencies(expressionTree: any): string[] {
401
401
  * Build field dependency map
402
402
  */
403
403
  export function buildDependencyMap(
404
- processedSchema: FormSchemaConfig
404
+ processedSchema: FormSchemaConfigType
405
405
  ): Record<string, string[]> {
406
406
  const dependencyMap: Record<string, string[]> = {};
407
407
 
@@ -445,7 +445,7 @@ export function buildDependencyMap(
445
445
  /**
446
446
  * Validate processed schema
447
447
  */
448
- export function validateSchema(processedSchema: FormSchemaConfig): {
448
+ export function validateSchema(processedSchema: FormSchemaConfigType): {
449
449
  isValid: boolean;
450
450
  errors: string[];
451
451
  } {
@@ -478,7 +478,7 @@ export function validateSchema(processedSchema: FormSchemaConfig): {
478
478
  /**
479
479
  * Build reference field configuration for API calls
480
480
  */
481
- export function buildReferenceFieldConfig(field: FormFieldConfig): any {
481
+ export function buildReferenceFieldConfig(field: FormFieldConfigType): any {
482
482
  if (field.type !== "reference" || !field._bdoField.Values?.Reference) {
483
483
  return null;
484
484
  }
@@ -497,7 +497,7 @@ export function buildReferenceFieldConfig(field: FormFieldConfig): any {
497
497
  * Extract all reference field configurations from schema
498
498
  */
499
499
  export function extractReferenceFields(
500
- processedSchema: FormSchemaConfig
500
+ processedSchema: FormSchemaConfigType
501
501
  ): Record<string, any> {
502
502
  const referenceFields: Record<string, any> = {};
503
503