shogun-core 3.3.4 ā 3.3.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/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_axios_index_js.shogun-core.js +4073 -2
- package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_axios_index_js.shogun-core.js.map +1 -0
- package/dist/browser/shogun-core.js +597 -343
- package/dist/browser/shogun-core.js.map +1 -1
- package/dist/ship/examples/identity-cli.js +12 -4
- package/dist/ship/examples/vault-cli.js +2 -2
- package/dist/ship/implementation/SHIP_06.js +574 -289
- package/dist/ship/interfaces/ISHIP_06.js +135 -85
- package/dist/src/gundb/db.js +7 -49
- package/dist/types/ship/implementation/SHIP_06.d.ts +90 -55
- package/dist/types/ship/interfaces/ISHIP_06.d.ts +383 -231
- package/package.json +2 -8
- package/dist/ship/examples/ephemeral-cli.js +0 -234
- package/dist/ship/implementation/SHIP_07.js +0 -635
- package/dist/ship/interfaces/ISHIP_07.js +0 -194
- package/dist/types/ship/examples/ephemeral-cli.d.ts +0 -13
- package/dist/types/ship/implementation/SHIP_07.d.ts +0 -101
- package/dist/types/ship/interfaces/ISHIP_07.d.ts +0 -522
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shogun-core",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.5",
|
|
4
4
|
"description": "SHOGUN CORE - Core library for Shogun Ecosystem",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"module": "./dist/src/index.js",
|
|
@@ -20,12 +20,6 @@
|
|
|
20
20
|
"require": "./dist/ship/index.js",
|
|
21
21
|
"default": "./dist/ship/index.js"
|
|
22
22
|
},
|
|
23
|
-
"./ship/implementation/*": {
|
|
24
|
-
"types": "./dist/types/ship/implementation/*.d.ts",
|
|
25
|
-
"import": "./dist/ship/implementation/*.js",
|
|
26
|
-
"require": "./dist/ship/implementation/*.js",
|
|
27
|
-
"default": "./dist/ship/implementation/*.js"
|
|
28
|
-
},
|
|
29
23
|
"./ship/interfaces/*": {
|
|
30
24
|
"types": "./dist/types/ship/interfaces/*.d.ts",
|
|
31
25
|
"import": "./dist/ship/interfaces/*.js",
|
|
@@ -46,7 +40,6 @@
|
|
|
46
40
|
"wallet": "tsx ship/examples/wallet-cli.ts",
|
|
47
41
|
"stealth": "tsx ship/examples/stealth-cli.ts",
|
|
48
42
|
"storage": "tsx ship/examples/storage-cli.ts",
|
|
49
|
-
"ephemeral": "tsx ship/examples/ephemeral-cli.ts",
|
|
50
43
|
"vault": "tsx ship/examples/vault-cli.ts",
|
|
51
44
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
52
45
|
"docs": "yarn typedoc --options typedoc.json",
|
|
@@ -78,6 +71,7 @@
|
|
|
78
71
|
"constants-browserify": "^1.0.0",
|
|
79
72
|
"crypto-browserify": "^3.12.0",
|
|
80
73
|
"ethers": "^6.13.5",
|
|
74
|
+
"figlet": "^1.9.3",
|
|
81
75
|
"form-data": "^4.0.4",
|
|
82
76
|
"gun": "git+https://github.com/amark/gun.git",
|
|
83
77
|
"keccak256": "^1.0.6",
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
"use strict";
|
|
3
|
-
/**
|
|
4
|
-
* SHIP-06 Ephemeral Chat - STANDALONE
|
|
5
|
-
*
|
|
6
|
-
* NO login/password required!
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* tsx ship/examples/ephemeral-cli.ts <nickname> <room>
|
|
10
|
-
*
|
|
11
|
-
* Example:
|
|
12
|
-
* tsx ship/examples/ephemeral-cli.ts alice test-room
|
|
13
|
-
*/
|
|
14
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
-
}
|
|
20
|
-
Object.defineProperty(o, k2, desc);
|
|
21
|
-
}) : (function(o, m, k, k2) {
|
|
22
|
-
if (k2 === undefined) k2 = k;
|
|
23
|
-
o[k2] = m[k];
|
|
24
|
-
}));
|
|
25
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
-
}) : function(o, v) {
|
|
28
|
-
o["default"] = v;
|
|
29
|
-
});
|
|
30
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
-
var ownKeys = function(o) {
|
|
32
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
-
var ar = [];
|
|
34
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
-
return ar;
|
|
36
|
-
};
|
|
37
|
-
return ownKeys(o);
|
|
38
|
-
};
|
|
39
|
-
return function (mod) {
|
|
40
|
-
if (mod && mod.__esModule) return mod;
|
|
41
|
-
var result = {};
|
|
42
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
-
__setModuleDefault(result, mod);
|
|
44
|
-
return result;
|
|
45
|
-
};
|
|
46
|
-
})();
|
|
47
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
const SHIP_06_1 = require("../implementation/SHIP_06");
|
|
49
|
-
const readline = __importStar(require("readline"));
|
|
50
|
-
// ============================================================================
|
|
51
|
-
// GUN PEERS
|
|
52
|
-
// ============================================================================
|
|
53
|
-
const GUN_PEERS = [
|
|
54
|
-
"https://v5g5jseqhgkp43lppgregcfbvi.srv.us/gun",
|
|
55
|
-
"https://relay.shogun-eco.xyz/gun",
|
|
56
|
-
"https://peer.wallie.io/gun",
|
|
57
|
-
];
|
|
58
|
-
// ============================================================================
|
|
59
|
-
// CLI
|
|
60
|
-
// ============================================================================
|
|
61
|
-
const rl = readline.createInterface({
|
|
62
|
-
input: process.stdin,
|
|
63
|
-
output: process.stdout,
|
|
64
|
-
});
|
|
65
|
-
function prompt(question) {
|
|
66
|
-
return new Promise((resolve) => {
|
|
67
|
-
rl.question(question, (answer) => {
|
|
68
|
-
resolve(answer);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
// ============================================================================
|
|
73
|
-
// MAIN
|
|
74
|
-
// ============================================================================
|
|
75
|
-
async function main() {
|
|
76
|
-
console.clear();
|
|
77
|
-
console.log("š”ļø SHOGUN EPHEMERAL CHAT");
|
|
78
|
-
console.log("=".repeat(70));
|
|
79
|
-
const args = process.argv.slice(2);
|
|
80
|
-
if (args.length < 2) {
|
|
81
|
-
console.log("Usage: tsx ephemeral-cli.ts <nickname> <room>");
|
|
82
|
-
console.log();
|
|
83
|
-
console.log("Example:");
|
|
84
|
-
console.log(" tsx ephemeral-cli.ts alice test-room");
|
|
85
|
-
console.log();
|
|
86
|
-
process.exit(1);
|
|
87
|
-
}
|
|
88
|
-
const [nickname, roomId] = args;
|
|
89
|
-
try {
|
|
90
|
-
console.log(`ā
Welcome ${nickname}!`);
|
|
91
|
-
console.log(`š” Connecting to room: ${roomId}...`);
|
|
92
|
-
// Create ephemeral chat (NO login required!)
|
|
93
|
-
const ephemeral = new SHIP_06_1.SHIP_06(GUN_PEERS, roomId, { debug: false });
|
|
94
|
-
await ephemeral.connect();
|
|
95
|
-
console.log(`ā
Connected!`);
|
|
96
|
-
console.log();
|
|
97
|
-
// ========================================================================
|
|
98
|
-
// EVENTS
|
|
99
|
-
// ========================================================================
|
|
100
|
-
ephemeral.onPeerSeen((address) => {
|
|
101
|
-
console.log(`\nš Peer joined: ${address.substring(0, 12)}... (Total: ${ephemeral.getPeers().length})`);
|
|
102
|
-
displayPrompt();
|
|
103
|
-
});
|
|
104
|
-
ephemeral.onPeerLeft((address) => {
|
|
105
|
-
console.log(`\nš Peer left: ${address.substring(0, 12)}... (Total: ${ephemeral.getPeers().length})`);
|
|
106
|
-
displayPrompt();
|
|
107
|
-
});
|
|
108
|
-
ephemeral.onMessage((msg) => {
|
|
109
|
-
const time = new Date(msg.timestamp).toLocaleTimeString();
|
|
110
|
-
const icon = msg.type === "broadcast" ? "š¢" : "šØ";
|
|
111
|
-
console.log(`\n${icon} [${time}] ${msg.from.substring(0, 8)}...: ${msg.content}`);
|
|
112
|
-
displayPrompt();
|
|
113
|
-
});
|
|
114
|
-
// ========================================================================
|
|
115
|
-
// CHAT
|
|
116
|
-
// ========================================================================
|
|
117
|
-
console.log("š¬ COMMANDS: /peers /direct /help /exit");
|
|
118
|
-
console.log("=".repeat(70));
|
|
119
|
-
console.log();
|
|
120
|
-
let running = true;
|
|
121
|
-
function displayPrompt() {
|
|
122
|
-
if (running) {
|
|
123
|
-
process.stdout.write(`\n${nickname}> `);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
displayPrompt();
|
|
127
|
-
while (running) {
|
|
128
|
-
const input = await prompt("");
|
|
129
|
-
if (!input.trim()) {
|
|
130
|
-
displayPrompt();
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
// Commands
|
|
134
|
-
if (input.startsWith("/")) {
|
|
135
|
-
const command = input.toLowerCase();
|
|
136
|
-
if (command === "/exit" || command === "/quit") {
|
|
137
|
-
console.log("\nš Bye!");
|
|
138
|
-
ephemeral.disconnect();
|
|
139
|
-
running = false;
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
else if (command === "/peers") {
|
|
143
|
-
const peers = ephemeral.getPeers();
|
|
144
|
-
console.log(`\nš„ Peers (${peers.length}):`);
|
|
145
|
-
if (peers.length === 0) {
|
|
146
|
-
console.log(" No peers");
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
peers.forEach((peer, i) => {
|
|
150
|
-
console.log(` ${i + 1}. ${peer}`);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
console.log(); // Add blank line
|
|
154
|
-
displayPrompt(); // Show prompt again
|
|
155
|
-
continue; // Continue to next iteration
|
|
156
|
-
}
|
|
157
|
-
else if (command === "/debug") {
|
|
158
|
-
console.log("\nš DEBUG INFO:");
|
|
159
|
-
console.log(` My address: ${ephemeral.getAddress()}`);
|
|
160
|
-
console.log(` Swarm ID: ${ephemeral.getSwarmId().substring(0, 32)}...`);
|
|
161
|
-
console.log(` Peers: ${ephemeral.getPeers().length}`);
|
|
162
|
-
console.log();
|
|
163
|
-
displayPrompt();
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
else if (command.startsWith("/direct")) {
|
|
167
|
-
const peers = ephemeral.getPeers();
|
|
168
|
-
if (peers.length === 0) {
|
|
169
|
-
console.log("\nā No peers");
|
|
170
|
-
console.log();
|
|
171
|
-
displayPrompt();
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
console.log("\nš„ Select peer:");
|
|
176
|
-
peers.forEach((peer, i) => {
|
|
177
|
-
console.log(` ${i + 1}. ${peer}`);
|
|
178
|
-
});
|
|
179
|
-
const peerIndex = await prompt("\nPeer number: ");
|
|
180
|
-
const selectedPeer = peers[parseInt(peerIndex) - 1];
|
|
181
|
-
if (selectedPeer) {
|
|
182
|
-
const message = await prompt("Message: ");
|
|
183
|
-
if (message.trim()) {
|
|
184
|
-
await ephemeral.sendDirect(selectedPeer, message);
|
|
185
|
-
console.log(`ā
Sent to ${selectedPeer.substring(0, 8)}...`);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
console.log("ā Invalid");
|
|
190
|
-
}
|
|
191
|
-
console.log();
|
|
192
|
-
displayPrompt();
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
else if (command === "/help") {
|
|
197
|
-
console.log("\nš¬ COMMANDS:");
|
|
198
|
-
console.log(" /peers - List peers");
|
|
199
|
-
console.log(" /direct - Direct message");
|
|
200
|
-
console.log(" /help - This help");
|
|
201
|
-
console.log(" /exit - Exit");
|
|
202
|
-
console.log();
|
|
203
|
-
displayPrompt();
|
|
204
|
-
continue;
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
console.log(`\nā Unknown: ${command}`);
|
|
208
|
-
displayPrompt();
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// Send broadcast
|
|
213
|
-
try {
|
|
214
|
-
await ephemeral.sendBroadcast(input);
|
|
215
|
-
const time = new Date().toLocaleTimeString();
|
|
216
|
-
console.log(`š¢ [${time}] You: ${input}`);
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
console.error(`\nā Error: ${error.message}`);
|
|
220
|
-
}
|
|
221
|
-
displayPrompt();
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
catch (error) {
|
|
225
|
-
console.error("\nā Error:", error);
|
|
226
|
-
process.exit(1);
|
|
227
|
-
}
|
|
228
|
-
rl.close();
|
|
229
|
-
process.exit(0);
|
|
230
|
-
}
|
|
231
|
-
main().catch((error) => {
|
|
232
|
-
console.error("Fatal error:", error);
|
|
233
|
-
process.exit(1);
|
|
234
|
-
});
|