@seedprotocol/sdk 0.7.2 → 0.7.3-next.613.g79a8dfd
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/dist/{ClientManager-ClCwwhwo.js → ClientManager-DDA9956Y.js} +9 -9
- package/dist/{ClientManager-ClCwwhwo.js.map → ClientManager-DDA9956Y.js.map} +1 -1
- package/dist/{Item-B9Y4VuK1.js → Item-D4FigtYS.js} +40 -40
- package/dist/{Item-B9Y4VuK1.js.map → Item-D4FigtYS.js.map} +1 -1
- package/dist/{ModelProperty-BMePcicQ.js → ModelProperty-BDt6AU2h.js} +23 -23
- package/dist/{ModelProperty-BMePcicQ.js.map → ModelProperty-BDt6AU2h.js.map} +1 -1
- package/dist/{Schema-COsEXXaR.js → Schema-B8xqLWkL.js} +28 -28
- package/dist/{Schema-COsEXXaR.js.map → Schema-B8xqLWkL.js.map} +1 -1
- package/dist/{SchemaValidationService-DabGMzSE.js → SchemaValidationService-BPxkfDLU.js} +6 -6
- package/dist/{SchemaValidationService-DabGMzSE.js.map → SchemaValidationService-BPxkfDLU.js.map} +1 -1
- package/dist/{backfillMetadataPropertyIds-Ck6fumnm.js → backfillMetadataPropertyIds-DuTPcv8t.js} +3 -3
- package/dist/{backfillMetadataPropertyIds-Ck6fumnm.js.map → backfillMetadataPropertyIds-DuTPcv8t.js.map} +1 -1
- package/dist/cjs/{ModelProperty-BT6Un_MB.js → ModelProperty-B-cZm1yU.js} +21 -21
- package/dist/cjs/{ModelProperty-BT6Un_MB.js.map → ModelProperty-B-cZm1yU.js.map} +1 -1
- package/dist/cjs/{Schema-BXhXdUsA.js → Schema-STP972Xw.js} +23 -23
- package/dist/cjs/{Schema-BXhXdUsA.js.map → Schema-STP972Xw.js.map} +1 -1
- package/dist/cjs/{SchemaValidationService-CC18QDfc.js → SchemaValidationService-CKNW1bKg.js} +2 -2
- package/dist/cjs/{SchemaValidationService-CC18QDfc.js.map → SchemaValidationService-CKNW1bKg.js.map} +1 -1
- package/dist/cjs/{backfillMetadataPropertyIds-DEHC9ejq.js → backfillMetadataPropertyIds-CP3y1skt.js} +3 -3
- package/dist/cjs/{backfillMetadataPropertyIds-DEHC9ejq.js.map → backfillMetadataPropertyIds-CP3y1skt.js.map} +1 -1
- package/dist/cjs/{eas-C3CL0l7l.js → eas-CAnUC4wd.js} +3 -3
- package/dist/cjs/{eas-C3CL0l7l.js.map → eas-CAnUC4wd.js.map} +1 -1
- package/dist/cjs/{getItem-CrwWYCkj.js → getItem-CWgb3e9G.js} +2 -2
- package/dist/cjs/{getItem-CrwWYCkj.js.map → getItem-CWgb3e9G.js.map} +1 -1
- package/dist/cjs/{getPublishPayload-DRJh7WR0.js → getPublishPayload-BsZWiJ03.js} +11 -11
- package/dist/cjs/{getPublishPayload-DRJh7WR0.js.map → getPublishPayload-BsZWiJ03.js.map} +1 -1
- package/dist/cjs/{getPublishUploads-Bh22D3zJ.js → getPublishUploads-BQr8aMVP.js} +4 -4
- package/dist/cjs/{getPublishUploads-Bh22D3zJ.js.map → getPublishUploads-BQr8aMVP.js.map} +1 -1
- package/dist/cjs/{index-BA1RIYFG.js → index-nA5PxBSs.js} +3 -3
- package/dist/cjs/index-nA5PxBSs.js.map +1 -0
- package/dist/cjs/{index-Dls7aMjr.js → index-usKaANAq.js} +79 -37
- package/dist/cjs/index-usKaANAq.js.map +1 -0
- package/dist/cjs/{property-ZerTWizX.js → property-xMwPhQ5N.js} +5 -5
- package/dist/cjs/{property-ZerTWizX.js.map → property-xMwPhQ5N.js.map} +1 -1
- package/dist/cjs/{publishDraftGraph-CPOAcQFf.js → publishDraftGraph-BRWlR1KO.js} +4 -4
- package/dist/cjs/{publishDraftGraph-CPOAcQFf.js.map → publishDraftGraph-BRWlR1KO.js.map} +1 -1
- package/dist/cjs/{resetAmbiguousLegacyItemData-adDl4LcT.js → resetAmbiguousLegacyItemData-8nfkj9rz.js} +2 -2
- package/dist/cjs/{resetAmbiguousLegacyItemData-adDl4LcT.js.map → resetAmbiguousLegacyItemData-8nfkj9rz.js.map} +1 -1
- package/dist/cjs/{resolveModelForSyncedSeed-DoNThPdL.js → resolveModelForSyncedSeed-kYRuDWYw.js} +2 -2
- package/dist/cjs/{resolveModelForSyncedSeed-DoNThPdL.js.map → resolveModelForSyncedSeed-kYRuDWYw.js.map} +1 -1
- package/dist/cjs/{syncDbWithEas-CYfPkus9.js → syncDbWithEas-DqRhV8o2.js} +7 -7
- package/dist/cjs/{syncDbWithEas-CYfPkus9.js.map → syncDbWithEas-DqRhV8o2.js.map} +1 -1
- package/dist/{configurePlatform-xU3Hsno3.js → configurePlatform-YcOiDQBZ.js} +3 -3
- package/dist/{configurePlatform-xU3Hsno3.js.map → configurePlatform-YcOiDQBZ.js.map} +1 -1
- package/dist/{db-W1g29qsM.js → db-CQt-gcAl.js} +3 -3
- package/dist/{db-W1g29qsM.js.map → db-CQt-gcAl.js.map} +1 -1
- package/dist/{eas-CSwV6MvB.js → eas-CpOD74Ke.js} +4 -4
- package/dist/{eas-CSwV6MvB.js.map → eas-CpOD74Ke.js.map} +1 -1
- package/dist/{getItem-BYQeM3DY.js → getItem-B_OoFkd7.js} +4 -4
- package/dist/{getItem-BYQeM3DY.js.map → getItem-B_OoFkd7.js.map} +1 -1
- package/dist/{getPublishPayload-D5CQZd-y.js → getPublishPayload-Xl3sRkR-.js} +14 -14
- package/dist/{getPublishPayload-D5CQZd-y.js.map → getPublishPayload-Xl3sRkR-.js.map} +1 -1
- package/dist/{getPublishUploads-BGpDsrBp.js → getPublishUploads-DHP01KgU.js} +8 -8
- package/dist/{getPublishUploads-BGpDsrBp.js.map → getPublishUploads-DHP01KgU.js.map} +1 -1
- package/dist/{index-Bev-hZF-.js → index-BGt4_oPO.js} +8 -8
- package/dist/index-BGt4_oPO.js.map +1 -0
- package/dist/{index-DRXC5Mra.js → index-Xl1_4Lmb.js} +23 -23
- package/dist/{index-DRXC5Mra.js.map → index-Xl1_4Lmb.js.map} +1 -1
- package/dist/{index.browser-DO20vYuP.js → index.browser-CjTe0vt1.js} +5 -5
- package/dist/{index.browser-DO20vYuP.js.map → index.browser-CjTe0vt1.js.map} +1 -1
- package/dist/{index.node-C4iyOhdo.js → index.node-Cfa7npS6.js} +2 -2
- package/dist/{index.node-C4iyOhdo.js.map → index.node-Cfa7npS6.js.map} +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.js +24 -24
- package/dist/node.js +9 -9
- package/dist/platform.browser.js +3 -3
- package/dist/platform.node.js +1 -1
- package/dist/{property-BT1zDSkd.js → property-BrXkY1Rg.js} +8 -8
- package/dist/{property-BT1zDSkd.js.map → property-BrXkY1Rg.js.map} +1 -1
- package/dist/{publishDraftGraph-Bcfrdj7-.js → publishDraftGraph-X0Wr9txE.js} +7 -7
- package/dist/{publishDraftGraph-Bcfrdj7-.js.map → publishDraftGraph-X0Wr9txE.js.map} +1 -1
- package/dist/{resolveModelForSyncedSeed-CLlumTBq.js → resolveModelForSyncedSeed-DFVdnYq8.js} +2 -2
- package/dist/{resolveModelForSyncedSeed-CLlumTBq.js.map → resolveModelForSyncedSeed-DFVdnYq8.js.map} +1 -1
- package/dist/src/helpers/tabLocks.d.ts +11 -1
- package/dist/src/helpers/tabLocks.d.ts.map +1 -1
- package/dist/{syncDbWithEas-BQsXjGhe.js → syncDbWithEas-BU-jZ5bJ.js} +11 -11
- package/dist/{syncDbWithEas-BQsXjGhe.js.map → syncDbWithEas-BU-jZ5bJ.js.map} +1 -1
- package/dist/{tabEvents-C9qUKx_z.js → tabEvents-BZJMY5uK.js} +49 -7
- package/dist/tabEvents-BZJMY5uK.js.map +1 -0
- package/dist/{tolerantWebAccess-B-9bwxbw.js → tolerantWebAccess-BZ2RA_mb.js} +4 -4
- package/dist/{tolerantWebAccess-B-9bwxbw.js.map → tolerantWebAccess-BZ2RA_mb.js.map} +1 -1
- package/dist/{updateSeedRevokedAt-D6q0h7pj.js → updateSeedRevokedAt-iLpzae1i.js} +2 -2
- package/dist/{updateSeedRevokedAt-D6q0h7pj.js.map → updateSeedRevokedAt-iLpzae1i.js.map} +1 -1
- package/package.json +5 -5
- package/dist/cjs/index-BA1RIYFG.js.map +0 -1
- package/dist/cjs/index-Dls7aMjr.js.map +0 -1
- package/dist/index-Bev-hZF-.js.map +0 -1
- package/dist/tabEvents-C9qUKx_z.js.map +0 -1
|
@@ -4,7 +4,7 @@ import { isEasAttestationExplorerUrl, BaseArweaveClient, ensureReadGatewaySelect
|
|
|
4
4
|
import { BaseQueryClient, BaseEasClient, GET_FILES_METADATA } from '@seedprotocol/eas';
|
|
5
5
|
import { waitFor } from 'xstate';
|
|
6
6
|
import 'pluralize';
|
|
7
|
-
import { t as getAllAddressesFromDb, m as eventEmitter } from './db-
|
|
7
|
+
import { t as getAllAddressesFromDb, m as eventEmitter } from './db-CQt-gcAl.js';
|
|
8
8
|
import { and, eq, or, isNotNull } from 'drizzle-orm';
|
|
9
9
|
import { customAlphabet } from 'nanoid';
|
|
10
10
|
import { alphanumeric } from 'nanoid-dictionary';
|
|
@@ -425,7 +425,7 @@ const syncDbFiles = async (endpoints) => {
|
|
|
425
425
|
const getAppDbReady = async () => {
|
|
426
426
|
if (!BaseDb.isAppDbReady()) {
|
|
427
427
|
// Wait for ClientManager to be ready (DB_INIT state or later)
|
|
428
|
-
const _mod_0 = await import('./ClientManager-
|
|
428
|
+
const _mod_0 = await import('./ClientManager-DDA9956Y.js');
|
|
429
429
|
const _ns_0 = _mod_0.H;
|
|
430
430
|
const clientManagerMod = _ns_0;
|
|
431
431
|
const { getClient } = clientManagerMod;
|
|
@@ -1106,7 +1106,9 @@ function parseAddressesPersistedPayload(value) {
|
|
|
1106
1106
|
* database and OPFS tree; the browser releases a tab's locks when it closes or crashes, so a lock
|
|
1107
1107
|
* can't go stale. See docs/MULTI_TAB.md.
|
|
1108
1108
|
*
|
|
1109
|
-
*
|
|
1109
|
+
* Node has Web Locks from 24.5, scoped to the process. Where they're missing (older Node, old
|
|
1110
|
+
* browsers), sections still run one at a time within this JS realm (see `withProcessLock`), which
|
|
1111
|
+
* covers a single Node process but not other tabs or worker threads.
|
|
1110
1112
|
* Not re-entrant: requesting a name the caller already holds waits forever, so take each lock
|
|
1111
1113
|
* only at the outermost call site.
|
|
1112
1114
|
*/
|
|
@@ -1130,7 +1132,7 @@ class TabLockTimeoutError extends Error {
|
|
|
1130
1132
|
async function withTabLock(name, fn, { timeoutMs = TAB_LOCK_WAIT_TIMEOUT_MS } = {}) {
|
|
1131
1133
|
const locks = typeof navigator !== 'undefined' ? navigator.locks : undefined;
|
|
1132
1134
|
if (!locks)
|
|
1133
|
-
return fn
|
|
1135
|
+
return withProcessLock(name, fn, { timeoutMs });
|
|
1134
1136
|
try {
|
|
1135
1137
|
// The timeout bounds the wait only; once granted, fn runs to completion. Infinity waits for as
|
|
1136
1138
|
// long as the holder runs (it can't outlive its tab).
|
|
@@ -1144,6 +1146,46 @@ async function withTabLock(name, fn, { timeoutMs = TAB_LOCK_WAIT_TIMEOUT_MS } =
|
|
|
1144
1146
|
throw error;
|
|
1145
1147
|
}
|
|
1146
1148
|
}
|
|
1149
|
+
/** Tail of each name's queue: resolves once every section queued so far has finished or given up. */
|
|
1150
|
+
const processLockTails = new Map();
|
|
1151
|
+
/**
|
|
1152
|
+
* The `withTabLock` fallback without Web Locks: an exclusive, first-come-first-served lock per name
|
|
1153
|
+
* within this JS realm. Like Web Locks, `timeoutMs` bounds the wait only, and a waiter that times
|
|
1154
|
+
* out doesn't let later waiters in before the current holder finishes.
|
|
1155
|
+
*/
|
|
1156
|
+
async function withProcessLock(name, fn, { timeoutMs = TAB_LOCK_WAIT_TIMEOUT_MS } = {}) {
|
|
1157
|
+
const previous = processLockTails.get(name) ?? Promise.resolve();
|
|
1158
|
+
let release;
|
|
1159
|
+
const done = new Promise((resolve) => (release = resolve));
|
|
1160
|
+
const tail = previous.then(() => done);
|
|
1161
|
+
processLockTails.set(name, tail);
|
|
1162
|
+
void tail.then(() => {
|
|
1163
|
+
if (processLockTails.get(name) === tail)
|
|
1164
|
+
processLockTails.delete(name);
|
|
1165
|
+
});
|
|
1166
|
+
try {
|
|
1167
|
+
await waitForTurn(previous, name, timeoutMs);
|
|
1168
|
+
}
|
|
1169
|
+
catch (error) {
|
|
1170
|
+
release();
|
|
1171
|
+
throw error;
|
|
1172
|
+
}
|
|
1173
|
+
try {
|
|
1174
|
+
return await fn();
|
|
1175
|
+
}
|
|
1176
|
+
finally {
|
|
1177
|
+
release();
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
function waitForTurn(previous, name, timeoutMs) {
|
|
1181
|
+
if (!Number.isFinite(timeoutMs))
|
|
1182
|
+
return previous;
|
|
1183
|
+
let timer;
|
|
1184
|
+
const timedOut = new Promise((_, reject) => {
|
|
1185
|
+
timer = setTimeout(() => reject(new TabLockTimeoutError(name, timeoutMs)), timeoutMs);
|
|
1186
|
+
});
|
|
1187
|
+
return Promise.race([previous, timedOut]).finally(() => clearTimeout(timer));
|
|
1188
|
+
}
|
|
1147
1189
|
|
|
1148
1190
|
const logger$1 = debug('seedSdk:helpers:tabCoordinator');
|
|
1149
1191
|
let state;
|
|
@@ -1253,14 +1295,14 @@ async function notifyFilesWrittenOutsideCache(paths) {
|
|
|
1253
1295
|
/** Refreshes this tab's in-memory state for an event another tab emitted, before re-emitting it. */
|
|
1254
1296
|
async function catchUpOn(name, payload) {
|
|
1255
1297
|
if (name === EAS_SEED_DATA_SYNCED_TO_DB_EVENT) {
|
|
1256
|
-
const _mod_1 = await import('./Item-
|
|
1298
|
+
const _mod_1 = await import('./Item-D4FigtYS.js');
|
|
1257
1299
|
const _ns_1 = _mod_1.Y;
|
|
1258
1300
|
const { Item } = _ns_1;
|
|
1259
1301
|
await Item.rehydrateCachedItemsFromDbAfterEasSync();
|
|
1260
1302
|
}
|
|
1261
1303
|
else if (name === LOCAL_COPIES_REMOVED_EVENT) {
|
|
1262
1304
|
const { removedSeedLocalIds = [], removedSeedUids = [] } = (payload ?? {});
|
|
1263
|
-
const _mod_2 = await import('./Item-
|
|
1305
|
+
const _mod_2 = await import('./Item-D4FigtYS.js');
|
|
1264
1306
|
const _ns_2 = _mod_2.Y;
|
|
1265
1307
|
const { Item } = _ns_2;
|
|
1266
1308
|
Item.dropCachedInstancesForSeedIds([...removedSeedLocalIds, ...removedSeedUids]);
|
|
@@ -1299,4 +1341,4 @@ function listenForOtherTabsEvents() {
|
|
|
1299
1341
|
}
|
|
1300
1342
|
|
|
1301
1343
|
export { ADDRESSES_PERSISTED_EVENT as A, isNode as B, isBrowser as C, startTabCoordination as D, downloadAllFilesRequestHandler as E, FILES_CHANGED_EVENT as F, downloadAllFilesBinaryRequestHandler as G, getStorageTransactionIdForSeedUid as H, convertTxIdToImage as I, downloadTransactionIdWithDedupe as J, getDataTypeFromString as K, LOCAL_COPIES_REMOVED_EVENT as L, getMimeType as M, notifyFileSaved as N, download as O, generateId$1 as P, TabLockTimeoutError as T, isStorageSeedRef as a, generateId as b, getArweaveUrlForTransaction as c, classifyMediaRef as d, emitAcrossTabs as e, closestImageSize as f, getCorrectId as g, ensureImageLocal as h, isPublishedSeedRef as i, getFeedItemStringField as j, isLeaderTab as k, normalizeArweaveTxIdForEnsure as l, normalizeFeedItemFields as m, normalizeRelationPropertyValue as n, resolveMediaRef as o, parseAddressesPersistedPayload as p, withDbTabLock as q, resolveSeedIdsFromRefString as r, scheduleBulkFilesDownloadFromEasSync as s, toSnakeCase as t, notifyFilesWrittenOutsideCache as u, withSeedDbLock as v, whenLeaderTab as w, postTabMessage as x, onTabMessage as y, listenForOtherTabsEvents as z };
|
|
1302
|
-
//# sourceMappingURL=tabEvents-
|
|
1344
|
+
//# sourceMappingURL=tabEvents-BZJMY5uK.js.map
|