nostr-tools
2.20.02.21.0
lib/cjs/index.js~
lib/cjs/index.jsModified+36−36
Index: package/lib/cjs/index.js
===================================================================
--- package/lib/cjs/index.js
+++ package/lib/cjs/index.js
@@ -64,10 +64,10 @@
});
module.exports = __toCommonJS(nostr_tools_exports);
// pure.ts
-var import_secp256k1 = require("@noble/curves/secp256k1");
-var import_utils2 = require("@noble/hashes/utils");
+var import_secp256k1 = require("@noble/curves/secp256k1.js");
+var import_utils2 = require("@noble/hashes/utils.js");
// core.ts
var verifiedSymbol = Symbol("verified");
var isRecord = (obj) => obj instanceof Object;
@@ -106,9 +106,9 @@
});
}
// pure.ts
-var import_sha256 = require("@noble/hashes/sha256");
+var import_sha2 = require("@noble/hashes/sha2.js");
// utils.ts
var utils_exports = {};
__export(utils_exports, {
@@ -122,9 +122,9 @@
normalizeURL: () => normalizeURL,
utf8Decoder: () => utf8Decoder,
utf8Encoder: () => utf8Encoder
});
-var import_utils = require("@noble/hashes/utils");
+var import_utils = require("@noble/hashes/utils.js");
var utf8Decoder = new TextDecoder("utf-8");
var utf8Encoder = new TextEncoder();
function normalizeURL(url) {
try {
@@ -241,18 +241,18 @@
// pure.ts
var JS = class {
generateSecretKey() {
- return import_secp256k1.schnorr.utils.randomPrivateKey();
+ return import_secp256k1.schnorr.utils.randomSecretKey();
}
getPublicKey(secretKey) {
return (0, import_utils2.bytesToHex)(import_secp256k1.schnorr.getPublicKey(secretKey));
}
finalizeEvent(t, secretKey) {
const event = t;
event.pubkey = (0, import_utils2.bytesToHex)(import_secp256k1.schnorr.getPublicKey(secretKey));
event.id = getEventHash(event);
- event.sig = (0, import_utils2.bytesToHex)(import_secp256k1.schnorr.sign(getEventHash(event), secretKey));
+ event.sig = (0, import_utils2.bytesToHex)(import_secp256k1.schnorr.sign((0, import_utils2.hexToBytes)(getEventHash(event)), secretKey));
event[verifiedSymbol] = true;
return event;
}
verifyEvent(event) {
@@ -263,9 +263,9 @@
event[verifiedSymbol] = false;
return false;
}
try {
- const valid = import_secp256k1.schnorr.verify(event.sig, hash, event.pubkey);
+ const valid = import_secp256k1.schnorr.verify((0, import_utils2.hexToBytes)(event.sig), (0, import_utils2.hexToBytes)(hash), (0, import_utils2.hexToBytes)(event.pubkey));
event[verifiedSymbol] = valid;
return valid;
} catch (err) {
event[verifiedSymbol] = false;
@@ -278,9 +278,9 @@
throw new Error("can't serialize event with wrong or missing properties");
return JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content]);
}
function getEventHash(event) {
- let eventHash = (0, import_sha256.sha256)(utf8Encoder.encode(serializeEvent(event)));
+ let eventHash = (0, import_sha2.sha256)(utf8Encoder.encode(serializeEvent(event)));
return (0, import_utils2.bytesToHex)(eventHash);
}
var i = new JS();
var generateSecretKey = i.generateSecretKey;
@@ -1434,9 +1434,9 @@
nprofileEncode: () => nprofileEncode,
npubEncode: () => npubEncode,
nsecEncode: () => nsecEncode
});
-var import_utils6 = require("@noble/hashes/utils");
+var import_utils6 = require("@noble/hashes/utils.js");
var import_base = require("@scure/base");
var NostrTypeGuard = {
isNProfile: (value) => /^nprofile1[a-z\d]+$/.test(value || ""),
isNEvent: (value) => /^nevent1[a-z\d]+$/.test(value || ""),
@@ -1704,15 +1704,15 @@
__export(nip04_exports, {
decrypt: () => decrypt,
encrypt: () => encrypt
});
-var import_utils8 = require("@noble/hashes/utils");
-var import_secp256k12 = require("@noble/curves/secp256k1");
-var import_aes = require("@noble/ciphers/aes");
+var import_utils8 = require("@noble/hashes/utils.js");
+var import_secp256k12 = require("@noble/curves/secp256k1.js");
+var import_aes = require("@noble/ciphers/aes.js");
var import_base2 = require("@scure/base");
function encrypt(secretKey, pubkey, text) {
- const privkey = secretKey instanceof Uint8Array ? (0, import_utils8.bytesToHex)(secretKey) : secretKey;
- const key = import_secp256k12.secp256k1.getSharedSecret(privkey, "02" + pubkey);
+ const privkey = secretKey instanceof Uint8Array ? secretKey : (0, import_utils8.hexToBytes)(secretKey);
+ const key = import_secp256k12.secp256k1.getSharedSecret(privkey, (0, import_utils8.hexToBytes)("02" + pubkey));
const normalizedKey = getNormalizedX(key);
let iv = Uint8Array.from((0, import_utils8.randomBytes)(16));
let plaintext = utf8Encoder.encode(text);
let ciphertext = (0, import_aes.cbc)(normalizedKey, iv).encrypt(plaintext);
@@ -1720,11 +1720,11 @@
let ivb64 = import_base2.base64.encode(new Uint8Array(iv.buffer));
return `${ctb64}?iv=${ivb64}`;
}
function decrypt(secretKey, pubkey, data) {
- const privkey = secretKey instanceof Uint8Array ? (0, import_utils8.bytesToHex)(secretKey) : secretKey;
+ const privkey = secretKey instanceof Uint8Array ? secretKey : (0, import_utils8.hexToBytes)(secretKey);
let [ctb64, ivb64] = data.split("?iv=");
- let key = import_secp256k12.secp256k1.getSharedSecret(privkey, "02" + pubkey);
+ let key = import_secp256k12.secp256k1.getSharedSecret(privkey, (0, import_utils8.hexToBytes)("02" + pubkey));
let normalizedKey = getNormalizedX(key);
let iv = import_base2.base64.decode(ivb64);
let ciphertext = import_base2.base64.decode(ctb64);
let plaintext = (0, import_aes.cbc)(normalizedKey, iv).decrypt(ciphertext);
@@ -1922,10 +1922,10 @@
fastEventHash: () => fastEventHash,
getPow: () => getPow,
minePow: () => minePow
});
-var import_utils10 = require("@noble/hashes/utils");
-var import_sha2562 = require("@noble/hashes/sha256");
+var import_utils10 = require("@noble/hashes/utils.js");
+var import_sha22 = require("@noble/hashes/sha2.js");
function getPow(hex) {
let count = 0;
for (let i2 = 0; i2 < 64; i2 += 8) {
const nibble = parseInt(hex.substring(i2, i2 + 8), 16);
@@ -1958,9 +1958,9 @@
return event;
}
function fastEventHash(evt) {
return (0, import_utils10.bytesToHex)(
- (0, import_sha2562.sha256)(utf8Encoder.encode(JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content])))
+ (0, import_sha22.sha256)(utf8Encoder.encode(JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content])))
);
}
// nip17.ts
@@ -1991,24 +1991,24 @@
encrypt: () => encrypt2,
getConversationKey: () => getConversationKey,
v2: () => v2
});
-var import_chacha = require("@noble/ciphers/chacha");
-var import_utils12 = require("@noble/ciphers/utils");
-var import_secp256k13 = require("@noble/curves/secp256k1");
-var import_hkdf = require("@noble/hashes/hkdf");
-var import_hmac = require("@noble/hashes/hmac");
-var import_sha2563 = require("@noble/hashes/sha256");
-var import_utils13 = require("@noble/hashes/utils");
+var import_chacha = require("@noble/ciphers/chacha.js");
+var import_utils12 = require("@noble/ciphers/utils.js");
+var import_secp256k13 = require("@noble/curves/secp256k1.js");
+var import_hkdf = require("@noble/hashes/hkdf.js");
+var import_hmac = require("@noble/hashes/hmac.js");
+var import_sha23 = require("@noble/hashes/sha2.js");
+var import_utils13 = require("@noble/hashes/utils.js");
var import_base3 = require("@scure/base");
var minPlaintextSize = 1;
var maxPlaintextSize = 65535;
function getConversationKey(privkeyA, pubkeyB) {
- const sharedX = import_secp256k13.secp256k1.getSharedSecret(privkeyA, "02" + pubkeyB).subarray(1, 33);
- return (0, import_hkdf.extract)(import_sha2563.sha256, sharedX, "nip44-v2");
+ const sharedX = import_secp256k13.secp256k1.getSharedSecret(privkeyA, (0, import_utils13.hexToBytes)("02" + pubkeyB)).subarray(1, 33);
+ return (0, import_hkdf.extract)(import_sha23.sha256, sharedX, utf8Encoder.encode("nip44-v2"));
}
function getMessageKeys(conversationKey, nonce) {
- const keys = (0, import_hkdf.expand)(import_sha2563.sha256, conversationKey, nonce, 76);
+ const keys = (0, import_hkdf.expand)(import_sha23.sha256, conversationKey, nonce, 76);
return {
chacha_key: keys.subarray(0, 32),
chacha_nonce: keys.subarray(32, 44),
hmac_key: keys.subarray(44, 76)
@@ -2047,9 +2047,9 @@
function hmacAad(key, message, aad) {
if (aad.length !== 32)
throw new Error("AAD associated data must be 32 bytes");
const combined = (0, import_utils13.concatBytes)(aad, message);
- return (0, import_hmac.hmac)(import_sha2563.sha256, key, combined);
+ return (0, import_hmac.hmac)(import_sha23.sha256, key, combined);
}
function decodePayload(payload) {
if (typeof payload !== "string")
throw new Error("payload must be a valid string");
@@ -2863,10 +2863,10 @@
Negentropy: () => Negentropy,
NegentropyStorageVector: () => NegentropyStorageVector,
NegentropySync: () => NegentropySync
});
-var import_utils16 = require("@noble/ciphers/utils");
-var import_sha2564 = require("@noble/hashes/sha256");
+var import_utils16 = require("@noble/hashes/utils.js");
+var import_sha24 = require("@noble/hashes/sha2.js");
var PROTOCOL_VERSION = 97;
var ID_SIZE = 32;
var FINGERPRINT_SIZE = 16;
var Mode = {
@@ -2995,9 +2995,9 @@
getFingerprint(n) {
let input = new WrappedBuffer();
input.extend(this.buf);
input.extend(encodeVarInt(n));
- let hash = (0, import_sha2564.sha256)(input.unwrap());
+ let hash = (0, import_sha24.sha256)(input.unwrap());
return hash.subarray(0, FINGERPRINT_SIZE);
}
};
var NegentropyStorageVector = class {
@@ -3370,10 +3370,10 @@
validateEventTimestamp: () => validateEventTimestamp,
validateEventUrlTag: () => validateEventUrlTag,
validateToken: () => validateToken
});
-var import_sha2565 = require("@noble/hashes/sha256");
-var import_utils17 = require("@noble/hashes/utils");
+var import_sha25 = require("@noble/hashes/sha2.js");
+var import_utils17 = require("@noble/hashes/utils.js");
var import_base5 = require("@scure/base");
var _authorizationScheme = "Nostr ";
async function getToken(loginUrl, httpMethod, sign, includeAuthorizationScheme = false, payload) {
const event = {
@@ -3436,9 +3436,9 @@
}
return methodTag.length > 0 && methodTag[1].toLowerCase() === method.toLowerCase();
}
function hashPayload(payload) {
- const hash = (0, import_sha2565.sha256)(utf8Encoder.encode(JSON.stringify(payload)));
+ const hash = (0, import_sha25.sha256)(utf8Encoder.encode(JSON.stringify(payload)));
return (0, import_utils17.bytesToHex)(hash);
}
function validateEventPayloadTag(event, payload) {
const payloadTag = event.tags.find((t) => t[0] === "payload");