@toonstore/torm 0.3.0 → 0.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toonstore/torm",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "ToonStoreDB ORM client for Node.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/studio/index.html CHANGED
@@ -463,7 +463,7 @@
463
463
  // Load collections on startup
464
464
  async function loadCollections() {
465
465
  try {
466
- const response = await fetch('/studio/api/collections');
466
+ const response = await fetch('/api/keys');
467
467
  const data = await response.json();
468
468
  const list = document.getElementById('collectionList');
469
469
  list.innerHTML = '';
@@ -471,8 +471,10 @@
471
471
  data.collections.forEach(collection => {
472
472
  const li = document.createElement('li');
473
473
  li.className = 'collection-item';
474
- li.textContent = collection;
475
- li.onclick = () => loadCollection(collection);
474
+ li.textContent = `${collection.name} (${collection.count})`;
475
+ li.addEventListener('click', function() {
476
+ loadCollection(collection.name);
477
+ });
476
478
  list.appendChild(li);
477
479
  });
478
480
 
@@ -484,25 +486,45 @@
484
486
 
485
487
  // Load collection data
486
488
  async function loadCollection(collection) {
489
+ console.log('Loading collection:', collection);
487
490
  currentCollection = collection;
491
+
492
+ // Update active state
488
493
  document.querySelectorAll('.collection-item').forEach(el => el.classList.remove('active'));
489
- event.target.classList.add('active');
490
494
 
491
495
  try {
492
- const response = await fetch(`/studio/api/collections/${collection}`);
496
+ const response = await fetch(`/api/collection/${collection}`);
497
+ console.log('API Response status:', response.status);
498
+
493
499
  const data = await response.json();
494
- allKeys = data.data;
500
+ console.log('Received data:', data);
501
+
502
+ // Transform documents to the format expected by renderData
503
+ allKeys = data.documents.map(doc => ({
504
+ key: `toonstore:${collection}:${doc._id}`,
505
+ value: doc
506
+ }));
507
+
508
+ console.log('Transformed data:', allKeys);
495
509
  renderData(allKeys);
496
510
  } catch (error) {
497
511
  console.error('Failed to load collection data:', error);
512
+ document.getElementById('dataContainer').innerHTML = `
513
+ <div class="empty-state">
514
+ <h3>Error loading data</h3>
515
+ <p>${error.message}</p>
516
+ </div>
517
+ `;
498
518
  }
499
519
  }
500
520
 
501
521
  // Render data table
502
522
  function renderData(data) {
523
+ console.log('renderData called with:', data);
503
524
  const container = document.getElementById('dataContainer');
504
525
 
505
- if (data.length === 0) {
526
+ if (!data || data.length === 0) {
527
+ console.log('No data to render');
506
528
  container.innerHTML = `
507
529
  <div class="empty-state">
508
530
  <h3>No data found</h3>
@@ -512,6 +534,23 @@
512
534
  return;
513
535
  }
514
536
 
537
+ console.log('Rendering', data.length, 'items');
538
+
539
+ const rows = data.map(item => {
540
+ const valueStr = JSON.stringify(item.value).substring(0, 100);
541
+ const itemJson = JSON.stringify(item).replace(/'/g, "\\'");
542
+ return `
543
+ <div class="table-row">
544
+ <div class="table-cell key">${item.key}</div>
545
+ <div class="table-cell value">${valueStr}...</div>
546
+ <div class="table-cell actions">
547
+ <button class="btn-small secondary" onclick='editKey(${itemJson})'>Edit</button>
548
+ <button class="btn-small danger" onclick='deleteKey("${item.key}")'>Delete</button>
549
+ </div>
550
+ </div>
551
+ `;
552
+ }).join('');
553
+
515
554
  container.innerHTML = `
516
555
  <div class="data-table">
517
556
  <div class="table-row table-header">
@@ -519,24 +558,17 @@
519
558
  <div class="table-cell value">Value</div>
520
559
  <div class="table-cell actions">Actions</div>
521
560
  </div>
522
- ${data.map(item => `
523
- <div class="table-row">
524
- <div class="table-cell key">${item.key}</div>
525
- <div class="table-cell value">${JSON.stringify(item.value).substring(0, 100)}...</div>
526
- <div class="table-cell actions">
527
- <button class="btn-small secondary" onclick='editKey(${JSON.stringify(item)})'>Edit</button>
528
- <button class="btn-small danger" onclick='deleteKey("${item.key}")'>Delete</button>
529
- </div>
530
- </div>
531
- `).join('')}
561
+ ${rows}
532
562
  </div>
533
563
  `;
564
+
565
+ console.log('Render complete');
534
566
  }
535
567
 
536
568
  // Load stats
537
569
  async function loadStats() {
538
570
  try {
539
- const response = await fetch('/studio/api/stats');
571
+ const response = await fetch('/api/stats');
540
572
  const data = await response.json();
541
573
  document.getElementById('totalKeys').textContent = data.total_keys;
542
574
  } catch (error) {
@@ -556,8 +588,8 @@
556
588
  const key = document.getElementById('modalKey').value;
557
589
  const value = JSON.parse(document.getElementById('modalValue').value);
558
590
 
559
- await fetch(`/studio/api/keys/${encodeURIComponent(key)}`, {
560
- method: 'PUT',
591
+ await fetch(`/api/key/${encodeURIComponent(key)}`, {
592
+ method: 'POST',
561
593
  headers: { 'Content-Type': 'application/json' },
562
594
  body: JSON.stringify({ value })
563
595
  });
@@ -579,7 +611,7 @@
579
611
  const key = document.getElementById('modalKey').value;
580
612
  const value = JSON.parse(document.getElementById('modalValue').value);
581
613
 
582
- await fetch('/studio/api/keys', {
614
+ await fetch(`/api/key/${encodeURIComponent(key)}`, {
583
615
  method: 'POST',
584
616
  headers: { 'Content-Type': 'application/json' },
585
617
  body: JSON.stringify({ key, value })
@@ -595,7 +627,7 @@
595
627
  async function deleteKey(key) {
596
628
  if (!confirm(`Delete key "${key}"?`)) return;
597
629
 
598
- await fetch(`/studio/api/keys/${encodeURIComponent(key)}`, {
630
+ await fetch(`/api/key/${encodeURIComponent(key)}`, {
599
631
  method: 'DELETE'
600
632
  });
601
633