@ai-matrx/records 0.84.4 → 0.84.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/app-table/index.cjs +51 -2
  3. package/dist/app-table/index.cjs.map +1 -1
  4. package/dist/app-table/index.d.cts +3 -3
  5. package/dist/app-table/index.d.ts +3 -3
  6. package/dist/app-table/index.js +51 -2
  7. package/dist/app-table/index.js.map +1 -1
  8. package/dist/{client-TU-nvgcF.d.ts → client-Cx2JV38-.d.ts} +7 -1
  9. package/dist/{client-CesQciPd.d.cts → client-xErw4ZgF.d.cts} +7 -1
  10. package/dist/core/index.cjs +59 -4
  11. package/dist/core/index.cjs.map +1 -1
  12. package/dist/core/index.d.cts +12 -5
  13. package/dist/core/index.d.ts +12 -5
  14. package/dist/core/index.js +59 -4
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/data/index.cjs +51 -2
  17. package/dist/data/index.cjs.map +1 -1
  18. package/dist/data/index.d.cts +2 -2
  19. package/dist/data/index.d.ts +2 -2
  20. package/dist/data/index.js +51 -2
  21. package/dist/data/index.js.map +1 -1
  22. package/dist/{declareTable-COXYIOiT.d.ts → declareTable-CYzGWD5K.d.ts} +2 -2
  23. package/dist/{declareTable-B9sr2E0h.d.cts → declareTable-G-H3AK48.d.cts} +2 -2
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +2 -2
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/react/index.cjs +66 -5
  29. package/dist/react/index.cjs.map +1 -1
  30. package/dist/react/index.d.cts +16 -1
  31. package/dist/react/index.d.ts +16 -1
  32. package/dist/react/index.js +66 -5
  33. package/dist/react/index.js.map +1 -1
  34. package/dist/{table-kind-C5T-DOdc.d.ts → table-kind-B_qYmQJG.d.ts} +10 -1
  35. package/dist/{table-kind-B4vIKJVM.d.cts → table-kind-KMjVs-rk.d.cts} +10 -1
  36. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { R as RelationCoordinate, C as ChoiceNudge, T as TableArchiveProgress, a as TableRestoreProgress, b as TableDuplicateProgress, c as TableDuplicated, d as TableCopyInProgress, A as ArchiveLane, e as ArchivedRow, f as Table, g as TableHome, h as TableMoved, i as ChoiceUsage, j as ChoiceRehome, k as ChoiceCellBack, l as ChoicesRehomed, m as TableCapacity, F as FieldDrift, n as FieldRetyped, o as RecordsMerged, M as MigrationUndone, p as RelationWordsManyArgs, q as RelationIcons, r as ReverseColumn, s as ReverseLinksManyArgs, t as ReverseLinks, S as SourceArchived, u as TableKindFacts, E as EntityTableFacts, v as EntityFieldsAcross, N as NewEntityFieldDeclaration, w as EntityFieldRights, x as EntityRecordRead, y as EntityBackLinks, z as EntityRowWritten, B as EntityRecordsFound, P as Pipeline, D as PipelineColumn, G as PipelineVerdict, H as PipelineMoveResult, I as PipelineMoveManyItem, J as PipelineMoveMany, K as PipelineSpec, L as PipelineDeclared, O as StageRuleOnFail, Q as StageRuleEnforcement, U as StagePending, V as StagePendingOnBoard, W as PipelineGate, X as PipelineGatePreview, Y as FormLookOptions, Z as ImportPlan, _ as ImportPolicy, $ as ImportOpened, a0 as ImportColumnsDeclared, a1 as ImportBatchResult, a2 as ImportFinished, a3 as ImportReport, a4 as ImportRun, a5 as InboundDeclared, a6 as InboundAddress, a7 as PortalSummary, a8 as PortalArchiveFilter, a9 as PortalArchiveAnswer, aa as FormArchiveAnswer, ab as ArchivedForm, ac as ArchivedChecklistTemplate, ad as TableRowDefaults, ae as TableRowDefaultsPatch, af as RowDefaultsApplied, ag as RecordRowControls, ah as PortalTableRef, ai as PortalCard, aj as PortalConfigInput, ak as PortalFormSpec, al as PortalFormAnswer, am as PortalInvitation, an as PortalRevocation, ao as PortalPreviewRow, ap as CaptureSheetSummary, aq as CaptureSheetFace, ar as CaptureFileRef, as as CaptureOutcome, at as EnrichmentSummary, au as EnrichDeclared, av as EnrichDueRow, aw as EnrichCell, ax as EnrichRun, ay as DrillSource, az as DrillDefinition, aA as DrillQuestion, aB as DrillAnswer, aC as DrillRowsPage, aD as DocToken, aE as DocUnresolvedToken, aF as DocTemplateRow, aG as DocRenderRow, aH as DocSignatureRow, aI as RecordHistoryEntry, aJ as RecordScopeContext, aK as ConversationScope, aL as ConversationScopeContext, aM as FieldHistoryEntry, aN as RestorePreview, aO as RestoreResult, aP as CommentThreadRead, aQ as CommentWritten, aR as AnonTokenBinding, aS as ChecklistSpec, aT as ChecklistDeclared, aU as ChecklistTemplateSummary, aV as ChecklistTemplateShape, aW as ChecklistRunStarted, aX as ChecklistRunStep, aY as ChecklistRunSummary, aZ as ChecklistStepCompleted, a_ as WorkState, a$ as WorkGraph, b0 as WorkInstantiation, b1 as WorkTurn, b2 as WorkAssignmentField, b3 as WorkSlotHold, b4 as WorkInboxView, b5 as WorkInboxItem, b6 as InboxStateChange, b7 as InboxCounts, b8 as WorkListFlavour, b9 as WorkListItem, ba as WorkAssignment, bb as WorkRecordState, bc as WorkApprover, bd as WorkChange, be as WorkApprovalFiled, bf as WorkApprovalDecision, bg as WorkDecideManyItem, bh as WorkDecideMany, bi as ExternalPrincipalCard, bj as PublishBinding, bk as ResolvedPublishBinding, bl as ResolvedPublishBindingKind, bm as MyLevel, bn as DecorationPath, bo as TableDecorations, bp as GridLayout, bq as FormulaParse, br as RowAction, bs as ActionRunResult, bt as AutomationSpec, bu as AutomationDeclared, bv as AutomationList, bw as AutomationFlipped, bx as AutomationRuns, by as RecordEvent, bz as TableWebhookDeclared, bA as TableWebhook, bB as IoExportPage, bC as TableListEntry, bD as DataHomeTable, bE as TableSyncSpec, bF as TableSyncResult, bG as TableRowCount, bH as RecordHeader, bI as OutsideShareAnswer, bJ as ViewOrderSet } from './table-kind-C5T-DOdc.js';
1
+ import { R as RelationCoordinate, C as ChoiceNudge, T as TableArchiveProgress, a as TableRestoreProgress, b as TableDuplicateProgress, c as TableDuplicated, d as TableCopyInProgress, A as ArchiveLane, e as ArchivedRow, f as Table, g as TableHome, h as TableMoved, i as ChoiceUsage, j as ChoiceRehome, k as ChoiceCellBack, l as ChoicesRehomed, m as TableCapacity, F as FieldDrift, n as FieldRetyped, o as RecordsMerged, M as MigrationUndone, p as RelationWordsManyArgs, q as RelationIcons, r as ReverseColumn, s as ReverseLinksManyArgs, t as ReverseLinks, u as ReverseLinksFieldsArgs, S as SourceArchived, v as TableKindFacts, E as EntityTableFacts, w as EntityFieldsAcross, N as NewEntityFieldDeclaration, x as EntityFieldRights, y as EntityRecordRead, z as EntityBackLinks, B as EntityRowWritten, D as EntityRecordsFound, P as Pipeline, G as PipelineColumn, H as PipelineVerdict, I as PipelineMoveResult, J as PipelineMoveManyItem, K as PipelineMoveMany, L as PipelineSpec, O as PipelineDeclared, Q as StageRuleOnFail, U as StageRuleEnforcement, V as StagePending, W as StagePendingOnBoard, X as PipelineGate, Y as PipelineGatePreview, Z as FormLookOptions, _ as ImportPlan, $ as ImportPolicy, a0 as ImportOpened, a1 as ImportColumnsDeclared, a2 as ImportBatchResult, a3 as ImportFinished, a4 as ImportReport, a5 as ImportRun, a6 as InboundDeclared, a7 as InboundAddress, a8 as PortalSummary, a9 as PortalArchiveFilter, aa as PortalArchiveAnswer, ab as FormArchiveAnswer, ac as ArchivedForm, ad as ArchivedChecklistTemplate, ae as TableRowDefaults, af as TableRowDefaultsPatch, ag as RowDefaultsApplied, ah as RecordRowControls, ai as PortalTableRef, aj as PortalCard, ak as PortalConfigInput, al as PortalFormSpec, am as PortalFormAnswer, an as PortalInvitation, ao as PortalRevocation, ap as PortalPreviewRow, aq as CaptureSheetSummary, ar as CaptureSheetFace, as as CaptureFileRef, at as CaptureOutcome, au as EnrichmentSummary, av as EnrichDeclared, aw as EnrichDueRow, ax as EnrichCell, ay as EnrichRun, az as DrillSource, aA as DrillDefinition, aB as DrillQuestion, aC as DrillAnswer, aD as DrillRowsPage, aE as DocToken, aF as DocUnresolvedToken, aG as DocTemplateRow, aH as DocRenderRow, aI as DocSignatureRow, aJ as RecordHistoryEntry, aK as RecordScopeContext, aL as ConversationScope, aM as ConversationScopeContext, aN as FieldHistoryEntry, aO as RestorePreview, aP as RestoreResult, aQ as CommentThreadRead, aR as CommentWritten, aS as AnonTokenBinding, aT as ChecklistSpec, aU as ChecklistDeclared, aV as ChecklistTemplateSummary, aW as ChecklistTemplateShape, aX as ChecklistRunStarted, aY as ChecklistRunStep, aZ as ChecklistRunSummary, a_ as ChecklistStepCompleted, a$ as WorkState, b0 as WorkGraph, b1 as WorkInstantiation, b2 as WorkTurn, b3 as WorkAssignmentField, b4 as WorkSlotHold, b5 as WorkInboxView, b6 as WorkInboxItem, b7 as InboxStateChange, b8 as InboxCounts, b9 as WorkListFlavour, ba as WorkListItem, bb as WorkAssignment, bc as WorkRecordState, bd as WorkApprover, be as WorkChange, bf as WorkApprovalFiled, bg as WorkApprovalDecision, bh as WorkDecideManyItem, bi as WorkDecideMany, bj as ExternalPrincipalCard, bk as PublishBinding, bl as ResolvedPublishBinding, bm as ResolvedPublishBindingKind, bn as MyLevel, bo as DecorationPath, bp as TableDecorations, bq as GridLayout, br as FormulaParse, bs as RowAction, bt as ActionRunResult, bu as AutomationSpec, bv as AutomationDeclared, bw as AutomationList, bx as AutomationFlipped, by as AutomationRuns, bz as RecordEvent, bA as TableWebhookDeclared, bB as TableWebhook, bC as IoExportPage, bD as TableListEntry, bE as DataHomeTable, bF as TableSyncSpec, bG as TableSyncResult, bH as TableRowCount, bI as RecordHeader, bJ as OutsideShareAnswer, bK as ViewOrderSet } from './table-kind-B_qYmQJG.js';
2
2
  import { S as StoreFilter, F as FormSummary, B as BookingSummary, a as BookingAvailability, b as BookingDeclared, c as FormRoute, d as FormResults, D as DashboardSummary, e as DashboardBlock, R as RecordFilter, A as AggregateCompare, f as AggregateBucket, g as DashboardRunResult, h as StuckRow, i as AggregateMeasure, j as AggregateRow, k as Subscription, M as MySubscription, l as SubscriptionSpec, m as DigestPreview, n as SavedViewRow, o as SavedViewSpecIn, p as RowTemplateRow } from './subscription-CUok1vAm.js';
3
3
  import { b as Field, c as FieldPatch, N as NewFieldDeclaration, R as RelationNamesAnswer, d as FieldDuplicated, e as FieldProposal, T as TableProposal } from './field-BIJiFPc0.js';
4
4
  import { U as Uuid, f as Timestamp, g as RecordDocument, h as RecordsResult, i as RecordChange, j as RecordChangeResult, k as RecordGraphWritten, l as RecordRead, m as ReadRow, n as RecordPageSort, o as RecordPage, p as RecordKeysetPage, q as StoredRecord, r as RecordRevision, s as ReadValue, t as RecordsErrorCode, R as RecordsError, W as WriteConflict } from './record-1yDCn169.js';
@@ -746,6 +746,12 @@ interface RecordsClient {
746
746
  * one count and one page. A record with no links answers `{ total: 0, links: [] }`.
747
747
  */
748
748
  reverseLinksMany(args: ReverseLinksManyArgs): Promise<RecordsResult<Record<string, ReverseLinks>>>;
749
+ /**
750
+ * The same, through SEVERAL reverse columns in ONE call (`custom.reverse_links_many_fields`):
751
+ * `{ [source field id]: { [record id]: { total, links } } }`. A store without the door answers
752
+ * `door_absent` — ask `reverseLinksMany` per column then.
753
+ */
754
+ reverseLinksFields(args: ReverseLinksFieldsArgs): Promise<RecordsResult<Record<string, Record<string, ReverseLinks>>>>;
749
755
  /** Take a field off a table. Refuses the title field, the last field, and one another field reads through. */
750
756
  fieldRetire(args: {
751
757
  field_id: Uuid;
@@ -1,4 +1,4 @@
1
- import { R as RelationCoordinate, C as ChoiceNudge, T as TableArchiveProgress, a as TableRestoreProgress, b as TableDuplicateProgress, c as TableDuplicated, d as TableCopyInProgress, A as ArchiveLane, e as ArchivedRow, f as Table, g as TableHome, h as TableMoved, i as ChoiceUsage, j as ChoiceRehome, k as ChoiceCellBack, l as ChoicesRehomed, m as TableCapacity, F as FieldDrift, n as FieldRetyped, o as RecordsMerged, M as MigrationUndone, p as RelationWordsManyArgs, q as RelationIcons, r as ReverseColumn, s as ReverseLinksManyArgs, t as ReverseLinks, S as SourceArchived, u as TableKindFacts, E as EntityTableFacts, v as EntityFieldsAcross, N as NewEntityFieldDeclaration, w as EntityFieldRights, x as EntityRecordRead, y as EntityBackLinks, z as EntityRowWritten, B as EntityRecordsFound, P as Pipeline, D as PipelineColumn, G as PipelineVerdict, H as PipelineMoveResult, I as PipelineMoveManyItem, J as PipelineMoveMany, K as PipelineSpec, L as PipelineDeclared, O as StageRuleOnFail, Q as StageRuleEnforcement, U as StagePending, V as StagePendingOnBoard, W as PipelineGate, X as PipelineGatePreview, Y as FormLookOptions, Z as ImportPlan, _ as ImportPolicy, $ as ImportOpened, a0 as ImportColumnsDeclared, a1 as ImportBatchResult, a2 as ImportFinished, a3 as ImportReport, a4 as ImportRun, a5 as InboundDeclared, a6 as InboundAddress, a7 as PortalSummary, a8 as PortalArchiveFilter, a9 as PortalArchiveAnswer, aa as FormArchiveAnswer, ab as ArchivedForm, ac as ArchivedChecklistTemplate, ad as TableRowDefaults, ae as TableRowDefaultsPatch, af as RowDefaultsApplied, ag as RecordRowControls, ah as PortalTableRef, ai as PortalCard, aj as PortalConfigInput, ak as PortalFormSpec, al as PortalFormAnswer, am as PortalInvitation, an as PortalRevocation, ao as PortalPreviewRow, ap as CaptureSheetSummary, aq as CaptureSheetFace, ar as CaptureFileRef, as as CaptureOutcome, at as EnrichmentSummary, au as EnrichDeclared, av as EnrichDueRow, aw as EnrichCell, ax as EnrichRun, ay as DrillSource, az as DrillDefinition, aA as DrillQuestion, aB as DrillAnswer, aC as DrillRowsPage, aD as DocToken, aE as DocUnresolvedToken, aF as DocTemplateRow, aG as DocRenderRow, aH as DocSignatureRow, aI as RecordHistoryEntry, aJ as RecordScopeContext, aK as ConversationScope, aL as ConversationScopeContext, aM as FieldHistoryEntry, aN as RestorePreview, aO as RestoreResult, aP as CommentThreadRead, aQ as CommentWritten, aR as AnonTokenBinding, aS as ChecklistSpec, aT as ChecklistDeclared, aU as ChecklistTemplateSummary, aV as ChecklistTemplateShape, aW as ChecklistRunStarted, aX as ChecklistRunStep, aY as ChecklistRunSummary, aZ as ChecklistStepCompleted, a_ as WorkState, a$ as WorkGraph, b0 as WorkInstantiation, b1 as WorkTurn, b2 as WorkAssignmentField, b3 as WorkSlotHold, b4 as WorkInboxView, b5 as WorkInboxItem, b6 as InboxStateChange, b7 as InboxCounts, b8 as WorkListFlavour, b9 as WorkListItem, ba as WorkAssignment, bb as WorkRecordState, bc as WorkApprover, bd as WorkChange, be as WorkApprovalFiled, bf as WorkApprovalDecision, bg as WorkDecideManyItem, bh as WorkDecideMany, bi as ExternalPrincipalCard, bj as PublishBinding, bk as ResolvedPublishBinding, bl as ResolvedPublishBindingKind, bm as MyLevel, bn as DecorationPath, bo as TableDecorations, bp as GridLayout, bq as FormulaParse, br as RowAction, bs as ActionRunResult, bt as AutomationSpec, bu as AutomationDeclared, bv as AutomationList, bw as AutomationFlipped, bx as AutomationRuns, by as RecordEvent, bz as TableWebhookDeclared, bA as TableWebhook, bB as IoExportPage, bC as TableListEntry, bD as DataHomeTable, bE as TableSyncSpec, bF as TableSyncResult, bG as TableRowCount, bH as RecordHeader, bI as OutsideShareAnswer, bJ as ViewOrderSet } from './table-kind-B4vIKJVM.cjs';
1
+ import { R as RelationCoordinate, C as ChoiceNudge, T as TableArchiveProgress, a as TableRestoreProgress, b as TableDuplicateProgress, c as TableDuplicated, d as TableCopyInProgress, A as ArchiveLane, e as ArchivedRow, f as Table, g as TableHome, h as TableMoved, i as ChoiceUsage, j as ChoiceRehome, k as ChoiceCellBack, l as ChoicesRehomed, m as TableCapacity, F as FieldDrift, n as FieldRetyped, o as RecordsMerged, M as MigrationUndone, p as RelationWordsManyArgs, q as RelationIcons, r as ReverseColumn, s as ReverseLinksManyArgs, t as ReverseLinks, u as ReverseLinksFieldsArgs, S as SourceArchived, v as TableKindFacts, E as EntityTableFacts, w as EntityFieldsAcross, N as NewEntityFieldDeclaration, x as EntityFieldRights, y as EntityRecordRead, z as EntityBackLinks, B as EntityRowWritten, D as EntityRecordsFound, P as Pipeline, G as PipelineColumn, H as PipelineVerdict, I as PipelineMoveResult, J as PipelineMoveManyItem, K as PipelineMoveMany, L as PipelineSpec, O as PipelineDeclared, Q as StageRuleOnFail, U as StageRuleEnforcement, V as StagePending, W as StagePendingOnBoard, X as PipelineGate, Y as PipelineGatePreview, Z as FormLookOptions, _ as ImportPlan, $ as ImportPolicy, a0 as ImportOpened, a1 as ImportColumnsDeclared, a2 as ImportBatchResult, a3 as ImportFinished, a4 as ImportReport, a5 as ImportRun, a6 as InboundDeclared, a7 as InboundAddress, a8 as PortalSummary, a9 as PortalArchiveFilter, aa as PortalArchiveAnswer, ab as FormArchiveAnswer, ac as ArchivedForm, ad as ArchivedChecklistTemplate, ae as TableRowDefaults, af as TableRowDefaultsPatch, ag as RowDefaultsApplied, ah as RecordRowControls, ai as PortalTableRef, aj as PortalCard, ak as PortalConfigInput, al as PortalFormSpec, am as PortalFormAnswer, an as PortalInvitation, ao as PortalRevocation, ap as PortalPreviewRow, aq as CaptureSheetSummary, ar as CaptureSheetFace, as as CaptureFileRef, at as CaptureOutcome, au as EnrichmentSummary, av as EnrichDeclared, aw as EnrichDueRow, ax as EnrichCell, ay as EnrichRun, az as DrillSource, aA as DrillDefinition, aB as DrillQuestion, aC as DrillAnswer, aD as DrillRowsPage, aE as DocToken, aF as DocUnresolvedToken, aG as DocTemplateRow, aH as DocRenderRow, aI as DocSignatureRow, aJ as RecordHistoryEntry, aK as RecordScopeContext, aL as ConversationScope, aM as ConversationScopeContext, aN as FieldHistoryEntry, aO as RestorePreview, aP as RestoreResult, aQ as CommentThreadRead, aR as CommentWritten, aS as AnonTokenBinding, aT as ChecklistSpec, aU as ChecklistDeclared, aV as ChecklistTemplateSummary, aW as ChecklistTemplateShape, aX as ChecklistRunStarted, aY as ChecklistRunStep, aZ as ChecklistRunSummary, a_ as ChecklistStepCompleted, a$ as WorkState, b0 as WorkGraph, b1 as WorkInstantiation, b2 as WorkTurn, b3 as WorkAssignmentField, b4 as WorkSlotHold, b5 as WorkInboxView, b6 as WorkInboxItem, b7 as InboxStateChange, b8 as InboxCounts, b9 as WorkListFlavour, ba as WorkListItem, bb as WorkAssignment, bc as WorkRecordState, bd as WorkApprover, be as WorkChange, bf as WorkApprovalFiled, bg as WorkApprovalDecision, bh as WorkDecideManyItem, bi as WorkDecideMany, bj as ExternalPrincipalCard, bk as PublishBinding, bl as ResolvedPublishBinding, bm as ResolvedPublishBindingKind, bn as MyLevel, bo as DecorationPath, bp as TableDecorations, bq as GridLayout, br as FormulaParse, bs as RowAction, bt as ActionRunResult, bu as AutomationSpec, bv as AutomationDeclared, bw as AutomationList, bx as AutomationFlipped, by as AutomationRuns, bz as RecordEvent, bA as TableWebhookDeclared, bB as TableWebhook, bC as IoExportPage, bD as TableListEntry, bE as DataHomeTable, bF as TableSyncSpec, bG as TableSyncResult, bH as TableRowCount, bI as RecordHeader, bJ as OutsideShareAnswer, bK as ViewOrderSet } from './table-kind-KMjVs-rk.cjs';
2
2
  import { S as StoreFilter, F as FormSummary, B as BookingSummary, a as BookingAvailability, b as BookingDeclared, c as FormRoute, d as FormResults, D as DashboardSummary, e as DashboardBlock, R as RecordFilter, A as AggregateCompare, f as AggregateBucket, g as DashboardRunResult, h as StuckRow, i as AggregateMeasure, j as AggregateRow, k as Subscription, M as MySubscription, l as SubscriptionSpec, m as DigestPreview, n as SavedViewRow, o as SavedViewSpecIn, p as RowTemplateRow } from './subscription-B_WaT-kr.cjs';
3
3
  import { b as Field, c as FieldPatch, N as NewFieldDeclaration, R as RelationNamesAnswer, d as FieldDuplicated, e as FieldProposal, T as TableProposal } from './field-snQG2jMq.cjs';
4
4
  import { U as Uuid, f as Timestamp, g as RecordDocument, h as RecordsResult, i as RecordChange, j as RecordChangeResult, k as RecordGraphWritten, l as RecordRead, m as ReadRow, n as RecordPageSort, o as RecordPage, p as RecordKeysetPage, q as StoredRecord, r as RecordRevision, s as ReadValue, t as RecordsErrorCode, R as RecordsError, W as WriteConflict } from './record-1yDCn169.cjs';
@@ -746,6 +746,12 @@ interface RecordsClient {
746
746
  * one count and one page. A record with no links answers `{ total: 0, links: [] }`.
747
747
  */
748
748
  reverseLinksMany(args: ReverseLinksManyArgs): Promise<RecordsResult<Record<string, ReverseLinks>>>;
749
+ /**
750
+ * The same, through SEVERAL reverse columns in ONE call (`custom.reverse_links_many_fields`):
751
+ * `{ [source field id]: { [record id]: { total, links } } }`. A store without the door answers
752
+ * `door_absent` — ask `reverseLinksMany` per column then.
753
+ */
754
+ reverseLinksFields(args: ReverseLinksFieldsArgs): Promise<RecordsResult<Record<string, Record<string, ReverseLinks>>>>;
749
755
  /** Take a field off a table. Refuses the title field, the last field, and one another field reads through. */
750
756
  fieldRetire(args: {
751
757
  field_id: Uuid;
@@ -183,6 +183,7 @@ __export(core_exports, {
183
183
  isPersonStamp: () => isPersonStamp,
184
184
  isPortalAccent: () => isPortalAccent,
185
185
  isPortalArchiveFilter: () => isPortalArchiveFilter,
186
+ isRecordRemoved: () => isRecordRemoved,
186
187
  isRecordsErr: () => isRecordsErr,
187
188
  isRuleFilter: () => isRuleFilter,
188
189
  isShownTo: () => isShownTo,
@@ -196,6 +197,8 @@ __export(core_exports, {
196
197
  localeDateOrder: () => localeDateOrder,
197
198
  looksLikeAnId: () => looksLikeAnId,
198
199
  mapPgError: () => mapPgError,
200
+ markRecordRemoved: () => markRecordRemoved,
201
+ markRecordRestored: () => markRecordRestored,
199
202
  mayDrag: () => mayDrag,
200
203
  measureKey: () => measureKey,
201
204
  memoryStore: () => memoryStore,
@@ -5222,6 +5225,16 @@ function announceRecordChanged(recordId) {
5222
5225
  }
5223
5226
  }
5224
5227
  }
5228
+ var removed = /* @__PURE__ */ new Set();
5229
+ function markRecordRemoved(recordId) {
5230
+ removed.add(recordId);
5231
+ }
5232
+ function markRecordRestored(recordId) {
5233
+ removed.delete(recordId);
5234
+ }
5235
+ function isRecordRemoved(recordId) {
5236
+ return removed.has(recordId);
5237
+ }
5225
5238
  function onRecordChanged(listener) {
5226
5239
  listeners.add(listener);
5227
5240
  return () => listeners.delete(listener);
@@ -5320,6 +5333,10 @@ var OWED_BY = {
5320
5333
  // clone; they reach the main database when the chair applies them, after
5321
5334
  // visionreach_w4_a_the_store_asks_before_an_agent_changes_a_table.sql (its field_declare body).
5322
5335
  reverse_columns: "VIEWS-AND-FIELDS BL \u2014 matrx-frontend migrations/campaign/viewsfields_bl_a_link_shows_on_both_tables.sql (chair's production apply)",
5336
+ // SEED-ENTITY (2026-10-08): the same links through SEVERAL reverse columns in one call; applied to production
5337
+ // through the ledgered runner. Until `pnpm records:generate` lists it, `reverseLinksFields` asks it as an owed door
5338
+ // and a store without it answers `door_absent` (the caller falls back to one call per column).
5339
+ reverse_links_many_fields: "SEED-ENTITY \u2014 matrx-frontend migrations/campaign/seedentity_reverse_links_many_fields.sql (applied 2026-10-08)",
5323
5340
  reverse_links_many: "VIEWS-AND-FIELDS BL \u2014 matrx-frontend migrations/campaign/viewsfields_bl_a_link_shows_on_both_tables.sql (chair's production apply)",
5324
5341
  // Live on Matrx Main since 2026-10-06 (applied through the Supabase MCP); STORE_DOORS lists it at the
5325
5342
  // next `pnpm records:generate`, until then `listKeyset` asks it as an owed door.
@@ -5560,6 +5577,7 @@ var DOORS = {
5560
5577
  // links through one of them. Called through `owedDoor` until `pnpm records:generate` lists them.
5561
5578
  reverseColumns: "reverse_columns",
5562
5579
  reverseLinksMany: "reverse_links_many",
5580
+ reverseLinksManyFields: "reverse_links_many_fields",
5563
5581
  homeAdd: "home_add",
5564
5582
  recordReparent: "record_reparent",
5565
5583
  containmentChain: "containment_chain",
@@ -6626,7 +6644,10 @@ function createRecordsClient(given) {
6626
6644
  { p_organization_id: org, p_record_id: record_id },
6627
6645
  "recordDelete"
6628
6646
  );
6629
- if (result.ok) announceRecordChanged(record_id);
6647
+ if (result.ok) {
6648
+ markRecordRemoved(record_id);
6649
+ announceRecordChanged(record_id);
6650
+ }
6630
6651
  return result;
6631
6652
  },
6632
6653
  async recordRestore({ record_id }) {
@@ -6635,7 +6656,10 @@ function createRecordsClient(given) {
6635
6656
  { p_organization_id: org, p_record_id: record_id },
6636
6657
  "recordRestore"
6637
6658
  );
6638
- if (result.ok) announceRecordChanged(record_id);
6659
+ if (result.ok) {
6660
+ markRecordRestored(record_id);
6661
+ announceRecordChanged(record_id);
6662
+ }
6639
6663
  return result;
6640
6664
  },
6641
6665
  async tableArchive({ table_id, chunk, includeTable }) {
@@ -7436,6 +7460,37 @@ function createRecordsClient(given) {
7436
7460
  }
7437
7461
  return ok(out);
7438
7462
  },
7463
+ async reverseLinksFields(args) {
7464
+ const ids = [...new Set(args.record_ids.filter((id) => typeof id === "string" && id.length > 0))];
7465
+ const fieldIds = [...new Set(args.source_field_ids)];
7466
+ const out = Object.fromEntries(fieldIds.map((id) => [id, {}]));
7467
+ for (let f = 0; f < fieldIds.length || f === 0; f += 20) {
7468
+ for (let at = 0; at < ids.length; at += REVERSE_LINKS_RECORDS_PER_CALL) {
7469
+ const result = await owedDoor(
7470
+ DOORS.reverseLinksManyFields,
7471
+ {
7472
+ p_organization_id: org,
7473
+ p_table_id: args.table_id,
7474
+ p_field_ids: fieldIds.slice(f, f + 20),
7475
+ p_record_ids: ids.slice(at, at + REVERSE_LINKS_RECORDS_PER_CALL),
7476
+ p_limit: args.limit ?? 10,
7477
+ p_offset: args.offset ?? 0
7478
+ },
7479
+ "reverseLinksFields"
7480
+ );
7481
+ if (!result.ok) return result;
7482
+ for (const row of result.data ?? []) {
7483
+ if (!row?.record_id || !row.field_id) continue;
7484
+ (out[row.field_id] ??= {})[row.record_id] = {
7485
+ total: typeof row.total === "number" ? row.total : 0,
7486
+ links: Array.isArray(row.links) ? row.links : []
7487
+ };
7488
+ }
7489
+ }
7490
+ if (fieldIds.length === 0) break;
7491
+ }
7492
+ return ok(out);
7493
+ },
7439
7494
  async relationNamesMatch(args) {
7440
7495
  const distinct = [];
7441
7496
  const seen = /* @__PURE__ */ new Set();
@@ -9704,8 +9759,8 @@ async function declareTable(client, spec) {
9704
9759
  return { ok: true, data: table.data, homeId: home.data };
9705
9760
  }
9706
9761
  async function undo(client, tableId, homeId, name, refusal) {
9707
- const removed = await client.recordDelete({ record_id: tableId });
9708
- if (removed.ok) {
9762
+ const removed2 = await client.recordDelete({ record_id: tableId });
9763
+ if (removed2.ok) {
9709
9764
  await client.recordDelete({ record_id: homeId });
9710
9765
  return { ok: false, error: refusal };
9711
9766
  }