pinata 1.8.0 → 1.9.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.d.mts +26 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.js +312 -59
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +312 -59
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -4
- package/postinstall.js +0 -84
package/dist/index.d.mts
CHANGED
|
@@ -19,6 +19,8 @@ type UploadResponse = {
|
|
|
19
19
|
mime_type: string;
|
|
20
20
|
user_id: string;
|
|
21
21
|
group_id: string | null;
|
|
22
|
+
is_duplicate: true | null;
|
|
23
|
+
vectorized: true | null;
|
|
22
24
|
};
|
|
23
25
|
type FileObject = {
|
|
24
26
|
name: string;
|
|
@@ -41,6 +43,7 @@ type UploadOptions = {
|
|
|
41
43
|
metadata?: PinataMetadata;
|
|
42
44
|
keys?: string;
|
|
43
45
|
groupId?: string;
|
|
46
|
+
vectorize?: boolean;
|
|
44
47
|
};
|
|
45
48
|
type DeleteResponse = {
|
|
46
49
|
id: string;
|
|
@@ -296,6 +299,23 @@ type ContainsCIDResponse = {
|
|
|
296
299
|
containsCid: boolean;
|
|
297
300
|
cid: string | null;
|
|
298
301
|
};
|
|
302
|
+
type VectorizeFileResponse = {
|
|
303
|
+
status: boolean;
|
|
304
|
+
};
|
|
305
|
+
type VectorizeQuery = {
|
|
306
|
+
groupId: string;
|
|
307
|
+
query: string;
|
|
308
|
+
returnFile?: boolean;
|
|
309
|
+
};
|
|
310
|
+
type VectorQueryMatch = {
|
|
311
|
+
file_id: string;
|
|
312
|
+
cid: string;
|
|
313
|
+
score: number;
|
|
314
|
+
};
|
|
315
|
+
type VectorizeQueryResponse = {
|
|
316
|
+
count: number;
|
|
317
|
+
matches: VectorQueryMatch[];
|
|
318
|
+
};
|
|
299
319
|
|
|
300
320
|
declare class PinataSDK {
|
|
301
321
|
config: PinataConfig | undefined;
|
|
@@ -320,6 +340,9 @@ declare class Files {
|
|
|
320
340
|
addSwap(options: SwapCidOptions): Promise<SwapCidResponse>;
|
|
321
341
|
getSwapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;
|
|
322
342
|
deleteSwap(cid: string): Promise<string>;
|
|
343
|
+
vectorize(fileId: string): Promise<VectorizeFileResponse>;
|
|
344
|
+
queryVectors(options: VectorizeQuery): Promise<VectorizeQueryResponse | GetCIDResponse>;
|
|
345
|
+
deleteVectors(fileId: string): Promise<VectorizeFileResponse>;
|
|
323
346
|
}
|
|
324
347
|
declare class UploadBuilder<T> {
|
|
325
348
|
private config;
|
|
@@ -328,9 +351,11 @@ declare class UploadBuilder<T> {
|
|
|
328
351
|
private metadata;
|
|
329
352
|
private keys;
|
|
330
353
|
private groupId;
|
|
354
|
+
private vector;
|
|
331
355
|
constructor(config: PinataConfig | undefined, uploadFunction: (config: PinataConfig | undefined, ...args: any[]) => Promise<T>, ...args: any[]);
|
|
332
356
|
addMetadata(metadata: PinataMetadata): UploadBuilder<T>;
|
|
333
357
|
key(jwt: string): UploadBuilder<T>;
|
|
358
|
+
vectorize(): UploadBuilder<T>;
|
|
334
359
|
group(groupId: string): UploadBuilder<T>;
|
|
335
360
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
|
|
336
361
|
}
|
|
@@ -499,4 +524,4 @@ declare class TimeIntervalAnalyticsBuilder extends AnalyticsBuilder<TimeInterval
|
|
|
499
524
|
all(): Promise<TimeIntervalAnalyticsResponse>;
|
|
500
525
|
}
|
|
501
526
|
|
|
502
|
-
export { type AnalyticsQuery, type AuthTestResponse, type ContainsCIDResponse, type ContentType, type DataEndponts, type DeleteResponse, type Endpoints, type FileListItem, type FileListQuery, type FileListResponse, type FileObject, type GetCIDResponse, type GetGroupOptions, type GroupCIDOptions, type GroupListResponse, type GroupOptions, type GroupQueryOptions, type GroupResponseItem, type JsonBody, type KeyListItem, type KeyListQuery, type KeyListResponse, type KeyOptions, type KeyPermissions, type KeyResponse, type OptimizeImageOptions, type PinJobItem, type PinJobQuery, type PinJobResponse, type PinataConfig, type PinataMetadata, PinataSDK, type PinningEndpoints, type RevokeKeyResponse, type SignatureOptions, type SignatureResponse, type SignedUrlOptions, type SwapCidOptions, type SwapCidResponse, type SwapHistoryOptions, type TimeIntervalAnalyticsQuery, type TimeIntervalAnalyticsResponse, type TimePeriodItem, type TopAnalyticsItem, type TopAnalyticsQuery, type TopAnalyticsResponse, type UpdateFileOptions, type UpdateGroupFilesResponse, type UpdateGroupOptions, type UploadOptions, type UploadResponse, type UserPinnedDataResponse };
|
|
527
|
+
export { type AnalyticsQuery, type AuthTestResponse, type ContainsCIDResponse, type ContentType, type DataEndponts, type DeleteResponse, type Endpoints, type FileListItem, type FileListQuery, type FileListResponse, type FileObject, type GetCIDResponse, type GetGroupOptions, type GroupCIDOptions, type GroupListResponse, type GroupOptions, type GroupQueryOptions, type GroupResponseItem, type JsonBody, type KeyListItem, type KeyListQuery, type KeyListResponse, type KeyOptions, type KeyPermissions, type KeyResponse, type OptimizeImageOptions, type PinJobItem, type PinJobQuery, type PinJobResponse, type PinataConfig, type PinataMetadata, PinataSDK, type PinningEndpoints, type RevokeKeyResponse, type SignatureOptions, type SignatureResponse, type SignedUrlOptions, type SwapCidOptions, type SwapCidResponse, type SwapHistoryOptions, type TimeIntervalAnalyticsQuery, type TimeIntervalAnalyticsResponse, type TimePeriodItem, type TopAnalyticsItem, type TopAnalyticsQuery, type TopAnalyticsResponse, type UpdateFileOptions, type UpdateGroupFilesResponse, type UpdateGroupOptions, type UploadOptions, type UploadResponse, type UserPinnedDataResponse, type VectorQueryMatch, type VectorizeFileResponse, type VectorizeQuery, type VectorizeQueryResponse };
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ type UploadResponse = {
|
|
|
19
19
|
mime_type: string;
|
|
20
20
|
user_id: string;
|
|
21
21
|
group_id: string | null;
|
|
22
|
+
is_duplicate: true | null;
|
|
23
|
+
vectorized: true | null;
|
|
22
24
|
};
|
|
23
25
|
type FileObject = {
|
|
24
26
|
name: string;
|
|
@@ -41,6 +43,7 @@ type UploadOptions = {
|
|
|
41
43
|
metadata?: PinataMetadata;
|
|
42
44
|
keys?: string;
|
|
43
45
|
groupId?: string;
|
|
46
|
+
vectorize?: boolean;
|
|
44
47
|
};
|
|
45
48
|
type DeleteResponse = {
|
|
46
49
|
id: string;
|
|
@@ -296,6 +299,23 @@ type ContainsCIDResponse = {
|
|
|
296
299
|
containsCid: boolean;
|
|
297
300
|
cid: string | null;
|
|
298
301
|
};
|
|
302
|
+
type VectorizeFileResponse = {
|
|
303
|
+
status: boolean;
|
|
304
|
+
};
|
|
305
|
+
type VectorizeQuery = {
|
|
306
|
+
groupId: string;
|
|
307
|
+
query: string;
|
|
308
|
+
returnFile?: boolean;
|
|
309
|
+
};
|
|
310
|
+
type VectorQueryMatch = {
|
|
311
|
+
file_id: string;
|
|
312
|
+
cid: string;
|
|
313
|
+
score: number;
|
|
314
|
+
};
|
|
315
|
+
type VectorizeQueryResponse = {
|
|
316
|
+
count: number;
|
|
317
|
+
matches: VectorQueryMatch[];
|
|
318
|
+
};
|
|
299
319
|
|
|
300
320
|
declare class PinataSDK {
|
|
301
321
|
config: PinataConfig | undefined;
|
|
@@ -320,6 +340,9 @@ declare class Files {
|
|
|
320
340
|
addSwap(options: SwapCidOptions): Promise<SwapCidResponse>;
|
|
321
341
|
getSwapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;
|
|
322
342
|
deleteSwap(cid: string): Promise<string>;
|
|
343
|
+
vectorize(fileId: string): Promise<VectorizeFileResponse>;
|
|
344
|
+
queryVectors(options: VectorizeQuery): Promise<VectorizeQueryResponse | GetCIDResponse>;
|
|
345
|
+
deleteVectors(fileId: string): Promise<VectorizeFileResponse>;
|
|
323
346
|
}
|
|
324
347
|
declare class UploadBuilder<T> {
|
|
325
348
|
private config;
|
|
@@ -328,9 +351,11 @@ declare class UploadBuilder<T> {
|
|
|
328
351
|
private metadata;
|
|
329
352
|
private keys;
|
|
330
353
|
private groupId;
|
|
354
|
+
private vector;
|
|
331
355
|
constructor(config: PinataConfig | undefined, uploadFunction: (config: PinataConfig | undefined, ...args: any[]) => Promise<T>, ...args: any[]);
|
|
332
356
|
addMetadata(metadata: PinataMetadata): UploadBuilder<T>;
|
|
333
357
|
key(jwt: string): UploadBuilder<T>;
|
|
358
|
+
vectorize(): UploadBuilder<T>;
|
|
334
359
|
group(groupId: string): UploadBuilder<T>;
|
|
335
360
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
|
|
336
361
|
}
|
|
@@ -499,4 +524,4 @@ declare class TimeIntervalAnalyticsBuilder extends AnalyticsBuilder<TimeInterval
|
|
|
499
524
|
all(): Promise<TimeIntervalAnalyticsResponse>;
|
|
500
525
|
}
|
|
501
526
|
|
|
502
|
-
export { type AnalyticsQuery, type AuthTestResponse, type ContainsCIDResponse, type ContentType, type DataEndponts, type DeleteResponse, type Endpoints, type FileListItem, type FileListQuery, type FileListResponse, type FileObject, type GetCIDResponse, type GetGroupOptions, type GroupCIDOptions, type GroupListResponse, type GroupOptions, type GroupQueryOptions, type GroupResponseItem, type JsonBody, type KeyListItem, type KeyListQuery, type KeyListResponse, type KeyOptions, type KeyPermissions, type KeyResponse, type OptimizeImageOptions, type PinJobItem, type PinJobQuery, type PinJobResponse, type PinataConfig, type PinataMetadata, PinataSDK, type PinningEndpoints, type RevokeKeyResponse, type SignatureOptions, type SignatureResponse, type SignedUrlOptions, type SwapCidOptions, type SwapCidResponse, type SwapHistoryOptions, type TimeIntervalAnalyticsQuery, type TimeIntervalAnalyticsResponse, type TimePeriodItem, type TopAnalyticsItem, type TopAnalyticsQuery, type TopAnalyticsResponse, type UpdateFileOptions, type UpdateGroupFilesResponse, type UpdateGroupOptions, type UploadOptions, type UploadResponse, type UserPinnedDataResponse };
|
|
527
|
+
export { type AnalyticsQuery, type AuthTestResponse, type ContainsCIDResponse, type ContentType, type DataEndponts, type DeleteResponse, type Endpoints, type FileListItem, type FileListQuery, type FileListResponse, type FileObject, type GetCIDResponse, type GetGroupOptions, type GroupCIDOptions, type GroupListResponse, type GroupOptions, type GroupQueryOptions, type GroupResponseItem, type JsonBody, type KeyListItem, type KeyListQuery, type KeyListResponse, type KeyOptions, type KeyPermissions, type KeyResponse, type OptimizeImageOptions, type PinJobItem, type PinJobQuery, type PinJobResponse, type PinataConfig, type PinataMetadata, PinataSDK, type PinningEndpoints, type RevokeKeyResponse, type SignatureOptions, type SignatureResponse, type SignedUrlOptions, type SwapCidOptions, type SwapCidResponse, type SwapHistoryOptions, type TimeIntervalAnalyticsQuery, type TimeIntervalAnalyticsResponse, type TimePeriodItem, type TopAnalyticsItem, type TopAnalyticsQuery, type TopAnalyticsResponse, type UpdateFileOptions, type UpdateGroupFilesResponse, type UpdateGroupOptions, type UploadOptions, type UploadResponse, type UserPinnedDataResponse, type VectorQueryMatch, type VectorizeFileResponse, type VectorizeQuery, type VectorizeQueryResponse };
|
package/dist/index.js
CHANGED
|
@@ -198,11 +198,33 @@ var uploadFile = async (config, file, options) => {
|
|
|
198
198
|
const fileInfoReq = await fetch(`${dataEndpoint}/files/${fileId}`, {
|
|
199
199
|
method: "GET",
|
|
200
200
|
headers: {
|
|
201
|
-
Authorization: `Bearer ${
|
|
201
|
+
Authorization: `Bearer ${jwt}`
|
|
202
202
|
}
|
|
203
203
|
});
|
|
204
204
|
const fileInfo = await fileInfoReq.json();
|
|
205
205
|
const data2 = fileInfo.data;
|
|
206
|
+
if (options?.vectorize) {
|
|
207
|
+
const vectorReq = await fetch(
|
|
208
|
+
`${endpoint}/vectorize/files/${data2.id}`,
|
|
209
|
+
{
|
|
210
|
+
method: "POST",
|
|
211
|
+
headers: {
|
|
212
|
+
Authorization: `Bearer ${jwt}`
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
if (vectorReq.ok) {
|
|
217
|
+
data2.vectorized = true;
|
|
218
|
+
return data2;
|
|
219
|
+
} else {
|
|
220
|
+
const errorData = await vectorReq.text();
|
|
221
|
+
throw new NetworkError(
|
|
222
|
+
`HTTP error during vectorization: ${errorData}`,
|
|
223
|
+
vectorReq.status,
|
|
224
|
+
errorData
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
206
228
|
return data2;
|
|
207
229
|
}
|
|
208
230
|
}
|
|
@@ -250,6 +272,28 @@ var uploadFile = async (config, file, options) => {
|
|
|
250
272
|
}
|
|
251
273
|
const res = await request.json();
|
|
252
274
|
const resData = res.data;
|
|
275
|
+
if (options?.vectorize) {
|
|
276
|
+
const vectorReq = await fetch(
|
|
277
|
+
`${endpoint}/vectorize/files/${resData.id}`,
|
|
278
|
+
{
|
|
279
|
+
method: "POST",
|
|
280
|
+
headers: {
|
|
281
|
+
Authorization: `Bearer ${jwt}`
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
);
|
|
285
|
+
if (vectorReq.ok) {
|
|
286
|
+
resData.vectorized = true;
|
|
287
|
+
return resData;
|
|
288
|
+
} else {
|
|
289
|
+
const errorData = await vectorReq.text();
|
|
290
|
+
throw new NetworkError(
|
|
291
|
+
`HTTP error during vectorization: ${errorData}`,
|
|
292
|
+
vectorReq.status,
|
|
293
|
+
errorData
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
253
297
|
return resData;
|
|
254
298
|
} catch (error) {
|
|
255
299
|
if (error instanceof PinataError) {
|
|
@@ -319,6 +363,28 @@ var uploadBase64 = async (config, base64String, options) => {
|
|
|
319
363
|
}
|
|
320
364
|
const res = await request.json();
|
|
321
365
|
const resData = res.data;
|
|
366
|
+
if (options?.vectorize) {
|
|
367
|
+
const vectorReq = await fetch(
|
|
368
|
+
`${endpoint}/vectorize/files/${resData.id}`,
|
|
369
|
+
{
|
|
370
|
+
method: "POST",
|
|
371
|
+
headers: {
|
|
372
|
+
Authorization: `Bearer ${jwt}`
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
);
|
|
376
|
+
if (vectorReq.ok) {
|
|
377
|
+
resData.vectorized = true;
|
|
378
|
+
return resData;
|
|
379
|
+
} else {
|
|
380
|
+
const errorData = await vectorReq.text();
|
|
381
|
+
throw new NetworkError(
|
|
382
|
+
`HTTP error during vectorization: ${errorData}`,
|
|
383
|
+
vectorReq.status,
|
|
384
|
+
errorData
|
|
385
|
+
);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
322
388
|
return resData;
|
|
323
389
|
} catch (error) {
|
|
324
390
|
if (error instanceof PinataError) {
|
|
@@ -400,6 +466,28 @@ var uploadUrl = async (config, url, options) => {
|
|
|
400
466
|
}
|
|
401
467
|
const res = await request.json();
|
|
402
468
|
const resData = res.data;
|
|
469
|
+
if (options?.vectorize) {
|
|
470
|
+
const vectorReq = await fetch(
|
|
471
|
+
`${endpoint}/vectorize/files/${resData.id}`,
|
|
472
|
+
{
|
|
473
|
+
method: "POST",
|
|
474
|
+
headers: {
|
|
475
|
+
Authorization: `Bearer ${jwt}`
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
);
|
|
479
|
+
if (vectorReq.ok) {
|
|
480
|
+
resData.vectorized = true;
|
|
481
|
+
return resData;
|
|
482
|
+
} else {
|
|
483
|
+
const errorData = await vectorReq.text();
|
|
484
|
+
throw new NetworkError(
|
|
485
|
+
`HTTP error during vectorization: ${errorData}`,
|
|
486
|
+
vectorReq.status,
|
|
487
|
+
errorData
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
403
491
|
return resData;
|
|
404
492
|
} catch (error) {
|
|
405
493
|
if (error instanceof PinataError) {
|
|
@@ -469,6 +557,28 @@ var uploadJson = async (config, jsonData, options) => {
|
|
|
469
557
|
}
|
|
470
558
|
const res = await request.json();
|
|
471
559
|
const resData = res.data;
|
|
560
|
+
if (options?.vectorize) {
|
|
561
|
+
const vectorReq = await fetch(
|
|
562
|
+
`${endpoint}/vectorize/files/${resData.id}`,
|
|
563
|
+
{
|
|
564
|
+
method: "POST",
|
|
565
|
+
headers: {
|
|
566
|
+
Authorization: `Bearer ${jwt}`
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
);
|
|
570
|
+
if (vectorReq.ok) {
|
|
571
|
+
resData.vectorized = true;
|
|
572
|
+
return resData;
|
|
573
|
+
} else {
|
|
574
|
+
const errorData = await vectorReq.text();
|
|
575
|
+
throw new NetworkError(
|
|
576
|
+
`HTTP error during vectorization: ${errorData}`,
|
|
577
|
+
vectorReq.status,
|
|
578
|
+
errorData
|
|
579
|
+
);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
472
582
|
return resData;
|
|
473
583
|
} catch (error) {
|
|
474
584
|
if (error instanceof PinataError) {
|
|
@@ -2016,6 +2126,191 @@ var createSignedURL = async (config, options, imgOpts) => {
|
|
|
2016
2126
|
}
|
|
2017
2127
|
};
|
|
2018
2128
|
|
|
2129
|
+
// src/core/files/vectorizeFile.ts
|
|
2130
|
+
var vectorizeFile = async (config, fileId) => {
|
|
2131
|
+
if (!config) {
|
|
2132
|
+
throw new ValidationError("Pinata configuration is missing");
|
|
2133
|
+
}
|
|
2134
|
+
let headers;
|
|
2135
|
+
if (config.customHeaders && Object.keys(config.customHeaders).length > 0) {
|
|
2136
|
+
headers = {
|
|
2137
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2138
|
+
...config.customHeaders
|
|
2139
|
+
};
|
|
2140
|
+
} else {
|
|
2141
|
+
headers = {
|
|
2142
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2143
|
+
Source: "sdk/vectorizeFile"
|
|
2144
|
+
};
|
|
2145
|
+
}
|
|
2146
|
+
let endpoint = "https://uploads.pinata.cloud/v3";
|
|
2147
|
+
if (config.uploadUrl) {
|
|
2148
|
+
endpoint = config.uploadUrl;
|
|
2149
|
+
}
|
|
2150
|
+
try {
|
|
2151
|
+
const request = await fetch(`${endpoint}/vectorize/files/${fileId}`, {
|
|
2152
|
+
method: "POST",
|
|
2153
|
+
headers
|
|
2154
|
+
});
|
|
2155
|
+
if (!request.ok) {
|
|
2156
|
+
const errorData = await request.text();
|
|
2157
|
+
if (request.status === 401 || request.status === 403) {
|
|
2158
|
+
throw new AuthenticationError(
|
|
2159
|
+
`Authentication failed: ${errorData}`,
|
|
2160
|
+
request.status,
|
|
2161
|
+
errorData
|
|
2162
|
+
);
|
|
2163
|
+
}
|
|
2164
|
+
throw new NetworkError(
|
|
2165
|
+
`HTTP error: ${errorData}`,
|
|
2166
|
+
request.status,
|
|
2167
|
+
errorData
|
|
2168
|
+
);
|
|
2169
|
+
}
|
|
2170
|
+
const res = await request.json();
|
|
2171
|
+
return res;
|
|
2172
|
+
} catch (error) {
|
|
2173
|
+
if (error instanceof PinataError) {
|
|
2174
|
+
throw error;
|
|
2175
|
+
}
|
|
2176
|
+
if (error instanceof Error) {
|
|
2177
|
+
throw new PinataError(
|
|
2178
|
+
`Error processing vectorize file: ${error.message}`
|
|
2179
|
+
);
|
|
2180
|
+
}
|
|
2181
|
+
throw new PinataError("An unknown error occurred while vectorizing file");
|
|
2182
|
+
}
|
|
2183
|
+
};
|
|
2184
|
+
|
|
2185
|
+
// src/core/files/vectorizeQuery.ts
|
|
2186
|
+
var vectorizeQuery = async (config, options) => {
|
|
2187
|
+
if (!config) {
|
|
2188
|
+
throw new ValidationError("Pinata configuration is missing");
|
|
2189
|
+
}
|
|
2190
|
+
let headers;
|
|
2191
|
+
if (config.customHeaders && Object.keys(config.customHeaders).length > 0) {
|
|
2192
|
+
headers = {
|
|
2193
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2194
|
+
...config.customHeaders
|
|
2195
|
+
};
|
|
2196
|
+
} else {
|
|
2197
|
+
headers = {
|
|
2198
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2199
|
+
Source: "sdk/vectorQuery"
|
|
2200
|
+
};
|
|
2201
|
+
}
|
|
2202
|
+
let endpoint = "https://uploads.pinata.cloud/v3";
|
|
2203
|
+
if (config.uploadUrl) {
|
|
2204
|
+
endpoint = config.uploadUrl;
|
|
2205
|
+
}
|
|
2206
|
+
const body = JSON.stringify({
|
|
2207
|
+
text: options.query
|
|
2208
|
+
});
|
|
2209
|
+
try {
|
|
2210
|
+
const request = await fetch(
|
|
2211
|
+
`${endpoint}/vectorize/groups/${options.groupId}/query`,
|
|
2212
|
+
{
|
|
2213
|
+
method: "POST",
|
|
2214
|
+
headers,
|
|
2215
|
+
body
|
|
2216
|
+
}
|
|
2217
|
+
);
|
|
2218
|
+
if (!request.ok) {
|
|
2219
|
+
const errorData = await request.text();
|
|
2220
|
+
if (request.status === 401 || request.status === 403) {
|
|
2221
|
+
throw new AuthenticationError(
|
|
2222
|
+
`Authentication failed: ${errorData}`,
|
|
2223
|
+
request.status,
|
|
2224
|
+
errorData
|
|
2225
|
+
);
|
|
2226
|
+
}
|
|
2227
|
+
throw new NetworkError(
|
|
2228
|
+
`HTTP error: ${errorData}`,
|
|
2229
|
+
request.status,
|
|
2230
|
+
errorData
|
|
2231
|
+
);
|
|
2232
|
+
}
|
|
2233
|
+
const res = await request.json();
|
|
2234
|
+
const resData = res.data;
|
|
2235
|
+
if (options.returnFile) {
|
|
2236
|
+
if (resData.matches.length === 0) {
|
|
2237
|
+
throw new PinataError(`No files returned in query to fetch`);
|
|
2238
|
+
}
|
|
2239
|
+
console.log(config.pinataGateway);
|
|
2240
|
+
const cid = resData.matches[0].cid;
|
|
2241
|
+
const fileRes = await getCid(config, cid, void 0);
|
|
2242
|
+
return fileRes;
|
|
2243
|
+
}
|
|
2244
|
+
return resData;
|
|
2245
|
+
} catch (error) {
|
|
2246
|
+
if (error instanceof PinataError) {
|
|
2247
|
+
throw error;
|
|
2248
|
+
}
|
|
2249
|
+
if (error instanceof Error) {
|
|
2250
|
+
throw new PinataError(
|
|
2251
|
+
`Error processing vectorize file: ${error.message}`
|
|
2252
|
+
);
|
|
2253
|
+
}
|
|
2254
|
+
throw new PinataError("An unknown error occurred while vectorizing file");
|
|
2255
|
+
}
|
|
2256
|
+
};
|
|
2257
|
+
|
|
2258
|
+
// src/core/files/deleteFileVectors.ts
|
|
2259
|
+
var deleteFileVectors = async (config, fileId) => {
|
|
2260
|
+
if (!config) {
|
|
2261
|
+
throw new ValidationError("Pinata configuration is missing");
|
|
2262
|
+
}
|
|
2263
|
+
let headers;
|
|
2264
|
+
if (config.customHeaders && Object.keys(config.customHeaders).length > 0) {
|
|
2265
|
+
headers = {
|
|
2266
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2267
|
+
...config.customHeaders
|
|
2268
|
+
};
|
|
2269
|
+
} else {
|
|
2270
|
+
headers = {
|
|
2271
|
+
Authorization: `Bearer ${config.pinataJwt}`,
|
|
2272
|
+
Source: "sdk/vectorizeFile"
|
|
2273
|
+
};
|
|
2274
|
+
}
|
|
2275
|
+
let endpoint = "https://uploads.pinata.cloud/v3";
|
|
2276
|
+
if (config.uploadUrl) {
|
|
2277
|
+
endpoint = config.uploadUrl;
|
|
2278
|
+
}
|
|
2279
|
+
try {
|
|
2280
|
+
const request = await fetch(`${endpoint}/vectorize/files/${fileId}`, {
|
|
2281
|
+
method: "DELETE",
|
|
2282
|
+
headers
|
|
2283
|
+
});
|
|
2284
|
+
if (!request.ok) {
|
|
2285
|
+
const errorData = await request.text();
|
|
2286
|
+
if (request.status === 401 || request.status === 403) {
|
|
2287
|
+
throw new AuthenticationError(
|
|
2288
|
+
`Authentication failed: ${errorData}`,
|
|
2289
|
+
request.status,
|
|
2290
|
+
errorData
|
|
2291
|
+
);
|
|
2292
|
+
}
|
|
2293
|
+
throw new NetworkError(
|
|
2294
|
+
`HTTP error: ${errorData}`,
|
|
2295
|
+
request.status,
|
|
2296
|
+
errorData
|
|
2297
|
+
);
|
|
2298
|
+
}
|
|
2299
|
+
const res = await request.json();
|
|
2300
|
+
return res;
|
|
2301
|
+
} catch (error) {
|
|
2302
|
+
if (error instanceof PinataError) {
|
|
2303
|
+
throw error;
|
|
2304
|
+
}
|
|
2305
|
+
if (error instanceof Error) {
|
|
2306
|
+
throw new PinataError(
|
|
2307
|
+
`Error processing vectorize file: ${error.message}`
|
|
2308
|
+
);
|
|
2309
|
+
}
|
|
2310
|
+
throw new PinataError("An unknown error occurred while vectorizing file");
|
|
2311
|
+
}
|
|
2312
|
+
};
|
|
2313
|
+
|
|
2019
2314
|
// src/core/pinataSDK.ts
|
|
2020
2315
|
var formatConfig = (config) => {
|
|
2021
2316
|
let gateway = config?.pinataGateway;
|
|
@@ -2091,6 +2386,15 @@ var Files = class {
|
|
|
2091
2386
|
deleteSwap(cid) {
|
|
2092
2387
|
return deleteSwap(this.config, cid);
|
|
2093
2388
|
}
|
|
2389
|
+
vectorize(fileId) {
|
|
2390
|
+
return vectorizeFile(this.config, fileId);
|
|
2391
|
+
}
|
|
2392
|
+
queryVectors(options) {
|
|
2393
|
+
return vectorizeQuery(this.config, options);
|
|
2394
|
+
}
|
|
2395
|
+
deleteVectors(fileId) {
|
|
2396
|
+
return deleteFileVectors(this.config, fileId);
|
|
2397
|
+
}
|
|
2094
2398
|
};
|
|
2095
2399
|
var UploadBuilder = class {
|
|
2096
2400
|
constructor(config, uploadFunction, ...args) {
|
|
@@ -2106,6 +2410,10 @@ var UploadBuilder = class {
|
|
|
2106
2410
|
this.keys = jwt;
|
|
2107
2411
|
return this;
|
|
2108
2412
|
}
|
|
2413
|
+
vectorize() {
|
|
2414
|
+
this.vector = true;
|
|
2415
|
+
return this;
|
|
2416
|
+
}
|
|
2109
2417
|
// cidVersion(v: 0 | 1): UploadBuilder<T> {
|
|
2110
2418
|
// this.version = v;
|
|
2111
2419
|
// return this;
|
|
@@ -2125,6 +2433,9 @@ var UploadBuilder = class {
|
|
|
2125
2433
|
if (this.groupId) {
|
|
2126
2434
|
options.groupId = this.groupId;
|
|
2127
2435
|
}
|
|
2436
|
+
if (this.vector) {
|
|
2437
|
+
options.vectorize = this.vector;
|
|
2438
|
+
}
|
|
2128
2439
|
this.args[this.args.length - 1] = options;
|
|
2129
2440
|
return this.uploadFunction(this.config, ...this.args).then(
|
|
2130
2441
|
onfulfilled,
|
|
@@ -2265,42 +2576,6 @@ var Gateways = class {
|
|
|
2265
2576
|
createSignedURL(options) {
|
|
2266
2577
|
return new OptimizeImageCreateSignedURL(this.config, options);
|
|
2267
2578
|
}
|
|
2268
|
-
// topUsageAnalytics(options: {
|
|
2269
|
-
// domain: string;
|
|
2270
|
-
// start: string;
|
|
2271
|
-
// end: string;
|
|
2272
|
-
// sortBy: "requests" | "bandwidth";
|
|
2273
|
-
// attribute:
|
|
2274
|
-
// | "cid"
|
|
2275
|
-
// | "country"
|
|
2276
|
-
// | "region"
|
|
2277
|
-
// | "user_agent"
|
|
2278
|
-
// | "referer"
|
|
2279
|
-
// | "file_name";
|
|
2280
|
-
// }): TopGatewayAnalyticsBuilder {
|
|
2281
|
-
// return new TopGatewayAnalyticsBuilder(
|
|
2282
|
-
// this.config,
|
|
2283
|
-
// options.domain,
|
|
2284
|
-
// options.start,
|
|
2285
|
-
// options.end,
|
|
2286
|
-
// options.sortBy,
|
|
2287
|
-
// options.attribute,
|
|
2288
|
-
// );
|
|
2289
|
-
// }
|
|
2290
|
-
// dateIntervalAnalytics(options: {
|
|
2291
|
-
// domain: string;
|
|
2292
|
-
// start: string;
|
|
2293
|
-
// end: string;
|
|
2294
|
-
// interval: "day" | "week";
|
|
2295
|
-
// }): TimeIntervalGatewayAnalyticsBuilder {
|
|
2296
|
-
// return new TimeIntervalGatewayAnalyticsBuilder(
|
|
2297
|
-
// this.config,
|
|
2298
|
-
// options.domain,
|
|
2299
|
-
// options.start,
|
|
2300
|
-
// options.end,
|
|
2301
|
-
// options.interval,
|
|
2302
|
-
// );
|
|
2303
|
-
// }
|
|
2304
2579
|
};
|
|
2305
2580
|
var OptimizeImageGetCid = class {
|
|
2306
2581
|
constructor(config, cid) {
|
|
@@ -2526,28 +2801,6 @@ var Analytics = class {
|
|
|
2526
2801
|
this.requests.updateConfig(newConfig);
|
|
2527
2802
|
this.bandwidth.updateConfig(newConfig);
|
|
2528
2803
|
}
|
|
2529
|
-
// detailed(options: {
|
|
2530
|
-
// domain: string;
|
|
2531
|
-
// start: string;
|
|
2532
|
-
// end: string;
|
|
2533
|
-
// sortBy: "requests" | "bandwidth";
|
|
2534
|
-
// attribute:
|
|
2535
|
-
// | "cid"
|
|
2536
|
-
// | "country"
|
|
2537
|
-
// | "region"
|
|
2538
|
-
// | "user_agent"
|
|
2539
|
-
// | "referer"
|
|
2540
|
-
// | "file_name";
|
|
2541
|
-
// }): TopAnalyticsBuilder {
|
|
2542
|
-
// return new TopAnalyticsBuilder(
|
|
2543
|
-
// this.config,
|
|
2544
|
-
// options.domain,
|
|
2545
|
-
// options.start,
|
|
2546
|
-
// options.end,
|
|
2547
|
-
// options.sortBy,
|
|
2548
|
-
// options.attribute,
|
|
2549
|
-
// );
|
|
2550
|
-
// }
|
|
2551
2804
|
summary(options) {
|
|
2552
2805
|
return new TimeIntervalAnalyticsBuilder(
|
|
2553
2806
|
this.config,
|