mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
refactor: centralize nostr client bootstrap
This commit is contained in:
1 parent
56496fa635
commit
5536180682
9 files changed
+69
-42
No files matched your search
@@ -93,6 +93,17 @@ client can republish exactly what was signed, including the original
|
||||
payload actually changes; this avoids accidental drift in dedupe tags or
|
||||
timestamps.
|
||||
|
||||
### Default client bootstrap
|
||||
|
||||
[`js/nostr/defaultClient.js`](../js/nostr/defaultClient.js) builds the shared
|
||||
`nostrClient` instance, registers it with the runtime via
|
||||
`registerNostrClient`, and exposes helpers like
|
||||
`requestDefaultExtensionPermissions`. Import the singleton or permission helper
|
||||
from this module (or from the `js/nostr.js` barrel) whenever you need to run a
|
||||
NIP-07 handshake. New NIP features should reuse this bootstrapper instead of
|
||||
creating bespoke clients so permission caching and relay wiring stay
|
||||
consistent.【F:js/nostr/defaultClient.js†L1-L25】
|
||||
|
||||
## Event catalogue
|
||||
|
||||
| Note | Kind (default) | Tags | Content format |
|
||||
|
||||
@@ -9,10 +9,8 @@ import {
|
||||
ADMIN_COMMUNITY_BLACKLIST_PREFIX,
|
||||
isDevMode,
|
||||
} from "./config.js";
|
||||
import {
|
||||
getRegisteredNostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostrClientRegistry.js";
|
||||
import { getRegisteredNostrClient } from "./nostrClientRegistry.js";
|
||||
import { requestDefaultExtensionPermissions } from "./nostr/defaultClient.js";
|
||||
import { devLogger, userLogger } from "./utils/logger.js";
|
||||
import {
|
||||
buildAdminListEvent,
|
||||
|
||||
+8
-29
@@ -1,39 +1,15 @@
|
||||
// js/nostr.js
|
||||
|
||||
import {
|
||||
NostrClient,
|
||||
getActiveSigner,
|
||||
setActiveSigner,
|
||||
clearActiveSigner,
|
||||
resolveActiveSigner,
|
||||
shouldRequestExtensionPermissions,
|
||||
} from "./nostr/client.js";
|
||||
import {
|
||||
DEFAULT_NIP07_ENCRYPTION_METHODS,
|
||||
DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
} from "./nostr/nip07Permissions.js";
|
||||
nostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostr/defaultClient.js";
|
||||
import {
|
||||
updateWatchHistoryList as updateWatchHistoryListWithManager,
|
||||
removeWatchHistoryItem as removeWatchHistoryItemWithManager,
|
||||
} from "./nostr/watchHistory.js";
|
||||
import {
|
||||
registerNostrClient,
|
||||
requestDefaultExtensionPermissions as requestRegisteredPermissions,
|
||||
} from "./nostrClientRegistry.js";
|
||||
|
||||
export const nostrClient = new NostrClient();
|
||||
|
||||
registerNostrClient(nostrClient, {
|
||||
requestPermissions: (
|
||||
methods = DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
) => nostrClient.ensureExtensionPermissions(methods),
|
||||
});
|
||||
|
||||
export function requestDefaultExtensionPermissions(
|
||||
methods = DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
) {
|
||||
return requestRegisteredPermissions(methods);
|
||||
}
|
||||
export { nostrClient, requestDefaultExtensionPermissions };
|
||||
|
||||
export const recordVideoView = (...args) =>
|
||||
nostrClient.recordVideoView(...args);
|
||||
@@ -74,7 +50,10 @@ export {
|
||||
resolveActiveSigner,
|
||||
shouldRequestExtensionPermissions,
|
||||
} from "./nostr/client.js";
|
||||
export { DEFAULT_NIP07_ENCRYPTION_METHODS, DEFAULT_NIP07_PERMISSION_METHODS } from "./nostr/nip07Permissions.js";
|
||||
export {
|
||||
DEFAULT_NIP07_ENCRYPTION_METHODS,
|
||||
DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
} from "./nostr/nip07Permissions.js";
|
||||
export {
|
||||
buildNip71MetadataTags,
|
||||
buildNip71VideoEvent,
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
// js/nostr/defaultClient.js
|
||||
|
||||
import { NostrClient } from "./client.js";
|
||||
import {
|
||||
DEFAULT_NIP07_ENCRYPTION_METHODS,
|
||||
DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
} from "./nip07Permissions.js";
|
||||
import {
|
||||
registerNostrClient,
|
||||
requestDefaultExtensionPermissions as requestRegisteredPermissions,
|
||||
} from "../nostrClientRegistry.js";
|
||||
|
||||
export const nostrClient = new NostrClient();
|
||||
|
||||
registerNostrClient(nostrClient, {
|
||||
requestPermissions: (
|
||||
methods = DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
) => nostrClient.ensureExtensionPermissions(methods),
|
||||
});
|
||||
|
||||
export function requestDefaultExtensionPermissions(
|
||||
methods = DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
) {
|
||||
return requestRegisteredPermissions(methods);
|
||||
}
|
||||
|
||||
export {
|
||||
NostrClient,
|
||||
DEFAULT_NIP07_ENCRYPTION_METHODS,
|
||||
DEFAULT_NIP07_PERMISSION_METHODS,
|
||||
};
|
||||
+4
-2
@@ -1,8 +1,10 @@
|
||||
import { isDevMode } from "./config.js";
|
||||
import { DEFAULT_RELAY_URLS } from "./nostr/toolkit.js";
|
||||
import { nostrClient } from "./nostr.js";
|
||||
import {
|
||||
nostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostr.js";
|
||||
import { getActiveSigner } from "./nostr/index.js";
|
||||
import { requestDefaultExtensionPermissions } from "./nostrClientRegistry.js";
|
||||
import { buildRelayListEvent } from "./nostrEventSchemas.js";
|
||||
import { devLogger, userLogger } from "./utils/logger.js";
|
||||
import {
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
getCurrentUserNpub,
|
||||
} from "../state/appState.js";
|
||||
import { userLogger } from "../utils/logger.js";
|
||||
import { requestDefaultExtensionPermissions } from "../nostrClientRegistry.js";
|
||||
import { requestDefaultExtensionPermissions } from "../nostr/defaultClient.js";
|
||||
import {
|
||||
getSavedProfiles,
|
||||
getActiveProfilePubkey,
|
||||
|
||||
+4
-2
@@ -1,12 +1,14 @@
|
||||
// js/subscriptions.js
|
||||
import { nostrClient } from "./nostr.js";
|
||||
import {
|
||||
nostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostr.js";
|
||||
import {
|
||||
getActiveSigner,
|
||||
convertEventToVideo as sharedConvertEventToVideo,
|
||||
listVideoViewEvents,
|
||||
subscribeVideoViewEvents,
|
||||
} from "./nostr/index.js";
|
||||
import { requestDefaultExtensionPermissions } from "./nostrClientRegistry.js";
|
||||
import { DEFAULT_RELAY_URLS } from "./nostr/toolkit.js";
|
||||
import {
|
||||
buildSubscriptionListEvent,
|
||||
|
||||
+4
-2
@@ -1,7 +1,9 @@
|
||||
// js/userBlocks.js
|
||||
import { nostrClient } from "./nostr.js";
|
||||
import {
|
||||
nostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostr.js";
|
||||
import { getActiveSigner } from "./nostr/index.js";
|
||||
import { requestDefaultExtensionPermissions } from "./nostrClientRegistry.js";
|
||||
import { buildBlockListEvent, BLOCK_LIST_IDENTIFIER } from "./nostrEventSchemas.js";
|
||||
import { userLogger } from "./utils/logger.js";
|
||||
import {
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
// js/watchHistoryService.js
|
||||
|
||||
import { nostrClient } from "./nostr.js";
|
||||
import { requestDefaultExtensionPermissions } from "./nostrClientRegistry.js";
|
||||
import {
|
||||
nostrClient,
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostr.js";
|
||||
import {
|
||||
normalizePointerInput,
|
||||
pointerKey,
|
||||
|
||||
Reference in new issue
Block a user