@stndrds/schema 1.0.0-alpha.207 → 1.0.0-alpha.208

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 (53) hide show
  1. package/dist/{attributes-Cz3tNPJA.d.ts → attributes-BEc_7_q_.d.ts} +2 -2
  2. package/dist/{attributes-CiTjeDGq.d.mts → attributes-DoQp0NSn.d.mts} +2 -2
  3. package/dist/{helpers-Vyq-QKxr.d.ts → helpers-B-hjtjTM.d.ts} +2 -2
  4. package/dist/{helpers-ElxN0li2.d.mts → helpers-DdsQA9U2.d.mts} +2 -2
  5. package/dist/index.d.mts +65 -6
  6. package/dist/index.d.ts +65 -6
  7. package/dist/index.js +120 -80
  8. package/dist/index.mjs +46 -11
  9. package/dist/{types-Bks5XpQW.d.ts → types-BW1U6xfV.d.ts} +1 -1
  10. package/dist/{types-D3Kg3X94.d.mts → types-CnSQ9gCC.d.mts} +1 -1
  11. package/dist/validation/all.d.mts +3 -3
  12. package/dist/validation/all.d.ts +3 -3
  13. package/dist/validation/all.js +14 -14
  14. package/dist/validation/all.mjs +3 -3
  15. package/dist/validation/complex/currency.d.mts +2 -2
  16. package/dist/validation/complex/currency.d.ts +2 -2
  17. package/dist/validation/complex/file.d.mts +2 -2
  18. package/dist/validation/complex/file.d.ts +2 -2
  19. package/dist/validation/complex/location.d.mts +2 -2
  20. package/dist/validation/complex/location.d.ts +2 -2
  21. package/dist/validation/complex/phone.d.mts +2 -2
  22. package/dist/validation/complex/phone.d.ts +2 -2
  23. package/dist/validation/complex/relation.d.mts +2 -2
  24. package/dist/validation/complex/relation.d.ts +2 -2
  25. package/dist/validation/complex/richtext.d.mts +2 -2
  26. package/dist/validation/complex/richtext.d.ts +2 -2
  27. package/dist/validation/complex/select.d.mts +2 -2
  28. package/dist/validation/complex/select.d.ts +2 -2
  29. package/dist/validation/complex/user.d.mts +2 -2
  30. package/dist/validation/complex/user.d.ts +2 -2
  31. package/dist/validation/computed/formula.d.mts +2 -2
  32. package/dist/validation/computed/formula.d.ts +2 -2
  33. package/dist/validation/computed/rollup.d.mts +2 -2
  34. package/dist/validation/computed/rollup.d.ts +2 -2
  35. package/dist/validation/config/index.d.mts +1 -1
  36. package/dist/validation/config/index.d.ts +1 -1
  37. package/dist/validation/core/index.d.mts +3 -3
  38. package/dist/validation/core/index.d.ts +3 -3
  39. package/dist/validation/object/index.d.mts +3 -3
  40. package/dist/validation/object/index.d.ts +3 -3
  41. package/dist/validation/object/index.js +15 -15
  42. package/dist/validation/object/index.mjs +2 -2
  43. package/dist/validation/primitives/checkbox.d.mts +2 -2
  44. package/dist/validation/primitives/checkbox.d.ts +2 -2
  45. package/dist/validation/primitives/date.d.mts +2 -2
  46. package/dist/validation/primitives/date.d.ts +2 -2
  47. package/dist/validation/primitives/number.d.mts +2 -2
  48. package/dist/validation/primitives/number.d.ts +2 -2
  49. package/dist/validation/primitives/text.d.mts +2 -2
  50. package/dist/validation/primitives/text.d.ts +2 -2
  51. package/package.json +2 -2
  52. package/dist/{chunk-NWB6IKLM.mjs → chunk-LCG4ZKSE.mjs} +1 -1
  53. package/dist/{chunk-PLUTE7FU.js → chunk-W5BKBYWN.js} +1 -1
package/dist/index.js CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
4
4
  require('./chunk-PGERPYDR.js');
5
- var chunkNSM2JPC3_js = require('./chunk-NSM2JPC3.js');
6
- var chunkPLUTE7FU_js = require('./chunk-PLUTE7FU.js');
7
- require('./chunk-5WATIVCA.js');
5
+ var chunkW5BKBYWN_js = require('./chunk-W5BKBYWN.js');
8
6
  require('./chunk-O44XVGHE.js');
9
7
  require('./chunk-YIP5FJ5H.js');
10
8
  require('./chunk-SGSGREPG.js');
@@ -13,6 +11,8 @@ require('./chunk-QWKLQRBX.js');
13
11
  require('./chunk-T6L2MUG2.js');
14
12
  require('./chunk-HTSTPTNZ.js');
15
13
  require('./chunk-V2UA2D4E.js');
14
+ var chunkNSM2JPC3_js = require('./chunk-NSM2JPC3.js');
15
+ require('./chunk-5WATIVCA.js');
16
16
  require('./chunk-ACKMC6FL.js');
17
17
  require('./chunk-ROLWVTU3.js');
18
18
  require('./chunk-E6JUYGJX.js');
@@ -799,10 +799,9 @@ function formatPhone(value) {
799
799
  if (!phone2.countryCode) return phone2.phoneNumber;
800
800
  return chunkEBGRZUIH_js.formatPhoneForDisplay(phone2);
801
801
  }
802
- function formatLocation(value, attribute) {
803
- if (typeof value !== "object" || value === null) return String(value);
804
- const loc = value;
805
- const granularity = attribute.granularity ?? "full";
802
+ function formatLocationValue(location2, granularity = "full") {
803
+ if (typeof location2 !== "object" || location2 === null) return "";
804
+ const loc = location2;
806
805
  const parts = [];
807
806
  switch (granularity) {
808
807
  case "country":
@@ -830,13 +829,18 @@ function formatLocation(value, attribute) {
830
829
  break;
831
830
  default:
832
831
  if (loc.address) parts.push(loc.address);
832
+ if (loc.address2) parts.push(loc.address2);
833
833
  if (loc.city) parts.push(loc.city);
834
834
  if (loc.state) parts.push(loc.state);
835
835
  if (loc.postalCode) parts.push(loc.postalCode);
836
836
  if (loc.country) parts.push(constants.getCountryDisplayNameByIso3(loc.country));
837
837
  break;
838
838
  }
839
- return parts.join(", ") || EMPTY_VALUE_PLACEHOLDER;
839
+ return parts.join(", ");
840
+ }
841
+ function formatLocation(value, attribute) {
842
+ if (typeof value !== "object" || value === null) return String(value);
843
+ return formatLocationValue(value, attribute.granularity ?? "full") || EMPTY_VALUE_PLACEHOLDER;
840
844
  }
841
845
  function formatSelect(value, attribute) {
842
846
  if (typeof value !== "string") return String(value);
@@ -1268,7 +1272,7 @@ var BaseAttributeBuilder = class {
1268
1272
  * @see https://standardschema.dev/
1269
1273
  */
1270
1274
  get "~standard"() {
1271
- const zodSchema = chunkPLUTE7FU_js.createAttributeValidator(this.build());
1275
+ const zodSchema = chunkW5BKBYWN_js.createAttributeValidator(this.build());
1272
1276
  return createStandardSchemaProps(zodSchema);
1273
1277
  }
1274
1278
  constructor(type, name, label) {
@@ -2032,9 +2036,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2032
2036
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2033
2037
  const relation2 = this.attr.relationAttribute ?? "relation";
2034
2038
  const target = this.attr.targetAttribute ?? "field";
2035
- throw new chunkPLUTE7FU_js.SchemaError(
2039
+ throw new chunkW5BKBYWN_js.SchemaError(
2036
2040
  `Rollup "${this.attr.name}": .using("original") only supports a "select", "status", or "multiselect" target, but .targetType("${targetType}") was given. To surface a plain ${targetType} value from a related record, use a formula instead \u2014 e.g. formula({ name: "${this.attr.name}", label: "\u2026" }).expression("${relation2}.${target}").`,
2037
- chunkPLUTE7FU_js.SchemaErrorCode.VALIDATION_FAILED
2041
+ chunkW5BKBYWN_js.SchemaErrorCode.VALIDATION_FAILED
2038
2042
  );
2039
2043
  }
2040
2044
  return super.build();
@@ -2530,7 +2534,7 @@ var ObjectBuilder = class {
2530
2534
  * @see https://standardschema.dev/
2531
2535
  */
2532
2536
  get "~standard"() {
2533
- const zodSchema = chunkPLUTE7FU_js.createObjectValidator(this.build());
2537
+ const zodSchema = chunkW5BKBYWN_js.createObjectValidator(this.build());
2534
2538
  return createStandardSchemaProps(zodSchema);
2535
2539
  }
2536
2540
  /**
@@ -2734,17 +2738,17 @@ var ObjectBuilder = class {
2734
2738
  throw new Error("[ObjectBuilder] Missing required field: label");
2735
2739
  }
2736
2740
  if (!this._labelExpression) {
2737
- throw new chunkPLUTE7FU_js.SchemaError(
2741
+ throw new chunkW5BKBYWN_js.SchemaError(
2738
2742
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2739
- chunkPLUTE7FU_js.SchemaErrorCode.VALIDATION_FAILED
2743
+ chunkW5BKBYWN_js.SchemaErrorCode.VALIDATION_FAILED
2740
2744
  );
2741
2745
  }
2742
2746
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2743
2747
  if (!labelResult.success) {
2744
2748
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2745
- throw new chunkPLUTE7FU_js.SchemaError(
2749
+ throw new chunkW5BKBYWN_js.SchemaError(
2746
2750
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2747
- chunkPLUTE7FU_js.SchemaErrorCode.VALIDATION_FAILED
2751
+ chunkW5BKBYWN_js.SchemaErrorCode.VALIDATION_FAILED
2748
2752
  );
2749
2753
  }
2750
2754
  const sortedVersions = [...this._migrations].sort((a, b) => a.version - b.version);
@@ -2783,7 +2787,7 @@ var ObjectBuilder = class {
2783
2787
  objectNameSchema.parse(name);
2784
2788
  } catch (error) {
2785
2789
  if (error instanceof z3__default.default.ZodError) {
2786
- throw new chunkPLUTE7FU_js.SchemaError(error.issues[0].message, chunkPLUTE7FU_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2790
+ throw new chunkW5BKBYWN_js.SchemaError(error.issues[0].message, chunkW5BKBYWN_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2787
2791
  }
2788
2792
  throw error;
2789
2793
  }
@@ -6684,6 +6688,20 @@ function normalizeForEdgeRpc(op) {
6684
6688
  return NEGATIVE_TO_POSITIVE[op] ?? op;
6685
6689
  }
6686
6690
 
6691
+ // src/filters/dynamic-value.ts
6692
+ function isDynamicValue(value) {
6693
+ return typeof value === "object" && value !== null && !Array.isArray(value) && "dynamic" in value;
6694
+ }
6695
+ function currentActor() {
6696
+ return { dynamic: "actor", ref: "current" };
6697
+ }
6698
+ function today() {
6699
+ return { dynamic: "date", anchor: "today" };
6700
+ }
6701
+ function now() {
6702
+ return { dynamic: "date", anchor: "now" };
6703
+ }
6704
+
6687
6705
  // src/filters/validation.ts
6688
6706
  var REFERENCE_TYPES = /* @__PURE__ */ new Set(["relation", "document", "user"]);
6689
6707
  var ID_LIKE_OPERATORS = [
@@ -6717,7 +6735,7 @@ function assertOperatorForType(operator, type, context) {
6717
6735
  if (!ops?.includes(operator)) {
6718
6736
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
6719
6737
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
6720
- throw new chunkPLUTE7FU_js.ValidationError(summary, [
6738
+ throw new chunkW5BKBYWN_js.ValidationError(summary, [
6721
6739
  {
6722
6740
  path: ["operator"],
6723
6741
  message: summary
@@ -6725,49 +6743,66 @@ function assertOperatorForType(operator, type, context) {
6725
6743
  ]);
6726
6744
  }
6727
6745
  }
6746
+ function assertDynamicValueForAttribute(rule, attrType) {
6747
+ if (!isDynamicValue(rule.value)) return;
6748
+ const v = rule.value;
6749
+ if (v.dynamic === "actor" && attrType !== "user") {
6750
+ const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
6751
+ throw new chunkW5BKBYWN_js.ValidationError(m, [{ path: ["value"], message: m }]);
6752
+ }
6753
+ if (v.dynamic === "date" && attrType !== "date") {
6754
+ const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
6755
+ throw new chunkW5BKBYWN_js.ValidationError(m, [{ path: ["value"], message: m }]);
6756
+ }
6757
+ }
6728
6758
  function validateQualifiedRule(rule, context) {
6729
6759
  const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
6730
6760
  const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
6731
6761
  if (!(rootAttr || systemOps)) {
6732
- throw new chunkPLUTE7FU_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
6762
+ throw new chunkW5BKBYWN_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
6733
6763
  { path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
6734
6764
  ]);
6735
6765
  }
6766
+ if (rule.quantifier !== void 0 && !rule.property) {
6767
+ const m = `quantifier is only valid on qualified edge rules (set "property")`;
6768
+ throw new chunkW5BKBYWN_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
6769
+ }
6736
6770
  if (!rootAttr) {
6737
6771
  if (rule.property) {
6738
- throw new chunkPLUTE7FU_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
6772
+ throw new chunkW5BKBYWN_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
6739
6773
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
6740
6774
  ]);
6741
6775
  }
6742
6776
  if (!systemOps.includes(rule.operator)) {
6743
6777
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
6744
- throw new chunkPLUTE7FU_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6778
+ throw new chunkW5BKBYWN_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6745
6779
  }
6746
6780
  return;
6747
6781
  }
6748
6782
  if (!rule.property) {
6783
+ assertDynamicValueForAttribute(rule, rootAttr.type);
6749
6784
  const ops = getAttributeFilterOperators(rootAttr);
6750
6785
  if (!ops.includes(rule.operator)) {
6751
6786
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
6752
6787
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
6753
- throw new chunkPLUTE7FU_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6788
+ throw new chunkW5BKBYWN_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
6754
6789
  }
6755
6790
  return;
6756
6791
  }
6757
6792
  if (!REFERENCE_TYPES.has(rootAttr.type)) {
6758
- throw new chunkPLUTE7FU_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
6793
+ throw new chunkW5BKBYWN_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
6759
6794
  { path: ["property"], message: `Attribute "${rule.attribute}" is not a reference type` }
6760
6795
  ]);
6761
6796
  }
6762
6797
  const propSchema = rootAttr.properties;
6763
6798
  if (!propSchema) {
6764
- throw new chunkPLUTE7FU_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
6799
+ throw new chunkW5BKBYWN_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
6765
6800
  { path: ["property"], message: `"${rule.attribute}" has no qualifyWith` }
6766
6801
  ]);
6767
6802
  }
6768
6803
  const propDef = propSchema.definitions.find((p) => p.name === rule.property);
6769
6804
  if (!propDef) {
6770
- throw new chunkPLUTE7FU_js.ValidationError(
6805
+ throw new chunkW5BKBYWN_js.ValidationError(
6771
6806
  `Property "${rule.property}" not defined on "${rule.attribute}".qualifyWith()`,
6772
6807
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
6773
6808
  );
@@ -6795,189 +6830,189 @@ Object.defineProperty(exports, "indexBy", {
6795
6830
  enumerable: true,
6796
6831
  get: function () { return chunkFRCDMQER_js.indexBy; }
6797
6832
  });
6798
- Object.defineProperty(exports, "ComputedFormulaParseError", {
6799
- enumerable: true,
6800
- get: function () { return chunkNSM2JPC3_js.ComputedFormulaParseError; }
6801
- });
6802
- Object.defineProperty(exports, "parseAttributeConfig", {
6803
- enumerable: true,
6804
- get: function () { return chunkNSM2JPC3_js.parseAttributeConfig; }
6805
- });
6806
- Object.defineProperty(exports, "parseComputedFormula", {
6807
- enumerable: true,
6808
- get: function () { return chunkNSM2JPC3_js.parseComputedFormula; }
6809
- });
6810
6833
  Object.defineProperty(exports, "AccessDeniedError", {
6811
6834
  enumerable: true,
6812
- get: function () { return chunkPLUTE7FU_js.AccessDeniedError; }
6835
+ get: function () { return chunkW5BKBYWN_js.AccessDeniedError; }
6813
6836
  });
6814
6837
  Object.defineProperty(exports, "AttributeInUseError", {
6815
6838
  enumerable: true,
6816
- get: function () { return chunkPLUTE7FU_js.AttributeInUseError; }
6839
+ get: function () { return chunkW5BKBYWN_js.AttributeInUseError; }
6817
6840
  });
6818
6841
  Object.defineProperty(exports, "AttributeNotFoundError", {
6819
6842
  enumerable: true,
6820
- get: function () { return chunkPLUTE7FU_js.AttributeNotFoundError; }
6843
+ get: function () { return chunkW5BKBYWN_js.AttributeNotFoundError; }
6821
6844
  });
6822
6845
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
6823
6846
  enumerable: true,
6824
- get: function () { return chunkPLUTE7FU_js.ChangeTypeNotSupportedError; }
6847
+ get: function () { return chunkW5BKBYWN_js.ChangeTypeNotSupportedError; }
6825
6848
  });
6826
6849
  Object.defineProperty(exports, "ConcurrentModificationError", {
6827
6850
  enumerable: true,
6828
- get: function () { return chunkPLUTE7FU_js.ConcurrentModificationError; }
6851
+ get: function () { return chunkW5BKBYWN_js.ConcurrentModificationError; }
6829
6852
  });
6830
6853
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
6831
6854
  enumerable: true,
6832
- get: function () { return chunkPLUTE7FU_js.DestructiveSyncNotAllowedError; }
6855
+ get: function () { return chunkW5BKBYWN_js.DestructiveSyncNotAllowedError; }
6833
6856
  });
6834
6857
  Object.defineProperty(exports, "DuplicateError", {
6835
6858
  enumerable: true,
6836
- get: function () { return chunkPLUTE7FU_js.DuplicateError; }
6859
+ get: function () { return chunkW5BKBYWN_js.DuplicateError; }
6837
6860
  });
6838
6861
  Object.defineProperty(exports, "ForbiddenError", {
6839
6862
  enumerable: true,
6840
- get: function () { return chunkPLUTE7FU_js.ForbiddenError; }
6863
+ get: function () { return chunkW5BKBYWN_js.ForbiddenError; }
6841
6864
  });
6842
6865
  Object.defineProperty(exports, "MemoryNotFoundError", {
6843
6866
  enumerable: true,
6844
- get: function () { return chunkPLUTE7FU_js.MemoryNotFoundError; }
6867
+ get: function () { return chunkW5BKBYWN_js.MemoryNotFoundError; }
6845
6868
  });
6846
6869
  Object.defineProperty(exports, "MigrationTimeoutError", {
6847
6870
  enumerable: true,
6848
- get: function () { return chunkPLUTE7FU_js.MigrationTimeoutError; }
6871
+ get: function () { return chunkW5BKBYWN_js.MigrationTimeoutError; }
6849
6872
  });
6850
6873
  Object.defineProperty(exports, "NotFoundError", {
6851
6874
  enumerable: true,
6852
- get: function () { return chunkPLUTE7FU_js.NotFoundError; }
6875
+ get: function () { return chunkW5BKBYWN_js.NotFoundError; }
6853
6876
  });
6854
6877
  Object.defineProperty(exports, "NotImplementedError", {
6855
6878
  enumerable: true,
6856
- get: function () { return chunkPLUTE7FU_js.NotImplementedError; }
6879
+ get: function () { return chunkW5BKBYWN_js.NotImplementedError; }
6857
6880
  });
6858
6881
  Object.defineProperty(exports, "ObjectNotFoundError", {
6859
6882
  enumerable: true,
6860
- get: function () { return chunkPLUTE7FU_js.ObjectNotFoundError; }
6883
+ get: function () { return chunkW5BKBYWN_js.ObjectNotFoundError; }
6861
6884
  });
6862
6885
  Object.defineProperty(exports, "ObjectReferencedError", {
6863
6886
  enumerable: true,
6864
- get: function () { return chunkPLUTE7FU_js.ObjectReferencedError; }
6887
+ get: function () { return chunkW5BKBYWN_js.ObjectReferencedError; }
6865
6888
  });
6866
6889
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
6867
6890
  enumerable: true,
6868
- get: function () { return chunkPLUTE7FU_js.OrphanSystemAttributeError; }
6891
+ get: function () { return chunkW5BKBYWN_js.OrphanSystemAttributeError; }
6869
6892
  });
6870
6893
  Object.defineProperty(exports, "ProtectedResourceError", {
6871
6894
  enumerable: true,
6872
- get: function () { return chunkPLUTE7FU_js.ProtectedResourceError; }
6895
+ get: function () { return chunkW5BKBYWN_js.ProtectedResourceError; }
6873
6896
  });
6874
6897
  Object.defineProperty(exports, "ProtectedRoleError", {
6875
6898
  enumerable: true,
6876
- get: function () { return chunkPLUTE7FU_js.ProtectedRoleError; }
6899
+ get: function () { return chunkW5BKBYWN_js.ProtectedRoleError; }
6877
6900
  });
6878
6901
  Object.defineProperty(exports, "RecordNotFoundError", {
6879
6902
  enumerable: true,
6880
- get: function () { return chunkPLUTE7FU_js.RecordNotFoundError; }
6903
+ get: function () { return chunkW5BKBYWN_js.RecordNotFoundError; }
6881
6904
  });
6882
6905
  Object.defineProperty(exports, "RecordReferencedError", {
6883
6906
  enumerable: true,
6884
- get: function () { return chunkPLUTE7FU_js.RecordReferencedError; }
6907
+ get: function () { return chunkW5BKBYWN_js.RecordReferencedError; }
6885
6908
  });
6886
6909
  Object.defineProperty(exports, "RepositoryError", {
6887
6910
  enumerable: true,
6888
- get: function () { return chunkPLUTE7FU_js.RepositoryError; }
6911
+ get: function () { return chunkW5BKBYWN_js.RepositoryError; }
6889
6912
  });
6890
6913
  Object.defineProperty(exports, "RoleNotFoundError", {
6891
6914
  enumerable: true,
6892
- get: function () { return chunkPLUTE7FU_js.RoleNotFoundError; }
6915
+ get: function () { return chunkW5BKBYWN_js.RoleNotFoundError; }
6893
6916
  });
6894
6917
  Object.defineProperty(exports, "SchemaError", {
6895
6918
  enumerable: true,
6896
- get: function () { return chunkPLUTE7FU_js.SchemaError; }
6919
+ get: function () { return chunkW5BKBYWN_js.SchemaError; }
6897
6920
  });
6898
6921
  Object.defineProperty(exports, "SchemaErrorCode", {
6899
6922
  enumerable: true,
6900
- get: function () { return chunkPLUTE7FU_js.SchemaErrorCode; }
6923
+ get: function () { return chunkW5BKBYWN_js.SchemaErrorCode; }
6901
6924
  });
6902
6925
  Object.defineProperty(exports, "StorageError", {
6903
6926
  enumerable: true,
6904
- get: function () { return chunkPLUTE7FU_js.StorageError; }
6927
+ get: function () { return chunkW5BKBYWN_js.StorageError; }
6905
6928
  });
6906
6929
  Object.defineProperty(exports, "SyncCascadeError", {
6907
6930
  enumerable: true,
6908
- get: function () { return chunkPLUTE7FU_js.SyncCascadeError; }
6931
+ get: function () { return chunkW5BKBYWN_js.SyncCascadeError; }
6909
6932
  });
6910
6933
  Object.defineProperty(exports, "SyncConflictError", {
6911
6934
  enumerable: true,
6912
- get: function () { return chunkPLUTE7FU_js.SyncConflictError; }
6935
+ get: function () { return chunkW5BKBYWN_js.SyncConflictError; }
6913
6936
  });
6914
6937
  Object.defineProperty(exports, "SyncError", {
6915
6938
  enumerable: true,
6916
- get: function () { return chunkPLUTE7FU_js.SyncError; }
6939
+ get: function () { return chunkW5BKBYWN_js.SyncError; }
6917
6940
  });
6918
6941
  Object.defineProperty(exports, "SystemEntityImmutableError", {
6919
6942
  enumerable: true,
6920
- get: function () { return chunkPLUTE7FU_js.SystemEntityImmutableError; }
6943
+ get: function () { return chunkW5BKBYWN_js.SystemEntityImmutableError; }
6921
6944
  });
6922
6945
  Object.defineProperty(exports, "ValidationError", {
6923
6946
  enumerable: true,
6924
- get: function () { return chunkPLUTE7FU_js.ValidationError; }
6947
+ get: function () { return chunkW5BKBYWN_js.ValidationError; }
6925
6948
  });
6926
6949
  Object.defineProperty(exports, "computeRecordStatus", {
6927
6950
  enumerable: true,
6928
- get: function () { return chunkPLUTE7FU_js.computeRecordStatus; }
6951
+ get: function () { return chunkW5BKBYWN_js.computeRecordStatus; }
6929
6952
  });
6930
6953
  Object.defineProperty(exports, "createFormAttributeValidator", {
6931
6954
  enumerable: true,
6932
- get: function () { return chunkPLUTE7FU_js.createFormAttributeValidator; }
6955
+ get: function () { return chunkW5BKBYWN_js.createFormAttributeValidator; }
6933
6956
  });
6934
6957
  Object.defineProperty(exports, "isAttributeInUseError", {
6935
6958
  enumerable: true,
6936
- get: function () { return chunkPLUTE7FU_js.isAttributeInUseError; }
6959
+ get: function () { return chunkW5BKBYWN_js.isAttributeInUseError; }
6937
6960
  });
6938
6961
  Object.defineProperty(exports, "isNotFoundError", {
6939
6962
  enumerable: true,
6940
- get: function () { return chunkPLUTE7FU_js.isNotFoundError; }
6963
+ get: function () { return chunkW5BKBYWN_js.isNotFoundError; }
6941
6964
  });
6942
6965
  Object.defineProperty(exports, "isObjectReferencedError", {
6943
6966
  enumerable: true,
6944
- get: function () { return chunkPLUTE7FU_js.isObjectReferencedError; }
6967
+ get: function () { return chunkW5BKBYWN_js.isObjectReferencedError; }
6945
6968
  });
6946
6969
  Object.defineProperty(exports, "isProtectedResourceError", {
6947
6970
  enumerable: true,
6948
- get: function () { return chunkPLUTE7FU_js.isProtectedResourceError; }
6971
+ get: function () { return chunkW5BKBYWN_js.isProtectedResourceError; }
6949
6972
  });
6950
6973
  Object.defineProperty(exports, "isRecordReferencedError", {
6951
6974
  enumerable: true,
6952
- get: function () { return chunkPLUTE7FU_js.isRecordReferencedError; }
6975
+ get: function () { return chunkW5BKBYWN_js.isRecordReferencedError; }
6953
6976
  });
6954
6977
  Object.defineProperty(exports, "isSchemaError", {
6955
6978
  enumerable: true,
6956
- get: function () { return chunkPLUTE7FU_js.isSchemaError; }
6979
+ get: function () { return chunkW5BKBYWN_js.isSchemaError; }
6957
6980
  });
6958
6981
  Object.defineProperty(exports, "isValidationError", {
6959
6982
  enumerable: true,
6960
- get: function () { return chunkPLUTE7FU_js.isValidationError; }
6983
+ get: function () { return chunkW5BKBYWN_js.isValidationError; }
6961
6984
  });
6962
6985
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
6963
6986
  enumerable: true,
6964
- get: function () { return chunkPLUTE7FU_js.rejectUnknownAttributesOrThrow; }
6987
+ get: function () { return chunkW5BKBYWN_js.rejectUnknownAttributesOrThrow; }
6965
6988
  });
6966
6989
  Object.defineProperty(exports, "validateDraft", {
6967
6990
  enumerable: true,
6968
- get: function () { return chunkPLUTE7FU_js.validateDraft; }
6991
+ get: function () { return chunkW5BKBYWN_js.validateDraft; }
6969
6992
  });
6970
6993
  Object.defineProperty(exports, "validateDraftOrThrow", {
6971
6994
  enumerable: true,
6972
- get: function () { return chunkPLUTE7FU_js.validateDraftOrThrow; }
6995
+ get: function () { return chunkW5BKBYWN_js.validateDraftOrThrow; }
6973
6996
  });
6974
6997
  Object.defineProperty(exports, "validateObject", {
6975
6998
  enumerable: true,
6976
- get: function () { return chunkPLUTE7FU_js.validateObject; }
6999
+ get: function () { return chunkW5BKBYWN_js.validateObject; }
6977
7000
  });
6978
7001
  Object.defineProperty(exports, "validateObjectOrThrow", {
6979
7002
  enumerable: true,
6980
- get: function () { return chunkPLUTE7FU_js.validateObjectOrThrow; }
7003
+ get: function () { return chunkW5BKBYWN_js.validateObjectOrThrow; }
7004
+ });
7005
+ Object.defineProperty(exports, "ComputedFormulaParseError", {
7006
+ enumerable: true,
7007
+ get: function () { return chunkNSM2JPC3_js.ComputedFormulaParseError; }
7008
+ });
7009
+ Object.defineProperty(exports, "parseAttributeConfig", {
7010
+ enumerable: true,
7011
+ get: function () { return chunkNSM2JPC3_js.parseAttributeConfig; }
7012
+ });
7013
+ Object.defineProperty(exports, "parseComputedFormula", {
7014
+ enumerable: true,
7015
+ get: function () { return chunkNSM2JPC3_js.parseComputedFormula; }
6981
7016
  });
6982
7017
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
6983
7018
  enumerable: true,
@@ -7071,6 +7106,7 @@ exports.createFlagRegistry = createFlagRegistry;
7071
7106
  exports.createFlagService = createFlagService;
7072
7107
  exports.createStandardSchemaProps = createStandardSchemaProps;
7073
7108
  exports.currency = currency;
7109
+ exports.currentActor = currentActor;
7074
7110
  exports.date = date;
7075
7111
  exports.detailView = detailView;
7076
7112
  exports.document = document;
@@ -7085,6 +7121,7 @@ exports.form = form;
7085
7121
  exports.formRegistry = formRegistry;
7086
7122
  exports.formatAttributeValue = formatAttributeValue;
7087
7123
  exports.formatComputedResult = formatComputedResult;
7124
+ exports.formatLocationValue = formatLocationValue;
7088
7125
  exports.formula = formula;
7089
7126
  exports.generateDefaultDetailView = generateDefaultDetailView;
7090
7127
  exports.generateDefaultListView = generateDefaultListView;
@@ -7111,6 +7148,7 @@ exports.isComputedFunctionName = isComputedFunctionName;
7111
7148
  exports.isDefaultRole = isDefaultRole;
7112
7149
  exports.isDetailView = isDetailView;
7113
7150
  exports.isDocumentAttribute = isDocumentAttribute;
7151
+ exports.isDynamicValue = isDynamicValue;
7114
7152
  exports.isEmptyObject = isEmptyObject;
7115
7153
  exports.isFieldGroup = isFieldGroup;
7116
7154
  exports.isFormDefinition = isFormDefinition;
@@ -7144,6 +7182,7 @@ exports.matchesMime = matchesMime;
7144
7182
  exports.multiselect = multiselect;
7145
7183
  exports.normaliseDocumentSlots = normaliseDocumentSlots;
7146
7184
  exports.normalizeForEdgeRpc = normalizeForEdgeRpc;
7185
+ exports.now = now;
7147
7186
  exports.number = number;
7148
7187
  exports.numberFlag = numberFlag;
7149
7188
  exports.object = object;
@@ -7165,6 +7204,7 @@ exports.status = status;
7165
7204
  exports.stringFlag = stringFlag;
7166
7205
  exports.text = text;
7167
7206
  exports.toUndefinedIfEmpty = toUndefinedIfEmpty;
7207
+ exports.today = today;
7168
7208
  exports.user = user;
7169
7209
  exports.validateAttributeName = validateAttributeName;
7170
7210
  exports.validateQualifiedRule = validateQualifiedRule;
package/dist/index.mjs CHANGED
@@ -1,11 +1,8 @@
1
1
  import { generateId } from './chunk-QY6QFRRV.mjs';
2
2
  export { asTenantId, asUserId, deepEqual, generateId, indexBy } from './chunk-QY6QFRRV.mjs';
3
3
  import './chunk-SP3PNHYF.mjs';
4
- import { parseComputedFormula } from './chunk-AAXJJNY6.mjs';
5
- export { ComputedFormulaParseError, parseAttributeConfig, parseComputedFormula } from './chunk-AAXJJNY6.mjs';
6
- import { createObjectValidator, SchemaError, SchemaErrorCode, ValidationError, createAttributeValidator } from './chunk-NWB6IKLM.mjs';
7
- export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-NWB6IKLM.mjs';
8
- import './chunk-OSSGN43B.mjs';
4
+ import { createObjectValidator, SchemaError, SchemaErrorCode, ValidationError, createAttributeValidator } from './chunk-LCG4ZKSE.mjs';
5
+ export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-LCG4ZKSE.mjs';
9
6
  import './chunk-6I2R22CX.mjs';
10
7
  import './chunk-UANQJ2GH.mjs';
11
8
  import './chunk-NOMHDOVE.mjs';
@@ -14,6 +11,9 @@ import './chunk-ZDQ5AP26.mjs';
14
11
  import './chunk-ZDMOXF3U.mjs';
15
12
  import './chunk-UXAHLSWC.mjs';
16
13
  import './chunk-NS63SPNN.mjs';
14
+ import { parseComputedFormula } from './chunk-AAXJJNY6.mjs';
15
+ export { ComputedFormulaParseError, parseAttributeConfig, parseComputedFormula } from './chunk-AAXJJNY6.mjs';
16
+ import './chunk-OSSGN43B.mjs';
17
17
  import './chunk-AYVHMVKQ.mjs';
18
18
  import './chunk-QEZUDVTN.mjs';
19
19
  import './chunk-YUFTHPOE.mjs';
@@ -796,10 +796,9 @@ function formatPhone(value) {
796
796
  if (!phone2.countryCode) return phone2.phoneNumber;
797
797
  return formatPhoneForDisplay(phone2);
798
798
  }
799
- function formatLocation(value, attribute) {
800
- if (typeof value !== "object" || value === null) return String(value);
801
- const loc = value;
802
- const granularity = attribute.granularity ?? "full";
799
+ function formatLocationValue(location2, granularity = "full") {
800
+ if (typeof location2 !== "object" || location2 === null) return "";
801
+ const loc = location2;
803
802
  const parts = [];
804
803
  switch (granularity) {
805
804
  case "country":
@@ -827,13 +826,18 @@ function formatLocation(value, attribute) {
827
826
  break;
828
827
  default:
829
828
  if (loc.address) parts.push(loc.address);
829
+ if (loc.address2) parts.push(loc.address2);
830
830
  if (loc.city) parts.push(loc.city);
831
831
  if (loc.state) parts.push(loc.state);
832
832
  if (loc.postalCode) parts.push(loc.postalCode);
833
833
  if (loc.country) parts.push(getCountryDisplayNameByIso3(loc.country));
834
834
  break;
835
835
  }
836
- return parts.join(", ") || EMPTY_VALUE_PLACEHOLDER;
836
+ return parts.join(", ");
837
+ }
838
+ function formatLocation(value, attribute) {
839
+ if (typeof value !== "object" || value === null) return String(value);
840
+ return formatLocationValue(value, attribute.granularity ?? "full") || EMPTY_VALUE_PLACEHOLDER;
837
841
  }
838
842
  function formatSelect(value, attribute) {
839
843
  if (typeof value !== "string") return String(value);
@@ -6681,6 +6685,20 @@ function normalizeForEdgeRpc(op) {
6681
6685
  return NEGATIVE_TO_POSITIVE[op] ?? op;
6682
6686
  }
6683
6687
 
6688
+ // src/filters/dynamic-value.ts
6689
+ function isDynamicValue(value) {
6690
+ return typeof value === "object" && value !== null && !Array.isArray(value) && "dynamic" in value;
6691
+ }
6692
+ function currentActor() {
6693
+ return { dynamic: "actor", ref: "current" };
6694
+ }
6695
+ function today() {
6696
+ return { dynamic: "date", anchor: "today" };
6697
+ }
6698
+ function now() {
6699
+ return { dynamic: "date", anchor: "now" };
6700
+ }
6701
+
6684
6702
  // src/filters/validation.ts
6685
6703
  var REFERENCE_TYPES = /* @__PURE__ */ new Set(["relation", "document", "user"]);
6686
6704
  var ID_LIKE_OPERATORS = [
@@ -6722,6 +6740,18 @@ function assertOperatorForType(operator, type, context) {
6722
6740
  ]);
6723
6741
  }
6724
6742
  }
6743
+ function assertDynamicValueForAttribute(rule, attrType) {
6744
+ if (!isDynamicValue(rule.value)) return;
6745
+ const v = rule.value;
6746
+ if (v.dynamic === "actor" && attrType !== "user") {
6747
+ const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
6748
+ throw new ValidationError(m, [{ path: ["value"], message: m }]);
6749
+ }
6750
+ if (v.dynamic === "date" && attrType !== "date") {
6751
+ const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
6752
+ throw new ValidationError(m, [{ path: ["value"], message: m }]);
6753
+ }
6754
+ }
6725
6755
  function validateQualifiedRule(rule, context) {
6726
6756
  const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
6727
6757
  const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
@@ -6730,6 +6760,10 @@ function validateQualifiedRule(rule, context) {
6730
6760
  { path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
6731
6761
  ]);
6732
6762
  }
6763
+ if (rule.quantifier !== void 0 && !rule.property) {
6764
+ const m = `quantifier is only valid on qualified edge rules (set "property")`;
6765
+ throw new ValidationError(m, [{ path: ["quantifier"], message: m }]);
6766
+ }
6733
6767
  if (!rootAttr) {
6734
6768
  if (rule.property) {
6735
6769
  throw new ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
@@ -6743,6 +6777,7 @@ function validateQualifiedRule(rule, context) {
6743
6777
  return;
6744
6778
  }
6745
6779
  if (!rule.property) {
6780
+ assertDynamicValueForAttribute(rule, rootAttr.type);
6746
6781
  const ops = getAttributeFilterOperators(rootAttr);
6747
6782
  if (!ops.includes(rule.operator)) {
6748
6783
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
@@ -6772,4 +6807,4 @@ function validateQualifiedRule(rule, context) {
6772
6807
  assertOperatorForType(rule.operator, propDef.type, "property");
6773
6808
  }
6774
6809
 
6775
- export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, 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, 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, RelationGroupBuilder, RichtextTabConfig, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
6810
+ export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, 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, 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, RelationGroupBuilder, RichtextTabConfig, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
@@ -1,4 +1,4 @@
1
- import { A as Attribute } from './attributes-Cz3tNPJA.js';
1
+ import { A as Attribute } from './attributes-BEc_7_q_.js';
2
2
 
3
3
  /**
4
4
  * Validation messages for Zod validators.
@@ -1,4 +1,4 @@
1
- import { A as Attribute } from './attributes-CiTjeDGq.mjs';
1
+ import { A as Attribute } from './attributes-DoQp0NSn.mjs';
2
2
 
3
3
  /**
4
4
  * Validation messages for Zod validators.