@lumeweb/pinner 0.1.0 → 0.1.3
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/README.md +197 -18
- package/dist/esm/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +2 -2
- package/dist/esm/adapters/pinata/index.d.ts +4 -4
- package/dist/esm/adapters/pinata/index.js +6 -3
- package/dist/esm/adapters/pinata/legacy/adapter.d.ts +73 -0
- package/dist/esm/adapters/pinata/legacy/adapter.js +124 -0
- package/dist/esm/adapters/pinata/legacy/adapter.js.map +1 -0
- package/dist/esm/adapters/pinata/legacy/index.d.ts +1 -0
- package/dist/esm/adapters/pinata/legacy/index.js +1 -0
- package/dist/esm/adapters/pinata/shared/index.d.ts +1 -0
- package/dist/esm/adapters/pinata/shared/index.js +1 -0
- package/dist/esm/adapters/pinata/shared/types.d.ts +218 -0
- package/dist/esm/adapters/pinata/shared/utils.d.ts +1 -0
- package/dist/esm/adapters/pinata/shared/utils.js +78 -0
- package/dist/esm/adapters/pinata/shared/utils.js.map +1 -0
- package/dist/esm/adapters/pinata/v2/adapter-interface.d.ts +197 -0
- package/dist/esm/adapters/pinata/v2/adapter.d.ts +16 -0
- package/dist/esm/adapters/pinata/v2/adapter.js +636 -0
- package/dist/esm/adapters/pinata/v2/adapter.js.map +1 -0
- package/dist/esm/adapters/pinata/v2/index.d.ts +3 -0
- package/dist/esm/adapters/pinata/v2/index.js +1 -0
- package/dist/esm/adapters/pinata/v2/types.d.ts +308 -0
- package/dist/esm/api/generated/schemas/iPNSKeyListResponse.d.ts +46 -0
- package/dist/esm/api/generated/schemas/iPNSKeyListResponseResponse.d.ts +10 -0
- package/dist/esm/api/generated/schemas/iPNSKeyRequest.d.ts +43 -0
- package/dist/esm/api/generated/schemas/iPNSKeyResponse.d.ts +46 -0
- package/dist/esm/api/generated/schemas/iPNSPublishRequest.d.ts +44 -0
- package/dist/esm/api/generated/schemas/iPNSPublishResponse.d.ts +46 -0
- package/dist/esm/api/generated/schemas/iPNSResolveResponse.d.ts +47 -0
- package/dist/esm/api/generated/schemas/sSLStatusInfo.d.ts +45 -0
- package/dist/esm/api/generated/schemas/websiteConfigResponse.d.ts +43 -0
- package/dist/esm/api/generated/schemas/websiteItem.d.ts +23 -0
- package/dist/esm/api/generated/schemas/websiteItemResponse.d.ts +10 -0
- package/dist/esm/api/generated/schemas/websiteRequest.d.ts +45 -0
- package/dist/esm/api/generated/schemas/websiteResponse.d.ts +23 -0
- package/dist/esm/api/generated/schemas/websiteUpdateRequest.d.ts +45 -0
- package/dist/esm/api/generated/schemas/websiteValidateResponse.d.ts +45 -0
- package/dist/esm/api/ipns.d.ts +28 -0
- package/dist/esm/api/ipns.js +83 -0
- package/dist/esm/api/ipns.js.map +1 -0
- package/dist/esm/api/websites.d.ts +48 -0
- package/dist/esm/api/websites.js +168 -0
- package/dist/esm/api/websites.js.map +1 -0
- package/dist/esm/blockstore/unstorage-base.d.ts +4 -1
- package/dist/esm/blockstore/unstorage-base.js +3 -3
- package/dist/esm/blockstore/unstorage-base.js.map +1 -1
- package/dist/esm/blockstore/unstorage.d.ts +3 -31
- package/dist/esm/blockstore/unstorage.js +2 -2
- package/dist/esm/blockstore/unstorage.js.map +1 -1
- package/dist/esm/encoder/base64.js.map +1 -1
- package/dist/esm/encoder/csv/row-formatter.js.map +1 -1
- package/dist/esm/encoder/csv.js.map +1 -1
- package/dist/esm/encoder/json.js.map +1 -1
- package/dist/esm/encoder/text.js.map +1 -1
- package/dist/esm/encoder/url.js.map +1 -1
- package/dist/esm/index.d.ts +7 -5
- package/dist/esm/index.js +5 -2
- package/dist/esm/pin/client.js +8 -5
- package/dist/esm/pin/client.js.map +1 -1
- package/dist/esm/pinner.d.ts +16 -0
- package/dist/esm/pinner.js +24 -0
- package/dist/esm/pinner.js.map +1 -1
- package/dist/esm/types/constants.js +6 -2
- package/dist/esm/types/constants.js.map +1 -1
- package/dist/esm/types/pin.d.ts +4 -1
- package/dist/esm/types/type-guards.d.ts +0 -1
- package/dist/esm/types/upload.d.ts +0 -1
- package/dist/esm/upload/base-upload.js +3 -3
- package/dist/esm/upload/base-upload.js.map +1 -1
- package/dist/esm/upload/builder.d.ts +0 -1
- package/dist/esm/upload/car.js +3 -3
- package/dist/esm/upload/car.js.map +1 -1
- package/dist/esm/upload/manager.js +5 -5
- package/dist/esm/upload/manager.js.map +1 -1
- package/dist/esm/upload/normalize.js +1 -1
- package/dist/esm/upload/normalize.js.map +1 -1
- package/dist/esm/utils/stream.d.ts +0 -3
- package/dist/esm/utils/tus-patch.js +2 -2
- package/dist/esm/utils/tus-patch.js.map +1 -1
- package/dist/esm/utils/validation.js.map +1 -1
- package/package.json +33 -32
- package/dist/cjs/_virtual/rolldown_runtime.cjs +0 -29
- package/dist/cjs/adapters/pinata/adapter.cjs +0 -88
- package/dist/cjs/adapters/pinata/adapter.cjs.map +0 -1
- package/dist/cjs/adapters/pinata/adapter.d.cts +0 -35
- package/dist/cjs/adapters/pinata/builder.cjs +0 -194
- package/dist/cjs/adapters/pinata/builder.cjs.map +0 -1
- package/dist/cjs/adapters/pinata/index.cjs +0 -3
- package/dist/cjs/adapters/pinata/list-builder.cjs +0 -52
- package/dist/cjs/adapters/pinata/list-builder.cjs.map +0 -1
- package/dist/cjs/blockstore/index.cjs +0 -2
- package/dist/cjs/blockstore/unstorage-base.cjs +0 -240
- package/dist/cjs/blockstore/unstorage-base.cjs.map +0 -1
- package/dist/cjs/blockstore/unstorage-base.d.cts +0 -23
- package/dist/cjs/blockstore/unstorage.cjs +0 -39
- package/dist/cjs/blockstore/unstorage.cjs.map +0 -1
- package/dist/cjs/blockstore/unstorage.d.cts +0 -36
- package/dist/cjs/config.d.cts +0 -51
- package/dist/cjs/encoder/base64.cjs +0 -38
- package/dist/cjs/encoder/base64.cjs.map +0 -1
- package/dist/cjs/encoder/csv/csv-formatter.cjs +0 -81
- package/dist/cjs/encoder/csv/csv-formatter.cjs.map +0 -1
- package/dist/cjs/encoder/csv/field-formatter.cjs +0 -76
- package/dist/cjs/encoder/csv/field-formatter.cjs.map +0 -1
- package/dist/cjs/encoder/csv/row-formatter.cjs +0 -159
- package/dist/cjs/encoder/csv/row-formatter.cjs.map +0 -1
- package/dist/cjs/encoder/csv.cjs +0 -44
- package/dist/cjs/encoder/csv.cjs.map +0 -1
- package/dist/cjs/encoder/error.cjs +0 -19
- package/dist/cjs/encoder/error.cjs.map +0 -1
- package/dist/cjs/encoder/index.cjs +0 -6
- package/dist/cjs/encoder/json.cjs +0 -36
- package/dist/cjs/encoder/json.cjs.map +0 -1
- package/dist/cjs/encoder/text.cjs +0 -35
- package/dist/cjs/encoder/text.cjs.map +0 -1
- package/dist/cjs/encoder/url.cjs +0 -39
- package/dist/cjs/encoder/url.cjs.map +0 -1
- package/dist/cjs/errors/index.cjs +0 -104
- package/dist/cjs/errors/index.cjs.map +0 -1
- package/dist/cjs/errors/index.d.cts +0 -47
- package/dist/cjs/index.cjs +0 -42
- package/dist/cjs/index.d.cts +0 -14
- package/dist/cjs/pin/client.cjs +0 -96
- package/dist/cjs/pin/client.cjs.map +0 -1
- package/dist/cjs/pin/index.cjs +0 -1
- package/dist/cjs/pinner.cjs +0 -126
- package/dist/cjs/pinner.cjs.map +0 -1
- package/dist/cjs/pinner.d.cts +0 -77
- package/dist/cjs/types/constants.cjs +0 -34
- package/dist/cjs/types/constants.cjs.map +0 -1
- package/dist/cjs/types/mime-types.cjs +0 -11
- package/dist/cjs/types/mime-types.cjs.map +0 -1
- package/dist/cjs/types/mime-types.d.cts +0 -7
- package/dist/cjs/types/pin.d.cts +0 -74
- package/dist/cjs/types/pinata.d.cts +0 -99
- package/dist/cjs/types/type-guards.cjs +0 -20
- package/dist/cjs/types/type-guards.cjs.map +0 -1
- package/dist/cjs/types/type-guards.d.cts +0 -15
- package/dist/cjs/types/upload.cjs +0 -18
- package/dist/cjs/types/upload.cjs.map +0 -1
- package/dist/cjs/types/upload.d.cts +0 -189
- package/dist/cjs/upload/base-upload.cjs +0 -135
- package/dist/cjs/upload/base-upload.cjs.map +0 -1
- package/dist/cjs/upload/builder.cjs +0 -174
- package/dist/cjs/upload/builder.cjs.map +0 -1
- package/dist/cjs/upload/builder.d.cts +0 -60
- package/dist/cjs/upload/car.cjs +0 -129
- package/dist/cjs/upload/car.cjs.map +0 -1
- package/dist/cjs/upload/car.d.cts +0 -19
- package/dist/cjs/upload/constants.cjs +0 -9
- package/dist/cjs/upload/constants.cjs.map +0 -1
- package/dist/cjs/upload/index.cjs +0 -8
- package/dist/cjs/upload/manager.cjs +0 -249
- package/dist/cjs/upload/manager.cjs.map +0 -1
- package/dist/cjs/upload/manager.d.cts +0 -35
- package/dist/cjs/upload/normalize.cjs +0 -28
- package/dist/cjs/upload/normalize.cjs.map +0 -1
- package/dist/cjs/upload/tus-upload.cjs +0 -74
- package/dist/cjs/upload/tus-upload.cjs.map +0 -1
- package/dist/cjs/upload/xhr-upload.cjs +0 -41
- package/dist/cjs/upload/xhr-upload.cjs.map +0 -1
- package/dist/cjs/utils/env.cjs +0 -12
- package/dist/cjs/utils/env.cjs.map +0 -1
- package/dist/cjs/utils/stream.cjs +0 -141
- package/dist/cjs/utils/stream.cjs.map +0 -1
- package/dist/cjs/utils/stream.d.cts +0 -23
- package/dist/cjs/utils/tus-patch.cjs +0 -50
- package/dist/cjs/utils/tus-patch.cjs.map +0 -1
- package/dist/cjs/utils/validation.cjs +0 -62
- package/dist/cjs/utils/validation.cjs.map +0 -1
- package/dist/esm/adapters/pinata/adapter.d.ts +0 -35
- package/dist/esm/adapters/pinata/adapter.js +0 -87
- package/dist/esm/adapters/pinata/adapter.js.map +0 -1
- package/dist/esm/adapters/pinata/builder.d.ts +0 -1
- package/dist/esm/adapters/pinata/builder.js +0 -187
- package/dist/esm/adapters/pinata/builder.js.map +0 -1
- package/dist/esm/adapters/pinata/list-builder.d.ts +0 -1
- package/dist/esm/adapters/pinata/list-builder.js +0 -51
- package/dist/esm/adapters/pinata/list-builder.js.map +0 -1
- package/dist/esm/types/pinata.d.ts +0 -99
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
//#region src/adapters/pinata/shared/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Pinata SDK 1.x Types
|
|
4
|
+
* Source: https://github.com/PinataCloud/pinata/commit/c141177ff3036e46fa7b95fcc68c159b58817836
|
|
5
|
+
* - src/core/types.ts
|
|
6
|
+
*
|
|
7
|
+
* Copyright © 2024 Pinata Cloud Technologies
|
|
8
|
+
* Type definitions adapted from Pinata SDK for compatibility.
|
|
9
|
+
* Original Pinata SDK: https://github.com/PinataCloud/pinata
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Pinata configuration options
|
|
13
|
+
*/
|
|
14
|
+
type PinataConfig = {
|
|
15
|
+
pinataJwt?: string;
|
|
16
|
+
pinataGateway?: string;
|
|
17
|
+
pinataGatewayKey?: string;
|
|
18
|
+
customHeaders?: Record<string, string>;
|
|
19
|
+
endpointUrl?: string;
|
|
20
|
+
uploadUrl?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Upload response from Pinata
|
|
24
|
+
*/
|
|
25
|
+
type UploadResponse = {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
cid: string;
|
|
29
|
+
size: number;
|
|
30
|
+
created_at: string;
|
|
31
|
+
number_of_files: number;
|
|
32
|
+
mime_type: string;
|
|
33
|
+
user_id: string;
|
|
34
|
+
group_id: string | null;
|
|
35
|
+
is_duplicate: true | null;
|
|
36
|
+
vectorized: true | null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Pinata metadata options
|
|
40
|
+
*/
|
|
41
|
+
type PinataMetadata = {
|
|
42
|
+
name?: string;
|
|
43
|
+
keyvalues?: Record<string, string>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Upload options
|
|
47
|
+
*/
|
|
48
|
+
type UploadOptions = {
|
|
49
|
+
metadata?: PinataMetadata;
|
|
50
|
+
keys?: string;
|
|
51
|
+
groupId?: string;
|
|
52
|
+
vectorize?: boolean;
|
|
53
|
+
url?: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* File list item
|
|
57
|
+
*/
|
|
58
|
+
type FileListItem = {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string | null;
|
|
61
|
+
cid: "pending" | string;
|
|
62
|
+
size: number;
|
|
63
|
+
number_of_files: number;
|
|
64
|
+
mime_type: string;
|
|
65
|
+
keyvalues: Record<string, string>;
|
|
66
|
+
group_id: string | null;
|
|
67
|
+
created_at: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* File list response
|
|
71
|
+
*/
|
|
72
|
+
type FileListResponse = {
|
|
73
|
+
files: FileListItem[];
|
|
74
|
+
next_page_token: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* File list query options
|
|
78
|
+
*/
|
|
79
|
+
type FileListQuery = {
|
|
80
|
+
name?: string;
|
|
81
|
+
group?: string;
|
|
82
|
+
noGroup?: boolean;
|
|
83
|
+
mimeType?: string;
|
|
84
|
+
cid?: string;
|
|
85
|
+
cidPending?: boolean;
|
|
86
|
+
metadata?: Record<string, string>;
|
|
87
|
+
order?: "ASC" | "DESC";
|
|
88
|
+
limit?: number;
|
|
89
|
+
pageToken?: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Pin job query options
|
|
93
|
+
*/
|
|
94
|
+
type PinJobQuery = {
|
|
95
|
+
sort?: "ASC" | "DSC";
|
|
96
|
+
status?: "prechecking" | "retrieving" | "expired" | "over_free_limit" | "over_max_size" | "invalid_object" | "bad_host_node";
|
|
97
|
+
ipfs_pin_hash?: string;
|
|
98
|
+
limit?: number;
|
|
99
|
+
offset?: number;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Pin job item
|
|
103
|
+
*/
|
|
104
|
+
type PinJobItem = {
|
|
105
|
+
id: string;
|
|
106
|
+
ipfs_pin_hash: string;
|
|
107
|
+
date_queued: string;
|
|
108
|
+
name: string;
|
|
109
|
+
status: string;
|
|
110
|
+
keyvalues: any;
|
|
111
|
+
host_nodes: string[];
|
|
112
|
+
pin_policy: {
|
|
113
|
+
regions: {
|
|
114
|
+
id: string;
|
|
115
|
+
desiredReplicationCount: number;
|
|
116
|
+
}[];
|
|
117
|
+
version: number;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Pin job response
|
|
122
|
+
*/
|
|
123
|
+
type PinJobResponse = {
|
|
124
|
+
rows: PinJobItem[];
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Signed URL options
|
|
128
|
+
*/
|
|
129
|
+
type SignedUrlOptions = {
|
|
130
|
+
cid: string;
|
|
131
|
+
date?: number;
|
|
132
|
+
expires: number;
|
|
133
|
+
gateway?: string;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Analytics query options
|
|
137
|
+
*/
|
|
138
|
+
type AnalyticsQuery = {
|
|
139
|
+
gateway_domain: string;
|
|
140
|
+
start_date: string;
|
|
141
|
+
end_date: string;
|
|
142
|
+
cid?: string;
|
|
143
|
+
file_name?: string;
|
|
144
|
+
user_agent?: string;
|
|
145
|
+
country?: string;
|
|
146
|
+
region?: string;
|
|
147
|
+
referer?: string;
|
|
148
|
+
limit?: number;
|
|
149
|
+
sort_order?: "asc" | "desc";
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Top analytics query options
|
|
153
|
+
*/
|
|
154
|
+
type TopAnalyticsQuery = AnalyticsQuery & {
|
|
155
|
+
sort_by: "requests" | "bandwidth";
|
|
156
|
+
attribute: "cid" | "country" | "region" | "user_agent" | "referer" | "file_name";
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Top analytics response
|
|
160
|
+
*/
|
|
161
|
+
type TopAnalyticsResponse = {
|
|
162
|
+
data: TopAnalyticsItem[];
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Top analytics item
|
|
166
|
+
*/
|
|
167
|
+
type TopAnalyticsItem = {
|
|
168
|
+
value: string;
|
|
169
|
+
requests: number;
|
|
170
|
+
bandwidth: number;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Time interval analytics query options
|
|
174
|
+
*/
|
|
175
|
+
type TimeIntervalAnalyticsQuery = AnalyticsQuery & {
|
|
176
|
+
sort_by?: "requests" | "bandwidth";
|
|
177
|
+
date_interval: "day" | "week";
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Time period item
|
|
181
|
+
*/
|
|
182
|
+
type TimePeriodItem = {
|
|
183
|
+
period_start_time: string;
|
|
184
|
+
requests: number;
|
|
185
|
+
bandwidth: number;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Time interval analytics response
|
|
189
|
+
*/
|
|
190
|
+
type TimeIntervalAnalyticsResponse = {
|
|
191
|
+
total_requests: number;
|
|
192
|
+
total_bandwidth: number;
|
|
193
|
+
time_periods: TimePeriodItem[];
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Swap CID options
|
|
197
|
+
*/
|
|
198
|
+
type SwapCidOptions = {
|
|
199
|
+
cid: string;
|
|
200
|
+
swapCid: string;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Swap history options
|
|
204
|
+
*/
|
|
205
|
+
type SwapHistoryOptions = {
|
|
206
|
+
cid: string;
|
|
207
|
+
domain: string;
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Swap CID response
|
|
211
|
+
*/
|
|
212
|
+
type SwapCidResponse = {
|
|
213
|
+
mapped_cid: string;
|
|
214
|
+
created_at: string;
|
|
215
|
+
};
|
|
216
|
+
//#endregion
|
|
217
|
+
export { AnalyticsQuery, FileListItem, FileListQuery, FileListResponse, PinJobItem, PinJobQuery, PinJobResponse, PinataConfig, PinataMetadata, SignedUrlOptions, SwapCidOptions, SwapCidResponse, SwapHistoryOptions, TimeIntervalAnalyticsQuery, TimeIntervalAnalyticsResponse, TimePeriodItem, TopAnalyticsItem, TopAnalyticsQuery, TopAnalyticsResponse, UploadOptions, UploadResponse };
|
|
218
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { CID } from "multiformats/cid";
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { CID } from "multiformats/cid";
|
|
2
|
+
|
|
3
|
+
//#region src/adapters/pinata/shared/utils.ts
|
|
4
|
+
/**
|
|
5
|
+
* Shared utilities for Pinata adapters
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse CID string to CID object
|
|
9
|
+
*/
|
|
10
|
+
function parseCID(cidString) {
|
|
11
|
+
try {
|
|
12
|
+
return CID.parse(cidString);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
throw new Error(`Invalid CID: ${cidString}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create upload response object
|
|
19
|
+
*/
|
|
20
|
+
function createUploadResponse(result, name) {
|
|
21
|
+
return {
|
|
22
|
+
id: result.cid,
|
|
23
|
+
name: name || "",
|
|
24
|
+
cid: result.cid,
|
|
25
|
+
size: result.size,
|
|
26
|
+
created_at: result.createdAt.toISOString(),
|
|
27
|
+
number_of_files: 1,
|
|
28
|
+
mime_type: "application/octet-stream",
|
|
29
|
+
user_id: "",
|
|
30
|
+
group_id: null,
|
|
31
|
+
is_duplicate: null,
|
|
32
|
+
vectorized: null
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create file list item from remote pin
|
|
37
|
+
*/
|
|
38
|
+
function createFileListItem(remotePin) {
|
|
39
|
+
return {
|
|
40
|
+
id: remotePin.cid.toString(),
|
|
41
|
+
name: remotePin.name || null,
|
|
42
|
+
cid: remotePin.cid.toString(),
|
|
43
|
+
size: remotePin.size || 0,
|
|
44
|
+
number_of_files: 1,
|
|
45
|
+
mime_type: "application/octet-stream",
|
|
46
|
+
keyvalues: remotePin.metadata || {},
|
|
47
|
+
group_id: null,
|
|
48
|
+
created_at: remotePin.created.toISOString()
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create pin job item from remote pin
|
|
53
|
+
*/
|
|
54
|
+
function createPinJobItem(remotePin) {
|
|
55
|
+
return {
|
|
56
|
+
id: remotePin.cid.toString(),
|
|
57
|
+
ipfs_pin_hash: remotePin.cid.toString(),
|
|
58
|
+
date_queued: remotePin.created.toISOString(),
|
|
59
|
+
name: remotePin.name || "",
|
|
60
|
+
status: remotePin.status || "pinned",
|
|
61
|
+
keyvalues: remotePin.metadata || {},
|
|
62
|
+
host_nodes: [],
|
|
63
|
+
pin_policy: {
|
|
64
|
+
regions: [],
|
|
65
|
+
version: 1
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Throw error for unsupported features
|
|
71
|
+
*/
|
|
72
|
+
function notSupported(feature) {
|
|
73
|
+
throw new Error(`${feature} are not supported by Pinner`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
export { createFileListItem, createPinJobItem, createUploadResponse, notSupported, parseCID };
|
|
78
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../../../src/adapters/pinata/shared/utils.ts"],"sourcesContent":["/**\n * Shared utilities for Pinata adapters\n */\n\nimport { CID } from \"multiformats/cid\";\n\n/**\n * Parse CID string to CID object\n */\nexport function parseCID(cidString: string): CID {\n\ttry {\n\t\treturn CID.parse(cidString);\n\t} catch (error) {\n\t\tthrow new Error(`Invalid CID: ${cidString}`);\n\t}\n}\n\n/**\n * Convert Date to ISO string\n */\nexport function toISOString(date: Date): string {\n\treturn date.toISOString();\n}\n\n/**\n * Create upload response object\n */\nexport function createUploadResponse(\n\tresult: {\n\t\tcid: string;\n\t\tsize: number;\n\t\tcreatedAt: Date;\n\t},\n\tname?: string,\n): any {\n\treturn {\n\t\tid: result.cid,\n\t\tname: name || \"\",\n\t\tcid: result.cid,\n\t\tsize: result.size,\n\t\tcreated_at: result.createdAt.toISOString(),\n\t\tnumber_of_files: 1,\n\t\tmime_type: \"application/octet-stream\",\n\t\tuser_id: \"\",\n\t\tgroup_id: null,\n\t\tis_duplicate: null,\n\t\tvectorized: null,\n\t};\n}\n\n/**\n * Create file list item from remote pin\n */\nexport function createFileListItem(\n\tremotePin: any,\n): any {\n\treturn {\n\t\tid: remotePin.cid.toString(),\n\t\tname: remotePin.name || null,\n\t\tcid: remotePin.cid.toString(),\n\t\tsize: remotePin.size || 0,\n\t\tnumber_of_files: 1,\n\t\tmime_type: \"application/octet-stream\",\n\t\tkeyvalues: remotePin.metadata || {},\n\t\tgroup_id: null,\n\t\tcreated_at: remotePin.created.toISOString(),\n\t};\n}\n\n/**\n * Create pin job item from remote pin\n */\nexport function createPinJobItem(\n\tremotePin: any,\n): any {\n\treturn {\n\t\tid: remotePin.cid.toString(),\n\t\tipfs_pin_hash: remotePin.cid.toString(),\n\t\tdate_queued: remotePin.created.toISOString(),\n\t\tname: remotePin.name || \"\",\n\t\tstatus: remotePin.status || \"pinned\",\n\t\tkeyvalues: remotePin.metadata || {},\n\t\thost_nodes: [],\n\t\tpin_policy: {\n\t\t\tregions: [],\n\t\t\tversion: 1,\n\t\t},\n\t};\n}\n\n/**\n * Throw error for unsupported features\n */\nexport function notSupported(feature: string): never {\n\tthrow new Error(`${feature} are not supported by Pinner`);\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,SAAS,WAAwB;AAChD,KAAI;AACH,SAAO,IAAI,MAAM,UAAU;UACnB,OAAO;AACf,QAAM,IAAI,MAAM,gBAAgB,YAAY;;;;;;AAc9C,SAAgB,qBACf,QAKA,MACM;AACN,QAAO;EACN,IAAI,OAAO;EACX,MAAM,QAAQ;EACd,KAAK,OAAO;EACZ,MAAM,OAAO;EACb,YAAY,OAAO,UAAU,aAAa;EAC1C,iBAAiB;EACjB,WAAW;EACX,SAAS;EACT,UAAU;EACV,cAAc;EACd,YAAY;EACZ;;;;;AAMF,SAAgB,mBACf,WACM;AACN,QAAO;EACN,IAAI,UAAU,IAAI,UAAU;EAC5B,MAAM,UAAU,QAAQ;EACxB,KAAK,UAAU,IAAI,UAAU;EAC7B,MAAM,UAAU,QAAQ;EACxB,iBAAiB;EACjB,WAAW;EACX,WAAW,UAAU,YAAY,EAAE;EACnC,UAAU;EACV,YAAY,UAAU,QAAQ,aAAa;EAC3C;;;;;AAMF,SAAgB,iBACf,WACM;AACN,QAAO;EACN,IAAI,UAAU,IAAI,UAAU;EAC5B,eAAe,UAAU,IAAI,UAAU;EACvC,aAAa,UAAU,QAAQ,aAAa;EAC5C,MAAM,UAAU,QAAQ;EACxB,QAAQ,UAAU,UAAU;EAC5B,WAAW,UAAU,YAAY,EAAE;EACnC,YAAY,EAAE;EACd,YAAY;GACX,SAAS,EAAE;GACX,SAAS;GACT;EACD;;;;;AAMF,SAAgB,aAAa,SAAwB;AACpD,OAAM,IAAI,MAAM,GAAG,QAAQ,8BAA8B"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { AccessLinkOptions, DeleteResponse, FileListItem, FileListResponse, GetGroupOptions, GroupCIDOptions, GroupListResponse, GroupOptions, GroupResponseItem, PinByCIDResponse, PinQueueItem, PinQueueResponse, PinataConfig, SignedUploadUrlOptions, SwapCidOptions, SwapCidResponse, SwapHistoryOptions, TimeIntervalAnalyticsQuery, TimeIntervalAnalyticsResponse, TopAnalyticsQuery, TopAnalyticsResponse, UpdateFileOptions, UpdateGroupFilesResponse, UpdateGroupOptions, UploadCIDOptions, UploadOptions, UploadResponse } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/adapters/pinata/v2/adapter-interface.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Upload builder interface
|
|
6
|
+
*/
|
|
7
|
+
interface UploadBuilder<TResult> {
|
|
8
|
+
name(name: string): this;
|
|
9
|
+
keyvalues(keyvalues: Record<string, string>): this;
|
|
10
|
+
execute(): Promise<TResult>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Filter files builder interface
|
|
14
|
+
*/
|
|
15
|
+
interface FilterFiles {
|
|
16
|
+
name(name: string): FilterFiles;
|
|
17
|
+
group(group: string): FilterFiles;
|
|
18
|
+
cid(cid: string): FilterFiles;
|
|
19
|
+
mimeType(mimeType: string): FilterFiles;
|
|
20
|
+
order(order: "ASC" | "DESC"): FilterFiles;
|
|
21
|
+
limit(limit: number): FilterFiles;
|
|
22
|
+
cidPending(cidPending: boolean): FilterFiles;
|
|
23
|
+
keyvalues(keyvalues: Record<string, string>): FilterFiles;
|
|
24
|
+
noGroup(noGroup: boolean): FilterFiles;
|
|
25
|
+
pageToken(pageToken: string): FilterFiles;
|
|
26
|
+
then(onfulfilled?: ((value: FileListResponse) => any) | null, onrejected?: ((reason: any) => any) | null): Promise<any>;
|
|
27
|
+
all(): Promise<FileListItem[]>;
|
|
28
|
+
[Symbol.asyncIterator](): AsyncGenerator<FileListItem, void, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Filter queue builder interface
|
|
32
|
+
*/
|
|
33
|
+
interface FilterQueue {
|
|
34
|
+
cid(cid: string): FilterQueue;
|
|
35
|
+
status(status: "prechecking" | "retrieving" | "expired" | "backfilled" | "over_free_limit" | "over_max_size" | "invalid_object" | "bad_host_node"): FilterQueue;
|
|
36
|
+
pageLimit(limit: number): FilterQueue;
|
|
37
|
+
pageToken(pageToken: string): FilterQueue;
|
|
38
|
+
sort(sort: "ASC" | "DSC"): FilterQueue;
|
|
39
|
+
then(onfulfilled?: ((value: PinQueueResponse) => any) | null, onrejected?: ((reason: any) => any) | null): Promise<any>;
|
|
40
|
+
all(): Promise<PinQueueItem[]>;
|
|
41
|
+
[Symbol.asyncIterator](): AsyncGenerator<PinQueueItem, void, unknown>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Filter groups builder interface
|
|
45
|
+
*/
|
|
46
|
+
interface FilterGroups {
|
|
47
|
+
name(name: string): FilterGroups;
|
|
48
|
+
limit(limit: number): FilterGroups;
|
|
49
|
+
pageToken(pageToken: string): FilterGroups;
|
|
50
|
+
isPublic(isPublic: boolean): FilterGroups;
|
|
51
|
+
then(onfulfilled?: ((value: GroupListResponse) => any) | null, onrejected?: ((reason: any) => any) | null): Promise<any>;
|
|
52
|
+
all(): Promise<GroupResponseItem[]>;
|
|
53
|
+
[Symbol.asyncIterator](): AsyncGenerator<GroupResponseItem, void, unknown>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Public upload interface
|
|
57
|
+
*/
|
|
58
|
+
interface PublicUpload {
|
|
59
|
+
file(file: File, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
60
|
+
fileArray(files: File[], options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
61
|
+
base64(base64String: string, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
62
|
+
url(url: string, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
63
|
+
json(data: object, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
64
|
+
cid(cid: string, options?: UploadCIDOptions): UploadBuilder<PinByCIDResponse>;
|
|
65
|
+
createSignedURL(options: SignedUploadUrlOptions): Promise<string>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Private upload interface
|
|
69
|
+
*/
|
|
70
|
+
interface PrivateUpload {
|
|
71
|
+
file(file: File, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
72
|
+
fileArray(files: File[], options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
73
|
+
base64(base64String: string, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
74
|
+
url(url: string, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
75
|
+
json(data: object, options?: UploadOptions): UploadBuilder<UploadResponse>;
|
|
76
|
+
cid(cid: string, options?: UploadCIDOptions): UploadBuilder<PinByCIDResponse>;
|
|
77
|
+
createSignedURL(options: SignedUploadUrlOptions): Promise<string>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Public files interface
|
|
81
|
+
*/
|
|
82
|
+
interface PublicFiles {
|
|
83
|
+
list(): FilterFiles;
|
|
84
|
+
get(id: string): Promise<FileListItem>;
|
|
85
|
+
delete(files: string[]): Promise<DeleteResponse[]>;
|
|
86
|
+
update(options: UpdateFileOptions): Promise<FileListItem>;
|
|
87
|
+
addSwap(options: SwapCidOptions): Promise<SwapCidResponse>;
|
|
88
|
+
getSwapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;
|
|
89
|
+
deleteSwap(cid: string): Promise<string>;
|
|
90
|
+
queue(): FilterQueue;
|
|
91
|
+
deletePinRequest(requestId: string): Promise<string>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Private files interface
|
|
95
|
+
*/
|
|
96
|
+
interface PrivateFiles {
|
|
97
|
+
list(): FilterFiles;
|
|
98
|
+
get(id: string): Promise<FileListItem>;
|
|
99
|
+
delete(files: string[]): Promise<DeleteResponse[]>;
|
|
100
|
+
update(options: UpdateFileOptions): Promise<FileListItem>;
|
|
101
|
+
addSwap(options: SwapCidOptions): Promise<SwapCidResponse>;
|
|
102
|
+
getSwapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;
|
|
103
|
+
deleteSwap(cid: string): Promise<string>;
|
|
104
|
+
queue(): FilterQueue;
|
|
105
|
+
deletePinRequest(requestId: string): Promise<string>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Public gateways interface
|
|
109
|
+
*/
|
|
110
|
+
interface PublicGateways {
|
|
111
|
+
get(cid: string): any;
|
|
112
|
+
convert(url: string, gatewayPrefix?: string): Promise<string>;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Private gateways interface
|
|
116
|
+
*/
|
|
117
|
+
interface PrivateGateways {
|
|
118
|
+
get(cid: string): any;
|
|
119
|
+
createAccessLink(options: AccessLinkOptions): any;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Public groups interface
|
|
123
|
+
*/
|
|
124
|
+
interface PublicGroups {
|
|
125
|
+
create(options: GroupOptions): Promise<GroupResponseItem>;
|
|
126
|
+
list(): FilterGroups;
|
|
127
|
+
get(options: GetGroupOptions): Promise<GroupResponseItem>;
|
|
128
|
+
addFiles(options: GroupCIDOptions): Promise<UpdateGroupFilesResponse[]>;
|
|
129
|
+
removeFiles(options: GroupCIDOptions): Promise<UpdateGroupFilesResponse[]>;
|
|
130
|
+
update(options: UpdateGroupOptions): Promise<GroupResponseItem>;
|
|
131
|
+
delete(options: GetGroupOptions): Promise<string>;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Private groups interface
|
|
135
|
+
*/
|
|
136
|
+
interface PrivateGroups {
|
|
137
|
+
create(options: GroupOptions): Promise<GroupResponseItem>;
|
|
138
|
+
list(): FilterGroups;
|
|
139
|
+
get(options: GetGroupOptions): Promise<GroupResponseItem>;
|
|
140
|
+
addFiles(options: GroupCIDOptions): Promise<UpdateGroupFilesResponse[]>;
|
|
141
|
+
removeFiles(options: GroupCIDOptions): Promise<UpdateGroupFilesResponse[]>;
|
|
142
|
+
update(options: UpdateGroupOptions): Promise<GroupResponseItem>;
|
|
143
|
+
delete(options: GetGroupOptions): Promise<string>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Analytics interface
|
|
147
|
+
*/
|
|
148
|
+
interface Analytics {
|
|
149
|
+
requests(query: TopAnalyticsQuery): Promise<TopAnalyticsResponse>;
|
|
150
|
+
bandwidth(query: TimeIntervalAnalyticsQuery): Promise<TimeIntervalAnalyticsResponse>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Pinata 2.x Adapter Interface
|
|
154
|
+
* Matches Pinata SDK 2.x API exactly
|
|
155
|
+
*/
|
|
156
|
+
interface PinataAdapter {
|
|
157
|
+
/**
|
|
158
|
+
* Configuration
|
|
159
|
+
*/
|
|
160
|
+
config: PinataConfig;
|
|
161
|
+
updateConfig(newConfig: PinataConfig): void;
|
|
162
|
+
/**
|
|
163
|
+
* Upload with public/private separation
|
|
164
|
+
*/
|
|
165
|
+
upload: {
|
|
166
|
+
public: PublicUpload;
|
|
167
|
+
private: PrivateUpload;
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Files with public/private separation
|
|
171
|
+
*/
|
|
172
|
+
files: {
|
|
173
|
+
public: PublicFiles;
|
|
174
|
+
private: PrivateFiles;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Gateways with public/private separation
|
|
178
|
+
*/
|
|
179
|
+
gateways: {
|
|
180
|
+
public: PublicGateways;
|
|
181
|
+
private: PrivateGateways;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Groups with public/private separation
|
|
185
|
+
*/
|
|
186
|
+
groups: {
|
|
187
|
+
public: PublicGroups;
|
|
188
|
+
private: PrivateGroups;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Analytics (no public/private)
|
|
192
|
+
*/
|
|
193
|
+
analytics: Analytics;
|
|
194
|
+
}
|
|
195
|
+
//#endregion
|
|
196
|
+
export { PinataAdapter };
|
|
197
|
+
//# sourceMappingURL=adapter-interface.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Pinner } from "../../../pinner.js";
|
|
2
|
+
import { PinataConfig } from "./types.js";
|
|
3
|
+
import { PinataAdapter } from "./adapter-interface.js";
|
|
4
|
+
|
|
5
|
+
//#region src/adapters/pinata/v2/adapter.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Create Pinata Adapter
|
|
8
|
+
*
|
|
9
|
+
* @param pinner - Pinner client instance
|
|
10
|
+
* @param config - Pinata configuration
|
|
11
|
+
* @returns PinataAdapter
|
|
12
|
+
*/
|
|
13
|
+
declare function pinataAdapter(pinner: Pinner, config?: PinataConfig): PinataAdapter;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { pinataAdapter };
|
|
16
|
+
//# sourceMappingURL=adapter.d.ts.map
|