pinata 1.1.0 → 1.2.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 CHANGED
@@ -59,9 +59,14 @@ type FileListResponse = {
59
59
  next_page_token: string;
60
60
  };
61
61
  type FileListQuery = {
62
+ name?: string;
63
+ group?: string;
64
+ mimeType?: string;
65
+ cid?: string;
66
+ cidPending?: boolean;
67
+ order?: "ASC" | "DESC";
62
68
  limit?: number;
63
69
  pageToken?: string;
64
- cidPending?: boolean;
65
70
  };
66
71
  type PinJobQuery = {
67
72
  sort?: "ASC" | "DSC";
@@ -245,7 +250,7 @@ type GroupResponseItem = {
245
250
  createdAt: string;
246
251
  };
247
252
  type GroupQueryOptions = {
248
- nameContains?: string;
253
+ name?: string;
249
254
  limit?: number;
250
255
  pageToken?: string;
251
256
  isPublic?: boolean;
@@ -325,6 +330,11 @@ declare class FilterFiles {
325
330
  private query;
326
331
  private currentPageToken;
327
332
  constructor(config: PinataConfig | undefined);
333
+ name(name: string): FilterFiles;
334
+ group(group: string): FilterFiles;
335
+ cid(cid: string): FilterFiles;
336
+ mimeType(mimeType: string): FilterFiles;
337
+ order(order: "ASC" | "DESC"): FilterFiles;
328
338
  limit(limit: number): FilterFiles;
329
339
  cidPending(cidPending: boolean): FilterFiles;
330
340
  pageToken(pageToken: string): FilterFiles;
@@ -337,8 +347,24 @@ declare class Gateways {
337
347
  config: PinataConfig | undefined;
338
348
  constructor(config?: PinataConfig);
339
349
  updateConfig(newConfig: PinataConfig): void;
340
- get(cid: string): Promise<GetCIDResponse>;
341
- createSignedURL(options: SignedUrlOptions): Promise<string>;
350
+ get(cid: string): OptimizeImageGetCid;
351
+ createSignedURL(options: SignedUrlOptions): OptimizeImageCreateSignedURL;
352
+ }
353
+ declare class OptimizeImageGetCid {
354
+ private config;
355
+ private cid;
356
+ private options;
357
+ constructor(config: PinataConfig | undefined, cid: string);
358
+ optimizeImage(options: OptimizeImageOptions): OptimizeImageGetCid;
359
+ then(onfulfilled?: ((value: GetCIDResponse) => any) | null): Promise<any>;
360
+ }
361
+ declare class OptimizeImageCreateSignedURL {
362
+ private config;
363
+ private urlOpts;
364
+ private imgOpts;
365
+ constructor(config: PinataConfig | undefined, urlOpts: SignedUrlOptions);
366
+ optimizeImage(options: OptimizeImageOptions): OptimizeImageCreateSignedURL;
367
+ then(onfulfilled?: ((value: string) => any) | null): Promise<any>;
342
368
  }
343
369
  declare class Keys {
344
370
  config: PinataConfig | undefined;
@@ -376,6 +402,7 @@ declare class FilterGroups {
376
402
  private query;
377
403
  private nextPageToken;
378
404
  constructor(config: PinataConfig | undefined);
405
+ name(name: string): FilterGroups;
379
406
  limit(limit: number): FilterGroups;
380
407
  isPublic(isPublic: boolean): FilterGroups;
381
408
  pageToken(pageToken: string): FilterGroups;
package/dist/index.d.ts CHANGED
@@ -59,9 +59,14 @@ type FileListResponse = {
59
59
  next_page_token: string;
60
60
  };
61
61
  type FileListQuery = {
62
+ name?: string;
63
+ group?: string;
64
+ mimeType?: string;
65
+ cid?: string;
66
+ cidPending?: boolean;
67
+ order?: "ASC" | "DESC";
62
68
  limit?: number;
63
69
  pageToken?: string;
64
- cidPending?: boolean;
65
70
  };
66
71
  type PinJobQuery = {
67
72
  sort?: "ASC" | "DSC";
@@ -245,7 +250,7 @@ type GroupResponseItem = {
245
250
  createdAt: string;
246
251
  };
247
252
  type GroupQueryOptions = {
248
- nameContains?: string;
253
+ name?: string;
249
254
  limit?: number;
250
255
  pageToken?: string;
251
256
  isPublic?: boolean;
@@ -325,6 +330,11 @@ declare class FilterFiles {
325
330
  private query;
326
331
  private currentPageToken;
327
332
  constructor(config: PinataConfig | undefined);
333
+ name(name: string): FilterFiles;
334
+ group(group: string): FilterFiles;
335
+ cid(cid: string): FilterFiles;
336
+ mimeType(mimeType: string): FilterFiles;
337
+ order(order: "ASC" | "DESC"): FilterFiles;
328
338
  limit(limit: number): FilterFiles;
329
339
  cidPending(cidPending: boolean): FilterFiles;
330
340
  pageToken(pageToken: string): FilterFiles;
@@ -337,8 +347,24 @@ declare class Gateways {
337
347
  config: PinataConfig | undefined;
338
348
  constructor(config?: PinataConfig);
339
349
  updateConfig(newConfig: PinataConfig): void;
340
- get(cid: string): Promise<GetCIDResponse>;
341
- createSignedURL(options: SignedUrlOptions): Promise<string>;
350
+ get(cid: string): OptimizeImageGetCid;
351
+ createSignedURL(options: SignedUrlOptions): OptimizeImageCreateSignedURL;
352
+ }
353
+ declare class OptimizeImageGetCid {
354
+ private config;
355
+ private cid;
356
+ private options;
357
+ constructor(config: PinataConfig | undefined, cid: string);
358
+ optimizeImage(options: OptimizeImageOptions): OptimizeImageGetCid;
359
+ then(onfulfilled?: ((value: GetCIDResponse) => any) | null): Promise<any>;
360
+ }
361
+ declare class OptimizeImageCreateSignedURL {
362
+ private config;
363
+ private urlOpts;
364
+ private imgOpts;
365
+ constructor(config: PinataConfig | undefined, urlOpts: SignedUrlOptions);
366
+ optimizeImage(options: OptimizeImageOptions): OptimizeImageCreateSignedURL;
367
+ then(onfulfilled?: ((value: string) => any) | null): Promise<any>;
342
368
  }
343
369
  declare class Keys {
344
370
  config: PinataConfig | undefined;
@@ -376,6 +402,7 @@ declare class FilterGroups {
376
402
  private query;
377
403
  private nextPageToken;
378
404
  constructor(config: PinataConfig | undefined);
405
+ name(name: string): FilterGroups;
379
406
  limit(limit: number): FilterGroups;
380
407
  isPublic(isPublic: boolean): FilterGroups;
381
408
  pageToken(pageToken: string): FilterGroups;
package/dist/index.js CHANGED
@@ -443,9 +443,19 @@ var listFiles = async (config, options) => {
443
443
  }
444
444
  const params = new URLSearchParams();
445
445
  if (options) {
446
- const { limit, pageToken, cidPending } = options;
446
+ const { name, group, cid, order, limit, mimeType, pageToken, cidPending } = options;
447
447
  if (limit)
448
448
  params.append("limit", limit.toString());
449
+ if (name)
450
+ params.append("name", name);
451
+ if (group)
452
+ params.append("group", group);
453
+ if (cid)
454
+ params.append("cid", cid);
455
+ if (mimeType)
456
+ params.append("mimeType", mimeType);
457
+ if (order)
458
+ params.append("order", order);
449
459
  if (pageToken)
450
460
  params.append("pageToken", pageToken);
451
461
  if (cidPending)
@@ -557,13 +567,41 @@ var updateFile = async (config, options) => {
557
567
  };
558
568
 
559
569
  // src/core/gateway/getCid.ts
560
- var getCid = async (config, cid) => {
570
+ var getCid = async (config, cid, options) => {
561
571
  if (!config) {
562
572
  throw new ValidationError("Pinata configuration is missing");
563
573
  }
564
574
  let data;
565
575
  let newUrl = `${config?.pinataGateway}/files/${cid}`;
566
576
  const params = new URLSearchParams();
577
+ if (options) {
578
+ if (options.width)
579
+ params.append("img-width", options.width.toString());
580
+ if (options.height)
581
+ params.append("img-height", options.height.toString());
582
+ if (options.dpr)
583
+ params.append("img-dpr", options.dpr.toString());
584
+ if (options.fit)
585
+ params.append("img-fit", options.fit);
586
+ if (options.gravity)
587
+ params.append("img-gravity", options.gravity);
588
+ if (options.quality)
589
+ params.append("img-quality", options.quality.toString());
590
+ if (options.format)
591
+ params.append("img-format", options.format);
592
+ if (options.animation !== void 0)
593
+ params.append("img-anim", options.animation.toString());
594
+ if (options.sharpen)
595
+ params.append("img-sharpen", options.sharpen.toString());
596
+ if (options.onError === true)
597
+ params.append("img-onerror", "redirect");
598
+ if (options.metadata)
599
+ params.append("img-metadata", options.metadata);
600
+ }
601
+ const queryString = params.toString();
602
+ if (queryString) {
603
+ newUrl += `?${queryString}`;
604
+ }
567
605
  const date = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
568
606
  const payload = JSON.stringify({
569
607
  url: newUrl,
@@ -571,17 +609,18 @@ var getCid = async (config, cid) => {
571
609
  expires: 30,
572
610
  method: "GET"
573
611
  });
574
- const signedUrlRequest = await fetch(
575
- "https://api.pinata.cloud/v3/files/sign",
576
- {
577
- method: "POST",
578
- headers: {
579
- "Content-Type": "application/json",
580
- Authorization: `Bearer ${config?.pinataJwt}`
581
- },
582
- body: payload
583
- }
584
- );
612
+ let endpoint = "https://api.pinata.cloud/v3";
613
+ if (config.endpointUrl) {
614
+ endpoint = config.endpointUrl;
615
+ }
616
+ const signedUrlRequest = await fetch(`${endpoint}/files/sign`, {
617
+ method: "POST",
618
+ headers: {
619
+ "Content-Type": "application/json",
620
+ Authorization: `Bearer ${config?.pinataJwt}`
621
+ },
622
+ body: payload
623
+ });
585
624
  const signedUrl = await signedUrlRequest.json();
586
625
  try {
587
626
  const request = await fetch(signedUrl.data);
@@ -894,13 +933,13 @@ var listGroups = async (config, options) => {
894
933
  }
895
934
  const params = new URLSearchParams();
896
935
  if (options) {
897
- const { pageToken, nameContains, limit, isPublic } = options;
936
+ const { pageToken, name, limit, isPublic } = options;
898
937
  if (pageToken)
899
938
  params.append("pageToken", pageToken.toString());
900
939
  if (isPublic)
901
940
  params.append("isPublic", isPublic.toString());
902
- if (nameContains !== void 0)
903
- params.append("nameContains", nameContains.toString());
941
+ if (name)
942
+ params.append("name", name);
904
943
  if (limit !== void 0)
905
944
  params.append("limit", limit.toString());
906
945
  }
@@ -1111,11 +1150,40 @@ var deleteGroup = async (config, options) => {
1111
1150
  };
1112
1151
 
1113
1152
  // src/core/gateway/createSignedURL.ts
1114
- var createSignedURL = async (config, options) => {
1153
+ var createSignedURL = async (config, options, imgOpts) => {
1115
1154
  if (!config) {
1116
1155
  throw new ValidationError("Pinata configuration is missing");
1117
1156
  }
1118
1157
  let newUrl = `${config?.pinataGateway}/files/${options.cid}`;
1158
+ const params = new URLSearchParams();
1159
+ if (imgOpts) {
1160
+ if (imgOpts.width)
1161
+ params.append("img-width", imgOpts.width.toString());
1162
+ if (imgOpts.height)
1163
+ params.append("img-height", imgOpts.height.toString());
1164
+ if (imgOpts.dpr)
1165
+ params.append("img-dpr", imgOpts.dpr.toString());
1166
+ if (imgOpts.fit)
1167
+ params.append("img-fit", imgOpts.fit);
1168
+ if (imgOpts.gravity)
1169
+ params.append("img-gravity", imgOpts.gravity);
1170
+ if (imgOpts.quality)
1171
+ params.append("img-quality", imgOpts.quality.toString());
1172
+ if (imgOpts.format)
1173
+ params.append("img-format", imgOpts.format);
1174
+ if (imgOpts.animation !== void 0)
1175
+ params.append("img-anim", imgOpts.animation.toString());
1176
+ if (imgOpts.sharpen)
1177
+ params.append("img-sharpen", imgOpts.sharpen.toString());
1178
+ if (imgOpts.onError === true)
1179
+ params.append("img-onerror", "redirect");
1180
+ if (imgOpts.metadata)
1181
+ params.append("img-metadata", imgOpts.metadata);
1182
+ }
1183
+ const queryString = params.toString();
1184
+ if (queryString) {
1185
+ newUrl += `?${queryString}`;
1186
+ }
1119
1187
  const date = options?.date || Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
1120
1188
  const payload = JSON.stringify({
1121
1189
  url: newUrl,
@@ -1295,6 +1363,26 @@ var FilterFiles = class {
1295
1363
  this.query = {};
1296
1364
  this.config = config;
1297
1365
  }
1366
+ name(name) {
1367
+ this.query.name = name;
1368
+ return this;
1369
+ }
1370
+ group(group) {
1371
+ this.query.group = group;
1372
+ return this;
1373
+ }
1374
+ cid(cid) {
1375
+ this.query.cid = cid;
1376
+ return this;
1377
+ }
1378
+ mimeType(mimeType) {
1379
+ this.query.mimeType = mimeType;
1380
+ return this;
1381
+ }
1382
+ order(order) {
1383
+ this.query.order = order;
1384
+ return this;
1385
+ }
1298
1386
  limit(limit) {
1299
1387
  this.query.limit = limit;
1300
1388
  return this;
@@ -1359,10 +1447,10 @@ var Gateways = class {
1359
1447
  this.config = newConfig;
1360
1448
  }
1361
1449
  get(cid) {
1362
- return getCid(this.config, cid);
1450
+ return new OptimizeImageGetCid(this.config, cid);
1363
1451
  }
1364
1452
  createSignedURL(options) {
1365
- return createSignedURL(this.config, options);
1453
+ return new OptimizeImageCreateSignedURL(this.config, options);
1366
1454
  }
1367
1455
  // get(cid: string): OptimizeImage {
1368
1456
  // return new OptimizeImage(this.config, cid);
@@ -1419,6 +1507,36 @@ var Gateways = class {
1419
1507
  // return deleteSwap(this.config, cid);
1420
1508
  // }
1421
1509
  };
1510
+ var OptimizeImageGetCid = class {
1511
+ constructor(config, cid) {
1512
+ this.options = {};
1513
+ this.config = config;
1514
+ this.cid = cid;
1515
+ }
1516
+ optimizeImage(options) {
1517
+ this.options = { ...this.options, ...options };
1518
+ return this;
1519
+ }
1520
+ then(onfulfilled) {
1521
+ return getCid(this.config, this.cid, this.options).then(onfulfilled);
1522
+ }
1523
+ };
1524
+ var OptimizeImageCreateSignedURL = class {
1525
+ constructor(config, urlOpts) {
1526
+ this.imgOpts = {};
1527
+ this.config = config;
1528
+ this.urlOpts = urlOpts;
1529
+ }
1530
+ optimizeImage(options) {
1531
+ this.imgOpts = { ...this.imgOpts, ...options };
1532
+ return this;
1533
+ }
1534
+ then(onfulfilled) {
1535
+ return createSignedURL(this.config, this.urlOpts, this.imgOpts).then(
1536
+ onfulfilled
1537
+ );
1538
+ }
1539
+ };
1422
1540
  var Keys = class {
1423
1541
  constructor(config) {
1424
1542
  this.config = formatConfig(config);
@@ -1540,10 +1658,10 @@ var FilterGroups = class {
1540
1658
  this.query = {};
1541
1659
  this.config = config;
1542
1660
  }
1543
- // name(nameContains: string): FilterGroups {
1544
- // this.query.nameContains = nameContains;
1545
- // return this;
1546
- // }
1661
+ name(name) {
1662
+ this.query.name = name;
1663
+ return this;
1664
+ }
1547
1665
  limit(limit) {
1548
1666
  this.query.limit = limit;
1549
1667
  return this;