shogun-core 3.3.5 → 3.3.6

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.
Files changed (149) hide show
  1. package/dist/browser/shogun-core.js +79919 -190726
  2. package/dist/browser/shogun-core.js.map +1 -1
  3. package/dist/{src/index.js → index.js} +0 -1
  4. package/dist/{src/managers → managers}/CoreInitializer.js +0 -6
  5. package/dist/{src/storage → storage}/storage.js +0 -16
  6. package/dist/types/{src/index.d.ts → index.d.ts} +0 -1
  7. package/package.json +10 -26
  8. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_axios_index_js.shogun-core.js +0 -4078
  9. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_axios_index_js.shogun-core.js.map +0 -1
  10. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_is-ipfs_dist_src_index_js.shogun-core.js +0 -4908
  11. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_is-ipfs_dist_src_index_js.shogun-core.js.map +0 -1
  12. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_uint8-varint_dist_src_index_js-node_modu-0db5ba.shogun-core.js +0 -2109
  13. package/dist/browser/defaultVendors-node_modules_shogun-ipfs_node_modules_uint8-varint_dist_src_index_js-node_modu-0db5ba.shogun-core.js.map +0 -1
  14. package/dist/ship/examples/identity-cli.js +0 -511
  15. package/dist/ship/examples/messenger-cli.js +0 -745
  16. package/dist/ship/examples/stealth-cli.js +0 -433
  17. package/dist/ship/examples/storage-cli.js +0 -615
  18. package/dist/ship/examples/vault-cli.js +0 -444
  19. package/dist/ship/examples/wallet-cli.js +0 -767
  20. package/dist/ship/implementation/SHIP_00.js +0 -478
  21. package/dist/ship/implementation/SHIP_01.js +0 -433
  22. package/dist/ship/implementation/SHIP_02.js +0 -1366
  23. package/dist/ship/implementation/SHIP_03.js +0 -855
  24. package/dist/ship/implementation/SHIP_04.js +0 -589
  25. package/dist/ship/implementation/SHIP_05.js +0 -1064
  26. package/dist/ship/implementation/SHIP_06.js +0 -635
  27. package/dist/ship/index.js +0 -17
  28. package/dist/ship/interfaces/ISHIP_00.js +0 -135
  29. package/dist/ship/interfaces/ISHIP_01.js +0 -128
  30. package/dist/ship/interfaces/ISHIP_02.js +0 -57
  31. package/dist/ship/interfaces/ISHIP_03.js +0 -61
  32. package/dist/ship/interfaces/ISHIP_04.js +0 -62
  33. package/dist/ship/interfaces/ISHIP_05.js +0 -59
  34. package/dist/ship/interfaces/ISHIP_06.js +0 -194
  35. package/dist/types/ship/examples/identity-cli.d.ts +0 -40
  36. package/dist/types/ship/examples/messenger-cli.d.ts +0 -37
  37. package/dist/types/ship/examples/stealth-cli.d.ts +0 -31
  38. package/dist/types/ship/examples/storage-cli.d.ts +0 -48
  39. package/dist/types/ship/examples/vault-cli.d.ts +0 -13
  40. package/dist/types/ship/examples/wallet-cli.d.ts +0 -131
  41. package/dist/types/ship/implementation/SHIP_00.d.ts +0 -113
  42. package/dist/types/ship/implementation/SHIP_01.d.ts +0 -80
  43. package/dist/types/ship/implementation/SHIP_02.d.ts +0 -297
  44. package/dist/types/ship/implementation/SHIP_03.d.ts +0 -127
  45. package/dist/types/ship/implementation/SHIP_04.d.ts +0 -76
  46. package/dist/types/ship/implementation/SHIP_05.d.ts +0 -70
  47. package/dist/types/ship/implementation/SHIP_06.d.ts +0 -101
  48. package/dist/types/ship/index.d.ts +0 -14
  49. package/dist/types/ship/interfaces/ISHIP_00.d.ts +0 -410
  50. package/dist/types/ship/interfaces/ISHIP_01.d.ts +0 -343
  51. package/dist/types/ship/interfaces/ISHIP_02.d.ts +0 -470
  52. package/dist/types/ship/interfaces/ISHIP_03.d.ts +0 -295
  53. package/dist/types/ship/interfaces/ISHIP_04.d.ts +0 -245
  54. package/dist/types/ship/interfaces/ISHIP_05.d.ts +0 -234
  55. package/dist/types/ship/interfaces/ISHIP_06.d.ts +0 -522
  56. /package/dist/{src/config → config}/simplified-config.js +0 -0
  57. /package/dist/{src/core.js → core.js} +0 -0
  58. /package/dist/{src/examples → examples}/api-test.js +0 -0
  59. /package/dist/{src/examples → examples}/simple-api-test.js +0 -0
  60. /package/dist/{src/gundb → gundb}/api.js +0 -0
  61. /package/dist/{src/gundb → gundb}/crypto.js +0 -0
  62. /package/dist/{src/gundb → gundb}/db.js +0 -0
  63. /package/dist/{src/gundb → gundb}/derive.js +0 -0
  64. /package/dist/{src/gundb → gundb}/errors.js +0 -0
  65. /package/dist/{src/gundb → gundb}/index.js +0 -0
  66. /package/dist/{src/gundb → gundb}/rxjs.js +0 -0
  67. /package/dist/{src/gundb → gundb}/types.js +0 -0
  68. /package/dist/{src/interfaces → interfaces}/common.js +0 -0
  69. /package/dist/{src/interfaces → interfaces}/events.js +0 -0
  70. /package/dist/{src/interfaces → interfaces}/plugin.js +0 -0
  71. /package/dist/{src/interfaces → interfaces}/shogun.js +0 -0
  72. /package/dist/{src/managers → managers}/AuthManager.js +0 -0
  73. /package/dist/{src/managers → managers}/EventManager.js +0 -0
  74. /package/dist/{src/managers → managers}/PluginManager.js +0 -0
  75. /package/dist/{src/migration-test.js → migration-test.js} +0 -0
  76. /package/dist/{src/plugins → plugins}/base.js +0 -0
  77. /package/dist/{src/plugins → plugins}/index.js +0 -0
  78. /package/dist/{src/plugins → plugins}/nostr/index.js +0 -0
  79. /package/dist/{src/plugins → plugins}/nostr/nostrConnector.js +0 -0
  80. /package/dist/{src/plugins → plugins}/nostr/nostrConnectorPlugin.js +0 -0
  81. /package/dist/{src/plugins → plugins}/nostr/nostrSigner.js +0 -0
  82. /package/dist/{src/plugins → plugins}/nostr/types.js +0 -0
  83. /package/dist/{src/plugins → plugins}/oauth/index.js +0 -0
  84. /package/dist/{src/plugins → plugins}/oauth/oauthConnector.js +0 -0
  85. /package/dist/{src/plugins → plugins}/oauth/oauthPlugin.js +0 -0
  86. /package/dist/{src/plugins → plugins}/oauth/types.js +0 -0
  87. /package/dist/{src/plugins → plugins}/web3/index.js +0 -0
  88. /package/dist/{src/plugins → plugins}/web3/types.js +0 -0
  89. /package/dist/{src/plugins → plugins}/web3/web3Connector.js +0 -0
  90. /package/dist/{src/plugins → plugins}/web3/web3ConnectorPlugin.js +0 -0
  91. /package/dist/{src/plugins → plugins}/web3/web3Signer.js +0 -0
  92. /package/dist/{src/plugins → plugins}/webauthn/index.js +0 -0
  93. /package/dist/{src/plugins → plugins}/webauthn/types.js +0 -0
  94. /package/dist/{src/plugins → plugins}/webauthn/webauthn.js +0 -0
  95. /package/dist/{src/plugins → plugins}/webauthn/webauthnPlugin.js +0 -0
  96. /package/dist/{src/plugins → plugins}/webauthn/webauthnSigner.js +0 -0
  97. /package/dist/types/{src/config → config}/simplified-config.d.ts +0 -0
  98. /package/dist/types/{src/core.d.ts → core.d.ts} +0 -0
  99. /package/dist/{src/types → types}/events.js +0 -0
  100. /package/dist/types/{src/examples → examples}/api-test.d.ts +0 -0
  101. /package/dist/types/{src/examples → examples}/simple-api-test.d.ts +0 -0
  102. /package/dist/types/{src/gundb → gundb}/api.d.ts +0 -0
  103. /package/dist/types/{src/gundb → gundb}/crypto.d.ts +0 -0
  104. /package/dist/types/{src/gundb → gundb}/db.d.ts +0 -0
  105. /package/dist/types/{src/gundb → gundb}/derive.d.ts +0 -0
  106. /package/dist/types/{src/gundb → gundb}/errors.d.ts +0 -0
  107. /package/dist/types/{src/gundb → gundb}/index.d.ts +0 -0
  108. /package/dist/types/{src/gundb → gundb}/rxjs.d.ts +0 -0
  109. /package/dist/types/{src/gundb → gundb}/types.d.ts +0 -0
  110. /package/dist/types/{src/interfaces → interfaces}/common.d.ts +0 -0
  111. /package/dist/types/{src/interfaces → interfaces}/events.d.ts +0 -0
  112. /package/dist/types/{src/interfaces → interfaces}/plugin.d.ts +0 -0
  113. /package/dist/types/{src/interfaces → interfaces}/shogun.d.ts +0 -0
  114. /package/dist/types/{src/managers → managers}/AuthManager.d.ts +0 -0
  115. /package/dist/types/{src/managers → managers}/CoreInitializer.d.ts +0 -0
  116. /package/dist/types/{src/managers → managers}/EventManager.d.ts +0 -0
  117. /package/dist/types/{src/managers → managers}/PluginManager.d.ts +0 -0
  118. /package/dist/types/{src/migration-test.d.ts → migration-test.d.ts} +0 -0
  119. /package/dist/types/{src/plugins → plugins}/base.d.ts +0 -0
  120. /package/dist/types/{src/plugins → plugins}/index.d.ts +0 -0
  121. /package/dist/types/{src/plugins → plugins}/nostr/index.d.ts +0 -0
  122. /package/dist/types/{src/plugins → plugins}/nostr/nostrConnector.d.ts +0 -0
  123. /package/dist/types/{src/plugins → plugins}/nostr/nostrConnectorPlugin.d.ts +0 -0
  124. /package/dist/types/{src/plugins → plugins}/nostr/nostrSigner.d.ts +0 -0
  125. /package/dist/types/{src/plugins → plugins}/nostr/types.d.ts +0 -0
  126. /package/dist/types/{src/plugins → plugins}/oauth/index.d.ts +0 -0
  127. /package/dist/types/{src/plugins → plugins}/oauth/oauthConnector.d.ts +0 -0
  128. /package/dist/types/{src/plugins → plugins}/oauth/oauthPlugin.d.ts +0 -0
  129. /package/dist/types/{src/plugins → plugins}/oauth/types.d.ts +0 -0
  130. /package/dist/types/{src/plugins → plugins}/web3/index.d.ts +0 -0
  131. /package/dist/types/{src/plugins → plugins}/web3/types.d.ts +0 -0
  132. /package/dist/types/{src/plugins → plugins}/web3/web3Connector.d.ts +0 -0
  133. /package/dist/types/{src/plugins → plugins}/web3/web3ConnectorPlugin.d.ts +0 -0
  134. /package/dist/types/{src/plugins → plugins}/web3/web3Signer.d.ts +0 -0
  135. /package/dist/types/{src/plugins → plugins}/webauthn/index.d.ts +0 -0
  136. /package/dist/types/{src/plugins → plugins}/webauthn/types.d.ts +0 -0
  137. /package/dist/types/{src/plugins → plugins}/webauthn/webauthn.d.ts +0 -0
  138. /package/dist/types/{src/plugins → plugins}/webauthn/webauthnPlugin.d.ts +0 -0
  139. /package/dist/types/{src/plugins → plugins}/webauthn/webauthnSigner.d.ts +0 -0
  140. /package/dist/{src/types → types}/shogun.js +0 -0
  141. /package/dist/types/{src/storage → storage}/storage.d.ts +0 -0
  142. /package/dist/types/{src/types → types}/events.d.ts +0 -0
  143. /package/dist/types/{src/types → types}/shogun.d.ts +0 -0
  144. /package/dist/types/{src/utils → utils}/errorHandler.d.ts +0 -0
  145. /package/dist/types/{src/utils → utils}/eventEmitter.d.ts +0 -0
  146. /package/dist/types/{src/utils → utils}/validation.d.ts +0 -0
  147. /package/dist/{src/utils → utils}/errorHandler.js +0 -0
  148. /package/dist/{src/utils → utils}/eventEmitter.js +0 -0
  149. /package/dist/{src/utils → utils}/validation.js +0 -0
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env tsx
2
- /**
3
- * SHIP-00 Identity CLI Example
4
- *
5
- * Interactive CLI demonstrating SHIP-00 identity and authentication
6
- *
7
- * Usage:
8
- * yarn identity <username> <password>
9
- *
10
- * Features:
11
- * - User signup and login
12
- * - Login with keypair (multi-device)
13
- * - Public key publication
14
- * - User discovery and lookup
15
- * - Key pair export/import
16
- * - Ethereum address derivation
17
- */
18
- declare class IdentityCLI {
19
- private identity;
20
- private rl;
21
- private username;
22
- private running;
23
- constructor();
24
- login(username: string, password: string): Promise<boolean>;
25
- loginWithKeypair(): Promise<void>;
26
- exportKeypair(): Promise<void>;
27
- showCurrentUser(): Promise<void>;
28
- showPublicKey(): Promise<void>;
29
- lookupUser(): Promise<void>;
30
- lookupByPublicKey(): Promise<void>;
31
- showMenu(): Promise<void>;
32
- deriveAddress(): Promise<void>;
33
- publishPublicKey(): Promise<void>;
34
- logout(): Promise<void>;
35
- private printHeader;
36
- prompt(question: string): Promise<string>;
37
- cleanup(): void;
38
- start(username?: string, password?: string): Promise<void>;
39
- }
40
- export { IdentityCLI };
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Shogun Chat - CLI Interface
4
- *
5
- * End-to-end encrypted decentralized chat
6
- * Simple and functional CLI interface
7
- */
8
- export declare class MessengerCLI {
9
- private identity;
10
- private messaging;
11
- private rl;
12
- private currentUser;
13
- private recipient;
14
- private derivedAddress;
15
- private isAuthenticated;
16
- private channelToken;
17
- private currentChannel;
18
- constructor();
19
- private setupHandlers;
20
- private withTimeout;
21
- login(username: string, password: string): Promise<boolean>;
22
- private sendMessage;
23
- private onMessageReceived;
24
- private onChannelMessageReceived;
25
- private exportKeyPair;
26
- private importKeyPair;
27
- private loginWithPair;
28
- private wipeAllMessages;
29
- private handleCommand;
30
- private joinChannel;
31
- private leaveChannel;
32
- private showHelp;
33
- private showStatus;
34
- private showHeader;
35
- private updatePrompt;
36
- start(): Promise<void>;
37
- }
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env tsx
2
- /**
3
- * SHIP-03 Stealth Address CLI Example
4
- *
5
- * Demonstrates dual-key stealth addresses with Fluidkey integration
6
- *
7
- * Usage:
8
- * yarn stealth <username> <password>
9
- */
10
- declare class StealthCLI {
11
- private identity;
12
- private eth;
13
- private stealth;
14
- private rl;
15
- constructor();
16
- login(username: string, password: string): Promise<boolean>;
17
- register(username: string, password: string): Promise<boolean>;
18
- showStealthKeys(): Promise<void>;
19
- generateStealthAddress(): Promise<void>;
20
- openStealthAddress(): Promise<void>;
21
- batchGenerateStealthAddresses(): Promise<void>;
22
- scanForStealthPayments(): Promise<void>;
23
- showMenu(): Promise<void>;
24
- lookupUserKeys(): Promise<void>;
25
- exportKeys(): Promise<void>;
26
- publishKeys(): Promise<void>;
27
- showWalletInfo(): Promise<void>;
28
- prompt(question: string): Promise<string>;
29
- close(): void;
30
- }
31
- export { StealthCLI };
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env tsx
2
- /**
3
- * SHIP-05 Storage CLI Example
4
- *
5
- * Interactive CLI demonstrating SHIP-05 encrypted file storage on IPFS
6
- *
7
- * Usage:
8
- * yarn storage <username> <password>
9
- *
10
- * Features:
11
- * - Encrypted file upload to IPFS (uses SEA from SHIP-00)
12
- * - Multiple IPFS services (Pinata, IPFS Client, Custom Gateway)
13
- * - File download and decryption
14
- * - File metadata management
15
- * - Storage statistics
16
- */
17
- declare class StorageCLI {
18
- private identity;
19
- private storage;
20
- private rl;
21
- private username;
22
- private running;
23
- private ipfsService;
24
- private ipfsConfig;
25
- private configFile;
26
- constructor();
27
- login(username: string, password: string): Promise<boolean>;
28
- configureIPFS(): Promise<void>;
29
- configurePinata(): Promise<void>;
30
- configureIPFSClient(): Promise<void>;
31
- configureCustomGateway(): Promise<void>;
32
- saveIPFSConfig(): void;
33
- loadIPFSConfig(): boolean;
34
- uploadFile(): Promise<void>;
35
- downloadFile(): Promise<void>;
36
- viewUserFiles(): Promise<void>;
37
- deleteFile(): Promise<void>;
38
- showStorageStats(): Promise<void>;
39
- testEncryption(): Promise<void>;
40
- showMenu(): Promise<void>;
41
- reconfigureIPFS(): Promise<void>;
42
- logout(): Promise<void>;
43
- private printHeader;
44
- prompt(question: string): Promise<string>;
45
- cleanup(): void;
46
- start(username?: string, password?: string): Promise<void>;
47
- }
48
- export { StorageCLI };
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env tsx
2
- /**
3
- * SHIP-07 Secure Vault CLI Example
4
- *
5
- * Test secure encrypted vault with SHIP-07
6
- *
7
- * Usage:
8
- * tsx ship/examples/vault-cli.ts <username> <password>
9
- *
10
- * Example:
11
- * tsx ship/examples/vault-cli.ts alice pass123
12
- */
13
- export {};
@@ -1,131 +0,0 @@
1
- /**
2
- * SHIP-02 Example: Ethereum Wallet CLI
3
- *
4
- * Interactive CLI demonstrating SHIP-02 HD wallet derivation
5
- * Built on top of SHIP-00 identity
6
- *
7
- * Usage:
8
- * yarn wallet <username> <password>
9
- *
10
- * Features:
11
- * - Derive Ethereum addresses from identity (no mnemonics!)
12
- * - BIP-44 HD wallet support
13
- * - Sign transactions and messages
14
- * - Export/import address book
15
- * - Gun persistence
16
- *
17
- * Note: For stealth addresses, use `yarn stealth` (SHIP-03)
18
- */
19
- declare class WalletCLI {
20
- private identity;
21
- private wallet;
22
- private rl;
23
- private username;
24
- private running;
25
- constructor(username: string, password: string);
26
- /**
27
- * Start the CLI
28
- */
29
- start(password: string): Promise<void>;
30
- /**
31
- * Authenticate user with SHIP-00
32
- */
33
- private authenticate;
34
- /**
35
- * Initialize SHIP-02 wallet
36
- */
37
- private initializeWallet;
38
- /**
39
- * Main menu loop
40
- */
41
- private mainMenu;
42
- /**
43
- * View all addresses
44
- */
45
- private viewAddresses;
46
- /**
47
- * Derive new address with custom index
48
- */
49
- private deriveNewAddress;
50
- /**
51
- * Derive BIP-44 address with custom parameters
52
- */
53
- private deriveBIP44Address;
54
- /**
55
- * Derive multiple addresses at once
56
- */
57
- private deriveMultipleAddresses;
58
- /**
59
- * Import address book
60
- */
61
- private importAddressBook;
62
- /**
63
- * Export encrypted wallet data
64
- */
65
- private exportWalletData;
66
- /**
67
- * Sync with Gun database
68
- */
69
- private syncWithGun;
70
- /**
71
- * View/Export mnemonic
72
- */
73
- private viewExportMnemonic;
74
- /**
75
- * Verify addresses match MetaMask
76
- */
77
- private verifyMetaMaskAddresses;
78
- /**
79
- * Sign message
80
- */
81
- private signMessage;
82
- /**
83
- * Sign transaction
84
- */
85
- private signTransaction;
86
- /**
87
- * Export address book
88
- */
89
- private exportAddressBook;
90
- /**
91
- * View master public key
92
- */
93
- private viewMasterPublicKey;
94
- /**
95
- * Create wallet using frontend API
96
- */
97
- private createWalletFrontendAPI;
98
- /**
99
- * Load all wallets using frontend API
100
- */
101
- private loadAllWallets;
102
- /**
103
- * View main wallet (derived from Gun keys)
104
- */
105
- private viewMainWallet;
106
- /**
107
- * Export all user data (complete backup)
108
- */
109
- private exportAllUserData;
110
- /**
111
- * Set RPC provider URL
112
- */
113
- private setRpcProvider;
114
- /**
115
- * Send transaction via RPC
116
- */
117
- private sendTransactionRPC;
118
- /**
119
- * Print header
120
- */
121
- private printHeader;
122
- /**
123
- * Prompt user for input
124
- */
125
- private prompt;
126
- /**
127
- * Cleanup and exit
128
- */
129
- private cleanup;
130
- }
131
- export { WalletCLI };
@@ -1,113 +0,0 @@
1
- /**
2
- * SHIP-00: Decentralized Identity & Authentication Implementation
3
- *
4
- * Foundation layer for the Shogun ecosystem.
5
- * Provides identity and authentication services for all other SHIPs.
6
- *
7
- * Based on:
8
- * - Shogun Core API (see ../API.md)
9
- * - GunDB for P2P identity storage
10
- * - SEA for cryptographic operations
11
- * - shogun-derive for address derivation
12
- *
13
- * Features:
14
- * ✅ Username/password authentication
15
- * ✅ SEA key pair management
16
- * ✅ Public key publication and discovery
17
- * ✅ User registry and lookup
18
- * ✅ Blockchain address derivation
19
- * ✅ Multi-device support (export/import)
20
- */
21
- import type { ISHIP_00, SignupResult, AuthResult, OperationResult, SEAPair, UserIdentity, UserData, PublicKeyData } from "../interfaces/ISHIP_00";
22
- import { ShogunCoreConfig } from "../../src/interfaces/shogun";
23
- /**
24
- * SHIP-00 Reference Implementation
25
- *
26
- * Uses Shogun Core as the underlying implementation.
27
- * This class wraps Shogun Core APIs to provide the ISHIP_00 standard interface.
28
- */
29
- declare class SHIP_00 implements ISHIP_00 {
30
- private shogun;
31
- static readonly NODES: {
32
- readonly USERS: "users";
33
- readonly PUBLIC_KEYS: "publicKeys";
34
- readonly REGISTRY: "registry";
35
- };
36
- constructor(shogunConfig: ShogunCoreConfig);
37
- /**
38
- * Register new user
39
- * Uses Shogun Core signUp method (see API.md)
40
- */
41
- signup(username: string, password: string): Promise<SignupResult>;
42
- /**
43
- * Login with username and password
44
- * Uses Shogun Core login method (see API.md)
45
- */
46
- login(username: string, password: string): Promise<AuthResult>;
47
- /**
48
- * Login with SEA Key Pair
49
- * Uses Shogun Core loginWithPair method (see API.md)
50
- */
51
- loginWithPair(seaPair: SEAPair): Promise<AuthResult>;
52
- /**
53
- * Logout
54
- * Uses Shogun Core logout method (see API.md line 325)
55
- */
56
- logout(): void;
57
- /**
58
- * Check if user is logged in
59
- * Uses Shogun Core isLoggedIn method (see API.md line 326)
60
- */
61
- isLoggedIn(): boolean;
62
- /**
63
- * Get underlying ShogunCore instance
64
- * Provides access to Gun, SEA, and crypto utilities
65
- */
66
- getShogun(): any;
67
- /**
68
- * Publish public key on GunDB
69
- * Makes user's public key discoverable by others
70
- */
71
- publishPublicKey(): Promise<OperationResult>;
72
- /**
73
- * Export current user's SEA key pair
74
- * For backup and multi-device usage
75
- * Uses Shogun Core exportPair method (see API.md line 354)
76
- */
77
- exportKeyPair(): SEAPair | null;
78
- /**
79
- * Get current user's key pair
80
- * Alias for exportKeyPair()
81
- */
82
- getKeyPair(): SEAPair | null;
83
- /**
84
- * Get user information by username
85
- * Uses Shogun Core getUserByAlias method (see API.md line 1141-1148)
86
- */
87
- getUserByAlias(username: string): Promise<UserData | null>;
88
- /**
89
- * Get user information by public key
90
- * Uses Shogun Core getUserDataByPub method (see API.md line 1150-1152)
91
- */
92
- getUserByPub(userPub: string): Promise<UserData | null>;
93
- /**
94
- * Check if user exists
95
- * Uses SimpleGunAPI userExists method (see API.md line 188)
96
- */
97
- userExists(username: string): Promise<boolean>;
98
- /**
99
- * Get public key by username
100
- */
101
- getPublicKey(username: string): Promise<PublicKeyData | null>;
102
- /**
103
- * Get current authenticated user info
104
- * Uses Shogun Core getCurrentUser method (see API.md line 429)
105
- */
106
- getCurrentUser(): UserIdentity | null;
107
- /**
108
- * Derive Ethereum address from SEA keypair
109
- * Uses shogun-derive package for deterministic derivation
110
- */
111
- deriveEthereumAddress(publicKey?: string): Promise<string>;
112
- }
113
- export { SHIP_00 };
@@ -1,80 +0,0 @@
1
- /**
2
- * SHIP-01: Decentralized Encrypted Messaging Implementation
3
- *
4
- * Messaggistica decentralizzata E2E che dipende da SHIP-00 per l'identità.
5
- *
6
- * Dipendenze:
7
- * - SHIP-00 (Identity & Authentication) - per gestione utenti e chiavi
8
- * - GunDB - per storage decentralizzato P2P
9
- * - SEA - per crittografia ECDH + AES-GCM
10
- *
11
- * Vantaggi dell'architettura modulare:
12
- * ✅ Separazione delle responsabilità (Identity vs Messaging)
13
- * ✅ Riusabilità di SHIP-00 in altre applicazioni
14
- * ✅ Testing più semplice e isolato
15
- * ✅ Manutenibilità migliorata
16
- */
17
- import type { ISHIP_00 } from "../interfaces/ISHIP_00";
18
- import type { ISHIP_01, SendMessageResult, DecryptedMessage, MessageHistoryEntry } from "../interfaces/ISHIP_01";
19
- /**
20
- * SHIP-01 Reference Implementation
21
- *
22
- * Questa implementazione dipende da ISHIP_00 per tutte le operazioni di identità.
23
- * Si concentra esclusivamente sulla logica di messaggistica.
24
- */
25
- declare class SHIP_01 implements ISHIP_01 {
26
- private identity;
27
- static readonly NODES: {
28
- readonly MESSAGES: "messages";
29
- readonly TOKEN_MESSAGES: "token_messages";
30
- };
31
- /**
32
- * Constructor
33
- * @param identity ISHIP_00 instance for identity operations
34
- */
35
- constructor(identity: ISHIP_00);
36
- /**
37
- * Get identity provider
38
- */
39
- getIdentity(): ISHIP_00;
40
- /**
41
- * Send encrypted message to a user
42
- * Uses identity provider (SHIP-00) to get keys
43
- */
44
- sendMessage(recipientUsername: string, message: string): Promise<SendMessageResult>;
45
- /**
46
- * Listen for incoming encrypted messages
47
- * Uses identity provider (SHIP-00) to decrypt messages
48
- */
49
- listenForMessages(onMessage: (message: DecryptedMessage) => void): Promise<void>;
50
- /**
51
- * Get message history with a user
52
- * Uses identity provider (SHIP-00) to decrypt messages
53
- */
54
- getMessageHistory(withUsername: string): Promise<MessageHistoryEntry[]>;
55
- /**
56
- * Decrypt a message using ECDH
57
- * Uses identity provider (SHIP-00) to get keys
58
- */
59
- private decryptMessage;
60
- /**
61
- * Get public key by pub key
62
- * Uses identity provider internally
63
- */
64
- private getPublicKeyByPub;
65
- /**
66
- * Generate unique message ID
67
- */
68
- private generateMessageId;
69
- /**
70
- * Send message encrypted with shared token/password
71
- * Useful for group chats, channels, broadcast messages
72
- */
73
- sendMessageWithToken(token: string, message: string, channel?: string): Promise<SendMessageResult>;
74
- /**
75
- * Listen for token-encrypted messages
76
- * Automatically decrypts with provided token
77
- */
78
- listenForTokenMessages(token: string, onMessage: (message: any) => void, channel?: string): Promise<void>;
79
- }
80
- export { SHIP_01 };