@stndrds/schema 1.0.0-alpha.263 → 1.0.0-alpha.264

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 (45) hide show
  1. package/dist/{attributes-Cmkc7UgJ.d.mts → attributes-DCgZhISp.d.mts} +1 -23
  2. package/dist/{attributes-_6tvjbyl.d.ts → attributes-DUuaECJI.d.ts} +1 -23
  3. package/dist/{helpers-BTC6TsKH.d.ts → helpers-B4qBjTd0.d.ts} +2 -2
  4. package/dist/{helpers-BO10yqih.d.mts → helpers-B_NlMAm2.d.mts} +2 -2
  5. package/dist/index.d.mts +45 -32
  6. package/dist/index.d.ts +45 -32
  7. package/dist/index.js +111 -28
  8. package/dist/index.mjs +107 -28
  9. package/dist/{types-CVswgCx9.d.mts → types-15lGDPlN.d.mts} +1 -1
  10. package/dist/{types-B_UZK_6m.d.ts → types-CqZZxm_V.d.ts} +1 -1
  11. package/dist/validation/all.d.mts +3 -3
  12. package/dist/validation/all.d.ts +3 -3
  13. package/dist/validation/complex/currency.d.mts +2 -2
  14. package/dist/validation/complex/currency.d.ts +2 -2
  15. package/dist/validation/complex/location.d.mts +2 -2
  16. package/dist/validation/complex/location.d.ts +2 -2
  17. package/dist/validation/complex/phone.d.mts +2 -2
  18. package/dist/validation/complex/phone.d.ts +2 -2
  19. package/dist/validation/complex/relation.d.mts +2 -2
  20. package/dist/validation/complex/relation.d.ts +2 -2
  21. package/dist/validation/complex/richtext.d.mts +2 -2
  22. package/dist/validation/complex/richtext.d.ts +2 -2
  23. package/dist/validation/complex/select.d.mts +2 -2
  24. package/dist/validation/complex/select.d.ts +2 -2
  25. package/dist/validation/complex/user.d.mts +2 -2
  26. package/dist/validation/complex/user.d.ts +2 -2
  27. package/dist/validation/computed/formula.d.mts +2 -2
  28. package/dist/validation/computed/formula.d.ts +2 -2
  29. package/dist/validation/computed/rollup.d.mts +2 -2
  30. package/dist/validation/computed/rollup.d.ts +2 -2
  31. package/dist/validation/config/index.d.mts +1 -1
  32. package/dist/validation/config/index.d.ts +1 -1
  33. package/dist/validation/core/index.d.mts +3 -3
  34. package/dist/validation/core/index.d.ts +3 -3
  35. package/dist/validation/object/index.d.mts +4 -4
  36. package/dist/validation/object/index.d.ts +4 -4
  37. package/dist/validation/primitives/checkbox.d.mts +2 -2
  38. package/dist/validation/primitives/checkbox.d.ts +2 -2
  39. package/dist/validation/primitives/date.d.mts +2 -2
  40. package/dist/validation/primitives/date.d.ts +2 -2
  41. package/dist/validation/primitives/number.d.mts +2 -2
  42. package/dist/validation/primitives/number.d.ts +2 -2
  43. package/dist/validation/primitives/text.d.mts +2 -2
  44. package/dist/validation/primitives/text.d.ts +2 -2
  45. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -485,19 +485,6 @@ function isAttributeSortable2(attr) {
485
485
  return isAttributeSortable(attr);
486
486
  }
487
487
 
488
- // src/types/autofill.ts
489
- var AUTOFILL_ELIGIBLE_TYPES = [
490
- "text",
491
- "number",
492
- "checkbox",
493
- "date",
494
- "phone",
495
- "currency",
496
- "status",
497
- "select",
498
- "multiselect"
499
- ];
500
-
501
488
  // src/types/audit.ts
502
489
  var AUDIT_RESOURCE_TYPES = [
503
490
  "record",
@@ -1575,15 +1562,6 @@ var BaseAttributeBuilder = class {
1575
1562
  this.attr.placeholder = value;
1576
1563
  return this;
1577
1564
  }
1578
- /**
1579
- * Enable AI autofill for this attribute. `from` is mandatory:
1580
- * empty array = document-only, non-empty = also triggered when those
1581
- * source attributes change. Eligibility by type is validated at schema sync.
1582
- */
1583
- autofill(config) {
1584
- this.attr.autofill = config;
1585
- return this;
1586
- }
1587
1565
  description(value) {
1588
1566
  this.attr.description = value;
1589
1567
  return this;
@@ -4823,7 +4801,7 @@ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("spar
4823
4801
  'What this skill does and when to use it \u2014 e.g. "Drafts replies to customer complaints. Use when asked to answer an unhappy customer."'
4824
4802
  )
4825
4803
  ).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
4826
- var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
4804
+ var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().tab("files", "Files").documents().done().build();
4827
4805
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4828
4806
  var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.MEMORY_NAME_MAX_LENGTH).required()).attribute(
4829
4807
  text({ name: "description", label: "Description" }).multiline().maxLength(constants.MEMORY_DESCRIPTION_MAX_LENGTH).required()
@@ -7070,6 +7048,66 @@ function now() {
7070
7048
  return { dynamic: "date", anchor: "now" };
7071
7049
  }
7072
7050
 
7051
+ // src/filters/normalize-operator.ts
7052
+ var SYNONYM_ALIASES = {
7053
+ // equality
7054
+ equals: "is",
7055
+ equal: "is",
7056
+ "==": "is",
7057
+ "=": "is",
7058
+ notEqual: "is_not",
7059
+ isNot: "is_not",
7060
+ "!=": "is_not",
7061
+ "<>": "is_not",
7062
+ // set
7063
+ in: "any_of",
7064
+ isAnyOf: "any_of",
7065
+ oneOf: "any_of",
7066
+ notIn: "none_of",
7067
+ not_in: "none_of",
7068
+ isNoneOf: "none_of",
7069
+ notOneOf: "none_of",
7070
+ // text
7071
+ startsWith: "starts_with",
7072
+ beginsWith: "starts_with",
7073
+ endsWith: "ends_with",
7074
+ doesNotContain: "not_contains",
7075
+ notContain: "not_contains",
7076
+ // nullity
7077
+ isEmpty: "is_empty",
7078
+ isNotEmpty: "is_not_empty",
7079
+ // checkbox
7080
+ isChecked: "is_checked",
7081
+ isUnchecked: "is_not_checked"
7082
+ };
7083
+ var CROSS_TYPE_CONVERSIONS = {
7084
+ date: {
7085
+ gte: "on_or_after",
7086
+ lte: "on_or_before",
7087
+ gt: "after",
7088
+ lt: "before",
7089
+ eq: "is",
7090
+ neq: "is_not"
7091
+ },
7092
+ number: { is: "eq", is_not: "neq" },
7093
+ currency: { is: "eq", is_not: "neq" },
7094
+ text: { eq: "is", neq: "is_not" },
7095
+ phone: { eq: "is", neq: "is_not" },
7096
+ select: { eq: "is", neq: "is_not" },
7097
+ status: { eq: "is", neq: "is_not" },
7098
+ multiselect: { eq: "contains", neq: "not_contains" },
7099
+ relation: { eq: "is", neq: "is_not" },
7100
+ user: { eq: "is", neq: "is_not" },
7101
+ document: { eq: "is", neq: "is_not" },
7102
+ file: { eq: "is", neq: "is_not" },
7103
+ checkbox: { eq: "is_checked", neq: "is_not_checked", is: "is_checked", is_not: "is_not_checked" }
7104
+ };
7105
+ function normalizeOperator(rawOp, effectiveType) {
7106
+ const synonymed = SYNONYM_ALIASES[rawOp] ?? rawOp;
7107
+ const typeMap = CROSS_TYPE_CONVERSIONS[effectiveType];
7108
+ return typeMap?.[synonymed] ?? synonymed;
7109
+ }
7110
+
7073
7111
  // src/filters/validation.ts
7074
7112
  var REFERENCE_TYPES = /* @__PURE__ */ new Set(["relation", "document", "user"]);
7075
7113
  var ID_LIKE_OPERATORS = [
@@ -7097,9 +7135,21 @@ var SYSTEM_FILTER_OPERATORS = {
7097
7135
  createdBy: OPERATORS_BY_TYPE.user,
7098
7136
  lastUpdatedBy: OPERATORS_BY_TYPE.user
7099
7137
  };
7138
+ var SYSTEM_ATTRIBUTE_TYPES = {
7139
+ id: "id",
7140
+ objectId: "id",
7141
+ tenantId: "id",
7142
+ label: "text",
7143
+ createdAt: "date",
7144
+ updatedAt: "date",
7145
+ deletedAt: "date",
7146
+ createdBy: "user",
7147
+ lastUpdatedBy: "user"
7148
+ };
7100
7149
  function assertOperatorForType(operator, type, context) {
7150
+ const normalized = normalizeOperator(operator, type);
7101
7151
  const ops = OPERATORS_BY_TYPE[type];
7102
- if (!ops?.includes(operator)) {
7152
+ if (!ops?.includes(normalized)) {
7103
7153
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
7104
7154
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
7105
7155
  throw new chunkTS3PJOMZ_js.ValidationError(summary, [
@@ -7109,6 +7159,7 @@ function assertOperatorForType(operator, type, context) {
7109
7159
  }
7110
7160
  ]);
7111
7161
  }
7162
+ return normalized;
7112
7163
  }
7113
7164
  var RELATIVE_DATE_UNITS = /* @__PURE__ */ new Set(["days", "weeks", "months", "years"]);
7114
7165
  var RELATIVE_DATE_DIRECTIONS = /* @__PURE__ */ new Set(["past", "future"]);
@@ -7151,21 +7202,32 @@ function validateQualifiedRule(rule, context) {
7151
7202
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
7152
7203
  ]);
7153
7204
  }
7154
- if (!systemOps.includes(rule.operator)) {
7205
+ const effectiveType = SYSTEM_ATTRIBUTE_TYPES[rule.attribute] ?? "id";
7206
+ const normalizedOperator = normalizeOperator(
7207
+ rule.operator,
7208
+ effectiveType
7209
+ );
7210
+ if (!systemOps.includes(normalizedOperator)) {
7155
7211
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
7156
7212
  throw new chunkTS3PJOMZ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7157
7213
  }
7214
+ rule.operator = normalizedOperator;
7158
7215
  assertRelativeDateValue(rule);
7159
7216
  return;
7160
7217
  }
7161
7218
  if (!rule.property) {
7162
7219
  assertDynamicValueForAttribute(rule, rootAttr.type);
7163
7220
  const ops = getAttributeFilterOperators(rootAttr);
7164
- if (!ops.includes(rule.operator)) {
7221
+ const normalizedOperator = normalizeOperator(
7222
+ rule.operator,
7223
+ rootAttr.type
7224
+ );
7225
+ if (!ops.includes(normalizedOperator)) {
7165
7226
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
7166
7227
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
7167
7228
  throw new chunkTS3PJOMZ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7168
7229
  }
7230
+ rule.operator = normalizedOperator;
7169
7231
  assertRelativeDateValue(rule);
7170
7232
  return;
7171
7233
  }
@@ -7187,10 +7249,27 @@ function validateQualifiedRule(rule, context) {
7187
7249
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
7188
7250
  );
7189
7251
  }
7190
- assertOperatorForType(rule.operator, propDef.type, "property");
7252
+ rule.operator = assertOperatorForType(rule.operator, propDef.type, "property");
7191
7253
  assertRelativeDateValue(rule);
7192
7254
  }
7193
7255
 
7256
+ // src/filters/extract-filter-value.ts
7257
+ function extractCurrencyFilterValue(value) {
7258
+ if (typeof value === "number") return value;
7259
+ if (value !== null && typeof value === "object" && "value" in value) {
7260
+ const inner = value.value;
7261
+ return typeof inner === "number" ? inner : null;
7262
+ }
7263
+ return null;
7264
+ }
7265
+ function extractFilterValue(value) {
7266
+ if (value === null || value === void 0) return null;
7267
+ if (typeof value === "object" && "value" in value) {
7268
+ return value.value ?? null;
7269
+ }
7270
+ return value;
7271
+ }
7272
+
7194
7273
  // src/connectors/types.ts
7195
7274
  var CONNECTOR_CALLBACK_PARAM = {
7196
7275
  status: "connector_status",
@@ -7459,7 +7538,6 @@ exports.ALL_SYSTEM_RESOURCES = ALL_SYSTEM_RESOURCES;
7459
7538
  exports.ATTRIBUTE_FILTER_OPERATORS = ATTRIBUTE_FILTER_OPERATORS;
7460
7539
  exports.AUDIT_ACTIONS = AUDIT_ACTIONS;
7461
7540
  exports.AUDIT_RESOURCE_TYPES = AUDIT_RESOURCE_TYPES;
7462
- exports.AUTOFILL_ELIGIBLE_TYPES = AUTOFILL_ELIGIBLE_TYPES;
7463
7541
  exports.ActivityTabConfig = ActivityTabConfig;
7464
7542
  exports.AgentBuilder = AgentBuilder;
7465
7543
  exports.BEHAVIOR_PROPERTIES = BEHAVIOR_PROPERTIES;
@@ -7468,6 +7546,7 @@ exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
7468
7546
  exports.COMPUTED_FUNCTION_METADATA = COMPUTED_FUNCTION_METADATA;
7469
7547
  exports.COMPUTED_FUNCTION_NAMES = COMPUTED_FUNCTION_NAMES;
7470
7548
  exports.CONNECTOR_CALLBACK_PARAM = CONNECTOR_CALLBACK_PARAM;
7549
+ exports.CROSS_TYPE_CONVERSIONS = CROSS_TYPE_CONVERSIONS;
7471
7550
  exports.ComputedFormulaCompileError = ComputedFormulaCompileError;
7472
7551
  exports.CustomTabConfig = CustomTabConfig;
7473
7552
  exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
@@ -7526,6 +7605,7 @@ exports.SKILL_LIST_VIEW = SKILL_LIST_VIEW;
7526
7605
  exports.SKILL_OBJECT = SKILL_OBJECT;
7527
7606
  exports.SKILL_VIEW = SKILL_VIEW;
7528
7607
  exports.STANDARD_SCHEMA_VENDOR = STANDARD_SCHEMA_VENDOR;
7608
+ exports.SYNONYM_ALIASES = SYNONYM_ALIASES;
7529
7609
  exports.SYSTEM_ATTRIBUTES = SYSTEM_ATTRIBUTES;
7530
7610
  exports.SYSTEM_ATTRIBUTE_I18N_KEYS = SYSTEM_ATTRIBUTE_I18N_KEYS;
7531
7611
  exports.SYSTEM_FIELD_NAMES = SYSTEM_FIELD_NAMES;
@@ -7563,6 +7643,8 @@ exports.evaluateComputedFormula = evaluateComputedFormula;
7563
7643
  exports.evaluateComputedFormulaWithResult = evaluateComputedFormulaWithResult;
7564
7644
  exports.evaluateFilterState = evaluateFilterState;
7565
7645
  exports.extractAttributeNames = extractAttributeNames;
7646
+ exports.extractCurrencyFilterValue = extractCurrencyFilterValue;
7647
+ exports.extractFilterValue = extractFilterValue;
7566
7648
  exports.extractValueRefs = extractValueRefs;
7567
7649
  exports.flagRegistry = flagRegistry;
7568
7650
  exports.form = form;
@@ -7634,6 +7716,7 @@ exports.matchesMime = matchesMime;
7634
7716
  exports.multiselect = multiselect;
7635
7717
  exports.normalizeDateValue = normalizeDateValue;
7636
7718
  exports.normalizeForEdgeRpc = normalizeForEdgeRpc;
7719
+ exports.normalizeOperator = normalizeOperator;
7637
7720
  exports.now = now;
7638
7721
  exports.number = number;
7639
7722
  exports.numberFlag = numberFlag;
package/dist/index.mjs CHANGED
@@ -482,19 +482,6 @@ function isAttributeSortable2(attr) {
482
482
  return isAttributeSortable(attr);
483
483
  }
484
484
 
485
- // src/types/autofill.ts
486
- var AUTOFILL_ELIGIBLE_TYPES = [
487
- "text",
488
- "number",
489
- "checkbox",
490
- "date",
491
- "phone",
492
- "currency",
493
- "status",
494
- "select",
495
- "multiselect"
496
- ];
497
-
498
485
  // src/types/audit.ts
499
486
  var AUDIT_RESOURCE_TYPES = [
500
487
  "record",
@@ -1572,15 +1559,6 @@ var BaseAttributeBuilder = class {
1572
1559
  this.attr.placeholder = value;
1573
1560
  return this;
1574
1561
  }
1575
- /**
1576
- * Enable AI autofill for this attribute. `from` is mandatory:
1577
- * empty array = document-only, non-empty = also triggered when those
1578
- * source attributes change. Eligibility by type is validated at schema sync.
1579
- */
1580
- autofill(config) {
1581
- this.attr.autofill = config;
1582
- return this;
1583
- }
1584
1562
  description(value) {
1585
1563
  this.attr.description = value;
1586
1564
  return this;
@@ -4820,7 +4798,7 @@ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("spar
4820
4798
  'What this skill does and when to use it \u2014 e.g. "Drafts replies to customer complaints. Use when asked to answer an unhappy customer."'
4821
4799
  )
4822
4800
  ).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
4823
- var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
4801
+ var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().tab("files", "Files").documents().done().build();
4824
4802
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4825
4803
  var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(MEMORY_NAME_MAX_LENGTH).required()).attribute(
4826
4804
  text({ name: "description", label: "Description" }).multiline().maxLength(MEMORY_DESCRIPTION_MAX_LENGTH).required()
@@ -7067,6 +7045,66 @@ function now() {
7067
7045
  return { dynamic: "date", anchor: "now" };
7068
7046
  }
7069
7047
 
7048
+ // src/filters/normalize-operator.ts
7049
+ var SYNONYM_ALIASES = {
7050
+ // equality
7051
+ equals: "is",
7052
+ equal: "is",
7053
+ "==": "is",
7054
+ "=": "is",
7055
+ notEqual: "is_not",
7056
+ isNot: "is_not",
7057
+ "!=": "is_not",
7058
+ "<>": "is_not",
7059
+ // set
7060
+ in: "any_of",
7061
+ isAnyOf: "any_of",
7062
+ oneOf: "any_of",
7063
+ notIn: "none_of",
7064
+ not_in: "none_of",
7065
+ isNoneOf: "none_of",
7066
+ notOneOf: "none_of",
7067
+ // text
7068
+ startsWith: "starts_with",
7069
+ beginsWith: "starts_with",
7070
+ endsWith: "ends_with",
7071
+ doesNotContain: "not_contains",
7072
+ notContain: "not_contains",
7073
+ // nullity
7074
+ isEmpty: "is_empty",
7075
+ isNotEmpty: "is_not_empty",
7076
+ // checkbox
7077
+ isChecked: "is_checked",
7078
+ isUnchecked: "is_not_checked"
7079
+ };
7080
+ var CROSS_TYPE_CONVERSIONS = {
7081
+ date: {
7082
+ gte: "on_or_after",
7083
+ lte: "on_or_before",
7084
+ gt: "after",
7085
+ lt: "before",
7086
+ eq: "is",
7087
+ neq: "is_not"
7088
+ },
7089
+ number: { is: "eq", is_not: "neq" },
7090
+ currency: { is: "eq", is_not: "neq" },
7091
+ text: { eq: "is", neq: "is_not" },
7092
+ phone: { eq: "is", neq: "is_not" },
7093
+ select: { eq: "is", neq: "is_not" },
7094
+ status: { eq: "is", neq: "is_not" },
7095
+ multiselect: { eq: "contains", neq: "not_contains" },
7096
+ relation: { eq: "is", neq: "is_not" },
7097
+ user: { eq: "is", neq: "is_not" },
7098
+ document: { eq: "is", neq: "is_not" },
7099
+ file: { eq: "is", neq: "is_not" },
7100
+ checkbox: { eq: "is_checked", neq: "is_not_checked", is: "is_checked", is_not: "is_not_checked" }
7101
+ };
7102
+ function normalizeOperator(rawOp, effectiveType) {
7103
+ const synonymed = SYNONYM_ALIASES[rawOp] ?? rawOp;
7104
+ const typeMap = CROSS_TYPE_CONVERSIONS[effectiveType];
7105
+ return typeMap?.[synonymed] ?? synonymed;
7106
+ }
7107
+
7070
7108
  // src/filters/validation.ts
7071
7109
  var REFERENCE_TYPES = /* @__PURE__ */ new Set(["relation", "document", "user"]);
7072
7110
  var ID_LIKE_OPERATORS = [
@@ -7094,9 +7132,21 @@ var SYSTEM_FILTER_OPERATORS = {
7094
7132
  createdBy: OPERATORS_BY_TYPE.user,
7095
7133
  lastUpdatedBy: OPERATORS_BY_TYPE.user
7096
7134
  };
7135
+ var SYSTEM_ATTRIBUTE_TYPES = {
7136
+ id: "id",
7137
+ objectId: "id",
7138
+ tenantId: "id",
7139
+ label: "text",
7140
+ createdAt: "date",
7141
+ updatedAt: "date",
7142
+ deletedAt: "date",
7143
+ createdBy: "user",
7144
+ lastUpdatedBy: "user"
7145
+ };
7097
7146
  function assertOperatorForType(operator, type, context) {
7147
+ const normalized = normalizeOperator(operator, type);
7098
7148
  const ops = OPERATORS_BY_TYPE[type];
7099
- if (!ops?.includes(operator)) {
7149
+ if (!ops?.includes(normalized)) {
7100
7150
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
7101
7151
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
7102
7152
  throw new ValidationError(summary, [
@@ -7106,6 +7156,7 @@ function assertOperatorForType(operator, type, context) {
7106
7156
  }
7107
7157
  ]);
7108
7158
  }
7159
+ return normalized;
7109
7160
  }
7110
7161
  var RELATIVE_DATE_UNITS = /* @__PURE__ */ new Set(["days", "weeks", "months", "years"]);
7111
7162
  var RELATIVE_DATE_DIRECTIONS = /* @__PURE__ */ new Set(["past", "future"]);
@@ -7148,21 +7199,32 @@ function validateQualifiedRule(rule, context) {
7148
7199
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
7149
7200
  ]);
7150
7201
  }
7151
- if (!systemOps.includes(rule.operator)) {
7202
+ const effectiveType = SYSTEM_ATTRIBUTE_TYPES[rule.attribute] ?? "id";
7203
+ const normalizedOperator = normalizeOperator(
7204
+ rule.operator,
7205
+ effectiveType
7206
+ );
7207
+ if (!systemOps.includes(normalizedOperator)) {
7152
7208
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
7153
7209
  throw new ValidationError(summary, [{ path: ["operator"], message: summary }]);
7154
7210
  }
7211
+ rule.operator = normalizedOperator;
7155
7212
  assertRelativeDateValue(rule);
7156
7213
  return;
7157
7214
  }
7158
7215
  if (!rule.property) {
7159
7216
  assertDynamicValueForAttribute(rule, rootAttr.type);
7160
7217
  const ops = getAttributeFilterOperators(rootAttr);
7161
- if (!ops.includes(rule.operator)) {
7218
+ const normalizedOperator = normalizeOperator(
7219
+ rule.operator,
7220
+ rootAttr.type
7221
+ );
7222
+ if (!ops.includes(normalizedOperator)) {
7162
7223
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
7163
7224
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
7164
7225
  throw new ValidationError(summary, [{ path: ["operator"], message: summary }]);
7165
7226
  }
7227
+ rule.operator = normalizedOperator;
7166
7228
  assertRelativeDateValue(rule);
7167
7229
  return;
7168
7230
  }
@@ -7184,10 +7246,27 @@ function validateQualifiedRule(rule, context) {
7184
7246
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
7185
7247
  );
7186
7248
  }
7187
- assertOperatorForType(rule.operator, propDef.type, "property");
7249
+ rule.operator = assertOperatorForType(rule.operator, propDef.type, "property");
7188
7250
  assertRelativeDateValue(rule);
7189
7251
  }
7190
7252
 
7253
+ // src/filters/extract-filter-value.ts
7254
+ function extractCurrencyFilterValue(value) {
7255
+ if (typeof value === "number") return value;
7256
+ if (value !== null && typeof value === "object" && "value" in value) {
7257
+ const inner = value.value;
7258
+ return typeof inner === "number" ? inner : null;
7259
+ }
7260
+ return null;
7261
+ }
7262
+ function extractFilterValue(value) {
7263
+ if (value === null || value === void 0) return null;
7264
+ if (typeof value === "object" && "value" in value) {
7265
+ return value.value ?? null;
7266
+ }
7267
+ return value;
7268
+ }
7269
+
7191
7270
  // src/connectors/types.ts
7192
7271
  var CONNECTOR_CALLBACK_PARAM = {
7193
7272
  status: "connector_status",
@@ -7238,4 +7317,4 @@ function viewSyncPayload(view) {
7238
7317
  };
7239
7318
  }
7240
7319
 
7241
- export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUDIT_ACTIONS, AUDIT_RESOURCE_TYPES, AUTOFILL_ELIGIBLE_TYPES, ActivityTabConfig, AgentBuilder, BEHAVIOR_PROPERTIES, BROWSER_PREVIEW_STATUSES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, CONNECTOR_CALLBACK_PARAM, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_AGENT_EXECUTION_CONFIG, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, EmailsTabConfig, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, MEMORY_LIST_VIEW, MEMORY_OBJECT, MEMORY_VIEW, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, agent, applyPipes, applyRelationProps, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, canonicalStringify, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, dateValueStart, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, extractValueRefs, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSlotFieldTargets, getSystemAttributeI18nKey, getSystemAttributeList, getUserDisplayName, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDateRangeValue, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isManagedSystemAttribute, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normalizeDateValue, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toMultiValueOperator, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, viewRegistry, viewSyncPayload };
7320
+ export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUDIT_ACTIONS, AUDIT_RESOURCE_TYPES, ActivityTabConfig, AgentBuilder, BEHAVIOR_PROPERTIES, BROWSER_PREVIEW_STATUSES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, CONNECTOR_CALLBACK_PARAM, CROSS_TYPE_CONVERSIONS, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_AGENT_EXECUTION_CONFIG, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, EmailsTabConfig, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, MEMORY_LIST_VIEW, MEMORY_OBJECT, MEMORY_VIEW, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYNONYM_ALIASES, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, agent, applyPipes, applyRelationProps, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, canonicalStringify, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, dateValueStart, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, extractCurrencyFilterValue, extractFilterValue, extractValueRefs, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSlotFieldTargets, getSystemAttributeI18nKey, getSystemAttributeList, getUserDisplayName, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDateRangeValue, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isManagedSystemAttribute, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normalizeDateValue, normalizeForEdgeRpc, normalizeOperator, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toMultiValueOperator, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, viewRegistry, viewSyncPayload };
@@ -1,4 +1,4 @@
1
- import { A as Attribute } from './attributes-Cmkc7UgJ.mjs';
1
+ import { A as Attribute } from './attributes-DCgZhISp.mjs';
2
2
 
3
3
  /**
4
4
  * Validation messages for Zod validators.
@@ -1,4 +1,4 @@
1
- import { A as Attribute } from './attributes-_6tvjbyl.js';
1
+ import { A as Attribute } from './attributes-DUuaECJI.js';
2
2
 
3
3
  /**
4
4
  * Validation messages for Zod validators.
@@ -1,8 +1,8 @@
1
- export { V as ValidationMessages } from '../types-CVswgCx9.mjs';
1
+ export { V as ValidationMessages } from '../types-15lGDPlN.mjs';
2
2
  export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './core/index.mjs';
3
3
  export { parseAttributeConfig } from './config/index.mjs';
4
- export { c as createFormAttributeValidator, r as rejectUnknownAttributesOrThrow, v as validateDraft, a as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from '../helpers-BO10yqih.mjs';
5
- import '../attributes-Cmkc7UgJ.mjs';
4
+ export { c as createFormAttributeValidator, r as rejectUnknownAttributesOrThrow, v as validateDraft, a as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from '../helpers-B_NlMAm2.mjs';
5
+ import '../attributes-DCgZhISp.mjs';
6
6
  import '@stndrds/constants';
7
7
  import '../utils.mjs';
8
8
  import 'zod';
@@ -1,8 +1,8 @@
1
- export { V as ValidationMessages } from '../types-B_UZK_6m.js';
1
+ export { V as ValidationMessages } from '../types-CqZZxm_V.js';
2
2
  export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './core/index.js';
3
3
  export { parseAttributeConfig } from './config/index.js';
4
- export { c as createFormAttributeValidator, r as rejectUnknownAttributesOrThrow, v as validateDraft, a as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from '../helpers-BTC6TsKH.js';
5
- import '../attributes-_6tvjbyl.js';
4
+ export { c as createFormAttributeValidator, r as rejectUnknownAttributesOrThrow, v as validateDraft, a as validateDraftOrThrow, b as validateObject, d as validateObjectOrThrow } from '../helpers-B4qBjTd0.js';
5
+ import '../attributes-DUuaECJI.js';
6
6
  import '@stndrds/constants';
7
7
  import '../utils.js';
8
8
  import 'zod';
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { C as CurrencyAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { C as CurrencyAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { C as CurrencyAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { C as CurrencyAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { L as LocationAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { L as LocationAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { L as LocationAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { L as LocationAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { P as PhoneAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { P as PhoneAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { P as PhoneAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { P as PhoneAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { M as MultiRelationAttribute, R as RelationAttribute, S as SingleRelationAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { M as MultiRelationAttribute, R as RelationAttribute, S as SingleRelationAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { M as MultiRelationAttribute, R as RelationAttribute, S as SingleRelationAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { M as MultiRelationAttribute, R as RelationAttribute, S as SingleRelationAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { a as RichtextAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { a as RichtextAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { a as RichtextAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { a as RichtextAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { b as MultiselectAttribute, c as SelectAttribute, d as StatusAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { b as MultiselectAttribute, c as SelectAttribute, d as StatusAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { b as MultiselectAttribute, c as SelectAttribute, d as StatusAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { b as MultiselectAttribute, c as SelectAttribute, d as StatusAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { U as UserAttribute } from '../../attributes-Cmkc7UgJ.mjs';
3
- import { V as ValidationMessages } from '../../types-CVswgCx9.mjs';
2
+ import { U as UserAttribute } from '../../attributes-DCgZhISp.mjs';
3
+ import { V as ValidationMessages } from '../../types-15lGDPlN.mjs';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { U as UserAttribute } from '../../attributes-_6tvjbyl.js';
3
- import { V as ValidationMessages } from '../../types-B_UZK_6m.js';
2
+ import { U as UserAttribute } from '../../attributes-DUuaECJI.js';
3
+ import { V as ValidationMessages } from '../../types-CqZZxm_V.js';
4
4
  import '@stndrds/constants';
5
5
  import '../../utils.js';
6
6