@xnetjs/data 0.8.0 → 0.10.0

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.
@@ -1,12 +1,12 @@
1
1
  import { AllowExpr, DenyExpr, AuthExpression, AndExpr, OrExpr, NotExpr, PublicExpr, AuthenticatedExpr, CreatorRoleResolver, PropertyRoleResolver, RelationRoleResolver, MembershipRoleResolver, AuthorizationDefinition, SerializedAuthorization, SerializedAuthExpression, DID } from '@xnetjs/core';
2
2
  export { AUTH_ACTIONS, AllowExpr, AndExpr, AuthAction, AuthCheckInput, AuthDecision, AuthDenyReason, AuthExpression, AuthTrace, AuthTraceStep, AuthenticatedExpr, AuthorizationDefinition, CreatorRoleResolver, DenyExpr, MembershipRoleResolver, NotExpr, OrExpr, PolicyEvaluator, PropertyRoleResolver, PublicExpr, RelationRoleResolver, RoleRefExpr, RoleResolver, SerializedAuthExpression, SerializedAuthorization, SerializedRoleResolver } from '@xnetjs/core';
3
- import { E as PropertyDefinition, a as Schema, h as NodeState, S as SchemaIRI } from '../types-S-BJAKyK.js';
4
- export { aX as DEFAULT_OFFLINE_POLICY, aV as GRANT_SCHEMA_IRI, b1 as Grant, w as GrantIndex, b6 as GrantIndexOptions, b5 as GrantIndexStore, b0 as GrantInput, b4 as GrantNode, aU as GrantRateLimiter, b9 as GrantRateLimiterOptions, O as OfflineAuthPolicy, b8 as RevocationConfig, b7 as RevocationConsistency, aT as StoreAuth, e as StoreAuthAPI, b2 as StoreAuthError, b3 as StoreAuthErrorCode, a$ as StoreAuthKeyManager, aZ as StoreAuthOptions, a_ as StoreAuthStore, aW as isGrantActive, aY as mergeOfflinePolicy } from '../types-S-BJAKyK.js';
5
- export { A as ActionPermission, m as AuthDecisionEvent, b as DecisionCache, g as DecisionCacheOptions, D as DefaultPolicyEvaluator, j as DefaultPolicyEvaluatorOptions, a as DefaultRoleResolver, i as DefaultRoleResolverOptions, k as DefinedSchemaLike, G as GrantExpirationCleaner, o as GrantExpirationCleanerOptions, n as GrantExpirationStore, H as HubPolicy, N as NodeStoreReader, P as PermissionMatrix, l as RevalidationEvent, R as RoleSummary, S as SchemaRegistryReader, c as buildPermissionMatrix, f as createPolicyEvaluator, d as describeRoleResolver, e as evaluateExpression, h as hubActionsForSpaceRole, s as schemaToHubPolicy } from '../grant-expiration-cleaner-CY6BcmlR.js';
3
+ import { E as PropertyDefinition, a as Schema, h as NodeState, S as SchemaIRI } from '../types-BB8-SLEa.js';
4
+ export { aX as DEFAULT_OFFLINE_POLICY, aV as GRANT_SCHEMA_IRI, b1 as Grant, w as GrantIndex, b6 as GrantIndexOptions, b5 as GrantIndexStore, b0 as GrantInput, b4 as GrantNode, aU as GrantRateLimiter, b9 as GrantRateLimiterOptions, O as OfflineAuthPolicy, b8 as RevocationConfig, b7 as RevocationConsistency, aT as StoreAuth, e as StoreAuthAPI, b2 as StoreAuthError, b3 as StoreAuthErrorCode, a$ as StoreAuthKeyManager, aZ as StoreAuthOptions, a_ as StoreAuthStore, aW as isGrantActive, aY as mergeOfflinePolicy } from '../types-BB8-SLEa.js';
5
+ export { A as ActionPermission, m as AuthDecisionEvent, b as DecisionCache, g as DecisionCacheOptions, D as DefaultPolicyEvaluator, j as DefaultPolicyEvaluatorOptions, a as DefaultRoleResolver, i as DefaultRoleResolverOptions, k as DefinedSchemaLike, G as GrantExpirationCleaner, o as GrantExpirationCleanerOptions, n as GrantExpirationStore, H as HubPolicy, N as NodeStoreReader, P as PermissionMatrix, l as RevalidationEvent, R as RoleSummary, S as SchemaRegistryReader, c as buildPermissionMatrix, f as createPolicyEvaluator, d as describeRoleResolver, e as evaluateExpression, h as hubActionsForSpaceRole, s as schemaToHubPolicy } from '../grant-expiration-cleaner-Bm1fSG42.js';
6
6
  import { PublicKeyResolver } from '@xnetjs/crypto';
7
7
  import '@xnetjs/sqlite';
8
8
  import '@xnetjs/sync';
9
- import '../registry-DunPv__d.js';
9
+ import '../registry-_49rC6IG.js';
10
10
 
11
11
  /**
12
12
  * Authorization expression builders for schema definitions.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ChatMessageSchema
3
- } from "./chunk-Q3IEGH4B.js";
3
+ } from "./chunk-QVQVKZ3U.js";
4
4
  import "./chunk-OCMSAKWV.js";
5
5
  import "./chunk-T5AZAOG5.js";
6
6
  import "./chunk-EBNMV2VO.js";
@@ -95,6 +95,18 @@ function isValidMentions(value) {
95
95
  return raw.dids.every((d) => typeof d === "string" && DID_PATTERN.test(d));
96
96
  }
97
97
 
98
+ // src/schema/schemas/link-preview.ts
99
+ var MAX_LINK_PREVIEWS_PER_MESSAGE = 3;
100
+ function isMessageLinkPreview(value) {
101
+ if (!value || typeof value !== "object") return false;
102
+ const preview = value;
103
+ return typeof preview.url === "string" && (preview.kind === "share" || preview.kind === "external") && typeof preview.title === "string" && typeof preview.domain === "string" && typeof preview.resolvedAt === "number";
104
+ }
105
+ function sanitizeLinkPreviews(value) {
106
+ if (!Array.isArray(value)) return [];
107
+ return value.filter(isMessageLinkPreview).slice(0, MAX_LINK_PREVIEWS_PER_MESSAGE);
108
+ }
109
+
98
110
  // src/schema/schemas/account-ledger-ops.ts
99
111
  function createAccountRecord(args) {
100
112
  return {
@@ -384,11 +396,11 @@ var builtInSchemas = {
384
396
  "xnet://xnet.fyi/MeetingTranscript@1.0.0": () => import("./meeting-LMUYTZBF.js").then((m) => m.MeetingTranscriptSchema),
385
397
  "xnet://xnet.fyi/Canvas@1.0.0": () => import("./canvas-6WYBNH53.js").then((m) => m.CanvasSchema),
386
398
  "xnet://xnet.fyi/Map@1.0.0": () => import("./map-RG5Y3CPC.js").then((m) => m.MapSchema),
387
- "xnet://xnet.fyi/Comment@1.0.0": () => import("./comment-QSWYAQVS.js").then((m) => m.CommentSchema),
399
+ "xnet://xnet.fyi/Comment@1.0.0": () => import("./comment-NIMFL4XB.js").then((m) => m.CommentSchema),
388
400
  "xnet://xnet.fyi/Reaction@1.0.0": () => import("./reaction-T2DTJBBV.js").then((m) => m.ReactionSchema),
389
401
  "xnet://xnet.fyi/Profile@1.0.0": () => import("./profile-BLLDWIDK.js").then((m) => m.ProfileSchema),
390
402
  "xnet://xnet.fyi/Channel@1.0.0": () => import("./channel-AT3LQF4A.js").then((m) => m.ChannelSchema),
391
- "xnet://xnet.fyi/ChatMessage@1.0.0": () => import("./chat-message-DSVO72B3.js").then((m) => m.ChatMessageSchema),
403
+ "xnet://xnet.fyi/ChatMessage@1.0.0": () => import("./chat-message-47LETTYF.js").then((m) => m.ChatMessageSchema),
392
404
  // Integration schema pack (exploration 0213)
393
405
  "xnet://xnet.fyi/Feed@1.0.0": () => import("./feed-2IXHHP6O.js").then((m) => m.FeedSchema),
394
406
  "xnet://xnet.fyi/FeedItem@1.0.0": () => import("./feed-item-DPE6LN7I.js").then((m) => m.FeedItemSchema),
@@ -471,11 +483,11 @@ var builtInSchemas = {
471
483
  "xnet://xnet.fyi/MeetingTranscript": () => import("./meeting-LMUYTZBF.js").then((m) => m.MeetingTranscriptSchema),
472
484
  "xnet://xnet.fyi/Canvas": () => import("./canvas-6WYBNH53.js").then((m) => m.CanvasSchema),
473
485
  "xnet://xnet.fyi/Map": () => import("./map-RG5Y3CPC.js").then((m) => m.MapSchema),
474
- "xnet://xnet.fyi/Comment": () => import("./comment-QSWYAQVS.js").then((m) => m.CommentSchema),
486
+ "xnet://xnet.fyi/Comment": () => import("./comment-NIMFL4XB.js").then((m) => m.CommentSchema),
475
487
  "xnet://xnet.fyi/Reaction": () => import("./reaction-T2DTJBBV.js").then((m) => m.ReactionSchema),
476
488
  "xnet://xnet.fyi/Profile": () => import("./profile-BLLDWIDK.js").then((m) => m.ProfileSchema),
477
489
  "xnet://xnet.fyi/Channel": () => import("./channel-AT3LQF4A.js").then((m) => m.ChannelSchema),
478
- "xnet://xnet.fyi/ChatMessage": () => import("./chat-message-DSVO72B3.js").then((m) => m.ChatMessageSchema),
490
+ "xnet://xnet.fyi/ChatMessage": () => import("./chat-message-47LETTYF.js").then((m) => m.ChatMessageSchema),
479
491
  "xnet://xnet.fyi/Feed": () => import("./feed-2IXHHP6O.js").then((m) => m.FeedSchema),
480
492
  "xnet://xnet.fyi/FeedItem": () => import("./feed-item-DPE6LN7I.js").then((m) => m.FeedItemSchema),
481
493
  "xnet://xnet.fyi/ExternalItem": () => import("./external-item-P2E5X7BZ.js").then((m) => m.ExternalItemSchema),
@@ -1760,6 +1772,9 @@ export {
1760
1772
  normalizeMentions,
1761
1773
  mentionsInclude,
1762
1774
  isValidMentions,
1775
+ MAX_LINK_PREVIEWS_PER_MESSAGE,
1776
+ isMessageLinkPreview,
1777
+ sanitizeLinkPreviews,
1763
1778
  createAccountRecord,
1764
1779
  admitDeviceRecord,
1765
1780
  nextEpoch,
@@ -58,6 +58,8 @@ var CommentSchema = defineSchema({
58
58
  * legacy text-parsed mentions (commentReferences.ts) remain as fallback.
59
59
  */
60
60
  mentions: json({}),
61
+ /** Composer-resolved URL previews (0295) — never parsed from content */
62
+ linkPreviews: json({}),
61
63
  // ─── Pseudo Reply-To (for UI, not structural threading) ────────────────────
62
64
  /** DID of user being replied to (UI hint) */
63
65
  replyToUser: person({}),
@@ -2484,6 +2484,11 @@ var NodeStore = class {
2484
2484
  return;
2485
2485
  }
2486
2486
  }
2487
+ const alreadyApplied = this.storage.hasChange ? await this.storage.hasChange(change.hash) : await this.storage.getChangeByHash(change.hash) !== null;
2488
+ if (alreadyApplied) {
2489
+ this.clock = receive(this.clock, change.lamport);
2490
+ return;
2491
+ }
2487
2492
  this.clock = receive(this.clock, change.lamport);
2488
2493
  await this.storage.setLastLamportTime(this.clock.time);
2489
2494
  const previousNode = this.cloneNodeState(await this.storage.getNode(change.payload.nodeId));
@@ -2919,8 +2924,9 @@ var NodeStore = class {
2919
2924
  wallTime: change.wallTime
2920
2925
  };
2921
2926
  const incomingWins = !existingTs || this.shouldReplace(existingTs, newTs);
2927
+ const target = isUnknownProperty ? node._unknown ??= {} : node.properties;
2928
+ const previousValue = target[key];
2922
2929
  if (incomingWins) {
2923
- const target = isUnknownProperty ? node._unknown ??= {} : node.properties;
2924
2930
  if (value === void 0) {
2925
2931
  delete target[key];
2926
2932
  } else {
@@ -2928,18 +2934,21 @@ var NodeStore = class {
2928
2934
  }
2929
2935
  node.timestamps[key] = newTs;
2930
2936
  }
2931
- if (existingTs) {
2932
- this.conflicts.push({
2933
- nodeId: change.payload.nodeId,
2934
- key,
2935
- localValue: isUnknownProperty ? node._unknown?.[key] : node.properties[key],
2936
- localTimestamp: existingTs,
2937
- remoteValue: value,
2938
- remoteTimestamp: newTs,
2939
- resolved: incomingWins ? "remote" : "local"
2940
- });
2941
- this.trimConflicts();
2942
- }
2937
+ if (!existingTs || existingTs.author === newTs.author) return;
2938
+ if (Object.is(previousValue, value)) return;
2939
+ this.conflicts.push({
2940
+ nodeId: change.payload.nodeId,
2941
+ key,
2942
+ localValue: previousValue,
2943
+ localTimestamp: existingTs,
2944
+ remoteValue: value,
2945
+ remoteTimestamp: newTs,
2946
+ resolved: incomingWins ? "remote" : "local",
2947
+ // A losing cross-author write is a true conflict; a winning one is an
2948
+ // informational lost-update record.
2949
+ kind: incomingWins ? "lww-resolution" : "conflict"
2950
+ });
2951
+ this.trimConflicts();
2943
2952
  }
2944
2953
  /**
2945
2954
  * Determine if newTs should replace existingTs (LWW). Delegates to the ONE
@@ -3203,20 +3212,25 @@ var MemoryNodeStorageAdapter = class {
3203
3212
  // Change Log Operations
3204
3213
  // ==========================================================================
3205
3214
  async appendChange(change) {
3215
+ this.appendChangeInternal(change);
3216
+ }
3217
+ async appendChanges(changes) {
3218
+ changes.forEach((change) => this.appendChangeInternal(change));
3219
+ }
3220
+ /**
3221
+ * Append with hash dedupe — replayed changes must not grow the log
3222
+ * (matches the SQLite adapter's `INSERT OR IGNORE`; exploration 0296).
3223
+ */
3224
+ appendChangeInternal(change) {
3225
+ if (this.changesByHash.has(change.hash)) return;
3206
3226
  const nodeId = change.payload.nodeId;
3207
3227
  const existing = this.changes.get(nodeId) ?? [];
3208
3228
  existing.push(change);
3209
3229
  this.changes.set(nodeId, existing);
3210
3230
  this.changesByHash.set(change.hash, change);
3211
3231
  }
3212
- async appendChanges(changes) {
3213
- changes.forEach((change) => {
3214
- const nodeId = change.payload.nodeId;
3215
- const existing = this.changes.get(nodeId) ?? [];
3216
- existing.push(change);
3217
- this.changes.set(nodeId, existing);
3218
- this.changesByHash.set(change.hash, change);
3219
- });
3232
+ async hasChange(hash) {
3233
+ return this.changesByHash.has(hash);
3220
3234
  }
3221
3235
  async getChanges(nodeId) {
3222
3236
  return this.changes.get(nodeId) ?? [];
@@ -4681,6 +4695,7 @@ var SQLiteNodeStorageAdapter = class {
4681
4695
  getAllChanges: () => this.getAllChanges(),
4682
4696
  getChangesSince: (sinceLamport) => this.getChangesSince(sinceLamport),
4683
4697
  getChangeByHash: (hash) => this.getChangeByHash(hash),
4698
+ hasChange: (hash) => this.hasChange(hash),
4684
4699
  getLastChange: (nodeId) => this.getLastChange(nodeId),
4685
4700
  getLastChangesByNodeId: (nodeIds) => this.getLastChangesByNodeId(nodeIds),
4686
4701
  appendChanges: (changes) => this.appendChangesInternal(changes),
@@ -4841,14 +4856,20 @@ var SQLiteNodeStorageAdapter = class {
4841
4856
  }
4842
4857
  async getChangeByHash(hash) {
4843
4858
  const row = await this.db.queryOne(
4844
- `SELECT hash, node_id, payload, lamport_time,
4845
- lamport_peer as lamport_author, wall_time,
4846
- author as author_did, parent_hash, batch_id, signature
4859
+ `SELECT hash, node_id, payload, lamport_time,
4860
+ lamport_peer as lamport_author, wall_time,
4861
+ author as author_did, parent_hash, batch_id, signature
4847
4862
  FROM changes WHERE hash = ?`,
4848
4863
  [hash]
4849
4864
  );
4850
4865
  return row ? this.deserializeChange(row) : null;
4851
4866
  }
4867
+ async hasChange(hash) {
4868
+ const row = await this.db.queryOne(`SELECT 1 FROM changes WHERE hash = ?`, [
4869
+ hash
4870
+ ]);
4871
+ return row !== null && row !== void 0;
4872
+ }
4852
4873
  async getLastChange(nodeId) {
4853
4874
  const row = await this.db.queryOne(
4854
4875
  `SELECT hash, node_id, payload, lamport_time,
@@ -38,6 +38,8 @@ var ChatMessageSchema = defineSchema({
38
38
  tags: relation({ target: "xnet://xnet.fyi/Tag@1.0.0", multiple: true }),
39
39
  /** Node ids from the composer's [[ link picks (exploration 0170) */
40
40
  links: relation({ multiple: true }),
41
+ /** Composer-resolved URL previews (0295) — never parsed from content */
42
+ linkPreviews: json({}),
41
43
  createdAt: created(),
42
44
  createdBy: createdBy()
43
45
  },
@@ -1,6 +1,6 @@
1
1
  import { C as CellValue, a7 as FormSubmissionMeta, E as ColumnDefinition, h as FieldType, j as FieldConfig, K as SelectColor, k as FieldNode, S as SelectOptionNode, V as ViewType, W as FilterGroup, Z as SortConfig, U as ViewConfig, B as ColumnType, Y as FilterOperator, L as RollupAggregation, l as RollupColumnConfig } from './form-types-BlZvpDEE.js';
2
- import { ao as NodeQueryMaterializedViewOptions, h as NodeState, B as PropertyType, S as SchemaIRI, a as Schema } from './types-S-BJAKyK.js';
3
- import { N as NodeStore } from './store-CjjofiLR.js';
2
+ import { ao as NodeQueryMaterializedViewOptions, h as NodeState, B as PropertyType, S as SchemaIRI, a as Schema } from './types-BB8-SLEa.js';
3
+ import { N as NodeStore } from './store-DEWnip2G.js';
4
4
  import * as Y from 'yjs';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CommentSchema
3
- } from "./chunk-5HC5NO57.js";
3
+ } from "./chunk-MCKP4F72.js";
4
4
  import "./chunk-OCMSAKWV.js";
5
5
  import "./chunk-T5AZAOG5.js";
6
6
  import "./chunk-EBNMV2VO.js";
@@ -1,12 +1,12 @@
1
1
  import { W as FilterGroup, E as ColumnDefinition, B as ColumnType, V as ViewType, Z as SortConfig } from '../form-types-BlZvpDEE.js';
2
2
  export { a as CELL_PREFIX, C as CellValue, G as ColumnConfig, aq as ColumnSummaryResult, at as DEFAULT_ROW_HEIGHT, n as DateColumnConfig, n as DateFieldConfig, D as DateRange, H as EmptyConfig, p as FIELD_TYPES, j as FieldConfig, k as FieldNode, h as FieldType, o as FileColumnConfig, o as FileFieldConfig, F as FileRef, X as FilterCondition, Y as FilterOperator, a6 as FormAudience, a3 as FormConfirmation, a5 as FormFieldRule, a2 as FormQuestion, a7 as FormSubmissionMeta, a8 as FormValidationError, a9 as FormValidationResult, a4 as FormViewConfig, m as FormulaColumnConfig, m as FormulaFieldConfig, N as NumberColumnConfig, N as NumberFieldConfig, ac as PUBLIC_SAFE_FORM_FIELD_TYPES, ab as PublicFormDefinition, aa as PublicFormQuestion, as as ROW_HEIGHTS, ar as ROW_HEIGHT_PX, R as RelationColumnConfig, R as RelationFieldConfig, L as RollupAggregation, l as RollupColumnConfig, l as RollupFieldConfig, ax as RowHeight, q as SELECT_COLORS, aj as SUMMARY_FUNCTIONS_BY_TYPE, K as SelectColor, I as SelectColumnConfig, J as SelectOption, S as SelectOptionNode, ap as SummaryColumnLike, an as SummaryFunction, ao as SummaryRow, T as TextColumnConfig, T as TextFieldConfig, U as ViewConfig, aw as asRowHeight, u as autoColor, ah as buildPublicFormDefinition, c as cellKey, b as columnIdFromKey, am as computeColumnSummary, f as fromCellProperties, P as isAutoColumnType, x as isAutoFieldType, i as isCellKey, g as isCellValue, O as isComputedColumnType, w as isComputedFieldType, d as isDateRange, r as isFieldType, e as isFileRef, al as isFilledValue, $ as isFilterCondition, _ as isFilterGroup, ad as isFormFieldTypeAllowed, ae as isFormQuestionVisible, M as isNodeStoreColumnType, v as isNodeStoreFieldType, s as isSelectColor, Q as isYDocColumnType, y as isYDocFieldType, a1 as requiresDateColumn, av as resolveRowHeightPx, au as rowHeightLabel, ai as submissionRowId, ak as summaryFunctionLabel, a0 as supportsGrouping, t as toCellProperties, z as toFieldNode, A as toSelectOptionNode, ag as validateFormSubmission, af as visibleFormQuestions } from '../form-types-BlZvpDEE.js';
3
- export { cD as CloneSchemaOptions, cE as CloneSchemaResult, cF as CloneSourceData, ax as ConvertContext, ay as ConvertedCell, cx as CreateDatabaseSchemaResolverOptions, O as CreateExtensionFieldOptions, w as CreateFieldOptions, C as CreateRowOptions, x as CreateSelectOptionOptions, Z as CreateViewOptions, b8 as CsvExportOptions, aV as CsvParseOptions, cm as DATABASE_SCHEMA_NAMESPACE, cn as DATABASE_SCHEMA_PREFIX, ag as DEFAULT_DATABASE_SCHEMA_VERSION, au as DatabaseDocumentModel, D as DatabaseRowNode, cp as DatabaseSchemaMetadata, cw as DocFetcher, N as EnsureExtensionOptions, b7 as ExportRow, bb as ExportedColumn, ba as ExportedJSON, bQ as FilterableRow, aH as FormulaRow, aF as FormulaService, aI as FormulaValidationResult, c2 as GroupAggregates, c0 as GroupConfig, b$ as GroupableRow, aX as InferredColumn, b9 as JsonExportOptions, aY as JsonParseOptions, M as MAX_KEY_LENGTH, co as MAX_VERSION_HISTORY, bF as OPERATORS_BY_TYPE, bG as OPERATOR_LABELS, aU as ParsedCSV, aW as ParsedJSON, ca as QueryOptions, cb as QueryResult, Q as QueryRowsOptions, a as QueryRowsResult, c9 as QueryableRow, R as RICHTEXT_PREFIX, aE as RollupContext, aD as RollupRow, c1 as RowGroup, cr as SchemaVersionEntry, af as SetupDatabaseResult, bW as SortableRow, cq as StoredColumn, U as UpdateFieldOptions, _ as UpdateViewOptions, cs as VersionBumpType, Y as ViewNode, ao as addDefaultTableView, an as addDefaultTitleColumn, bU as addOrToggleSort, bv as addViewSort, az as aggregate, aB as batchComputeRollups, ci as buildDatabaseSchema, ai as buildSchemaFromFields, cc as buildSchemaIRI, cg as bumpSchemaVersion, aw as cellValueToText, e as checkNeedsRebalancing, bt as clearViewFilters, bx as clearViewSorts, cz as cloneColumns, cA as cloneSampleRows, cy as cloneSchema, b_ as collapseAllGroups, bO as combineFiltersAnd, bP as combineFiltersOr, j as compareSortKeys, aA as computeRollup, av as convertCellValue, bN as createAnyOfFilter, bg as createColumn, b0 as createCsvBlob, ct as createDatabaseSchemaResolver, bM as createEqualsFilter, J as createExtensionField, B as createField, c4 as createFilterQuery, aG as createFormulaService, ch as createInitialSchemaMetadata, b5 as createJsonBlob, ak as createNodeDatabaseSchemaResolver, c6 as createPaginatedQuery, c as createRow, T as createSelectOption, bS as createSort, c5 as createSortQuery, cj as createVersionEntry, bo as createView, a1 as createViewNode, bi as deleteColumn, L as deleteExtensionField, F as deleteField, as as deleteMeta, t as deleteRichTextCell, d as deleteRow, W as deleteSelectOption, bq as deleteView, a3 as deleteViewNode, b1 as downloadCsv, b6 as downloadJson, bk as duplicateColumn, H as duplicateField, br as duplicateView, a4 as duplicateViewNode, ad as effectiveFieldSortKey, I as ensureSchemaExtension, a_ as escapeCSV, c3 as executeQuery, bZ as expandAllGroups, aZ as exportToCsv, b2 as exportToJson, b3 as exportToJsonArray, b4 as exportToNdjson, cu as extractSchemaFromDoc, ah as fieldsToStoredColumns, bL as filterRows, c7 as flattenGroups, a$ as formatValue, cB as generateColumnIdMap, f as generateSortKey, h as generateSortKeyWithJitter, cI as getAggregationResultType, bd as getColumn, be as getColumnIndex, bc as getColumns, at as getDatabaseDocumentModel, aj as getDatabaseSchemaIRI, S as getDatabaseSelectOptions, cG as getEmptyValue, z as getField, y as getFields, aq as getMeta, bJ as getOperatorLabel, bH as getOperatorsForType, l as getRichTextCell, s as getRichTextColumnIds, v as getRichTextPlainText, g as getRow, cv as getSchemaIRIFromDoc, P as getSelectOptions, bf as getTitleColumn, A as getTitleField, c8 as getTotalFromGroups, cl as getVersionBumpType, bm as getView, bn as getViewByType, a0 as getViewNode, $ as getViewNodes, bl as getViews, bX as groupRows, aL as guessColumnType, p as hasRichTextColumns, o as hasRichTextContent, bC as hideColumn, aO as inferColumnTypes, aQ as inferColumnsFromRows, aR as inferTypeFromValues, al as initializeDatabaseDoc, am as isDatabaseDocInitialized, ce as isDatabaseSchemaIRI, cH as isNumericAggregation, bI as isValidOperator, i as isValidSortKey, G as moveField, m as moveRow, X as moveSelectOption, a5 as moveView, n as needsRebalancing, bK as operatorRequiresValue, aJ as parseCSV, aK as parseCSVLine, cd as parseDatabaseSchemaIRI, aP as parseJSON, aN as parseRow, aM as parseValue, cf as parseVersion, ck as pruneVersionHistory, q as queryRows, r as rebalanceDatabase, k as rebalanceSortKeys, cC as remapViewColumnIds, bV as removeSort, bw as removeViewSort, K as renameExtensionField, bj as reorderColumn, bD as reorderViewColumns, bE as setColumnWidth, aa as setFieldHidden, ar as setMeta, ac as setViewFieldOrder, ab as setViewFieldWidth, bs as setViewFilters, by as setViewGroupBy, a6 as setViewNodeFilters, a8 as setViewNodeGroupBy, a7 as setViewNodeSorts, bu as setViewSorts, bA as setVisibleColumns, ae as setupDatabase, ap as setupNewDatabase, bB as showColumn, bR as sortRows, aS as toColumnDefinitions, bz as toggleGroupCollapsed, bY as toggleGroupCollapsedState, bT as toggleSortDirection, a9 as toggleViewGroupCollapsed, u as updateCell, b as updateCells, bh as updateColumn, E as updateField, V as updateSelectOption, bp as updateView, a2 as updateViewNode, aT as validateJsonData, aC as validateRollupConfig } from '../clone-_owA3IXN.js';
4
- import '../types-S-BJAKyK.js';
3
+ export { cD as CloneSchemaOptions, cE as CloneSchemaResult, cF as CloneSourceData, ax as ConvertContext, ay as ConvertedCell, cx as CreateDatabaseSchemaResolverOptions, O as CreateExtensionFieldOptions, w as CreateFieldOptions, C as CreateRowOptions, x as CreateSelectOptionOptions, Z as CreateViewOptions, b8 as CsvExportOptions, aV as CsvParseOptions, cm as DATABASE_SCHEMA_NAMESPACE, cn as DATABASE_SCHEMA_PREFIX, ag as DEFAULT_DATABASE_SCHEMA_VERSION, au as DatabaseDocumentModel, D as DatabaseRowNode, cp as DatabaseSchemaMetadata, cw as DocFetcher, N as EnsureExtensionOptions, b7 as ExportRow, bb as ExportedColumn, ba as ExportedJSON, bQ as FilterableRow, aH as FormulaRow, aF as FormulaService, aI as FormulaValidationResult, c2 as GroupAggregates, c0 as GroupConfig, b$ as GroupableRow, aX as InferredColumn, b9 as JsonExportOptions, aY as JsonParseOptions, M as MAX_KEY_LENGTH, co as MAX_VERSION_HISTORY, bF as OPERATORS_BY_TYPE, bG as OPERATOR_LABELS, aU as ParsedCSV, aW as ParsedJSON, ca as QueryOptions, cb as QueryResult, Q as QueryRowsOptions, a as QueryRowsResult, c9 as QueryableRow, R as RICHTEXT_PREFIX, aE as RollupContext, aD as RollupRow, c1 as RowGroup, cr as SchemaVersionEntry, af as SetupDatabaseResult, bW as SortableRow, cq as StoredColumn, U as UpdateFieldOptions, _ as UpdateViewOptions, cs as VersionBumpType, Y as ViewNode, ao as addDefaultTableView, an as addDefaultTitleColumn, bU as addOrToggleSort, bv as addViewSort, az as aggregate, aB as batchComputeRollups, ci as buildDatabaseSchema, ai as buildSchemaFromFields, cc as buildSchemaIRI, cg as bumpSchemaVersion, aw as cellValueToText, e as checkNeedsRebalancing, bt as clearViewFilters, bx as clearViewSorts, cz as cloneColumns, cA as cloneSampleRows, cy as cloneSchema, b_ as collapseAllGroups, bO as combineFiltersAnd, bP as combineFiltersOr, j as compareSortKeys, aA as computeRollup, av as convertCellValue, bN as createAnyOfFilter, bg as createColumn, b0 as createCsvBlob, ct as createDatabaseSchemaResolver, bM as createEqualsFilter, J as createExtensionField, B as createField, c4 as createFilterQuery, aG as createFormulaService, ch as createInitialSchemaMetadata, b5 as createJsonBlob, ak as createNodeDatabaseSchemaResolver, c6 as createPaginatedQuery, c as createRow, T as createSelectOption, bS as createSort, c5 as createSortQuery, cj as createVersionEntry, bo as createView, a1 as createViewNode, bi as deleteColumn, L as deleteExtensionField, F as deleteField, as as deleteMeta, t as deleteRichTextCell, d as deleteRow, W as deleteSelectOption, bq as deleteView, a3 as deleteViewNode, b1 as downloadCsv, b6 as downloadJson, bk as duplicateColumn, H as duplicateField, br as duplicateView, a4 as duplicateViewNode, ad as effectiveFieldSortKey, I as ensureSchemaExtension, a_ as escapeCSV, c3 as executeQuery, bZ as expandAllGroups, aZ as exportToCsv, b2 as exportToJson, b3 as exportToJsonArray, b4 as exportToNdjson, cu as extractSchemaFromDoc, ah as fieldsToStoredColumns, bL as filterRows, c7 as flattenGroups, a$ as formatValue, cB as generateColumnIdMap, f as generateSortKey, h as generateSortKeyWithJitter, cI as getAggregationResultType, bd as getColumn, be as getColumnIndex, bc as getColumns, at as getDatabaseDocumentModel, aj as getDatabaseSchemaIRI, S as getDatabaseSelectOptions, cG as getEmptyValue, z as getField, y as getFields, aq as getMeta, bJ as getOperatorLabel, bH as getOperatorsForType, l as getRichTextCell, s as getRichTextColumnIds, v as getRichTextPlainText, g as getRow, cv as getSchemaIRIFromDoc, P as getSelectOptions, bf as getTitleColumn, A as getTitleField, c8 as getTotalFromGroups, cl as getVersionBumpType, bm as getView, bn as getViewByType, a0 as getViewNode, $ as getViewNodes, bl as getViews, bX as groupRows, aL as guessColumnType, p as hasRichTextColumns, o as hasRichTextContent, bC as hideColumn, aO as inferColumnTypes, aQ as inferColumnsFromRows, aR as inferTypeFromValues, al as initializeDatabaseDoc, am as isDatabaseDocInitialized, ce as isDatabaseSchemaIRI, cH as isNumericAggregation, bI as isValidOperator, i as isValidSortKey, G as moveField, m as moveRow, X as moveSelectOption, a5 as moveView, n as needsRebalancing, bK as operatorRequiresValue, aJ as parseCSV, aK as parseCSVLine, cd as parseDatabaseSchemaIRI, aP as parseJSON, aN as parseRow, aM as parseValue, cf as parseVersion, ck as pruneVersionHistory, q as queryRows, r as rebalanceDatabase, k as rebalanceSortKeys, cC as remapViewColumnIds, bV as removeSort, bw as removeViewSort, K as renameExtensionField, bj as reorderColumn, bD as reorderViewColumns, bE as setColumnWidth, aa as setFieldHidden, ar as setMeta, ac as setViewFieldOrder, ab as setViewFieldWidth, bs as setViewFilters, by as setViewGroupBy, a6 as setViewNodeFilters, a8 as setViewNodeGroupBy, a7 as setViewNodeSorts, bu as setViewSorts, bA as setVisibleColumns, ae as setupDatabase, ap as setupNewDatabase, bB as showColumn, bR as sortRows, aS as toColumnDefinitions, bz as toggleGroupCollapsed, bY as toggleGroupCollapsedState, bT as toggleSortDirection, a9 as toggleViewGroupCollapsed, u as updateCell, b as updateCells, bh as updateColumn, E as updateField, V as updateSelectOption, bp as updateView, a2 as updateViewNode, aT as validateJsonData, aC as validateRollupConfig } from '../clone-CbmoWwu4.js';
4
+ import '../types-BB8-SLEa.js';
5
5
  import '@xnetjs/core';
6
6
  import '@xnetjs/crypto';
7
7
  import '@xnetjs/sqlite';
8
8
  import '@xnetjs/sync';
9
- import '../store-CjjofiLR.js';
9
+ import '../store-DEWnip2G.js';
10
10
  import 'yjs';
11
11
 
12
12
  /**
@@ -1,6 +1,6 @@
1
1
  import { SerializedAuthorization, SerializedRoleResolver, PolicyEvaluator, DID, AuthDecision, RoleResolver, AuthDenyReason, AuthCheckInput, AuthTrace, AuthExpression } from '@xnetjs/core';
2
- import { a as Schema, h as NodeState, v as NodeChangeEvent, w as GrantIndex, O as OfflineAuthPolicy, D as DefinedSchema } from './types-S-BJAKyK.js';
3
- import { S as SchemaRegistry } from './registry-DunPv__d.js';
2
+ import { a as Schema, h as NodeState, v as NodeChangeEvent, w as GrantIndex, O as OfflineAuthPolicy, D as DefinedSchema } from './types-BB8-SLEa.js';
3
+ import { S as SchemaRegistry } from './registry-_49rC6IG.js';
4
4
 
5
5
  /**
6
6
  * Permission-matrix reflection.
package/dist/index.d.ts CHANGED
@@ -1,19 +1,19 @@
1
- export { a5 as ApplyNodeBatchInput, a6 as ApplyNodeBatchResult, b1 as AuthGrant, av as ConflictResult, ay as ContentKeyCache, ae as CountNodesOptions, H as CreateNodeOptions, C as CreateNodeStoreOptions, aX as DEFAULT_OFFLINE_POLICY, y as DID, D as DefinedSchema, ab as DeterministicNodeBatchWriteInput, m as DeterministicNodeImportDraft, aV as GRANT_SCHEMA_IRI, G as GetWithMigrationOptions, w as GrantIndex, b0 as GrantInput, aU as GrantRateLimiter, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, a3 as ImportNodesOptions, I as InferCreateProps, Q as InferNode, K as InferProperties, J as InferPropertyType, W as LensOperation, Z as LensRegistry, L as ListNodesOptions, s as MergeConflict, M as MigratedNodeState, Y as MigrationError, az as MigrationInfo, X as MigrationResult, x as Node, aw as NodeBatchChangeEvent, u as NodeBatchChangeListener, a7 as NodeBatchIndexMode, a8 as NodeBatchNotificationMode, aa as NodeBatchPreflightResult, a9 as NodeBatchSyncMode, p as NodeBatchWriteInput, ac as NodeBatchWritePolicy, q as NodeBatchWriteResult, ad as NodeBatchWriteTimings, r as NodeChange, v as NodeChangeEvent, t as NodeChangeListener, ax as NodeContentCipher, i as NodeId, a0 as NodePayload, ar as NodeQueryCursor, aq as NodeQueryCursorOrderEntry, j as NodeQueryDescriptor, ao as NodeQueryMaterializedViewOptions, as as NodeQueryOptions, N as NodeQueryPageCountMode, ap as NodeQueryPageOptions, au as NodeQueryParityCheckMetadata, at as NodeQueryPlanMetadata, k as NodeQueryResult, am as NodeQuerySearchField, an as NodeQuerySearchFilter, al as NodeQuerySpatialFilter, af as NodeQuerySpatialPoint, ah as NodeQuerySpatialPointFields, ak as NodeQuerySpatialRadius, ag as NodeQuerySpatialRect, ai as NodeQuerySpatialRectFields, aj as NodeQuerySpatialWindow, h as NodeState, g as NodeStorageAdapter, f as NodeStoreOptions, O as OfflineAuthPolicy, P as PropertyBuilder, E as PropertyDefinition, $ as PropertyKey, a1 as PropertyTimestamp, B as PropertyType, a4 as RebuildNodeIndexesOptions, a as Schema, S as SchemaIRI, R as SchemaLens, aR as SchemaLookup, a2 as SetNodeOptions, c as SortDirection, aT as StoreAuth, e as StoreAuthAPI, b2 as StoreAuthError, b3 as StoreAuthErrorCode, a$ as StoreAuthKeyManager, aZ as StoreAuthOptions, a_ as StoreAuthStore, d as SystemOrderField, aO as TEMP_ID_PREFIX, aS as TempIdResolution, T as TransactionOperation, l as TransactionResult, U as UpdateNodeOptions, F as ValidationError, V as ValidationResult, aI as applyNodeQueryDescriptor, A as createNodeId, aA as createNodeQueryDescriptor, aQ as createSchemaLookup, aC as decodeNodeQueryCursor, aB as encodeNodeQueryCursor, aG as filterNodeQueryResults, aJ as getNodeQuerySearchTokens, aW as isGrantActive, z as isNode, aN as isTempId, _ as lensRegistry, aF as matchesNodeQueryDescriptor, aY as mergeOfflinePolicy, aK as nodeQueryDescriptorNeedsBoundedReload, aD as nodeQueryDescriptorToOptions, aP as resolveTempIds, aE as serializeNodeQueryDescriptor, aH as sortNodeQueryResults, aM as withoutNodeQueryMaterializedView, aL as withoutNodeQueryPagination } from './types-S-BJAKyK.js';
1
+ export { a5 as ApplyNodeBatchInput, a6 as ApplyNodeBatchResult, b1 as AuthGrant, av as ConflictResult, ay as ContentKeyCache, ae as CountNodesOptions, H as CreateNodeOptions, C as CreateNodeStoreOptions, aX as DEFAULT_OFFLINE_POLICY, y as DID, D as DefinedSchema, ab as DeterministicNodeBatchWriteInput, m as DeterministicNodeImportDraft, aV as GRANT_SCHEMA_IRI, G as GetWithMigrationOptions, w as GrantIndex, b0 as GrantInput, aU as GrantRateLimiter, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, a3 as ImportNodesOptions, I as InferCreateProps, Q as InferNode, K as InferProperties, J as InferPropertyType, W as LensOperation, Z as LensRegistry, L as ListNodesOptions, s as MergeConflict, M as MigratedNodeState, Y as MigrationError, az as MigrationInfo, X as MigrationResult, x as Node, aw as NodeBatchChangeEvent, u as NodeBatchChangeListener, a7 as NodeBatchIndexMode, a8 as NodeBatchNotificationMode, aa as NodeBatchPreflightResult, a9 as NodeBatchSyncMode, p as NodeBatchWriteInput, ac as NodeBatchWritePolicy, q as NodeBatchWriteResult, ad as NodeBatchWriteTimings, r as NodeChange, v as NodeChangeEvent, t as NodeChangeListener, ax as NodeContentCipher, i as NodeId, a0 as NodePayload, ar as NodeQueryCursor, aq as NodeQueryCursorOrderEntry, j as NodeQueryDescriptor, ao as NodeQueryMaterializedViewOptions, as as NodeQueryOptions, N as NodeQueryPageCountMode, ap as NodeQueryPageOptions, au as NodeQueryParityCheckMetadata, at as NodeQueryPlanMetadata, k as NodeQueryResult, am as NodeQuerySearchField, an as NodeQuerySearchFilter, al as NodeQuerySpatialFilter, af as NodeQuerySpatialPoint, ah as NodeQuerySpatialPointFields, ak as NodeQuerySpatialRadius, ag as NodeQuerySpatialRect, ai as NodeQuerySpatialRectFields, aj as NodeQuerySpatialWindow, h as NodeState, g as NodeStorageAdapter, f as NodeStoreOptions, O as OfflineAuthPolicy, P as PropertyBuilder, E as PropertyDefinition, $ as PropertyKey, a1 as PropertyTimestamp, B as PropertyType, a4 as RebuildNodeIndexesOptions, a as Schema, S as SchemaIRI, R as SchemaLens, aR as SchemaLookup, a2 as SetNodeOptions, c as SortDirection, aT as StoreAuth, e as StoreAuthAPI, b2 as StoreAuthError, b3 as StoreAuthErrorCode, a$ as StoreAuthKeyManager, aZ as StoreAuthOptions, a_ as StoreAuthStore, d as SystemOrderField, aO as TEMP_ID_PREFIX, aS as TempIdResolution, T as TransactionOperation, l as TransactionResult, U as UpdateNodeOptions, F as ValidationError, V as ValidationResult, aI as applyNodeQueryDescriptor, A as createNodeId, aA as createNodeQueryDescriptor, aQ as createSchemaLookup, aC as decodeNodeQueryCursor, aB as encodeNodeQueryCursor, aG as filterNodeQueryResults, aJ as getNodeQuerySearchTokens, aW as isGrantActive, z as isNode, aN as isTempId, _ as lensRegistry, aF as matchesNodeQueryDescriptor, aY as mergeOfflinePolicy, aK as nodeQueryDescriptorNeedsBoundedReload, aD as nodeQueryDescriptorToOptions, aP as resolveTempIds, aE as serializeNodeQueryDescriptor, aH as sortNodeQueryResults, aM as withoutNodeQueryMaterializedView, aL as withoutNodeQueryPagination } from './types-BB8-SLEa.js';
2
2
  import { FileRef } from './schema/index.js';
3
- export { ACCOUNT_RECORD_SCHEMA_IRI, ACCOUNT_SCHEMA_IRI, ACHIEVEMENT_SCHEMA_IRI, ACTIVITY_KINDS, ACTIVITY_SCHEMA_IRI, AbuseReport, AbuseReportSchema, Account, AccountClassId, AccountRecord, AccountRecordSchema, AccountSchema, Achievement, AchievementSchema, Activity, ActivityKind, ActivitySchema, AnchorData, AnchorType, Appeal, AppealSchema, BUDGET_SCHEMA_IRI, Budget, BudgetPeriod, BudgetSchema, BuiltInSchemaIRI, CHANNEL_KINDS, CONTACT_LIFECYCLE, CONTACT_SCHEMA_IRI, CRM_NAMESPACE, Canvas, CanvasObjectAnchor, CanvasObjectAnchorPlacement, CanvasPositionAnchor, CanvasSchema, CellAnchor, Channel, ChannelKind, ChannelNotifyTier, ChannelSchema, ChatMessage, ChatMessageSchema, CheckboxOptions, ColumnAnchor, Comment, CommentSchema, CommunityNote, CommunityNoteSchema, Contact, ContactLifecycle, ContactSchema, ContentProvenance, ContentProvenanceSchema, CoreSchemaResolver, CreatedByOptions, CreatedOptions, CrmVisibility, DEAL_CONTACT_ROLES, DEAL_CONTACT_ROLE_SCHEMA_IRI, DEAL_SCHEMA_IRI, DEAL_SOURCES, DEFAULT_CHANNEL_TIER, DEVICE_RECORD_SCHEMA_IRI, Dashboard, DashboardBreakpointId, DashboardLayoutItem, DashboardLayouts, DashboardSchema, DashboardTimeRange, DashboardVariablesState, DashboardWidgetInstance, DashboardWidgetRefresh, Database, DatabaseField, DatabaseFieldSchema, DatabaseRow, DatabaseRowSchema, DatabaseSchema, DatabaseSelectOption, DatabaseSelectOptionSchema, DatabaseView, DatabaseViewSchema, DateOptions, DateRange, DateRangeOptions, Deal, DealContactRole, DealContactRoleKind, DealContactRoleSchema, DealSchema, DealSource, DefineSchemaOptions, DeviceLike, DeviceRecord, DeviceRecordSchema, EXTENSION_FIELD_SCHEMA_IRI, EXTERNAL_ITEM_SCHEMA_IRI, EXTERNAL_ITEM_SOURCES, EXT_PREFIX, EffectiveExtensionField, EmailOptions, Experiment, ExperimentDesign, ExperimentPhase, ExperimentSchema, ExperimentStatus, ExtensionField, ExtensionFieldRecord, ExtensionFieldSchema, ExtensionRecord, ExternalItem, ExternalItemSchema, ExternalReference, ExternalReferenceSchema, FEED_ITEM_SCHEMA_IRI, FEED_SCHEMA_IRI, FOLDER_SCHEMA_IRI, FORECAST_CATEGORIES, Feed, FeedItem, FeedItemSchema, FeedSchema, FileOptions, Folder, FolderLike, FolderSchema, FolderTreeNode, ForecastCategory, GAME_ASSET_FORMATS, GAME_ASSET_MIME_TYPES, GAME_ASSET_SCHEMA_IRI, GAME_ECONOMY_ENTRY_SCHEMA_IRI, GAME_ITEM_SCHEMA_IRI, GAME_NAMESPACE, GAME_SCHEMA_IRIS, GameAsset, GameAssetFormat, GameAssetSchema, GameEconomyEntry, GameEconomyEntrySchema, GameItem, GameItemSchema, GameVisibility, GeoFeature, GeoFeatureCollection, GeoGeometry, GeoPosition, Grant, GrantSchema, IMPORT_BATCH_SCHEMA_IRI, INVENTORY_SCHEMA_IRI, ITEM_RARITIES, ImportBatch, ImportBatchSchema, ImportSource, InboxItemTriage, InboxState, InboxStateSchema, InboxWatermark, Inventory, InventorySchema, ItemRarity, JsonOptions, LINE_ITEM_SCHEMA_IRI, LedgerNodeIntent, LineItem, LineItemSchema, MATCH_RESULTS, MATCH_SESSION_SCHEMA_IRI, MAX_MENTION_DIDS, MAX_TAG_NAME_LENGTH, MEETING_CHANNELS, MEETING_SCHEMA_IRI, MEETING_TEMPLATE_IDS, MEETING_TRANSCRIPT_SCHEMA_IRI, MEMORY_ITEM_SCHEMA_IRI, MEMORY_KINDS, MILESTONE_SCHEMA_IRI, Map, MapBasemapId, MapLayerGeometry, MapLayerSource, MapLayerSpec, MapLayerStyle, MapSchema, MapViewport, MatchResult, MatchSession, MatchSessionSchema, MediaAsset, MediaAssetSchema, Meeting, MeetingChannel, MeetingSchema, MeetingSegment, MeetingTemplateId, MeetingTranscript, MeetingTranscriptSchema, MemoryItem, MemoryItemSchema, MemoryKind, Mention, MessageMentions, MessageRequest, MessageRequestSchema, Metric, MetricKind, MetricPolarity, MetricScheduleId, MetricSchema, Milestone, MilestoneSchema, ModerationLabel, ModerationLabelSchema, MoneyOptions, MoneyValue, MultiSelectOptions, NODE_VISIBILITY, NodeAnchor, NodeVisibility, NoteRating, NoteRatingSchema, NotificationPrefs, NumberOptions, ORGANIZATION_SCHEMA_IRI, ORGANIZATION_SIZES, Observation, ObservationPhase, ObservationSchema, Organization, OrganizationSchema, OrganizationSize, OrphanReason, OrphanResolvers, OrphanStatus, PIPELINE_SCHEMA_IRI, PLAYER_IDENTITY_SCHEMA_IRI, POSTING_SCHEMA_IRI, PRODUCT_KINDS, PRODUCT_SCHEMA_IRI, Page, PageSchema, ParsedSystemNamespaceResource, ParsedTaskShortId, PersonOptions, PhoneOptions, Pipeline, PipelineSchema, PlayerIdentity, PlayerIdentitySchema, PolicyList, PolicyListSchema, PolicySubscription, PolicySubscriptionSchema, Posting, PostingSchema, PresenceAggregator, PresenceAggregatorOptions, PresenceAggregatorStore, PresenceCountBucket, PresenceSummary, PresenceSummaryDescriptor, PresenceSummarySchema, PresenceVisibility, PresenceVisibilityResolver, Product, ProductKind, ProductSchema, Profile, ProfileSchema, Project, ProjectSchema, PublicInteractionPolicy, PublicInteractionPolicySchema, QualitySignal, QualitySignalSchema, RECOVERY_RECORD_SCHEMA_IRI, RELATIONSHIP_KINDS, RELATIONSHIP_SCHEMA_IRI, REVOCATION_RECORD_SCHEMA_IRI, Reaction, ReactionSchema, RecoveryRecord, RecoveryRecordSchema, RelationOptions, Relationship, RelationshipKind, RelationshipSchema, ReviewTask, ReviewTaskSchema, RevocationLike, RevocationRecord, RevocationRecordSchema, RowAnchor, SCHEMA_EXTENSION_SCHEMA_IRI, SIDECAR_PREFIX, SPACE_KINDS, SPACE_MEMBERSHIP_SCHEMA_IRI, SPACE_ROLES, SPACE_SCHEMA_IRI, SPACE_VISIBILITY, STAGE_SCHEMA_IRI, SYSTEM_NAMESPACE_KINDS, SYSTEM_SCHEMA_BASE_IRIS, SYSTEM_SCHEMA_IRIS, SavedView, SavedViewSchema, SchemaAuthorityResolution, SchemaAuthorityResolutionKind, SchemaAuthorityResolutionOptions, SchemaCompatibility, SchemaCompatibilityMode, SchemaCompatibilitySchema, SchemaDefinition, SchemaDefinitionSchema, SchemaDefinitionSigningInput, SchemaDefinitionStatus, SchemaExtension, SchemaExtensionSchema, SelectOption, SelectOptions, SidecarOverlay, Space, SpaceKind, SpaceLike, SpaceMembership, SpaceMembershipSchema, SpaceRole, SpaceSchema, SpaceTreeNode, SpaceVisibility, Stage, StageSchema, SyncPolicy, SyncPolicySchema, SyncPolicyStatus, SystemFederationErrorCode, SystemNamespaceKind, SystemSchemaDefinitionRecord, SystemSchemaIndex, SystemSchemaIndexDiagnostic, SystemSchemaIndexOptions, SystemSchemaIndexStore, TAG_SCHEMA_IRI, TASK_SHORT_ID_PATTERN, TASK_STATUS_CATEGORIES, TRANSACTION_SCHEMA_IRI, TRANSCRIPTION_SCHEMA_IRI, Tag, TagSchema, Task, TaskSchema, TaskShortIdBlock, TaskStatusCategory, TaskStatusId, TaskView, TaskViewSchema, TextAnchor, TextOptions, Transaction, TransactionSchema, TransactionStatus, Transcription, TranscriptionSchema, TranscriptionSourceId, UpdatedOptions, UrlOptions, UserWidget, UserWidgetConfigField, UserWidgetSchema, UserWidgetSize, ValidateSchemaDefinitionNodeOptions, Workspace, WorkspaceSchema, WorkspaceTreeJson, accountRecordId, accountState, addDefault, admitDeviceRecord, bucketPresenceCount, buildEffectiveSchema, buildFolderTree, buildSpaceTree, buildSystemNamespace, buildSystemNodeId, builtInSchemas, canManageSpace, canModifyColumn, checkOrphanStatus, checkbox, compareSpaceRoles, composeLens, computeSchemaDefinitionContentHash, convert, copy, createAccountRecord, createNodeGraphSchemaResolver, createOperations, createSchemaDefinitionSigningPayload, created, createdBy, crmSchemas, date, dateRange, decodeAnchor, defineSchema, deviceRecipientExpander, deviceRecordId, effectiveSpaceRole, email, encodeAnchor, extKey, extractMentions, file, filterOrphanedComments, findLockedColumns, flattenFolderTree, flattenSpaceTree, folderAncestorIds, folderPathIds, formatTaskShortId, gameSchemas, getMentionedUsers, getPresenceNoisePolicy, getTaskStatusCategory, identity, inboxStateNodeId, isCanvasObjectAnchor, isCanvasPositionAnchor, isCellAnchor, isColumnAnchor, isCompletedTaskStatus, isDeviceAuthorized, isExtKey, isMoneyValue, isNodeAnchor, isRowAnchor, isSchemaDefinitionNode, isSpaceRole, isSystemNamespaceResource, isSystemSchemaIri, isTextAnchor, isValidMentions, isValidTagName, json, loadExtensionFields, lockedPropertyKeys, mentionsInclude, merge, mergeSidecarsIntoRow, money, multiSelect, nextEpoch, normalizeMentions, normalizeTagName, number, parseExtKey, parseSystemNamespaceResource, parseTaskShortId, person, phone, promoteOverlay, recoveryRecordId, relation, remove, rename, resolveActiveDevices, resolveEffectiveSchema, resolveSchemaAuthority, revocationRecordId, revokeDeviceRecord, revokeSubjectRecord, revokedSubjects, schemaExtensionId, select, selectExtensionFields, shortIdsFromBlock, sidecarId, sidecarOverlayKeys, spaceAncestorIds, spaceMembershipId, spacePathIds, spaceRoleGrantActions, spaceRoleToShareRole, summarizePresenceNodes, taskBranchName, text, transform, updated, url, validateSchemaDefinitionNode, when, wouldCreateFolderCycle, wouldCreateSpaceCycle } from './schema/index.js';
4
- export { S as SchemaRegistry, s as schemaRegistry } from './registry-DunPv__d.js';
3
+ export { ACCOUNT_RECORD_SCHEMA_IRI, ACCOUNT_SCHEMA_IRI, ACHIEVEMENT_SCHEMA_IRI, ACTIVITY_KINDS, ACTIVITY_SCHEMA_IRI, AbuseReport, AbuseReportSchema, Account, AccountClassId, AccountRecord, AccountRecordSchema, AccountSchema, Achievement, AchievementSchema, Activity, ActivityKind, ActivitySchema, AnchorData, AnchorType, Appeal, AppealSchema, BUDGET_SCHEMA_IRI, Budget, BudgetPeriod, BudgetSchema, BuiltInSchemaIRI, CHANNEL_KINDS, CONTACT_LIFECYCLE, CONTACT_SCHEMA_IRI, CRM_NAMESPACE, Canvas, CanvasObjectAnchor, CanvasObjectAnchorPlacement, CanvasPositionAnchor, CanvasSchema, CellAnchor, Channel, ChannelKind, ChannelNotifyTier, ChannelSchema, ChatMessage, ChatMessageSchema, CheckboxOptions, ColumnAnchor, Comment, CommentSchema, CommunityNote, CommunityNoteSchema, Contact, ContactLifecycle, ContactSchema, ContentProvenance, ContentProvenanceSchema, CoreSchemaResolver, CreatedByOptions, CreatedOptions, CrmVisibility, DEAL_CONTACT_ROLES, DEAL_CONTACT_ROLE_SCHEMA_IRI, DEAL_SCHEMA_IRI, DEAL_SOURCES, DEFAULT_CHANNEL_TIER, DEVICE_RECORD_SCHEMA_IRI, Dashboard, DashboardBreakpointId, DashboardLayoutItem, DashboardLayouts, DashboardSchema, DashboardTimeRange, DashboardVariablesState, DashboardWidgetInstance, DashboardWidgetRefresh, Database, DatabaseField, DatabaseFieldSchema, DatabaseRow, DatabaseRowSchema, DatabaseSchema, DatabaseSelectOption, DatabaseSelectOptionSchema, DatabaseView, DatabaseViewSchema, DateOptions, DateRange, DateRangeOptions, Deal, DealContactRole, DealContactRoleKind, DealContactRoleSchema, DealSchema, DealSource, DefineSchemaOptions, DeviceLike, DeviceRecord, DeviceRecordSchema, EXTENSION_FIELD_SCHEMA_IRI, EXTERNAL_ITEM_SCHEMA_IRI, EXTERNAL_ITEM_SOURCES, EXT_PREFIX, EffectiveExtensionField, EmailOptions, Experiment, ExperimentDesign, ExperimentPhase, ExperimentSchema, ExperimentStatus, ExtensionField, ExtensionFieldRecord, ExtensionFieldSchema, ExtensionRecord, ExternalItem, ExternalItemSchema, ExternalReference, ExternalReferenceSchema, FEED_ITEM_SCHEMA_IRI, FEED_SCHEMA_IRI, FOLDER_SCHEMA_IRI, FORECAST_CATEGORIES, Feed, FeedItem, FeedItemSchema, FeedSchema, FileOptions, Folder, FolderLike, FolderSchema, FolderTreeNode, ForecastCategory, GAME_ASSET_FORMATS, GAME_ASSET_MIME_TYPES, GAME_ASSET_SCHEMA_IRI, GAME_ECONOMY_ENTRY_SCHEMA_IRI, GAME_ITEM_SCHEMA_IRI, GAME_NAMESPACE, GAME_SCHEMA_IRIS, GameAsset, GameAssetFormat, GameAssetSchema, GameEconomyEntry, GameEconomyEntrySchema, GameItem, GameItemSchema, GameVisibility, GeoFeature, GeoFeatureCollection, GeoGeometry, GeoPosition, Grant, GrantSchema, IMPORT_BATCH_SCHEMA_IRI, INVENTORY_SCHEMA_IRI, ITEM_RARITIES, ImportBatch, ImportBatchSchema, ImportSource, InboxItemTriage, InboxState, InboxStateSchema, InboxWatermark, Inventory, InventorySchema, ItemRarity, JsonOptions, LINE_ITEM_SCHEMA_IRI, LedgerNodeIntent, LineItem, LineItemSchema, MATCH_RESULTS, MATCH_SESSION_SCHEMA_IRI, MAX_LINK_PREVIEWS_PER_MESSAGE, MAX_MENTION_DIDS, MAX_TAG_NAME_LENGTH, MEETING_CHANNELS, MEETING_SCHEMA_IRI, MEETING_TEMPLATE_IDS, MEETING_TRANSCRIPT_SCHEMA_IRI, MEMORY_ITEM_SCHEMA_IRI, MEMORY_KINDS, MILESTONE_SCHEMA_IRI, Map, MapBasemapId, MapLayerGeometry, MapLayerSource, MapLayerSpec, MapLayerStyle, MapSchema, MapViewport, MatchResult, MatchSession, MatchSessionSchema, MediaAsset, MediaAssetSchema, Meeting, MeetingChannel, MeetingSchema, MeetingSegment, MeetingTemplateId, MeetingTranscript, MeetingTranscriptSchema, MemoryItem, MemoryItemSchema, MemoryKind, Mention, MessageLinkPreview, MessageMentions, MessageRequest, MessageRequestSchema, Metric, MetricKind, MetricPolarity, MetricScheduleId, MetricSchema, Milestone, MilestoneSchema, ModerationLabel, ModerationLabelSchema, MoneyOptions, MoneyValue, MultiSelectOptions, NODE_VISIBILITY, NodeAnchor, NodeVisibility, NoteRating, NoteRatingSchema, NotificationPrefs, NumberOptions, ORGANIZATION_SCHEMA_IRI, ORGANIZATION_SIZES, Observation, ObservationPhase, ObservationSchema, Organization, OrganizationSchema, OrganizationSize, OrphanReason, OrphanResolvers, OrphanStatus, PIPELINE_SCHEMA_IRI, PLAYER_IDENTITY_SCHEMA_IRI, POSTING_SCHEMA_IRI, PRODUCT_KINDS, PRODUCT_SCHEMA_IRI, Page, PageSchema, ParsedSystemNamespaceResource, ParsedTaskShortId, PersonOptions, PhoneOptions, Pipeline, PipelineSchema, PlayerIdentity, PlayerIdentitySchema, PolicyList, PolicyListSchema, PolicySubscription, PolicySubscriptionSchema, Posting, PostingSchema, PresenceAggregator, PresenceAggregatorOptions, PresenceAggregatorStore, PresenceCountBucket, PresenceSummary, PresenceSummaryDescriptor, PresenceSummarySchema, PresenceVisibility, PresenceVisibilityResolver, Product, ProductKind, ProductSchema, Profile, ProfileSchema, Project, ProjectSchema, PublicInteractionPolicy, PublicInteractionPolicySchema, QualitySignal, QualitySignalSchema, RECOVERY_RECORD_SCHEMA_IRI, RELATIONSHIP_KINDS, RELATIONSHIP_SCHEMA_IRI, REVOCATION_RECORD_SCHEMA_IRI, Reaction, ReactionSchema, RecoveryRecord, RecoveryRecordSchema, RelationOptions, Relationship, RelationshipKind, RelationshipSchema, ReviewTask, ReviewTaskSchema, RevocationLike, RevocationRecord, RevocationRecordSchema, RowAnchor, SCHEMA_EXTENSION_SCHEMA_IRI, SIDECAR_PREFIX, SPACE_KINDS, SPACE_MEMBERSHIP_SCHEMA_IRI, SPACE_ROLES, SPACE_SCHEMA_IRI, SPACE_VISIBILITY, STAGE_SCHEMA_IRI, SYSTEM_NAMESPACE_KINDS, SYSTEM_SCHEMA_BASE_IRIS, SYSTEM_SCHEMA_IRIS, SavedView, SavedViewSchema, SchemaAuthorityResolution, SchemaAuthorityResolutionKind, SchemaAuthorityResolutionOptions, SchemaCompatibility, SchemaCompatibilityMode, SchemaCompatibilitySchema, SchemaDefinition, SchemaDefinitionSchema, SchemaDefinitionSigningInput, SchemaDefinitionStatus, SchemaExtension, SchemaExtensionSchema, SelectOption, SelectOptions, SidecarOverlay, Space, SpaceKind, SpaceLike, SpaceMembership, SpaceMembershipSchema, SpaceRole, SpaceSchema, SpaceTreeNode, SpaceVisibility, Stage, StageSchema, SyncPolicy, SyncPolicySchema, SyncPolicyStatus, SystemFederationErrorCode, SystemNamespaceKind, SystemSchemaDefinitionRecord, SystemSchemaIndex, SystemSchemaIndexDiagnostic, SystemSchemaIndexOptions, SystemSchemaIndexStore, TAG_SCHEMA_IRI, TASK_SHORT_ID_PATTERN, TASK_STATUS_CATEGORIES, TRANSACTION_SCHEMA_IRI, TRANSCRIPTION_SCHEMA_IRI, Tag, TagSchema, Task, TaskSchema, TaskShortIdBlock, TaskStatusCategory, TaskStatusId, TaskView, TaskViewSchema, TextAnchor, TextOptions, Transaction, TransactionSchema, TransactionStatus, Transcription, TranscriptionSchema, TranscriptionSourceId, UpdatedOptions, UrlOptions, UserWidget, UserWidgetConfigField, UserWidgetSchema, UserWidgetSize, ValidateSchemaDefinitionNodeOptions, Workspace, WorkspaceSchema, WorkspaceTreeJson, accountRecordId, accountState, addDefault, admitDeviceRecord, bucketPresenceCount, buildEffectiveSchema, buildFolderTree, buildSpaceTree, buildSystemNamespace, buildSystemNodeId, builtInSchemas, canManageSpace, canModifyColumn, checkOrphanStatus, checkbox, compareSpaceRoles, composeLens, computeSchemaDefinitionContentHash, convert, copy, createAccountRecord, createNodeGraphSchemaResolver, createOperations, createSchemaDefinitionSigningPayload, created, createdBy, crmSchemas, date, dateRange, decodeAnchor, defineSchema, deviceRecipientExpander, deviceRecordId, effectiveSpaceRole, email, encodeAnchor, extKey, extractMentions, file, filterOrphanedComments, findLockedColumns, flattenFolderTree, flattenSpaceTree, folderAncestorIds, folderPathIds, formatTaskShortId, gameSchemas, getMentionedUsers, getPresenceNoisePolicy, getTaskStatusCategory, identity, inboxStateNodeId, isCanvasObjectAnchor, isCanvasPositionAnchor, isCellAnchor, isColumnAnchor, isCompletedTaskStatus, isDeviceAuthorized, isExtKey, isMessageLinkPreview, isMoneyValue, isNodeAnchor, isRowAnchor, isSchemaDefinitionNode, isSpaceRole, isSystemNamespaceResource, isSystemSchemaIri, isTextAnchor, isValidMentions, isValidTagName, json, loadExtensionFields, lockedPropertyKeys, mentionsInclude, merge, mergeSidecarsIntoRow, money, multiSelect, nextEpoch, normalizeMentions, normalizeTagName, number, parseExtKey, parseSystemNamespaceResource, parseTaskShortId, person, phone, promoteOverlay, recoveryRecordId, relation, remove, rename, resolveActiveDevices, resolveEffectiveSchema, resolveSchemaAuthority, revocationRecordId, revokeDeviceRecord, revokeSubjectRecord, revokedSubjects, sanitizeLinkPreviews, schemaExtensionId, select, selectExtensionFields, shortIdsFromBlock, sidecarId, sidecarOverlayKeys, spaceAncestorIds, spaceMembershipId, spacePathIds, spaceRoleGrantActions, spaceRoleToShareRole, summarizePresenceNodes, taskBranchName, text, transform, updated, url, validateSchemaDefinitionNode, when, wouldCreateFolderCycle, wouldCreateSpaceCycle } from './schema/index.js';
4
+ export { S as SchemaRegistry, s as schemaRegistry } from './registry-_49rC6IG.js';
5
5
  export { SignUpdateOptions, applySignedUpdate, captureUpdate, getMissingUpdates, mergeDocuments, signUpdate, verifyUpdate } from './updates.js';
6
6
  import * as Y from 'yjs';
7
7
  export { Array as YArray, Doc as YDoc, Map as YMap, Text as YText, XmlElement as YXmlElement, XmlFragment as YXmlFragment, XmlText as YXmlText } from 'yjs';
8
8
  export { CursorPosition, SelectionRange, UserPresence, clearLocalPresence, createAwareness, generateUserColor, getAllPresences, getLocalClientId, getRemotePresences, onPresenceChange, setLocalPresence } from './sync/awareness.js';
9
- export { G as QUERY_AST_VERSION, r as QueryAST, n as QueryASTAggregate, A as QueryASTAggregateExecution, m as QueryASTAggregateFunction, y as QueryASTAggregateGroup, x as QueryASTAggregatePlan, z as QueryASTAggregateResult, d as QueryASTComparisonPredicate, e as QueryASTCompoundPredicate, a as QueryASTField, l as QueryASTIncludes, p as QueryASTNodeQuery, s as QueryASTNodeQueryOptions, f as QueryASTNotPredicate, c as QueryASTOperator, h as QueryASTOrderBy, i as QueryASTPage, B as QueryASTPlannerGate, g as QueryASTPredicate, q as QueryASTQuerySet, o as QueryASTQuerySetAggregate, j as QueryASTRelationDirection, k as QueryASTRelationInclude, t as QueryASTRelationIncludeOptions, w as QueryASTRelationIndexRequirement, b as QueryASTSchemaInput, u as QueryASTValidationError, v as QueryASTValidationResult, Q as QueryASTVersion, S as SavedViewDescriptor, F as SavedViewFeedDensity, E as SavedViewFeedLayout, C as SavedViewPresentationHint, D as SavedViewPresentationHintMode, V as and, a3 as avg, N as between, P as contains, a0 as count, a1 as countDistinct, a9 as dashboardQuerySet, Z as defineNodeQueryAST, a8 as defineQuerySetAST, ab as defineSavedViewDescriptor, H as eq, aj as evaluateQueryASTPlannerGate, af as executeQueryASTLoadedAggregates, ag as filterQueryASTLoadedRows, _ as follow, $ as from, ah as getQueryASTRelationIndexRequirements, a6 as groupBy, J as gt, K as gte, a7 as having, O as includesAny, U as isNotNull, T as isNull, L as lt, M as lte, ai as matchesQueryASTLoadedRow, a5 as max, a4 as min, I as neq, X as not, W as or, ae as planQueryASTAggregates, Y as queryOperators, aa as querySetCount, R as startsWith, a2 as sum, ac as validateQueryAST, ad as validateSavedViewDescriptor } from './query-ast-C3m6kZYv.js';
10
- export { N as NodeStore } from './store-CjjofiLR.js';
9
+ export { G as QUERY_AST_VERSION, r as QueryAST, n as QueryASTAggregate, A as QueryASTAggregateExecution, m as QueryASTAggregateFunction, y as QueryASTAggregateGroup, x as QueryASTAggregatePlan, z as QueryASTAggregateResult, d as QueryASTComparisonPredicate, e as QueryASTCompoundPredicate, a as QueryASTField, l as QueryASTIncludes, p as QueryASTNodeQuery, s as QueryASTNodeQueryOptions, f as QueryASTNotPredicate, c as QueryASTOperator, h as QueryASTOrderBy, i as QueryASTPage, B as QueryASTPlannerGate, g as QueryASTPredicate, q as QueryASTQuerySet, o as QueryASTQuerySetAggregate, j as QueryASTRelationDirection, k as QueryASTRelationInclude, t as QueryASTRelationIncludeOptions, w as QueryASTRelationIndexRequirement, b as QueryASTSchemaInput, u as QueryASTValidationError, v as QueryASTValidationResult, Q as QueryASTVersion, S as SavedViewDescriptor, F as SavedViewFeedDensity, E as SavedViewFeedLayout, C as SavedViewPresentationHint, D as SavedViewPresentationHintMode, V as and, a3 as avg, N as between, P as contains, a0 as count, a1 as countDistinct, a9 as dashboardQuerySet, Z as defineNodeQueryAST, a8 as defineQuerySetAST, ab as defineSavedViewDescriptor, H as eq, aj as evaluateQueryASTPlannerGate, af as executeQueryASTLoadedAggregates, ag as filterQueryASTLoadedRows, _ as follow, $ as from, ah as getQueryASTRelationIndexRequirements, a6 as groupBy, J as gt, K as gte, a7 as having, O as includesAny, U as isNotNull, T as isNull, L as lt, M as lte, ai as matchesQueryASTLoadedRow, a5 as max, a4 as min, I as neq, X as not, W as or, ae as planQueryASTAggregates, Y as queryOperators, aa as querySetCount, R as startsWith, a2 as sum, ac as validateQueryAST, ad as validateSavedViewDescriptor } from './query-ast-Bvg0Wolx.js';
10
+ export { N as NodeStore } from './store-DEWnip2G.js';
11
11
  export { MemoryNodeStorageAdapter, PermissionError, SQLiteAdaptiveIndexingOptions, SQLiteNodeStorageAdapter, SQLiteNodeStorageAdapterOptions, SQLiteQueryVerificationOptions, createNodeStorageAdapter } from './store/index.js';
12
- export { A as ActionPermission, b as DecisionCache, D as DefaultPolicyEvaluator, a as DefaultRoleResolver, G as GrantExpirationCleaner, H as HubPolicy, P as PermissionMatrix, R as RoleSummary, c as buildPermissionMatrix, d as describeRoleResolver, h as hubActionsForSpaceRole, s as schemaToHubPolicy } from './grant-expiration-cleaner-CY6BcmlR.js';
12
+ export { A as ActionPermission, b as DecisionCache, D as DefaultPolicyEvaluator, a as DefaultRoleResolver, G as GrantExpirationCleaner, H as HubPolicy, P as PermissionMatrix, R as RoleSummary, c as buildPermissionMatrix, d as describeRoleResolver, h as hubActionsForSpaceRole, s as schemaToHubPolicy } from './grant-expiration-cleaner-Bm1fSG42.js';
13
13
  import { ContentId } from '@xnetjs/core';
14
14
  import { ChunkManager } from '@xnetjs/storage';
15
15
  export { a as CELL_PREFIX, D as CellDateRange, F as CellFileRef, C as CellValue, G as ColumnConfig, E as ColumnDefinition, J as ColumnSelectOption, aq as ColumnSummaryResult, B as ColumnType, at as DEFAULT_ROW_HEIGHT, n as DateColumnConfig, n as DateFieldConfig, H as EmptyConfig, p as FIELD_TYPES, j as FieldConfig, k as FieldNode, h as FieldType, o as FileColumnConfig, o as FileFieldConfig, X as FilterCondition, W as FilterGroup, Y as FilterOperator, a6 as FormAudience, a3 as FormConfirmation, a5 as FormFieldRule, a2 as FormQuestion, a7 as FormSubmissionMeta, a8 as FormValidationError, a9 as FormValidationResult, a4 as FormViewConfig, m as FormulaColumnConfig, m as FormulaFieldConfig, N as NumberColumnConfig, N as NumberFieldConfig, ac as PUBLIC_SAFE_FORM_FIELD_TYPES, ab as PublicFormDefinition, aa as PublicFormQuestion, as as ROW_HEIGHTS, ar as ROW_HEIGHT_PX, R as RelationColumnConfig, R as RelationFieldConfig, L as RollupAggregation, l as RollupColumnConfig, l as RollupFieldConfig, ax as RowHeight, q as SELECT_COLORS, aj as SUMMARY_FUNCTIONS_BY_TYPE, K as SelectColor, I as SelectColumnConfig, S as SelectOptionNode, Z as SortConfig, ap as SummaryColumnLike, an as SummaryFunction, ao as SummaryRow, T as TextColumnConfig, T as TextFieldConfig, U as ViewConfig, V as ViewType, aw as asRowHeight, u as autoColor, ah as buildPublicFormDefinition, c as cellKey, b as columnIdFromKey, am as computeColumnSummary, f as fromCellProperties, P as isAutoColumnType, x as isAutoFieldType, d as isCellDateRange, e as isCellFileRef, i as isCellKey, g as isCellValue, O as isComputedColumnType, w as isComputedFieldType, r as isFieldType, al as isFilledValue, $ as isFilterCondition, _ as isFilterGroup, ad as isFormFieldTypeAllowed, ae as isFormQuestionVisible, M as isNodeStoreColumnType, v as isNodeStoreFieldType, s as isSelectColor, Q as isYDocColumnType, y as isYDocFieldType, a1 as requiresDateColumn, av as resolveRowHeightPx, au as rowHeightLabel, ai as submissionRowId, ak as summaryFunctionLabel, a0 as supportsGrouping, t as toCellProperties, z as toFieldNode, A as toSelectOptionNode, ag as validateFormSubmission, af as visibleFormQuestions } from './form-types-BlZvpDEE.js';
16
- export { cD as CloneSchemaOptions, cE as CloneSchemaResult, cF as CloneSourceData, ax as ConvertContext, ay as ConvertedCell, cx as CreateDatabaseSchemaResolverOptions, O as CreateExtensionFieldOptions, w as CreateFieldOptions, C as CreateRowOptions, x as CreateSelectOptionOptions, Z as CreateViewOptions, b8 as CsvExportOptions, aV as CsvParseOptions, cm as DATABASE_SCHEMA_NAMESPACE, cn as DATABASE_SCHEMA_PREFIX, ag as DEFAULT_DATABASE_SCHEMA_VERSION, au as DatabaseDocumentModel, D as DatabaseRowNode, cp as DatabaseSchemaMetadata, cw as DocFetcher, N as EnsureExtensionOptions, b7 as ExportRow, bb as ExportedColumn, ba as ExportedJSON, bQ as FilterableRow, aH as FormulaRow, aF as FormulaService, aI as FormulaValidationResult, c2 as GroupAggregates, c0 as GroupConfig, b$ as GroupableRow, aX as InferredColumn, b9 as JsonExportOptions, aY as JsonParseOptions, M as MAX_KEY_LENGTH, co as MAX_VERSION_HISTORY, bF as OPERATORS_BY_TYPE, bG as OPERATOR_LABELS, aU as ParsedCSV, aW as ParsedJSON, ca as QueryOptions, cb as QueryResult, Q as QueryRowsOptions, a as QueryRowsResult, c9 as QueryableRow, R as RICHTEXT_PREFIX, aE as RollupContext, aD as RollupRow, c1 as RowGroup, cr as SchemaVersionEntry, af as SetupDatabaseResult, bW as SortableRow, cq as StoredColumn, U as UpdateFieldOptions, _ as UpdateViewOptions, cs as VersionBumpType, Y as ViewNode, ao as addDefaultTableView, an as addDefaultTitleColumn, bU as addOrToggleSort, bv as addViewSort, az as aggregate, aB as batchComputeRollups, ci as buildDatabaseSchema, ai as buildSchemaFromFields, cc as buildSchemaIRI, cg as bumpSchemaVersion, aw as cellValueToText, e as checkNeedsRebalancing, bt as clearViewFilters, bx as clearViewSorts, cz as cloneColumns, cA as cloneSampleRows, cy as cloneSchema, b_ as collapseAllGroups, bO as combineFiltersAnd, bP as combineFiltersOr, j as compareSortKeys, aA as computeRollup, av as convertCellValue, bN as createAnyOfFilter, bg as createColumn, b0 as createCsvBlob, ct as createDatabaseSchemaResolver, bM as createEqualsFilter, J as createExtensionField, B as createField, c4 as createFilterQuery, aG as createFormulaService, ch as createInitialSchemaMetadata, b5 as createJsonBlob, ak as createNodeDatabaseSchemaResolver, c6 as createPaginatedQuery, c as createRow, T as createSelectOption, bS as createSort, c5 as createSortQuery, cj as createVersionEntry, bo as createView, a1 as createViewNode, bi as deleteColumn, L as deleteExtensionField, F as deleteField, as as deleteMeta, t as deleteRichTextCell, d as deleteRow, W as deleteSelectOption, bq as deleteView, a3 as deleteViewNode, b1 as downloadCsv, b6 as downloadJson, bk as duplicateColumn, H as duplicateField, br as duplicateView, a4 as duplicateViewNode, ad as effectiveFieldSortKey, I as ensureSchemaExtension, a_ as escapeCSV, c3 as executeQuery, bZ as expandAllGroups, aZ as exportToCsv, b2 as exportToJson, b3 as exportToJsonArray, b4 as exportToNdjson, cu as extractSchemaFromDoc, ah as fieldsToStoredColumns, bL as filterRows, c7 as flattenGroups, a$ as formatValue, cB as generateColumnIdMap, f as generateSortKey, h as generateSortKeyWithJitter, bd as getColumn, be as getColumnIndex, bc as getColumns, at as getDatabaseDocumentModel, aj as getDatabaseSchemaIRI, S as getDatabaseSelectOptions, z as getField, y as getFields, aq as getMeta, bJ as getOperatorLabel, bH as getOperatorsForType, l as getRichTextCell, s as getRichTextColumnIds, v as getRichTextPlainText, g as getRow, cv as getSchemaIRIFromDoc, P as getSelectOptions, bf as getTitleColumn, A as getTitleField, c8 as getTotalFromGroups, cl as getVersionBumpType, bm as getView, bn as getViewByType, a0 as getViewNode, $ as getViewNodes, bl as getViews, bX as groupRows, aL as guessColumnType, p as hasRichTextColumns, o as hasRichTextContent, bC as hideColumn, aO as inferColumnTypes, aQ as inferColumnsFromRows, aR as inferTypeFromValues, al as initializeDatabaseDoc, am as isDatabaseDocInitialized, ce as isDatabaseSchemaIRI, bI as isValidOperator, i as isValidSortKey, G as moveField, m as moveRow, X as moveSelectOption, a5 as moveView, n as needsRebalancing, bK as operatorRequiresValue, aJ as parseCSV, aK as parseCSVLine, cd as parseDatabaseSchemaIRI, aP as parseJSON, aN as parseRow, aM as parseValue, cf as parseVersion, ck as pruneVersionHistory, q as queryRows, r as rebalanceDatabase, k as rebalanceSortKeys, cC as remapViewColumnIds, bV as removeSort, bw as removeViewSort, K as renameExtensionField, bj as reorderColumn, bD as reorderViewColumns, bE as setColumnWidth, aa as setFieldHidden, ar as setMeta, ac as setViewFieldOrder, ab as setViewFieldWidth, bs as setViewFilters, by as setViewGroupBy, a6 as setViewNodeFilters, a8 as setViewNodeGroupBy, a7 as setViewNodeSorts, bu as setViewSorts, bA as setVisibleColumns, ae as setupDatabase, ap as setupNewDatabase, bB as showColumn, bR as sortRows, aS as toColumnDefinitions, bz as toggleGroupCollapsed, bY as toggleGroupCollapsedState, bT as toggleSortDirection, a9 as toggleViewGroupCollapsed, u as updateCell, b as updateCells, bh as updateColumn, E as updateField, V as updateSelectOption, bp as updateView, a2 as updateViewNode, aT as validateJsonData, aC as validateRollupConfig } from './clone-_owA3IXN.js';
16
+ export { cD as CloneSchemaOptions, cE as CloneSchemaResult, cF as CloneSourceData, ax as ConvertContext, ay as ConvertedCell, cx as CreateDatabaseSchemaResolverOptions, O as CreateExtensionFieldOptions, w as CreateFieldOptions, C as CreateRowOptions, x as CreateSelectOptionOptions, Z as CreateViewOptions, b8 as CsvExportOptions, aV as CsvParseOptions, cm as DATABASE_SCHEMA_NAMESPACE, cn as DATABASE_SCHEMA_PREFIX, ag as DEFAULT_DATABASE_SCHEMA_VERSION, au as DatabaseDocumentModel, D as DatabaseRowNode, cp as DatabaseSchemaMetadata, cw as DocFetcher, N as EnsureExtensionOptions, b7 as ExportRow, bb as ExportedColumn, ba as ExportedJSON, bQ as FilterableRow, aH as FormulaRow, aF as FormulaService, aI as FormulaValidationResult, c2 as GroupAggregates, c0 as GroupConfig, b$ as GroupableRow, aX as InferredColumn, b9 as JsonExportOptions, aY as JsonParseOptions, M as MAX_KEY_LENGTH, co as MAX_VERSION_HISTORY, bF as OPERATORS_BY_TYPE, bG as OPERATOR_LABELS, aU as ParsedCSV, aW as ParsedJSON, ca as QueryOptions, cb as QueryResult, Q as QueryRowsOptions, a as QueryRowsResult, c9 as QueryableRow, R as RICHTEXT_PREFIX, aE as RollupContext, aD as RollupRow, c1 as RowGroup, cr as SchemaVersionEntry, af as SetupDatabaseResult, bW as SortableRow, cq as StoredColumn, U as UpdateFieldOptions, _ as UpdateViewOptions, cs as VersionBumpType, Y as ViewNode, ao as addDefaultTableView, an as addDefaultTitleColumn, bU as addOrToggleSort, bv as addViewSort, az as aggregate, aB as batchComputeRollups, ci as buildDatabaseSchema, ai as buildSchemaFromFields, cc as buildSchemaIRI, cg as bumpSchemaVersion, aw as cellValueToText, e as checkNeedsRebalancing, bt as clearViewFilters, bx as clearViewSorts, cz as cloneColumns, cA as cloneSampleRows, cy as cloneSchema, b_ as collapseAllGroups, bO as combineFiltersAnd, bP as combineFiltersOr, j as compareSortKeys, aA as computeRollup, av as convertCellValue, bN as createAnyOfFilter, bg as createColumn, b0 as createCsvBlob, ct as createDatabaseSchemaResolver, bM as createEqualsFilter, J as createExtensionField, B as createField, c4 as createFilterQuery, aG as createFormulaService, ch as createInitialSchemaMetadata, b5 as createJsonBlob, ak as createNodeDatabaseSchemaResolver, c6 as createPaginatedQuery, c as createRow, T as createSelectOption, bS as createSort, c5 as createSortQuery, cj as createVersionEntry, bo as createView, a1 as createViewNode, bi as deleteColumn, L as deleteExtensionField, F as deleteField, as as deleteMeta, t as deleteRichTextCell, d as deleteRow, W as deleteSelectOption, bq as deleteView, a3 as deleteViewNode, b1 as downloadCsv, b6 as downloadJson, bk as duplicateColumn, H as duplicateField, br as duplicateView, a4 as duplicateViewNode, ad as effectiveFieldSortKey, I as ensureSchemaExtension, a_ as escapeCSV, c3 as executeQuery, bZ as expandAllGroups, aZ as exportToCsv, b2 as exportToJson, b3 as exportToJsonArray, b4 as exportToNdjson, cu as extractSchemaFromDoc, ah as fieldsToStoredColumns, bL as filterRows, c7 as flattenGroups, a$ as formatValue, cB as generateColumnIdMap, f as generateSortKey, h as generateSortKeyWithJitter, bd as getColumn, be as getColumnIndex, bc as getColumns, at as getDatabaseDocumentModel, aj as getDatabaseSchemaIRI, S as getDatabaseSelectOptions, z as getField, y as getFields, aq as getMeta, bJ as getOperatorLabel, bH as getOperatorsForType, l as getRichTextCell, s as getRichTextColumnIds, v as getRichTextPlainText, g as getRow, cv as getSchemaIRIFromDoc, P as getSelectOptions, bf as getTitleColumn, A as getTitleField, c8 as getTotalFromGroups, cl as getVersionBumpType, bm as getView, bn as getViewByType, a0 as getViewNode, $ as getViewNodes, bl as getViews, bX as groupRows, aL as guessColumnType, p as hasRichTextColumns, o as hasRichTextContent, bC as hideColumn, aO as inferColumnTypes, aQ as inferColumnsFromRows, aR as inferTypeFromValues, al as initializeDatabaseDoc, am as isDatabaseDocInitialized, ce as isDatabaseSchemaIRI, bI as isValidOperator, i as isValidSortKey, G as moveField, m as moveRow, X as moveSelectOption, a5 as moveView, n as needsRebalancing, bK as operatorRequiresValue, aJ as parseCSV, aK as parseCSVLine, cd as parseDatabaseSchemaIRI, aP as parseJSON, aN as parseRow, aM as parseValue, cf as parseVersion, ck as pruneVersionHistory, q as queryRows, r as rebalanceDatabase, k as rebalanceSortKeys, cC as remapViewColumnIds, bV as removeSort, bw as removeViewSort, K as renameExtensionField, bj as reorderColumn, bD as reorderViewColumns, bE as setColumnWidth, aa as setFieldHidden, ar as setMeta, ac as setViewFieldOrder, ab as setViewFieldWidth, bs as setViewFilters, by as setViewGroupBy, a6 as setViewNodeFilters, a8 as setViewNodeGroupBy, a7 as setViewNodeSorts, bu as setViewSorts, bA as setVisibleColumns, ae as setupDatabase, ap as setupNewDatabase, bB as showColumn, bR as sortRows, aS as toColumnDefinitions, bz as toggleGroupCollapsed, bY as toggleGroupCollapsedState, bT as toggleSortDirection, a9 as toggleViewGroupCollapsed, u as updateCell, b as updateCells, bh as updateColumn, E as updateField, V as updateSelectOption, bp as updateView, a2 as updateViewNode, aT as validateJsonData, aC as validateRollupConfig } from './clone-CbmoWwu4.js';
17
17
  import '@xnetjs/crypto';
18
18
  import '@xnetjs/sqlite';
19
19
  import '@xnetjs/sync';
package/dist/index.js CHANGED
@@ -224,6 +224,7 @@ import {
224
224
  } from "./chunk-Q67VT5XL.js";
225
225
  import {
226
226
  LensRegistry,
227
+ MAX_LINK_PREVIEWS_PER_MESSAGE,
227
228
  MAX_MENTION_DIDS,
228
229
  MigrationError,
229
230
  PresenceAggregator,
@@ -258,6 +259,7 @@ import {
258
259
  isCanvasPositionAnchor,
259
260
  isCellAnchor,
260
261
  isColumnAnchor,
262
+ isMessageLinkPreview,
261
263
  isNodeAnchor,
262
264
  isRowAnchor,
263
265
  isSchemaDefinitionNode,
@@ -278,6 +280,7 @@ import {
278
280
  resolveEffectiveSchema,
279
281
  revokeDeviceRecord,
280
282
  revokeSubjectRecord,
283
+ sanitizeLinkPreviews,
281
284
  schemaRegistry,
282
285
  selectExtensionFields,
283
286
  shortIdsFromBlock,
@@ -287,7 +290,7 @@ import {
287
290
  taskBranchName,
288
291
  transform,
289
292
  when
290
- } from "./chunk-HAV2DS2C.js";
293
+ } from "./chunk-EMREE66R.js";
291
294
  import {
292
295
  SavedViewSchema
293
296
  } from "./chunk-ZZ6TWKGS.js";
@@ -348,7 +351,7 @@ import {
348
351
  } from "./chunk-ZCOFZY5M.js";
349
352
  import {
350
353
  ChatMessageSchema
351
- } from "./chunk-Q3IEGH4B.js";
354
+ } from "./chunk-QVQVKZ3U.js";
352
355
  import {
353
356
  FEED_SCHEMA_IRI,
354
357
  FeedSchema
@@ -411,7 +414,7 @@ import {
411
414
  } from "./chunk-NI4FHG2K.js";
412
415
  import {
413
416
  CommentSchema
414
- } from "./chunk-5HC5NO57.js";
417
+ } from "./chunk-MCKP4F72.js";
415
418
  import {
416
419
  ReactionSchema
417
420
  } from "./chunk-Y3S5SRVM.js";
@@ -623,7 +626,7 @@ import {
623
626
  sum,
624
627
  validateQueryAST,
625
628
  validateSavedViewDescriptor
626
- } from "./chunk-E3J22ID2.js";
629
+ } from "./chunk-QN334DU7.js";
627
630
  import {
628
631
  applyNodeQueryDescriptor,
629
632
  createNodeQueryDescriptor,
@@ -2102,6 +2105,7 @@ export {
2102
2105
  MATCH_RESULTS,
2103
2106
  MATCH_SESSION_SCHEMA_IRI,
2104
2107
  MAX_KEY_LENGTH,
2108
+ MAX_LINK_PREVIEWS_PER_MESSAGE,
2105
2109
  MAX_MENTION_DIDS,
2106
2110
  MAX_TAG_NAME_LENGTH,
2107
2111
  MAX_VERSION_HISTORY,
@@ -2456,6 +2460,7 @@ export {
2456
2460
  isFormFieldTypeAllowed,
2457
2461
  isFormQuestionVisible,
2458
2462
  isGrantActive,
2463
+ isMessageLinkPreview,
2459
2464
  isMoneyValue,
2460
2465
  isNode,
2461
2466
  isNodeAnchor,
@@ -2557,6 +2562,7 @@ export {
2557
2562
  revokeSubjectRecord,
2558
2563
  revokedSubjects,
2559
2564
  rowHeightLabel,
2565
+ sanitizeLinkPreviews,
2560
2566
  schemaExtensionId,
2561
2567
  schemaRegistry,
2562
2568
  schemaToHubPolicy,
@@ -1,4 +1,4 @@
1
- import { S as SchemaIRI, c as SortDirection, N as NodeQueryPageCountMode, P as PropertyBuilder, I as InferCreateProps, D as DefinedSchema, d as SystemOrderField } from './types-S-BJAKyK.js';
1
+ import { S as SchemaIRI, c as SortDirection, N as NodeQueryPageCountMode, P as PropertyBuilder, I as InferCreateProps, D as DefinedSchema, d as SystemOrderField } from './types-BB8-SLEa.js';
2
2
 
3
3
  /**
4
4
  * Canonical query AST for advanced Node reads.
@@ -1,4 +1,4 @@
1
- import { P as PropertyBuilder, D as DefinedSchema, S as SchemaIRI, a as Schema, b as ParsedSchemaIRI } from './types-S-BJAKyK.js';
1
+ import { P as PropertyBuilder, D as DefinedSchema, S as SchemaIRI, a as Schema, b as ParsedSchemaIRI } from './types-BB8-SLEa.js';
2
2
 
3
3
  /**
4
4
  * Schema Registry - Runtime lookup for schema definitions.
@@ -1,10 +1,10 @@
1
- import { P as PropertyBuilder, S as SchemaIRI, D as DefinedSchema, ba as DocumentType, y as DID, Q as InferNode, V as ValidationResult, a as Schema, B as PropertyType, h as NodeState, v as NodeChangeEvent, F as ValidationError, W as LensOperation, R as SchemaLens } from '../types-S-BJAKyK.js';
2
- export { H as CreateNodeOptions, bb as DEFAULT_SCHEMA_VERSION, I as InferCreateProps, K as InferProperties, J as InferPropertyType, Z as LensRegistry, Y as MigrationError, X as MigrationResult, x as Node, b as ParsedSchemaIRI, E as PropertyDefinition, bd as buildSchemaIRI, A as createNodeId, bf as getBaseSchemaIRI, bh as getSchemaVersion, z as isNode, bg as isSameSchema, _ as lensRegistry, be as normalizeSchemaIRI, bc as parseSchemaIRI } from '../types-S-BJAKyK.js';
1
+ import { P as PropertyBuilder, S as SchemaIRI, D as DefinedSchema, ba as DocumentType, y as DID, Q as InferNode, V as ValidationResult, a as Schema, B as PropertyType, h as NodeState, v as NodeChangeEvent, F as ValidationError, W as LensOperation, R as SchemaLens } from '../types-BB8-SLEa.js';
2
+ export { H as CreateNodeOptions, bb as DEFAULT_SCHEMA_VERSION, I as InferCreateProps, K as InferProperties, J as InferPropertyType, Z as LensRegistry, Y as MigrationError, X as MigrationResult, x as Node, b as ParsedSchemaIRI, E as PropertyDefinition, bd as buildSchemaIRI, A as createNodeId, bf as getBaseSchemaIRI, bh as getSchemaVersion, z as isNode, bg as isSameSchema, _ as lensRegistry, be as normalizeSchemaIRI, bc as parseSchemaIRI } from '../types-BB8-SLEa.js';
3
3
  import { AuthorizationDefinition } from '@xnetjs/core';
4
- import { S as SavedViewDescriptor } from '../query-ast-C3m6kZYv.js';
4
+ import { S as SavedViewDescriptor } from '../query-ast-Bvg0Wolx.js';
5
5
  import { a7 as FormSubmissionMeta, W as FilterGroup, Z as SortConfig, an as SummaryFunction, a4 as FormViewConfig, a5 as FormFieldRule } from '../form-types-BlZvpDEE.js';
6
- import { N as NodeStore } from '../store-CjjofiLR.js';
7
- export { S as SchemaRegistry, s as schemaRegistry } from '../registry-DunPv__d.js';
6
+ import { N as NodeStore } from '../store-DEWnip2G.js';
7
+ export { S as SchemaRegistry, s as schemaRegistry } from '../registry-_49rC6IG.js';
8
8
  import '@xnetjs/crypto';
9
9
  import '@xnetjs/sqlite';
10
10
  import '@xnetjs/sync';
@@ -845,6 +845,41 @@ type InboxState = InferNode<(typeof InboxStateSchema)['_properties']>;
845
845
  /** Deterministic node ID for a user's inbox state in a workspace. */
846
846
  declare function inboxStateNodeId(did: string): string;
847
847
 
848
+ /**
849
+ * Composer-resolved URL previews (exploration 0295).
850
+ *
851
+ * A preview is resolved ONCE, by the author's composer (via the hub's
852
+ * SSRF-guarded /unfurl proxy), and stored as a structured field on the
853
+ * message/comment — the sender-generated model. Readers render the stored
854
+ * snapshot and never fetch the URL, so no reader IPs leak, no read
855
+ * receipts exist, and previews replicate offline like any other data.
856
+ */
857
+ /** One stored preview. `url` matches the verbatim token in `content`. */
858
+ interface MessageLinkPreview {
859
+ /** The URL exactly as it appears in the message text — the render key. */
860
+ url: string;
861
+ /** 'share' = xNet share link snapshot; 'external' = oEmbed/Open Graph. */
862
+ kind: 'share' | 'external';
863
+ title: string;
864
+ description?: string;
865
+ /**
866
+ * Optional image. Renderers must only load images through a trusted
867
+ * proxy (the hub's /unfurl/image) — never hotlink, which would ping the
868
+ * origin from every reader.
869
+ */
870
+ imageUrl?: string;
871
+ providerName?: string;
872
+ /** Real destination host, always displayed (anti-phishing). */
873
+ domain: string;
874
+ resolvedAt: number;
875
+ }
876
+ /** Cap enforced by composers; renderers also slice defensively. */
877
+ declare const MAX_LINK_PREVIEWS_PER_MESSAGE = 3;
878
+ /** Runtime guard for one stored preview entry. */
879
+ declare function isMessageLinkPreview(value: unknown): value is MessageLinkPreview;
880
+ /** Sanitize a stored linkPreviews value for rendering (unknown authors). */
881
+ declare function sanitizeLinkPreviews(value: unknown): MessageLinkPreview[];
882
+
848
883
  /**
849
884
  * Structured mentions (exploration 0168).
850
885
  *
@@ -2677,6 +2712,8 @@ declare const CommentSchema: DefinedSchema<{
2677
2712
  * legacy text-parsed mentions (commentReferences.ts) remain as fallback.
2678
2713
  */
2679
2714
  mentions: PropertyBuilder<MessageMentions>;
2715
+ /** Composer-resolved URL previews (0295) — never parsed from content */
2716
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
2680
2717
  /** DID of user being replied to (UI hint) */
2681
2718
  replyToUser: PropertyBuilder<`did:key:${string}`>;
2682
2719
  /** Comment ID being referenced (for "in reply to" display) */
@@ -2786,6 +2823,8 @@ declare const ChatMessageSchema: DefinedSchema<{
2786
2823
  tags: PropertyBuilder<string[]>;
2787
2824
  /** Node ids from the composer's [[ link picks (exploration 0170) */
2788
2825
  links: PropertyBuilder<string[]>;
2826
+ /** Composer-resolved URL previews (0295) — never parsed from content */
2827
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
2789
2828
  createdAt: PropertyBuilder<number>;
2790
2829
  createdBy: PropertyBuilder<`did:key:${string}`>;
2791
2830
  }>;
@@ -4598,6 +4637,7 @@ declare const builtInSchemas: {
4598
4637
  tags: PropertyBuilder<string[]>;
4599
4638
  attachments: PropertyBuilder<FileRef[]>;
4600
4639
  mentions: PropertyBuilder<MessageMentions>;
4640
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
4601
4641
  replyToUser: PropertyBuilder<`did:key:${string}`>;
4602
4642
  replyToCommentId: PropertyBuilder<string>;
4603
4643
  resolved: PropertyBuilder<boolean>;
@@ -4654,6 +4694,7 @@ declare const builtInSchemas: {
4654
4694
  redacted: PropertyBuilder<boolean>;
4655
4695
  tags: PropertyBuilder<string[]>;
4656
4696
  links: PropertyBuilder<string[]>;
4697
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
4657
4698
  createdAt: PropertyBuilder<number>;
4658
4699
  createdBy: PropertyBuilder<`did:key:${string}`>;
4659
4700
  }>>;
@@ -5664,6 +5705,7 @@ declare const builtInSchemas: {
5664
5705
  tags: PropertyBuilder<string[]>;
5665
5706
  attachments: PropertyBuilder<FileRef[]>;
5666
5707
  mentions: PropertyBuilder<MessageMentions>;
5708
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
5667
5709
  replyToUser: PropertyBuilder<`did:key:${string}`>;
5668
5710
  replyToCommentId: PropertyBuilder<string>;
5669
5711
  resolved: PropertyBuilder<boolean>;
@@ -5720,6 +5762,7 @@ declare const builtInSchemas: {
5720
5762
  redacted: PropertyBuilder<boolean>;
5721
5763
  tags: PropertyBuilder<string[]>;
5722
5764
  links: PropertyBuilder<string[]>;
5765
+ linkPreviews: PropertyBuilder<MessageLinkPreview[]>;
5723
5766
  createdAt: PropertyBuilder<number>;
5724
5767
  createdBy: PropertyBuilder<`did:key:${string}`>;
5725
5768
  }>>;
@@ -6700,4 +6743,4 @@ declare function createOperations(...operations: LensOperation[]): {
6700
6743
  */
6701
6744
  declare function identity(source: SchemaIRI, target: SchemaIRI): SchemaLens;
6702
6745
 
6703
- export { ACCOUNT_RECORD_SCHEMA_IRI, ACCOUNT_SCHEMA_IRI, ACHIEVEMENT_SCHEMA_IRI, ACTIVITY_KINDS, ACTIVITY_SCHEMA_IRI, type AbuseReport, AbuseReportSchema, type Account, type AccountClassId, type AccountRecord, AccountRecordSchema, AccountSchema, type Achievement, AchievementSchema, type Activity, type ActivityKind, ActivitySchema, type AnchorData, type AnchorType, type Appeal, AppealSchema, BUDGET_SCHEMA_IRI, type Budget, type BudgetPeriod, BudgetSchema, type BuiltInSchemaIRI, CHANNEL_KINDS, CONTACT_LIFECYCLE, CONTACT_SCHEMA_IRI, CRM_NAMESPACE, type Canvas, type CanvasObjectAnchor, type CanvasObjectAnchorPlacement, type CanvasPositionAnchor, CanvasSchema, type CellAnchor, type Channel, type ChannelKind, type ChannelNotifyTier, ChannelSchema, type ChatMessage, ChatMessageSchema, type CheckboxOptions, type ColumnAnchor, type Comment, CommentSchema, type CommunityNote, CommunityNoteSchema, type Contact, type ContactLifecycle, ContactSchema, type ContentProvenance, ContentProvenanceSchema, type CoreSchemaResolver, type CreatedByOptions, type CreatedOptions, type CrmVisibility, DEAL_CONTACT_ROLES, DEAL_CONTACT_ROLE_SCHEMA_IRI, DEAL_SCHEMA_IRI, DEAL_SOURCES, DEFAULT_CHANNEL_TIER, DEVICE_RECORD_SCHEMA_IRI, DID, type Dashboard, type DashboardBreakpointId, type DashboardLayoutItem, type DashboardLayouts, DashboardSchema, type DashboardTimeRange, type DashboardVariablesState, type DashboardWidgetInstance, type DashboardWidgetRefresh, type Database, type DatabaseField, DatabaseFieldSchema, type DatabaseRow, DatabaseRowSchema, DatabaseSchema, type DatabaseSelectOption, DatabaseSelectOptionSchema, type DatabaseView, DatabaseViewSchema, type DateOptions, type DateRange, type DateRangeOptions, type Deal, type DealContactRole, type DealContactRoleKind, DealContactRoleSchema, DealSchema, type DealSource, type DefineSchemaOptions, DefinedSchema, type DeviceLike, type DeviceRecord, DeviceRecordSchema, DocumentType, EXTENSION_FIELD_SCHEMA_IRI, EXTERNAL_ITEM_SCHEMA_IRI, EXTERNAL_ITEM_SOURCES, EXT_PREFIX, type EffectiveExtensionField, type EmailOptions, type Experiment, type ExperimentDesign, type ExperimentPhase, ExperimentSchema, type ExperimentStatus, type ExtensionField, type ExtensionFieldRecord, ExtensionFieldSchema, type ExtensionRecord, type ExternalItem, ExternalItemSchema, type ExternalReference, ExternalReferenceSchema, FEED_ITEM_SCHEMA_IRI, FEED_SCHEMA_IRI, FOLDER_SCHEMA_IRI, FORECAST_CATEGORIES, type Feed, type FeedItem, FeedItemSchema, FeedSchema, type FileOptions, type FileRef, type Folder, type FolderLike, FolderSchema, type FolderTreeNode, type ForecastCategory, GAME_ASSET_FORMATS, GAME_ASSET_MIME_TYPES, GAME_ASSET_SCHEMA_IRI, GAME_ECONOMY_ENTRY_SCHEMA_IRI, GAME_ITEM_SCHEMA_IRI, GAME_NAMESPACE, GAME_SCHEMA_IRIS, type GameAsset, type GameAssetFormat, GameAssetSchema, type GameEconomyEntry, GameEconomyEntrySchema, type GameItem, GameItemSchema, type GameVisibility, type GeoFeature, type GeoFeatureCollection, type GeoGeometry, type GeoPosition, type Grant, GrantSchema, IMPORT_BATCH_SCHEMA_IRI, INVENTORY_SCHEMA_IRI, ITEM_RARITIES, type ImportBatch, ImportBatchSchema, type ImportSource, type InboxItemTriage, type InboxState, InboxStateSchema, type InboxWatermark, InferNode, type Inventory, InventorySchema, type ItemRarity, type JsonOptions, LINE_ITEM_SCHEMA_IRI, type LedgerNodeIntent, LensOperation, type LineItem, LineItemSchema, MATCH_RESULTS, MATCH_SESSION_SCHEMA_IRI, MAX_MENTION_DIDS, MAX_TAG_NAME_LENGTH, MEETING_CHANNELS, MEETING_SCHEMA_IRI, MEETING_TEMPLATE_IDS, MEETING_TRANSCRIPT_SCHEMA_IRI, MEMORY_ITEM_SCHEMA_IRI, MEMORY_KINDS, MILESTONE_SCHEMA_IRI, type Map$1 as Map, type MapBasemapId, type MapLayerGeometry, type MapLayerSource, type MapLayerSpec, type MapLayerStyle, MapSchema, type MapViewport, type MatchResult, type MatchSession, MatchSessionSchema, type MediaAsset, MediaAssetSchema, type Meeting, type MeetingChannel, MeetingSchema, type MeetingSegment, type MeetingTemplateId, type MeetingTranscript, MeetingTranscriptSchema, type MemoryItem, MemoryItemSchema, type MemoryKind, type Mention, type MessageMentions, type MessageRequest, MessageRequestSchema, type Metric, type MetricKind, type MetricPolarity, type MetricScheduleId, MetricSchema, type Milestone, MilestoneSchema, type ModerationLabel, ModerationLabelSchema, type MoneyOptions, type MoneyValue, type MultiSelectOptions, NODE_VISIBILITY, type NodeAnchor, type NodeVisibility, type NoteRating, NoteRatingSchema, type NotificationPrefs, type NumberOptions, ORGANIZATION_SCHEMA_IRI, ORGANIZATION_SIZES, type Observation, type ObservationPhase, ObservationSchema, type Organization, OrganizationSchema, type OrganizationSize, type OrphanReason, type OrphanResolvers, type OrphanStatus, PIPELINE_SCHEMA_IRI, PLAYER_IDENTITY_SCHEMA_IRI, POSTING_SCHEMA_IRI, PRODUCT_KINDS, PRODUCT_SCHEMA_IRI, type Page, PageSchema, type ParsedSystemNamespaceResource, type ParsedTaskShortId, type PersonOptions, type PhoneOptions, type Pipeline, PipelineSchema, type PlayerIdentity, PlayerIdentitySchema, type PolicyList, PolicyListSchema, type PolicySubscription, PolicySubscriptionSchema, type Posting, PostingSchema, PresenceAggregator, type PresenceAggregatorOptions, type PresenceAggregatorStore, type PresenceCountBucket, type PresenceSummary, type PresenceSummaryDescriptor, PresenceSummarySchema, type PresenceVisibility, type PresenceVisibilityResolver, type Product, type ProductKind, ProductSchema, type Profile, ProfileSchema, type Project, ProjectSchema, PropertyBuilder, PropertyType, type PublicInteractionPolicy, PublicInteractionPolicySchema, type QualitySignal, QualitySignalSchema, RECOVERY_RECORD_SCHEMA_IRI, RELATIONSHIP_KINDS, RELATIONSHIP_SCHEMA_IRI, REVOCATION_RECORD_SCHEMA_IRI, type Reaction, ReactionSchema, type RecoveryRecord, RecoveryRecordSchema, type RelationOptions, type Relationship, type RelationshipKind, RelationshipSchema, type ReviewTask, ReviewTaskSchema, type RevocationLike, type RevocationRecord, RevocationRecordSchema, type RowAnchor, SCHEMA_EXTENSION_SCHEMA_IRI, DEFAULT_SCHEMA_VERSION as SCHEMA_VERSION, SIDECAR_PREFIX, SPACE_KINDS, SPACE_MEMBERSHIP_SCHEMA_IRI, SPACE_ROLES, SPACE_SCHEMA_IRI, SPACE_VISIBILITY, STAGE_SCHEMA_IRI, SYSTEM_NAMESPACE_KINDS, SYSTEM_SCHEMA_BASE_IRIS, SYSTEM_SCHEMA_IRIS, type SavedView, SavedViewSchema, Schema, type SchemaAuthorityResolution, type SchemaAuthorityResolutionKind, type SchemaAuthorityResolutionOptions, type SchemaCompatibility, type SchemaCompatibilityMode, SchemaCompatibilitySchema, type SchemaDefinition, SchemaDefinitionSchema, type SchemaDefinitionSigningInput, type SchemaDefinitionStatus, type SchemaExtension, SchemaExtensionSchema, SchemaIRI, SchemaLens, type SelectOption, type SelectOptions, type SidecarOverlay, type Space, type SpaceKind, type SpaceLike, type SpaceMembership, SpaceMembershipSchema, type SpaceRole, SpaceSchema, type SpaceTreeNode, type SpaceVisibility, type Stage, StageSchema, type SyncPolicy, SyncPolicySchema, type SyncPolicyStatus, type SystemFederationErrorCode, type SystemNamespaceKind, type SystemSchemaDefinitionRecord, SystemSchemaIndex, type SystemSchemaIndexDiagnostic, type SystemSchemaIndexOptions, type SystemSchemaIndexStore, TAG_SCHEMA_IRI, TASK_SHORT_ID_PATTERN, TASK_STATUS_CATEGORIES, TRANSACTION_SCHEMA_IRI, TRANSCRIPTION_SCHEMA_IRI, type Tag, TagSchema, type Task, TaskSchema, type TaskShortIdBlock, type TaskStatusCategory, type TaskStatusId, type TaskView, TaskViewSchema, type TextAnchor, type TextOptions, type Transaction, TransactionSchema, type TransactionStatus, type Transcription, TranscriptionSchema, type TranscriptionSourceId, type UpdatedOptions, type UrlOptions, type UserWidget, type UserWidgetConfigField, UserWidgetSchema, type UserWidgetSize, type ValidateSchemaDefinitionNodeOptions, ValidationError, ValidationResult, type Workspace, WorkspaceSchema, type WorkspaceTreeJson, accountRecordId, accountState, addDefault, admitDeviceRecord, bucketPresenceCount, buildEffectiveSchema, buildFolderTree, buildSpaceTree, buildSystemNamespace, buildSystemNodeId, builtInSchemas, canManageSpace, canModifyColumn, checkOrphanStatus, checkbox, compareSpaceRoles, composeLens, computeSchemaDefinitionContentHash, convert, copy, createAccountRecord, createNodeGraphSchemaResolver, createOperations, createSchemaDefinitionSigningPayload, created, createdBy, crmSchemas, date, dateRange, decodeAnchor, defineSchema, deviceRecipientExpander, deviceRecordId, effectiveSpaceRole, email, encodeAnchor, extKey, extractMentions, file, filterOrphanedComments, findLockedColumns, flattenFolderTree, flattenSpaceTree, folderAncestorIds, folderPathIds, formatTaskShortId, gameSchemas, getMentionedUsers, getPresenceNoisePolicy, getTaskStatusCategory, identity, inboxStateNodeId, isCanvasObjectAnchor, isCanvasPositionAnchor, isCellAnchor, isColumnAnchor, isCompletedTaskStatus, isDeviceAuthorized, isExtKey, isMoneyValue, isNodeAnchor, isRowAnchor, isSchemaDefinitionNode, isSpaceRole, isSystemNamespaceResource, isSystemSchemaIri, isTextAnchor, isValidMentions, isValidTagName, json, loadExtensionFields, lockedPropertyKeys, mentionsInclude, merge, mergeSidecarsIntoRow, money, multiSelect, nextEpoch, normalizeMentions, normalizeTagName, number, parseExtKey, parseSystemNamespaceResource, parseTaskShortId, person, phone, promoteOverlay, recoveryRecordId, relation, remove, rename, resolveActiveDevices, resolveEffectiveSchema, resolveSchemaAuthority, revocationRecordId, revokeDeviceRecord, revokeSubjectRecord, revokedSubjects, schemaExtensionId, select, selectExtensionFields, shortIdsFromBlock, sidecarId, sidecarOverlayKeys, spaceAncestorIds, spaceMembershipId, spacePathIds, spaceRoleGrantActions, spaceRoleToShareRole, summarizePresenceNodes, taskBranchName, text, transform, updated, url, validateSchemaDefinitionNode, when, wouldCreateFolderCycle, wouldCreateSpaceCycle };
6746
+ export { ACCOUNT_RECORD_SCHEMA_IRI, ACCOUNT_SCHEMA_IRI, ACHIEVEMENT_SCHEMA_IRI, ACTIVITY_KINDS, ACTIVITY_SCHEMA_IRI, type AbuseReport, AbuseReportSchema, type Account, type AccountClassId, type AccountRecord, AccountRecordSchema, AccountSchema, type Achievement, AchievementSchema, type Activity, type ActivityKind, ActivitySchema, type AnchorData, type AnchorType, type Appeal, AppealSchema, BUDGET_SCHEMA_IRI, type Budget, type BudgetPeriod, BudgetSchema, type BuiltInSchemaIRI, CHANNEL_KINDS, CONTACT_LIFECYCLE, CONTACT_SCHEMA_IRI, CRM_NAMESPACE, type Canvas, type CanvasObjectAnchor, type CanvasObjectAnchorPlacement, type CanvasPositionAnchor, CanvasSchema, type CellAnchor, type Channel, type ChannelKind, type ChannelNotifyTier, ChannelSchema, type ChatMessage, ChatMessageSchema, type CheckboxOptions, type ColumnAnchor, type Comment, CommentSchema, type CommunityNote, CommunityNoteSchema, type Contact, type ContactLifecycle, ContactSchema, type ContentProvenance, ContentProvenanceSchema, type CoreSchemaResolver, type CreatedByOptions, type CreatedOptions, type CrmVisibility, DEAL_CONTACT_ROLES, DEAL_CONTACT_ROLE_SCHEMA_IRI, DEAL_SCHEMA_IRI, DEAL_SOURCES, DEFAULT_CHANNEL_TIER, DEVICE_RECORD_SCHEMA_IRI, DID, type Dashboard, type DashboardBreakpointId, type DashboardLayoutItem, type DashboardLayouts, DashboardSchema, type DashboardTimeRange, type DashboardVariablesState, type DashboardWidgetInstance, type DashboardWidgetRefresh, type Database, type DatabaseField, DatabaseFieldSchema, type DatabaseRow, DatabaseRowSchema, DatabaseSchema, type DatabaseSelectOption, DatabaseSelectOptionSchema, type DatabaseView, DatabaseViewSchema, type DateOptions, type DateRange, type DateRangeOptions, type Deal, type DealContactRole, type DealContactRoleKind, DealContactRoleSchema, DealSchema, type DealSource, type DefineSchemaOptions, DefinedSchema, type DeviceLike, type DeviceRecord, DeviceRecordSchema, DocumentType, EXTENSION_FIELD_SCHEMA_IRI, EXTERNAL_ITEM_SCHEMA_IRI, EXTERNAL_ITEM_SOURCES, EXT_PREFIX, type EffectiveExtensionField, type EmailOptions, type Experiment, type ExperimentDesign, type ExperimentPhase, ExperimentSchema, type ExperimentStatus, type ExtensionField, type ExtensionFieldRecord, ExtensionFieldSchema, type ExtensionRecord, type ExternalItem, ExternalItemSchema, type ExternalReference, ExternalReferenceSchema, FEED_ITEM_SCHEMA_IRI, FEED_SCHEMA_IRI, FOLDER_SCHEMA_IRI, FORECAST_CATEGORIES, type Feed, type FeedItem, FeedItemSchema, FeedSchema, type FileOptions, type FileRef, type Folder, type FolderLike, FolderSchema, type FolderTreeNode, type ForecastCategory, GAME_ASSET_FORMATS, GAME_ASSET_MIME_TYPES, GAME_ASSET_SCHEMA_IRI, GAME_ECONOMY_ENTRY_SCHEMA_IRI, GAME_ITEM_SCHEMA_IRI, GAME_NAMESPACE, GAME_SCHEMA_IRIS, type GameAsset, type GameAssetFormat, GameAssetSchema, type GameEconomyEntry, GameEconomyEntrySchema, type GameItem, GameItemSchema, type GameVisibility, type GeoFeature, type GeoFeatureCollection, type GeoGeometry, type GeoPosition, type Grant, GrantSchema, IMPORT_BATCH_SCHEMA_IRI, INVENTORY_SCHEMA_IRI, ITEM_RARITIES, type ImportBatch, ImportBatchSchema, type ImportSource, type InboxItemTriage, type InboxState, InboxStateSchema, type InboxWatermark, InferNode, type Inventory, InventorySchema, type ItemRarity, type JsonOptions, LINE_ITEM_SCHEMA_IRI, type LedgerNodeIntent, LensOperation, type LineItem, LineItemSchema, MATCH_RESULTS, MATCH_SESSION_SCHEMA_IRI, MAX_LINK_PREVIEWS_PER_MESSAGE, MAX_MENTION_DIDS, MAX_TAG_NAME_LENGTH, MEETING_CHANNELS, MEETING_SCHEMA_IRI, MEETING_TEMPLATE_IDS, MEETING_TRANSCRIPT_SCHEMA_IRI, MEMORY_ITEM_SCHEMA_IRI, MEMORY_KINDS, MILESTONE_SCHEMA_IRI, type Map$1 as Map, type MapBasemapId, type MapLayerGeometry, type MapLayerSource, type MapLayerSpec, type MapLayerStyle, MapSchema, type MapViewport, type MatchResult, type MatchSession, MatchSessionSchema, type MediaAsset, MediaAssetSchema, type Meeting, type MeetingChannel, MeetingSchema, type MeetingSegment, type MeetingTemplateId, type MeetingTranscript, MeetingTranscriptSchema, type MemoryItem, MemoryItemSchema, type MemoryKind, type Mention, type MessageLinkPreview, type MessageMentions, type MessageRequest, MessageRequestSchema, type Metric, type MetricKind, type MetricPolarity, type MetricScheduleId, MetricSchema, type Milestone, MilestoneSchema, type ModerationLabel, ModerationLabelSchema, type MoneyOptions, type MoneyValue, type MultiSelectOptions, NODE_VISIBILITY, type NodeAnchor, type NodeVisibility, type NoteRating, NoteRatingSchema, type NotificationPrefs, type NumberOptions, ORGANIZATION_SCHEMA_IRI, ORGANIZATION_SIZES, type Observation, type ObservationPhase, ObservationSchema, type Organization, OrganizationSchema, type OrganizationSize, type OrphanReason, type OrphanResolvers, type OrphanStatus, PIPELINE_SCHEMA_IRI, PLAYER_IDENTITY_SCHEMA_IRI, POSTING_SCHEMA_IRI, PRODUCT_KINDS, PRODUCT_SCHEMA_IRI, type Page, PageSchema, type ParsedSystemNamespaceResource, type ParsedTaskShortId, type PersonOptions, type PhoneOptions, type Pipeline, PipelineSchema, type PlayerIdentity, PlayerIdentitySchema, type PolicyList, PolicyListSchema, type PolicySubscription, PolicySubscriptionSchema, type Posting, PostingSchema, PresenceAggregator, type PresenceAggregatorOptions, type PresenceAggregatorStore, type PresenceCountBucket, type PresenceSummary, type PresenceSummaryDescriptor, PresenceSummarySchema, type PresenceVisibility, type PresenceVisibilityResolver, type Product, type ProductKind, ProductSchema, type Profile, ProfileSchema, type Project, ProjectSchema, PropertyBuilder, PropertyType, type PublicInteractionPolicy, PublicInteractionPolicySchema, type QualitySignal, QualitySignalSchema, RECOVERY_RECORD_SCHEMA_IRI, RELATIONSHIP_KINDS, RELATIONSHIP_SCHEMA_IRI, REVOCATION_RECORD_SCHEMA_IRI, type Reaction, ReactionSchema, type RecoveryRecord, RecoveryRecordSchema, type RelationOptions, type Relationship, type RelationshipKind, RelationshipSchema, type ReviewTask, ReviewTaskSchema, type RevocationLike, type RevocationRecord, RevocationRecordSchema, type RowAnchor, SCHEMA_EXTENSION_SCHEMA_IRI, DEFAULT_SCHEMA_VERSION as SCHEMA_VERSION, SIDECAR_PREFIX, SPACE_KINDS, SPACE_MEMBERSHIP_SCHEMA_IRI, SPACE_ROLES, SPACE_SCHEMA_IRI, SPACE_VISIBILITY, STAGE_SCHEMA_IRI, SYSTEM_NAMESPACE_KINDS, SYSTEM_SCHEMA_BASE_IRIS, SYSTEM_SCHEMA_IRIS, type SavedView, SavedViewSchema, Schema, type SchemaAuthorityResolution, type SchemaAuthorityResolutionKind, type SchemaAuthorityResolutionOptions, type SchemaCompatibility, type SchemaCompatibilityMode, SchemaCompatibilitySchema, type SchemaDefinition, SchemaDefinitionSchema, type SchemaDefinitionSigningInput, type SchemaDefinitionStatus, type SchemaExtension, SchemaExtensionSchema, SchemaIRI, SchemaLens, type SelectOption, type SelectOptions, type SidecarOverlay, type Space, type SpaceKind, type SpaceLike, type SpaceMembership, SpaceMembershipSchema, type SpaceRole, SpaceSchema, type SpaceTreeNode, type SpaceVisibility, type Stage, StageSchema, type SyncPolicy, SyncPolicySchema, type SyncPolicyStatus, type SystemFederationErrorCode, type SystemNamespaceKind, type SystemSchemaDefinitionRecord, SystemSchemaIndex, type SystemSchemaIndexDiagnostic, type SystemSchemaIndexOptions, type SystemSchemaIndexStore, TAG_SCHEMA_IRI, TASK_SHORT_ID_PATTERN, TASK_STATUS_CATEGORIES, TRANSACTION_SCHEMA_IRI, TRANSCRIPTION_SCHEMA_IRI, type Tag, TagSchema, type Task, TaskSchema, type TaskShortIdBlock, type TaskStatusCategory, type TaskStatusId, type TaskView, TaskViewSchema, type TextAnchor, type TextOptions, type Transaction, TransactionSchema, type TransactionStatus, type Transcription, TranscriptionSchema, type TranscriptionSourceId, type UpdatedOptions, type UrlOptions, type UserWidget, type UserWidgetConfigField, UserWidgetSchema, type UserWidgetSize, type ValidateSchemaDefinitionNodeOptions, ValidationError, ValidationResult, type Workspace, WorkspaceSchema, type WorkspaceTreeJson, accountRecordId, accountState, addDefault, admitDeviceRecord, bucketPresenceCount, buildEffectiveSchema, buildFolderTree, buildSpaceTree, buildSystemNamespace, buildSystemNodeId, builtInSchemas, canManageSpace, canModifyColumn, checkOrphanStatus, checkbox, compareSpaceRoles, composeLens, computeSchemaDefinitionContentHash, convert, copy, createAccountRecord, createNodeGraphSchemaResolver, createOperations, createSchemaDefinitionSigningPayload, created, createdBy, crmSchemas, date, dateRange, decodeAnchor, defineSchema, deviceRecipientExpander, deviceRecordId, effectiveSpaceRole, email, encodeAnchor, extKey, extractMentions, file, filterOrphanedComments, findLockedColumns, flattenFolderTree, flattenSpaceTree, folderAncestorIds, folderPathIds, formatTaskShortId, gameSchemas, getMentionedUsers, getPresenceNoisePolicy, getTaskStatusCategory, identity, inboxStateNodeId, isCanvasObjectAnchor, isCanvasPositionAnchor, isCellAnchor, isColumnAnchor, isCompletedTaskStatus, isDeviceAuthorized, isExtKey, isMessageLinkPreview, isMoneyValue, isNodeAnchor, isRowAnchor, isSchemaDefinitionNode, isSpaceRole, isSystemNamespaceResource, isSystemSchemaIri, isTextAnchor, isValidMentions, isValidTagName, json, loadExtensionFields, lockedPropertyKeys, mentionsInclude, merge, mergeSidecarsIntoRow, money, multiSelect, nextEpoch, normalizeMentions, normalizeTagName, number, parseExtKey, parseSystemNamespaceResource, parseTaskShortId, person, phone, promoteOverlay, recoveryRecordId, relation, remove, rename, resolveActiveDevices, resolveEffectiveSchema, resolveSchemaAuthority, revocationRecordId, revokeDeviceRecord, revokeSubjectRecord, revokedSubjects, sanitizeLinkPreviews, schemaExtensionId, select, selectExtensionFields, shortIdsFromBlock, sidecarId, sidecarOverlayKeys, spaceAncestorIds, spaceMembershipId, spacePathIds, spaceRoleGrantActions, spaceRoleToShareRole, summarizePresenceNodes, taskBranchName, text, transform, updated, url, validateSchemaDefinitionNode, when, wouldCreateFolderCycle, wouldCreateSpaceCycle };
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  LensRegistry,
3
+ MAX_LINK_PREVIEWS_PER_MESSAGE,
3
4
  MAX_MENTION_DIDS,
4
5
  MigrationError,
5
6
  PresenceAggregator,
@@ -34,6 +35,7 @@ import {
34
35
  isCanvasPositionAnchor,
35
36
  isCellAnchor,
36
37
  isColumnAnchor,
38
+ isMessageLinkPreview,
37
39
  isNodeAnchor,
38
40
  isRowAnchor,
39
41
  isSchemaDefinitionNode,
@@ -54,6 +56,7 @@ import {
54
56
  resolveEffectiveSchema,
55
57
  revokeDeviceRecord,
56
58
  revokeSubjectRecord,
59
+ sanitizeLinkPreviews,
57
60
  schemaRegistry,
58
61
  selectExtensionFields,
59
62
  shortIdsFromBlock,
@@ -63,7 +66,7 @@ import {
63
66
  taskBranchName,
64
67
  transform,
65
68
  when
66
- } from "../chunk-HAV2DS2C.js";
69
+ } from "../chunk-EMREE66R.js";
67
70
  import {
68
71
  SavedViewSchema
69
72
  } from "../chunk-ZZ6TWKGS.js";
@@ -124,7 +127,7 @@ import {
124
127
  } from "../chunk-ZCOFZY5M.js";
125
128
  import {
126
129
  ChatMessageSchema
127
- } from "../chunk-Q3IEGH4B.js";
130
+ } from "../chunk-QVQVKZ3U.js";
128
131
  import {
129
132
  FEED_SCHEMA_IRI,
130
133
  FeedSchema
@@ -187,7 +190,7 @@ import {
187
190
  } from "../chunk-NI4FHG2K.js";
188
191
  import {
189
192
  CommentSchema
190
- } from "../chunk-5HC5NO57.js";
193
+ } from "../chunk-MCKP4F72.js";
191
194
  import {
192
195
  ReactionSchema
193
196
  } from "../chunk-Y3S5SRVM.js";
@@ -476,6 +479,7 @@ export {
476
479
  LineItemSchema,
477
480
  MATCH_RESULTS,
478
481
  MATCH_SESSION_SCHEMA_IRI,
482
+ MAX_LINK_PREVIEWS_PER_MESSAGE,
479
483
  MAX_MENTION_DIDS,
480
484
  MAX_TAG_NAME_LENGTH,
481
485
  MEETING_CHANNELS,
@@ -626,6 +630,7 @@ export {
626
630
  isCompletedTaskStatus,
627
631
  isDeviceAuthorized,
628
632
  isExtKey,
633
+ isMessageLinkPreview,
629
634
  isMoneyValue,
630
635
  isNode,
631
636
  isNodeAnchor,
@@ -670,6 +675,7 @@ export {
670
675
  revokeDeviceRecord,
671
676
  revokeSubjectRecord,
672
677
  revokedSubjects,
678
+ sanitizeLinkPreviews,
673
679
  schemaExtensionId,
674
680
  schemaRegistry,
675
681
  select,
@@ -1,7 +1,7 @@
1
- import { g as NodeStorageAdapter, r as NodeChange, i as NodeId, h as NodeState, aa as NodeBatchPreflightResult, a3 as ImportNodesOptions, a5 as ApplyNodeBatchInput, a6 as ApplyNodeBatchResult, L as ListNodesOptions, ae as CountNodesOptions, a2 as SetNodeOptions, j as NodeQueryDescriptor, k as NodeQueryResult, S as SchemaIRI, a4 as RebuildNodeIndexesOptions, bi as NodeReadAuthorizer, bj as AuthorizationStateVersion } from '../types-S-BJAKyK.js';
2
- export { av as ConflictResult, ay as ContentKeyCache, C as CreateNodeOptions, ab as DeterministicNodeBatchWriteInput, m as DeterministicNodeImportDraft, G as GetWithMigrationOptions, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, s as MergeConflict, M as MigratedNodeState, az as MigrationInfo, aw as NodeBatchChangeEvent, u as NodeBatchChangeListener, a7 as NodeBatchIndexMode, a8 as NodeBatchNotificationMode, a9 as NodeBatchSyncMode, p as NodeBatchWriteInput, ac as NodeBatchWritePolicy, q as NodeBatchWriteResult, ad as NodeBatchWriteTimings, v as NodeChangeEvent, t as NodeChangeListener, ax as NodeContentCipher, a0 as NodePayload, ar as NodeQueryCursor, aq as NodeQueryCursorOrderEntry, ao as NodeQueryMaterializedViewOptions, as as NodeQueryOptions, N as NodeQueryPageCountMode, ap as NodeQueryPageOptions, au as NodeQueryParityCheckMetadata, at as NodeQueryPlanMetadata, am as NodeQuerySearchField, an as NodeQuerySearchFilter, al as NodeQuerySpatialFilter, af as NodeQuerySpatialPoint, ah as NodeQuerySpatialPointFields, ak as NodeQuerySpatialRadius, ag as NodeQuerySpatialRect, ai as NodeQuerySpatialRectFields, aj as NodeQuerySpatialWindow, f as NodeStoreOptions, bk as OperationNodeBatchWriteInput, $ as PropertyKey, bl as PropertyLookup, a1 as PropertyTimestamp, aR as SchemaLookup, c as SortDirection, d as SystemOrderField, aO as TEMP_ID_PREFIX, aS as TempIdResolution, T as TransactionOperation, l as TransactionResult, U as UpdateNodeOptions, aI as applyNodeQueryDescriptor, aA as createNodeQueryDescriptor, bm as createPropertyLookup, aQ as createSchemaLookup, aC as decodeNodeQueryCursor, aB as encodeNodeQueryCursor, aG as filterNodeQueryResults, aJ as getNodeQuerySearchTokens, aN as isTempId, aF as matchesNodeQueryDescriptor, aK as nodeQueryDescriptorNeedsBoundedReload, aD as nodeQueryDescriptorToOptions, aP as resolveTempIds, aE as serializeNodeQueryDescriptor, aH as sortNodeQueryResults, aM as withoutNodeQueryMaterializedView, aL as withoutNodeQueryPagination } from '../types-S-BJAKyK.js';
3
- export { G as QUERY_AST_VERSION, r as QueryAST, n as QueryASTAggregate, A as QueryASTAggregateExecution, m as QueryASTAggregateFunction, y as QueryASTAggregateGroup, x as QueryASTAggregatePlan, z as QueryASTAggregateResult, d as QueryASTComparisonPredicate, e as QueryASTCompoundPredicate, a as QueryASTField, l as QueryASTIncludes, p as QueryASTNodeQuery, s as QueryASTNodeQueryOptions, f as QueryASTNotPredicate, c as QueryASTOperator, h as QueryASTOrderBy, i as QueryASTPage, B as QueryASTPlannerGate, g as QueryASTPredicate, q as QueryASTQuerySet, o as QueryASTQuerySetAggregate, j as QueryASTRelationDirection, k as QueryASTRelationInclude, t as QueryASTRelationIncludeOptions, w as QueryASTRelationIndexRequirement, b as QueryASTSchemaInput, u as QueryASTValidationError, v as QueryASTValidationResult, Q as QueryASTVersion, S as SavedViewDescriptor, F as SavedViewFeedDensity, E as SavedViewFeedLayout, C as SavedViewPresentationHint, D as SavedViewPresentationHintMode, V as and, a3 as avg, N as between, P as contains, a0 as count, a1 as countDistinct, a9 as dashboardQuerySet, Z as defineNodeQueryAST, a8 as defineQuerySetAST, ab as defineSavedViewDescriptor, H as eq, aj as evaluateQueryASTPlannerGate, af as executeQueryASTLoadedAggregates, ag as filterQueryASTLoadedRows, _ as follow, $ as from, ah as getQueryASTRelationIndexRequirements, a6 as groupBy, J as gt, K as gte, a7 as having, O as includesAny, U as isNotNull, T as isNull, L as lt, M as lte, ai as matchesQueryASTLoadedRow, a5 as max, a4 as min, I as neq, X as not, W as or, ae as planQueryASTAggregates, Y as queryOperators, aa as querySetCount, R as startsWith, a2 as sum, ac as validateQueryAST, ad as validateSavedViewDescriptor } from '../query-ast-C3m6kZYv.js';
4
- export { N as NodeStore } from '../store-CjjofiLR.js';
1
+ import { g as NodeStorageAdapter, r as NodeChange, i as NodeId, h as NodeState, aa as NodeBatchPreflightResult, a3 as ImportNodesOptions, a5 as ApplyNodeBatchInput, a6 as ApplyNodeBatchResult, L as ListNodesOptions, ae as CountNodesOptions, a2 as SetNodeOptions, j as NodeQueryDescriptor, k as NodeQueryResult, S as SchemaIRI, a4 as RebuildNodeIndexesOptions, bi as NodeReadAuthorizer, bj as AuthorizationStateVersion } from '../types-BB8-SLEa.js';
2
+ export { av as ConflictResult, ay as ContentKeyCache, C as CreateNodeOptions, ab as DeterministicNodeBatchWriteInput, m as DeterministicNodeImportDraft, G as GetWithMigrationOptions, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, s as MergeConflict, M as MigratedNodeState, az as MigrationInfo, aw as NodeBatchChangeEvent, u as NodeBatchChangeListener, a7 as NodeBatchIndexMode, a8 as NodeBatchNotificationMode, a9 as NodeBatchSyncMode, p as NodeBatchWriteInput, ac as NodeBatchWritePolicy, q as NodeBatchWriteResult, ad as NodeBatchWriteTimings, v as NodeChangeEvent, t as NodeChangeListener, ax as NodeContentCipher, a0 as NodePayload, ar as NodeQueryCursor, aq as NodeQueryCursorOrderEntry, ao as NodeQueryMaterializedViewOptions, as as NodeQueryOptions, N as NodeQueryPageCountMode, ap as NodeQueryPageOptions, au as NodeQueryParityCheckMetadata, at as NodeQueryPlanMetadata, am as NodeQuerySearchField, an as NodeQuerySearchFilter, al as NodeQuerySpatialFilter, af as NodeQuerySpatialPoint, ah as NodeQuerySpatialPointFields, ak as NodeQuerySpatialRadius, ag as NodeQuerySpatialRect, ai as NodeQuerySpatialRectFields, aj as NodeQuerySpatialWindow, f as NodeStoreOptions, bk as OperationNodeBatchWriteInput, $ as PropertyKey, bl as PropertyLookup, a1 as PropertyTimestamp, aR as SchemaLookup, c as SortDirection, d as SystemOrderField, aO as TEMP_ID_PREFIX, aS as TempIdResolution, T as TransactionOperation, l as TransactionResult, U as UpdateNodeOptions, aI as applyNodeQueryDescriptor, aA as createNodeQueryDescriptor, bm as createPropertyLookup, aQ as createSchemaLookup, aC as decodeNodeQueryCursor, aB as encodeNodeQueryCursor, aG as filterNodeQueryResults, aJ as getNodeQuerySearchTokens, aN as isTempId, aF as matchesNodeQueryDescriptor, aK as nodeQueryDescriptorNeedsBoundedReload, aD as nodeQueryDescriptorToOptions, aP as resolveTempIds, aE as serializeNodeQueryDescriptor, aH as sortNodeQueryResults, aM as withoutNodeQueryMaterializedView, aL as withoutNodeQueryPagination } from '../types-BB8-SLEa.js';
3
+ export { G as QUERY_AST_VERSION, r as QueryAST, n as QueryASTAggregate, A as QueryASTAggregateExecution, m as QueryASTAggregateFunction, y as QueryASTAggregateGroup, x as QueryASTAggregatePlan, z as QueryASTAggregateResult, d as QueryASTComparisonPredicate, e as QueryASTCompoundPredicate, a as QueryASTField, l as QueryASTIncludes, p as QueryASTNodeQuery, s as QueryASTNodeQueryOptions, f as QueryASTNotPredicate, c as QueryASTOperator, h as QueryASTOrderBy, i as QueryASTPage, B as QueryASTPlannerGate, g as QueryASTPredicate, q as QueryASTQuerySet, o as QueryASTQuerySetAggregate, j as QueryASTRelationDirection, k as QueryASTRelationInclude, t as QueryASTRelationIncludeOptions, w as QueryASTRelationIndexRequirement, b as QueryASTSchemaInput, u as QueryASTValidationError, v as QueryASTValidationResult, Q as QueryASTVersion, S as SavedViewDescriptor, F as SavedViewFeedDensity, E as SavedViewFeedLayout, C as SavedViewPresentationHint, D as SavedViewPresentationHintMode, V as and, a3 as avg, N as between, P as contains, a0 as count, a1 as countDistinct, a9 as dashboardQuerySet, Z as defineNodeQueryAST, a8 as defineQuerySetAST, ab as defineSavedViewDescriptor, H as eq, aj as evaluateQueryASTPlannerGate, af as executeQueryASTLoadedAggregates, ag as filterQueryASTLoadedRows, _ as follow, $ as from, ah as getQueryASTRelationIndexRequirements, a6 as groupBy, J as gt, K as gte, a7 as having, O as includesAny, U as isNotNull, T as isNull, L as lt, M as lte, ai as matchesQueryASTLoadedRow, a5 as max, a4 as min, I as neq, X as not, W as or, ae as planQueryASTAggregates, Y as queryOperators, aa as querySetCount, R as startsWith, a2 as sum, ac as validateQueryAST, ad as validateSavedViewDescriptor } from '../query-ast-Bvg0Wolx.js';
4
+ export { N as NodeStore } from '../store-DEWnip2G.js';
5
5
  import { AuthAction, DID, AuthDenyReason, AuthDecision, ContentId } from '@xnetjs/core';
6
6
  import { SQLiteAdapter, SQLiteOperationStats } from '@xnetjs/sqlite';
7
7
  import '@xnetjs/crypto';
@@ -41,6 +41,12 @@ declare class MemoryNodeStorageAdapter implements NodeStorageAdapter {
41
41
  withTransaction<T>(fn: (storage: NodeStorageAdapter) => Promise<T>): Promise<T>;
42
42
  appendChange(change: NodeChange): Promise<void>;
43
43
  appendChanges(changes: readonly NodeChange[]): Promise<void>;
44
+ /**
45
+ * Append with hash dedupe — replayed changes must not grow the log
46
+ * (matches the SQLite adapter's `INSERT OR IGNORE`; exploration 0296).
47
+ */
48
+ private appendChangeInternal;
49
+ hasChange(hash: ContentId): Promise<boolean>;
44
50
  getChanges(nodeId: NodeId): Promise<NodeChange[]>;
45
51
  getAllChanges(): Promise<NodeChange[]>;
46
52
  getChangesSince(sinceLamport: number): Promise<NodeChange[]>;
@@ -263,6 +269,7 @@ declare class SQLiteNodeStorageAdapter implements NodeStorageAdapter {
263
269
  deleted: number;
264
270
  }>;
265
271
  getChangeByHash(hash: ContentId): Promise<NodeChange | null>;
272
+ hasChange(hash: ContentId): Promise<boolean>;
266
273
  getLastChange(nodeId: NodeId): Promise<NodeChange | null>;
267
274
  getLastChangesByNodeId(nodeIds: readonly NodeId[]): Promise<Map<NodeId, NodeChange>>;
268
275
  getNode(id: NodeId): Promise<NodeState | null>;
@@ -49,7 +49,7 @@ import {
49
49
  sum,
50
50
  validateQueryAST,
51
51
  validateSavedViewDescriptor
52
- } from "../chunk-E3J22ID2.js";
52
+ } from "../chunk-QN334DU7.js";
53
53
  import {
54
54
  applyNodeQueryDescriptor,
55
55
  createNodeQueryDescriptor,
@@ -1,4 +1,4 @@
1
- import { e as StoreAuthAPI, f as NodeStoreOptions, g as NodeStorageAdapter, C as CreateNodeOptions, h as NodeState, i as NodeId, G as GetWithMigrationOptions, M as MigratedNodeState, U as UpdateNodeOptions, L as ListNodesOptions, j as NodeQueryDescriptor, k as NodeQueryResult, T as TransactionOperation, l as TransactionResult, m as DeterministicNodeImportDraft, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, p as NodeBatchWriteInput, q as NodeBatchWriteResult, S as SchemaIRI, r as NodeChange, s as MergeConflict, t as NodeChangeListener, u as NodeBatchChangeListener } from './types-S-BJAKyK.js';
1
+ import { e as StoreAuthAPI, f as NodeStoreOptions, g as NodeStorageAdapter, C as CreateNodeOptions, h as NodeState, i as NodeId, G as GetWithMigrationOptions, M as MigratedNodeState, U as UpdateNodeOptions, L as ListNodesOptions, j as NodeQueryDescriptor, k as NodeQueryResult, T as TransactionOperation, l as TransactionResult, m as DeterministicNodeImportDraft, n as ImportDeterministicNodesOptions, o as ImportDeterministicNodesResult, p as NodeBatchWriteInput, q as NodeBatchWriteResult, S as SchemaIRI, r as NodeChange, s as MergeConflict, t as NodeChangeListener, u as NodeBatchChangeListener } from './types-BB8-SLEa.js';
2
2
 
3
3
  /**
4
4
  * NodeStore - Event-sourced storage for Nodes
@@ -859,6 +859,12 @@ interface NodeStorageAdapter {
859
859
  /** Get changes with Lamport time greater than `since` */
860
860
  getChangesSince(sinceLamport: number): Promise<NodeChange[]>;
861
861
  getChangeByHash(hash: ContentId): Promise<NodeChange | null>;
862
+ /**
863
+ * Whether a change with this hash is already in the log. Cheap existence
864
+ * probe for idempotent redelivery (exploration 0296); callers fall back to
865
+ * `getChangeByHash` when absent.
866
+ */
867
+ hasChange?(hash: ContentId): Promise<boolean>;
862
868
  getLastChange(nodeId: NodeId): Promise<NodeChange | null>;
863
869
  /** Return the latest change for each requested node id. Missing nodes are omitted. */
864
870
  getLastChangesByNodeId?(nodeIds: readonly NodeId[]): Promise<Map<NodeId, NodeChange>>;
@@ -1103,6 +1109,14 @@ interface ConflictResult {
1103
1109
  }
1104
1110
  /**
1105
1111
  * Conflict detected during merge (for debugging/UI).
1112
+ *
1113
+ * `kind` separates genuine concurrent divergence from routine LWW
1114
+ * housekeeping (exploration 0296):
1115
+ * - `'conflict'` — a cross-author write lost to a newer local value.
1116
+ * - `'lww-resolution'` — a cross-author write replaced a differing local
1117
+ * value (informational lost-update record, not an error condition).
1118
+ * Identical stamps (idempotent replays) and same-author causal history are
1119
+ * never recorded at all.
1106
1120
  */
1107
1121
  interface MergeConflict {
1108
1122
  nodeId: NodeId;
@@ -1112,6 +1126,7 @@ interface MergeConflict {
1112
1126
  remoteValue: unknown;
1113
1127
  remoteTimestamp: PropertyTimestamp;
1114
1128
  resolved: 'local' | 'remote';
1129
+ kind: 'conflict' | 'lww-resolution';
1115
1130
  }
1116
1131
  /**
1117
1132
  * Callback to get the known property names for a schema.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xnetjs/data",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -57,12 +57,12 @@
57
57
  "nanoid": "^5.1.6",
58
58
  "y-protocols": "^1.0.6",
59
59
  "yjs": "^13.6.24",
60
- "@xnetjs/core": "0.8.0",
61
- "@xnetjs/crypto": "0.8.0",
62
- "@xnetjs/identity": "0.8.0",
63
- "@xnetjs/sqlite": "0.8.0",
64
- "@xnetjs/storage": "0.8.0",
65
- "@xnetjs/sync": "0.8.0"
60
+ "@xnetjs/core": "0.10.0",
61
+ "@xnetjs/crypto": "0.10.0",
62
+ "@xnetjs/identity": "0.10.0",
63
+ "@xnetjs/sqlite": "0.10.0",
64
+ "@xnetjs/storage": "0.10.0",
65
+ "@xnetjs/sync": "0.10.0"
66
66
  },
67
67
  "devDependencies": {
68
68
  "tsup": "^8.0.0",