@ai-matrx/records 0.84.5 → 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 +6 -0
  2. package/dist/app-table/index.cjs +36 -0
  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 +36 -0
  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 +36 -0
  11. package/dist/core/index.cjs.map +1 -1
  12. package/dist/core/index.d.cts +5 -4
  13. package/dist/core/index.d.ts +5 -4
  14. package/dist/core/index.js +36 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/data/index.cjs +36 -0
  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 +36 -0
  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 +46 -1
  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 +46 -1
  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 +3 -3
@@ -1,7 +1,7 @@
1
- import { N as NewFieldSpec } from '../declareTable-B9sr2E0h.cjs';
1
+ import { N as NewFieldSpec } from '../declareTable-G-H3AK48.cjs';
2
2
  import { U as Uuid, h as RecordsResult, n as RecordPageSort } from '../record-1yDCn169.cjs';
3
- import { R as RecordsClient } from '../client-CesQciPd.cjs';
4
- import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-B4vIKJVM.cjs';
3
+ import { R as RecordsClient } from '../client-xErw4ZgF.cjs';
4
+ import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-KMjVs-rk.cjs';
5
5
  import '../field-snQG2jMq.cjs';
6
6
  import '../subscription-B_WaT-kr.cjs';
7
7
  import '../ports-y1QNfM80.cjs';
@@ -1,7 +1,7 @@
1
- import { N as NewFieldSpec } from '../declareTable-COXYIOiT.js';
1
+ import { N as NewFieldSpec } from '../declareTable-CYzGWD5K.js';
2
2
  import { U as Uuid, h as RecordsResult, n as RecordPageSort } from '../record-1yDCn169.js';
3
- import { R as RecordsClient } from '../client-TU-nvgcF.js';
4
- import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-C5T-DOdc.js';
3
+ import { R as RecordsClient } from '../client-Cx2JV38-.js';
4
+ import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-B_qYmQJG.js';
5
5
  import '../field-BIJiFPc0.js';
6
6
  import '../subscription-CUok1vAm.js';
7
7
  import '../ports-Y5gLbCXe.js';
@@ -1931,6 +1931,10 @@ var OWED_BY = {
1931
1931
  // clone; they reach the main database when the chair applies them, after
1932
1932
  // visionreach_w4_a_the_store_asks_before_an_agent_changes_a_table.sql (its field_declare body).
1933
1933
  reverse_columns: "VIEWS-AND-FIELDS BL \u2014 matrx-frontend migrations/campaign/viewsfields_bl_a_link_shows_on_both_tables.sql (chair's production apply)",
1934
+ // SEED-ENTITY (2026-10-08): the same links through SEVERAL reverse columns in one call; applied to production
1935
+ // through the ledgered runner. Until `pnpm records:generate` lists it, `reverseLinksFields` asks it as an owed door
1936
+ // and a store without it answers `door_absent` (the caller falls back to one call per column).
1937
+ reverse_links_many_fields: "SEED-ENTITY \u2014 matrx-frontend migrations/campaign/seedentity_reverse_links_many_fields.sql (applied 2026-10-08)",
1934
1938
  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)",
1935
1939
  // Live on Matrx Main since 2026-10-06 (applied through the Supabase MCP); STORE_DOORS lists it at the
1936
1940
  // next `pnpm records:generate`, until then `listKeyset` asks it as an owed door.
@@ -2171,6 +2175,7 @@ var DOORS = {
2171
2175
  // links through one of them. Called through `owedDoor` until `pnpm records:generate` lists them.
2172
2176
  reverseColumns: "reverse_columns",
2173
2177
  reverseLinksMany: "reverse_links_many",
2178
+ reverseLinksManyFields: "reverse_links_many_fields",
2174
2179
  homeAdd: "home_add",
2175
2180
  recordReparent: "record_reparent",
2176
2181
  containmentChain: "containment_chain",
@@ -4047,6 +4052,37 @@ function createRecordsClient(given) {
4047
4052
  }
4048
4053
  return ok(out);
4049
4054
  },
4055
+ async reverseLinksFields(args) {
4056
+ const ids = [...new Set(args.record_ids.filter((id) => typeof id === "string" && id.length > 0))];
4057
+ const fieldIds = [...new Set(args.source_field_ids)];
4058
+ const out = Object.fromEntries(fieldIds.map((id) => [id, {}]));
4059
+ for (let f2 = 0; f2 < fieldIds.length || f2 === 0; f2 += 20) {
4060
+ for (let at = 0; at < ids.length; at += REVERSE_LINKS_RECORDS_PER_CALL) {
4061
+ const result = await owedDoor(
4062
+ DOORS.reverseLinksManyFields,
4063
+ {
4064
+ p_organization_id: org,
4065
+ p_table_id: args.table_id,
4066
+ p_field_ids: fieldIds.slice(f2, f2 + 20),
4067
+ p_record_ids: ids.slice(at, at + REVERSE_LINKS_RECORDS_PER_CALL),
4068
+ p_limit: args.limit ?? 10,
4069
+ p_offset: args.offset ?? 0
4070
+ },
4071
+ "reverseLinksFields"
4072
+ );
4073
+ if (!result.ok) return result;
4074
+ for (const row of result.data ?? []) {
4075
+ if (!row?.record_id || !row.field_id) continue;
4076
+ (out[row.field_id] ??= {})[row.record_id] = {
4077
+ total: typeof row.total === "number" ? row.total : 0,
4078
+ links: Array.isArray(row.links) ? row.links : []
4079
+ };
4080
+ }
4081
+ }
4082
+ if (fieldIds.length === 0) break;
4083
+ }
4084
+ return ok(out);
4085
+ },
4050
4086
  async relationNamesMatch(args) {
4051
4087
  const distinct = [];
4052
4088
  const seen = /* @__PURE__ */ new Set();