@ai-matrx/records 0.87.32 → 0.92.1

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 (107) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +115 -0
  3. package/dist/{client-E0VQ0NPO.d.ts → client-Cn3odIIB.d.cts} +10 -5
  4. package/dist/{client-C3ZZNfGH.d.cts → client-Dzd8gtAo.d.ts} +10 -5
  5. package/dist/core/index.cjs +28 -10
  6. package/dist/core/index.cjs.map +1 -1
  7. package/dist/core/index.d.cts +23 -12
  8. package/dist/core/index.d.ts +23 -12
  9. package/dist/core/index.js +28 -10
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/data/index.cjs +22 -10
  12. package/dist/data/index.cjs.map +1 -1
  13. package/dist/data/index.d.cts +12 -142
  14. package/dist/data/index.d.ts +12 -142
  15. package/dist/data/index.js +22 -10
  16. package/dist/data/index.js.map +1 -1
  17. package/dist/{declareTable-BK3zufr7.d.cts → declareTable-CrL6AZKB.d.cts} +4 -4
  18. package/dist/{declareTable-B12XybRp.d.ts → declareTable-ZRW5EsTQ.d.ts} +4 -4
  19. package/dist/entity/index.cjs +984 -0
  20. package/dist/entity/index.cjs.map +1 -0
  21. package/dist/entity/index.d.cts +36 -0
  22. package/dist/entity/index.d.ts +36 -0
  23. package/dist/entity/index.js +964 -0
  24. package/dist/entity/index.js.map +1 -0
  25. package/dist/entity/react.cjs +1024 -0
  26. package/dist/entity/react.cjs.map +1 -0
  27. package/dist/entity/react.d.cts +511 -0
  28. package/dist/entity/react.d.ts +511 -0
  29. package/dist/entity/react.js +1015 -0
  30. package/dist/entity/react.js.map +1 -0
  31. package/dist/{field-BanTVGK2.d.cts → field-CCY1rG9l.d.cts} +1 -1
  32. package/dist/{field-BPABOJ2Y.d.ts → field-enufS5ry.d.ts} +1 -1
  33. package/dist/forms/index.cjs +984 -0
  34. package/dist/forms/index.cjs.map +1 -0
  35. package/dist/forms/index.d.cts +333 -0
  36. package/dist/forms/index.d.ts +333 -0
  37. package/dist/forms/index.js +961 -0
  38. package/dist/forms/index.js.map +1 -0
  39. package/dist/index.cjs +10 -1
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.cts +11 -8
  42. package/dist/index.d.ts +11 -8
  43. package/dist/index.js +10 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/memory/index.d.cts +7 -6
  46. package/dist/memory/index.d.ts +7 -6
  47. package/dist/port-C54ykAOv.d.ts +301 -0
  48. package/dist/port-Drioh9al.d.cts +301 -0
  49. package/dist/portal-DRdmZ-xv.d.cts +331 -0
  50. package/dist/portal-or_f7BkT.d.ts +331 -0
  51. package/dist/{ports-TMWX-t9l.d.ts → ports-BeOgjwYl.d.ts} +2 -2
  52. package/dist/{ports-D8-iuY1P.d.cts → ports-s0D2jvqn.d.cts} +2 -2
  53. package/dist/react/index.cjs +58 -526
  54. package/dist/react/index.cjs.map +1 -1
  55. package/dist/react/index.d.cts +16 -1
  56. package/dist/react/index.d.ts +16 -1
  57. package/dist/react/index.js +55 -530
  58. package/dist/react/index.js.map +1 -1
  59. package/dist/realtime/index.d.cts +2 -2
  60. package/dist/realtime/index.d.ts +2 -2
  61. package/dist/{record-DpB2QgAZ.d.cts → record-BwCf9wKW.d.cts} +7 -1
  62. package/dist/{record-DpB2QgAZ.d.ts → record-BwCf9wKW.d.ts} +7 -1
  63. package/dist/relation-8vAWCa67.d.cts +230 -0
  64. package/dist/relation-eLMgv_dV.d.ts +230 -0
  65. package/dist/rule-D9yNiorf.d.ts +250 -0
  66. package/dist/rule-wHI5B0Ka.d.cts +250 -0
  67. package/dist/search/index.cjs +283 -0
  68. package/dist/search/index.cjs.map +1 -0
  69. package/dist/search/index.d.cts +44 -0
  70. package/dist/search/index.d.ts +44 -0
  71. package/dist/search/index.js +260 -0
  72. package/dist/search/index.js.map +1 -0
  73. package/dist/setup/index.cjs +6854 -0
  74. package/dist/setup/index.cjs.map +1 -0
  75. package/dist/setup/index.d.cts +87 -0
  76. package/dist/setup/index.d.ts +87 -0
  77. package/dist/setup/index.js +6829 -0
  78. package/dist/setup/index.js.map +1 -0
  79. package/dist/{subscription-D7KQBHXN.d.ts → subscription-BynsG1K6.d.ts} +3 -249
  80. package/dist/{subscription-BD9DnJxX.d.cts → subscription-CdoI-UaB.d.cts} +3 -249
  81. package/dist/{table-kind-BZu8mtND.d.cts → table-kind-DzctQ7dO.d.cts} +3 -558
  82. package/dist/{table-kind-xKxTHtrV.d.ts → table-kind-i3lZJa3f.d.ts} +3 -558
  83. package/dist/templates/index.d.cts +10 -9
  84. package/dist/templates/index.d.ts +10 -9
  85. package/dist/typed-table/index.cjs +22 -10
  86. package/dist/typed-table/index.cjs.map +1 -1
  87. package/dist/typed-table/index.d.cts +10 -7
  88. package/dist/typed-table/index.d.ts +10 -7
  89. package/dist/typed-table/index.js +22 -10
  90. package/dist/typed-table/index.js.map +1 -1
  91. package/dist/types-BKYEeFt4.d.cts +139 -0
  92. package/dist/{types-Dv61jStB.d.ts → types-BvL_oKFl.d.ts} +2 -2
  93. package/dist/{types-CLP5H4Wk.d.cts → types-D8qdG3Lg.d.cts} +2 -2
  94. package/dist/{types-C2uspRtf.d.cts → types-DAFP6XFe.d.cts} +2 -2
  95. package/dist/{types-DmPkWQic.d.ts → types-DYzXhD7j.d.ts} +2 -2
  96. package/dist/types-cpKY7Pjb.d.ts +139 -0
  97. package/dist/use-cases/index.d.cts +5 -5
  98. package/dist/use-cases/index.d.ts +5 -5
  99. package/dist/{validate-CWVToe1T.d.ts → validate-DbvAParj.d.ts} +1 -1
  100. package/dist/{validate-DEB_mn4Y.d.cts → validate-DfNMxjmU.d.cts} +1 -1
  101. package/dist/versions/index.cjs +375 -0
  102. package/dist/versions/index.cjs.map +1 -0
  103. package/dist/versions/index.d.cts +160 -0
  104. package/dist/versions/index.d.ts +160 -0
  105. package/dist/versions/index.js +353 -0
  106. package/dist/versions/index.js.map +1 -0
  107. package/package.json +62 -2
@@ -1,10 +1,13 @@
1
- import { N as NewFieldSpec } from '../declareTable-BK3zufr7.cjs';
2
- import { U as Uuid, i as RecordsResult, o as RecordPageSort } from '../record-DpB2QgAZ.cjs';
3
- import { R as RecordsClient } from '../client-C3ZZNfGH.cjs';
4
- import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-BZu8mtND.cjs';
5
- import '../field-BanTVGK2.cjs';
6
- import '../subscription-BD9DnJxX.cjs';
7
- import '../ports-D8-iuY1P.cjs';
1
+ import { N as NewFieldSpec } from '../declareTable-CrL6AZKB.cjs';
2
+ import { U as Uuid, R as RecordsResult, r as RecordPageSort } from '../record-BwCf9wKW.cjs';
3
+ import { R as RecordsClient } from '../client-Cn3odIIB.cjs';
4
+ import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-DzctQ7dO.cjs';
5
+ import '../field-CCY1rG9l.cjs';
6
+ import '../subscription-CdoI-UaB.cjs';
7
+ import '../rule-wHI5B0Ka.cjs';
8
+ import '../relation-8vAWCa67.cjs';
9
+ import '../ports-s0D2jvqn.cjs';
10
+ import '../portal-DRdmZ-xv.cjs';
8
11
 
9
12
  /** Where a declared field's value goes in the graduated table. */
10
13
  declare const TO_CUSTOM_FIELDS: "custom_fields";
@@ -1,10 +1,13 @@
1
- import { N as NewFieldSpec } from '../declareTable-B12XybRp.js';
2
- import { U as Uuid, i as RecordsResult, o as RecordPageSort } from '../record-DpB2QgAZ.js';
3
- import { R as RecordsClient } from '../client-E0VQ0NPO.js';
4
- import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-xKxTHtrV.js';
5
- import '../field-BPABOJ2Y.js';
6
- import '../subscription-D7KQBHXN.js';
7
- import '../ports-TMWX-t9l.js';
1
+ import { N as NewFieldSpec } from '../declareTable-ZRW5EsTQ.js';
2
+ import { U as Uuid, R as RecordsResult, r as RecordPageSort } from '../record-BwCf9wKW.js';
3
+ import { R as RecordsClient } from '../client-Dzd8gtAo.js';
4
+ import { F as FieldDrift, T as TableArchiveProgress } from '../table-kind-i3lZJa3f.js';
5
+ import '../field-enufS5ry.js';
6
+ import '../subscription-BynsG1K6.js';
7
+ import '../rule-D9yNiorf.js';
8
+ import '../relation-eLMgv_dV.js';
9
+ import '../ports-BeOgjwYl.js';
10
+ import '../portal-or_f7BkT.js';
8
11
 
9
12
  /** Where a declared field's value goes in the graduated table. */
10
13
  declare const TO_CUSTOM_FIELDS: "custom_fields";
@@ -495,9 +495,18 @@ function stableFilterKey(filter) {
495
495
  return `{${parts.join(",")}}`;
496
496
  }
497
497
  function liftWithheld(rows) {
498
+ let shared;
499
+ for (const row of rows) {
500
+ const m = (row.measures ?? {})["_withheld"];
501
+ if (m !== void 0 && m !== null && typeof m === "object") {
502
+ shared = m;
503
+ break;
504
+ }
505
+ }
498
506
  return rows.map((row) => {
499
507
  const measures = row.measures ?? {};
500
- const marker = measures["_withheld"];
508
+ const own = measures["_withheld"];
509
+ const marker = own !== void 0 && own !== null && typeof own === "object" ? own : shared;
501
510
  const rowCount = row.row_count ?? 0;
502
511
  if (marker === void 0 || marker === null || typeof marker !== "object") {
503
512
  return rowCount === row.row_count ? row : { ...row, row_count: rowCount };
@@ -3403,24 +3412,27 @@ function createRecordsClient(given) {
3403
3412
  if (!pass.ok) return pass;
3404
3413
  return carryOnCopy(pass.data, onProgress);
3405
3414
  },
3406
- async recordRead({ record_id, withComputed = false, organization_id }) {
3415
+ async recordRead({ record_id, withComputed = false, withVersion = false, organization_id }) {
3407
3416
  if (organization_id && organization_id !== org) {
3408
- return clientFor(organization_id).recordRead({ record_id, withComputed, organization_id });
3417
+ return clientFor(organization_id).recordRead({ record_id, withComputed, withVersion, organization_id });
3409
3418
  }
3410
3419
  if (readOrgs(organization_id).length > 1) {
3411
3420
  return openInOwnOrg(
3412
3421
  record_id,
3413
3422
  organization_id,
3414
- (sub) => sub.recordRead({ record_id, withComputed, organization_id: sub.config.organizationId }),
3423
+ (sub) => sub.recordRead({ record_id, withComputed, withVersion, organization_id: sub.config.organizationId }),
3415
3424
  () => true
3416
3425
  );
3417
3426
  }
3418
- const door = await callDoor(
3419
- DOORS.readRecord,
3420
- { p_organization_id: org, p_record_id: record_id },
3421
- "recordRead"
3422
- );
3427
+ const [door, header] = await Promise.all([
3428
+ callDoor(DOORS.readRecord, { p_organization_id: org, p_record_id: record_id }, "recordRead"),
3429
+ // A version that cannot be read never takes the record away: it comes back as null.
3430
+ withVersion ? callDoor(DOORS.recordHeaders, { p_organization_id: org, p_ids: [record_id] }, "recordRead.version").catch(
3431
+ () => null
3432
+ ) : Promise.resolve(null)
3433
+ ]);
3423
3434
  if (!door.ok) return err(door.error);
3435
+ const version = header && header.ok ? header.data?.find((h) => h.id === record_id)?.version ?? null : null;
3424
3436
  const { document, hidden } = unfold(door.data);
3425
3437
  let computed = [];
3426
3438
  let computedUnavailable = null;
@@ -3433,7 +3445,7 @@ function createRecordsClient(given) {
3433
3445
  if (provenance.ok) computed = provenance.data ?? [];
3434
3446
  else computedUnavailable = provenance.error;
3435
3447
  }
3436
- return ok({ record_id, document, hidden, computed, computedUnavailable });
3448
+ return ok({ record_id, document, hidden, computed, computedUnavailable, ...withVersion ? { version } : {} });
3437
3449
  },
3438
3450
  async listByIds({ table_id, ids }) {
3439
3451
  if (ids.length === 0) return ok([]);