@seaverse/data-service-sdk 0.5.2 → 0.6.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/dist/index.js CHANGED
@@ -353,5 +353,259 @@ async function initializeWithToken(tokenResponse) {
353
353
  };
354
354
  }
355
355
 
356
- export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT, DataServiceClient, ENDPOINTS, getFirebaseConfig, initializeWithToken };
356
+ /**
357
+ * Firestore Path Helper Functions
358
+ *
359
+ * These helper functions generate correct Firestore paths that match
360
+ * the security rules. Use these instead of manually constructing paths
361
+ * to avoid permission-denied errors.
362
+ *
363
+ * 🚨 IMPORTANT: These paths are designed to work with SeaVerse Firestore Rules
364
+ *
365
+ * Permission Levels:
366
+ * - publicRead: Read-only for all users, write for admins only
367
+ * - publicData: Read/write for all authenticated users
368
+ * - userData: Read/write only for the data owner
369
+ */
370
+ /**
371
+ * Generate path for publicRead data (read-only for users, write for admins)
372
+ *
373
+ * @param appId - Your application ID
374
+ * @param collection - Collection name (e.g., 'announcements', 'config')
375
+ * @returns Firestore path string
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * // Read system announcements
380
+ * const path = getPublicReadPath('my-app', 'announcements');
381
+ * // Returns: 'appData/my-app/publicRead/announcements'
382
+ *
383
+ * const snapshot = await getDocs(collection(db, path));
384
+ * ```
385
+ */
386
+ function getPublicReadPath(appId, collectionName) {
387
+ validateSegment('appId', appId);
388
+ validateSegment('collectionName', collectionName);
389
+ return `appData/${appId}/publicRead/${collectionName}`;
390
+ }
391
+ /**
392
+ * Generate path for publicData (read/write for all authenticated users)
393
+ *
394
+ * @param appId - Your application ID
395
+ * @param collection - Collection name (e.g., 'posts', 'comments')
396
+ * @returns Firestore path string
397
+ *
398
+ * @example
399
+ * ```typescript
400
+ * // Write a public post
401
+ * const path = getPublicDataPath('my-app', 'posts');
402
+ * // Returns: 'appData/my-app/publicData/posts'
403
+ *
404
+ * await addDoc(collection(db, path), {
405
+ * _appId: appId,
406
+ * _createdAt: serverTimestamp(),
407
+ * _createdBy: userId,
408
+ * title: 'My Post'
409
+ * });
410
+ * ```
411
+ */
412
+ function getPublicDataPath(appId, collectionName) {
413
+ validateSegment('appId', appId);
414
+ validateSegment('collectionName', collectionName);
415
+ return `appData/${appId}/publicData/${collectionName}`;
416
+ }
417
+ /**
418
+ * Generate path for userData (private, read/write only by owner)
419
+ *
420
+ * @param appId - Your application ID
421
+ * @param userId - User ID who owns this data
422
+ * @param collection - Collection name (e.g., 'notes', 'settings')
423
+ * @returns Firestore path string
424
+ *
425
+ * @example
426
+ * ```typescript
427
+ * // Write private user notes
428
+ * const path = getUserDataPath('my-app', 'user-123', 'notes');
429
+ * // Returns: 'appData/my-app/userData/user-123/notes'
430
+ *
431
+ * await addDoc(collection(db, path), {
432
+ * _appId: appId,
433
+ * _createdAt: serverTimestamp(),
434
+ * _createdBy: userId,
435
+ * content: 'Private note'
436
+ * });
437
+ * ```
438
+ */
439
+ function getUserDataPath(appId, userId, collectionName) {
440
+ validateSegment('appId', appId);
441
+ validateSegment('userId', userId);
442
+ validateSegment('collectionName', collectionName);
443
+ return `appData/${appId}/userData/${userId}/${collectionName}`;
444
+ }
445
+ /**
446
+ * Generate path for a specific document in publicRead
447
+ *
448
+ * @param appId - Your application ID
449
+ * @param collection - Collection name
450
+ * @param docId - Document ID
451
+ * @returns Firestore document path string
452
+ *
453
+ * @example
454
+ * ```typescript
455
+ * const path = getPublicReadDocPath('my-app', 'announcements', 'announcement-1');
456
+ * // Returns: 'appData/my-app/publicRead/announcements/announcement-1'
457
+ *
458
+ * const docSnap = await getDoc(doc(db, path));
459
+ * ```
460
+ */
461
+ function getPublicReadDocPath(appId, collectionName, docId) {
462
+ validateSegment('appId', appId);
463
+ validateSegment('collectionName', collectionName);
464
+ validateSegment('docId', docId);
465
+ return `appData/${appId}/publicRead/${collectionName}/${docId}`;
466
+ }
467
+ /**
468
+ * Generate path for a specific document in publicData
469
+ *
470
+ * @param appId - Your application ID
471
+ * @param collection - Collection name
472
+ * @param docId - Document ID
473
+ * @returns Firestore document path string
474
+ *
475
+ * @example
476
+ * ```typescript
477
+ * const path = getPublicDataDocPath('my-app', 'posts', 'post-123');
478
+ * // Returns: 'appData/my-app/publicData/posts/post-123'
479
+ *
480
+ * const docSnap = await getDoc(doc(db, path));
481
+ * ```
482
+ */
483
+ function getPublicDataDocPath(appId, collectionName, docId) {
484
+ validateSegment('appId', appId);
485
+ validateSegment('collectionName', collectionName);
486
+ validateSegment('docId', docId);
487
+ return `appData/${appId}/publicData/${collectionName}/${docId}`;
488
+ }
489
+ /**
490
+ * Generate path for a specific document in userData
491
+ *
492
+ * @param appId - Your application ID
493
+ * @param userId - User ID who owns this data
494
+ * @param collection - Collection name
495
+ * @param docId - Document ID
496
+ * @returns Firestore document path string
497
+ *
498
+ * @example
499
+ * ```typescript
500
+ * const path = getUserDataDocPath('my-app', 'user-123', 'notes', 'note-456');
501
+ * // Returns: 'appData/my-app/userData/user-123/notes/note-456'
502
+ *
503
+ * const docSnap = await getDoc(doc(db, path));
504
+ * ```
505
+ */
506
+ function getUserDataDocPath(appId, userId, collectionName, docId) {
507
+ validateSegment('appId', appId);
508
+ validateSegment('userId', userId);
509
+ validateSegment('collectionName', collectionName);
510
+ validateSegment('docId', docId);
511
+ return `appData/${appId}/userData/${userId}/${collectionName}/${docId}`;
512
+ }
513
+ /**
514
+ * Validate a path segment to ensure it doesn't contain invalid characters
515
+ *
516
+ * @param name - Parameter name for error messages
517
+ * @param value - The segment value to validate
518
+ * @throws Error if the segment is invalid
519
+ */
520
+ function validateSegment(name, value) {
521
+ if (!value || typeof value !== 'string') {
522
+ throw new Error(`${name} must be a non-empty string`);
523
+ }
524
+ if (value.includes('/')) {
525
+ throw new Error(`${name} cannot contain forward slashes (/). Got: "${value}"`);
526
+ }
527
+ if (value.trim() !== value) {
528
+ throw new Error(`${name} cannot start or end with whitespace. Got: "${value}"`);
529
+ }
530
+ }
531
+ /**
532
+ * Path builder for advanced use cases
533
+ * Provides a fluent interface for building Firestore paths
534
+ *
535
+ * @example
536
+ * ```typescript
537
+ * // Build a path step by step
538
+ * const builder = new PathBuilder('my-app');
539
+ * const path = builder.publicData('posts').build();
540
+ * // Returns: 'appData/my-app/publicData/posts'
541
+ *
542
+ * // With document ID
543
+ * const docPath = builder.publicData('posts').doc('post-123').build();
544
+ * // Returns: 'appData/my-app/publicData/posts/post-123'
545
+ * ```
546
+ */
547
+ class PathBuilder {
548
+ constructor(appId) {
549
+ this.appId = appId;
550
+ this.segments = ['appData'];
551
+ validateSegment('appId', appId);
552
+ this.segments.push(appId);
553
+ }
554
+ /**
555
+ * Add publicRead collection to path
556
+ */
557
+ publicRead(collectionName) {
558
+ validateSegment('collectionName', collectionName);
559
+ this.segments.push('publicRead', collectionName);
560
+ return this;
561
+ }
562
+ /**
563
+ * Add publicData collection to path
564
+ */
565
+ publicData(collectionName) {
566
+ validateSegment('collectionName', collectionName);
567
+ this.segments.push('publicData', collectionName);
568
+ return this;
569
+ }
570
+ /**
571
+ * Add userData collection to path
572
+ */
573
+ userData(userId, collectionName) {
574
+ validateSegment('userId', userId);
575
+ validateSegment('collectionName', collectionName);
576
+ this.segments.push('userData', userId, collectionName);
577
+ return this;
578
+ }
579
+ /**
580
+ * Add document ID to path
581
+ */
582
+ doc(docId) {
583
+ validateSegment('docId', docId);
584
+ this.segments.push(docId);
585
+ return this;
586
+ }
587
+ /**
588
+ * Build the final path string
589
+ */
590
+ build() {
591
+ return this.segments.join('/');
592
+ }
593
+ }
594
+ /**
595
+ * Common path patterns as constants for frequently used paths
596
+ */
597
+ const PATH_PATTERNS = {
598
+ /**
599
+ * Base pattern for all SeaVerse data
600
+ */
601
+ APP_DATA: 'appData',
602
+ /**
603
+ * Permission layers
604
+ */
605
+ PUBLIC_READ: 'publicRead',
606
+ PUBLIC_DATA: 'publicData',
607
+ USER_DATA: 'userData',
608
+ };
609
+
610
+ export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT, DataServiceClient, ENDPOINTS, PATH_PATTERNS, PathBuilder, getFirebaseConfig, getPublicDataDocPath, getPublicDataPath, getPublicReadDocPath, getPublicReadPath, getUserDataDocPath, getUserDataPath, initializeWithToken };
357
611
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/config.ts","../src/client.ts","../src/helpers.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/config.ts","../src/client.ts","../src/helpers.ts","../src/path-helpers.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seaverse/data-service-sdk",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "SDK for SeaVerse Data Service - Firestore token management with three-tier permission model",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -23,6 +23,14 @@
23
23
  "dist",
24
24
  "README.md"
25
25
  ],
26
+ "scripts": {
27
+ "build": "rollup -c",
28
+ "build:tsc": "tsc",
29
+ "dev": "ROLLUP_WATCH=true rollup -c -w",
30
+ "clean": "rm -rf dist",
31
+ "test": "vitest",
32
+ "prepublishOnly": "npm run clean && npm run build"
33
+ },
26
34
  "keywords": [
27
35
  "seaverse",
28
36
  "sdk",
@@ -53,12 +61,5 @@
53
61
  },
54
62
  "publishConfig": {
55
63
  "access": "public"
56
- },
57
- "scripts": {
58
- "build": "rollup -c",
59
- "build:tsc": "tsc",
60
- "dev": "ROLLUP_WATCH=true rollup -c -w",
61
- "clean": "rm -rf dist",
62
- "test": "vitest"
63
64
  }
64
- }
65
+ }