@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
@@ -85,6 +85,12 @@ export declare class DataController extends BaseController {
85
85
  * - File permissions (here): Decryption access only
86
86
  * - Operation permissions: Use `vana.permissions.grant()` separately
87
87
  *
88
+ * **Owner/Encryption Constraint:**
89
+ * When encryption is enabled (default), the `owner` parameter must match
90
+ * the connected wallet address. This ensures only the wallet that performs
91
+ * encryption can decrypt the file. For delegation scenarios where the owner
92
+ * differs from the connected wallet, set `encrypt: false`.
93
+ *
88
94
  * @param params - Upload configuration object
89
95
  * @param params.content - Data to upload (string, object, or Blob)
90
96
  * @param params.filename - Name for the uploaded file
@@ -92,13 +98,17 @@ export declare class DataController extends BaseController {
92
98
  * Each requires `account` and `publicKey` for encryption.
93
99
  * @param params.schemaId - Schema for validation.
94
100
  * Obtain via `vana.schemas.list()`.
95
- * @param params.owner - Owner address for delegation scenarios.
101
+ * @param params.owner - Owner address for blockchain registration.
102
+ * Must match connected wallet when encryption is enabled.
103
+ * For delegation scenarios, disable encryption with `encrypt: false`.
96
104
  * Defaults to connected wallet address.
97
105
  * @param params.encrypt - Enable encryption (default: `true`)
98
106
  * @param params.providerName - Storage provider override
99
107
  *
100
108
  * @returns Upload result with file ID, URL, and transaction hash
101
109
  *
110
+ * @throws {InvalidConfigurationError} When encryption is enabled and owner differs from wallet.
111
+ * Set `encrypt: false` for delegation scenarios, or omit `owner` to use connected wallet.
102
112
  * @throws {Error} Storage not configured.
103
113
  * Configure storage providers in `VanaConfig`.
104
114
  * @throws {Error} No wallet addresses available.
@@ -148,15 +158,12 @@ export declare class DataController extends BaseController {
148
158
  * encrypt: false
149
159
  * } as const); // 'as const' ensures TypeScript infers encrypt: false literally
150
160
  *
151
- * // Upload on behalf of another user (delegation)
161
+ * // Upload on behalf of another user (delegation without encryption)
152
162
  * const result = await vana.data.upload({
153
163
  * content: "User's data",
154
164
  * filename: "delegated.txt",
155
- * owner: "0x5678...", // Different from connected wallet
156
- * permissions: [{
157
- * account: "0x1234...", // Address that can decrypt
158
- * publicKey: "0x04..." // Their public key for encryption
159
- * }]
165
+ * owner: "0x5678...", // Different from connected wallet
166
+ * encrypt: false // Required when owner differs from wallet
160
167
  * });
161
168
  * ```
162
169
  */
@@ -3,6 +3,7 @@ import { PollingManager } from "../core/pollingManager";
3
3
  import { BaseController } from "./base";
4
4
  import { getContractAddress } from "../config/addresses";
5
5
  import { getAbi } from "../generated/abi";
6
+ import { InvalidConfigurationError } from "../errors";
6
7
  import {
7
8
  GetUserFilesPaginatedDocument,
8
9
  GetFileProofsDocument,
@@ -54,6 +55,11 @@ class DataController extends BaseController {
54
55
  owner,
55
56
  schemaValidation = "strict"
56
57
  } = params;
58
+ if (encrypt && owner && owner.toLowerCase() !== this.context.userAddress.toLowerCase()) {
59
+ throw new InvalidConfigurationError(
60
+ "The 'owner' parameter cannot be different from the connected wallet's address when encryption is enabled. This would create an un-decryptable file."
61
+ );
62
+ }
57
63
  try {
58
64
  let isValid = true;
59
65
  let validationErrors = [];