@stndrds/schema 1.0.0-alpha.225 → 1.0.0-alpha.227

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.mjs CHANGED
@@ -3,8 +3,8 @@ export { asTenantId, asUserId, deepEqual, generateId, indexBy } from './chunk-QY
3
3
  import './chunk-SP3PNHYF.mjs';
4
4
  import { parseComputedFormula } from './chunk-AAXJJNY6.mjs';
5
5
  export { ComputedFormulaParseError, parseAttributeConfig, parseComputedFormula } from './chunk-AAXJJNY6.mjs';
6
- import { createObjectValidator, SchemaError, SchemaErrorCode, createAttributeValidator, ValidationError } from './chunk-5WYDO3ZB.mjs';
7
- export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-5WYDO3ZB.mjs';
6
+ import { createObjectValidator, SchemaError, SchemaErrorCode, createAttributeValidator, ValidationError } from './chunk-6CTUPVHH.mjs';
7
+ export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createFormAttributeValidator, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from './chunk-6CTUPVHH.mjs';
8
8
  import './chunk-OSSGN43B.mjs';
9
9
  import './chunk-6I2R22CX.mjs';
10
10
  import './chunk-UANQJ2GH.mjs';
@@ -20,7 +20,7 @@ import './chunk-YUFTHPOE.mjs';
20
20
  import { formatPhoneForDisplay } from './chunk-JUKLL5RJ.mjs';
21
21
  import './chunk-GO6LQADH.mjs';
22
22
  export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-HRQEZUAA.mjs';
23
- import { ICONS, getCountryDisplayNameByIso3 } from '@stndrds/constants';
23
+ import { ICONS, SKILL_NAME_MAX_LENGTH, SKILL_DESCRIPTION_MAX_LENGTH, getCountryDisplayNameByIso3 } from '@stndrds/constants';
24
24
  import z3, { z } from 'zod';
25
25
 
26
26
  // src/types/notifications.ts
@@ -1093,6 +1093,8 @@ var SYSTEM_RESOURCES = {
1093
1093
  AUDIT: "audit",
1094
1094
  /** Programmatic access keys */
1095
1095
  API_KEYS: "api-keys",
1096
+ /** OAuth connector connections (mailboxes, etc.) */
1097
+ CONNECTORS: "connectors",
1096
1098
  /** Environment variables for agents */
1097
1099
  ENV_VARS: "env-vars",
1098
1100
  /** Agent session visibility — required for an agent actor to read its own sessions */
@@ -1109,6 +1111,7 @@ var ALL_SYSTEM_RESOURCES = [
1109
1111
  SYSTEM_RESOURCES.DOCUMENTS,
1110
1112
  SYSTEM_RESOURCES.AUDIT,
1111
1113
  SYSTEM_RESOURCES.API_KEYS,
1114
+ SYSTEM_RESOURCES.CONNECTORS,
1112
1115
  SYSTEM_RESOURCES.ENV_VARS,
1113
1116
  SYSTEM_RESOURCES.SESSION
1114
1117
  ];
@@ -1123,6 +1126,7 @@ var SYSTEM_RESOURCE_LABELS = {
1123
1126
  documents: "Documents",
1124
1127
  audit: "Audit",
1125
1128
  "api-keys": "API keys",
1129
+ connectors: "Connected accounts",
1126
1130
  "env-vars": "Environment variables",
1127
1131
  session: "Agent sessions"
1128
1132
  };
@@ -1145,6 +1149,7 @@ var DEFAULT_ROLE_DESCRIPTIONS = {
1145
1149
  agent_default: "Default role for AI agents \u2014 CRUD on records plus documents and files"
1146
1150
  };
1147
1151
  var ALL_ACTIONS2 = ["read", "create", "update", "delete", "manage"];
1152
+ var MEMBER_CONNECTOR_ACTIONS = ["read", "create", "delete"];
1148
1153
  var DEFAULT_ROLE_PERMISSIONS = {
1149
1154
  owner: {
1150
1155
  system: [{ target: "*", actions: ALL_ACTIONS2 }],
@@ -1153,7 +1158,8 @@ var DEFAULT_ROLE_PERMISSIONS = {
1153
1158
  member: {
1154
1159
  system: [
1155
1160
  { target: "people", actions: ["read"] },
1156
- { target: "workspace", actions: ["read"] }
1161
+ { target: "workspace", actions: ["read"] },
1162
+ { target: "connectors", actions: MEMBER_CONNECTOR_ACTIONS }
1157
1163
  ],
1158
1164
  object: [{ target: "*", actions: ALL_ACTIONS2 }]
1159
1165
  },
@@ -2727,7 +2733,7 @@ var ObjectBuilder = class {
2727
2733
  documentLayout(layout) {
2728
2734
  if (layout.presets) {
2729
2735
  for (const preset of layout.presets) {
2730
- validatePresetDepth(preset.structure, 1);
2736
+ validatePresetStructure(preset.id, preset.structure, 1);
2731
2737
  }
2732
2738
  }
2733
2739
  this.obj.documentLayout = layout;
@@ -2845,13 +2851,30 @@ var ObjectBuilder = class {
2845
2851
  function object(config) {
2846
2852
  return new ObjectBuilder(config);
2847
2853
  }
2848
- function validatePresetDepth(nodes, depth) {
2854
+ function validatePresetStructure(presetId, nodes, depth) {
2855
+ const fail = (message, detail) => {
2856
+ throw new ValidationError(message, [
2857
+ { path: ["documentLayout", "presets", presetId], message: detail }
2858
+ ]);
2859
+ };
2849
2860
  if (depth > MAX_PRESET_DEPTH) {
2850
- throw new Error(`Preset structure exceeds max depth of ${MAX_PRESET_DEPTH}`);
2861
+ fail(`Preset structure exceeds max depth of ${MAX_PRESET_DEPTH}`, "Preset structure too deep");
2851
2862
  }
2863
+ const seenSiblingTitles = /* @__PURE__ */ new Set();
2852
2864
  for (const node of nodes) {
2865
+ const title = node.title.trim();
2866
+ if (title.length === 0) {
2867
+ fail("Folder preset node title is required", "Empty folder title");
2868
+ }
2869
+ if (title.includes("/")) {
2870
+ fail("Folder preset node title cannot contain /", `Folder title contains /: "${title}"`);
2871
+ }
2872
+ if (seenSiblingTitles.has(title)) {
2873
+ fail("Folder preset sibling titles must be unique", `Duplicate folder title: "${title}"`);
2874
+ }
2875
+ seenSiblingTitles.add(title);
2853
2876
  if (node.children && node.children.length > 0) {
2854
- validatePresetDepth(node.children, depth + 1);
2877
+ validatePresetStructure(presetId, node.children, depth + 1);
2855
2878
  }
2856
2879
  }
2857
2880
  }
@@ -3270,6 +3293,39 @@ var ActivityTabConfig = class {
3270
3293
  return this.view.build();
3271
3294
  }
3272
3295
  };
3296
+ var EmailsTabConfig = class {
3297
+ /** @internal */
3298
+ constructor(view, base) {
3299
+ this.view = view;
3300
+ this.tabData = { ...base, type: "emails", emailAttributeIds: [] };
3301
+ }
3302
+ /** Set the text attributes whose values are matched against email participants. */
3303
+ emailAttributes(...attributeIds) {
3304
+ this.tabData.emailAttributeIds = attributeIds;
3305
+ return this;
3306
+ }
3307
+ /**
3308
+ * Continue building with a new tab
3309
+ */
3310
+ tab(name, label) {
3311
+ this.view._addTab(this.tabData);
3312
+ return new TabBuilder(this.view, name, label);
3313
+ }
3314
+ /**
3315
+ * Finish this tab and return to DetailViewBuilder
3316
+ */
3317
+ done() {
3318
+ this.view._addTab(this.tabData);
3319
+ return this.view;
3320
+ }
3321
+ /**
3322
+ * Build the final view definition
3323
+ */
3324
+ build() {
3325
+ this.view._addTab(this.tabData);
3326
+ return this.view.build();
3327
+ }
3328
+ };
3273
3329
  var DocumentsTabConfig = class {
3274
3330
  /** @internal */
3275
3331
  constructor(view, base) {
@@ -3432,6 +3488,13 @@ var TabBuilder = class {
3432
3488
  documents() {
3433
3489
  return new DocumentsTabConfig(this.view, this.base);
3434
3490
  }
3491
+ /**
3492
+ * Create an emails tab (query-time association via email-bearing attributes)
3493
+ * @example .emails().emailAttributes("email", "backup_email")
3494
+ */
3495
+ emails() {
3496
+ return new EmailsTabConfig(this.view, this.base);
3497
+ }
3435
3498
  /**
3436
3499
  * Create a forms tab to launch and track form instances linked to this record
3437
3500
  * @example .tab("forms", "Forms").forms()
@@ -4553,9 +4616,9 @@ Available objects: ${this.listNames().join(", ")}`
4553
4616
  }
4554
4617
  };
4555
4618
  var registry = new NativeObjectRegistryClass();
4556
-
4557
- // src/native/skill.object.ts
4558
- var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("sparkles").order(Number.MAX_SAFE_INTEGER).pluralLabel("Skills").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).required()).attribute(text({ name: "description", label: "Description" }).multiline().required()).attribute(richtext({ name: "content", label: "Content" })).build();
4619
+ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("sparkles").order(Number.MAX_SAFE_INTEGER).pluralLabel("Skills").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(SKILL_NAME_MAX_LENGTH).required()).attribute(
4620
+ text({ name: "description", label: "Description" }).multiline().maxLength(SKILL_DESCRIPTION_MAX_LENGTH).required()
4621
+ ).attribute(richtext({ name: "content", label: "Content" })).build();
4559
4622
  var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
4560
4623
  var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
4561
4624
 
@@ -6878,4 +6941,4 @@ function validateQualifiedRule(rule, context) {
6878
6941
  assertRelativeDateValue(rule);
6879
6942
  }
6880
6943
 
6881
- export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUTOFILL_ELIGIBLE_TYPES, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
6944
+ export { ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, AUTOFILL_ELIGIBLE_TYPES, ActivityTabConfig, BEHAVIOR_PROPERTIES, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ComputedFormulaCompileError, CustomTabConfig, DB_COLUMN_FIELDS, DEFAULT_DOCUMENT_SLOT, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DetailViewBuilder, DocumentSlotValidationError, DocumentsTabConfig, EMPTY_VALUE_PLACEHOLDER, EmailsTabConfig, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FlagRegistry, FlagService, FormBuilder, FormRegistry, FormRowBuilder, FormStepBuilder, GroupBuilder, IDENTITY_PROPERTIES, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, ListViewBuilder, ListViewTabConfigBuilder, MAX_PRESET_DEPTH, NOTIFICATION_INBOX_STATES, NOTIFICATION_KINDS, NOTIFICATION_PRIORITIES, NOTIFICATION_SENSITIVITIES, NOTIFICATION_TYPES_V1, NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED, NOTIFICATION_TYPE_AGENT_SESSION_COMPLETED, NOTIFICATION_TYPE_AGENT_SESSION_FAILED, NOTIFICATION_TYPE_AGENT_SESSION_TIMEOUT, NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN, NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED, NOTIFICATION_WORK_STATES, NO_VALUE_OPERATORS, NoopGeocodingAdapter, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, PRESENTATION_PROPERTIES, QUALIFIED_SEPARATOR, RELATION_TARGET_ANY, RESERVED_ATTRIBUTE_NAMES, RESERVED_OBJECT_NAMES, RelationGroupBuilder, RichtextTabConfig, SKILL_LIST_VIEW, SKILL_OBJECT, SKILL_VIEW, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_FIELD_NAMES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, TabBuilder, TableTabConfig, USER_STATUSES, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, currentActor, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formatLocationValue, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators2 as getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, hasOptions, inferInverseCardinality, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeKanbanGroupable, isAttributeSearchable, isAttributeSortable2 as isAttributeSortable, isBilateralRelation, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isDynamicValue, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isPlainRecord, isRelationGroup, isStandardSchema, isUniversalRelation, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, now, number, numberFlag, object, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, resolvePropertyDefinitions, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, today, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('../chunk-PGERPYDR.js');
4
4
  var chunkNSM2JPC3_js = require('../chunk-NSM2JPC3.js');
5
- var chunkXTPYL6OM_js = require('../chunk-XTPYL6OM.js');
5
+ var chunkMUGKKCY3_js = require('../chunk-MUGKKCY3.js');
6
6
  require('../chunk-5WATIVCA.js');
7
7
  require('../chunk-O44XVGHE.js');
8
8
  require('../chunk-YIP5FJ5H.js');
@@ -27,31 +27,31 @@ Object.defineProperty(exports, "parseAttributeConfig", {
27
27
  });
28
28
  Object.defineProperty(exports, "computeRecordStatus", {
29
29
  enumerable: true,
30
- get: function () { return chunkXTPYL6OM_js.computeRecordStatus; }
30
+ get: function () { return chunkMUGKKCY3_js.computeRecordStatus; }
31
31
  });
32
32
  Object.defineProperty(exports, "createFormAttributeValidator", {
33
33
  enumerable: true,
34
- get: function () { return chunkXTPYL6OM_js.createFormAttributeValidator; }
34
+ get: function () { return chunkMUGKKCY3_js.createFormAttributeValidator; }
35
35
  });
36
36
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
37
37
  enumerable: true,
38
- get: function () { return chunkXTPYL6OM_js.rejectUnknownAttributesOrThrow; }
38
+ get: function () { return chunkMUGKKCY3_js.rejectUnknownAttributesOrThrow; }
39
39
  });
40
40
  Object.defineProperty(exports, "validateDraft", {
41
41
  enumerable: true,
42
- get: function () { return chunkXTPYL6OM_js.validateDraft; }
42
+ get: function () { return chunkMUGKKCY3_js.validateDraft; }
43
43
  });
44
44
  Object.defineProperty(exports, "validateDraftOrThrow", {
45
45
  enumerable: true,
46
- get: function () { return chunkXTPYL6OM_js.validateDraftOrThrow; }
46
+ get: function () { return chunkMUGKKCY3_js.validateDraftOrThrow; }
47
47
  });
48
48
  Object.defineProperty(exports, "validateObject", {
49
49
  enumerable: true,
50
- get: function () { return chunkXTPYL6OM_js.validateObject; }
50
+ get: function () { return chunkMUGKKCY3_js.validateObject; }
51
51
  });
52
52
  Object.defineProperty(exports, "validateObjectOrThrow", {
53
53
  enumerable: true,
54
- get: function () { return chunkXTPYL6OM_js.validateObjectOrThrow; }
54
+ get: function () { return chunkMUGKKCY3_js.validateObjectOrThrow; }
55
55
  });
56
56
  Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
57
57
  enumerable: true,
@@ -1,6 +1,6 @@
1
1
  import '../chunk-SP3PNHYF.mjs';
2
2
  export { parseAttributeConfig } from '../chunk-AAXJJNY6.mjs';
3
- export { computeRecordStatus, createFormAttributeValidator, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from '../chunk-5WYDO3ZB.mjs';
3
+ export { computeRecordStatus, createFormAttributeValidator, rejectUnknownAttributesOrThrow, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from '../chunk-6CTUPVHH.mjs';
4
4
  import '../chunk-OSSGN43B.mjs';
5
5
  import '../chunk-6I2R22CX.mjs';
6
6
  import '../chunk-UANQJ2GH.mjs';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXTPYL6OM_js = require('../../chunk-XTPYL6OM.js');
3
+ var chunkMUGKKCY3_js = require('../../chunk-MUGKKCY3.js');
4
4
  require('../../chunk-5WATIVCA.js');
5
5
  require('../../chunk-O44XVGHE.js');
6
6
  require('../../chunk-YIP5FJ5H.js');
@@ -21,53 +21,53 @@ require('../../chunk-YKWSHBT5.js');
21
21
 
22
22
  Object.defineProperty(exports, "computeRecordStatus", {
23
23
  enumerable: true,
24
- get: function () { return chunkXTPYL6OM_js.computeRecordStatus; }
24
+ get: function () { return chunkMUGKKCY3_js.computeRecordStatus; }
25
25
  });
26
26
  Object.defineProperty(exports, "createAttributeValidator", {
27
27
  enumerable: true,
28
- get: function () { return chunkXTPYL6OM_js.createAttributeValidator; }
28
+ get: function () { return chunkMUGKKCY3_js.createAttributeValidator; }
29
29
  });
30
30
  Object.defineProperty(exports, "createDraftValidator", {
31
31
  enumerable: true,
32
- get: function () { return chunkXTPYL6OM_js.createDraftValidator; }
32
+ get: function () { return chunkMUGKKCY3_js.createDraftValidator; }
33
33
  });
34
34
  Object.defineProperty(exports, "createFormAttributeValidator", {
35
35
  enumerable: true,
36
- get: function () { return chunkXTPYL6OM_js.createFormAttributeValidator; }
36
+ get: function () { return chunkMUGKKCY3_js.createFormAttributeValidator; }
37
37
  });
38
38
  Object.defineProperty(exports, "createObjectValidator", {
39
39
  enumerable: true,
40
- get: function () { return chunkXTPYL6OM_js.createObjectValidator; }
40
+ get: function () { return chunkMUGKKCY3_js.createObjectValidator; }
41
41
  });
42
42
  Object.defineProperty(exports, "getMissingRequiredAttributes", {
43
43
  enumerable: true,
44
- get: function () { return chunkXTPYL6OM_js.getMissingRequiredAttributes; }
44
+ get: function () { return chunkMUGKKCY3_js.getMissingRequiredAttributes; }
45
45
  });
46
46
  Object.defineProperty(exports, "isRecordComplete", {
47
47
  enumerable: true,
48
- get: function () { return chunkXTPYL6OM_js.isRecordComplete; }
48
+ get: function () { return chunkMUGKKCY3_js.isRecordComplete; }
49
49
  });
50
50
  Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
51
51
  enumerable: true,
52
- get: function () { return chunkXTPYL6OM_js.rejectUnknownAttributesOrThrow; }
52
+ get: function () { return chunkMUGKKCY3_js.rejectUnknownAttributesOrThrow; }
53
53
  });
54
54
  Object.defineProperty(exports, "validateAttribute", {
55
55
  enumerable: true,
56
- get: function () { return chunkXTPYL6OM_js.validateAttribute; }
56
+ get: function () { return chunkMUGKKCY3_js.validateAttribute; }
57
57
  });
58
58
  Object.defineProperty(exports, "validateDraft", {
59
59
  enumerable: true,
60
- get: function () { return chunkXTPYL6OM_js.validateDraft; }
60
+ get: function () { return chunkMUGKKCY3_js.validateDraft; }
61
61
  });
62
62
  Object.defineProperty(exports, "validateDraftOrThrow", {
63
63
  enumerable: true,
64
- get: function () { return chunkXTPYL6OM_js.validateDraftOrThrow; }
64
+ get: function () { return chunkMUGKKCY3_js.validateDraftOrThrow; }
65
65
  });
66
66
  Object.defineProperty(exports, "validateObject", {
67
67
  enumerable: true,
68
- get: function () { return chunkXTPYL6OM_js.validateObject; }
68
+ get: function () { return chunkMUGKKCY3_js.validateObject; }
69
69
  });
70
70
  Object.defineProperty(exports, "validateObjectOrThrow", {
71
71
  enumerable: true,
72
- get: function () { return chunkXTPYL6OM_js.validateObjectOrThrow; }
72
+ get: function () { return chunkMUGKKCY3_js.validateObjectOrThrow; }
73
73
  });
@@ -1,4 +1,4 @@
1
- export { computeRecordStatus, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isRecordComplete, rejectUnknownAttributesOrThrow, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from '../../chunk-5WYDO3ZB.mjs';
1
+ export { computeRecordStatus, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isRecordComplete, rejectUnknownAttributesOrThrow, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow } from '../../chunk-6CTUPVHH.mjs';
2
2
  import '../../chunk-OSSGN43B.mjs';
3
3
  import '../../chunk-6I2R22CX.mjs';
4
4
  import '../../chunk-UANQJ2GH.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stndrds/schema",
3
- "version": "1.0.0-alpha.225",
3
+ "version": "1.0.0-alpha.227",
4
4
  "description": "Standard schema definitions and utilities",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -120,7 +120,7 @@
120
120
  "@standard-schema/spec": "^1.1.0",
121
121
  "libphonenumber-js": "^1.12.31",
122
122
  "zod": "^4.2.1",
123
- "@stndrds/constants": "1.0.0-alpha.225"
123
+ "@stndrds/constants": "1.0.0-alpha.227"
124
124
  },
125
125
  "devDependencies": {
126
126
  "@types/node": "^25.0.3",