@opendatalabs/vana-sdk 0.1.0-alpha.2dd2718 → 0.1.0-alpha.2e569eb

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.
Files changed (65) hide show
  1. package/dist/controllers/data.cjs +6 -0
  2. package/dist/controllers/data.cjs.map +1 -1
  3. package/dist/controllers/data.d.ts +14 -7
  4. package/dist/controllers/data.js +6 -0
  5. package/dist/controllers/data.js.map +1 -1
  6. package/dist/controllers/permissions.cjs +70 -11
  7. package/dist/controllers/permissions.cjs.map +1 -1
  8. package/dist/controllers/permissions.d.ts +18 -0
  9. package/dist/controllers/permissions.js +70 -11
  10. package/dist/controllers/permissions.js.map +1 -1
  11. package/dist/controllers/schemas.cjs +69 -0
  12. package/dist/controllers/schemas.cjs.map +1 -1
  13. package/dist/controllers/schemas.d.ts +39 -0
  14. package/dist/controllers/schemas.js +69 -0
  15. package/dist/controllers/schemas.js.map +1 -1
  16. package/dist/controllers/server.cjs +251 -42
  17. package/dist/controllers/server.cjs.map +1 -1
  18. package/dist/controllers/server.d.ts +111 -14
  19. package/dist/controllers/server.js +251 -42
  20. package/dist/controllers/server.js.map +1 -1
  21. package/dist/core.cjs.map +1 -1
  22. package/dist/core.d.ts +1 -1
  23. package/dist/core.js.map +1 -1
  24. package/dist/generated/server/server-exports.cjs +22 -0
  25. package/dist/generated/server/server-exports.cjs.map +1 -1
  26. package/dist/generated/server/server-exports.d.ts +27 -10
  27. package/dist/generated/server/server-exports.js +17 -0
  28. package/dist/generated/server/server-exports.js.map +1 -1
  29. package/dist/generated/server/server.cjs.map +1 -1
  30. package/dist/generated/server/server.d.ts +771 -402
  31. package/dist/server/relayerHandler.cjs.map +1 -1
  32. package/dist/server/relayerHandler.d.ts +1 -1
  33. package/dist/server/relayerHandler.js.map +1 -1
  34. package/dist/storage/index.cjs +3 -0
  35. package/dist/storage/index.cjs.map +1 -1
  36. package/dist/storage/index.d.ts +1 -0
  37. package/dist/storage/index.js +2 -0
  38. package/dist/storage/index.js.map +1 -1
  39. package/dist/storage/providers/dropbox.cjs +237 -0
  40. package/dist/storage/providers/dropbox.cjs.map +1 -0
  41. package/dist/storage/providers/dropbox.d.ts +39 -0
  42. package/dist/storage/providers/dropbox.js +215 -0
  43. package/dist/storage/providers/dropbox.js.map +1 -0
  44. package/dist/storage/providers/dropbox.test.d.ts +1 -0
  45. package/dist/tests/data-upload-owner-validation.test.d.ts +1 -0
  46. package/dist/types/controller-context.cjs.map +1 -1
  47. package/dist/types/controller-context.d.ts +1 -1
  48. package/dist/types/index.cjs.map +1 -1
  49. package/dist/types/index.d.ts +2 -2
  50. package/dist/types/index.js.map +1 -1
  51. package/dist/types/operations.cjs +3 -15
  52. package/dist/types/operations.cjs.map +1 -1
  53. package/dist/types/operations.d.ts +16 -42
  54. package/dist/types/operations.js +2 -13
  55. package/dist/types/operations.js.map +1 -1
  56. package/dist/types/permissions.cjs.map +1 -1
  57. package/dist/types/permissions.d.ts +2 -0
  58. package/dist/types/personal.cjs.map +1 -1
  59. package/dist/types/personal.d.ts +19 -0
  60. package/dist/utils/__tests__/chainQuery.test.d.ts +1 -0
  61. package/dist/utils/grantFiles.cjs +4 -1
  62. package/dist/utils/grantFiles.cjs.map +1 -1
  63. package/dist/utils/grantFiles.js +4 -1
  64. package/dist/utils/grantFiles.js.map +1 -1
  65. package/package.json +1 -1
@@ -1057,6 +1057,24 @@ export declare class PermissionsController extends BaseController {
1057
1057
  * @returns Promise resolving to array of file IDs
1058
1058
  */
1059
1059
  getPermissionFileIds(permissionId: bigint): Promise<bigint[]>;
1060
+ /**
1061
+ * Retrieves detailed grant file data from IPFS or HTTP storage.
1062
+ *
1063
+ * @remarks
1064
+ * This method automatically uses the SDK's configured downloadRelayer to bypass CORS restrictions.
1065
+ * Use this instead of importing the standalone `retrieveGrantFile` utility.
1066
+ *
1067
+ * @param grantUrl - The grant file URL (from OnChainPermissionGrant.grantUrl)
1068
+ * @returns Promise resolving to the complete grant file with operation details
1069
+ * @throws {NetworkError} When all retrieval attempts fail
1070
+ * @example
1071
+ * ```typescript
1072
+ * const grants = await vana.permissions.getUserPermissionGrantsOnChain();
1073
+ * const grantFile = await vana.permissions.retrieveGrantFile(grants[0].grantUrl);
1074
+ * console.log(`Operation: ${grantFile.operation}`);
1075
+ * ```
1076
+ */
1077
+ retrieveGrantFile(grantUrl: string): Promise<GrantFile>;
1060
1078
  /**
1061
1079
  * Get all permissions for a specific file (alias for getFilePermissionIds)
1062
1080
  *
@@ -2700,19 +2700,53 @@ class PermissionsController extends BaseController {
2700
2700
  const total = Number(totalCount);
2701
2701
  const limit = options.limit ?? 50;
2702
2702
  const offset = options.offset ?? 0;
2703
- const endIndex = Math.min(offset + limit, total);
2703
+ const includePermissions = options.includePermissions ?? true;
2704
+ const startId = total - offset;
2705
+ const endId = Math.max(startId - limit + 1, 1);
2704
2706
  const granteeIds = Array.from(
2705
- { length: endIndex - offset },
2706
- (_, i) => offset + i + 1
2707
- // Grantee IDs are 1-indexed
2708
- );
2709
- const granteePromises = granteeIds.map(
2710
- (granteeId) => this.getGranteeById(granteeId)
2711
- );
2712
- const granteeResults = await Promise.all(granteePromises);
2713
- const grantees = granteeResults.filter(
2714
- (grantee) => grantee !== null
2707
+ { length: startId - endId + 1 },
2708
+ (_, i) => startId - i
2709
+ // Generate IDs in descending order
2715
2710
  );
2711
+ let grantees;
2712
+ if (includePermissions) {
2713
+ const granteePromises = granteeIds.map(
2714
+ (granteeId) => this.getGranteeById(granteeId)
2715
+ );
2716
+ const granteeResults = await Promise.all(granteePromises);
2717
+ grantees = granteeResults.filter(
2718
+ (grantee) => grantee !== null
2719
+ );
2720
+ } else {
2721
+ const granteeInfoPromises = granteeIds.map(
2722
+ async (granteeId) => {
2723
+ try {
2724
+ const granteeInfo = await this.context.publicClient.readContract({
2725
+ address: DataPortabilityGranteesAddress,
2726
+ abi: DataPortabilityGranteesAbi,
2727
+ functionName: "granteesV2",
2728
+ args: [BigInt(granteeId)]
2729
+ });
2730
+ const grantee = {
2731
+ id: granteeId,
2732
+ owner: granteeInfo.owner,
2733
+ address: granteeInfo.granteeAddress,
2734
+ publicKey: granteeInfo.publicKey,
2735
+ permissionIds: []
2736
+ // TypeScript infers number[] from Grantee type
2737
+ };
2738
+ return grantee;
2739
+ } catch (error) {
2740
+ console.warn(`Failed to fetch grantee ${granteeId}:`, error);
2741
+ return null;
2742
+ }
2743
+ }
2744
+ );
2745
+ const granteeInfoResults = await Promise.all(granteeInfoPromises);
2746
+ grantees = granteeInfoResults.filter(
2747
+ (grantee) => grantee !== null
2748
+ );
2749
+ }
2716
2750
  return {
2717
2751
  grantees,
2718
2752
  total,
@@ -3218,6 +3252,31 @@ class PermissionsController extends BaseController {
3218
3252
  );
3219
3253
  }
3220
3254
  }
3255
+ /**
3256
+ * Retrieves detailed grant file data from IPFS or HTTP storage.
3257
+ *
3258
+ * @remarks
3259
+ * This method automatically uses the SDK's configured downloadRelayer to bypass CORS restrictions.
3260
+ * Use this instead of importing the standalone `retrieveGrantFile` utility.
3261
+ *
3262
+ * @param grantUrl - The grant file URL (from OnChainPermissionGrant.grantUrl)
3263
+ * @returns Promise resolving to the complete grant file with operation details
3264
+ * @throws {NetworkError} When all retrieval attempts fail
3265
+ * @example
3266
+ * ```typescript
3267
+ * const grants = await vana.permissions.getUserPermissionGrantsOnChain();
3268
+ * const grantFile = await vana.permissions.retrieveGrantFile(grants[0].grantUrl);
3269
+ * console.log(`Operation: ${grantFile.operation}`);
3270
+ * ```
3271
+ */
3272
+ async retrieveGrantFile(grantUrl) {
3273
+ const { retrieveGrantFile: retrieveGrantFileUtil } = await import("../utils/grantFiles");
3274
+ return retrieveGrantFileUtil(
3275
+ grantUrl,
3276
+ void 0,
3277
+ this.context.downloadRelayer
3278
+ );
3279
+ }
3221
3280
  /**
3222
3281
  * Get all permissions for a specific file (alias for getFilePermissionIds)
3223
3282
  *