@cryptforge/client-vue 0.1.0 → 0.2.0

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/README.md CHANGED
@@ -0,0 +1,633 @@
1
+ # @cryptforge/client-vue
2
+
3
+ Vue 3 component library for building CryptForge cryptocurrency wallet applications. Provides pre-built, customizable components for authentication, wallet management, device synchronization, and onboarding flows.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @cryptforge/client-vue vue@^3.0.0
9
+ # or
10
+ pnpm add @cryptforge/client-vue vue@^3.0.0
11
+ # or
12
+ yarn add @cryptforge/client-vue vue@^3.0.0
13
+ ```
14
+
15
+ **Note**: Vue 3 is a peer dependency and must be installed separately.
16
+
17
+ ## Quick Start
18
+
19
+ ```typescript
20
+ import { createApp } from 'vue';
21
+ import App from './App.vue';
22
+
23
+ // Import CryptForge Vue plugin and styles
24
+ import CryptforgeVue from '@cryptforge/client-vue';
25
+ import '@cryptforge/client-vue/dist/style.css';
26
+
27
+ const app = createApp(App);
28
+ app.use(CryptforgeVue);
29
+ app.mount('#app');
30
+ ```
31
+
32
+ ## Features
33
+
34
+ - 🔐 **Authentication Components** - Complete authentication flows (create, restore, unlock)
35
+ - 💼 **Wallet Components** - Send, receive, transaction history, balance display
36
+ - 🔄 **Sync Components** - Device-to-device wallet synchronization
37
+ - 🚀 **Onboarding Components** - User onboarding and walkthrough screens
38
+ - ⚙️ **Settings Components** - Identity management, wallet settings
39
+ - 🎨 **Customizable** - Built with CSS modules for easy theming
40
+ - 📱 **Responsive** - Mobile-first design
41
+ - 🎯 **Type-Safe** - Full TypeScript support
42
+
43
+ ## Components
44
+
45
+ ### Authentication Components
46
+
47
+ #### `<Authentication />`
48
+ Main authentication orchestrator component that manages the complete auth flow.
49
+
50
+ ```vue
51
+ <template>
52
+ <Authentication />
53
+ </template>
54
+
55
+ <script setup lang="ts">
56
+ import { Authentication } from '@cryptforge/client-vue';
57
+ </script>
58
+ ```
59
+
60
+ #### `<GenerateSeed />`
61
+ Component for generating and displaying a new BIP39 mnemonic seed phrase.
62
+
63
+ ```vue
64
+ <template>
65
+ <GenerateSeed @seed-generated="handleSeedGenerated" />
66
+ </template>
67
+
68
+ <script setup lang="ts">
69
+ import { GenerateSeed } from '@cryptforge/client-vue';
70
+
71
+ const handleSeedGenerated = (seed: string) => {
72
+ console.log('Seed generated:', seed);
73
+ };
74
+ </script>
75
+ ```
76
+
77
+ #### `<VerifySeed />`
78
+ Component for verifying user has backed up their seed phrase.
79
+
80
+ ```vue
81
+ <template>
82
+ <VerifySeed
83
+ :seed="userSeed"
84
+ @verified="handleVerified"
85
+ />
86
+ </template>
87
+ ```
88
+
89
+ #### `<RestoreSeed />`
90
+ Component for restoring a wallet from an existing seed phrase.
91
+
92
+ ```vue
93
+ <template>
94
+ <RestoreSeed @seed-restored="handleRestored" />
95
+ </template>
96
+ ```
97
+
98
+ #### `<CreatePassword />`
99
+ Component for creating a new wallet password.
100
+
101
+ ```vue
102
+ <template>
103
+ <CreatePassword
104
+ @password-created="handlePasswordCreated"
105
+ />
106
+ </template>
107
+ ```
108
+
109
+ #### `<EnterPassword />`
110
+ Component for unlocking an existing wallet.
111
+
112
+ ```vue
113
+ <template>
114
+ <EnterPassword
115
+ @password-entered="handleUnlock"
116
+ />
117
+ </template>
118
+ ```
119
+
120
+ #### `<NameKeystore />`
121
+ Component for naming a new wallet/keystore.
122
+
123
+ ```vue
124
+ <template>
125
+ <NameKeystore
126
+ @name-set="handleNameSet"
127
+ />
128
+ </template>
129
+ ```
130
+
131
+ #### `<SelectKeystore />`
132
+ Component for selecting from multiple wallets/keystores.
133
+
134
+ ```vue
135
+ <template>
136
+ <SelectKeystore
137
+ @keystore-selected="handleSelection"
138
+ />
139
+ </template>
140
+ ```
141
+
142
+ ### Wallet Components
143
+
144
+ #### `<Wallet />`
145
+ Main wallet component that displays balance and transaction history.
146
+
147
+ ```vue
148
+ <template>
149
+ <Wallet />
150
+ </template>
151
+
152
+ <script setup lang="ts">
153
+ import { Wallet } from '@cryptforge/client-vue';
154
+ </script>
155
+ ```
156
+
157
+ #### `<WalletOverview />`
158
+ Compact wallet overview showing balance and quick actions.
159
+
160
+ ```vue
161
+ <template>
162
+ <WalletOverview />
163
+ </template>
164
+ ```
165
+
166
+ #### `<SendCrypto />`
167
+ Component for sending cryptocurrency.
168
+
169
+ ```vue
170
+ <template>
171
+ <SendCrypto
172
+ @transaction-sent="handleSent"
173
+ />
174
+ </template>
175
+ ```
176
+
177
+ #### `<ReceiveCrypto />`
178
+ Component for receiving cryptocurrency (displays QR code and address).
179
+
180
+ ```vue
181
+ <template>
182
+ <ReceiveCrypto />
183
+ </template>
184
+ ```
185
+
186
+ #### `<Transactions />`
187
+ Transaction history component.
188
+
189
+ ```vue
190
+ <template>
191
+ <Transactions />
192
+ </template>
193
+ ```
194
+
195
+ #### `<Confirm />`
196
+ Transaction confirmation component.
197
+
198
+ ```vue
199
+ <template>
200
+ <Confirm
201
+ :transaction="txData"
202
+ @confirmed="handleConfirm"
203
+ @cancelled="handleCancel"
204
+ />
205
+ </template>
206
+ ```
207
+
208
+ #### `<SendSuccess />`
209
+ Success screen after sending transaction.
210
+
211
+ ```vue
212
+ <template>
213
+ <SendSuccess
214
+ :transaction-hash="txHash"
215
+ />
216
+ </template>
217
+ ```
218
+
219
+ ### Sync Components
220
+
221
+ Components for synchronizing wallets across devices using peer-to-peer connections.
222
+
223
+ #### Admin (Primary Device)
224
+
225
+ ##### `<SyncSetupAdmin />`
226
+ Entry point for device admin sync setup.
227
+
228
+ ##### `<AdminEnableBroadcast />`
229
+ Enable broadcasting for device discovery.
230
+
231
+ ##### `<AdminBroadcastPIN />`
232
+ Display PIN code for client device.
233
+
234
+ ##### `<AdminBroadcastKey />`
235
+ Display QR code with connection key.
236
+
237
+ ##### `<AdminConnect />`
238
+ Waiting for client connection.
239
+
240
+ ##### `<AdminDeviceFound />`
241
+ Client device discovered.
242
+
243
+ ##### `<AdminFinishSetup />`
244
+ Sync completion screen.
245
+
246
+ #### Client (Secondary Device)
247
+
248
+ ##### `<SyncSetupClient />`
249
+ Entry point for client sync setup.
250
+
251
+ ##### `<ClientConnect />`
252
+ Connect to admin device.
253
+
254
+ ##### `<ClientEnterKey />`
255
+ Scan QR code or enter connection key.
256
+
257
+ ##### `<ClientEnterPIN />`
258
+ Enter PIN from admin device.
259
+
260
+ ##### `<ClientError />`
261
+ Error handling for sync issues.
262
+
263
+ #### Shared
264
+
265
+ ##### `<SyncProgressIndicator />`
266
+ Progress indicator for sync operations.
267
+
268
+ ```vue
269
+ <template>
270
+ <SyncProgressIndicator
271
+ :progress="syncProgress"
272
+ :status="syncStatus"
273
+ />
274
+ </template>
275
+ ```
276
+
277
+ ### Onboarding Components
278
+
279
+ #### `<StartScreen />`
280
+ Initial welcome/start screen.
281
+
282
+ ```vue
283
+ <template>
284
+ <StartScreen @get-started="handleStart" />
285
+ </template>
286
+ ```
287
+
288
+ #### `<Walkthrough />`
289
+ Onboarding walkthrough with multiple slides.
290
+
291
+ ```vue
292
+ <template>
293
+ <Walkthrough
294
+ @complete="handleWalkthroughComplete"
295
+ />
296
+ </template>
297
+ ```
298
+
299
+ #### `<Slide />`
300
+ Individual slide component for walkthrough.
301
+
302
+ ```vue
303
+ <template>
304
+ <Slide
305
+ title="Welcome"
306
+ description="Get started with CryptForge"
307
+ :image="slideImage"
308
+ />
309
+ </template>
310
+ ```
311
+
312
+ ### Setup Components
313
+
314
+ #### `<CryptforgeApp />`
315
+ Root application wrapper component.
316
+
317
+ ```vue
318
+ <template>
319
+ <CryptforgeApp>
320
+ <!-- Your app content -->
321
+ </CryptforgeApp>
322
+ </template>
323
+ ```
324
+
325
+ #### `<SetupComplete />`
326
+ Setup completion screen.
327
+
328
+ ```vue
329
+ <template>
330
+ <SetupComplete @continue="handleContinue" />
331
+ </template>
332
+ ```
333
+
334
+ ### Settings Components
335
+
336
+ #### `<WalletButton />`
337
+ Wallet selector button for settings.
338
+
339
+ ```vue
340
+ <template>
341
+ <WalletButton />
342
+ </template>
343
+ ```
344
+
345
+ ## Composables
346
+
347
+ ### `useAuth()`
348
+
349
+ Authentication state and operations.
350
+
351
+ ```typescript
352
+ import { useAuth } from '@cryptforge/client-vue';
353
+
354
+ const {
355
+ // State
356
+ isUnlocked,
357
+ currentIdentity,
358
+ currentAddress,
359
+ currentChain,
360
+
361
+ // Methods
362
+ createIdentity,
363
+ unlock,
364
+ lock,
365
+ switchChain,
366
+ generateMnemonic,
367
+ } = useAuth();
368
+ ```
369
+
370
+ ### `useWallet()`
371
+
372
+ Wallet operations and balance management.
373
+
374
+ ```typescript
375
+ import { useWallet } from '@cryptforge/client-vue';
376
+
377
+ const {
378
+ // State
379
+ balance,
380
+ transactions,
381
+ isLoading,
382
+
383
+ // Methods
384
+ sendTransaction,
385
+ getBalance,
386
+ refreshTransactions,
387
+ } = useWallet();
388
+ ```
389
+
390
+ ### `useSyncAdmin()`
391
+
392
+ Admin device sync operations.
393
+
394
+ ```typescript
395
+ import { useSyncAdmin } from '@cryptforge/client-vue';
396
+
397
+ const {
398
+ // State
399
+ broadcastId,
400
+ connectionKey,
401
+ connectedClients,
402
+
403
+ // Methods
404
+ enableBroadcast,
405
+ waitForClient,
406
+ sendData,
407
+ } = useSyncAdmin();
408
+ ```
409
+
410
+ ### `useSyncClient()`
411
+
412
+ Client device sync operations.
413
+
414
+ ```typescript
415
+ import { useSyncClient } from '@cryptforge/client-vue';
416
+
417
+ const {
418
+ // State
419
+ isConnected,
420
+ syncProgress,
421
+
422
+ // Methods
423
+ connectToAdmin,
424
+ verifyPIN,
425
+ receiveData,
426
+ } = useSyncClient();
427
+ ```
428
+
429
+ ### `useSetup()`
430
+
431
+ Application setup state.
432
+
433
+ ```typescript
434
+ import { useSetup } from '@cryptforge/client-vue';
435
+
436
+ const {
437
+ setupComplete,
438
+ currentStep,
439
+ completeSetup,
440
+ } = useSetup();
441
+ ```
442
+
443
+ ### `useSettings()`
444
+
445
+ Application settings management.
446
+
447
+ ```typescript
448
+ import { useSettings } from '@cryptforge/client-vue';
449
+
450
+ const {
451
+ settings,
452
+ updateSettings,
453
+ resetSettings,
454
+ } = useSettings();
455
+ ```
456
+
457
+ ### `useTheme()`
458
+
459
+ Theme management.
460
+
461
+ ```typescript
462
+ import { useTheme } from '@cryptforge/client-vue';
463
+
464
+ const {
465
+ theme,
466
+ setTheme,
467
+ toggleTheme,
468
+ } = useTheme();
469
+ ```
470
+
471
+ ### `useWalkthrough()`
472
+
473
+ Onboarding walkthrough state.
474
+
475
+ ```typescript
476
+ import { useWalkthrough } from '@cryptforge/client-vue';
477
+
478
+ const {
479
+ currentSlide,
480
+ totalSlides,
481
+ nextSlide,
482
+ previousSlide,
483
+ skipWalkthrough,
484
+ } = useWalkthrough();
485
+ ```
486
+
487
+ ### `useCryptForgeClient()`
488
+
489
+ Low-level CryptForge client access.
490
+
491
+ ```typescript
492
+ import { useCryptForgeClient } from '@cryptforge/client-vue';
493
+
494
+ const { client } = useCryptForgeClient();
495
+ ```
496
+
497
+ ### `useNetworkPresenceClient()`
498
+
499
+ Network presence and device discovery.
500
+
501
+ ```typescript
502
+ import { useNetworkPresenceClient } from '@cryptforge/client-vue';
503
+
504
+ const {
505
+ isOnline,
506
+ nearbyDevices,
507
+ broadcast,
508
+ discover,
509
+ } = useNetworkPresenceClient();
510
+ ```
511
+
512
+ ## Complete Example
513
+
514
+ ```vue
515
+ <template>
516
+ <div :class="$style.app">
517
+ <CryptforgeApp>
518
+ <!-- Show auth if not unlocked -->
519
+ <Authentication v-if="!isUnlocked" />
520
+
521
+ <!-- Show wallet if unlocked -->
522
+ <Wallet v-else>
523
+ <template #header>
524
+ <WalletButton />
525
+ </template>
526
+ </Wallet>
527
+ </CryptforgeApp>
528
+ </div>
529
+ </template>
530
+
531
+ <script setup lang="ts">
532
+ import {
533
+ CryptforgeApp,
534
+ Authentication,
535
+ Wallet,
536
+ WalletButton,
537
+ useAuth,
538
+ } from '@cryptforge/client-vue';
539
+ import '@cryptforge/client-vue/dist/style.css';
540
+
541
+ const { isUnlocked } = useAuth();
542
+ </script>
543
+
544
+ <style module>
545
+ .app {
546
+ width: 100%;
547
+ height: 100vh;
548
+ }
549
+ </style>
550
+ ```
551
+
552
+ ## Styling and Theming
553
+
554
+ All components use CSS modules for scoped styling. You can customize the look by:
555
+
556
+ ### 1. CSS Variables
557
+
558
+ ```css
559
+ :root {
560
+ --cryptforge-primary-color: #3b82f6;
561
+ --cryptforge-secondary-color: #8b5cf6;
562
+ --cryptforge-background: #ffffff;
563
+ --cryptforge-text: #1f2937;
564
+ --cryptforge-border: #e5e7eb;
565
+ --cryptforge-radius: 8px;
566
+ }
567
+ ```
568
+
569
+ ### 2. Override Component Styles
570
+
571
+ ```vue
572
+ <style>
573
+ /* Override specific component styles */
574
+ .wallet-container {
575
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
576
+ }
577
+ </style>
578
+ ```
579
+
580
+ ### 3. Use Theme Composable
581
+
582
+ ```typescript
583
+ import { useTheme } from '@cryptforge/client-vue';
584
+
585
+ const { setTheme } = useTheme();
586
+
587
+ // Apply custom theme
588
+ setTheme({
589
+ primaryColor: '#3b82f6',
590
+ backgroundColor: '#ffffff',
591
+ textColor: '#1f2937',
592
+ });
593
+ ```
594
+
595
+ ## TypeScript Support
596
+
597
+ All components and composables are fully typed:
598
+
599
+ ```typescript
600
+ import type {
601
+ AuthState,
602
+ WalletState,
603
+ Transaction,
604
+ } from '@cryptforge/client-vue';
605
+
606
+ const handleTransaction = (tx: Transaction) => {
607
+ console.log('Transaction:', tx.hash);
608
+ };
609
+ ```
610
+
611
+ ## Browser Compatibility
612
+
613
+ - ✅ Chrome, Firefox, Safari, Edge (latest 2 versions)
614
+ - ✅ Mobile browsers (iOS Safari, Chrome Mobile)
615
+ - ✅ Electron (renderer process)
616
+
617
+ ## Related Packages
618
+
619
+ - **[@cryptforge/auth](../auth)** - Core authentication functionality
620
+ - **[@cryptforge/core](../core)** - Core types and interfaces
621
+ - **[@cryptforge/key-exchange](../key-exchange)** - Device sync functionality
622
+ - **[@cryptforge/blockchain-evm](../blockchain-evm)** - EVM blockchain support
623
+ - **[@cryptforge/blockchain-btc](../blockchain-btc)** - Bitcoin support
624
+
625
+ ## Examples
626
+
627
+ See complete examples in:
628
+ - `examples/vue-web-example/` - Web application example
629
+ - `examples/vue-electron-example/` - Electron application example
630
+
631
+ ## License
632
+
633
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"SelectKeystore.vue.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SelectKeystore.vue"],"names":[],"mappings":"AAIA;;AAwUA,wBAKG"}
1
+ {"version":3,"file":"SelectKeystore.vue.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SelectKeystore.vue"],"names":[],"mappings":"AAIA;;AA2TA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerifySeed.vue.d.ts","sourceRoot":"","sources":["../../../src/components/auth/VerifySeed.vue"],"names":[],"mappings":"AAIA;;AA8YA,wBAKG"}
1
+ {"version":3,"file":"VerifySeed.vue.d.ts","sourceRoot":"","sources":["../../../src/components/auth/VerifySeed.vue"],"names":[],"mappings":"AAIA;;AAqaA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Slide.vue.d.ts","sourceRoot":"","sources":["../../../src/components/onboard/Slide.vue"],"names":[],"mappings":"AAIA;AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;;;cAoQ/B,MAAM,eAAe;;;;cAInB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;cAJtB,MAAM,eAAe;;;;cAInB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;AAX1C,wBAeG"}
1
+ {"version":3,"file":"Slide.vue.d.ts","sourceRoot":"","sources":["../../../src/components/onboard/Slide.vue"],"names":[],"mappings":"AAIA;AAEA,OAAO,EAAE,QAAQ,EAA4B,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;;;cA8T/B,MAAM,eAAe;;;;cAInB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;cAJtB,MAAM,eAAe;;;;cAInB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;AAX1C,wBAeG"}
@@ -1 +1 @@
1
- {"version":3,"file":"StartScreen.vue.d.ts","sourceRoot":"","sources":["../../../src/components/onboard/StartScreen.vue"],"names":[],"mappings":"AAIA;AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;cAwNT,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;;;cAApB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;AAnB1C,wBAuBG"}
1
+ {"version":3,"file":"StartScreen.vue.d.ts","sourceRoot":"","sources":["../../../src/components/onboard/StartScreen.vue"],"names":[],"mappings":"AAIA;AAEA,OAAO,EAAE,QAAQ,EAA4B,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;cAkRnC,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;;;cAApB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;AAnB1C,wBAuBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/settings/IdentityView.vue"],"names":[],"mappings":";AAmyBA,wBAKG"}
1
+ {"version":3,"file":"IdentityView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/settings/IdentityView.vue"],"names":[],"mappings":";AAy+BA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientConnect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sync/ClientConnect.vue"],"names":[],"mappings":"AAIA;;AAiQA,wBAKG"}
1
+ {"version":3,"file":"ClientConnect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sync/ClientConnect.vue"],"names":[],"mappings":"AAIA;;AAiPA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEnterKey.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sync/ClientEnterKey.vue"],"names":[],"mappings":"AAIA;;AAgVA,wBAKG"}
1
+ {"version":3,"file":"ClientEnterKey.vue.d.ts","sourceRoot":"","sources":["../../../src/components/sync/ClientEnterKey.vue"],"names":[],"mappings":"AAIA;;AAgUA,wBAKG"}
@@ -36,11 +36,8 @@ export declare const useAuth: () => {
36
36
  lockWallet: () => Promise<void>;
37
37
  unlockWallet: (address: string, password: string) => Promise<void>;
38
38
  finishSetup: (type: AuthType) => Promise<void>;
39
- createUserDocument: () => Promise<string>;
40
39
  seedPhrase: import('vue').Ref<string | null, string | null>;
41
40
  enterPasswordPrompt: import('vue').Ref<string | null, string | null>;
42
- deriveUserDocumentId: (path: string) => Promise<string>;
43
- deriveUserDocumentPath: () => Promise<string>;
44
41
  events: import('mitt').Emitter<AuthEvents>;
45
42
  cancelAuth: () => void;
46
43
  previousScreenName: import('vue').Ref<string | undefined, string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/composables/useAuth.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAK1D,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1C,KAAK,YAAY,GACb,mBAAmB,GACnB,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,gBAAgB,CAAC;AA6DrB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;uBAiBV,YAAY,aACR,OAAO,iBACH,OAAO;;2BAkCW,OAAO,CAAC,IAAI,CAAC;yCAKG,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;iCAI9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;yBAW9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;wBA2LvB,MAAM;2BAtLH,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;sBAoJ7B,OAAO,CAAC,IAAI,CAAC;4BAc/B,MAAM,YACL,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;wBAuBiB,QAAQ;8BA5HJ,OAAO,CAAC,MAAM,CAAC;;;iCALV,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;kCArBzB,OAAO,CAAC,MAAM,CAAC;;;;CAqMzD,CAAC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/composables/useAuth.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI1D,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1C,KAAK,YAAY,GACb,mBAAmB,GACnB,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,gBAAgB,CAAC;AA6DrB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;uBAiBV,YAAY,aACR,OAAO,iBACH,OAAO;;2BAkCW,OAAO,CAAC,IAAI,CAAC;yCAKG,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;iCAI9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;yBAW9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;wBAkEvB,MAAM;2BA7DH,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;sBA8B7B,OAAO,CAAC,IAAI,CAAC;4BAc/B,MAAM,YACL,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;wBAoBiB,QAAQ;;;;;;CA2C1C,CAAC"}
@@ -3,5 +3,5 @@ import { ClientConnectionState, CryptForgeClient } from '@cryptforge/core';
3
3
  export declare const connectionState: import('vue').Ref<ClientConnectionState, ClientConnectionState>;
4
4
  export declare const isConnected: import('vue').ComputedRef<boolean>;
5
5
  export declare const peerStates: import('vue').Ref<Record<string, ClientConnectionState>, Record<string, ClientConnectionState>>;
6
- export declare const useNetworkPresence: (cryptforgeClient: CryptForgeClient) => Promise<void>;
6
+ export declare const useNetworkPresence: (cryptforgeClient: CryptForgeClient) => Promise<() => void>;
7
7
  //# sourceMappingURL=useNetworkPresenceClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNetworkPresenceClient.d.ts","sourceRoot":"","sources":["../../src/composables/useNetworkPresenceClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,eAAO,MAAM,eAAe,iEAAwC,CAAC;AACrE,eAAO,MAAM,WAAW,oCAEvB,CAAC;AAIF,eAAO,MAAM,UAAU,iGAAiD,CAAC;AAEzE,eAAO,MAAM,kBAAkB,GAC7B,kBAAkB,gBAAgB,kBAuFnC,CAAC"}
1
+ {"version":3,"file":"useNetworkPresenceClient.d.ts","sourceRoot":"","sources":["../../src/composables/useNetworkPresenceClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIhF,eAAO,MAAM,eAAe,iEAA6C,CAAC;AAC1E,eAAO,MAAM,WAAW,oCAEvB,CAAC;AAIF,eAAO,MAAM,UAAU,iGAAiD,CAAC;AAiBzE,eAAO,MAAM,kBAAkB,GAC7B,kBAAkB,gBAAgB,wBA+InC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSettings.d.ts","sourceRoot":"","sources":["../../src/composables/useSettings.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAIzD,KAAK,gBAAgB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,CAAC;AAuCtB,eAAO,MAAM,WAAW;;;;uBAWI,gBAAgB,aAAY,OAAO;;;;;CAwD9D,CAAC"}
1
+ {"version":3,"file":"useSettings.d.ts","sourceRoot":"","sources":["../../src/composables/useSettings.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAIzD,KAAK,gBAAgB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,CAAC;AAgDtB,eAAO,MAAM,WAAW;;;;uBAkBI,gBAAgB,aAAY,OAAO;;;;;CAwD9D,CAAC"}