@ai-matrx/records 0.92.2 → 0.93.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/{client-Dzd8gtAo.d.ts → client-DsPuWFp0.d.ts} +8 -8
  3. package/dist/{client-Cn3odIIB.d.cts → client-EyD3rS0T.d.cts} +8 -8
  4. package/dist/core/index.cjs +101 -32
  5. package/dist/core/index.cjs.map +1 -1
  6. package/dist/core/index.d.cts +16 -15
  7. package/dist/core/index.d.ts +16 -15
  8. package/dist/core/index.js +101 -32
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/data/index.cjs +46 -24
  11. package/dist/data/index.cjs.map +1 -1
  12. package/dist/data/index.d.cts +11 -11
  13. package/dist/data/index.d.ts +11 -11
  14. package/dist/data/index.js +46 -24
  15. package/dist/data/index.js.map +1 -1
  16. package/dist/{declareTable-CrL6AZKB.d.cts → declareTable-Bkk_Ewib.d.cts} +4 -4
  17. package/dist/{declareTable-ZRW5EsTQ.d.ts → declareTable-kL5qZoTe.d.ts} +4 -4
  18. package/dist/entity/index.cjs +43 -29
  19. package/dist/entity/index.cjs.map +1 -1
  20. package/dist/entity/index.d.cts +7 -6
  21. package/dist/entity/index.d.ts +7 -6
  22. package/dist/entity/index.js +43 -29
  23. package/dist/entity/index.js.map +1 -1
  24. package/dist/entity/react.cjs +43 -29
  25. package/dist/entity/react.cjs.map +1 -1
  26. package/dist/entity/react.js +43 -29
  27. package/dist/entity/react.js.map +1 -1
  28. package/dist/{field-CCY1rG9l.d.cts → field-6rwt4ejZ.d.cts} +1 -1
  29. package/dist/{field-enufS5ry.d.ts → field-B-WaVZnS.d.ts} +1 -1
  30. package/dist/forms/index.d.cts +3 -3
  31. package/dist/forms/index.d.ts +3 -3
  32. package/dist/index.cjs +92 -25
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +13 -33
  35. package/dist/index.d.ts +13 -33
  36. package/dist/index.js +92 -25
  37. package/dist/index.js.map +1 -1
  38. package/dist/memory/index.d.cts +7 -7
  39. package/dist/memory/index.d.ts +7 -7
  40. package/dist/objectOrganization-BII_K3Gm.d.ts +45 -0
  41. package/dist/objectOrganization-DfjDQtDb.d.cts +45 -0
  42. package/dist/{port-C54ykAOv.d.ts → port--acgmxh5.d.ts} +5 -2
  43. package/dist/{port-Drioh9al.d.cts → port-Cx76dq-X.d.cts} +5 -2
  44. package/dist/{portal-DRdmZ-xv.d.cts → portal-9sRr6cpG.d.cts} +1 -1
  45. package/dist/{portal-or_f7BkT.d.ts → portal-BDAqsGkg.d.ts} +1 -1
  46. package/dist/{ports-s0D2jvqn.d.cts → ports-9BQ3zo2y.d.cts} +108 -2
  47. package/dist/{ports-BeOgjwYl.d.ts → ports-DYWE1ENo.d.ts} +108 -2
  48. package/dist/react/index.cjs +101 -32
  49. package/dist/react/index.cjs.map +1 -1
  50. package/dist/react/index.d.cts +1463 -1363
  51. package/dist/react/index.d.ts +1463 -1363
  52. package/dist/react/index.js +101 -32
  53. package/dist/react/index.js.map +1 -1
  54. package/dist/realtime/index.cjs +43 -13
  55. package/dist/realtime/index.cjs.map +1 -1
  56. package/dist/realtime/index.d.cts +9 -3
  57. package/dist/realtime/index.d.ts +9 -3
  58. package/dist/realtime/index.js +43 -13
  59. package/dist/realtime/index.js.map +1 -1
  60. package/dist/{record-BwCf9wKW.d.cts → record-DmmeuUrC.d.cts} +1 -1
  61. package/dist/{record-BwCf9wKW.d.ts → record-DmmeuUrC.d.ts} +1 -1
  62. package/dist/{relation-eLMgv_dV.d.ts → relation-Op1M67le.d.ts} +2 -2
  63. package/dist/{relation-8vAWCa67.d.cts → relation-qrb2NbHf.d.cts} +2 -2
  64. package/dist/{rule-wHI5B0Ka.d.cts → rule-CeHg1sy1.d.cts} +1 -1
  65. package/dist/{rule-D9yNiorf.d.ts → rule-tN2lxvJ1.d.ts} +1 -1
  66. package/dist/search/index.d.cts +1 -1
  67. package/dist/search/index.d.ts +1 -1
  68. package/dist/setup/index.cjs +117 -42
  69. package/dist/setup/index.cjs.map +1 -1
  70. package/dist/setup/index.d.cts +25 -11
  71. package/dist/setup/index.d.ts +25 -11
  72. package/dist/setup/index.js +117 -42
  73. package/dist/setup/index.js.map +1 -1
  74. package/dist/{subscription-CdoI-UaB.d.cts → subscription-Drbxn-9Z.d.cts} +3 -3
  75. package/dist/{subscription-BynsG1K6.d.ts → subscription-hdTaRrfK.d.ts} +3 -3
  76. package/dist/{table-kind-i3lZJa3f.d.ts → table-kind-BZkvzBgc.d.ts} +4 -29
  77. package/dist/{table-kind-DzctQ7dO.d.cts → table-kind-C-hZxDN7.d.cts} +4 -29
  78. package/dist/templates/index.d.cts +10 -10
  79. package/dist/templates/index.d.ts +10 -10
  80. package/dist/typed-table/index.cjs +46 -24
  81. package/dist/typed-table/index.cjs.map +1 -1
  82. package/dist/typed-table/index.d.cts +10 -10
  83. package/dist/typed-table/index.d.ts +10 -10
  84. package/dist/typed-table/index.js +46 -24
  85. package/dist/typed-table/index.js.map +1 -1
  86. package/dist/{types-BvL_oKFl.d.ts → types-BauAeFW8.d.ts} +2 -2
  87. package/dist/{types-DAFP6XFe.d.cts → types-CBmUdBT0.d.cts} +2 -2
  88. package/dist/{types-BKYEeFt4.d.cts → types-Dek9owBe.d.cts} +2 -2
  89. package/dist/{types-D8qdG3Lg.d.cts → types-DsgXrESm.d.cts} +2 -2
  90. package/dist/{types-cpKY7Pjb.d.ts → types-HVgWcZDY.d.ts} +2 -2
  91. package/dist/{types-DYzXhD7j.d.ts → types-hrw-Eff1.d.ts} +2 -2
  92. package/dist/use-cases/index.d.cts +5 -5
  93. package/dist/use-cases/index.d.ts +5 -5
  94. package/dist/{validate-DfNMxjmU.d.cts → validate-B_iUeyh2.d.cts} +1 -1
  95. package/dist/{validate-DbvAParj.d.ts → validate-w-HGGTf-.d.ts} +1 -1
  96. package/dist/views/index.cjs +438 -0
  97. package/dist/views/index.cjs.map +1 -0
  98. package/dist/views/index.d.cts +401 -0
  99. package/dist/views/index.d.ts +401 -0
  100. package/dist/views/index.js +415 -0
  101. package/dist/views/index.js.map +1 -0
  102. package/package.json +13 -3
@@ -626,25 +626,45 @@ function sourceArchivedOf(value) {
626
626
  var import_global_slot2 = require("@ai-matrx/kit/global-slot");
627
627
  var REMEMBER_MS = 3e4;
628
628
  var REMEMBER_MAX = 500;
629
- var ours = (0, import_global_slot2.globalSlot)("ai-matrx.records.op-ledger", () => /* @__PURE__ */ new Map());
630
- function trim(now) {
631
- for (const [id, at] of ours) {
632
- if (now - at <= REMEMBER_MS) break;
633
- ours.delete(id);
634
- }
635
- while (ours.size > REMEMBER_MAX) {
636
- const oldest = ours.keys().next();
637
- if (oldest.done === true) break;
638
- ours.delete(oldest.value);
629
+ function ledgerOver(ours) {
630
+ function trim(now) {
631
+ for (const [id, at] of ours) {
632
+ if (now - at <= REMEMBER_MS) break;
633
+ ours.delete(id);
634
+ }
635
+ while (ours.size > REMEMBER_MAX) {
636
+ const oldest = ours.keys().next();
637
+ if (oldest.done === true) break;
638
+ ours.delete(oldest.value);
639
+ }
639
640
  }
641
+ return {
642
+ mint() {
643
+ const id = crypto.randomUUID();
644
+ const now = Date.now();
645
+ ours.set(id, now);
646
+ trim(now);
647
+ return id;
648
+ },
649
+ isOwn(opId) {
650
+ if (!opId) return false;
651
+ const at = ours.get(opId);
652
+ if (at === void 0) return false;
653
+ if (Date.now() - at > REMEMBER_MS) {
654
+ ours.delete(opId);
655
+ return false;
656
+ }
657
+ return true;
658
+ },
659
+ clear() {
660
+ ours.clear();
661
+ },
662
+ get size() {
663
+ return ours.size;
664
+ }
665
+ };
640
666
  }
641
- function mintOpId() {
642
- const id = crypto.randomUUID();
643
- const now = Date.now();
644
- ours.set(id, now);
645
- trim(now);
646
- return id;
647
- }
667
+ var defaultOpLedger = ledgerOver((0, import_global_slot2.globalSlot)("ai-matrx.records.op-ledger", () => /* @__PURE__ */ new Map()));
648
668
 
649
669
  // src/placement.ts
650
670
  function countOf(value) {
@@ -2701,6 +2721,8 @@ function createRecordsClient(given) {
2701
2721
  const config = { ...given, dataSource: asRecordsDataSource(given.dataSource) };
2702
2722
  const schema = config.schema ?? DEFAULT_SCHEMA;
2703
2723
  const org = config.organizationId;
2724
+ const ledger = config.opLedger ?? defaultOpLedger;
2725
+ const mintOp = () => ledger.mint();
2704
2726
  const scream = sink(config);
2705
2727
  const BUNDLE_TTL_MS = 1e4;
2706
2728
  const BUNDLE_OPENERS = /* @__PURE__ */ new Set(["applicable_fields", "views", "view_look_read", "table_decorations", "row_actions", "reverse_columns", "record_change_actions", "grid_layout", "io_imports"]);
@@ -3087,14 +3109,14 @@ function createRecordsClient(given) {
3087
3109
  async recordWrite({ table_id, data }) {
3088
3110
  const result = await callDoor(
3089
3111
  DOORS.recordWrite,
3090
- { p_organization_id: org, p_table_id: table_id, p_data: { ...data, _op_id: mintOpId() } },
3112
+ { p_organization_id: org, p_table_id: table_id, p_data: { ...data, _op_id: mintOp() } },
3091
3113
  "recordWrite"
3092
3114
  );
3093
3115
  if (result.ok && typeof result.data === "string") announceRecordChanged(result.data);
3094
3116
  return result;
3095
3117
  },
3096
3118
  async recordWriteMany({ table_id, rows, ids }) {
3097
- const opId = mintOpId();
3119
+ const opId = mintOp();
3098
3120
  return callDoor(
3099
3121
  DOORS.recordWriteMany,
3100
3122
  {
@@ -3107,7 +3129,7 @@ function createRecordsClient(given) {
3107
3129
  );
3108
3130
  },
3109
3131
  async recordChangeMany({ table_id, changes }) {
3110
- const opId = mintOpId();
3132
+ const opId = mintOp();
3111
3133
  const result = await callDoor(
3112
3134
  DOORS.recordChangeMany,
3113
3135
  {
@@ -3130,7 +3152,7 @@ function createRecordsClient(given) {
3130
3152
  return result;
3131
3153
  },
3132
3154
  async recordWriteGraph({ table_id, parent, children, edges }) {
3133
- const opId = mintOpId();
3155
+ const opId = mintOp();
3134
3156
  return callDoor(
3135
3157
  DOORS.recordWriteGraph,
3136
3158
  {
@@ -3154,7 +3176,7 @@ function createRecordsClient(given) {
3154
3176
  {
3155
3177
  p_organization_id: org,
3156
3178
  p_record_id: record_id,
3157
- p_patch: { ...patch, _op_id: mintOpId() },
3179
+ p_patch: { ...patch, _op_id: mintOp() },
3158
3180
  ...expectedVersion === void 0 ? {} : { p_expected_version: expectedVersion }
3159
3181
  },
3160
3182
  "recordUpdate"
@@ -3168,7 +3190,7 @@ function createRecordsClient(given) {
3168
3190
  {
3169
3191
  p_organization_id: org,
3170
3192
  p_record_id: record_id,
3171
- p_patch: { ...patch, _op_id: mintOpId() },
3193
+ p_patch: { ...patch, _op_id: mintOp() },
3172
3194
  p_add: add,
3173
3195
  ...expectedVersion === void 0 ? {} : { p_expected_version: expectedVersion }
3174
3196
  },
@@ -4193,7 +4215,7 @@ function createRecordsClient(given) {
4193
4215
  p_table_id: table_id,
4194
4216
  p_key: keys,
4195
4217
  // The op id rides the envelope, as `recordWrite` / `recordUpdate` send it; each door takes it off.
4196
- p_data: { ...data, _op_id: mintOpId() },
4218
+ p_data: { ...data, _op_id: mintOp() },
4197
4219
  ...expectedVersion === void 0 ? {} : { p_expected_version: expectedVersion }
4198
4220
  },
4199
4221
  "recordUpsert"