@ai-matrx/records 0.84.3 → 0.84.5
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 +14 -0
- package/dist/app-table/index.cjs +29 -3
- package/dist/app-table/index.cjs.map +1 -1
- package/dist/app-table/index.js +29 -3
- package/dist/app-table/index.js.map +1 -1
- package/dist/core/index.cjs +37 -5
- 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 +37 -5
- package/dist/core/index.js.map +1 -1
- package/dist/data/index.cjs +29 -3
- package/dist/data/index.cjs.map +1 -1
- package/dist/data/index.js +29 -3
- package/dist/data/index.js.map +1 -1
- package/dist/react/index.cjs +34 -5
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +34 -5
- package/dist/react/index.js.map +1 -1
- package/package.json +3 -3
package/dist/core/index.cjs
CHANGED
|
@@ -183,6 +183,7 @@ __export(core_exports, {
|
|
|
183
183
|
isPersonStamp: () => isPersonStamp,
|
|
184
184
|
isPortalAccent: () => isPortalAccent,
|
|
185
185
|
isPortalArchiveFilter: () => isPortalArchiveFilter,
|
|
186
|
+
isRecordRemoved: () => isRecordRemoved,
|
|
186
187
|
isRecordsErr: () => isRecordsErr,
|
|
187
188
|
isRuleFilter: () => isRuleFilter,
|
|
188
189
|
isShownTo: () => isShownTo,
|
|
@@ -196,6 +197,8 @@ __export(core_exports, {
|
|
|
196
197
|
localeDateOrder: () => localeDateOrder,
|
|
197
198
|
looksLikeAnId: () => looksLikeAnId,
|
|
198
199
|
mapPgError: () => mapPgError,
|
|
200
|
+
markRecordRemoved: () => markRecordRemoved,
|
|
201
|
+
markRecordRestored: () => markRecordRestored,
|
|
199
202
|
mayDrag: () => mayDrag,
|
|
200
203
|
measureKey: () => measureKey,
|
|
201
204
|
memoryStore: () => memoryStore,
|
|
@@ -5222,6 +5225,16 @@ function announceRecordChanged(recordId) {
|
|
|
5222
5225
|
}
|
|
5223
5226
|
}
|
|
5224
5227
|
}
|
|
5228
|
+
var removed = /* @__PURE__ */ new Set();
|
|
5229
|
+
function markRecordRemoved(recordId) {
|
|
5230
|
+
removed.add(recordId);
|
|
5231
|
+
}
|
|
5232
|
+
function markRecordRestored(recordId) {
|
|
5233
|
+
removed.delete(recordId);
|
|
5234
|
+
}
|
|
5235
|
+
function isRecordRemoved(recordId) {
|
|
5236
|
+
return removed.has(recordId);
|
|
5237
|
+
}
|
|
5225
5238
|
function onRecordChanged(listener) {
|
|
5226
5239
|
listeners.add(listener);
|
|
5227
5240
|
return () => listeners.delete(listener);
|
|
@@ -6293,6 +6306,7 @@ function createRecordsClient(given) {
|
|
|
6293
6306
|
}
|
|
6294
6307
|
return takePrimedDoorAnswer(`${door}|${canonicalArgs(args)}`);
|
|
6295
6308
|
}
|
|
6309
|
+
const readsInFlight = /* @__PURE__ */ new Map();
|
|
6296
6310
|
async function callDoor(door, args, where) {
|
|
6297
6311
|
const primed = primedFor(door, args);
|
|
6298
6312
|
if (primed) return ok(primed.data);
|
|
@@ -6303,7 +6317,19 @@ function createRecordsClient(given) {
|
|
|
6303
6317
|
scream({ code: refusal.code, message: refusal.message, ...refusal.hint ? { hint: refusal.hint } : {}, where });
|
|
6304
6318
|
return err(refusal);
|
|
6305
6319
|
}
|
|
6306
|
-
const
|
|
6320
|
+
const flightKey = isWritingDoor(door) ? null : `${door}|${canonicalArgs(args)}`;
|
|
6321
|
+
const flying = flightKey ? readsInFlight.get(flightKey) : void 0;
|
|
6322
|
+
const response = await (flying ?? (() => {
|
|
6323
|
+
const call = Promise.resolve(config.dataSource.rpc(`${door}`, args, { schema }));
|
|
6324
|
+
if (flightKey) {
|
|
6325
|
+
readsInFlight.set(flightKey, call);
|
|
6326
|
+
const forget = () => {
|
|
6327
|
+
if (readsInFlight.get(flightKey) === call) readsInFlight.delete(flightKey);
|
|
6328
|
+
};
|
|
6329
|
+
call.then(forget, forget);
|
|
6330
|
+
}
|
|
6331
|
+
return call;
|
|
6332
|
+
})());
|
|
6307
6333
|
if (response.error) {
|
|
6308
6334
|
const refusal = mapPgError(response.error, where);
|
|
6309
6335
|
scream({ code: refusal.code, message: refusal.message, ...refusal.hint ? { hint: refusal.hint } : {}, where });
|
|
@@ -6613,7 +6639,10 @@ function createRecordsClient(given) {
|
|
|
6613
6639
|
{ p_organization_id: org, p_record_id: record_id },
|
|
6614
6640
|
"recordDelete"
|
|
6615
6641
|
);
|
|
6616
|
-
if (result.ok)
|
|
6642
|
+
if (result.ok) {
|
|
6643
|
+
markRecordRemoved(record_id);
|
|
6644
|
+
announceRecordChanged(record_id);
|
|
6645
|
+
}
|
|
6617
6646
|
return result;
|
|
6618
6647
|
},
|
|
6619
6648
|
async recordRestore({ record_id }) {
|
|
@@ -6622,7 +6651,10 @@ function createRecordsClient(given) {
|
|
|
6622
6651
|
{ p_organization_id: org, p_record_id: record_id },
|
|
6623
6652
|
"recordRestore"
|
|
6624
6653
|
);
|
|
6625
|
-
if (result.ok)
|
|
6654
|
+
if (result.ok) {
|
|
6655
|
+
markRecordRestored(record_id);
|
|
6656
|
+
announceRecordChanged(record_id);
|
|
6657
|
+
}
|
|
6626
6658
|
return result;
|
|
6627
6659
|
},
|
|
6628
6660
|
async tableArchive({ table_id, chunk, includeTable }) {
|
|
@@ -9691,8 +9723,8 @@ async function declareTable(client, spec) {
|
|
|
9691
9723
|
return { ok: true, data: table.data, homeId: home.data };
|
|
9692
9724
|
}
|
|
9693
9725
|
async function undo(client, tableId, homeId, name, refusal) {
|
|
9694
|
-
const
|
|
9695
|
-
if (
|
|
9726
|
+
const removed2 = await client.recordDelete({ record_id: tableId });
|
|
9727
|
+
if (removed2.ok) {
|
|
9696
9728
|
await client.recordDelete({ record_id: homeId });
|
|
9697
9729
|
return { ok: false, error: refusal };
|
|
9698
9730
|
}
|