@seaverse/data-service-sdk 0.9.0 → 0.10.1
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 +131 -34
- package/dist/browser.js +341 -20
- package/dist/browser.js.map +1 -1
- package/dist/browser.umd.js +348 -19
- package/dist/browser.umd.js.map +1 -1
- package/dist/index.cjs +348 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +204 -15
- package/dist/index.js +341 -20
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -32,9 +32,9 @@ const ENDPOINTS = {
|
|
|
32
32
|
* ---------------------------
|
|
33
33
|
* Your Firestore data is organized in three permission levels:
|
|
34
34
|
*
|
|
35
|
-
* 1. publicRead/ - System configs, announcements (Read: Everyone, Write: Admin only)
|
|
36
|
-
* 2. publicData/ - User posts, shared content (Read: Everyone, Write: Everyone)
|
|
37
|
-
* 3. userData/{userId}/ - Private user data (Read/Write: Owner only)
|
|
35
|
+
* 1. publicRead/_data/ - System configs, announcements (Read: Everyone, Write: Admin only)
|
|
36
|
+
* 2. publicData/_data/ - User posts, shared content (Read: Everyone, Write: Everyone)
|
|
37
|
+
* 3. userData/{userId}/_data/ - Private user data (Read/Write: Owner only)
|
|
38
38
|
*
|
|
39
39
|
* QUICK START FOR LLM:
|
|
40
40
|
* -------------------
|
|
@@ -86,7 +86,7 @@ const ENDPOINTS = {
|
|
|
86
86
|
* const snapshot = await getDocs(collection(db, `appData/${appId}/publicData/posts`));
|
|
87
87
|
*
|
|
88
88
|
* // Write to userData (only owner can write)
|
|
89
|
-
* await addDoc(collection(db, `appData/${appId}/userData/${userId}/notes`), {
|
|
89
|
+
* await addDoc(collection(db, `appData/${appId}/userData/${userId}/_data/notes`), {
|
|
90
90
|
* _appId: appId, // REQUIRED
|
|
91
91
|
* _createdAt: serverTimestamp(), // REQUIRED
|
|
92
92
|
* _createdBy: userId, // REQUIRED
|
|
@@ -339,7 +339,7 @@ function getPublicDataPath(appId, collectionName) {
|
|
|
339
339
|
* ```typescript
|
|
340
340
|
* // Write private user notes
|
|
341
341
|
* const path = getUserDataPath('my-app', 'user-123', 'notes');
|
|
342
|
-
* // Returns: 'appData/my-app/userData/user-123/notes'
|
|
342
|
+
* // Returns: 'appData/my-app/userData/user-123/_data/notes'
|
|
343
343
|
*
|
|
344
344
|
* await addDoc(collection(db, path), {
|
|
345
345
|
* _appId: appId,
|
|
@@ -353,7 +353,7 @@ function getUserDataPath(appId, userId, collectionName) {
|
|
|
353
353
|
validateSegment('appId', appId);
|
|
354
354
|
validateSegment('userId', userId);
|
|
355
355
|
validateSegment('collectionName', collectionName);
|
|
356
|
-
return `appData/${appId}/userData/${userId}/${collectionName}`;
|
|
356
|
+
return `appData/${appId}/userData/${userId}/_data/${collectionName}`;
|
|
357
357
|
}
|
|
358
358
|
/**
|
|
359
359
|
* Generate path for a specific document in publicRead
|
|
@@ -411,7 +411,7 @@ function getPublicDataDocPath(appId, collectionName, docId) {
|
|
|
411
411
|
* @example
|
|
412
412
|
* ```typescript
|
|
413
413
|
* const path = getUserDataDocPath('my-app', 'user-123', 'notes', 'note-456');
|
|
414
|
-
* // Returns: 'appData/my-app/userData/user-123/notes/note-456'
|
|
414
|
+
* // Returns: 'appData/my-app/userData/user-123/_data/notes/note-456'
|
|
415
415
|
*
|
|
416
416
|
* const docSnap = await getDoc(doc(db, path));
|
|
417
417
|
* ```
|
|
@@ -421,7 +421,7 @@ function getUserDataDocPath(appId, userId, collectionName, docId) {
|
|
|
421
421
|
validateSegment('userId', userId);
|
|
422
422
|
validateSegment('collectionName', collectionName);
|
|
423
423
|
validateSegment('docId', docId);
|
|
424
|
-
return `appData/${appId}/userData/${userId}/${collectionName}/${docId}`;
|
|
424
|
+
return `appData/${appId}/userData/${userId}/_data/${collectionName}/${docId}`;
|
|
425
425
|
}
|
|
426
426
|
/**
|
|
427
427
|
* Validate a path segment to ensure it doesn't contain invalid characters
|
|
@@ -486,7 +486,7 @@ class PathBuilder {
|
|
|
486
486
|
userData(userId, collectionName) {
|
|
487
487
|
validateSegment('userId', userId);
|
|
488
488
|
validateSegment('collectionName', collectionName);
|
|
489
|
-
this.segments.push('userData', userId, collectionName);
|
|
489
|
+
this.segments.push('userData', userId, '_data', collectionName);
|
|
490
490
|
return this;
|
|
491
491
|
}
|
|
492
492
|
/**
|
|
@@ -520,6 +520,260 @@ const PATH_PATTERNS = {
|
|
|
520
520
|
USER_DATA: 'userData',
|
|
521
521
|
};
|
|
522
522
|
|
|
523
|
+
/**
|
|
524
|
+
* Validation utilities for Firestore data
|
|
525
|
+
*
|
|
526
|
+
* These validators help ensure data follows SeaVerse Firestore security rules.
|
|
527
|
+
* They provide client-side validation before sending data to Firestore.
|
|
528
|
+
*
|
|
529
|
+
* 🚨 IMPORTANT: These are CLIENT-SIDE validations only!
|
|
530
|
+
* The actual security enforcement happens in Firestore Security Rules.
|
|
531
|
+
* These validators help catch errors early for better DX.
|
|
532
|
+
*/
|
|
533
|
+
/**
|
|
534
|
+
* Maximum document size in bytes (256 KB)
|
|
535
|
+
* This matches the Firestore security rule limit
|
|
536
|
+
*/
|
|
537
|
+
const MAX_DOCUMENT_SIZE = 262144; // 256 KB
|
|
538
|
+
/**
|
|
539
|
+
* System reserved field names that users cannot create
|
|
540
|
+
*
|
|
541
|
+
* These fields are managed by the system and cannot be set by users:
|
|
542
|
+
* - _appId: Application ID (auto-injected)
|
|
543
|
+
* - _createdBy: Creator user ID (auto-injected)
|
|
544
|
+
* - _createdAt: Creation timestamp (auto-injected)
|
|
545
|
+
* - _updatedAt: Last update timestamp (auto-managed)
|
|
546
|
+
* - _deleted: Soft delete flag (auto-managed)
|
|
547
|
+
* - _deletedAt: Deletion timestamp (auto-managed)
|
|
548
|
+
*/
|
|
549
|
+
const ALLOWED_RESERVED_FIELDS = [
|
|
550
|
+
'_appId',
|
|
551
|
+
'_createdBy',
|
|
552
|
+
'_createdAt',
|
|
553
|
+
'_updatedAt',
|
|
554
|
+
'_deleted',
|
|
555
|
+
'_deletedAt',
|
|
556
|
+
'_updatedBy'
|
|
557
|
+
];
|
|
558
|
+
/**
|
|
559
|
+
* Common illegal reserved field patterns
|
|
560
|
+
* Based on Firestore security rules blacklist
|
|
561
|
+
*/
|
|
562
|
+
const ILLEGAL_RESERVED_FIELDS = [
|
|
563
|
+
// Single letter prefixes
|
|
564
|
+
'_a', '_b', '_c', '_d', '_e', '_f', '_g', '_h', '_i', '_j', '_k', '_l', '_m',
|
|
565
|
+
'_n', '_o', '_p', '_q', '_r', '_s', '_t', '_u', '_v', '_w', '_x', '_y', '_z',
|
|
566
|
+
'_A', '_B', '_C', '_D', '_E', '_F', '_G', '_H', '_I', '_J', '_K', '_L', '_M',
|
|
567
|
+
'_N', '_O', '_P', '_Q', '_R', '_S', '_T', '_U', '_V', '_W', '_X', '_Y', '_Z',
|
|
568
|
+
// Number prefixes
|
|
569
|
+
'_0', '_1', '_2', '_3', '_4', '_5', '_6', '_7', '_8', '_9',
|
|
570
|
+
// Multiple underscores
|
|
571
|
+
'__', '___', '____',
|
|
572
|
+
// Permission related
|
|
573
|
+
'_admin', '_user', '_role', '_permission', '_access', '_auth', '_owner', '_public',
|
|
574
|
+
// Metadata related
|
|
575
|
+
'_custom', '_data', '_meta', '_info', '_config', '_setting', '_value', '_key',
|
|
576
|
+
'_id', '_ID', '_ref', '_timestamp', '_time', '_date', '_status', '_type',
|
|
577
|
+
// Temporary fields
|
|
578
|
+
'_temp', '_tmp', '_test', '_new', '_old', '_bak', '_backup', '_copy',
|
|
579
|
+
// Common business fields
|
|
580
|
+
'_name', '_title', '_description', '_content', '_body', '_text', '_message',
|
|
581
|
+
'_email', '_phone', '_address', '_city', '_country', '_zip', '_code',
|
|
582
|
+
'_price', '_amount', '_quantity', '_total', '_subtotal', '_discount', '_tax',
|
|
583
|
+
'_image', '_avatar', '_photo', '_picture', '_file', '_url', '_link', '_path',
|
|
584
|
+
'_user_id', '_userId', '_username', '_nickname', '_displayName',
|
|
585
|
+
'_password', '_token', '_session', '_apiKey', '_secretKey', '_privateKey',
|
|
586
|
+
// Flag fields
|
|
587
|
+
'_flag', '_enabled', '_disabled', '_active', '_inactive', '_visible', '_hidden',
|
|
588
|
+
'_isAdmin', '_isPublic', '_isPrivate', '_isDeleted', '_isActive', '_isEnabled',
|
|
589
|
+
// State fields
|
|
590
|
+
'_state', '_mode', '_level', '_priority', '_order', '_index', '_count', '_number',
|
|
591
|
+
// System fields
|
|
592
|
+
'_system', '_internal', '_private', '_protected', '_reserved', '_secret', '_hidden'
|
|
593
|
+
];
|
|
594
|
+
/**
|
|
595
|
+
* Validate that data doesn't contain illegal reserved fields
|
|
596
|
+
*
|
|
597
|
+
* Reserved fields (starting with _) are for system use only.
|
|
598
|
+
* Users can only use allowed system fields.
|
|
599
|
+
*
|
|
600
|
+
* @param data - Data object to validate
|
|
601
|
+
* @throws Error if illegal reserved fields are found
|
|
602
|
+
*
|
|
603
|
+
* @example
|
|
604
|
+
* ```typescript
|
|
605
|
+
* // ✅ Valid - no reserved fields
|
|
606
|
+
* validateReservedFields({ title: 'Post', content: 'Hello' });
|
|
607
|
+
*
|
|
608
|
+
* // ✅ Valid - allowed system fields
|
|
609
|
+
* validateReservedFields({ _appId: 'app-1', _createdBy: 'user-1', title: 'Post' });
|
|
610
|
+
*
|
|
611
|
+
* // ❌ Invalid - illegal reserved field
|
|
612
|
+
* validateReservedFields({ _custom: 'value', title: 'Post' });
|
|
613
|
+
* // Throws: Error: Illegal reserved field "_custom"
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
function validateReservedFields(data) {
|
|
617
|
+
const keys = Object.keys(data);
|
|
618
|
+
for (const key of keys) {
|
|
619
|
+
// Skip allowed system fields
|
|
620
|
+
if (ALLOWED_RESERVED_FIELDS.includes(key)) {
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
// Check if it's a reserved field (starts with _)
|
|
624
|
+
if (key.startsWith('_')) {
|
|
625
|
+
// Check if it's in the blacklist
|
|
626
|
+
if (ILLEGAL_RESERVED_FIELDS.includes(key)) {
|
|
627
|
+
throw new Error(`Illegal reserved field "${key}". ` +
|
|
628
|
+
`Fields starting with "_" are reserved for system use. ` +
|
|
629
|
+
`Please use a field name without the underscore prefix.`);
|
|
630
|
+
}
|
|
631
|
+
// Even if not in blacklist, warn about unknown _ fields
|
|
632
|
+
throw new Error(`Unknown reserved field "${key}". ` +
|
|
633
|
+
`Fields starting with "_" are reserved for system use. ` +
|
|
634
|
+
`Allowed system fields: ${ALLOWED_RESERVED_FIELDS.join(', ')}. ` +
|
|
635
|
+
`Please use a field name without the underscore prefix.`);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Estimate document size in bytes
|
|
641
|
+
*
|
|
642
|
+
* This is an approximation based on JSON serialization.
|
|
643
|
+
* Firestore may calculate size differently, but this gives a good estimate.
|
|
644
|
+
*
|
|
645
|
+
* @param data - Data object to measure
|
|
646
|
+
* @returns Estimated size in bytes
|
|
647
|
+
*
|
|
648
|
+
* @example
|
|
649
|
+
* ```typescript
|
|
650
|
+
* const data = { title: 'My Post', content: 'Long content...' };
|
|
651
|
+
* const size = estimateDocumentSize(data);
|
|
652
|
+
* console.log('Document size:', size, 'bytes');
|
|
653
|
+
* ```
|
|
654
|
+
*/
|
|
655
|
+
function estimateDocumentSize(data) {
|
|
656
|
+
try {
|
|
657
|
+
const json = JSON.stringify(data);
|
|
658
|
+
// Use Blob if available (browser), otherwise estimate from string length
|
|
659
|
+
if (typeof Blob !== 'undefined') {
|
|
660
|
+
return new Blob([json]).size;
|
|
661
|
+
}
|
|
662
|
+
else {
|
|
663
|
+
// Node.js or environments without Blob: estimate from UTF-8 encoded length
|
|
664
|
+
return Buffer.byteLength(json, 'utf8');
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
catch (error) {
|
|
668
|
+
// Fallback: rough estimate
|
|
669
|
+
return JSON.stringify(data).length * 2; // Assume ~2 bytes per char for safety
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* Validate document size doesn't exceed limit
|
|
674
|
+
*
|
|
675
|
+
* Firestore has a maximum document size of 1MB, but we enforce 256KB
|
|
676
|
+
* to match our security rules limit.
|
|
677
|
+
*
|
|
678
|
+
* @param data - Data object to validate
|
|
679
|
+
* @throws Error if document is too large
|
|
680
|
+
*
|
|
681
|
+
* @example
|
|
682
|
+
* ```typescript
|
|
683
|
+
* const data = { title: 'Post', content: 'Some content' };
|
|
684
|
+
* validateDocumentSize(data); // OK
|
|
685
|
+
*
|
|
686
|
+
* const hugeData = { content: 'x'.repeat(300000) };
|
|
687
|
+
* validateDocumentSize(hugeData); // Throws error
|
|
688
|
+
* ```
|
|
689
|
+
*/
|
|
690
|
+
function validateDocumentSize(data) {
|
|
691
|
+
const size = estimateDocumentSize(data);
|
|
692
|
+
if (size > MAX_DOCUMENT_SIZE) {
|
|
693
|
+
throw new Error(`Document size (${size} bytes) exceeds maximum allowed size (${MAX_DOCUMENT_SIZE} bytes / 256 KB). ` +
|
|
694
|
+
`Please reduce the amount of data you're storing in this document.`);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
/**
|
|
698
|
+
* Validate data before sending to Firestore
|
|
699
|
+
*
|
|
700
|
+
* This runs all validations:
|
|
701
|
+
* - Reserved fields check
|
|
702
|
+
* - Document size check
|
|
703
|
+
*
|
|
704
|
+
* @param data - Data object to validate
|
|
705
|
+
* @throws Error if validation fails
|
|
706
|
+
*
|
|
707
|
+
* @example
|
|
708
|
+
* ```typescript
|
|
709
|
+
* // Use this before adding/updating documents
|
|
710
|
+
* try {
|
|
711
|
+
* validateFirestoreData(myData);
|
|
712
|
+
* await addDoc(collection(db, path), myData);
|
|
713
|
+
* } catch (error) {
|
|
714
|
+
* console.error('Validation failed:', error.message);
|
|
715
|
+
* }
|
|
716
|
+
* ```
|
|
717
|
+
*/
|
|
718
|
+
function validateFirestoreData(data) {
|
|
719
|
+
validateReservedFields(data);
|
|
720
|
+
validateDocumentSize(data);
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Check if data contains soft-delete markers
|
|
724
|
+
*
|
|
725
|
+
* @param data - Data object to check
|
|
726
|
+
* @returns True if document is marked as deleted
|
|
727
|
+
*/
|
|
728
|
+
function isDeleted(data) {
|
|
729
|
+
return data._deleted === true;
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* Validate data and return detailed results instead of throwing
|
|
733
|
+
*
|
|
734
|
+
* Use this when you want to handle validation errors gracefully
|
|
735
|
+
* without try/catch blocks.
|
|
736
|
+
*
|
|
737
|
+
* @param data - Data object to validate
|
|
738
|
+
* @returns Validation result with errors
|
|
739
|
+
*
|
|
740
|
+
* @example
|
|
741
|
+
* ```typescript
|
|
742
|
+
* const result = validateDataDetailed(myData);
|
|
743
|
+
* if (!result.valid) {
|
|
744
|
+
* console.error('Validation errors:', result.errors);
|
|
745
|
+
* // Show errors to user
|
|
746
|
+
* } else {
|
|
747
|
+
* // Proceed with save
|
|
748
|
+
* }
|
|
749
|
+
* ```
|
|
750
|
+
*/
|
|
751
|
+
function validateDataDetailed(data) {
|
|
752
|
+
const errors = [];
|
|
753
|
+
// Check reserved fields
|
|
754
|
+
try {
|
|
755
|
+
validateReservedFields(data);
|
|
756
|
+
}
|
|
757
|
+
catch (error) {
|
|
758
|
+
if (error instanceof Error) {
|
|
759
|
+
errors.push(error.message);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
// Check document size
|
|
763
|
+
try {
|
|
764
|
+
validateDocumentSize(data);
|
|
765
|
+
}
|
|
766
|
+
catch (error) {
|
|
767
|
+
if (error instanceof Error) {
|
|
768
|
+
errors.push(error.message);
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
return {
|
|
772
|
+
valid: errors.length === 0,
|
|
773
|
+
errors
|
|
774
|
+
};
|
|
775
|
+
}
|
|
776
|
+
|
|
523
777
|
/**
|
|
524
778
|
* Firestore Helper - LLM-Friendly Firestore Operations
|
|
525
779
|
*
|
|
@@ -614,25 +868,36 @@ class FirestoreHelper {
|
|
|
614
868
|
/**
|
|
615
869
|
* Get all documents from publicData collection
|
|
616
870
|
*
|
|
871
|
+
* By default, this returns only non-deleted documents.
|
|
872
|
+
* Set includeDeleted=true to include soft-deleted documents.
|
|
873
|
+
*
|
|
617
874
|
* @param collectionName - Collection name
|
|
875
|
+
* @param includeDeleted - Include soft-deleted documents (default: false)
|
|
618
876
|
* @returns QuerySnapshot with documents
|
|
619
877
|
*
|
|
620
878
|
* @example
|
|
621
879
|
* ```typescript
|
|
880
|
+
* // Get only active posts (not deleted)
|
|
622
881
|
* const snapshot = await helper.getPublicData('posts');
|
|
623
882
|
* snapshot.forEach(doc => {
|
|
624
883
|
* console.log(doc.id, doc.data());
|
|
625
884
|
* });
|
|
885
|
+
*
|
|
886
|
+
* // Include deleted posts (admin use case)
|
|
887
|
+
* const allPosts = await helper.getPublicData('posts', true);
|
|
626
888
|
* ```
|
|
627
889
|
*/
|
|
628
|
-
async getPublicData(collectionName) {
|
|
890
|
+
async getPublicData(collectionName, includeDeleted = false) {
|
|
629
891
|
const path = getPublicDataPath(this.appId, collectionName);
|
|
630
|
-
return this.getDocs(path);
|
|
892
|
+
return this.getDocs(path, includeDeleted);
|
|
631
893
|
}
|
|
632
894
|
/**
|
|
633
895
|
* Get all documents from userData collection (user's private data)
|
|
634
896
|
*
|
|
897
|
+
* By default, this returns only non-deleted documents.
|
|
898
|
+
*
|
|
635
899
|
* @param collectionName - Collection name
|
|
900
|
+
* @param includeDeleted - Include soft-deleted documents (default: false)
|
|
636
901
|
* @returns QuerySnapshot with documents
|
|
637
902
|
*
|
|
638
903
|
* @example
|
|
@@ -643,9 +908,9 @@ class FirestoreHelper {
|
|
|
643
908
|
* });
|
|
644
909
|
* ```
|
|
645
910
|
*/
|
|
646
|
-
async getUserData(collectionName) {
|
|
911
|
+
async getUserData(collectionName, includeDeleted = false) {
|
|
647
912
|
const path = getUserDataPath(this.appId, this.userId, collectionName);
|
|
648
|
-
return this.getDocs(path);
|
|
913
|
+
return this.getDocs(path, includeDeleted);
|
|
649
914
|
}
|
|
650
915
|
/**
|
|
651
916
|
* Get all documents from publicRead collection (read-only for users)
|
|
@@ -725,6 +990,8 @@ class FirestoreHelper {
|
|
|
725
990
|
* ```
|
|
726
991
|
*/
|
|
727
992
|
async updateDoc(collectionPath, docId, data) {
|
|
993
|
+
// Validate user data
|
|
994
|
+
validateFirestoreData(data);
|
|
728
995
|
const { updateDoc, doc, serverTimestamp } = await this.loadFirestore();
|
|
729
996
|
const docRef = doc(this.db, collectionPath, docId);
|
|
730
997
|
return updateDoc(docRef, {
|
|
@@ -734,10 +1001,50 @@ class FirestoreHelper {
|
|
|
734
1001
|
});
|
|
735
1002
|
}
|
|
736
1003
|
/**
|
|
737
|
-
*
|
|
1004
|
+
* Soft delete document (mark as deleted without removing)
|
|
1005
|
+
*
|
|
1006
|
+
* This is the RECOMMENDED way to delete documents. It marks the document
|
|
1007
|
+
* as deleted without actually removing it from the database.
|
|
1008
|
+
*
|
|
1009
|
+
* Automatically sets: _deleted = true, _deletedAt = serverTimestamp()
|
|
1010
|
+
*
|
|
1011
|
+
* @param collectionPath - Full collection path
|
|
1012
|
+
* @param docId - Document ID
|
|
1013
|
+
*
|
|
1014
|
+
* @example
|
|
1015
|
+
* ```typescript
|
|
1016
|
+
* // Soft delete a post (recommended)
|
|
1017
|
+
* await helper.softDeleteDoc(
|
|
1018
|
+
* getPublicDataPath(appId, 'posts'),
|
|
1019
|
+
* 'post-123'
|
|
1020
|
+
* );
|
|
1021
|
+
* ```
|
|
1022
|
+
*/
|
|
1023
|
+
async softDeleteDoc(collectionPath, docId) {
|
|
1024
|
+
const { updateDoc, doc, serverTimestamp } = await this.loadFirestore();
|
|
1025
|
+
const docRef = doc(this.db, collectionPath, docId);
|
|
1026
|
+
return updateDoc(docRef, {
|
|
1027
|
+
_deleted: true,
|
|
1028
|
+
_deletedAt: serverTimestamp()
|
|
1029
|
+
});
|
|
1030
|
+
}
|
|
1031
|
+
/**
|
|
1032
|
+
* Hard delete document (permanently remove from database)
|
|
1033
|
+
*
|
|
1034
|
+
* ⚠️ WARNING: This permanently removes the document.
|
|
1035
|
+
* Only admins can hard delete. Regular users should use softDeleteDoc().
|
|
738
1036
|
*
|
|
739
1037
|
* @param collectionPath - Full collection path
|
|
740
1038
|
* @param docId - Document ID
|
|
1039
|
+
*
|
|
1040
|
+
* @example
|
|
1041
|
+
* ```typescript
|
|
1042
|
+
* // Hard delete (admin only)
|
|
1043
|
+
* await helper.deleteDoc(
|
|
1044
|
+
* getPublicDataPath(appId, 'posts'),
|
|
1045
|
+
* 'post-123'
|
|
1046
|
+
* );
|
|
1047
|
+
* ```
|
|
741
1048
|
*/
|
|
742
1049
|
async deleteDoc(collectionPath, docId) {
|
|
743
1050
|
const { deleteDoc, doc } = await this.loadFirestore();
|
|
@@ -773,22 +1080,36 @@ class FirestoreHelper {
|
|
|
773
1080
|
* Internal: Add document with metadata injection
|
|
774
1081
|
*/
|
|
775
1082
|
async addDocWithMeta(collectionPath, data) {
|
|
1083
|
+
// Validate user data before adding system fields
|
|
1084
|
+
validateFirestoreData(data);
|
|
776
1085
|
const { addDoc, collection, serverTimestamp } = await this.loadFirestore();
|
|
777
1086
|
const colRef = collection(this.db, collectionPath);
|
|
778
|
-
|
|
1087
|
+
const docData = {
|
|
779
1088
|
_appId: this.appId,
|
|
780
1089
|
_createdAt: serverTimestamp(),
|
|
781
1090
|
_createdBy: this.userId,
|
|
782
1091
|
...data
|
|
783
|
-
}
|
|
1092
|
+
};
|
|
1093
|
+
return addDoc(colRef, docData);
|
|
784
1094
|
}
|
|
785
1095
|
/**
|
|
786
1096
|
* Internal: Get all documents from collection
|
|
1097
|
+
* Optionally filter out soft-deleted documents
|
|
787
1098
|
*/
|
|
788
|
-
async getDocs(collectionPath) {
|
|
789
|
-
const { getDocs, collection } = await this.loadFirestore();
|
|
1099
|
+
async getDocs(collectionPath, includeDeleted = false) {
|
|
1100
|
+
const { getDocs, collection, query, where } = await this.loadFirestore();
|
|
790
1101
|
const colRef = collection(this.db, collectionPath);
|
|
791
|
-
|
|
1102
|
+
if (includeDeleted) {
|
|
1103
|
+
// Return all documents (including soft-deleted)
|
|
1104
|
+
return getDocs(colRef);
|
|
1105
|
+
}
|
|
1106
|
+
else {
|
|
1107
|
+
// Filter out soft-deleted documents
|
|
1108
|
+
// Use '!=' to include documents without _deleted field (new documents)
|
|
1109
|
+
// This will return documents where _deleted is missing, null, undefined, or false
|
|
1110
|
+
const q = query(colRef, where('_deleted', '!=', true));
|
|
1111
|
+
return getDocs(q);
|
|
1112
|
+
}
|
|
792
1113
|
}
|
|
793
1114
|
/**
|
|
794
1115
|
* Internal: Get collection reference
|
|
@@ -1100,14 +1421,17 @@ Object.defineProperty(exports, "writeBatch", {
|
|
|
1100
1421
|
enumerable: true,
|
|
1101
1422
|
get: function () { return firestore.writeBatch; }
|
|
1102
1423
|
});
|
|
1424
|
+
exports.ALLOWED_RESERVED_FIELDS = ALLOWED_RESERVED_FIELDS;
|
|
1103
1425
|
exports.DEFAULT_BASE_URL = DEFAULT_BASE_URL;
|
|
1104
1426
|
exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
|
|
1105
1427
|
exports.DataServiceClient = DataServiceClient;
|
|
1106
1428
|
exports.ENDPOINTS = ENDPOINTS;
|
|
1107
1429
|
exports.FirestoreHelper = FirestoreHelper;
|
|
1430
|
+
exports.MAX_DOCUMENT_SIZE = MAX_DOCUMENT_SIZE;
|
|
1108
1431
|
exports.PATH_PATTERNS = PATH_PATTERNS;
|
|
1109
1432
|
exports.PathBuilder = PathBuilder;
|
|
1110
1433
|
exports.addDocWithMeta = addDocWithMeta;
|
|
1434
|
+
exports.estimateDocumentSize = estimateDocumentSize;
|
|
1111
1435
|
exports.getFirebaseConfig = getFirebaseConfig;
|
|
1112
1436
|
exports.getPublicDataDocPath = getPublicDataDocPath;
|
|
1113
1437
|
exports.getPublicDataPath = getPublicDataPath;
|
|
@@ -1116,5 +1440,10 @@ exports.getPublicReadPath = getPublicReadPath;
|
|
|
1116
1440
|
exports.getUserDataDocPath = getUserDataDocPath;
|
|
1117
1441
|
exports.getUserDataPath = getUserDataPath;
|
|
1118
1442
|
exports.initializeWithToken = initializeWithToken;
|
|
1443
|
+
exports.isDeleted = isDeleted;
|
|
1119
1444
|
exports.updateDocWithMeta = updateDocWithMeta;
|
|
1445
|
+
exports.validateDataDetailed = validateDataDetailed;
|
|
1446
|
+
exports.validateDocumentSize = validateDocumentSize;
|
|
1447
|
+
exports.validateFirestoreData = validateFirestoreData;
|
|
1448
|
+
exports.validateReservedFields = validateReservedFields;
|
|
1120
1449
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/config.ts","../src/client.ts","../src/path-helpers.ts","../src/firestore-helper.ts","../src/helpers.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/config.ts","../src/client.ts","../src/path-helpers.ts","../src/validation.ts","../src/firestore-helper.ts","../src/helpers.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
|