@ai-matrx/records 0.79.0 → 0.80.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 (36) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/app-table/index.cjs +26 -6
  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 +26 -6
  7. package/dist/app-table/index.js.map +1 -1
  8. package/dist/{client-SM21Erad.d.ts → client-BcVOYKL1.d.ts} +1 -1
  9. package/dist/{client-BKXt18rw.d.cts → client-DHoI0qvP.d.cts} +1 -1
  10. package/dist/core/index.cjs +36 -6
  11. package/dist/core/index.cjs.map +1 -1
  12. package/dist/core/index.d.cts +26 -5
  13. package/dist/core/index.d.ts +26 -5
  14. package/dist/core/index.js +36 -6
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/data/index.cjs +26 -6
  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 +26 -6
  21. package/dist/data/index.js.map +1 -1
  22. package/dist/{declareTable-CRPC4uku.d.ts → declareTable-CDKHwyrF.d.ts} +2 -2
  23. package/dist/{declareTable-DVbm7Rck.d.cts → declareTable-DM9mPkSc.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 +26 -6
  29. package/dist/react/index.cjs.map +1 -1
  30. package/dist/react/index.d.cts +21 -1
  31. package/dist/react/index.d.ts +21 -1
  32. package/dist/react/index.js +26 -6
  33. package/dist/react/index.js.map +1 -1
  34. package/dist/{table-kind-CJ_K3E1F.d.ts → table-kind-Ct-nhoCZ.d.ts} +21 -1
  35. package/dist/{table-kind-DoSFfQDe.d.cts → table-kind-wYO_qjK1.d.cts} +21 -1
  36. package/package.json +1 -1
@@ -220,6 +220,19 @@ function compileSort(sort, shape) {
220
220
  return { ok: true, data: out };
221
221
  }
222
222
 
223
+ // src/core/primedBundle.ts
224
+ var PRIMED_TTL_MS = 15e3;
225
+ var primed = /* @__PURE__ */ new Map();
226
+ var primedKey = (organizationId, tableId, viewId) => `${organizationId}|${tableId}|${viewId ?? ""}`;
227
+ function takePrimedTablePageBundle(organizationId, tableId, viewId) {
228
+ if (!organizationId) return null;
229
+ const key = primedKey(organizationId, tableId, viewId);
230
+ const held = primed.get(key);
231
+ if (!held) return null;
232
+ primed.delete(key);
233
+ return Date.now() - held.at < PRIMED_TTL_MS ? held.answer : null;
234
+ }
235
+
223
236
  // src/archive.ts
224
237
  var DEFAULT_ARCHIVE_LANE = "org";
225
238
 
@@ -2585,13 +2598,20 @@ function createRecordsClient(given) {
2585
2598
  }
2586
2599
  async function fillBundle(tableId, viewId) {
2587
2600
  try {
2588
- const response = await config.dataSource.rpc(
2589
- "table_page_bundle",
2590
- { p_organization_id: org, p_table_id: tableId, p_view_id: typeof viewId === "string" ? viewId : null },
2591
- { schema }
2592
- );
2601
+ const view = typeof viewId === "string" ? viewId : null;
2602
+ const usable = (r) => r !== null && !r.error && r.data !== null && typeof r.data === "object" && Array.isArray(r.data.parts);
2603
+ const primedAnswer = takePrimedTablePageBundle(org, tableId, view);
2604
+ let response = primedAnswer ? await primedAnswer : null;
2605
+ if (!usable(response)) {
2606
+ response = await config.dataSource.rpc(
2607
+ "table_page_bundle",
2608
+ { p_organization_id: org, p_table_id: tableId, p_view_id: view },
2609
+ { schema }
2610
+ );
2611
+ }
2612
+ if (!usable(response)) return;
2593
2613
  const answer = response.data;
2594
- if (response.error || !answer || !Array.isArray(answer.parts)) return;
2614
+ if (!answer || !Array.isArray(answer.parts)) return;
2595
2615
  const now = Date.now();
2596
2616
  for (const part of answer.parts) {
2597
2617
  if (part.error !== void 0 || part.data === void 0) continue;