memorio 3.0.0 → 3.0.2

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/examples/cache.ts CHANGED
@@ -19,13 +19,13 @@ cache.set('score', 1500)
19
19
  cache.set('player', { name: 'Mario', level: 5 })
20
20
 
21
21
  // Get values
22
- console.log('Username:', cache.get('username'))
23
- console.log('Score:', cache.get('score'))
24
- console.log('Player:', cache.get('player'))
22
+ console.debug('Username:', cache.get('username'))
23
+ console.debug('Score:', cache.get('score'))
24
+ console.debug('Player:', cache.get('player'))
25
25
 
26
26
  // Direct property access
27
27
  cache.tempData = 'Hello'
28
- console.log('Temp data:', cache.tempData)
28
+ console.debug('Temp data:', cache.tempData)
29
29
 
30
30
  // ============================================
31
31
  // CACHE WITH OBJECTS
@@ -40,8 +40,8 @@ cache.set('gameState', {
40
40
  })
41
41
 
42
42
  const gameState = cache.get('gameState')
43
- console.log('Game level:', gameState?.level)
44
- console.log('Inventory:', gameState?.inventory)
43
+ console.debug('Game level:', gameState?.level)
44
+ console.debug('Inventory:', gameState?.inventory)
45
45
 
46
46
  // ============================================
47
47
  // CACHE SIZE
@@ -52,7 +52,7 @@ for (let i = 0; i < 10; i++) {
52
52
  cache.set(`item_${i}`, { id: i, data: `item-${i}` })
53
53
  }
54
54
 
55
- console.log('Cache keys:', Object.keys(cache))
55
+ console.debug('Cache keys:', Object.keys(cache))
56
56
 
57
57
  // ============================================
58
58
  // CLEANUP
@@ -67,6 +67,6 @@ cache.removeAll()
67
67
  // Or use clearAll alias
68
68
  // cache.clearAll()
69
69
 
70
- console.log('Cache after clear:', cache.get('score'))
70
+ console.debug('Cache after clear:', cache.get('score'))
71
71
 
72
- console.log('Cache example complete!')
72
+ console.debug('Cache example complete!')
package/examples/idb.ts CHANGED
@@ -14,7 +14,7 @@ import 'memorio'
14
14
  // ============================================
15
15
 
16
16
  if (!idb.db.support()) {
17
- console.log('IndexedDB not supported')
17
+ console.debug('IndexedDB not supported')
18
18
  process.exit(0)
19
19
  }
20
20
 
@@ -68,10 +68,10 @@ idb.data.set('myApp', 'products', {
68
68
  // ============================================
69
69
 
70
70
  const user1 = idb.data.get('myApp', 'users', 1)
71
- console.log('User 1:', user1)
71
+ console.debug('User 1:', user1)
72
72
 
73
73
  const product1 = idb.data.get('myApp', 'products', 1)
74
- console.log('Product 1:', product1)
74
+ console.debug('Product 1:', product1)
75
75
 
76
76
  // ============================================
77
77
  // DATABASE INFO
@@ -79,19 +79,19 @@ console.log('Product 1:', product1)
79
79
 
80
80
  // List all databases
81
81
  const databases = idb.db.list()
82
- console.log('Databases:', databases)
82
+ console.debug('Databases:', databases)
83
83
 
84
84
  // Check if database exists
85
85
  const exists = idb.db.exist('myApp')
86
- console.log('myApp exists:', exists)
86
+ console.debug('myApp exists:', exists)
87
87
 
88
88
  // Get database version
89
89
  const version = idb.db.version('myApp')
90
- console.log('myApp version:', version)
90
+ console.debug('myApp version:', version)
91
91
 
92
92
  // Get database size
93
93
  const size = idb.db.size('myApp')
94
- console.log('myApp size:', size, 'bytes')
94
+ console.debug('myApp size:', size, 'bytes')
95
95
 
96
96
  // ============================================
97
97
  // DELETE DATA
@@ -106,4 +106,4 @@ idb.data.delete('myApp', 'users', 1)
106
106
  // Delete entire database
107
107
  // idb.db.delete('myApp');
108
108
 
109
- console.log('IDB example complete!')
109
+ console.debug('IDB example complete!')
@@ -13,14 +13,14 @@ import 'memorio'
13
13
  // 1. BASIC USAGE
14
14
  // ============================================
15
15
 
16
- console.log('=== 1. Basic Node.js Usage ===')
16
+ console.debug('=== 1. Basic Node.js Usage ===')
17
17
 
18
18
  // Check platform
19
- console.log('Platform:', memorio.isNode() ? 'Node.js ✅' : 'Other')
19
+ console.debug('Platform:', memorio.isNode() ? 'Node.js ✅' : 'Other')
20
20
 
21
21
  // Check persistence (false in Node.js - uses memory fallback)
22
- console.log('Store persistent:', store.isPersistent) // false
23
- console.log('Session persistent:', session.isPersistent) // false
22
+ console.debug('Store persistent:', store.isPersistent) // false
23
+ console.debug('Session persistent:', session.isPersistent) // false
24
24
 
25
25
  // State works exactly like in browser
26
26
  state.appName = 'My Server App'
@@ -30,21 +30,21 @@ state.config = {
30
30
  env: 'production'
31
31
  }
32
32
 
33
- console.log('App name:', state.appName)
34
- console.log('Config:', state.config)
33
+ console.debug('App name:', state.appName)
34
+ console.debug('Config:', state.config)
35
35
 
36
36
  // ============================================
37
37
  // 2. CACHE (In-Memory - Perfect for Server)
38
38
  // ============================================
39
39
 
40
- console.log('\n=== 2. Cache (In-Memory) ===')
40
+ console.debug('\n=== 2. Cache (In-Memory) ===')
41
41
 
42
42
  // Cache is perfect for temporary server data
43
43
  cache.set('apiResponse', { data: 'cached value' })
44
44
  cache.set('userCount', 42)
45
45
 
46
- console.log('Cached API response:', cache.get('apiResponse'))
47
- console.log('User count:', cache.get('userCount'))
46
+ console.debug('Cached API response:', cache.get('apiResponse'))
47
+ console.debug('User count:', cache.get('userCount'))
48
48
 
49
49
  // Clear cache when needed
50
50
  cache.remove('apiResponse')
@@ -54,14 +54,14 @@ cache.remove('apiResponse')
54
54
  // 3. STORE & SESSION (Memory Fallback in Node.js)
55
55
  // ============================================
56
56
 
57
- console.log('\n=== 3. Store & Session (Memory Fallback) ===')
57
+ console.debug('\n=== 3. Store & Session (Memory Fallback) ===')
58
58
 
59
59
  // Store and session work but don't persist (no localStorage in Node.js)
60
60
  store.set('serverConfig', { debug: true })
61
61
  session.set('requestData', { path: '/api/users' })
62
62
 
63
- console.log('Server config:', store.get('serverConfig'))
64
- console.log('Request data:', session.get('requestData'))
63
+ console.debug('Server config:', store.get('serverConfig'))
64
+ console.debug('Request data:', session.get('requestData'))
65
65
 
66
66
  // ⚠️ Data is lost on process restart!
67
67
  // For persistence in Node.js, use a database
@@ -70,7 +70,7 @@ console.log('Request data:', session.get('requestData'))
70
70
  // 4. CONTEXT ISOLATION (Multi-Tenant)
71
71
  // ============================================
72
72
 
73
- console.log('\n=== 4. Context Isolation (Multi-Tenant) ===')
73
+ console.debug('\n=== 4. Context Isolation (Multi-Tenant) ===')
74
74
 
75
75
  // Create isolated contexts for different tenants/requests
76
76
  const userAContext = memorio.createContext('tenant-A')
@@ -86,19 +86,19 @@ userBContext.state.secret = 'Bob secret data'
86
86
  userBContext.cache.set('temp', 'B temp data')
87
87
 
88
88
  // Verify isolation
89
- console.log('User A name:', userAContext.state.user.name) // Alice
90
- console.log('User B name:', userBContext.state.user.name) // Bob
89
+ console.debug('User A name:', userAContext.state.user.name) // Alice
90
+ console.debug('User B name:', userBContext.state.user.name) // Bob
91
91
 
92
92
  // Global state is separate
93
- console.log('Global state:', state.appName) // 'My Server App'
94
- console.log('User A global secret:', userAContext.state.secret) // 'Alice secret data'
95
- console.log('User B global secret:', userBContext.state.secret) // 'Bob secret data'
93
+ console.debug('Global state:', state.appName) // 'My Server App'
94
+ console.debug('User A global secret:', userAContext.state.secret) // 'Alice secret data'
95
+ console.debug('User B global secret:', userBContext.state.secret) // 'Bob secret data'
96
96
 
97
97
  // ============================================
98
98
  // 5. EXPRESS.JS MIDDLEWARE EXAMPLE
99
99
  // ============================================
100
100
 
101
- console.log('\n=== 5. Express.js Middleware Example ===')
101
+ console.debug('\n=== 5. Express.js Middleware Example ===')
102
102
 
103
103
  /*
104
104
  // In a real Express app:
@@ -146,13 +146,13 @@ app.get('/api/user', (req, res) => {
146
146
  app.listen(3000)
147
147
  */
148
148
 
149
- console.log('See code comments for Express.js integration')
149
+ console.debug('See code comments for Express.js integration')
150
150
 
151
151
  // ============================================
152
152
  // 6. WEBSOCKET EXAMPLE
153
153
  // ============================================
154
154
 
155
- console.log('\n=== 6. WebSocket Example ===')
155
+ console.debug('\n=== 6. WebSocket Example ===')
156
156
 
157
157
  /*
158
158
  // For WebSocket connections:
@@ -185,13 +185,13 @@ function handleConnection(ws, userId) {
185
185
  }
186
186
  */
187
187
 
188
- console.log('See code comments for WebSocket integration')
188
+ console.debug('See code comments for WebSocket integration')
189
189
 
190
190
  // ============================================
191
191
  // 7. JOB QUEUE / WORKER EXAMPLE
192
192
  // ============================================
193
193
 
194
- console.log('\n=== 7. Job Queue Example ===')
194
+ console.debug('\n=== 7. Job Queue Example ===')
195
195
 
196
196
  /*
197
197
  // For background jobs:
@@ -230,13 +230,13 @@ async function processJob(jobId, jobData) {
230
230
  }
231
231
  */
232
232
 
233
- console.log('See code comments for Job Queue integration')
233
+ console.debug('See code comments for Job Queue integration')
234
234
 
235
235
  // ============================================
236
236
  // 8. CLI APPLICATION EXAMPLE
237
237
  // ============================================
238
238
 
239
- console.log('\n=== 8. CLI Application ===')
239
+ console.debug('\n=== 8. CLI Application ===')
240
240
 
241
241
  // Memorio works great in CLI apps too
242
242
  state.command = 'build'
@@ -245,43 +245,43 @@ state.options = {
245
245
  sourceMap: false
246
246
  }
247
247
 
248
- console.log('Command:', state.command)
249
- console.log('Options:', state.options)
248
+ console.debug('Command:', state.command)
249
+ console.debug('Options:', state.options)
250
250
 
251
251
  // ============================================
252
252
  // 9. PLATFORM DETECTION
253
253
  // ============================================
254
254
 
255
- console.log('\n=== 9. Platform Detection ===')
255
+ console.debug('\n=== 9. Platform Detection ===')
256
256
 
257
257
  const caps = memorio.getCapabilities()
258
- console.log('Platform:', caps.platform)
259
- console.log('localStorage:', caps.hasLocalStorage ? '✅' : '❌')
260
- console.log('sessionStorage:', caps.hasSessionStorage ? '✅' : '❌')
261
- console.log('IndexedDB:', caps.hasIndexedDB ? '✅' : '❌')
262
- console.log('Session ID:', caps.sessionId.substring(0, 8) + '...')
258
+ console.debug('Platform:', caps.platform)
259
+ console.debug('localStorage:', caps.hasLocalStorage ? '✅' : '❌')
260
+ console.debug('sessionStorage:', caps.hasSessionStorage ? '✅' : '❌')
261
+ console.debug('IndexedDB:', caps.hasIndexedDB ? '✅' : '❌')
262
+ console.debug('Session ID:', caps.sessionId.substring(0, 8) + '...')
263
263
 
264
264
  // ============================================
265
265
  // 10. CLEANUP
266
266
  // ============================================
267
267
 
268
- console.log('\n=== 10. Cleanup ===')
268
+ console.debug('\n=== 10. Cleanup ===')
269
269
 
270
270
  // List all contexts
271
- console.log('Active contexts:', memorio.listContexts())
271
+ console.debug('Active contexts:', memorio.listContexts())
272
272
 
273
273
  // Clean up when done
274
274
  memorio.deleteContext('tenant-A')
275
275
  memorio.deleteContext('tenant-B')
276
276
 
277
- console.log('After cleanup:', memorio.listContexts())
277
+ console.debug('After cleanup:', memorio.listContexts())
278
278
 
279
279
  // ============================================
280
280
  // SUMMARY
281
281
  // ============================================
282
282
 
283
- console.log('\n=== Summary ===')
284
- console.log(`
283
+ console.debug('\n=== Summary ===')
284
+ console.debug(`
285
285
  MEMORIO NODE.JS USAGE:
286
286
 
287
287
  ✅ WORKS:
@@ -305,4 +305,4 @@ MEMORIO NODE.JS USAGE:
305
305
  5. Check isPersistent before relying on persistence
306
306
  `)
307
307
 
308
- console.log('\nNode.js example complete!')
308
+ console.debug('\nNode.js example complete!')
@@ -15,7 +15,7 @@ import 'memorio'
15
15
 
16
16
  // Watch a single value
17
17
  observer('state.counter', (newValue, oldValue) => {
18
- console.log(`Counter: ${oldValue} → ${newValue}`)
18
+ console.debug(`Counter: ${oldValue} → ${newValue}`)
19
19
  })
20
20
 
21
21
  state.counter = 0
@@ -28,7 +28,7 @@ state.counter = 2
28
28
 
29
29
  // Watch entire objects
30
30
  observer('state.user', (newUser, oldUser) => {
31
- console.log(`User changed: ${oldUser?.name} → ${newUser?.name}`)
31
+ console.debug(`User changed: ${oldUser?.name} → ${newUser?.name}`)
32
32
  })
33
33
 
34
34
  state.user = { name: 'Mario', level: 1 }
@@ -40,11 +40,11 @@ state.user = { name: 'Luigi', level: 2 }
40
40
 
41
41
  // Multiple observers on same path
42
42
  observer('state.notifications', (count) => {
43
- console.log(`New notification count: ${count}`)
43
+ console.debug(`New notification count: ${count}`)
44
44
  })
45
45
 
46
46
  // List all observers
47
- console.log('Active observers:', observer.list)
47
+ console.debug('Active observers:', observer.list)
48
48
 
49
49
  // ============================================
50
50
  // CLEANUP
@@ -57,4 +57,4 @@ observer.remove('state.counter')
57
57
  // observer.remove('state.counter')
58
58
  // observer.remove('state.notifications')
59
59
 
60
- console.log('Observer example complete!')
60
+ console.debug('Observer example complete!')
@@ -15,43 +15,43 @@ import 'memorio'
15
15
  // PLATFORM DETECTION
16
16
  // ============================================
17
17
 
18
- console.log('=== Platform Detection ===')
19
- console.log('Memorio version:', memorio.version)
18
+ console.debug('=== Platform Detection ===')
19
+ console.debug('Memorio version:', memorio.version)
20
20
 
21
21
  // Check which platform we're on
22
22
  if (memorio.isBrowser()) {
23
- console.log('Running in: Browser')
24
- console.log('store.isPersistent:', store.isPersistent) // true
25
- console.log('session.isPersistent:', session.isPersistent) // true
23
+ console.debug('Running in: Browser')
24
+ console.debug('store.isPersistent:', store.isPersistent) // true
25
+ console.debug('session.isPersistent:', session.isPersistent) // true
26
26
  } else if (memorio.isNode()) {
27
- console.log('Running in: Node.js')
28
- console.log('store.isPersistent:', store.isPersistent) // false (memory fallback)
29
- console.log('session.isPersistent:', session.isPersistent) // false (memory fallback)
27
+ console.debug('Running in: Node.js')
28
+ console.debug('store.isPersistent:', store.isPersistent) // false (memory fallback)
29
+ console.debug('session.isPersistent:', session.isPersistent) // false (memory fallback)
30
30
  } else if (memorio.isDeno()) {
31
- console.log('Running in: Deno')
32
- console.log('store.isPersistent:', store.isPersistent) // false (memory fallback)
33
- console.log('session.isPersistent:', session.isPersistent) // false (memory fallback)
31
+ console.debug('Running in: Deno')
32
+ console.debug('store.isPersistent:', store.isPersistent) // false (memory fallback)
33
+ console.debug('session.isPersistent:', session.isPersistent) // false (memory fallback)
34
34
  } else if (memorio.isEdge()) {
35
- console.log('Running in: Edge Worker')
36
- console.log('store.isPersistent:', store.isPersistent) // true
37
- console.log('session.isPersistent:', session.isPersistent) // true
35
+ console.debug('Running in: Edge Worker')
36
+ console.debug('store.isPersistent:', store.isPersistent) // true
37
+ console.debug('session.isPersistent:', session.isPersistent) // true
38
38
  }
39
39
 
40
40
  // Get detailed capabilities
41
41
  const caps = memorio.getCapabilities()
42
- console.log('\nCapabilities:')
43
- console.log(' Platform:', caps.platform)
44
- console.log(' localStorage:', caps.hasLocalStorage ? '✅' : '❌')
45
- console.log(' sessionStorage:', caps.hasSessionStorage ? '✅' : '❌')
46
- console.log(' IndexedDB:', caps.hasIndexedDB ? '✅' : '❌')
47
- console.log(' Session ID:', caps.sessionId)
42
+ console.debug('\nCapabilities:')
43
+ console.debug(' Platform:', caps.platform)
44
+ console.debug(' localStorage:', caps.hasLocalStorage ? '✅' : '❌')
45
+ console.debug(' sessionStorage:', caps.hasSessionStorage ? '✅' : '❌')
46
+ console.debug(' IndexedDB:', caps.hasIndexedDB ? '✅' : '❌')
47
+ console.debug(' Session ID:', caps.sessionId)
48
48
 
49
49
  // ============================================
50
50
  // CONTEXT ISOLATION (Server-Side)
51
51
  // ============================================
52
52
 
53
- console.log('\n=== Context Isolation ===')
54
- console.log('Use memorio.createContext() for multi-tenant server applications')
53
+ console.debug('\n=== Context Isolation ===')
54
+ console.debug('Use memorio.createContext() for multi-tenant server applications')
55
55
 
56
56
  // Example: Simulating different users/requests
57
57
  // In a real app, you'd create a context per HTTP request
@@ -69,33 +69,33 @@ userBContext.store.set('preferences', { theme: 'light' })
69
69
  userBContext.session.set('token', 'user-B-token')
70
70
 
71
71
  // Verify isolation - each context has its own data
72
- console.log('\nUser A context:')
73
- console.log(' state.name:', userAContext.state.name) // 'Mario'
74
- console.log(' store.preferences:', userAContext.store.get('preferences')) // { theme: 'dark' }
75
- console.log(' session.token:', userAContext.session.get('token')) // 'user-A-token'
72
+ console.debug('\nUser A context:')
73
+ console.debug(' state.name:', userAContext.state.name) // 'Mario'
74
+ console.debug(' store.preferences:', userAContext.store.get('preferences')) // { theme: 'dark' }
75
+ console.debug(' session.token:', userAContext.session.get('token')) // 'user-A-token'
76
76
 
77
- console.log('\nUser B context:')
78
- console.log(' state.name:', userBContext.state.name) // 'Luigi'
79
- console.log(' store.preferences:', userBContext.store.get('preferences')) // { theme: 'light' }
80
- console.log(' session.token:', userBContext.session.get('token')) // 'user-B-token'
77
+ console.debug('\nUser B context:')
78
+ console.debug(' state.name:', userBContext.state.name) // 'Luigi'
79
+ console.debug(' store.preferences:', userBContext.store.get('preferences')) // { theme: 'light' }
80
+ console.debug(' session.token:', userBContext.session.get('token')) // 'user-B-token'
81
81
 
82
82
  // Global state is separate from contexts
83
- console.log('\nGlobal state (not affected by contexts):')
84
- console.log(' state.name:', state.name) // undefined
83
+ console.debug('\nGlobal state (not affected by contexts):')
84
+ console.debug(' state.name:', state.name) // undefined
85
85
 
86
86
  // List all contexts
87
- console.log('\nActive contexts:', memorio.listContexts()) // ['user-A', 'user-B']
87
+ console.debug('\nActive contexts:', memorio.listContexts()) // ['user-A', 'user-B']
88
88
 
89
89
  // Cleanup - delete a context when done
90
90
  memorio.deleteContext('user-A')
91
- console.log('After deleting user-A:', memorio.listContexts()) // ['user-B']
91
+ console.debug('After deleting user-A:', memorio.listContexts()) // ['user-B']
92
92
 
93
93
  // ============================================
94
94
  // USE CASE: EXPRESS/FASTIFY MIDDLEWARE EXAMPLE
95
95
  // ============================================
96
96
 
97
- console.log('\n=== Server Use Case ===')
98
- console.log(`
97
+ console.debug('\n=== Server Use Case ===')
98
+ console.debug(`
99
99
  // Example: Express middleware for request isolation
100
100
  app.use((req, res, next) => {
101
101
  // Create isolated context per request
@@ -112,4 +112,4 @@ app.get('/user', (req, res) => {
112
112
  })
113
113
  `)
114
114
 
115
- console.log('\nPlatform & Context example complete!')
115
+ console.debug('\nPlatform & Context example complete!')
@@ -156,6 +156,11 @@ function Cart() {
156
156
  </div>
157
157
  ))}
158
158
  <strong>Total: ${total}</strong>
159
+ <div style={{ marginTop: '1rem' }}>
160
+ <AddToCartButton
161
+ product={{ id: 1, name: 'Sample Product', price: 9.99 }}
162
+ />
163
+ </div>
159
164
  </div>
160
165
  )
161
166
  }
@@ -217,7 +222,7 @@ function Notifications() {
217
222
  // Settings Component
218
223
  // ------------------------------
219
224
  function Settings() {
220
- const [theme, setTheme] = useState(state.theme)
225
+ const [theme] = useState(state.theme)
221
226
  const [savedSettings, setSavedSettings] = useState<any>(null)
222
227
 
223
228
  // Load saved settings from store
@@ -281,7 +286,7 @@ function App() {
281
286
  // Check for returning user
282
287
  const lastUser = store.get('lastUser')
283
288
  if (lastUser) {
284
- console.log('Welcome back,', lastUser)
289
+ console.debug('Welcome back,', lastUser)
285
290
  }
286
291
  }, [])
287
292
 
@@ -334,12 +339,12 @@ MEMORIO REACT USAGE GUIDE:
334
339
 
335
340
  4. REACT TO CHANGES:
336
341
  useObserver(() => {
337
- console.log('State changed!')
342
+ console.debug('State changed!')
338
343
  }, [state.user])
339
344
 
340
345
  5. AUTO-DISCOVERY (watch all):
341
346
  useObserver(() => {
342
- console.log(state.user, state.theme)
347
+ console.debug(state.user, state.theme)
343
348
  })
344
349
 
345
350
  6. PERSIST DATA:
@@ -13,13 +13,13 @@ import 'memorio'
13
13
  // CHECK PERSISTENCE
14
14
  // ============================================
15
15
 
16
- console.log('=== Session Persistence Check ===')
17
- console.log('Is persistent (survives tab close):', session.isPersistent)
16
+ console.debug('=== Session Persistence Check ===')
17
+ console.debug('Is persistent (survives tab close):', session.isPersistent)
18
18
  // In browser: true (sessionStorage)
19
19
  // In Node.js/Deno: false (memory fallback)
20
20
 
21
21
  if (!session.isPersistent) {
22
- console.log('⚠️ Warning: Using in-memory storage. Data will be lost on process restart!')
22
+ console.debug('⚠️ Warning: Using in-memory storage. Data will be lost on process restart!')
23
23
  }
24
24
 
25
25
  // ============================================
@@ -33,7 +33,7 @@ session.set('userId', 12345)
33
33
  // Check if user is logged in
34
34
  const token = session.get('authToken')
35
35
  if (token) {
36
- console.log('User is logged in, token:', token.substring(0, 20) + '...')
36
+ console.debug('User is logged in, token:', token.substring(0, 20) + '...')
37
37
  }
38
38
 
39
39
  // ============================================
@@ -50,7 +50,7 @@ session.set('formDraft', {
50
50
  // Restore on page refresh
51
51
  const draft = session.get('formDraft')
52
52
  if (draft) {
53
- console.log('Restored draft:', draft)
53
+ console.debug('Restored draft:', draft)
54
54
  }
55
55
 
56
56
  // ============================================
@@ -66,14 +66,14 @@ session.set('cart', [
66
66
  // Calculate total
67
67
  const cart = session.get('cart') || []
68
68
  const total = cart.reduce((sum, item) => sum + (item.price * item.qty), 0)
69
- console.log('Cart total:', total)
69
+ console.debug('Cart total:', total)
70
70
 
71
71
  // ============================================
72
72
  // SESSION SIZE
73
73
  // ============================================
74
74
 
75
75
  // Get session storage size
76
- console.log('Session size:', session.size(), 'bytes')
76
+ console.debug('Session size:', session.size(), 'bytes')
77
77
 
78
78
  // ============================================
79
79
  // CLEANUP
@@ -88,4 +88,4 @@ session.remove('formDraft')
88
88
  // Or use alias
89
89
  // session.clearAll()
90
90
 
91
- console.log('Session advanced example complete!')
91
+ console.debug('Session advanced example complete!')
@@ -25,9 +25,9 @@ state.user = {
25
25
  }
26
26
 
27
27
  // Access nested values
28
- console.log('User name:', state.user.name)
29
- console.log('Email:', state.user.profile.email)
30
- console.log('Theme:', state.user.profile.settings.theme)
28
+ console.debug('User name:', state.user.name)
29
+ console.debug('Email:', state.user.profile.email)
30
+ console.debug('Theme:', state.user.profile.settings.theme)
31
31
 
32
32
  // ============================================
33
33
  // ARRAYS
@@ -36,14 +36,14 @@ console.log('Theme:', state.user.profile.settings.theme)
36
36
  // State arrays work like regular arrays
37
37
  state.items = [1, 2, 3]
38
38
  state.items.push(4)
39
- console.log('Items:', state.items) // [1, 2, 3, 4]
39
+ console.debug('Items:', state.items) // [1, 2, 3, 4]
40
40
 
41
41
  state.users = [
42
42
  { name: 'Mario', id: 1 },
43
43
  { name: 'Luigi', id: 2 }
44
44
  ]
45
45
  state.users.push({ name: 'Peach', id: 3 })
46
- console.log('Users:', state.users)
46
+ console.debug('Users:', state.users)
47
47
 
48
48
  // ============================================
49
49
  // LOCKING STATE
@@ -56,25 +56,25 @@ state.config.lock()
56
56
  // This will fail:
57
57
  // state.config.maxUsers = 200 // Error: state 'config' is locked
58
58
 
59
- console.log('Config locked:', state.config)
59
+ console.debug('Config locked:', state.config)
60
60
 
61
61
  // ============================================
62
62
  // PATH TRACKING
63
63
  // ============================================
64
64
 
65
65
  // Get path information
66
- console.log('Path:', state.user.__path) // "state.user"
66
+ console.debug('Path:', state.user.__path) // "state.user"
67
67
 
68
68
  // Use path tracker for debugging
69
69
  const path = state.user.profile
70
- console.log('Profile path:', path.email.toString()) // "state.user.profile.email"
70
+ console.debug('Profile path:', path.email.toString()) // "state.user.profile.email"
71
71
 
72
72
  // ============================================
73
73
  // LIST ALL STATES
74
74
  // ============================================
75
75
 
76
76
  // Get all current state keys
77
- console.log('All states:', state.list)
77
+ console.debug('All states:', state.list)
78
78
 
79
79
  // ============================================
80
80
  // REMOVE STATE
@@ -86,4 +86,4 @@ state.remove('items')
86
86
  // Remove all states
87
87
  // state.removeAll()
88
88
 
89
- console.log('State advanced example complete!')
89
+ console.debug('State advanced example complete!')