attio-mcp 1.1.10 → 1.2.1

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 (69) hide show
  1. package/CHANGELOG.md +108 -1
  2. package/README.md +14 -8
  3. package/dist/api/attribute-types.d.ts.map +1 -1
  4. package/dist/api/attribute-types.js +7 -2
  5. package/dist/api/attribute-types.js.map +1 -1
  6. package/dist/api/operations/lists.d.ts.map +1 -1
  7. package/dist/api/operations/lists.js +4 -3
  8. package/dist/api/operations/lists.js.map +1 -1
  9. package/dist/api/operations/search.d.ts.map +1 -1
  10. package/dist/api/operations/search.js +1 -1
  11. package/dist/api/operations/search.js.map +1 -1
  12. package/dist/config/deal-defaults.d.ts +3 -0
  13. package/dist/config/deal-defaults.d.ts.map +1 -1
  14. package/dist/config/deal-defaults.js +35 -31
  15. package/dist/config/deal-defaults.js.map +1 -1
  16. package/dist/handlers/tool-configs/universal/core/index.d.ts +22 -2
  17. package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
  18. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts +22 -2
  19. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts.map +1 -1
  20. package/dist/handlers/tool-configs/universal/core/search-operations.js +1 -1
  21. package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
  22. package/dist/handlers/tool-configs/universal/index.d.ts +22 -2
  23. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  24. package/dist/handlers/tool-configs/universal/operations/index.js +2 -2
  25. package/dist/handlers/tool-configs/universal/operations/index.js.map +1 -1
  26. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.d.ts.map +1 -1
  27. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js +1 -0
  28. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js.map +1 -1
  29. package/dist/handlers/tool-configs/universal/schemas/common/properties.js +1 -1
  30. package/dist/handlers/tool-configs/universal/schemas/common/properties.js.map +1 -1
  31. package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts +22 -2
  32. package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts.map +1 -1
  33. package/dist/handlers/tool-configs/universal/schemas/core-schemas.js +65 -1
  34. package/dist/handlers/tool-configs/universal/schemas/core-schemas.js.map +1 -1
  35. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
  36. package/dist/handlers/tools/dispatcher/core.js +13 -0
  37. package/dist/handlers/tools/dispatcher/core.js.map +1 -1
  38. package/dist/handlers/tools/registry.d.ts +22 -2
  39. package/dist/handlers/tools/registry.d.ts.map +1 -1
  40. package/dist/prompts/v1/create-task.v1.d.ts +1 -1
  41. package/dist/prompts/v1/pipeline-health.v1.d.ts +2 -2
  42. package/dist/server/createServer.d.ts.map +1 -1
  43. package/dist/server/createServer.js +1 -2
  44. package/dist/server/createServer.js.map +1 -1
  45. package/dist/services/workspace-member-resolver.d.ts +55 -0
  46. package/dist/services/workspace-member-resolver.d.ts.map +1 -0
  47. package/dist/services/workspace-member-resolver.js +146 -0
  48. package/dist/services/workspace-member-resolver.js.map +1 -0
  49. package/dist/utils/client-resolver.d.ts +4 -1
  50. package/dist/utils/client-resolver.d.ts.map +1 -1
  51. package/dist/utils/client-resolver.js +57 -33
  52. package/dist/utils/client-resolver.js.map +1 -1
  53. package/dist/utils/filters/reference-attribute-helper.d.ts +69 -0
  54. package/dist/utils/filters/reference-attribute-helper.d.ts.map +1 -0
  55. package/dist/utils/filters/reference-attribute-helper.js +262 -0
  56. package/dist/utils/filters/reference-attribute-helper.js.map +1 -0
  57. package/dist/utils/filters/translators.d.ts +3 -67
  58. package/dist/utils/filters/translators.d.ts.map +1 -1
  59. package/dist/utils/filters/translators.js +208 -26
  60. package/dist/utils/filters/translators.js.map +1 -1
  61. package/dist/utils/filters/value-validators.d.ts +37 -0
  62. package/dist/utils/filters/value-validators.d.ts.map +1 -0
  63. package/dist/utils/filters/value-validators.js +107 -0
  64. package/dist/utils/filters/value-validators.js.map +1 -0
  65. package/dist/utils/ttl-cache.d.ts +69 -0
  66. package/dist/utils/ttl-cache.d.ts.map +1 -0
  67. package/dist/utils/ttl-cache.js +113 -0
  68. package/dist/utils/ttl-cache.js.map +1 -0
  69. package/package.json +2 -2
@@ -15,10 +15,14 @@
15
15
  import { FilterValidationError, FilterErrorCategory, } from '../../errors/api-errors.js';
16
16
  // Internal module dependencies
17
17
  import { FilterConditionType, FIELD_SPECIAL_HANDLING, } from './types.js';
18
+ import { validateSelectOrStatusValue } from './value-validators.js';
19
+ import { getAttributeTypeInfo } from '../../api/attribute-types.js';
18
20
  import { validateFilterStructure } from './validators.js';
19
21
  import { validateFilters, collectInvalidFilters, formatInvalidFiltersError, ERROR_MESSAGES, getFilterExample, } from './validation-utils.js';
20
22
  import { isListSpecificAttribute } from './utils.js';
21
23
  import { createScopedLogger, OperationType } from '../logger.js';
24
+ import { isReferenceAttribute, getReferenceFieldForAttribute, KNOWN_ACTOR_REFERENCE_SLUGS, UUID_PATTERN, } from './reference-attribute-helper.js';
25
+ import { resolveWorkspaceMemberUUID, createWorkspaceMemberCache, } from '../../services/workspace-member-resolver.js';
22
26
  /**
23
27
  * Transforms list entry filters to the format expected by the Attio API
24
28
  *
@@ -83,7 +87,28 @@ import { createScopedLogger, OperationType } from '../logger.js';
83
87
  * ]
84
88
  * };
85
89
  */
86
- export function transformFiltersToApiFormat(filters, validateConditions = true, isListEntryContext = false) {
90
+ /**
91
+ * Validates select/status field values against allowed options
92
+ * Uses per-call memoization to avoid repeated lookups
93
+ *
94
+ * @param resourceType - Object type (e.g., 'deals', 'companies')
95
+ * @param filters - Array of filters to validate
96
+ * @throws FilterValidationError if any value is invalid
97
+ */
98
+ async function validateFilterValues(resourceType, filters) {
99
+ // Per-call cache for options (keyed by "${resourceType}:${slug}")
100
+ const optionsCache = new Map();
101
+ for (const filter of filters) {
102
+ const { slug } = filter.attribute;
103
+ // Get attribute type info
104
+ const typeInfo = await getAttributeTypeInfo(resourceType, slug);
105
+ // Only validate select/status attributes
106
+ if (typeInfo.attioType === 'select' || typeInfo.attioType === 'status') {
107
+ await validateSelectOrStatusValue(resourceType, slug, filter.value, filter.condition, optionsCache);
108
+ }
109
+ }
110
+ }
111
+ export async function transformFiltersToApiFormat(filters, validateConditions = true, isListEntryContext = false, resourceType) {
87
112
  // Handle undefined/null filters gracefully
88
113
  if (!filters) {
89
114
  return {};
@@ -104,6 +129,11 @@ export function transformFiltersToApiFormat(filters, validateConditions = true,
104
129
  // dev-only: skip logging to avoid top-level await in non-async function
105
130
  return {};
106
131
  }
132
+ // Validate select/status field values if resourceType is available
133
+ // Skip validation for list entries (resourceType undefined)
134
+ if (resourceType) {
135
+ await validateFilterValues(resourceType, validatedFilters.filters);
136
+ }
107
137
  }
108
138
  catch (error) {
109
139
  // Check if this is a FilterValidationError
@@ -114,6 +144,11 @@ export function transformFiltersToApiFormat(filters, validateConditions = true,
114
144
  error.message.includes('Invalid filter condition'))) {
115
145
  throw error;
116
146
  }
147
+ // For value validation errors (invalid stage/select values), always re-throw
148
+ if (error.message.includes('Invalid value') &&
149
+ error.message.includes('Valid options are')) {
150
+ throw error;
151
+ }
117
152
  // For structure errors (missing properties), return empty result instead of throwing
118
153
  // dev-only: skip logging to avoid top-level await in non-async function
119
154
  return {};
@@ -123,16 +158,22 @@ export function transformFiltersToApiFormat(filters, validateConditions = true,
123
158
  }
124
159
  // Re-validate for the actual processing (this should not throw since we already validated)
125
160
  const validatedFilters = validateFilters(filters, validateConditions);
161
+ // Create per-request cache for attribute type info lookups
162
+ // This avoids repeated getAttributeTypeInfo calls for the same attribute within a single transformation
163
+ const attributeTypeCache = new Map();
164
+ // Create per-request cache for workspace member UUID resolution (PR #904 Phase 2)
165
+ // This avoids repeated API calls when the same email/name appears in multiple filters
166
+ const memberCache = createWorkspaceMemberCache();
126
167
  // Determine if we need to use the $or operator based on matchAny
127
168
  // matchAny: true = use $or logic, matchAny: false (or undefined) = use standard AND logic
128
169
  const useOrLogic = validatedFilters.matchAny === true;
129
170
  // dev-only: skip logging to avoid top-level await in non-async function
130
171
  // For OR logic, we need a completely different structure with filter objects in an array
131
172
  if (useOrLogic) {
132
- return createOrFilterStructure(validatedFilters.filters, validateConditions, isListEntryContext);
173
+ return await createOrFilterStructure(validatedFilters.filters, validateConditions, isListEntryContext, resourceType, attributeTypeCache, memberCache);
133
174
  }
134
175
  // Standard AND logic
135
- return createAndFilterStructure(validatedFilters.filters, validateConditions, isListEntryContext);
176
+ return await createAndFilterStructure(validatedFilters.filters, validateConditions, isListEntryContext, resourceType, attributeTypeCache, memberCache);
136
177
  }
137
178
  /**
138
179
  * Transforms list entry filters to the new Query API format with path and constraints
@@ -241,10 +282,12 @@ export function transformFiltersToQueryApiFormat(filters, validateConditions = t
241
282
  *
242
283
  * @param filters - Array of filters to combine with OR logic
243
284
  * @param validateConditions - Whether to validate condition types
285
+ * @param isListEntryContext - Whether this is a list entry context
286
+ * @param resourceType - The resource type for attribute metadata lookup
244
287
  * @returns Filter object with $or structure
245
288
  * @throws FilterValidationError for invalid filter structures or when all filters are invalid
246
289
  */
247
- function createOrFilterStructure(filters, validateConditions, isListEntryContext = false) {
290
+ async function createOrFilterStructure(filters, validateConditions, isListEntryContext = false, resourceType, attributeTypeCache, memberCache) {
248
291
  const log = createScopedLogger('filters.translators', 'createOrFilterStructure', OperationType.TRANSFORMATION);
249
292
  const orConditions = [];
250
293
  // Use centralized validation utility to collect invalid filters with consistent messages
@@ -267,11 +310,12 @@ function createOrFilterStructure(filters, validateConditions, isListEntryContext
267
310
  '\n\nExample of valid OR filter structure: \n' + getFilterExample('or');
268
311
  throw new FilterValidationError(errorMessage, FilterErrorCategory.TRANSFORMATION);
269
312
  }
270
- // Process valid filters
271
- filters.forEach((filter, index) => {
313
+ // Process valid filters - use for loop instead of forEach to support await
314
+ for (let index = 0; index < filters.length; index++) {
315
+ const filter = filters[index];
272
316
  // Skip if this filter was found invalid
273
317
  if (invalidFilters.some((invalid) => invalid.index === index)) {
274
- return;
318
+ continue;
275
319
  }
276
320
  // Debug log each filter
277
321
  if (process.env.NODE_ENV === 'development') {
@@ -295,7 +339,7 @@ function createOrFilterStructure(filters, validateConditions, isListEntryContext
295
339
  });
296
340
  }
297
341
  // List-specific attributes use direct field access
298
- const operator = filter.condition === 'equals' ? '$equals' : `$${filter.condition}`;
342
+ const operator = filter.condition === 'equals' ? '$eq' : `$${filter.condition}`;
299
343
  condition[slug] = {
300
344
  [operator]: filter.value,
301
345
  };
@@ -311,23 +355,101 @@ function createOrFilterStructure(filters, validateConditions, isListEntryContext
311
355
  }
312
356
  else {
313
357
  // Standard operator handling for normal fields
314
- const operator = filter.condition === 'equals' ? '$equals' : `$${filter.condition}`;
358
+ const operator = filter.condition === 'equals' ? '$eq' : `$${filter.condition}`;
359
+ // Check if this is a reference attribute that needs nested field specification
360
+ const isReference = await isReferenceAttribute(resourceType, slug, attributeTypeCache);
361
+ // Auto-resolve actor-reference email/name values to UUIDs (PR #904 Phase 2)
362
+ // This enables natural filtering syntax like owner="martin@shapescale.com"
363
+ // Attio's API requires UUIDs for actor-references, not emails/names
364
+ if (isReference &&
365
+ KNOWN_ACTOR_REFERENCE_SLUGS.has(slug) &&
366
+ typeof filter.value === 'string' &&
367
+ !UUID_PATTERN.test(filter.value)) {
368
+ // Value is email or name - resolve to UUID
369
+ try {
370
+ const resolvedUUID = await resolveWorkspaceMemberUUID(filter.value, memberCache);
371
+ log.debug('Auto-resolved actor-reference value to UUID (OR logic)', {
372
+ attribute: slug,
373
+ originalValue: filter.value,
374
+ resolvedUUID,
375
+ });
376
+ // Update filter value in place
377
+ filter.value = resolvedUUID;
378
+ }
379
+ catch (error) {
380
+ // Resolution failed - let it propagate as FilterValidationError
381
+ throw error;
382
+ }
383
+ }
384
+ // Validate that arrays aren't used with 'equals' operator on reference attributes (PR #904 Phase 2)
385
+ // Attio API expects $in/$not_in for array values, not $eq
386
+ // This addresses PR feedback [HIGH] issue
387
+ if (isReference &&
388
+ filter.condition === 'equals' &&
389
+ Array.isArray(filter.value)) {
390
+ throw new FilterValidationError(`Arrays not supported with 'equals' operator for reference attribute "${slug}". ` +
391
+ `Use 'in' operator instead (coming soon) or filter by single value.`, FilterErrorCategory.VALUE);
392
+ }
315
393
  // For parent record attributes in list context, we need to use the record path
316
394
  if (isListEntryContext && !isListSpecificAttribute(slug)) {
317
- condition[`record.values.${slug}`] = {
318
- [operator]: filter.value,
319
- };
395
+ if (isReference) {
396
+ // Get the appropriate field for this reference type (email/name/UUID)
397
+ const refField = await getReferenceFieldForAttribute(resourceType, slug, filter.value, attributeTypeCache);
398
+ // Actor-reference with UUID uses special structure (no operator nesting)
399
+ // Email/name use standard nested field specification
400
+ if (refField === 'referenced_actor_id') {
401
+ condition[`record.values.${slug}`] = {
402
+ referenced_actor_type: 'workspace-member',
403
+ referenced_actor_id: filter.value,
404
+ };
405
+ }
406
+ else {
407
+ // Standard nested field specification for email/name/record_id
408
+ condition[`record.values.${slug}`] = {
409
+ [refField]: {
410
+ [operator]: filter.value,
411
+ },
412
+ };
413
+ }
414
+ }
415
+ else {
416
+ condition[`record.values.${slug}`] = {
417
+ [operator]: filter.value,
418
+ };
419
+ }
320
420
  }
321
421
  else {
322
422
  // Standard field access for non-list contexts
323
- condition[slug] = {
324
- [operator]: filter.value,
325
- };
423
+ if (isReference) {
424
+ // Get the appropriate field for this reference type (email/name/UUID)
425
+ const refField = await getReferenceFieldForAttribute(resourceType, slug, filter.value, attributeTypeCache);
426
+ // Actor-reference with UUID uses special structure (no operator nesting)
427
+ // Email/name use standard nested field specification
428
+ if (refField === 'referenced_actor_id') {
429
+ condition[slug] = {
430
+ referenced_actor_type: 'workspace-member',
431
+ referenced_actor_id: filter.value,
432
+ };
433
+ }
434
+ else {
435
+ // Standard nested field specification for email/name/record_id
436
+ condition[slug] = {
437
+ [refField]: {
438
+ [operator]: filter.value,
439
+ },
440
+ };
441
+ }
442
+ }
443
+ else {
444
+ condition[slug] = {
445
+ [operator]: filter.value,
446
+ };
447
+ }
326
448
  }
327
449
  }
328
450
  // Add to the OR conditions array
329
451
  orConditions.push(condition);
330
- });
452
+ }
331
453
  // Return the $or structure with valid conditions
332
454
  if (orConditions.length > 0) {
333
455
  return {
@@ -342,10 +464,12 @@ function createOrFilterStructure(filters, validateConditions, isListEntryContext
342
464
  *
343
465
  * @param filters - Array of filters to combine with AND logic
344
466
  * @param validateConditions - Whether to validate condition types
467
+ * @param isListEntryContext - Whether this is a list entry context
468
+ * @param resourceType - The resource type for attribute metadata lookup
345
469
  * @returns Filter object with standard AND structure
346
470
  * @throws FilterValidationError for invalid filter structures or when all filters are invalid
347
471
  */
348
- function createAndFilterStructure(filters, validateConditions, isListEntryContext = false) {
472
+ async function createAndFilterStructure(filters, validateConditions, isListEntryContext = false, resourceType, attributeTypeCache, memberCache) {
349
473
  const log = createScopedLogger('filters.translators', 'createAndFilterStructure', OperationType.TRANSFORMATION);
350
474
  // Use simple merged object for AND logic instead of $and wrapper
351
475
  const mergedConditions = {};
@@ -370,11 +494,12 @@ function createAndFilterStructure(filters, validateConditions, isListEntryContex
370
494
  getFilterExample('multiple');
371
495
  throw new FilterValidationError(errorMessage, FilterErrorCategory.TRANSFORMATION);
372
496
  }
373
- // Process valid filters by merging into single object
374
- filters.forEach((filter, index) => {
497
+ // Process valid filters by merging into single object - use for loop to support await
498
+ for (let index = 0; index < filters.length; index++) {
499
+ const filter = filters[index];
375
500
  // Skip if this filter was found invalid
376
501
  if (invalidFilters.some((invalid) => invalid.index === index)) {
377
- return;
502
+ continue;
378
503
  }
379
504
  // Debug log each filter
380
505
  if (process.env.NODE_ENV === 'development') {
@@ -386,7 +511,7 @@ function createAndFilterStructure(filters, validateConditions, isListEntryContex
386
511
  });
387
512
  }
388
513
  const { slug } = filter.attribute;
389
- const operator = filter.condition === 'equals' ? '$equals' : `$${filter.condition}`;
514
+ const operator = filter.condition === 'equals' ? '$eq' : `$${filter.condition}`;
390
515
  // Build condition object in Attio's expected format
391
516
  let fieldPath;
392
517
  if (isListEntryContext && isListSpecificAttribute(slug)) {
@@ -401,18 +526,75 @@ function createAndFilterStructure(filters, validateConditions, isListEntryContex
401
526
  // Standard field access for non-list contexts
402
527
  fieldPath = slug;
403
528
  }
529
+ // Check if this is a reference attribute that needs nested field specification
530
+ const isReference = await isReferenceAttribute(resourceType, slug, attributeTypeCache);
531
+ // Auto-resolve actor-reference email/name values to UUIDs (PR #904 Phase 2)
532
+ // This enables natural filtering syntax like owner="martin@shapescale.com"
533
+ // Attio's API requires UUIDs for actor-references, not emails/names
534
+ if (isReference &&
535
+ KNOWN_ACTOR_REFERENCE_SLUGS.has(slug) &&
536
+ typeof filter.value === 'string' &&
537
+ !UUID_PATTERN.test(filter.value)) {
538
+ // Value is email or name - resolve to UUID
539
+ try {
540
+ const resolvedUUID = await resolveWorkspaceMemberUUID(filter.value, memberCache);
541
+ log.debug('Auto-resolved actor-reference value to UUID', {
542
+ attribute: slug,
543
+ originalValue: filter.value,
544
+ resolvedUUID,
545
+ });
546
+ // Update filter value in place
547
+ filter.value = resolvedUUID;
548
+ }
549
+ catch (error) {
550
+ // Resolution failed - let it propagate as FilterValidationError
551
+ throw error;
552
+ }
553
+ }
554
+ // Validate that arrays aren't used with 'equals' operator on reference attributes (PR #904 Phase 2)
555
+ // Attio API expects $in/$not_in for array values, not $eq
556
+ // This addresses PR feedback [HIGH] issue
557
+ if (isReference &&
558
+ filter.condition === 'equals' &&
559
+ Array.isArray(filter.value)) {
560
+ throw new FilterValidationError(`Arrays not supported with 'equals' operator for reference attribute "${slug}". ` +
561
+ `Use 'in' operator instead (coming soon) or filter by single value.`, FilterErrorCategory.VALUE);
562
+ }
404
563
  // Merge condition directly into the main object (AND logic)
405
- mergedConditions[fieldPath] = {
406
- [operator]: filter.value,
407
- };
564
+ if (isReference) {
565
+ // Get the appropriate field for this reference type (email/name/UUID)
566
+ const refField = await getReferenceFieldForAttribute(resourceType, slug, filter.value, attributeTypeCache);
567
+ // Actor-reference with UUID uses special structure (no operator nesting)
568
+ // Email/name use standard nested field specification
569
+ if (refField === 'referenced_actor_id') {
570
+ mergedConditions[fieldPath] = {
571
+ referenced_actor_type: 'workspace-member',
572
+ referenced_actor_id: filter.value,
573
+ };
574
+ }
575
+ else {
576
+ // Standard nested field specification for email/name/record_id
577
+ mergedConditions[fieldPath] = {
578
+ [refField]: {
579
+ [operator]: filter.value,
580
+ },
581
+ };
582
+ }
583
+ }
584
+ else {
585
+ mergedConditions[fieldPath] = {
586
+ [operator]: filter.value,
587
+ };
588
+ }
408
589
  if (process.env.NODE_ENV === 'development') {
409
590
  log.debug('Added AND condition', {
410
591
  fieldPath,
411
592
  operator,
412
593
  value: filter.value,
594
+ isReference,
413
595
  });
414
596
  }
415
- });
597
+ }
416
598
  // Return merged conditions if we have any
417
599
  if (Object.keys(mergedConditions).length === 0) {
418
600
  return {};
@@ -423,7 +605,7 @@ function createAndFilterStructure(filters, validateConditions, isListEntryContex
423
605
  * Converts a single filter operator to API format
424
606
  *
425
607
  * @param operator - The operator to convert (e.g., 'equals', 'contains')
426
- * @returns The operator in API format (e.g., '$equals', '$contains')
608
+ * @returns The operator in API format (e.g., '$eq', '$contains')
427
609
  */
428
610
  export function convertOperatorToApiFormat(operator) {
429
611
  // Ensure the operator starts with $ for Attio API format
@@ -1 +1 @@
1
- {"version":3,"file":"translators.js","sourceRoot":"","sources":["../../../src/utils/filters/translators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translators.js","sourceRoot":"","sources":["../../../src/utils/filters/translators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Value validation utilities for filter transformation
3
+ * Validates select/status field values against allowed options
4
+ */
5
+ /**
6
+ * Select/status option interface
7
+ */
8
+ interface SelectOption {
9
+ id: string;
10
+ title: string;
11
+ value?: string;
12
+ is_archived?: boolean;
13
+ }
14
+ /**
15
+ * Per-call cache for options to avoid repeated lookups
16
+ * Key format: `${resourceType}:${attributeSlug}`
17
+ */
18
+ type OptionsCache = Map<string, SelectOption[]>;
19
+ /**
20
+ * Validates select or status field values against allowed options
21
+ *
22
+ * Strategy:
23
+ * 1. Try metadata options first (cached, no network call)
24
+ * 2. Fall back to API call (getStatusOptions/getSelectOptions) if metadata lacks options
25
+ * 3. Check if value matches any active option (by title or id, case-insensitive)
26
+ * 4. Throw clear error with valid options if invalid
27
+ *
28
+ * @param resourceType - Object type (e.g., 'deals', 'companies')
29
+ * @param attributeSlug - Attribute slug (e.g., 'stage', 'category')
30
+ * @param value - Value to validate
31
+ * @param condition - Filter condition ('equals', 'in', etc.)
32
+ * @param optionsCache - Per-call cache to avoid repeated lookups
33
+ * @throws FilterValidationError if value is invalid
34
+ */
35
+ export declare function validateSelectOrStatusValue(resourceType: string, attributeSlug: string, value: unknown, condition: string, optionsCache: OptionsCache): Promise<void>;
36
+ export {};
37
+ //# sourceMappingURL=value-validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-validators.d.ts","sourceRoot":"","sources":["../../../src/utils/filters/value-validators.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,KAAK,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Value validation utilities for filter transformation
3
+ * Validates select/status field values against allowed options
4
+ */
5
+ import { FilterValidationError, FilterErrorCategory, } from '../../errors/api-errors.js';
6
+ import { getAttributeTypeInfo } from '../../api/attribute-types.js';
7
+ import { getStatusOptions, getSelectOptions } from '../../api/attio-client.js';
8
+ /**
9
+ * Validates select or status field values against allowed options
10
+ *
11
+ * Strategy:
12
+ * 1. Try metadata options first (cached, no network call)
13
+ * 2. Fall back to API call (getStatusOptions/getSelectOptions) if metadata lacks options
14
+ * 3. Check if value matches any active option (by title or id, case-insensitive)
15
+ * 4. Throw clear error with valid options if invalid
16
+ *
17
+ * @param resourceType - Object type (e.g., 'deals', 'companies')
18
+ * @param attributeSlug - Attribute slug (e.g., 'stage', 'category')
19
+ * @param value - Value to validate
20
+ * @param condition - Filter condition ('equals', 'in', etc.)
21
+ * @param optionsCache - Per-call cache to avoid repeated lookups
22
+ * @throws FilterValidationError if value is invalid
23
+ */
24
+ export async function validateSelectOrStatusValue(resourceType, attributeSlug, value, condition, optionsCache) {
25
+ // Only validate equals and in operators (skip contains/starts_with/etc.)
26
+ if (condition !== 'equals' && condition !== 'in') {
27
+ return; // Skip validation for other operators
28
+ }
29
+ // Check cache first
30
+ const cacheKey = `${resourceType}:${attributeSlug}`;
31
+ let options = optionsCache.get(cacheKey);
32
+ if (!options) {
33
+ // Not in cache, fetch options
34
+ options = await fetchSelectOrStatusOptions(resourceType, attributeSlug);
35
+ optionsCache.set(cacheKey, options);
36
+ }
37
+ // Filter active options only
38
+ const activeOptions = options.filter((opt) => !opt.is_archived);
39
+ // Handle array values for 'in' operator
40
+ const valuesToCheck = Array.isArray(value) ? value : [value];
41
+ // Check each value
42
+ const invalidValues = [];
43
+ for (const val of valuesToCheck) {
44
+ const valueStr = String(val);
45
+ const isValid = activeOptions.some((opt) => opt.title.toLowerCase() === valueStr.toLowerCase() ||
46
+ opt.id === valueStr ||
47
+ opt.value === valueStr);
48
+ if (!isValid) {
49
+ invalidValues.push(val);
50
+ }
51
+ }
52
+ // Throw error if any invalid values found
53
+ if (invalidValues.length > 0) {
54
+ const validTitles = activeOptions.map((opt) => opt.title);
55
+ // Cap suggestion list at 15 options
56
+ const maxSuggestions = 15;
57
+ const suggestionList = validTitles.length > maxSuggestions
58
+ ? `${validTitles.slice(0, maxSuggestions).join(', ')}... and ${validTitles.length - maxSuggestions} more`
59
+ : validTitles.join(', ');
60
+ const invalidValuesStr = invalidValues.length === 1
61
+ ? `"${invalidValues[0]}"`
62
+ : `[${invalidValues.map((v) => `"${v}"`).join(', ')}]`;
63
+ throw new FilterValidationError(`Invalid value ${invalidValuesStr} for field "${attributeSlug}". ` +
64
+ `Valid options are: [${suggestionList}]`, FilterErrorCategory.VALUE);
65
+ }
66
+ // Log validation success in development
67
+ if (process.env.NODE_ENV === 'development') {
68
+ const validatedStr = valuesToCheck.length === 1
69
+ ? `"${valuesToCheck[0]}"`
70
+ : `[${valuesToCheck.map((v) => `"${v}"`).join(', ')}]`;
71
+ // eslint-disable-next-line no-console
72
+ console.debug(`[value-validators] Validated ${attributeSlug}: ${validatedStr} (${activeOptions.length} options available)`);
73
+ }
74
+ }
75
+ /**
76
+ * Fetches select/status options for an attribute
77
+ * Prefers metadata options (cached), falls back to API call
78
+ */
79
+ async function fetchSelectOrStatusOptions(resourceType, attributeSlug) {
80
+ // Try metadata first (cached, no network call)
81
+ const typeInfo = await getAttributeTypeInfo(resourceType, attributeSlug);
82
+ // Check if metadata has options
83
+ const metadataOptions = typeInfo.metadata?.config?.select?.options;
84
+ if (metadataOptions &&
85
+ Array.isArray(metadataOptions) &&
86
+ metadataOptions.length > 0) {
87
+ // Use metadata options (already cached)
88
+ if (process.env.NODE_ENV === 'development') {
89
+ // eslint-disable-next-line no-console
90
+ console.debug(`[value-validators] Using metadata options for ${resourceType}.${attributeSlug} (${metadataOptions.length} options)`);
91
+ }
92
+ return metadataOptions;
93
+ }
94
+ // Metadata lacks options, fall back to API call
95
+ if (process.env.NODE_ENV === 'development') {
96
+ // eslint-disable-next-line no-console
97
+ console.debug(`[value-validators] Fetching options via API for ${resourceType}.${attributeSlug}`);
98
+ }
99
+ if (typeInfo.attioType === 'status') {
100
+ return (await getStatusOptions(resourceType, attributeSlug));
101
+ }
102
+ else {
103
+ // Assume select
104
+ return (await getSelectOptions(resourceType, attributeSlug));
105
+ }
106
+ }
107
+ //# sourceMappingURL=value-validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-validators.js","sourceRoot":"","sources":["../../../src/utils/filters/value-validators.ts"],"names":[],"mappings":"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"}