@welshman/domain 0.9.0-pre3 → 0.9.0-pre5
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/domain/src/index.d.ts +1 -0
- package/dist/domain/src/index.d.ts.map +1 -1
- package/dist/domain/src/index.js +1 -0
- package/dist/domain/src/index.js.map +1 -1
- package/dist/domain/src/kinds/DirectMessage.d.ts +19 -0
- package/dist/domain/src/kinds/DirectMessage.d.ts.map +1 -0
- package/dist/domain/src/kinds/DirectMessage.js +59 -0
- package/dist/domain/src/kinds/DirectMessage.js.map +1 -0
- package/dist/domain/src/kinds/RelayList.d.ts +1 -0
- package/dist/domain/src/kinds/RelayList.d.ts.map +1 -1
- package/dist/domain/src/kinds/RelayList.js +9 -3
- package/dist/domain/src/kinds/RelayList.js.map +1 -1
- package/dist/domain/src/kinds/RoomList.d.ts +1 -0
- package/dist/domain/src/kinds/RoomList.d.ts.map +1 -1
- package/dist/domain/src/kinds/RoomList.js +5 -0
- package/dist/domain/src/kinds/RoomList.js.map +1 -1
- package/dist/lib/src/LRUCache.d.ts +0 -1
- package/dist/lib/src/LRUCache.d.ts.map +1 -1
- package/dist/lib/src/LRUCache.js +9 -10
- package/dist/lib/src/LRUCache.js.map +1 -1
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js +8 -1
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/negentropy.d.ts.map +1 -1
- package/dist/net/src/negentropy.js +1 -8
- package/dist/net/src/negentropy.js.map +1 -1
- package/dist/net/src/request.d.ts.map +1 -1
- package/dist/net/src/request.js +24 -8
- package/dist/net/src/request.js.map +1 -1
- package/dist/signer/src/signers/nip55.d.ts +46 -6
- package/dist/signer/src/signers/nip55.d.ts.map +1 -1
- package/dist/signer/src/signers/nip55.js +53 -54
- package/dist/signer/src/signers/nip55.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/util/src/Pow.d.ts.map +1 -1
- package/dist/util/src/Pow.js +13 -8
- package/dist/util/src/Pow.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,28 +1,67 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { noop } from "@welshman/lib";
|
|
2
2
|
import { hash, own, Pubkey } from "@welshman/util";
|
|
3
3
|
import { signWithOptions } from "../util.js";
|
|
4
|
+
let plugin;
|
|
5
|
+
/**
|
|
6
|
+
* Register the NIP-55 plugin. Capacitor apps should call this once at startup:
|
|
7
|
+
*
|
|
8
|
+
* import {NostrSignerPlugin} from "nostr-signer-capacitor-plugin"
|
|
9
|
+
* import {setNip55Plugin} from "@welshman/signer"
|
|
10
|
+
*
|
|
11
|
+
* setNip55Plugin(NostrSignerPlugin)
|
|
12
|
+
*/
|
|
13
|
+
export const setNip55Plugin = (nip55) => {
|
|
14
|
+
plugin = nip55;
|
|
15
|
+
};
|
|
16
|
+
export const getNip55Plugin = () => plugin;
|
|
17
|
+
/** Installed signer apps, or an empty list if no plugin has been registered. */
|
|
4
18
|
export const getNip55 = async () => {
|
|
5
|
-
|
|
19
|
+
if (!plugin)
|
|
20
|
+
return [];
|
|
21
|
+
const { apps } = await plugin.getInstalledSignerApps();
|
|
6
22
|
return apps;
|
|
7
23
|
};
|
|
24
|
+
const makeRequestId = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
8
25
|
export class Nip55Signer {
|
|
9
26
|
packageName;
|
|
10
27
|
#pubkey;
|
|
11
|
-
#lock;
|
|
28
|
+
#lock = Promise.resolve();
|
|
29
|
+
#setup;
|
|
12
30
|
constructor(packageName, pubkey) {
|
|
13
31
|
this.packageName = packageName;
|
|
14
32
|
this.#pubkey = pubkey;
|
|
15
|
-
this.#lock = NostrSignerPlugin.setPackageName(packageName);
|
|
16
33
|
}
|
|
17
34
|
#then = async (f) => {
|
|
18
|
-
const promise = this.#lock.then(
|
|
19
|
-
|
|
35
|
+
const promise = this.#lock.then(async () => {
|
|
36
|
+
const nip55 = plugin;
|
|
37
|
+
if (!nip55)
|
|
38
|
+
throw new Error("Nip55 is not enabled");
|
|
39
|
+
if (!this.#setup) {
|
|
40
|
+
this.#setup = nip55.setPackageName(this.packageName);
|
|
41
|
+
this.#setup.catch(() => {
|
|
42
|
+
this.#setup = undefined;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
await this.#setup;
|
|
46
|
+
return f(nip55);
|
|
47
|
+
});
|
|
48
|
+
// Swallow the result either way — a failed call must not poison the lock
|
|
49
|
+
this.#lock = promise.then(noop, noop);
|
|
20
50
|
return promise;
|
|
21
51
|
};
|
|
52
|
+
#crypt = async (method, pubkey, message) => {
|
|
53
|
+
if (!this.#pubkey) {
|
|
54
|
+
await this.getPubkey();
|
|
55
|
+
}
|
|
56
|
+
return this.#then(async (plugin) => {
|
|
57
|
+
const { result } = await plugin[method](this.packageName, message, makeRequestId(), pubkey, this.#pubkey);
|
|
58
|
+
return result;
|
|
59
|
+
});
|
|
60
|
+
};
|
|
22
61
|
getPubkey = async () => {
|
|
23
|
-
return this.#then(async () => {
|
|
62
|
+
return this.#then(async (plugin) => {
|
|
24
63
|
if (!this.#pubkey) {
|
|
25
|
-
const { npub } = await
|
|
64
|
+
const { npub } = await plugin.getPublicKey(this.packageName);
|
|
26
65
|
this.#pubkey = Pubkey.from(npub).toString();
|
|
27
66
|
}
|
|
28
67
|
return this.#pubkey;
|
|
@@ -30,58 +69,18 @@ export class Nip55Signer {
|
|
|
30
69
|
};
|
|
31
70
|
sign = (template, options = {}) => signWithOptions(this.getPubkey().then(pubkey => {
|
|
32
71
|
const hashedEvent = hash(own(template, pubkey));
|
|
33
|
-
return this.#then(async () => {
|
|
34
|
-
const { event: json } = await
|
|
72
|
+
return this.#then(async (plugin) => {
|
|
73
|
+
const { event: json } = await plugin.signEvent(this.packageName, JSON.stringify({ sig: "", ...hashedEvent }), hashedEvent.id, this.#pubkey);
|
|
35
74
|
return JSON.parse(json);
|
|
36
75
|
});
|
|
37
76
|
}), options);
|
|
38
77
|
nip04 = {
|
|
39
|
-
encrypt:
|
|
40
|
-
|
|
41
|
-
if (!myPubkey) {
|
|
42
|
-
await this.getPubkey();
|
|
43
|
-
}
|
|
44
|
-
return this.#then(async () => {
|
|
45
|
-
const id = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
46
|
-
const { result } = await NostrSignerPlugin.nip04Encrypt(this.packageName, message, id, recipientPubKey, this.#pubkey);
|
|
47
|
-
return result;
|
|
48
|
-
});
|
|
49
|
-
},
|
|
50
|
-
decrypt: async (senderPubKey, message) => {
|
|
51
|
-
const myPubkey = this.#pubkey;
|
|
52
|
-
if (!myPubkey) {
|
|
53
|
-
await this.getPubkey();
|
|
54
|
-
}
|
|
55
|
-
return this.#then(async () => {
|
|
56
|
-
const id = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
57
|
-
const { result } = await NostrSignerPlugin.nip04Decrypt(this.packageName, message, id, senderPubKey, this.#pubkey);
|
|
58
|
-
return result;
|
|
59
|
-
});
|
|
60
|
-
},
|
|
78
|
+
encrypt: (pubkey, message) => this.#crypt("nip04Encrypt", pubkey, message),
|
|
79
|
+
decrypt: (pubkey, message) => this.#crypt("nip04Decrypt", pubkey, message),
|
|
61
80
|
};
|
|
62
81
|
nip44 = {
|
|
63
|
-
encrypt:
|
|
64
|
-
|
|
65
|
-
if (!myPubkey) {
|
|
66
|
-
await this.getPubkey();
|
|
67
|
-
}
|
|
68
|
-
return this.#then(async () => {
|
|
69
|
-
const id = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
70
|
-
const { result } = await NostrSignerPlugin.nip44Encrypt(this.packageName, message, id, recipientPubKey, this.#pubkey);
|
|
71
|
-
return result;
|
|
72
|
-
});
|
|
73
|
-
},
|
|
74
|
-
decrypt: async (senderPubKey, message) => {
|
|
75
|
-
const myPubkey = this.#pubkey;
|
|
76
|
-
if (!myPubkey) {
|
|
77
|
-
await this.getPubkey();
|
|
78
|
-
}
|
|
79
|
-
return this.#then(async () => {
|
|
80
|
-
const id = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
81
|
-
const { result } = await NostrSignerPlugin.nip44Decrypt(this.packageName, message, id, senderPubKey, this.#pubkey);
|
|
82
|
-
return result;
|
|
83
|
-
});
|
|
84
|
-
},
|
|
82
|
+
encrypt: (pubkey, message) => this.#crypt("nip44Encrypt", pubkey, message),
|
|
83
|
+
decrypt: (pubkey, message) => this.#crypt("nip44Decrypt", pubkey, message),
|
|
85
84
|
};
|
|
86
85
|
}
|
|
87
86
|
//# sourceMappingURL=nip55.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip55.js","sourceRoot":"","sources":["../../../../../signer/src/signers/nip55.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"nip55.js","sourceRoot":"","sources":["../../../../../signer/src/signers/nip55.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/behaviors/emoji.ts","../src/behaviors/zapsplits.ts","../src/core/eventreader.ts","../src/core/eventwriter.ts","../src/core/kind.ts","../src/core/listreader.ts","../src/core/listwriter.ts","../src/kinds/appdata.ts","../src/kinds/blockedrelaylist.ts","../src/kinds/blossomserverlist.ts","../src/kinds/bookmarklist.ts","../src/kinds/classified.ts","../src/kinds/comment.ts","../src/kinds/communitylist.ts","../src/kinds/delete.ts","../src/kinds/emojilist.ts","../src/kinds/feed.ts","../src/kinds/feedlist.ts","../src/kinds/followlist.ts","../src/kinds/handler.ts","../src/kinds/handlerrecommendation.ts","../src/kinds/messagingrelaylist.ts","../src/kinds/mutelist.ts","../src/kinds/note.ts","../src/kinds/pin.ts","../src/kinds/pinlist.ts","../src/kinds/pinboard.ts","../src/kinds/poll.ts","../src/kinds/pollresponse.ts","../src/kinds/profile.ts","../src/kinds/reaction.ts","../src/kinds/relayaddmember.ts","../src/kinds/relayinvite.ts","../src/kinds/relayjoin.ts","../src/kinds/relayleave.ts","../src/kinds/relaylist.ts","../src/kinds/relaymembers.ts","../src/kinds/relayremovemember.ts","../src/kinds/relayrole.ts","../src/kinds/relayset.ts","../src/kinds/report.ts","../src/kinds/roomaddmember.ts","../src/kinds/roomadmins.ts","../src/kinds/roomcreate.ts","../src/kinds/roomcreatepermission.ts","../src/kinds/roomdelete.ts","../src/kinds/roomedit.ts","../src/kinds/roomjoin.ts","../src/kinds/roomleave.ts","../src/kinds/roomlist.ts","../src/kinds/roommembers.ts","../src/kinds/roommeta.ts","../src/kinds/roompins.ts","../src/kinds/roomremovemember.ts","../src/kinds/roomupdatepins.ts","../src/kinds/searchrelaylist.ts","../src/kinds/thread.ts","../src/kinds/timeevent.ts","../src/kinds/topiclist.ts","../src/kinds/zapgoal.ts","../src/kinds/zapreceipt.ts","../src/kinds/zaprequest.ts","../src/other/relay.ts","../src/other/zapper.ts"],"version":"5.8.2"}
|
|
1
|
+
{"root":["../src/index.ts","../src/behaviors/emoji.ts","../src/behaviors/zapsplits.ts","../src/core/eventreader.ts","../src/core/eventwriter.ts","../src/core/kind.ts","../src/core/listreader.ts","../src/core/listwriter.ts","../src/kinds/appdata.ts","../src/kinds/blockedrelaylist.ts","../src/kinds/blossomserverlist.ts","../src/kinds/bookmarklist.ts","../src/kinds/classified.ts","../src/kinds/comment.ts","../src/kinds/communitylist.ts","../src/kinds/delete.ts","../src/kinds/directmessage.ts","../src/kinds/emojilist.ts","../src/kinds/feed.ts","../src/kinds/feedlist.ts","../src/kinds/followlist.ts","../src/kinds/handler.ts","../src/kinds/handlerrecommendation.ts","../src/kinds/messagingrelaylist.ts","../src/kinds/mutelist.ts","../src/kinds/note.ts","../src/kinds/pin.ts","../src/kinds/pinlist.ts","../src/kinds/pinboard.ts","../src/kinds/poll.ts","../src/kinds/pollresponse.ts","../src/kinds/profile.ts","../src/kinds/reaction.ts","../src/kinds/relayaddmember.ts","../src/kinds/relayinvite.ts","../src/kinds/relayjoin.ts","../src/kinds/relayleave.ts","../src/kinds/relaylist.ts","../src/kinds/relaymembers.ts","../src/kinds/relayremovemember.ts","../src/kinds/relayrole.ts","../src/kinds/relayset.ts","../src/kinds/report.ts","../src/kinds/roomaddmember.ts","../src/kinds/roomadmins.ts","../src/kinds/roomcreate.ts","../src/kinds/roomcreatepermission.ts","../src/kinds/roomdelete.ts","../src/kinds/roomedit.ts","../src/kinds/roomjoin.ts","../src/kinds/roomleave.ts","../src/kinds/roomlist.ts","../src/kinds/roommembers.ts","../src/kinds/roommeta.ts","../src/kinds/roompins.ts","../src/kinds/roomremovemember.ts","../src/kinds/roomupdatepins.ts","../src/kinds/searchrelaylist.ts","../src/kinds/thread.ts","../src/kinds/timeevent.ts","../src/kinds/topiclist.ts","../src/kinds/zapgoal.ts","../src/kinds/zapreceipt.ts","../src/kinds/zaprequest.ts","../src/other/relay.ts","../src/other/zapper.ts"],"version":"5.8.2"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pow.d.ts","sourceRoot":"","sources":["../../../../util/src/Pow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,UAAU,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAE9D,eAAO,IAAI,SAAS,QAAI,CAAA;AAExB,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,WACuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Pow.d.ts","sourceRoot":"","sources":["../../../../util/src/Pow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,UAAU,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAE9D,eAAO,IAAI,SAAS,QAAI,CAAA;AAExB,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,WACuB,CAAA;AA0EtE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,UAAU,EAAE,YAAY,MAAM,KAAG,WAyB/D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,WAAW,KAAG,MAmB3C,CAAA"}
|
package/dist/util/src/Pow.js
CHANGED
|
@@ -71,21 +71,24 @@ const createPowWorker = () => {
|
|
|
71
71
|
}
|
|
72
72
|
const blob = new Blob([workerCode], { type: "application/javascript" });
|
|
73
73
|
const url = URL.createObjectURL(blob);
|
|
74
|
-
|
|
75
|
-
// Clean up the blob URL after worker is created
|
|
76
|
-
URL.revokeObjectURL(url);
|
|
77
|
-
return worker;
|
|
74
|
+
return { worker: new Worker(url), url };
|
|
78
75
|
};
|
|
79
76
|
export const makePow = (event, difficulty) => {
|
|
80
|
-
const worker = createPowWorker();
|
|
77
|
+
const { worker, url } = createPowWorker();
|
|
81
78
|
const result = new Promise((resolve, reject) => {
|
|
79
|
+
// Firefox fetches the worker script asynchronously, so revoking the blob url any
|
|
80
|
+
// earlier than this aborts the load and fires an error event with no error on it
|
|
81
|
+
const finish = () => {
|
|
82
|
+
worker.terminate();
|
|
83
|
+
URL.revokeObjectURL(url);
|
|
84
|
+
};
|
|
82
85
|
worker.onmessage = (e) => {
|
|
83
86
|
resolve(e.data);
|
|
84
|
-
|
|
87
|
+
finish();
|
|
85
88
|
};
|
|
86
89
|
worker.onerror = (e) => {
|
|
87
|
-
reject(e.error ||
|
|
88
|
-
|
|
90
|
+
reject(e.error || new Error("Proof of work worker failed to run"));
|
|
91
|
+
finish();
|
|
89
92
|
};
|
|
90
93
|
worker.postMessage({ difficulty, event });
|
|
91
94
|
});
|
|
@@ -122,6 +125,8 @@ call(() => {
|
|
|
122
125
|
const start = Date.now();
|
|
123
126
|
pow.result.then(() => {
|
|
124
127
|
benchmark = Date.now() - start;
|
|
128
|
+
}, () => {
|
|
129
|
+
// Leave the benchmark at zero; failures get reported when pow is actually requested
|
|
125
130
|
});
|
|
126
131
|
});
|
|
127
132
|
//# sourceMappingURL=Pow.js.map
|
package/dist/util/src/Pow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pow.js","sourceRoot":"","sources":["../../../../util/src/Pow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AACpD,OAAO,EAAC,SAAS,EAA0B,MAAM,aAAa,CAAA;AAE9D,MAAM,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE,CACjD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAA;AAEtE,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DlB,CAAA;AAED,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"Pow.js","sourceRoot":"","sources":["../../../../util/src/Pow.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@welshman/domain",
|
|
3
|
-
"version": "0.9.0-
|
|
3
|
+
"version": "0.9.0-pre5",
|
|
4
4
|
"author": "hodlbod",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Stateless utilities for translating nostr events to and from domain objects.",
|
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
],
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"nostr-tools": "^2.19.4",
|
|
18
|
-
"@welshman/feeds": "0.9.0-
|
|
19
|
-
"@welshman/
|
|
20
|
-
"@welshman/
|
|
21
|
-
"@welshman/
|
|
22
|
-
"@welshman/
|
|
18
|
+
"@welshman/feeds": "0.9.0-pre5",
|
|
19
|
+
"@welshman/lib": "0.9.0-pre5",
|
|
20
|
+
"@welshman/net": "0.9.0-pre5",
|
|
21
|
+
"@welshman/signer": "0.9.0-pre5",
|
|
22
|
+
"@welshman/util": "0.9.0-pre5"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"nostr-tools": "^2.19.4",
|
|
26
26
|
"rimraf": "~6.0.0",
|
|
27
27
|
"typescript": "~5.8.0",
|
|
28
|
-
"@welshman/feeds": "0.9.0-
|
|
29
|
-
"@welshman/
|
|
30
|
-
"@welshman/
|
|
31
|
-
"@welshman/net": "0.9.0-
|
|
32
|
-
"@welshman/
|
|
28
|
+
"@welshman/feeds": "0.9.0-pre5",
|
|
29
|
+
"@welshman/lib": "0.9.0-pre5",
|
|
30
|
+
"@welshman/signer": "0.9.0-pre5",
|
|
31
|
+
"@welshman/net": "0.9.0-pre5",
|
|
32
|
+
"@welshman/util": "0.9.0-pre5"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "pnpm run clean && pnpm run compile --force",
|