@functionland/fula-client 0.2.9 → 0.2.10

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/fula_js.d.ts ADDED
@@ -0,0 +1,230 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ export class AcceptedShare {
5
+ private constructor();
6
+ free(): void;
7
+ [Symbol.dispose](): void;
8
+ }
9
+
10
+ export class EncryptedClient {
11
+ private constructor();
12
+ free(): void;
13
+ [Symbol.dispose](): void;
14
+ }
15
+
16
+ /**
17
+ * Accept a share token and get an AcceptedShare for accessing shared files
18
+ *
19
+ * @param client - EncryptedClient handle
20
+ * @param token_json - JSON string containing the ShareToken
21
+ * @returns AcceptedShare handle
22
+ */
23
+ export function acceptShare(client: EncryptedClient, token_json: string): Promise<AcceptedShare>;
24
+
25
+ /**
26
+ * Create a bucket
27
+ */
28
+ export function createBucket(client: EncryptedClient, name: string): Promise<void>;
29
+
30
+ /**
31
+ * Create an encrypted client for secure storage operations
32
+ *
33
+ * @param config - Client configuration (endpoint, accessToken, etc.)
34
+ * @param encryption - Encryption configuration (secretKey, obfuscationMode, etc.)
35
+ * @returns EncryptedClient handle
36
+ */
37
+ export function createEncryptedClient(config: any, encryption: any): Promise<EncryptedClient>;
38
+
39
+ /**
40
+ * Delete a bucket
41
+ */
42
+ export function deleteBucket(client: EncryptedClient, name: string): Promise<void>;
43
+
44
+ /**
45
+ * Delete an encrypted object
46
+ */
47
+ export function deleteEncrypted(client: EncryptedClient, bucket: string, key: string): Promise<void>;
48
+
49
+ /**
50
+ * Derive a 32-byte key from context and input
51
+ *
52
+ * Use this to derive encryption keys from Google credentials:
53
+ * ```javascript
54
+ * const key = deriveKey('my-app-v1', new TextEncoder().encode(userId + email));
55
+ * ```
56
+ */
57
+ export function deriveKey(context: string, input: Uint8Array): Uint8Array;
58
+
59
+ /**
60
+ * Export the secret key for backup (32 bytes)
61
+ *
62
+ * Store this securely - it's the master encryption key!
63
+ */
64
+ export function exportSecretKey(client: EncryptedClient): Promise<Uint8Array>;
65
+
66
+ /**
67
+ * Download and decrypt data by original key
68
+ *
69
+ * @param client - EncryptedClient handle
70
+ * @param bucket - Bucket name
71
+ * @param key - Original object key (path)
72
+ * @returns Decrypted data as Uint8Array
73
+ */
74
+ export function getDecrypted(client: EncryptedClient, bucket: string, key: string): Promise<Uint8Array>;
75
+
76
+ /**
77
+ * Download and decrypt data by storage key
78
+ */
79
+ export function getDecryptedByStorageKey(client: EncryptedClient, bucket: string, storage_key: string): Promise<Uint8Array>;
80
+
81
+ /**
82
+ * Get the public key for sharing (32 bytes)
83
+ */
84
+ export function getPublicKey(client: EncryptedClient): Promise<Uint8Array>;
85
+
86
+ /**
87
+ * Get share permissions
88
+ */
89
+ export function getSharePermissions(share: AcceptedShare): any;
90
+
91
+ /**
92
+ * Get SDK version
93
+ */
94
+ export function getVersion(): string;
95
+
96
+ /**
97
+ * Get a shared file using an accepted share
98
+ *
99
+ * @param client - EncryptedClient handle
100
+ * @param bucket - Bucket name
101
+ * @param storage_key - Storage key of the shared file
102
+ * @param share - AcceptedShare handle
103
+ * @returns Decrypted data as Uint8Array
104
+ */
105
+ export function getWithShare(client: EncryptedClient, bucket: string, storage_key: string, share: AcceptedShare): Promise<Uint8Array>;
106
+
107
+ /**
108
+ * Get a shared file directly using a share token JSON
109
+ *
110
+ * @param client - EncryptedClient handle
111
+ * @param bucket - Bucket name
112
+ * @param storage_key - Storage key of the shared file
113
+ * @param token_json - JSON string containing the ShareToken
114
+ * @returns Decrypted data as Uint8Array
115
+ */
116
+ export function getWithToken(client: EncryptedClient, bucket: string, storage_key: string, token_json: string): Promise<Uint8Array>;
117
+
118
+ /**
119
+ * Initialize the WASM module. Call this before any other functions.
120
+ */
121
+ export function init(): void;
122
+
123
+ /**
124
+ * Check if client uses FlatNamespace mode
125
+ */
126
+ export function isFlatNamespace(client: EncryptedClient): Promise<boolean>;
127
+
128
+ /**
129
+ * Check if a share is still valid (not expired)
130
+ */
131
+ export function isShareValid(share: AcceptedShare): boolean;
132
+
133
+ /**
134
+ * List all buckets
135
+ */
136
+ export function listBuckets(client: EncryptedClient): Promise<any>;
137
+
138
+ /**
139
+ * List objects with decrypted metadata
140
+ *
141
+ * @param client - EncryptedClient handle
142
+ * @param bucket - Bucket name
143
+ * @param options - List options (prefix, maxKeys, etc.)
144
+ * @returns Array of FileMetadata
145
+ */
146
+ export function listDecrypted(client: EncryptedClient, bucket: string, options: any): Promise<any>;
147
+
148
+ /**
149
+ * List directory structure
150
+ */
151
+ export function listDirectory(client: EncryptedClient, bucket: string, prefix?: string | null): Promise<any>;
152
+
153
+ /**
154
+ * Upload encrypted data
155
+ *
156
+ * @param client - EncryptedClient handle
157
+ * @param bucket - Bucket name
158
+ * @param key - Object key (path)
159
+ * @param data - Data to upload (Uint8Array)
160
+ * @returns PutResult with etag
161
+ */
162
+ export function putEncrypted(client: EncryptedClient, bucket: string, key: string, data: Uint8Array): Promise<any>;
163
+
164
+ /**
165
+ * Upload encrypted data with content type
166
+ */
167
+ export function putEncryptedWithType(client: EncryptedClient, bucket: string, key: string, data: Uint8Array, content_type: string): Promise<any>;
168
+
169
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
170
+
171
+ export interface InitOutput {
172
+ readonly memory: WebAssembly.Memory;
173
+ readonly __wbg_acceptedshare_free: (a: number, b: number) => void;
174
+ readonly __wbg_encryptedclient_free: (a: number, b: number) => void;
175
+ readonly acceptShare: (a: number, b: number, c: number) => number;
176
+ readonly createBucket: (a: number, b: number, c: number) => number;
177
+ readonly createEncryptedClient: (a: number, b: number) => number;
178
+ readonly deleteBucket: (a: number, b: number, c: number) => number;
179
+ readonly deleteEncrypted: (a: number, b: number, c: number, d: number, e: number) => number;
180
+ readonly deriveKey: (a: number, b: number, c: number, d: number, e: number) => void;
181
+ readonly exportSecretKey: (a: number) => number;
182
+ readonly getDecrypted: (a: number, b: number, c: number, d: number, e: number) => number;
183
+ readonly getDecryptedByStorageKey: (a: number, b: number, c: number, d: number, e: number) => number;
184
+ readonly getPublicKey: (a: number) => number;
185
+ readonly getSharePermissions: (a: number, b: number) => void;
186
+ readonly getVersion: (a: number) => void;
187
+ readonly getWithShare: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
188
+ readonly getWithToken: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
189
+ readonly isFlatNamespace: (a: number) => number;
190
+ readonly isShareValid: (a: number) => number;
191
+ readonly listBuckets: (a: number) => number;
192
+ readonly listDecrypted: (a: number, b: number, c: number, d: number) => number;
193
+ readonly listDirectory: (a: number, b: number, c: number, d: number, e: number) => number;
194
+ readonly putEncrypted: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
195
+ readonly putEncryptedWithType: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
196
+ readonly init: () => void;
197
+ readonly __wasm_bindgen_func_elem_975: (a: number, b: number) => void;
198
+ readonly __wasm_bindgen_func_elem_974: (a: number, b: number) => void;
199
+ readonly __wasm_bindgen_func_elem_1047: (a: number, b: number, c: number) => void;
200
+ readonly __wasm_bindgen_func_elem_1046: (a: number, b: number) => void;
201
+ readonly __wasm_bindgen_func_elem_1445: (a: number, b: number, c: number, d: number) => void;
202
+ readonly __wbindgen_export: (a: number, b: number) => number;
203
+ readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
204
+ readonly __wbindgen_export3: (a: number) => void;
205
+ readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
206
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
207
+ readonly __wbindgen_start: () => void;
208
+ }
209
+
210
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
211
+
212
+ /**
213
+ * Instantiates the given `module`, which can either be bytes or
214
+ * a precompiled `WebAssembly.Module`.
215
+ *
216
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
217
+ *
218
+ * @returns {InitOutput}
219
+ */
220
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
221
+
222
+ /**
223
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
224
+ * for everything else, calls `WebAssembly.instantiate` directly.
225
+ *
226
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
227
+ *
228
+ * @returns {Promise<InitOutput>}
229
+ */
230
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;