@stndrds/schema 1.0.0-alpha.233 → 1.0.0-alpha.235

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.
package/dist/index.js CHANGED
@@ -3,11 +3,11 @@
3
3
  var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
4
4
  require('./chunk-PGERPYDR.js');
5
5
  var chunkNSM2JPC3_js = require('./chunk-NSM2JPC3.js');
6
- var chunk6SPNZSXS_js = require('./chunk-6SPNZSXS.js');
6
+ var chunkPZJN5IJW_js = require('./chunk-PZJN5IJW.js');
7
7
  require('./chunk-5WATIVCA.js');
8
8
  require('./chunk-SI34M4IC.js');
9
9
  require('./chunk-YIP5FJ5H.js');
10
- require('./chunk-SGSGREPG.js');
10
+ require('./chunk-QAF3HNKQ.js');
11
11
  require('./chunk-EW5XR2X3.js');
12
12
  require('./chunk-QWKLQRBX.js');
13
13
  require('./chunk-KNGWHQLR.js');
@@ -1418,7 +1418,7 @@ var BaseAttributeBuilder = class {
1418
1418
  * @see https://standardschema.dev/
1419
1419
  */
1420
1420
  get "~standard"() {
1421
- const zodSchema = chunk6SPNZSXS_js.createAttributeValidator(this.build());
1421
+ const zodSchema = chunkPZJN5IJW_js.createAttributeValidator(this.build());
1422
1422
  return createStandardSchemaProps(zodSchema);
1423
1423
  }
1424
1424
  constructor(type, name, label) {
@@ -2205,9 +2205,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
2205
2205
  if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
2206
2206
  const relation2 = this.attr.relationAttribute ?? "relation";
2207
2207
  const target = this.attr.targetAttribute ?? "field";
2208
- throw new chunk6SPNZSXS_js.SchemaError(
2208
+ throw new chunkPZJN5IJW_js.SchemaError(
2209
2209
  `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}").`,
2210
- chunk6SPNZSXS_js.SchemaErrorCode.VALIDATION_FAILED
2210
+ chunkPZJN5IJW_js.SchemaErrorCode.VALIDATION_FAILED
2211
2211
  );
2212
2212
  }
2213
2213
  return super.build();
@@ -2710,7 +2710,7 @@ var ObjectBuilder = class {
2710
2710
  * @see https://standardschema.dev/
2711
2711
  */
2712
2712
  get "~standard"() {
2713
- const zodSchema = chunk6SPNZSXS_js.createObjectValidator(this.build());
2713
+ const zodSchema = chunkPZJN5IJW_js.createObjectValidator(this.build());
2714
2714
  return createStandardSchemaProps(zodSchema);
2715
2715
  }
2716
2716
  /**
@@ -2924,26 +2924,26 @@ var ObjectBuilder = class {
2924
2924
  throw new Error("[ObjectBuilder] Missing required field: label");
2925
2925
  }
2926
2926
  if (!this._labelExpression) {
2927
- throw new chunk6SPNZSXS_js.SchemaError(
2927
+ throw new chunkPZJN5IJW_js.SchemaError(
2928
2928
  `Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
2929
- chunk6SPNZSXS_js.SchemaErrorCode.VALIDATION_FAILED
2929
+ chunkPZJN5IJW_js.SchemaErrorCode.VALIDATION_FAILED
2930
2930
  );
2931
2931
  }
2932
2932
  const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
2933
2933
  if (!labelResult.success) {
2934
2934
  const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
2935
- throw new chunk6SPNZSXS_js.SchemaError(
2935
+ throw new chunkPZJN5IJW_js.SchemaError(
2936
2936
  `Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
2937
- chunk6SPNZSXS_js.SchemaErrorCode.VALIDATION_FAILED
2937
+ chunkPZJN5IJW_js.SchemaErrorCode.VALIDATION_FAILED
2938
2938
  );
2939
2939
  }
2940
2940
  if (this._embeddingExpression !== void 0) {
2941
2941
  const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
2942
2942
  if (!embeddingResult.success) {
2943
2943
  const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
2944
- throw new chunk6SPNZSXS_js.SchemaError(
2944
+ throw new chunkPZJN5IJW_js.SchemaError(
2945
2945
  `Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
2946
- chunk6SPNZSXS_js.SchemaErrorCode.VALIDATION_FAILED
2946
+ chunkPZJN5IJW_js.SchemaErrorCode.VALIDATION_FAILED
2947
2947
  );
2948
2948
  }
2949
2949
  }
@@ -2984,7 +2984,7 @@ var ObjectBuilder = class {
2984
2984
  objectNameSchema.parse(name);
2985
2985
  } catch (error) {
2986
2986
  if (error instanceof z3__default.default.ZodError) {
2987
- throw new chunk6SPNZSXS_js.SchemaError(error.issues[0].message, chunk6SPNZSXS_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2987
+ throw new chunkPZJN5IJW_js.SchemaError(error.issues[0].message, chunkPZJN5IJW_js.SchemaErrorCode.INVALID_OBJECT_NAME);
2988
2988
  }
2989
2989
  throw error;
2990
2990
  }
@@ -2995,7 +2995,7 @@ function object(config) {
2995
2995
  }
2996
2996
  function validatePresetStructure(presetId, nodes, depth) {
2997
2997
  const fail = (message, detail) => {
2998
- throw new chunk6SPNZSXS_js.ValidationError(message, [
2998
+ throw new chunkPZJN5IJW_js.ValidationError(message, [
2999
2999
  { path: ["documentLayout", "presets", presetId], message: detail }
3000
3000
  ]);
3001
3001
  };
@@ -4290,6 +4290,19 @@ function jsonFlag(name, defaultValue) {
4290
4290
  }
4291
4291
 
4292
4292
  // src/feature-flags/flag-registry.ts
4293
+ function duplicateFlagError(name) {
4294
+ return new chunkPZJN5IJW_js.DuplicateError(
4295
+ "feature flag",
4296
+ name,
4297
+ `Flag "${name}" is already registered. Each flag name must be unique.`
4298
+ );
4299
+ }
4300
+ function cloneFlagDefinition(flag) {
4301
+ return {
4302
+ ...flag,
4303
+ allowedLevels: [...flag.allowedLevels]
4304
+ };
4305
+ }
4293
4306
  var FlagRegistry = class {
4294
4307
  constructor() {
4295
4308
  this.flags = /* @__PURE__ */ new Map();
@@ -4298,7 +4311,7 @@ var FlagRegistry = class {
4298
4311
  * Register a feature flag definition.
4299
4312
  *
4300
4313
  * @param flag - The flag definition to register
4301
- * @throws {Error} If a flag with the same name is already registered
4314
+ * @throws DuplicateError If a flag with the same name is already registered
4302
4315
  *
4303
4316
  * @example
4304
4317
  * ```typescript
@@ -4310,33 +4323,25 @@ var FlagRegistry = class {
4310
4323
  */
4311
4324
  register(flag) {
4312
4325
  if (this.flags.has(flag.name)) {
4313
- throw new Error(`Flag "${flag.name}" is already registered. Each flag name must be unique.`);
4326
+ throw duplicateFlagError(flag.name);
4314
4327
  }
4315
- const cloned = {
4316
- ...flag,
4317
- allowedLevels: [...flag.allowedLevels]
4318
- };
4319
- this.flags.set(flag.name, cloned);
4328
+ this.flags.set(flag.name, cloneFlagDefinition(flag));
4320
4329
  }
4321
4330
  /**
4322
4331
  * Register multiple flags at once.
4323
4332
  * This operation is atomic - either all flags are registered or none are.
4324
4333
  *
4325
4334
  * @param flags - Array of flag definitions to register
4326
- * @throws {Error} If any flag name conflicts with existing or duplicate within batch
4335
+ * @throws DuplicateError If any flag name conflicts with existing or duplicate within batch
4327
4336
  */
4328
4337
  registerAll(flags) {
4329
4338
  const seenNames = /* @__PURE__ */ new Set();
4330
4339
  for (const flag of flags) {
4331
4340
  if (this.flags.has(flag.name)) {
4332
- throw new Error(
4333
- `Flag "${flag.name}" is already registered. Each flag name must be unique.`
4334
- );
4341
+ throw duplicateFlagError(flag.name);
4335
4342
  }
4336
4343
  if (seenNames.has(flag.name)) {
4337
- throw new Error(
4338
- `Flag "${flag.name}" is already registered. Each flag name must be unique.`
4339
- );
4344
+ throw duplicateFlagError(flag.name);
4340
4345
  }
4341
4346
  seenNames.add(flag.name);
4342
4347
  }
@@ -4351,19 +4356,23 @@ var FlagRegistry = class {
4351
4356
  * @returns The flag definition or undefined if not found
4352
4357
  */
4353
4358
  get(name) {
4354
- return this.flags.get(name);
4359
+ const flag = this.flags.get(name);
4360
+ return flag ? cloneFlagDefinition(flag) : void 0;
4355
4361
  }
4356
4362
  /**
4357
4363
  * Get a flag definition by name, throwing if not found.
4358
4364
  *
4359
4365
  * @param name - The flag name
4360
4366
  * @returns The flag definition
4361
- * @throws {Error} If the flag is not registered
4367
+ * @throws NotFoundError If the flag is not registered
4362
4368
  */
4363
4369
  getOrThrow(name) {
4364
4370
  const flag = this.get(name);
4365
4371
  if (!flag) {
4366
- throw new Error(
4372
+ throw new chunkPZJN5IJW_js.NotFoundError(
4373
+ "Feature flag",
4374
+ name,
4375
+ void 0,
4367
4376
  `Flag "${name}" is not registered. Available flags: ${this.listNames().join(", ")}`
4368
4377
  );
4369
4378
  }
@@ -4384,7 +4393,7 @@ var FlagRegistry = class {
4384
4393
  * @returns Array of all flag definitions
4385
4394
  */
4386
4395
  list() {
4387
- return Array.from(this.flags.values());
4396
+ return Array.from(this.flags.values(), cloneFlagDefinition);
4388
4397
  }
4389
4398
  /**
4390
4399
  * List all registered flag names.
@@ -4422,6 +4431,29 @@ function createFlagRegistry() {
4422
4431
  }
4423
4432
 
4424
4433
  // src/feature-flags/flag-service.ts
4434
+ function emptyOverrides() {
4435
+ return {
4436
+ global: /* @__PURE__ */ new Map(),
4437
+ tenant: /* @__PURE__ */ new Map(),
4438
+ user: /* @__PURE__ */ new Map()
4439
+ };
4440
+ }
4441
+ function isActiveOverride(override, now2) {
4442
+ return override.expiresAt === void 0 || override.expiresAt.getTime() > now2;
4443
+ }
4444
+ function indexOverrides(overrides, now2) {
4445
+ const byFlagName = /* @__PURE__ */ new Map();
4446
+ for (const override of overrides) {
4447
+ if (!isActiveOverride(override, now2)) {
4448
+ continue;
4449
+ }
4450
+ const flagName = override.flagName;
4451
+ if (!byFlagName.has(flagName)) {
4452
+ byFlagName.set(flagName, override);
4453
+ }
4454
+ }
4455
+ return byFlagName;
4456
+ }
4425
4457
  var FlagService = class {
4426
4458
  constructor(options) {
4427
4459
  this.repository = options.repository;
@@ -4444,7 +4476,7 @@ var FlagService = class {
4444
4476
  for (const name of this.staticDefaults.keys()) {
4445
4477
  flagNames.add(name);
4446
4478
  }
4447
- const overrides = this.repository && flagNames.size > 0 ? await this.getAllOverrides(context, [...flagNames]) : { global: [], tenant: [], user: [] };
4479
+ const overrides = this.repository && flagNames.size > 0 ? await this.getAllOverrides(context, [...flagNames]) : emptyOverrides();
4448
4480
  for (const name of flagNames) {
4449
4481
  const value = this.resolveValue(name, overrides, context);
4450
4482
  resolved.set(name, value);
@@ -4459,7 +4491,7 @@ var FlagService = class {
4459
4491
  * @returns Resolved flag with source information
4460
4492
  */
4461
4493
  async resolve(flagName, context = {}) {
4462
- const overrides = this.repository ? await this.getAllOverrides(context, [flagName]) : { global: [], tenant: [], user: [] };
4494
+ const overrides = this.repository ? await this.getAllOverrides(context, [flagName]) : emptyOverrides();
4463
4495
  return this.resolveWithSource(flagName, overrides, context);
4464
4496
  }
4465
4497
  /**
@@ -4494,18 +4526,19 @@ var FlagService = class {
4494
4526
  */
4495
4527
  async setOverride(flagName, level, value, options = {}) {
4496
4528
  if (!this.repository) {
4497
- throw new Error(
4498
- "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides."
4529
+ throw new chunkPZJN5IJW_js.SchemaError(
4530
+ "Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
4531
+ chunkPZJN5IJW_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4499
4532
  );
4500
4533
  }
4501
4534
  const flag = this.registry.get(flagName);
4502
4535
  if (flag && !flag.allowedLevels.includes(level)) {
4503
- throw new Error(
4504
- `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`
4505
- );
4536
+ const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
4537
+ throw new chunkPZJN5IJW_js.ValidationError(message, [{ path: ["level"], message }]);
4506
4538
  }
4507
4539
  if (flag?.system) {
4508
- throw new Error(`Flag "${flagName}" is a system flag and cannot be overridden via API.`);
4540
+ const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
4541
+ throw new chunkPZJN5IJW_js.ValidationError(message, [{ path: ["flagName"], message }]);
4509
4542
  }
4510
4543
  await this.repository.setOverride({
4511
4544
  flagName,
@@ -4525,7 +4558,10 @@ var FlagService = class {
4525
4558
  */
4526
4559
  async deleteOverride(flagName, level, targetId) {
4527
4560
  if (!this.repository) {
4528
- throw new Error("Cannot delete override: no FeatureFlagsRepository configured.");
4561
+ throw new chunkPZJN5IJW_js.SchemaError(
4562
+ "Cannot delete override: no FeatureFlagsRepository configured.",
4563
+ chunkPZJN5IJW_js.SchemaErrorCode.CONFIGURATION_REQUIRED
4564
+ );
4529
4565
  }
4530
4566
  await this.repository.deleteOverride(flagName, level, targetId);
4531
4567
  }
@@ -4537,17 +4573,18 @@ var FlagService = class {
4537
4573
  */
4538
4574
  async getAllOverrides(context, flagNames) {
4539
4575
  if (!this.repository) {
4540
- return { global: [], tenant: [], user: [] };
4576
+ return emptyOverrides();
4541
4577
  }
4542
4578
  const [globalOverrides, tenantOverrides, userOverrides] = await Promise.all([
4543
4579
  this.repository.getOverrides({ level: "global", flagNames }),
4544
4580
  context.tenantId ? this.repository.getOverrides({ level: "tenant", targetId: context.tenantId, flagNames }) : Promise.resolve([]),
4545
4581
  context.userId ? this.repository.getOverrides({ level: "user", targetId: context.userId, flagNames }) : Promise.resolve([])
4546
4582
  ]);
4583
+ const now2 = Date.now();
4547
4584
  return {
4548
- global: globalOverrides,
4549
- tenant: tenantOverrides,
4550
- user: userOverrides
4585
+ global: indexOverrides(globalOverrides, now2),
4586
+ tenant: indexOverrides(tenantOverrides, now2),
4587
+ user: indexOverrides(userOverrides, now2)
4551
4588
  };
4552
4589
  }
4553
4590
  /**
@@ -4564,7 +4601,7 @@ var FlagService = class {
4564
4601
  const flag = this.registry.get(flagName);
4565
4602
  const allowedLevels = flag?.allowedLevels ?? ["global", "tenant", "user"];
4566
4603
  if (context.userId && allowedLevels.includes("user")) {
4567
- const userOverride = overrides.user.find((o) => o.flagName === flagName);
4604
+ const userOverride = overrides.user.get(flagName);
4568
4605
  if (userOverride) {
4569
4606
  return {
4570
4607
  name: flagName,
@@ -4575,7 +4612,7 @@ var FlagService = class {
4575
4612
  }
4576
4613
  }
4577
4614
  if (context.tenantId && allowedLevels.includes("tenant")) {
4578
- const tenantOverride = overrides.tenant.find((o) => o.flagName === flagName);
4615
+ const tenantOverride = overrides.tenant.get(flagName);
4579
4616
  if (tenantOverride) {
4580
4617
  return {
4581
4618
  name: flagName,
@@ -4586,7 +4623,7 @@ var FlagService = class {
4586
4623
  }
4587
4624
  }
4588
4625
  if (allowedLevels.includes("global")) {
4589
- const globalOverride = overrides.global.find((o) => o.flagName === flagName);
4626
+ const globalOverride = overrides.global.get(flagName);
4590
4627
  if (globalOverride) {
4591
4628
  return {
4592
4629
  name: flagName,
@@ -4614,6 +4651,9 @@ function createFlagService(options) {
4614
4651
  }
4615
4652
 
4616
4653
  // src/native/registry.ts
4654
+ function cloneObjectDefinition(object2) {
4655
+ return structuredClone(object2);
4656
+ }
4617
4657
  var NativeObjectRegistryClass = class {
4618
4658
  constructor() {
4619
4659
  this.objects = /* @__PURE__ */ new Map();
@@ -4623,7 +4663,7 @@ var NativeObjectRegistryClass = class {
4623
4663
  * Auto-builds if ObjectBuilder is passed instead of ObjectDefinition
4624
4664
  * @param objects - Single object/builder or array of objects/builders to register
4625
4665
  * @returns this (for chaining)
4626
- * @throws Error if object is invalid or already registered
4666
+ * @throws SchemaError if object is invalid or already registered
4627
4667
  *
4628
4668
  * @example
4629
4669
  * ```typescript
@@ -4655,21 +4695,19 @@ var NativeObjectRegistryClass = class {
4655
4695
  */
4656
4696
  validateAndRegister(object2) {
4657
4697
  if (!object2.system) {
4658
- throw new Error(
4659
- `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4660
- Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`
4661
- );
4698
+ const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
4699
+ Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
4700
+ throw new chunkPZJN5IJW_js.ValidationError(message, []);
4662
4701
  }
4663
4702
  if (this.objects.has(object2.name)) {
4664
4703
  const existing = this.objects.get(object2.name);
4665
- throw new Error(
4666
- `[NativeObjectRegistry] Duplicate object name "${object2.name}":
4704
+ const message = `[NativeObjectRegistry] Duplicate object name "${object2.name}":
4667
4705
  - Existing: "${existing?.label}" (id: ${existing?.id})
4668
4706
  - New: "${object2.label}" (id: ${object2.id})
4669
- Please use unique names for each native object.`
4670
- );
4707
+ Please use unique names for each native object.`;
4708
+ throw new chunkPZJN5IJW_js.DuplicateError("object", object2.name, message);
4671
4709
  }
4672
- this.objects.set(object2.name, object2);
4710
+ this.objects.set(object2.name, cloneObjectDefinition(object2));
4673
4711
  }
4674
4712
  /**
4675
4713
  * Get a native object by its name
@@ -4685,21 +4723,21 @@ Please use unique names for each native object.`
4685
4723
  * ```
4686
4724
  */
4687
4725
  getByName(name) {
4688
- return this.objects.get(name);
4726
+ const object2 = this.objects.get(name);
4727
+ return object2 ? cloneObjectDefinition(object2) : void 0;
4689
4728
  }
4690
4729
  /**
4691
4730
  * Get a native object or throw if not found
4692
4731
  * @param name - The object name
4693
4732
  * @returns The object definition
4694
- * @throws Error if not found
4733
+ * @throws NotFoundError if not found
4695
4734
  */
4696
4735
  getByNameOrThrow(name) {
4697
- const object2 = this.objects.get(name);
4736
+ const object2 = this.getByName(name);
4698
4737
  if (!object2) {
4699
- throw new Error(
4700
- `[NativeObjectRegistry] Native object "${name}" not found.
4701
- Available objects: ${this.listNames().join(", ")}`
4702
- );
4738
+ const message = `[NativeObjectRegistry] Native object "${name}" not found.
4739
+ Available objects: ${this.listNames().join(", ")}`;
4740
+ throw new chunkPZJN5IJW_js.NotFoundError("Native object", name, chunkPZJN5IJW_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
4703
4741
  }
4704
4742
  return object2;
4705
4743
  }
@@ -4708,7 +4746,7 @@ Available objects: ${this.listNames().join(", ")}`
4708
4746
  * @returns Array of all registered object definitions
4709
4747
  */
4710
4748
  getAll() {
4711
- return Array.from(this.objects.values());
4749
+ return Array.from(this.objects.values(), cloneObjectDefinition);
4712
4750
  }
4713
4751
  /**
4714
4752
  * Get all registered native object names
@@ -4751,10 +4789,12 @@ Available objects: ${this.listNames().join(", ")}`
4751
4789
  ].join("\n");
4752
4790
  }
4753
4791
  /**
4754
- * Log registry summary to console
4792
+ * Return registry summary and optionally pass it to a debug writer.
4755
4793
  */
4756
- debug() {
4757
- console.info(this.summary());
4794
+ debug(write) {
4795
+ const summary = this.summary();
4796
+ write?.(summary);
4797
+ return summary;
4758
4798
  }
4759
4799
  };
4760
4800
  var registry = new NativeObjectRegistryClass();
@@ -4765,6 +4805,9 @@ var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").version(2).def
4765
4805
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").version(2).default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4766
4806
 
4767
4807
  // src/views/registry.ts
4808
+ function cloneViewDefinition(view) {
4809
+ return structuredClone(view);
4810
+ }
4768
4811
  var ViewRegistry = class {
4769
4812
  constructor() {
4770
4813
  this.views = /* @__PURE__ */ new Map();
@@ -4786,37 +4829,38 @@ var ViewRegistry = class {
4786
4829
  registerSingle(view) {
4787
4830
  const key = this.makeKey(view.object, view.name, view.type);
4788
4831
  if (this.views.has(key)) {
4789
- throw new Error(
4790
- `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`
4791
- );
4792
- }
4793
- this.views.set(key, view);
4794
- const objectViews = this.byObject.get(view.object) ?? [];
4795
- objectViews.push(view);
4796
- this.byObject.set(view.object, objectViews);
4797
- const typeKey = `${view.object}:${view.type}`;
4832
+ const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
4833
+ throw new chunkPZJN5IJW_js.DuplicateError("view", key, message);
4834
+ }
4835
+ const storedView = cloneViewDefinition(view);
4836
+ this.views.set(key, storedView);
4837
+ const objectViews = this.byObject.get(storedView.object) ?? [];
4838
+ objectViews.push(storedView);
4839
+ this.byObject.set(storedView.object, objectViews);
4840
+ const typeKey = `${storedView.object}:${storedView.type}`;
4798
4841
  const typeViews = this.byObjectAndType.get(typeKey) ?? [];
4799
- typeViews.push(view);
4842
+ typeViews.push(storedView);
4800
4843
  this.byObjectAndType.set(typeKey, typeViews);
4801
4844
  }
4802
4845
  /**
4803
4846
  * Get all views for an object
4804
4847
  */
4805
4848
  getByObjectName(objectName) {
4806
- return this.byObject.get(objectName) ?? [];
4849
+ return Array.from(this.byObject.get(objectName) ?? [], cloneViewDefinition);
4807
4850
  }
4808
4851
  /**
4809
4852
  * Get views for an object filtered by type
4810
4853
  */
4811
4854
  getByObjectNameAndType(objectName, type) {
4812
- return this.byObjectAndType.get(`${objectName}:${type}`) ?? [];
4855
+ return Array.from(this.byObjectAndType.get(`${objectName}:${type}`) ?? [], cloneViewDefinition);
4813
4856
  }
4814
4857
  /**
4815
4858
  * Get a specific view by object, name, and type
4816
4859
  */
4817
4860
  get(objectName, viewName, type) {
4818
4861
  if (type) {
4819
- return this.views.get(this.makeKey(objectName, viewName, type));
4862
+ const view = this.views.get(this.makeKey(objectName, viewName, type));
4863
+ return view ? cloneViewDefinition(view) : void 0;
4820
4864
  }
4821
4865
  const objectViews = this.getByObjectName(objectName);
4822
4866
  return objectViews.find((v) => v.name === viewName);
@@ -4829,10 +4873,9 @@ var ViewRegistry = class {
4829
4873
  if (!view) {
4830
4874
  const available = this.getByObjectName(objectName);
4831
4875
  const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
4832
- throw new Error(
4833
- `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4834
- Available views: ${availableNames}`
4835
- );
4876
+ const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
4877
+ Available views: ${availableNames}`;
4878
+ throw new chunkPZJN5IJW_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
4836
4879
  }
4837
4880
  return view;
4838
4881
  }
@@ -4840,7 +4883,7 @@ Available views: ${availableNames}`
4840
4883
  * Get all registered views
4841
4884
  */
4842
4885
  getAll() {
4843
- return Array.from(this.views.values());
4886
+ return Array.from(this.views.values(), cloneViewDefinition);
4844
4887
  }
4845
4888
  /**
4846
4889
  * Check if a view exists
@@ -4904,10 +4947,12 @@ Available views: ${availableNames}`
4904
4947
  return lines.join("\n");
4905
4948
  }
4906
4949
  /**
4907
- * Log summary to console
4950
+ * Return summary and optionally pass it to a debug writer.
4908
4951
  */
4909
- debug() {
4910
- console.info(this.summary());
4952
+ debug(write) {
4953
+ const summary = this.summary();
4954
+ write?.(summary);
4955
+ return summary;
4911
4956
  }
4912
4957
  makeKey(objectName, viewName, type) {
4913
4958
  return `${objectName}:${viewName}:${type}`;
@@ -5129,6 +5174,9 @@ function getActiveTab(config, tabId) {
5129
5174
  }
5130
5175
 
5131
5176
  // src/forms/registry.ts
5177
+ function cloneFormDefinition(form2) {
5178
+ return structuredClone(form2);
5179
+ }
5132
5180
  var FormRegistry = class {
5133
5181
  constructor() {
5134
5182
  this.forms = /* @__PURE__ */ new Map();
@@ -5141,9 +5189,9 @@ var FormRegistry = class {
5141
5189
  const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
5142
5190
  for (const f of forms) {
5143
5191
  if (this.forms.has(f.name)) {
5144
- throw new Error(`[FormRegistry] Duplicate form: "${f.name}"`);
5192
+ throw new chunkPZJN5IJW_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
5145
5193
  }
5146
- this.forms.set(f.name, f);
5194
+ this.forms.set(f.name, cloneFormDefinition(f));
5147
5195
  }
5148
5196
  return this;
5149
5197
  }
@@ -5151,13 +5199,14 @@ var FormRegistry = class {
5151
5199
  * Get a form definition by name.
5152
5200
  */
5153
5201
  get(name) {
5154
- return this.forms.get(name);
5202
+ const form2 = this.forms.get(name);
5203
+ return form2 ? cloneFormDefinition(form2) : void 0;
5155
5204
  }
5156
5205
  /**
5157
5206
  * Get all registered form definitions.
5158
5207
  */
5159
5208
  getAll() {
5160
- return Array.from(this.forms.values());
5209
+ return Array.from(this.forms.values(), cloneFormDefinition);
5161
5210
  }
5162
5211
  /**
5163
5212
  * List all registered form names.
@@ -6994,7 +7043,7 @@ function assertOperatorForType(operator, type, context) {
6994
7043
  if (!ops?.includes(operator)) {
6995
7044
  const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
6996
7045
  const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
6997
- throw new chunk6SPNZSXS_js.ValidationError(summary, [
7046
+ throw new chunkPZJN5IJW_js.ValidationError(summary, [
6998
7047
  {
6999
7048
  path: ["operator"],
7000
7049
  message: summary
@@ -7010,7 +7059,7 @@ function assertRelativeDateValue(rule) {
7010
7059
  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);
7011
7060
  if (!valid) {
7012
7061
  const m = `Operator "is_within" requires a relative-date value { amount: positive number, unit: days|weeks|months|years, direction: past|future }`;
7013
- throw new chunk6SPNZSXS_js.ValidationError(m, [{ path: ["value"], message: m }]);
7062
+ throw new chunkPZJN5IJW_js.ValidationError(m, [{ path: ["value"], message: m }]);
7014
7063
  }
7015
7064
  }
7016
7065
  function assertDynamicValueForAttribute(rule, attrType) {
@@ -7018,34 +7067,34 @@ function assertDynamicValueForAttribute(rule, attrType) {
7018
7067
  const v = rule.value;
7019
7068
  if (v.dynamic === "actor" && attrType !== "user") {
7020
7069
  const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
7021
- throw new chunk6SPNZSXS_js.ValidationError(m, [{ path: ["value"], message: m }]);
7070
+ throw new chunkPZJN5IJW_js.ValidationError(m, [{ path: ["value"], message: m }]);
7022
7071
  }
7023
7072
  if (v.dynamic === "date" && attrType !== "date") {
7024
7073
  const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
7025
- throw new chunk6SPNZSXS_js.ValidationError(m, [{ path: ["value"], message: m }]);
7074
+ throw new chunkPZJN5IJW_js.ValidationError(m, [{ path: ["value"], message: m }]);
7026
7075
  }
7027
7076
  }
7028
7077
  function validateQualifiedRule(rule, context) {
7029
7078
  const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
7030
7079
  const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
7031
7080
  if (!(rootAttr || systemOps)) {
7032
- throw new chunk6SPNZSXS_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
7081
+ throw new chunkPZJN5IJW_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
7033
7082
  { path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
7034
7083
  ]);
7035
7084
  }
7036
7085
  if (rule.quantifier !== void 0 && !rule.property) {
7037
7086
  const m = `quantifier is only valid on qualified edge rules (set "property")`;
7038
- throw new chunk6SPNZSXS_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
7087
+ throw new chunkPZJN5IJW_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
7039
7088
  }
7040
7089
  if (!rootAttr) {
7041
7090
  if (rule.property) {
7042
- throw new chunk6SPNZSXS_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
7091
+ throw new chunkPZJN5IJW_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
7043
7092
  { path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
7044
7093
  ]);
7045
7094
  }
7046
7095
  if (!systemOps.includes(rule.operator)) {
7047
7096
  const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
7048
- throw new chunk6SPNZSXS_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7097
+ throw new chunkPZJN5IJW_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7049
7098
  }
7050
7099
  assertRelativeDateValue(rule);
7051
7100
  return;
@@ -7056,25 +7105,25 @@ function validateQualifiedRule(rule, context) {
7056
7105
  if (!ops.includes(rule.operator)) {
7057
7106
  const validList = ops.length ? ops.join(", ") : "(not filterable)";
7058
7107
  const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
7059
- throw new chunk6SPNZSXS_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7108
+ throw new chunkPZJN5IJW_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
7060
7109
  }
7061
7110
  assertRelativeDateValue(rule);
7062
7111
  return;
7063
7112
  }
7064
7113
  if (!REFERENCE_TYPES.has(rootAttr.type)) {
7065
- throw new chunk6SPNZSXS_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
7114
+ throw new chunkPZJN5IJW_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
7066
7115
  { path: ["property"], message: `Attribute "${rule.attribute}" is not a reference type` }
7067
7116
  ]);
7068
7117
  }
7069
7118
  const propSchema = rootAttr.properties;
7070
7119
  if (!propSchema) {
7071
- throw new chunk6SPNZSXS_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
7120
+ throw new chunkPZJN5IJW_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
7072
7121
  { path: ["property"], message: `"${rule.attribute}" has no qualifyWith` }
7073
7122
  ]);
7074
7123
  }
7075
7124
  const propDef = propSchema.definitions.find((p) => p.name === rule.property);
7076
7125
  if (!propDef) {
7077
- throw new chunk6SPNZSXS_js.ValidationError(
7126
+ throw new chunkPZJN5IJW_js.ValidationError(
7078
7127
  `Property "${rule.property}" not defined on "${rule.attribute}".qualifyWith()`,
7079
7128
  [{ path: ["property"], message: `Unknown property: ${rule.property}` }]
7080
7129
  );
@@ -7124,179 +7173,179 @@ Object.defineProperty(exports, "parseComputedFormula", {
7124
7173
  });
7125
7174
  Object.defineProperty(exports, "AccessDeniedError", {
7126
7175
  enumerable: true,
7127
- get: function () { return chunk6SPNZSXS_js.AccessDeniedError; }
7176
+ get: function () { return chunkPZJN5IJW_js.AccessDeniedError; }
7128
7177
  });
7129
7178
  Object.defineProperty(exports, "AttributeInUseError", {
7130
7179
  enumerable: true,
7131
- get: function () { return chunk6SPNZSXS_js.AttributeInUseError; }
7180
+ get: function () { return chunkPZJN5IJW_js.AttributeInUseError; }
7132
7181
  });
7133
7182
  Object.defineProperty(exports, "AttributeNotFoundError", {
7134
7183
  enumerable: true,
7135
- get: function () { return chunk6SPNZSXS_js.AttributeNotFoundError; }
7184
+ get: function () { return chunkPZJN5IJW_js.AttributeNotFoundError; }
7136
7185
  });
7137
7186
  Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
7138
7187
  enumerable: true,
7139
- get: function () { return chunk6SPNZSXS_js.ChangeTypeNotSupportedError; }
7188
+ get: function () { return chunkPZJN5IJW_js.ChangeTypeNotSupportedError; }
7140
7189
  });
7141
7190
  Object.defineProperty(exports, "ConcurrentModificationError", {
7142
7191
  enumerable: true,
7143
- get: function () { return chunk6SPNZSXS_js.ConcurrentModificationError; }
7192
+ get: function () { return chunkPZJN5IJW_js.ConcurrentModificationError; }
7144
7193
  });
7145
7194
  Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
7146
7195
  enumerable: true,
7147
- get: function () { return chunk6SPNZSXS_js.DestructiveSyncNotAllowedError; }
7196
+ get: function () { return chunkPZJN5IJW_js.DestructiveSyncNotAllowedError; }
7148
7197
  });
7149
7198
  Object.defineProperty(exports, "DuplicateError", {
7150
7199
  enumerable: true,
7151
- get: function () { return chunk6SPNZSXS_js.DuplicateError; }
7200
+ get: function () { return chunkPZJN5IJW_js.DuplicateError; }
7152
7201
  });
7153
7202
  Object.defineProperty(exports, "ForbiddenError", {
7154
7203
  enumerable: true,
7155
- get: function () { return chunk6SPNZSXS_js.ForbiddenError; }
7204
+ get: function () { return chunkPZJN5IJW_js.ForbiddenError; }
7156
7205
  });
7157
7206
  Object.defineProperty(exports, "MemoryNotFoundError", {
7158
7207
  enumerable: true,
7159
- get: function () { return chunk6SPNZSXS_js.MemoryNotFoundError; }
7208
+ get: function () { return chunkPZJN5IJW_js.MemoryNotFoundError; }
7160
7209
  });
7161
7210
  Object.defineProperty(exports, "MigrationTimeoutError", {
7162
7211
  enumerable: true,
7163
- get: function () { return chunk6SPNZSXS_js.MigrationTimeoutError; }
7212
+ get: function () { return chunkPZJN5IJW_js.MigrationTimeoutError; }
7164
7213
  });
7165
7214
  Object.defineProperty(exports, "NotFoundError", {
7166
7215
  enumerable: true,
7167
- get: function () { return chunk6SPNZSXS_js.NotFoundError; }
7216
+ get: function () { return chunkPZJN5IJW_js.NotFoundError; }
7168
7217
  });
7169
7218
  Object.defineProperty(exports, "NotImplementedError", {
7170
7219
  enumerable: true,
7171
- get: function () { return chunk6SPNZSXS_js.NotImplementedError; }
7220
+ get: function () { return chunkPZJN5IJW_js.NotImplementedError; }
7172
7221
  });
7173
7222
  Object.defineProperty(exports, "ObjectNotFoundError", {
7174
7223
  enumerable: true,
7175
- get: function () { return chunk6SPNZSXS_js.ObjectNotFoundError; }
7224
+ get: function () { return chunkPZJN5IJW_js.ObjectNotFoundError; }
7176
7225
  });
7177
7226
  Object.defineProperty(exports, "ObjectReferencedError", {
7178
7227
  enumerable: true,
7179
- get: function () { return chunk6SPNZSXS_js.ObjectReferencedError; }
7228
+ get: function () { return chunkPZJN5IJW_js.ObjectReferencedError; }
7180
7229
  });
7181
7230
  Object.defineProperty(exports, "OrphanSystemAttributeError", {
7182
7231
  enumerable: true,
7183
- get: function () { return chunk6SPNZSXS_js.OrphanSystemAttributeError; }
7232
+ get: function () { return chunkPZJN5IJW_js.OrphanSystemAttributeError; }
7184
7233
  });
7185
7234
  Object.defineProperty(exports, "ProtectedResourceError", {
7186
7235
  enumerable: true,
7187
- get: function () { return chunk6SPNZSXS_js.ProtectedResourceError; }
7236
+ get: function () { return chunkPZJN5IJW_js.ProtectedResourceError; }
7188
7237
  });
7189
7238
  Object.defineProperty(exports, "ProtectedRoleError", {
7190
7239
  enumerable: true,
7191
- get: function () { return chunk6SPNZSXS_js.ProtectedRoleError; }
7240
+ get: function () { return chunkPZJN5IJW_js.ProtectedRoleError; }
7192
7241
  });
7193
7242
  Object.defineProperty(exports, "RecordNotFoundError", {
7194
7243
  enumerable: true,
7195
- get: function () { return chunk6SPNZSXS_js.RecordNotFoundError; }
7244
+ get: function () { return chunkPZJN5IJW_js.RecordNotFoundError; }
7196
7245
  });
7197
7246
  Object.defineProperty(exports, "RecordReferencedError", {
7198
7247
  enumerable: true,
7199
- get: function () { return chunk6SPNZSXS_js.RecordReferencedError; }
7248
+ get: function () { return chunkPZJN5IJW_js.RecordReferencedError; }
7200
7249
  });
7201
7250
  Object.defineProperty(exports, "RepositoryError", {
7202
7251
  enumerable: true,
7203
- get: function () { return chunk6SPNZSXS_js.RepositoryError; }
7252
+ get: function () { return chunkPZJN5IJW_js.RepositoryError; }
7204
7253
  });
7205
7254
  Object.defineProperty(exports, "RoleNotFoundError", {
7206
7255
  enumerable: true,
7207
- get: function () { return chunk6SPNZSXS_js.RoleNotFoundError; }
7256
+ get: function () { return chunkPZJN5IJW_js.RoleNotFoundError; }
7208
7257
  });
7209
7258
  Object.defineProperty(exports, "SchemaError", {
7210
7259
  enumerable: true,
7211
- get: function () { return chunk6SPNZSXS_js.SchemaError; }
7260
+ get: function () { return chunkPZJN5IJW_js.SchemaError; }
7212
7261
  });
7213
7262
  Object.defineProperty(exports, "SchemaErrorCode", {
7214
7263
  enumerable: true,
7215
- get: function () { return chunk6SPNZSXS_js.SchemaErrorCode; }
7264
+ get: function () { return chunkPZJN5IJW_js.SchemaErrorCode; }
7216
7265
  });
7217
7266
  Object.defineProperty(exports, "SearchBackendError", {
7218
7267
  enumerable: true,
7219
- get: function () { return chunk6SPNZSXS_js.SearchBackendError; }
7268
+ get: function () { return chunkPZJN5IJW_js.SearchBackendError; }
7220
7269
  });
7221
7270
  Object.defineProperty(exports, "StorageError", {
7222
7271
  enumerable: true,
7223
- get: function () { return chunk6SPNZSXS_js.StorageError; }
7272
+ get: function () { return chunkPZJN5IJW_js.StorageError; }
7224
7273
  });
7225
7274
  Object.defineProperty(exports, "SyncCascadeError", {
7226
7275
  enumerable: true,
7227
- get: function () { return chunk6SPNZSXS_js.SyncCascadeError; }
7276
+ get: function () { return chunkPZJN5IJW_js.SyncCascadeError; }
7228
7277
  });
7229
7278
  Object.defineProperty(exports, "SyncConflictError", {
7230
7279
  enumerable: true,
7231
- get: function () { return chunk6SPNZSXS_js.SyncConflictError; }
7280
+ get: function () { return chunkPZJN5IJW_js.SyncConflictError; }
7232
7281
  });
7233
7282
  Object.defineProperty(exports, "SyncError", {
7234
7283
  enumerable: true,
7235
- get: function () { return chunk6SPNZSXS_js.SyncError; }
7284
+ get: function () { return chunkPZJN5IJW_js.SyncError; }
7236
7285
  });
7237
7286
  Object.defineProperty(exports, "SystemEntityImmutableError", {
7238
7287
  enumerable: true,
7239
- get: function () { return chunk6SPNZSXS_js.SystemEntityImmutableError; }
7288
+ get: function () { return chunkPZJN5IJW_js.SystemEntityImmutableError; }
7240
7289
  });
7241
7290
  Object.defineProperty(exports, "ValidationError", {
7242
7291
  enumerable: true,
7243
- get: function () { return chunk6SPNZSXS_js.ValidationError; }
7292
+ get: function () { return chunkPZJN5IJW_js.ValidationError; }
7244
7293
  });
7245
7294
  Object.defineProperty(exports, "computeRecordStatus", {
7246
7295
  enumerable: true,
7247
- get: function () { return chunk6SPNZSXS_js.computeRecordStatus; }
7296
+ get: function () { return chunkPZJN5IJW_js.computeRecordStatus; }
7248
7297
  });
7249
7298
  Object.defineProperty(exports, "createFormAttributeValidator", {
7250
7299
  enumerable: true,
7251
- get: function () { return chunk6SPNZSXS_js.createFormAttributeValidator; }
7300
+ get: function () { return chunkPZJN5IJW_js.createFormAttributeValidator; }
7252
7301
  });
7253
7302
  Object.defineProperty(exports, "isAttributeInUseError", {
7254
7303
  enumerable: true,
7255
- get: function () { return chunk6SPNZSXS_js.isAttributeInUseError; }
7304
+ get: function () { return chunkPZJN5IJW_js.isAttributeInUseError; }
7256
7305
  });
7257
7306
  Object.defineProperty(exports, "isNotFoundError", {
7258
7307
  enumerable: true,
7259
- get: function () { return chunk6SPNZSXS_js.isNotFoundError; }
7308
+ get: function () { return chunkPZJN5IJW_js.isNotFoundError; }
7260
7309
  });
7261
7310
  Object.defineProperty(exports, "isObjectReferencedError", {
7262
7311
  enumerable: true,
7263
- get: function () { return chunk6SPNZSXS_js.isObjectReferencedError; }
7312
+ get: function () { return chunkPZJN5IJW_js.isObjectReferencedError; }
7264
7313
  });
7265
7314
  Object.defineProperty(exports, "isProtectedResourceError", {
7266
7315
  enumerable: true,
7267
- get: function () { return chunk6SPNZSXS_js.isProtectedResourceError; }
7316
+ get: function () { return chunkPZJN5IJW_js.isProtectedResourceError; }
7268
7317
  });
7269
7318
  Object.defineProperty(exports, "isRecordReferencedError", {
7270
7319
  enumerable: true,
7271
- get: function () { return chunk6SPNZSXS_js.isRecordReferencedError; }
7320
+ get: function () { return chunkPZJN5IJW_js.isRecordReferencedError; }
7272
7321
  });
7273
7322
  Object.defineProperty(exports, "isSchemaError", {
7274
7323
  enumerable: true,
7275
- get: function () { return chunk6SPNZSXS_js.isSchemaError; }
7324
+ get: function () { return chunkPZJN5IJW_js.isSchemaError; }
7276
7325
  });
7277
7326
  Object.defineProperty(exports, "isValidationError", {
7278
7327
  enumerable: true,
7279
- get: function () { return chunk6SPNZSXS_js.isValidationError; }
7328
+ get: function () { return chunkPZJN5IJW_js.isValidationError; }
7280
7329
  });
7281
7330
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
7282
7331
  enumerable: true,
7283
- get: function () { return chunk6SPNZSXS_js.rejectUnknownAttributesOrThrow; }
7332
+ get: function () { return chunkPZJN5IJW_js.rejectUnknownAttributesOrThrow; }
7284
7333
  });
7285
7334
  Object.defineProperty(exports, "validateDraft", {
7286
7335
  enumerable: true,
7287
- get: function () { return chunk6SPNZSXS_js.validateDraft; }
7336
+ get: function () { return chunkPZJN5IJW_js.validateDraft; }
7288
7337
  });
7289
7338
  Object.defineProperty(exports, "validateDraftOrThrow", {
7290
7339
  enumerable: true,
7291
- get: function () { return chunk6SPNZSXS_js.validateDraftOrThrow; }
7340
+ get: function () { return chunkPZJN5IJW_js.validateDraftOrThrow; }
7292
7341
  });
7293
7342
  Object.defineProperty(exports, "validateObject", {
7294
7343
  enumerable: true,
7295
- get: function () { return chunk6SPNZSXS_js.validateObject; }
7344
+ get: function () { return chunkPZJN5IJW_js.validateObject; }
7296
7345
  });
7297
7346
  Object.defineProperty(exports, "validateObjectOrThrow", {
7298
7347
  enumerable: true,
7299
- get: function () { return chunk6SPNZSXS_js.validateObjectOrThrow; }
7348
+ get: function () { return chunkPZJN5IJW_js.validateObjectOrThrow; }
7300
7349
  });
7301
7350
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
7302
7351
  enumerable: true,