@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.
- package/CHANGELOG.md +13 -0
- package/dist/app-table/index.cjs +26 -6
- package/dist/app-table/index.cjs.map +1 -1
- package/dist/app-table/index.d.cts +3 -3
- package/dist/app-table/index.d.ts +3 -3
- package/dist/app-table/index.js +26 -6
- package/dist/app-table/index.js.map +1 -1
- package/dist/{client-SM21Erad.d.ts → client-BcVOYKL1.d.ts} +1 -1
- package/dist/{client-BKXt18rw.d.cts → client-DHoI0qvP.d.cts} +1 -1
- package/dist/core/index.cjs +36 -6
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +26 -5
- package/dist/core/index.d.ts +26 -5
- package/dist/core/index.js +36 -6
- package/dist/core/index.js.map +1 -1
- package/dist/data/index.cjs +26 -6
- package/dist/data/index.cjs.map +1 -1
- package/dist/data/index.d.cts +2 -2
- package/dist/data/index.d.ts +2 -2
- package/dist/data/index.js +26 -6
- package/dist/data/index.js.map +1 -1
- package/dist/{declareTable-CRPC4uku.d.ts → declareTable-CDKHwyrF.d.ts} +2 -2
- package/dist/{declareTable-DVbm7Rck.d.cts → declareTable-DM9mPkSc.d.cts} +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +26 -6
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +21 -1
- package/dist/react/index.d.ts +21 -1
- package/dist/react/index.js +26 -6
- package/dist/react/index.js.map +1 -1
- package/dist/{table-kind-CJ_K3E1F.d.ts → table-kind-Ct-nhoCZ.d.ts} +21 -1
- package/dist/{table-kind-DoSFfQDe.d.cts → table-kind-wYO_qjK1.d.cts} +21 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records
|
|
2
2
|
|
|
3
|
+
## 0.80.0
|
|
4
|
+
### PAGE-BUNDLE-2
|
|
5
|
+
|
|
6
|
+
A TABLE PAGE'S BUNDLE CAN BE ASKED BEFORE THE PAGE BOOTS: `primeTablePageBundle({ organizationId, tableId, viewId?, answer })` (from `@ai-matrx/records/core`) hands the records client a `custom.table_page_bundle` answer asked elsewhere — the server render, as the same person. The next client opening that Table in that organization uses it instead of asking, once, within 15 s. A primed failure or non-bundle answer is ignored and the bundle is asked as before; part-by-part matching is unchanged.
|
|
7
|
+
|
|
8
|
+
**Consumer action:** none (additive).
|
|
9
|
+
|
|
10
|
+
## 0.79.1
|
|
11
|
+
|
|
12
|
+
Automatic changed-only republish (docs/metadata drift since the last tag — see
|
|
13
|
+
`git diff npm/records/v0.79.0..npm/records/v0.79.1 -- apps/shared/records`).
|
|
14
|
+
No source changes intended and no consumer action required.
|
|
15
|
+
|
|
3
16
|
## 0.79.0
|
|
4
17
|
|
|
5
18
|
DUPLICATE PROPERTY (Notion N5): `client.fieldDuplicate({ field_id })` calls the new door `custom.field_duplicate` — the copy is declared right after the original ("<name> (1)", same kind, choices with their colours and keys, unit, link, formula, rules, sensitivity) and every record's value is copied into it in one statement. Answers `FieldDuplicated` (`field_id`, `key`, `label`, `values_copied`, `values`). A link column copies its definition only; formula / lookup / roll-up columns work themselves out. Needs the table's add-a-column rung, as `fieldDeclare`.
|
package/dist/app-table/index.cjs
CHANGED
|
@@ -416,6 +416,19 @@ function sha256Hex(text2) {
|
|
|
416
416
|
return Array.from(h, (x) => x.toString(16).padStart(8, "0")).join("");
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
+
// src/core/primedBundle.ts
|
|
420
|
+
var PRIMED_TTL_MS = 15e3;
|
|
421
|
+
var primed = /* @__PURE__ */ new Map();
|
|
422
|
+
var primedKey = (organizationId, tableId, viewId) => `${organizationId}|${tableId}|${viewId ?? ""}`;
|
|
423
|
+
function takePrimedTablePageBundle(organizationId, tableId, viewId) {
|
|
424
|
+
if (!organizationId) return null;
|
|
425
|
+
const key = primedKey(organizationId, tableId, viewId);
|
|
426
|
+
const held = primed.get(key);
|
|
427
|
+
if (!held) return null;
|
|
428
|
+
primed.delete(key);
|
|
429
|
+
return Date.now() - held.at < PRIMED_TTL_MS ? held.answer : null;
|
|
430
|
+
}
|
|
431
|
+
|
|
419
432
|
// src/archive.ts
|
|
420
433
|
var DEFAULT_ARCHIVE_LANE = "org";
|
|
421
434
|
|
|
@@ -2757,13 +2770,20 @@ function createRecordsClient(given) {
|
|
|
2757
2770
|
}
|
|
2758
2771
|
async function fillBundle(tableId, viewId) {
|
|
2759
2772
|
try {
|
|
2760
|
-
const
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
)
|
|
2773
|
+
const view = typeof viewId === "string" ? viewId : null;
|
|
2774
|
+
const usable = (r) => r !== null && !r.error && r.data !== null && typeof r.data === "object" && Array.isArray(r.data.parts);
|
|
2775
|
+
const primedAnswer = takePrimedTablePageBundle(org, tableId, view);
|
|
2776
|
+
let response = primedAnswer ? await primedAnswer : null;
|
|
2777
|
+
if (!usable(response)) {
|
|
2778
|
+
response = await config.dataSource.rpc(
|
|
2779
|
+
"table_page_bundle",
|
|
2780
|
+
{ p_organization_id: org, p_table_id: tableId, p_view_id: view },
|
|
2781
|
+
{ schema }
|
|
2782
|
+
);
|
|
2783
|
+
}
|
|
2784
|
+
if (!usable(response)) return;
|
|
2765
2785
|
const answer = response.data;
|
|
2766
|
-
if (
|
|
2786
|
+
if (!answer || !Array.isArray(answer.parts)) return;
|
|
2767
2787
|
const now = Date.now();
|
|
2768
2788
|
for (const part of answer.parts) {
|
|
2769
2789
|
if (part.error !== void 0 || part.data === void 0) continue;
|