@ai-matrx/records 0.84.0 → 0.84.2
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 +12 -0
- package/dist/app-table/index.cjs +33 -0
- package/dist/app-table/index.cjs.map +1 -1
- package/dist/app-table/index.js +33 -0
- package/dist/app-table/index.js.map +1 -1
- package/dist/core/index.cjs +41 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +7 -1
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.js +41 -1
- package/dist/core/index.js.map +1 -1
- package/dist/data/index.cjs +33 -0
- package/dist/data/index.cjs.map +1 -1
- package/dist/data/index.js +33 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/react.cjs +13 -4
- package/dist/data/react.cjs.map +1 -1
- package/dist/data/react.d.cts +9 -3
- package/dist/data/react.d.ts +9 -3
- package/dist/data/react.js +13 -4
- package/dist/data/react.js.map +1 -1
- package/dist/react/index.cjs +73 -3
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +55 -1
- package/dist/react/index.d.ts +55 -1
- package/dist/react/index.js +77 -7
- package/dist/react/index.js.map +1 -1
- package/package.json +4 -4
package/dist/app-table/index.js
CHANGED
|
@@ -376,6 +376,26 @@ function takePrimedTablePageBundle(organizationId, tableId, viewId) {
|
|
|
376
376
|
primed.delete(key);
|
|
377
377
|
return Date.now() - held.at < PRIMED_TTL_MS ? held.answer : null;
|
|
378
378
|
}
|
|
379
|
+
var DOOR_REGISTRY = /* @__PURE__ */ Symbol.for("@ai-matrx/records/primed-door-answers");
|
|
380
|
+
function doorRegistry() {
|
|
381
|
+
const g = globalThis;
|
|
382
|
+
return g[DOOR_REGISTRY] ??= /* @__PURE__ */ new Map();
|
|
383
|
+
}
|
|
384
|
+
var PRIMED_DOOR_TTL_MS = 1e4;
|
|
385
|
+
function takePrimedDoorAnswer(key) {
|
|
386
|
+
const registry2 = doorRegistry();
|
|
387
|
+
const held = registry2.get(key);
|
|
388
|
+
if (!held) return null;
|
|
389
|
+
if (Date.now() - held.at < PRIMED_DOOR_TTL_MS) return { data: held.data };
|
|
390
|
+
registry2.delete(key);
|
|
391
|
+
return null;
|
|
392
|
+
}
|
|
393
|
+
function dropPrimedDoorAnswers() {
|
|
394
|
+
doorRegistry().clear();
|
|
395
|
+
}
|
|
396
|
+
function isWritingDoor(door) {
|
|
397
|
+
return /(_declare|_set(_|$)|_update|_write|_delete|_restore|_archive|_upsert|_reparent|_change|_duplicate|_move|_decide|_run$|_submit|_publish|_import_|_start$|_complete|_sign$|_add$|_retire|_propose|_promote|_land$|_pin$|_mute|_snooze|_unsnooze|_clear|_unclear|_revoke|_issue|_bind|_unbind|_apply|_backfill|_sync$|_decorate|_designate|_ensure|^migrate_|^home_add|^capture_|^claim_|^record_stage|^anon_|^io_import_|^io_comment_resolve|^enrich_(declare|land|pin)|^field_(declare|duplicate|propose|restore|retire|update)|^table_(declare|ensure|from_example|move|sync)|^value_restore|^relation_own)/.test(door);
|
|
398
|
+
}
|
|
379
399
|
|
|
380
400
|
// src/core/recordChanges.ts
|
|
381
401
|
var listeners = /* @__PURE__ */ new Set();
|
|
@@ -2848,7 +2868,16 @@ function createRecordsClient(given) {
|
|
|
2848
2868
|
bundleAsked.delete(tableId);
|
|
2849
2869
|
for (const key of [...bundleParts.keys()]) if (key.includes(tableId)) bundleParts.delete(key);
|
|
2850
2870
|
}
|
|
2871
|
+
function primedFor(door, args) {
|
|
2872
|
+
if (isWritingDoor(door)) {
|
|
2873
|
+
dropPrimedDoorAnswers();
|
|
2874
|
+
return null;
|
|
2875
|
+
}
|
|
2876
|
+
return takePrimedDoorAnswer(`${door}|${canonicalArgs(args)}`);
|
|
2877
|
+
}
|
|
2851
2878
|
async function callDoor(door, args, where) {
|
|
2879
|
+
const primed = primedFor(door, args);
|
|
2880
|
+
if (primed) return ok(primed.data);
|
|
2852
2881
|
const bundled = await fromBundle(door, args);
|
|
2853
2882
|
if (bundled) return ok(bundled.data);
|
|
2854
2883
|
if (!doorReady(config, door)) {
|
|
@@ -2873,6 +2902,8 @@ function createRecordsClient(given) {
|
|
|
2873
2902
|
}
|
|
2874
2903
|
async function owedDoor(door, args, where) {
|
|
2875
2904
|
if (doorExists(door)) return callDoor(door, args, where);
|
|
2905
|
+
const primed = primedFor(door, args);
|
|
2906
|
+
if (primed) return ok(primed.data);
|
|
2876
2907
|
const response = await config.dataSource.rpc(door, args, { schema });
|
|
2877
2908
|
if (response.error) {
|
|
2878
2909
|
const code = response.error.code;
|
|
@@ -2938,6 +2969,8 @@ function createRecordsClient(given) {
|
|
|
2938
2969
|
return ok(response.data);
|
|
2939
2970
|
}
|
|
2940
2971
|
async function drillDoor(door, args, where) {
|
|
2972
|
+
const primed = primedFor(door, args);
|
|
2973
|
+
if (primed) return ok(primed.data);
|
|
2941
2974
|
const response = await config.dataSource.rpc(door, args, { schema: DRILL_SCHEMA });
|
|
2942
2975
|
if (response.error) {
|
|
2943
2976
|
const refusal2 = mapPgError(response.error, where);
|