@stndrds/schema 1.0.0-alpha.254 → 1.0.0-alpha.257

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 (63) hide show
  1. package/dist/{attributes-Jji7TfFG.d.mts → attributes-Cmkc7UgJ.d.mts} +14 -367
  2. package/dist/{attributes-C-iyjLqJ.d.ts → attributes-_6tvjbyl.d.ts} +14 -367
  3. package/dist/{chunk-RHNSWKMJ.js → chunk-44EVNHSR.js} +5 -8
  4. package/dist/{chunk-VKJVBXHS.mjs → chunk-7VSOCVN7.mjs} +5 -8
  5. package/dist/{chunk-NSM2JPC3.js → chunk-L4U5QEQL.js} +4 -17
  6. package/dist/{chunk-AAXJJNY6.mjs → chunk-UXCJ3NI4.mjs} +4 -17
  7. package/dist/helpers-BO10yqih.d.mts +316 -0
  8. package/dist/helpers-BTC6TsKH.d.ts +316 -0
  9. package/dist/index.d.mts +153 -58
  10. package/dist/index.d.ts +153 -58
  11. package/dist/index.js +135 -180
  12. package/dist/index.mjs +50 -91
  13. package/dist/{types-D7VH7GrO.d.ts → types-B_UZK_6m.d.ts} +1 -1
  14. package/dist/{types-DgpsvFnh.d.mts → types-CVswgCx9.d.mts} +1 -1
  15. package/dist/validation/all.d.mts +3 -3
  16. package/dist/validation/all.d.ts +3 -3
  17. package/dist/validation/all.js +11 -12
  18. package/dist/validation/all.mjs +4 -5
  19. package/dist/validation/complex/currency.d.mts +2 -2
  20. package/dist/validation/complex/currency.d.ts +2 -2
  21. package/dist/validation/complex/location.d.mts +2 -2
  22. package/dist/validation/complex/location.d.ts +2 -2
  23. package/dist/validation/complex/phone.d.mts +2 -2
  24. package/dist/validation/complex/phone.d.ts +2 -2
  25. package/dist/validation/complex/relation.d.mts +2 -2
  26. package/dist/validation/complex/relation.d.ts +2 -2
  27. package/dist/validation/complex/richtext.d.mts +2 -2
  28. package/dist/validation/complex/richtext.d.ts +2 -2
  29. package/dist/validation/complex/select.d.mts +2 -2
  30. package/dist/validation/complex/select.d.ts +2 -2
  31. package/dist/validation/complex/user.d.mts +2 -2
  32. package/dist/validation/complex/user.d.ts +2 -2
  33. package/dist/validation/computed/formula.d.mts +2 -2
  34. package/dist/validation/computed/formula.d.ts +2 -2
  35. package/dist/validation/computed/rollup.d.mts +2 -2
  36. package/dist/validation/computed/rollup.d.ts +2 -2
  37. package/dist/validation/config/index.d.mts +1 -1
  38. package/dist/validation/config/index.d.ts +1 -1
  39. package/dist/validation/config/index.js +4 -4
  40. package/dist/validation/config/index.mjs +1 -1
  41. package/dist/validation/core/index.d.mts +3 -3
  42. package/dist/validation/core/index.d.ts +3 -3
  43. package/dist/validation/object/index.d.mts +4 -3
  44. package/dist/validation/object/index.d.ts +4 -3
  45. package/dist/validation/object/index.js +15 -16
  46. package/dist/validation/object/index.mjs +3 -4
  47. package/dist/validation/primitives/checkbox.d.mts +2 -2
  48. package/dist/validation/primitives/checkbox.d.ts +2 -2
  49. package/dist/validation/primitives/date.d.mts +2 -2
  50. package/dist/validation/primitives/date.d.ts +2 -2
  51. package/dist/validation/primitives/number.d.mts +2 -2
  52. package/dist/validation/primitives/number.d.ts +2 -2
  53. package/dist/validation/primitives/text.d.mts +2 -2
  54. package/dist/validation/primitives/text.d.ts +2 -2
  55. package/package.json +2 -7
  56. package/dist/chunk-CI6EGLL6.mjs +0 -18
  57. package/dist/chunk-Q5DIOYUE.js +0 -20
  58. package/dist/helpers-CMryP45K.d.mts +0 -75
  59. package/dist/helpers-Chppkv0E.d.ts +0 -75
  60. package/dist/validation/complex/file.d.mts +0 -13
  61. package/dist/validation/complex/file.d.ts +0 -13
  62. package/dist/validation/complex/file.js +0 -11
  63. package/dist/validation/complex/file.mjs +0 -2
package/dist/index.js CHANGED
@@ -2,22 +2,21 @@
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 chunkRHNSWKMJ_js = require('./chunk-RHNSWKMJ.js');
7
- require('./chunk-5WATIVCA.js');
5
+ var chunkL4U5QEQL_js = require('./chunk-L4U5QEQL.js');
6
+ var chunk44EVNHSR_js = require('./chunk-44EVNHSR.js');
8
7
  require('./chunk-SI34M4IC.js');
9
8
  require('./chunk-YIP5FJ5H.js');
10
9
  require('./chunk-QAF3HNKQ.js');
11
- require('./chunk-EW5XR2X3.js');
12
10
  require('./chunk-QWKLQRBX.js');
13
11
  require('./chunk-KNGWHQLR.js');
14
12
  require('./chunk-HTSTPTNZ.js');
15
13
  require('./chunk-V2UA2D4E.js');
14
+ require('./chunk-5WATIVCA.js');
16
15
  require('./chunk-ACKMC6FL.js');
17
- require('./chunk-Q5DIOYUE.js');
18
16
  require('./chunk-E6JUYGJX.js');
19
17
  var chunkEBGRZUIH_js = require('./chunk-EBGRZUIH.js');
20
18
  require('./chunk-EEH4XQ7W.js');
19
+ require('./chunk-EW5XR2X3.js');
21
20
  var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
22
21
  var constants = require('@stndrds/constants');
23
22
  var z3 = require('zod');
@@ -239,14 +238,13 @@ var ATTRIBUTE_FILTER_OPERATORS = {
239
238
  select: SELECT_OPERATORS,
240
239
  multiselect: MULTISELECT_OPERATORS,
241
240
  location: [],
242
- file: PRESENCE_OPERATORS,
243
241
  user: REFERENCE_OPERATORS,
244
242
  relation: REFERENCE_OPERATORS,
245
243
  formula: FORMULA_OPERATORS,
246
244
  document: PRESENCE_OPERATORS
247
245
  };
248
246
  var COMPUTED_TYPES = /* @__PURE__ */ new Set(["formula", "rollup"]);
249
- var EDGE_BACKED_TYPES = /* @__PURE__ */ new Set(["file", "user", "relation", "document"]);
247
+ var EDGE_BACKED_TYPES = /* @__PURE__ */ new Set(["user", "relation", "document"]);
250
248
  var STATIC_DEFAULT_TYPES = /* @__PURE__ */ new Set([
251
249
  "text",
252
250
  "richtext",
@@ -259,7 +257,6 @@ var STATIC_DEFAULT_TYPES = /* @__PURE__ */ new Set([
259
257
  "currency",
260
258
  "location",
261
259
  "user",
262
- "file",
263
260
  "relation",
264
261
  "document"
265
262
  ]);
@@ -409,7 +406,6 @@ function getRawFilterOperators(attribute) {
409
406
  }
410
407
  function getAttributeCardinality(attribute) {
411
408
  if (attribute.type === "multiselect" || attribute.type === "document") return "many";
412
- if (attribute.type === "file" && attribute.multiple === true) return "many";
413
409
  if (attribute.type === "user" && attribute.multiple === true) return "many";
414
410
  if (attribute.type === "relation") return attribute.cardinality === "many" ? "many" : "one";
415
411
  return "one";
@@ -424,7 +420,6 @@ function getPolymorphicCapability(attribute) {
424
420
  function supportsMaxItems(attribute) {
425
421
  if (attribute.type === "multiselect") return true;
426
422
  if (attribute.type === "relation") return attribute.cardinality === "many";
427
- if (attribute.type === "file") return attribute.multiple === true;
428
423
  return false;
429
424
  }
430
425
  function supportsQualifiedProperties(type) {
@@ -443,7 +438,7 @@ function isDefaultColumnType(type) {
443
438
  return isTableCellType(type);
444
439
  }
445
440
  function isTableCellType(type) {
446
- return type !== "richtext" && type !== "file" && type !== "document";
441
+ return type !== "richtext" && type !== "document";
447
442
  }
448
443
  function isFormFieldType(type) {
449
444
  return type !== "richtext";
@@ -552,9 +547,6 @@ var AUDIT_ACTIONS = [
552
547
  // src/types/document-layout.ts
553
548
  var MAX_PRESET_DEPTH = 5;
554
549
 
555
- // src/types/documents.ts
556
- var DEFAULT_DOCUMENT_SLOT = { name: "file" };
557
-
558
550
  // src/types/errors.ts
559
551
  function getErrorMessage(error) {
560
552
  if (error instanceof Error) return error.message;
@@ -593,7 +585,6 @@ var FORM_FORBIDDEN_ATTRIBUTE_TYPES = [
593
585
  "multiRelation",
594
586
  "formula",
595
587
  "rollup",
596
- "file",
597
588
  "document",
598
589
  "richtext",
599
590
  "user"
@@ -740,36 +731,6 @@ function matchesMime(mime, accepted) {
740
731
  return mime === pattern;
741
732
  });
742
733
  }
743
- function normaliseDocumentSlots(slots) {
744
- if (!slots || slots.length === 0) return [DEFAULT_DOCUMENT_SLOT];
745
- return slots;
746
- }
747
- var DocumentSlotValidationError = class extends Error {
748
- constructor(code, message, context) {
749
- super(`${code}: ${message}`);
750
- this.code = code;
751
- this.context = context;
752
- this.name = "DocumentSlotValidationError";
753
- }
754
- };
755
- function validateSlotAgainstConfig(slotName, mimeType, slots) {
756
- const slot = slots.find((s) => s.name === slotName);
757
- if (!slot) {
758
- throw new DocumentSlotValidationError(
759
- "SLOT_NOT_DECLARED",
760
- `Slot "${slotName}" is not declared.`,
761
- { availableSlots: slots.map((s) => s.name) }
762
- );
763
- }
764
- if (!matchesMime(mimeType, slot.acceptedMimeTypes)) {
765
- throw new DocumentSlotValidationError(
766
- "MIME_NOT_ACCEPTED",
767
- `MIME ${mimeType} not accepted for slot "${slotName}".`,
768
- { acceptedMimeTypes: slot.acceptedMimeTypes }
769
- );
770
- }
771
- return slot;
772
- }
773
734
 
774
735
  // src/lib/qualify-with.ts
775
736
  var ALLOWED_PROPERTY_TYPES = Object.freeze([
@@ -980,7 +941,6 @@ function formatAttributeValue(value, attribute) {
980
941
  case "multiselect":
981
942
  return formatMultiselect(value, attribute);
982
943
  // Unsupported types - return value as-is or placeholder
983
- case "file":
984
944
  case "user":
985
945
  case "relation":
986
946
  if (Array.isArray(value)) {
@@ -1421,7 +1381,7 @@ var BaseAttributeBuilder = class {
1421
1381
  * @see https://standardschema.dev/
1422
1382
  */
1423
1383
  get "~standard"() {
1424
- const zodSchema = chunkRHNSWKMJ_js.createAttributeValidator(this.build());
1384
+ const zodSchema = chunk44EVNHSR_js.createAttributeValidator(this.build());
1425
1385
  return createStandardSchemaProps(zodSchema);
1426
1386
  }
1427
1387
  constructor(type, name, label) {
@@ -1892,41 +1852,6 @@ var LocationAttributeBuilder = class extends BaseAttributeBuilder {
1892
1852
  function location(config) {
1893
1853
  return new LocationAttributeBuilder(config.name, config.label);
1894
1854
  }
1895
- var FileAttributeBuilder = class extends BaseAttributeBuilder {
1896
- constructor(name, label) {
1897
- super("file", name, label);
1898
- }
1899
- maxFiles(value) {
1900
- this.attr.maxFiles = value;
1901
- return this;
1902
- }
1903
- maxSize(bytes) {
1904
- this.attr.maxSize = bytes;
1905
- return this;
1906
- }
1907
- allowedTypes(types) {
1908
- this.attr.allowedTypes = asMutableArray(types);
1909
- return this;
1910
- }
1911
- /**
1912
- * Allow multiple files to be uploaded
1913
- */
1914
- multiple() {
1915
- this.attr.multiple = true;
1916
- return this;
1917
- }
1918
- required() {
1919
- this.setRequired(true);
1920
- return this.asRequiredState();
1921
- }
1922
- optional() {
1923
- this.setRequired(false);
1924
- return this.asRequiredState();
1925
- }
1926
- };
1927
- function file(config) {
1928
- return new FileAttributeBuilder(config.name, config.label);
1929
- }
1930
1855
  var UserAttributeBuilder = class extends BaseAttributeBuilder {
1931
1856
  constructor(name, label) {
1932
1857
  super("user", name, label);
@@ -2208,9 +2133,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2208
2133
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2209
2134
  const relation2 = this.attr.relationAttribute ?? "relation";
2210
2135
  const target = this.attr.targetAttribute ?? "field";
2211
- throw new chunkRHNSWKMJ_js.SchemaError(
2136
+ throw new chunk44EVNHSR_js.SchemaError(
2212
2137
  `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}").`,
2213
- chunkRHNSWKMJ_js.SchemaErrorCode.VALIDATION_FAILED
2138
+ chunk44EVNHSR_js.SchemaErrorCode.VALIDATION_FAILED
2214
2139
  );
2215
2140
  }
2216
2141
  return super.build();
@@ -2235,11 +2160,18 @@ var DocumentAttributeBuilder = class extends BaseAttributeBuilder {
2235
2160
  super("document", name, label);
2236
2161
  }
2237
2162
  /**
2238
- * Define named upload slots for this document attribute.
2239
- * An empty array falls back to a single default slot.
2163
+ * Restrict every file of the pack to the given MIME prefixes/globs
2164
+ * (e.g. "image/*", "application/pdf").
2240
2165
  */
2241
- slots(configs) {
2242
- this.attr.slots = configs.length === 0 ? [DEFAULT_DOCUMENT_SLOT] : configs;
2166
+ accepts(mimeTypes) {
2167
+ this.attr.accepts = mimeTypes;
2168
+ return this;
2169
+ }
2170
+ /**
2171
+ * Cap every file of the pack to `bytes` maximum size.
2172
+ */
2173
+ maxFileSize(bytes) {
2174
+ this.attr.maxFileSize = bytes;
2243
2175
  return this;
2244
2176
  }
2245
2177
  /**
@@ -2713,7 +2645,7 @@ var ObjectBuilder = class {
2713
2645
  * @see https://standardschema.dev/
2714
2646
  */
2715
2647
  get "~standard"() {
2716
- const zodSchema = chunkRHNSWKMJ_js.createObjectValidator(this.build());
2648
+ const zodSchema = chunk44EVNHSR_js.createObjectValidator(this.build());
2717
2649
  return createStandardSchemaProps(zodSchema);
2718
2650
  }
2719
2651
  /**
@@ -2927,26 +2859,26 @@ var ObjectBuilder = class {
2927
2859
  throw new Error("[ObjectBuilder] Missing required field: label");
2928
2860
  }
2929
2861
  if (!this._labelExpression) {
2930
- throw new chunkRHNSWKMJ_js.SchemaError(
2862
+ throw new chunk44EVNHSR_js.SchemaError(
2931
2863
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2932
- chunkRHNSWKMJ_js.SchemaErrorCode.VALIDATION_FAILED
2864
+ chunk44EVNHSR_js.SchemaErrorCode.VALIDATION_FAILED
2933
2865
  );
2934
2866
  }
2935
2867
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2936
2868
  if (!labelResult.success) {
2937
2869
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2938
- throw new chunkRHNSWKMJ_js.SchemaError(
2870
+ throw new chunk44EVNHSR_js.SchemaError(
2939
2871
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2940
- chunkRHNSWKMJ_js.SchemaErrorCode.VALIDATION_FAILED
2872
+ chunk44EVNHSR_js.SchemaErrorCode.VALIDATION_FAILED
2941
2873
  );
2942
2874
  }
2943
2875
  if (this._embeddingExpression !== void 0) {
2944
2876
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
2945
2877
  if (!embeddingResult.success) {
2946
2878
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
2947
- throw new chunkRHNSWKMJ_js.SchemaError(
2879
+ throw new chunk44EVNHSR_js.SchemaError(
2948
2880
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
2949
- chunkRHNSWKMJ_js.SchemaErrorCode.VALIDATION_FAILED
2881
+ chunk44EVNHSR_js.SchemaErrorCode.VALIDATION_FAILED
2950
2882
  );
2951
2883
  }
2952
2884
  }
@@ -2987,7 +2919,7 @@ var ObjectBuilder = class {
2987
2919
  objectNameSchema.parse(name);
2988
2920
  } catch (error) {
2989
2921
  if (error instanceof z3__default.default.ZodError) {
2990
- throw new chunkRHNSWKMJ_js.SchemaError(error.issues[0].message, chunkRHNSWKMJ_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2922
+ throw new chunk44EVNHSR_js.SchemaError(error.issues[0].message, chunk44EVNHSR_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2991
2923
  }
2992
2924
  throw error;
2993
2925
  }
@@ -2998,7 +2930,7 @@ function object(config) {
2998
2930
  }
2999
2931
  function validatePresetStructure(presetId, nodes, depth) {
3000
2932
  const fail = (message, detail) => {
3001
- throw new chunkRHNSWKMJ_js.ValidationError(message, [
2933
+ throw new chunk44EVNHSR_js.ValidationError(message, [
3002
2934
  { path: ["documentLayout", "presets", presetId], message: detail }
3003
2935
  ]);
3004
2936
  };
@@ -4263,7 +4195,7 @@ function jsonFlag(name, defaultValue) {
4263
4195
 
4264
4196
  // src/feature-flags/flag-registry.ts
4265
4197
  function duplicateFlagError(name) {
4266
- return new chunkRHNSWKMJ_js.DuplicateError(
4198
+ return new chunk44EVNHSR_js.DuplicateError(
4267
4199
  "feature flag",
4268
4200
  name,
4269
4201
  `Flag "${name}" is already registered. Each flag name must be unique.`
@@ -4341,7 +4273,7 @@ var FlagRegistry = class {
4341
4273
  getOrThrow(name) {
4342
4274
  const flag = this.get(name);
4343
4275
  if (!flag) {
4344
- throw new chunkRHNSWKMJ_js.NotFoundError(
4276
+ throw new chunk44EVNHSR_js.NotFoundError(
4345
4277
  "Feature flag",
4346
4278
  name,
4347
4279
  void 0,
@@ -4498,19 +4430,19 @@ var FlagService = class {
4498
4430
  */
4499
4431
  async setOverride(flagName, level, value, options = {}) {
4500
4432
  if (!this.repository) {
4501
- throw new chunkRHNSWKMJ_js.SchemaError(
4433
+ throw new chunk44EVNHSR_js.SchemaError(
4502
4434
  "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
4503
- chunkRHNSWKMJ_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4435
+ chunk44EVNHSR_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4504
4436
  );
4505
4437
  }
4506
4438
  const flag = this.registry.get(flagName);
4507
4439
  if (flag && !flag.allowedLevels.includes(level)) {
4508
4440
  const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
4509
- throw new chunkRHNSWKMJ_js.ValidationError(message, [{ path: ["level"], message }]);
4441
+ throw new chunk44EVNHSR_js.ValidationError(message, [{ path: ["level"], message }]);
4510
4442
  }
4511
4443
  if (flag?.system) {
4512
4444
  const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
4513
- throw new chunkRHNSWKMJ_js.ValidationError(message, [{ path: ["flagName"], message }]);
4445
+ throw new chunk44EVNHSR_js.ValidationError(message, [{ path: ["flagName"], message }]);
4514
4446
  }
4515
4447
  await this.repository.setOverride({
4516
4448
  flagName,
@@ -4530,9 +4462,9 @@ var FlagService = class {
4530
4462
  */
4531
4463
  async deleteOverride(flagName, level, targetId) {
4532
4464
  if (!this.repository) {
4533
- throw new chunkRHNSWKMJ_js.SchemaError(
4465
+ throw new chunk44EVNHSR_js.SchemaError(
4534
4466
  "Cannot delete override: no FeatureFlagsRepository configured.",
4535
- chunkRHNSWKMJ_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4467
+ chunk44EVNHSR_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4536
4468
  );
4537
4469
  }
4538
4470
  await this.repository.deleteOverride(flagName, level, targetId);
@@ -4669,7 +4601,7 @@ var NativeObjectRegistryClass = class {
4669
4601
  if (!object2.system) {
4670
4602
  const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4671
4603
  Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
4672
- throw new chunkRHNSWKMJ_js.ValidationError(message, []);
4604
+ throw new chunk44EVNHSR_js.ValidationError(message, []);
4673
4605
  }
4674
4606
  if (this.objects.has(object2.name)) {
4675
4607
  const existing = this.objects.get(object2.name);
@@ -4677,7 +4609,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
4677
4609
  - Existing: "${existing?.label}" (id: ${existing?.id})
4678
4610
  - New: "${object2.label}" (id: ${object2.id})
4679
4611
  Please use unique names for each native object.`;
4680
- throw new chunkRHNSWKMJ_js.DuplicateError("object", object2.name, message);
4612
+ throw new chunk44EVNHSR_js.DuplicateError("object", object2.name, message);
4681
4613
  }
4682
4614
  this.objects.set(object2.name, cloneObjectDefinition(object2));
4683
4615
  }
@@ -4709,7 +4641,7 @@ Please use unique names for each native object.`;
4709
4641
  if (!object2) {
4710
4642
  const message = `[NativeObjectRegistry] Native object "${name}" not found.
4711
4643
  Available objects: ${this.listNames().join(", ")}`;
4712
- throw new chunkRHNSWKMJ_js.NotFoundError("Native object", name, chunkRHNSWKMJ_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4644
+ throw new chunk44EVNHSR_js.NotFoundError("Native object", name, chunk44EVNHSR_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4713
4645
  }
4714
4646
  return object2;
4715
4647
  }
@@ -4814,7 +4746,7 @@ var ViewRegistry = class {
4814
4746
  const key = this.makeKey(view.object, view.name, view.type);
4815
4747
  if (this.views.has(key)) {
4816
4748
  const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
4817
- throw new chunkRHNSWKMJ_js.DuplicateError("view", key, message);
4749
+ throw new chunk44EVNHSR_js.DuplicateError("view", key, message);
4818
4750
  }
4819
4751
  const storedView = cloneViewDefinition(view);
4820
4752
  this.views.set(key, storedView);
@@ -4859,7 +4791,7 @@ var ViewRegistry = class {
4859
4791
  const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
4860
4792
  const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4861
4793
  Available views: ${availableNames}`;
4862
- throw new chunkRHNSWKMJ_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4794
+ throw new chunk44EVNHSR_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4863
4795
  }
4864
4796
  return view;
4865
4797
  }
@@ -5167,7 +5099,7 @@ var FormRegistry = class {
5167
5099
  const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
5168
5100
  for (const f of forms) {
5169
5101
  if (this.forms.has(f.name)) {
5170
- throw new chunkRHNSWKMJ_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5102
+ throw new chunk44EVNHSR_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5171
5103
  }
5172
5104
  this.forms.set(f.name, cloneFormDefinition(f));
5173
5105
  }
@@ -5302,6 +5234,7 @@ function compareLiveStreamCursors(left, right) {
5302
5234
  }
5303
5235
 
5304
5236
  // src/realtime/events.ts
5237
+ var BROWSER_PREVIEW_STATUSES = ["live", "paused", "ended", "disconnected"];
5305
5238
  var LIVE_EVENT_TYPE_REGISTRY = {
5306
5239
  "record.patch": true,
5307
5240
  "record.deleted": true,
@@ -5312,6 +5245,7 @@ var LIVE_EVENT_TYPE_REGISTRY = {
5312
5245
  "notification.recipient.patch": true,
5313
5246
  "notification.count.patch": true,
5314
5247
  "conversation.renamed": true,
5248
+ "browser.preview.updated": true,
5315
5249
  "channel.revoked": true
5316
5250
  };
5317
5251
  var LIVE_EVENT_TYPES = Object.keys(LIVE_EVENT_TYPE_REGISTRY);
@@ -5337,6 +5271,19 @@ var NOTIFICATION_RECIPIENT_PATCH_KEYS = [
5337
5271
  "dismissedAt",
5338
5272
  "updatedAt"
5339
5273
  ];
5274
+ var BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS = [
5275
+ "type",
5276
+ "preview"
5277
+ ];
5278
+ var BROWSER_PREVIEW_DESCRIPTOR_KEYS = [
5279
+ "previewId",
5280
+ "rootSessionId",
5281
+ "agentSessionId",
5282
+ "browserSession",
5283
+ "status",
5284
+ "sequence",
5285
+ "updatedAt"
5286
+ ];
5340
5287
  function isLiveEventType(value) {
5341
5288
  return typeof value === "string" && LIVE_EVENT_TYPES.includes(value);
5342
5289
  }
@@ -5369,6 +5316,8 @@ function isLiveEventPayloadForType(type, payload) {
5369
5316
  return isNotificationCountPatchPayload(payload);
5370
5317
  case "conversation.renamed":
5371
5318
  return isConversationRenamedPayload(payload);
5319
+ case "browser.preview.updated":
5320
+ return isBrowserPreviewUpdatedPayload(payload);
5372
5321
  case "channel.revoked":
5373
5322
  return isChannelRevokedPayload(payload);
5374
5323
  default:
@@ -5381,6 +5330,9 @@ function isRecord(value) {
5381
5330
  function isString(value) {
5382
5331
  return typeof value === "string";
5383
5332
  }
5333
+ function isNonEmptyString(value) {
5334
+ return isString(value) && value.length > 0;
5335
+ }
5384
5336
  function isNullableString(value) {
5385
5337
  return value === null || isString(value);
5386
5338
  }
@@ -5400,6 +5352,9 @@ function isNullableIsoDateString(value) {
5400
5352
  function hasString(value, key) {
5401
5353
  return isString(value[key]);
5402
5354
  }
5355
+ function hasNonEmptyString(value, key) {
5356
+ return isNonEmptyString(value[key]);
5357
+ }
5403
5358
  function hasVersion(value, key) {
5404
5359
  return isVersion(value[key]);
5405
5360
  }
@@ -5409,6 +5364,9 @@ function hasIsoDateString(value, key) {
5409
5364
  function hasOptional(value, key, predicate) {
5410
5365
  return !Object.hasOwn(value, key) || predicate(value[key]);
5411
5366
  }
5367
+ function hasOnlyKeys(value, keys) {
5368
+ return Object.keys(value).every((key) => keys.includes(key));
5369
+ }
5412
5370
  function isOneOf(value, values) {
5413
5371
  return typeof value === "string" && values.includes(value);
5414
5372
  }
@@ -5477,6 +5435,10 @@ function isNotificationCountPatchPayload(payload) {
5477
5435
  function isConversationRenamedPayload(payload) {
5478
5436
  return payload.type === "conversation.renamed" && hasString(payload, "sessionId") && hasString(payload, "title") && hasVersion(payload, "version") && hasString(payload, "updatedAt");
5479
5437
  }
5438
+ function isBrowserPreviewUpdatedPayload(payload) {
5439
+ const preview = payload.preview;
5440
+ return payload.type === "browser.preview.updated" && hasOnlyKeys(payload, BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS) && isRecord(preview) && hasOnlyKeys(preview, BROWSER_PREVIEW_DESCRIPTOR_KEYS) && hasNonEmptyString(preview, "previewId") && hasNonEmptyString(preview, "rootSessionId") && hasNonEmptyString(preview, "agentSessionId") && hasNonEmptyString(preview, "browserSession") && isOneOf(preview.status, BROWSER_PREVIEW_STATUSES) && hasVersion(preview, "sequence") && hasIsoDateString(preview, "updatedAt") && preview.previewId === `browser:${preview.agentSessionId}:${preview.browserSession}`;
5441
+ }
5480
5442
  function isChannelRevokedPayload(payload) {
5481
5443
  return payload.type === "channel.revoked" && hasString(payload, "channel") && isOneOf(payload.reason, CHANNEL_REVOKED_REASONS);
5482
5444
  }
@@ -5673,7 +5635,7 @@ function assertAcyclicComputedDependencies(nodes) {
5673
5635
  }
5674
5636
  function parseCompileFormula(expression) {
5675
5637
  try {
5676
- return chunkNSM2JPC3_js.parseComputedFormula(expression);
5638
+ return chunkL4U5QEQL_js.parseComputedFormula(expression);
5677
5639
  } catch (error) {
5678
5640
  if (error instanceof Error) {
5679
5641
  throw new ComputedFormulaCompileError(error.message);
@@ -5843,7 +5805,6 @@ function attributeToValueType(attribute) {
5843
5805
  case "text":
5844
5806
  case "richtext":
5845
5807
  case "phone":
5846
- case "file":
5847
5808
  case "user":
5848
5809
  case "location":
5849
5810
  case "relation":
@@ -6585,11 +6546,11 @@ function evaluateComputedAst(node, input) {
6585
6546
  return evaluateAst(node, input);
6586
6547
  }
6587
6548
  function evaluateComputedFormula(expression, input) {
6588
- return evaluateAst(chunkNSM2JPC3_js.parseComputedFormula(expression), input);
6549
+ return evaluateAst(chunkL4U5QEQL_js.parseComputedFormula(expression), input);
6589
6550
  }
6590
6551
  function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
6591
6552
  try {
6592
- const raw = evaluateAst(chunkNSM2JPC3_js.parseComputedFormula(expression), input);
6553
+ const raw = evaluateAst(chunkL4U5QEQL_js.parseComputedFormula(expression), input);
6593
6554
  const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
6594
6555
  return { value };
6595
6556
  } catch (error) {
@@ -6781,7 +6742,6 @@ var OPERATOR_SPECS = {
6781
6742
  "date",
6782
6743
  "multiselect",
6783
6744
  "location",
6784
- "file",
6785
6745
  "user",
6786
6746
  "relation",
6787
6747
  "formula",
@@ -6801,7 +6761,6 @@ var OPERATOR_SPECS = {
6801
6761
  "date",
6802
6762
  "multiselect",
6803
6763
  "location",
6804
- "file",
6805
6764
  "user",
6806
6765
  "relation",
6807
6766
  "formula",
@@ -7027,7 +6986,7 @@ function assertOperatorForType(operator, type, context) {
7027
6986
  if (!ops?.includes(operator)) {
7028
6987
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
7029
6988
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
7030
- throw new chunkRHNSWKMJ_js.ValidationError(summary, [
6989
+ throw new chunk44EVNHSR_js.ValidationError(summary, [
7031
6990
  {
7032
6991
  path: ["operator"],
7033
6992
  message: summary
@@ -7043,7 +7002,7 @@ function assertRelativeDateValue(rule) {
7043
7002
  const valid = typeof v === "object" && v !== null && typeof v.amount === "number" && Number.isFinite(v.amount) && v.amount > 0 && typeof v.unit === "string" && RELATIVE_DATE_UNITS.has(v.unit) && typeof v.direction === "string" && RELATIVE_DATE_DIRECTIONS.has(v.direction);
7044
7003
  if (!valid) {
7045
7004
  const m = `Operator "is_within" requires a relative-date value { amount: positive number, unit: days|weeks|months|years, direction: past|future }`;
7046
- throw new chunkRHNSWKMJ_js.ValidationError(m, [{ path: ["value"], message: m }]);
7005
+ throw new chunk44EVNHSR_js.ValidationError(m, [{ path: ["value"], message: m }]);
7047
7006
  }
7048
7007
  }
7049
7008
  function assertDynamicValueForAttribute(rule, attrType) {
@@ -7051,34 +7010,34 @@ function assertDynamicValueForAttribute(rule, attrType) {
7051
7010
  const v = rule.value;
7052
7011
  if (v.dynamic === "actor" && attrType !== "user") {
7053
7012
  const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
7054
- throw new chunkRHNSWKMJ_js.ValidationError(m, [{ path: ["value"], message: m }]);
7013
+ throw new chunk44EVNHSR_js.ValidationError(m, [{ path: ["value"], message: m }]);
7055
7014
  }
7056
7015
  if (v.dynamic === "date" && attrType !== "date") {
7057
7016
  const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
7058
- throw new chunkRHNSWKMJ_js.ValidationError(m, [{ path: ["value"], message: m }]);
7017
+ throw new chunk44EVNHSR_js.ValidationError(m, [{ path: ["value"], message: m }]);
7059
7018
  }
7060
7019
  }
7061
7020
  function validateQualifiedRule(rule, context) {
7062
7021
  const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
7063
7022
  const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
7064
7023
  if (!(rootAttr || systemOps)) {
7065
- throw new chunkRHNSWKMJ_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
7024
+ throw new chunk44EVNHSR_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
7066
7025
  { path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
7067
7026
  ]);
7068
7027
  }
7069
7028
  if (rule.quantifier !== void 0 && !rule.property) {
7070
7029
  const m = `quantifier is only valid on qualified edge rules (set "property")`;
7071
- throw new chunkRHNSWKMJ_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
7030
+ throw new chunk44EVNHSR_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
7072
7031
  }
7073
7032
  if (!rootAttr) {
7074
7033
  if (rule.property) {
7075
- throw new chunkRHNSWKMJ_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
7034
+ throw new chunk44EVNHSR_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
7076
7035
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
7077
7036
  ]);
7078
7037
  }
7079
7038
  if (!systemOps.includes(rule.operator)) {
7080
7039
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
7081
- throw new chunkRHNSWKMJ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7040
+ throw new chunk44EVNHSR_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7082
7041
  }
7083
7042
  assertRelativeDateValue(rule);
7084
7043
  return;
@@ -7089,25 +7048,25 @@ function validateQualifiedRule(rule, context) {
7089
7048
  if (!ops.includes(rule.operator)) {
7090
7049
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
7091
7050
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
7092
- throw new chunkRHNSWKMJ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7051
+ throw new chunk44EVNHSR_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7093
7052
  }
7094
7053
  assertRelativeDateValue(rule);
7095
7054
  return;
7096
7055
  }
7097
7056
  if (!REFERENCE_TYPES.has(rootAttr.type)) {
7098
- throw new chunkRHNSWKMJ_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
7057
+ throw new chunk44EVNHSR_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
7099
7058
  { path: ["property"], message: `Attribute "${rule.attribute}" is not a reference type` }
7100
7059
  ]);
7101
7060
  }
7102
7061
  const propSchema = rootAttr.properties;
7103
7062
  if (!propSchema) {
7104
- throw new chunkRHNSWKMJ_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
7063
+ throw new chunk44EVNHSR_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
7105
7064
  { path: ["property"], message: `"${rule.attribute}" has no qualifyWith` }
7106
7065
  ]);
7107
7066
  }
7108
7067
  const propDef = propSchema.definitions.find((p) => p.name === rule.property);
7109
7068
  if (!propDef) {
7110
- throw new chunkRHNSWKMJ_js.ValidationError(
7069
+ throw new chunk44EVNHSR_js.ValidationError(
7111
7070
  `Property "${rule.property}" not defined on "${rule.attribute}".qualifyWith()`,
7112
7071
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
7113
7072
  );
@@ -7145,187 +7104,187 @@ Object.defineProperty(exports, "indexBy", {
7145
7104
  });
7146
7105
  Object.defineProperty(exports, "ComputedFormulaParseError", {
7147
7106
  enumerable: true,
7148
- get: function () { return chunkNSM2JPC3_js.ComputedFormulaParseError; }
7107
+ get: function () { return chunkL4U5QEQL_js.ComputedFormulaParseError; }
7149
7108
  });
7150
7109
  Object.defineProperty(exports, "parseAttributeConfig", {
7151
7110
  enumerable: true,
7152
- get: function () { return chunkNSM2JPC3_js.parseAttributeConfig; }
7111
+ get: function () { return chunkL4U5QEQL_js.parseAttributeConfig; }
7153
7112
  });
7154
7113
  Object.defineProperty(exports, "parseComputedFormula", {
7155
7114
  enumerable: true,
7156
- get: function () { return chunkNSM2JPC3_js.parseComputedFormula; }
7115
+ get: function () { return chunkL4U5QEQL_js.parseComputedFormula; }
7157
7116
  });
7158
7117
  Object.defineProperty(exports, "AccessDeniedError", {
7159
7118
  enumerable: true,
7160
- get: function () { return chunkRHNSWKMJ_js.AccessDeniedError; }
7119
+ get: function () { return chunk44EVNHSR_js.AccessDeniedError; }
7161
7120
  });
7162
7121
  Object.defineProperty(exports, "AttributeInUseError", {
7163
7122
  enumerable: true,
7164
- get: function () { return chunkRHNSWKMJ_js.AttributeInUseError; }
7123
+ get: function () { return chunk44EVNHSR_js.AttributeInUseError; }
7165
7124
  });
7166
7125
  Object.defineProperty(exports, "AttributeNotFoundError", {
7167
7126
  enumerable: true,
7168
- get: function () { return chunkRHNSWKMJ_js.AttributeNotFoundError; }
7127
+ get: function () { return chunk44EVNHSR_js.AttributeNotFoundError; }
7169
7128
  });
7170
7129
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
7171
7130
  enumerable: true,
7172
- get: function () { return chunkRHNSWKMJ_js.ChangeTypeNotSupportedError; }
7131
+ get: function () { return chunk44EVNHSR_js.ChangeTypeNotSupportedError; }
7173
7132
  });
7174
7133
  Object.defineProperty(exports, "ConcurrentModificationError", {
7175
7134
  enumerable: true,
7176
- get: function () { return chunkRHNSWKMJ_js.ConcurrentModificationError; }
7135
+ get: function () { return chunk44EVNHSR_js.ConcurrentModificationError; }
7177
7136
  });
7178
7137
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
7179
7138
  enumerable: true,
7180
- get: function () { return chunkRHNSWKMJ_js.DestructiveSyncNotAllowedError; }
7139
+ get: function () { return chunk44EVNHSR_js.DestructiveSyncNotAllowedError; }
7181
7140
  });
7182
7141
  Object.defineProperty(exports, "DuplicateError", {
7183
7142
  enumerable: true,
7184
- get: function () { return chunkRHNSWKMJ_js.DuplicateError; }
7143
+ get: function () { return chunk44EVNHSR_js.DuplicateError; }
7185
7144
  });
7186
7145
  Object.defineProperty(exports, "ForbiddenError", {
7187
7146
  enumerable: true,
7188
- get: function () { return chunkRHNSWKMJ_js.ForbiddenError; }
7147
+ get: function () { return chunk44EVNHSR_js.ForbiddenError; }
7189
7148
  });
7190
7149
  Object.defineProperty(exports, "MemoryNotFoundError", {
7191
7150
  enumerable: true,
7192
- get: function () { return chunkRHNSWKMJ_js.MemoryNotFoundError; }
7151
+ get: function () { return chunk44EVNHSR_js.MemoryNotFoundError; }
7193
7152
  });
7194
7153
  Object.defineProperty(exports, "MigrationTimeoutError", {
7195
7154
  enumerable: true,
7196
- get: function () { return chunkRHNSWKMJ_js.MigrationTimeoutError; }
7155
+ get: function () { return chunk44EVNHSR_js.MigrationTimeoutError; }
7197
7156
  });
7198
7157
  Object.defineProperty(exports, "NotFoundError", {
7199
7158
  enumerable: true,
7200
- get: function () { return chunkRHNSWKMJ_js.NotFoundError; }
7159
+ get: function () { return chunk44EVNHSR_js.NotFoundError; }
7201
7160
  });
7202
7161
  Object.defineProperty(exports, "NotImplementedError", {
7203
7162
  enumerable: true,
7204
- get: function () { return chunkRHNSWKMJ_js.NotImplementedError; }
7163
+ get: function () { return chunk44EVNHSR_js.NotImplementedError; }
7205
7164
  });
7206
7165
  Object.defineProperty(exports, "ObjectNotFoundError", {
7207
7166
  enumerable: true,
7208
- get: function () { return chunkRHNSWKMJ_js.ObjectNotFoundError; }
7167
+ get: function () { return chunk44EVNHSR_js.ObjectNotFoundError; }
7209
7168
  });
7210
7169
  Object.defineProperty(exports, "ObjectReferencedError", {
7211
7170
  enumerable: true,
7212
- get: function () { return chunkRHNSWKMJ_js.ObjectReferencedError; }
7171
+ get: function () { return chunk44EVNHSR_js.ObjectReferencedError; }
7213
7172
  });
7214
7173
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
7215
7174
  enumerable: true,
7216
- get: function () { return chunkRHNSWKMJ_js.OrphanSystemAttributeError; }
7175
+ get: function () { return chunk44EVNHSR_js.OrphanSystemAttributeError; }
7217
7176
  });
7218
7177
  Object.defineProperty(exports, "ProtectedResourceError", {
7219
7178
  enumerable: true,
7220
- get: function () { return chunkRHNSWKMJ_js.ProtectedResourceError; }
7179
+ get: function () { return chunk44EVNHSR_js.ProtectedResourceError; }
7221
7180
  });
7222
7181
  Object.defineProperty(exports, "ProtectedRoleError", {
7223
7182
  enumerable: true,
7224
- get: function () { return chunkRHNSWKMJ_js.ProtectedRoleError; }
7183
+ get: function () { return chunk44EVNHSR_js.ProtectedRoleError; }
7225
7184
  });
7226
7185
  Object.defineProperty(exports, "RecordNotFoundError", {
7227
7186
  enumerable: true,
7228
- get: function () { return chunkRHNSWKMJ_js.RecordNotFoundError; }
7187
+ get: function () { return chunk44EVNHSR_js.RecordNotFoundError; }
7229
7188
  });
7230
7189
  Object.defineProperty(exports, "RecordReferencedError", {
7231
7190
  enumerable: true,
7232
- get: function () { return chunkRHNSWKMJ_js.RecordReferencedError; }
7191
+ get: function () { return chunk44EVNHSR_js.RecordReferencedError; }
7233
7192
  });
7234
7193
  Object.defineProperty(exports, "RepositoryError", {
7235
7194
  enumerable: true,
7236
- get: function () { return chunkRHNSWKMJ_js.RepositoryError; }
7195
+ get: function () { return chunk44EVNHSR_js.RepositoryError; }
7237
7196
  });
7238
7197
  Object.defineProperty(exports, "RoleNotFoundError", {
7239
7198
  enumerable: true,
7240
- get: function () { return chunkRHNSWKMJ_js.RoleNotFoundError; }
7199
+ get: function () { return chunk44EVNHSR_js.RoleNotFoundError; }
7241
7200
  });
7242
7201
  Object.defineProperty(exports, "SchemaError", {
7243
7202
  enumerable: true,
7244
- get: function () { return chunkRHNSWKMJ_js.SchemaError; }
7203
+ get: function () { return chunk44EVNHSR_js.SchemaError; }
7245
7204
  });
7246
7205
  Object.defineProperty(exports, "SchemaErrorCode", {
7247
7206
  enumerable: true,
7248
- get: function () { return chunkRHNSWKMJ_js.SchemaErrorCode; }
7207
+ get: function () { return chunk44EVNHSR_js.SchemaErrorCode; }
7249
7208
  });
7250
7209
  Object.defineProperty(exports, "SearchBackendError", {
7251
7210
  enumerable: true,
7252
- get: function () { return chunkRHNSWKMJ_js.SearchBackendError; }
7211
+ get: function () { return chunk44EVNHSR_js.SearchBackendError; }
7253
7212
  });
7254
7213
  Object.defineProperty(exports, "StorageError", {
7255
7214
  enumerable: true,
7256
- get: function () { return chunkRHNSWKMJ_js.StorageError; }
7215
+ get: function () { return chunk44EVNHSR_js.StorageError; }
7257
7216
  });
7258
7217
  Object.defineProperty(exports, "SyncCascadeError", {
7259
7218
  enumerable: true,
7260
- get: function () { return chunkRHNSWKMJ_js.SyncCascadeError; }
7219
+ get: function () { return chunk44EVNHSR_js.SyncCascadeError; }
7261
7220
  });
7262
7221
  Object.defineProperty(exports, "SyncConflictError", {
7263
7222
  enumerable: true,
7264
- get: function () { return chunkRHNSWKMJ_js.SyncConflictError; }
7223
+ get: function () { return chunk44EVNHSR_js.SyncConflictError; }
7265
7224
  });
7266
7225
  Object.defineProperty(exports, "SyncError", {
7267
7226
  enumerable: true,
7268
- get: function () { return chunkRHNSWKMJ_js.SyncError; }
7227
+ get: function () { return chunk44EVNHSR_js.SyncError; }
7269
7228
  });
7270
7229
  Object.defineProperty(exports, "SystemEntityImmutableError", {
7271
7230
  enumerable: true,
7272
- get: function () { return chunkRHNSWKMJ_js.SystemEntityImmutableError; }
7231
+ get: function () { return chunk44EVNHSR_js.SystemEntityImmutableError; }
7273
7232
  });
7274
7233
  Object.defineProperty(exports, "ValidationError", {
7275
7234
  enumerable: true,
7276
- get: function () { return chunkRHNSWKMJ_js.ValidationError; }
7235
+ get: function () { return chunk44EVNHSR_js.ValidationError; }
7277
7236
  });
7278
7237
  Object.defineProperty(exports, "createFormAttributeValidator", {
7279
7238
  enumerable: true,
7280
- get: function () { return chunkRHNSWKMJ_js.createFormAttributeValidator; }
7239
+ get: function () { return chunk44EVNHSR_js.createFormAttributeValidator; }
7281
7240
  });
7282
7241
  Object.defineProperty(exports, "isAttributeInUseError", {
7283
7242
  enumerable: true,
7284
- get: function () { return chunkRHNSWKMJ_js.isAttributeInUseError; }
7243
+ get: function () { return chunk44EVNHSR_js.isAttributeInUseError; }
7285
7244
  });
7286
7245
  Object.defineProperty(exports, "isNotFoundError", {
7287
7246
  enumerable: true,
7288
- get: function () { return chunkRHNSWKMJ_js.isNotFoundError; }
7247
+ get: function () { return chunk44EVNHSR_js.isNotFoundError; }
7289
7248
  });
7290
7249
  Object.defineProperty(exports, "isObjectReferencedError", {
7291
7250
  enumerable: true,
7292
- get: function () { return chunkRHNSWKMJ_js.isObjectReferencedError; }
7251
+ get: function () { return chunk44EVNHSR_js.isObjectReferencedError; }
7293
7252
  });
7294
7253
  Object.defineProperty(exports, "isProtectedResourceError", {
7295
7254
  enumerable: true,
7296
- get: function () { return chunkRHNSWKMJ_js.isProtectedResourceError; }
7255
+ get: function () { return chunk44EVNHSR_js.isProtectedResourceError; }
7297
7256
  });
7298
7257
  Object.defineProperty(exports, "isRecordReferencedError", {
7299
7258
  enumerable: true,
7300
- get: function () { return chunkRHNSWKMJ_js.isRecordReferencedError; }
7259
+ get: function () { return chunk44EVNHSR_js.isRecordReferencedError; }
7301
7260
  });
7302
7261
  Object.defineProperty(exports, "isSchemaError", {
7303
7262
  enumerable: true,
7304
- get: function () { return chunkRHNSWKMJ_js.isSchemaError; }
7263
+ get: function () { return chunk44EVNHSR_js.isSchemaError; }
7305
7264
  });
7306
7265
  Object.defineProperty(exports, "isValidationError", {
7307
7266
  enumerable: true,
7308
- get: function () { return chunkRHNSWKMJ_js.isValidationError; }
7267
+ get: function () { return chunk44EVNHSR_js.isValidationError; }
7309
7268
  });
7310
7269
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
7311
7270
  enumerable: true,
7312
- get: function () { return chunkRHNSWKMJ_js.rejectUnknownAttributesOrThrow; }
7271
+ get: function () { return chunk44EVNHSR_js.rejectUnknownAttributesOrThrow; }
7313
7272
  });
7314
7273
  Object.defineProperty(exports, "validateDraft", {
7315
7274
  enumerable: true,
7316
- get: function () { return chunkRHNSWKMJ_js.validateDraft; }
7275
+ get: function () { return chunk44EVNHSR_js.validateDraft; }
7317
7276
  });
7318
7277
  Object.defineProperty(exports, "validateDraftOrThrow", {
7319
7278
  enumerable: true,
7320
- get: function () { return chunkRHNSWKMJ_js.validateDraftOrThrow; }
7279
+ get: function () { return chunk44EVNHSR_js.validateDraftOrThrow; }
7321
7280
  });
7322
7281
  Object.defineProperty(exports, "validateObject", {
7323
7282
  enumerable: true,
7324
- get: function () { return chunkRHNSWKMJ_js.validateObject; }
7283
+ get: function () { return chunk44EVNHSR_js.validateObject; }
7325
7284
  });
7326
7285
  Object.defineProperty(exports, "validateObjectOrThrow", {
7327
7286
  enumerable: true,
7328
- get: function () { return chunkRHNSWKMJ_js.validateObjectOrThrow; }
7287
+ get: function () { return chunk44EVNHSR_js.validateObjectOrThrow; }
7329
7288
  });
7330
7289
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
7331
7290
  enumerable: true,
@@ -7344,6 +7303,7 @@ exports.AUDIT_RESOURCE_TYPES = AUDIT_RESOURCE_TYPES;
7344
7303
  exports.AUTOFILL_ELIGIBLE_TYPES = AUTOFILL_ELIGIBLE_TYPES;
7345
7304
  exports.ActivityTabConfig = ActivityTabConfig;
7346
7305
  exports.BEHAVIOR_PROPERTIES = BEHAVIOR_PROPERTIES;
7306
+ exports.BROWSER_PREVIEW_STATUSES = BROWSER_PREVIEW_STATUSES;
7347
7307
  exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
7348
7308
  exports.COMPUTED_FUNCTION_METADATA = COMPUTED_FUNCTION_METADATA;
7349
7309
  exports.COMPUTED_FUNCTION_NAMES = COMPUTED_FUNCTION_NAMES;
@@ -7351,14 +7311,12 @@ exports.CONNECTOR_CALLBACK_PARAM = CONNECTOR_CALLBACK_PARAM;
7351
7311
  exports.ComputedFormulaCompileError = ComputedFormulaCompileError;
7352
7312
  exports.CustomTabConfig = CustomTabConfig;
7353
7313
  exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
7354
- exports.DEFAULT_DOCUMENT_SLOT = DEFAULT_DOCUMENT_SLOT;
7355
7314
  exports.DEFAULT_ROLES = DEFAULT_ROLES;
7356
7315
  exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
7357
7316
  exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
7358
7317
  exports.DEFAULT_ROLE_PERMISSIONS = DEFAULT_ROLE_PERMISSIONS;
7359
7318
  exports.DOCUMENT_SYSTEM_ATTRIBUTES = DOCUMENT_SYSTEM_ATTRIBUTES;
7360
7319
  exports.DetailViewBuilder = DetailViewBuilder;
7361
- exports.DocumentSlotValidationError = DocumentSlotValidationError;
7362
7320
  exports.DocumentsTabConfig = DocumentsTabConfig;
7363
7321
  exports.EMPTY_VALUE_PLACEHOLDER = EMPTY_VALUE_PLACEHOLDER;
7364
7322
  exports.EmailsTabConfig = EmailsTabConfig;
@@ -7443,7 +7401,6 @@ exports.evaluateComputedFormulaWithResult = evaluateComputedFormulaWithResult;
7443
7401
  exports.evaluateFilterState = evaluateFilterState;
7444
7402
  exports.extractAttributeNames = extractAttributeNames;
7445
7403
  exports.extractValueRefs = extractValueRefs;
7446
- exports.file = file;
7447
7404
  exports.flagRegistry = flagRegistry;
7448
7405
  exports.form = form;
7449
7406
  exports.formRegistry = formRegistry;
@@ -7512,7 +7469,6 @@ exports.liveChannelKey = liveChannelKey;
7512
7469
  exports.location = location;
7513
7470
  exports.matchesMime = matchesMime;
7514
7471
  exports.multiselect = multiselect;
7515
- exports.normaliseDocumentSlots = normaliseDocumentSlots;
7516
7472
  exports.normalizeDateValue = normalizeDateValue;
7517
7473
  exports.normalizeForEdgeRpc = normalizeForEdgeRpc;
7518
7474
  exports.now = now;
@@ -7543,5 +7499,4 @@ exports.today = today;
7543
7499
  exports.user = user;
7544
7500
  exports.validateAttributeName = validateAttributeName;
7545
7501
  exports.validateQualifiedRule = validateQualifiedRule;
7546
- exports.validateSlotAgainstConfig = validateSlotAgainstConfig;
7547
7502
  exports.viewRegistry = viewRegistry;