@lumeweb/pinner 0.0.1 → 0.1.1
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/LICENSE +9 -0
- package/README.md +707 -28
- package/dist/cjs/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/cjs/adapters/pinata/index.cjs +6 -0
- package/dist/cjs/adapters/pinata/legacy/adapter.cjs +83 -0
- package/dist/cjs/adapters/pinata/legacy/adapter.cjs.map +1 -0
- package/dist/cjs/adapters/pinata/legacy/adapter.d.cts +74 -0
- package/dist/cjs/adapters/pinata/legacy/index.cjs +1 -0
- package/dist/cjs/adapters/pinata/shared/index.cjs +1 -0
- package/dist/cjs/adapters/pinata/shared/types.d.cts +218 -0
- package/dist/cjs/adapters/pinata/shared/utils.cjs +83 -0
- package/dist/cjs/adapters/pinata/shared/utils.cjs.map +1 -0
- package/dist/cjs/adapters/pinata/v2/adapter-interface.d.cts +198 -0
- package/dist/cjs/adapters/pinata/v2/adapter.cjs +636 -0
- package/dist/cjs/adapters/pinata/v2/adapter.cjs.map +1 -0
- package/dist/cjs/adapters/pinata/v2/adapter.d.cts +17 -0
- package/dist/cjs/adapters/pinata/v2/index.cjs +1 -0
- package/dist/cjs/adapters/pinata/v2/types.d.cts +308 -0
- package/dist/cjs/blockstore/index.cjs +2 -0
- package/dist/cjs/blockstore/unstorage-base.cjs +240 -0
- package/dist/cjs/blockstore/unstorage-base.cjs.map +1 -0
- package/dist/cjs/blockstore/unstorage-base.d.cts +23 -0
- package/dist/cjs/blockstore/unstorage.cjs +39 -0
- package/dist/cjs/blockstore/unstorage.cjs.map +1 -0
- package/dist/cjs/blockstore/unstorage.d.cts +36 -0
- package/dist/cjs/config.d.cts +51 -0
- package/dist/cjs/encoder/base64.cjs +38 -0
- package/dist/cjs/encoder/base64.cjs.map +1 -0
- package/dist/cjs/encoder/csv/csv-formatter.cjs +81 -0
- package/dist/cjs/encoder/csv/csv-formatter.cjs.map +1 -0
- package/dist/cjs/encoder/csv/field-formatter.cjs +76 -0
- package/dist/cjs/encoder/csv/field-formatter.cjs.map +1 -0
- package/dist/cjs/encoder/csv/row-formatter.cjs +159 -0
- package/dist/cjs/encoder/csv/row-formatter.cjs.map +1 -0
- package/dist/cjs/encoder/csv.cjs +44 -0
- package/dist/cjs/encoder/csv.cjs.map +1 -0
- package/dist/cjs/encoder/error.cjs +19 -0
- package/dist/cjs/encoder/error.cjs.map +1 -0
- package/dist/cjs/encoder/index.cjs +6 -0
- package/dist/cjs/encoder/json.cjs +36 -0
- package/dist/cjs/encoder/json.cjs.map +1 -0
- package/dist/cjs/encoder/text.cjs +35 -0
- package/dist/cjs/encoder/text.cjs.map +1 -0
- package/dist/cjs/encoder/url.cjs +39 -0
- package/dist/cjs/encoder/url.cjs.map +1 -0
- package/dist/cjs/errors/index.cjs +104 -0
- package/dist/cjs/errors/index.cjs.map +1 -0
- package/dist/cjs/errors/index.d.cts +47 -0
- package/dist/cjs/index.cjs +44 -0
- package/dist/cjs/index.d.cts +16 -0
- package/dist/cjs/pin/client.cjs +98 -0
- package/dist/cjs/pin/client.cjs.map +1 -0
- package/dist/cjs/pin/index.cjs +1 -0
- package/dist/cjs/pinner.cjs +132 -0
- package/dist/cjs/pinner.cjs.map +1 -0
- package/dist/cjs/pinner.d.cts +81 -0
- package/dist/cjs/types/constants.cjs +39 -0
- package/dist/cjs/types/constants.cjs.map +1 -0
- package/dist/cjs/types/mime-types.cjs +11 -0
- package/dist/cjs/types/mime-types.cjs.map +1 -0
- package/dist/cjs/types/mime-types.d.cts +7 -0
- package/dist/cjs/types/pin.d.cts +78 -0
- package/dist/cjs/types/type-guards.cjs +20 -0
- package/dist/cjs/types/type-guards.cjs.map +1 -0
- package/dist/cjs/types/type-guards.d.cts +15 -0
- package/dist/cjs/types/upload.cjs +18 -0
- package/dist/cjs/types/upload.cjs.map +1 -0
- package/dist/cjs/types/upload.d.cts +189 -0
- package/dist/cjs/upload/base-upload.cjs +135 -0
- package/dist/cjs/upload/base-upload.cjs.map +1 -0
- package/dist/cjs/upload/builder.cjs +174 -0
- package/dist/cjs/upload/builder.cjs.map +1 -0
- package/dist/cjs/upload/builder.d.cts +60 -0
- package/dist/cjs/upload/car.cjs +129 -0
- package/dist/cjs/upload/car.cjs.map +1 -0
- package/dist/cjs/upload/car.d.cts +19 -0
- package/dist/cjs/upload/constants.cjs +9 -0
- package/dist/cjs/upload/constants.cjs.map +1 -0
- package/dist/cjs/upload/index.cjs +8 -0
- package/dist/cjs/upload/manager.cjs +249 -0
- package/dist/cjs/upload/manager.cjs.map +1 -0
- package/dist/cjs/upload/manager.d.cts +35 -0
- package/dist/cjs/upload/normalize.cjs +28 -0
- package/dist/cjs/upload/normalize.cjs.map +1 -0
- package/dist/cjs/upload/tus-upload.cjs +74 -0
- package/dist/cjs/upload/tus-upload.cjs.map +1 -0
- package/dist/cjs/upload/xhr-upload.cjs +41 -0
- package/dist/cjs/upload/xhr-upload.cjs.map +1 -0
- package/dist/cjs/utils/env.cjs +12 -0
- package/dist/cjs/utils/env.cjs.map +1 -0
- package/dist/cjs/utils/stream.cjs +141 -0
- package/dist/cjs/utils/stream.cjs.map +1 -0
- package/dist/cjs/utils/stream.d.cts +23 -0
- package/dist/cjs/utils/tus-patch.cjs +50 -0
- package/dist/cjs/utils/tus-patch.cjs.map +1 -0
- package/dist/cjs/utils/validation.cjs +62 -0
- package/dist/cjs/utils/validation.cjs.map +1 -0
- package/dist/esm/_virtual/rolldown_runtime.js +8 -0
- package/dist/esm/adapters/pinata/index.d.ts +7 -0
- package/dist/esm/adapters/pinata/index.js +6 -0
- package/dist/esm/adapters/pinata/legacy/adapter.d.ts +74 -0
- package/dist/esm/adapters/pinata/legacy/adapter.js +83 -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 +2 -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 +198 -0
- package/dist/esm/adapters/pinata/v2/adapter.d.ts +17 -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/blockstore/index.d.ts +2 -0
- package/dist/esm/blockstore/index.js +2 -0
- package/dist/esm/blockstore/unstorage-base.d.ts +23 -0
- package/dist/esm/blockstore/unstorage-base.js +231 -0
- package/dist/esm/blockstore/unstorage-base.js.map +1 -0
- package/dist/esm/blockstore/unstorage.d.ts +36 -0
- package/dist/esm/blockstore/unstorage.js +38 -0
- package/dist/esm/blockstore/unstorage.js.map +1 -0
- package/dist/esm/config.d.ts +51 -0
- package/dist/esm/encoder/base64.js +37 -0
- package/dist/esm/encoder/base64.js.map +1 -0
- package/dist/esm/encoder/csv/csv-formatter.js +81 -0
- package/dist/esm/encoder/csv/csv-formatter.js.map +1 -0
- package/dist/esm/encoder/csv/field-formatter.js +75 -0
- package/dist/esm/encoder/csv/field-formatter.js.map +1 -0
- package/dist/esm/encoder/csv/row-formatter.js +159 -0
- package/dist/esm/encoder/csv/row-formatter.js.map +1 -0
- package/dist/esm/encoder/csv.js +43 -0
- package/dist/esm/encoder/csv.js.map +1 -0
- package/dist/esm/encoder/error.js +18 -0
- package/dist/esm/encoder/error.js.map +1 -0
- package/dist/esm/encoder/index.js +6 -0
- package/dist/esm/encoder/json.js +35 -0
- package/dist/esm/encoder/json.js.map +1 -0
- package/dist/esm/encoder/text.js +34 -0
- package/dist/esm/encoder/text.js.map +1 -0
- package/dist/esm/encoder/url.js +36 -0
- package/dist/esm/encoder/url.js.map +1 -0
- package/dist/esm/errors/index.d.ts +47 -0
- package/dist/esm/errors/index.js +93 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/index.d.ts +18 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/pin/client.js +97 -0
- package/dist/esm/pin/client.js.map +1 -0
- package/dist/esm/pin/index.js +1 -0
- package/dist/esm/pinner.d.ts +81 -0
- package/dist/esm/pinner.js +131 -0
- package/dist/esm/pinner.js.map +1 -0
- package/dist/esm/types/constants.js +33 -0
- package/dist/esm/types/constants.js.map +1 -0
- package/dist/esm/types/mime-types.d.ts +7 -0
- package/dist/esm/types/mime-types.js +8 -0
- package/dist/esm/types/mime-types.js.map +1 -0
- package/dist/esm/types/pin.d.ts +78 -0
- package/dist/esm/types/type-guards.d.ts +15 -0
- package/dist/esm/types/type-guards.js +19 -0
- package/dist/esm/types/type-guards.js.map +1 -0
- package/dist/esm/types/upload.d.ts +189 -0
- package/dist/esm/types/upload.js +16 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/upload/base-upload.js +132 -0
- package/dist/esm/upload/base-upload.js.map +1 -0
- package/dist/esm/upload/builder.d.ts +60 -0
- package/dist/esm/upload/builder.js +173 -0
- package/dist/esm/upload/builder.js.map +1 -0
- package/dist/esm/upload/car.d.ts +19 -0
- package/dist/esm/upload/car.js +125 -0
- package/dist/esm/upload/car.js.map +1 -0
- package/dist/esm/upload/constants.js +7 -0
- package/dist/esm/upload/constants.js.map +1 -0
- package/dist/esm/upload/index.js +8 -0
- package/dist/esm/upload/manager.d.ts +35 -0
- package/dist/esm/upload/manager.js +248 -0
- package/dist/esm/upload/manager.js.map +1 -0
- package/dist/esm/upload/normalize.js +28 -0
- package/dist/esm/upload/normalize.js.map +1 -0
- package/dist/esm/upload/tus-upload.js +72 -0
- package/dist/esm/upload/tus-upload.js.map +1 -0
- package/dist/esm/upload/xhr-upload.js +39 -0
- package/dist/esm/upload/xhr-upload.js.map +1 -0
- package/dist/esm/utils/env.js +11 -0
- package/dist/esm/utils/env.js.map +1 -0
- package/dist/esm/utils/stream.d.ts +23 -0
- package/dist/esm/utils/stream.js +134 -0
- package/dist/esm/utils/stream.js.map +1 -0
- package/dist/esm/utils/tus-patch.js +51 -0
- package/dist/esm/utils/tus-patch.js.map +1 -0
- package/dist/esm/utils/validation.js +60 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/package.json +95 -8
- package/public/mockServiceWorker.js +349 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
13
|
+
__defProp(to, key, {
|
|
14
|
+
get: ((k) => from[k]).bind(null, key),
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
23
|
+
value: mod,
|
|
24
|
+
enumerable: true
|
|
25
|
+
}) : target, mod));
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
|
|
29
|
+
exports.__toESM = __toESM;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const require_constants = require('../../../types/constants.cjs');
|
|
2
|
+
const require_utils = require('../shared/utils.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/adapters/pinata/legacy/adapter.ts
|
|
5
|
+
/**
|
|
6
|
+
* Create Pinata 1.x Legacy Adapter
|
|
7
|
+
*
|
|
8
|
+
* @param pinner - Pinner client instance
|
|
9
|
+
* @param config - Pinata configuration
|
|
10
|
+
* @returns PinataLegacyAdapter
|
|
11
|
+
*/
|
|
12
|
+
function pinataLegacyAdapter(pinner, config) {
|
|
13
|
+
return {
|
|
14
|
+
async pinFileToIPFS(file, options) {
|
|
15
|
+
return require_utils.createUploadResponse(await pinner.uploadAndWait(file, {
|
|
16
|
+
name: options?.metadata?.name,
|
|
17
|
+
keyvalues: options?.metadata?.keyvalues
|
|
18
|
+
}), file.name);
|
|
19
|
+
},
|
|
20
|
+
async pinJSONToIPFS(data, options) {
|
|
21
|
+
const jsonString = JSON.stringify(data);
|
|
22
|
+
const file = new File([jsonString], options?.metadata?.name || "data.json", { type: "application/json" });
|
|
23
|
+
return require_utils.createUploadResponse(await pinner.uploadAndWait(file, {
|
|
24
|
+
name: options?.metadata?.name,
|
|
25
|
+
keyvalues: options?.metadata?.keyvalues
|
|
26
|
+
}), file.name);
|
|
27
|
+
},
|
|
28
|
+
async pinByHash(cid, options) {
|
|
29
|
+
const cidObj = require_utils.parseCID(cid);
|
|
30
|
+
const generator = await pinner.pinByHash(cidObj, {
|
|
31
|
+
name: options?.metadata?.name,
|
|
32
|
+
metadata: options?.metadata?.keyvalues
|
|
33
|
+
});
|
|
34
|
+
for await (const _ of generator);
|
|
35
|
+
const pin = await pinner.getPinStatus(cidObj);
|
|
36
|
+
return require_utils.createUploadResponse({
|
|
37
|
+
cid: pin.cid.toString(),
|
|
38
|
+
size: pin.size || 0,
|
|
39
|
+
createdAt: pin.created
|
|
40
|
+
}, pin.name || "");
|
|
41
|
+
},
|
|
42
|
+
async pinList(query) {
|
|
43
|
+
return {
|
|
44
|
+
files: (await pinner.listPins({ limit: query?.limit })).map(require_utils.createFileListItem),
|
|
45
|
+
next_page_token: ""
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
async unpin(cid) {
|
|
49
|
+
await pinner.unpin(cid);
|
|
50
|
+
return { message: `Unpinned ${cid}` };
|
|
51
|
+
},
|
|
52
|
+
async hashMetadata(cid, metadata) {
|
|
53
|
+
await pinner.setPinMetadata(cid, metadata);
|
|
54
|
+
return { message: `Updated metadata for ${cid}` };
|
|
55
|
+
},
|
|
56
|
+
async createSignedURL(options) {
|
|
57
|
+
return `${config?.pinataGateway || require_constants.DEFAULT_GATEWAY}/ipfs/${options.cid}`;
|
|
58
|
+
},
|
|
59
|
+
async pinJobs(query) {
|
|
60
|
+
return { rows: (await pinner.listPins({ limit: query?.limit })).map(require_utils.createPinJobItem) };
|
|
61
|
+
},
|
|
62
|
+
async topUsageAnalytics(query) {
|
|
63
|
+
return { data: [] };
|
|
64
|
+
},
|
|
65
|
+
async dateIntervalAnalytics(query) {
|
|
66
|
+
return {
|
|
67
|
+
total_requests: 0,
|
|
68
|
+
total_bandwidth: 0,
|
|
69
|
+
time_periods: []
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
async swapCid(options) {
|
|
73
|
+
require_utils.notSupported("Swap CID");
|
|
74
|
+
},
|
|
75
|
+
async swapHistory(options) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
exports.pinataLegacyAdapter = pinataLegacyAdapter;
|
|
83
|
+
//# sourceMappingURL=adapter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.cjs","names":["createUploadResponse","parseCID","createFileListItem","DEFAULT_GATEWAY","createPinJobItem"],"sources":["../../../../../src/adapters/pinata/legacy/adapter.ts"],"sourcesContent":["/**\n * Pinata SDK 1.x Legacy Adapter\n * Provides compatibility with Pinata SDK 1.x API\n *\n * Source: https://github.com/PinataCloud/pinata/commit/c141177ff3036e46fa7b95fcc68c159b58817836\n * - src/core/pinataSDK.ts\n * - src/core/types.ts\n *\n * Copyright © 2024 Pinata Cloud Technologies\n * Type definitions and API interfaces adapted from Pinata SDK for compatibility.\n * Original Pinata SDK: https://github.com/PinataCloud/pinata\n */\n\nimport type { Pinner } from \"@/pinner\";\nimport type {\n\tPinataConfig,\n\tUploadResponse,\n\tUploadOptions,\n\tFileListResponse,\n\tFileListQuery,\n\tPinJobResponse,\n\tPinJobQuery,\n\tDeleteResponse,\n\tPinataMetadata,\n\tSignedUrlOptions,\n\tTopAnalyticsQuery,\n\tTopAnalyticsResponse,\n\tTimeIntervalAnalyticsQuery,\n\tTimeIntervalAnalyticsResponse,\n\tSwapCidOptions,\n\tSwapCidResponse,\n\tSwapHistoryOptions,\n} from \"../shared/types\";\nimport { parseCID, createUploadResponse, createFileListItem, createPinJobItem, notSupported } from \"../shared/utils\";\nimport { DEFAULT_GATEWAY } from \"@/types/constants\";\n\n/**\n * Pinata 1.x Legacy Adapter Interface\n * Matches Pinata SDK 1.x API exactly\n */\nexport interface PinataLegacyAdapter {\n\t/**\n\t * Upload a file to IPFS\n\t */\n\tpinFileToIPFS(file: File, options?: UploadOptions): Promise<UploadResponse>;\n\n\t/**\n\t * Upload JSON data to IPFS\n\t */\n\tpinJSONToIPFS(data: any, options?: UploadOptions): Promise<UploadResponse>;\n\n\t/**\n\t * Pin content by CID\n\t */\n\tpinByHash(cid: string, options?: UploadOptions): Promise<UploadResponse>;\n\n\t/**\n\t * List pinned files\n\t */\n\tpinList(query?: FileListQuery): Promise<FileListResponse>;\n\n\t/**\n\t * Unpin content by CID\n\t */\n\tunpin(cid: string): Promise<{ message: string }>;\n\n\t/**\n\t * Update pin metadata\n\t */\n\thashMetadata(cid: string, metadata: Record<string, string>): Promise<{ message: string }>;\n\n\t/**\n\t * Create signed URL for private IPFS files\n\t */\n\tcreateSignedURL(options: SignedUrlOptions): Promise<string>;\n\n\t/**\n\t * Get pin jobs\n\t */\n\tpinJobs(query?: PinJobQuery): Promise<PinJobResponse>;\n\n\t/**\n\t * Get top usage analytics\n\t */\n\ttopUsageAnalytics(query: TopAnalyticsQuery): Promise<TopAnalyticsResponse>;\n\n\t/**\n\t * Get date interval analytics\n\t */\n\tdateIntervalAnalytics(\n\t\tquery: TimeIntervalAnalyticsQuery,\n\t): Promise<TimeIntervalAnalyticsResponse>;\n\n\t/**\n\t * Swap CID\n\t */\n\tswapCid(options: SwapCidOptions): Promise<SwapCidResponse>;\n\n\t/**\n\t * Get swap history\n\t */\n\tswapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;\n}\n\n/**\n * Create Pinata 1.x Legacy Adapter\n *\n * @param pinner - Pinner client instance\n * @param config - Pinata configuration\n * @returns PinataLegacyAdapter\n */\nexport function pinataLegacyAdapter(\n\tpinner: Pinner,\n\tconfig?: PinataConfig,\n): PinataLegacyAdapter {\n\treturn {\n\t\t/**\n\t\t * Pin a file to IPFS\n\t\t */\n\t\tasync pinFileToIPFS(\n\t\t\tfile: File,\n\t\t\toptions?: UploadOptions,\n\t\t): Promise<UploadResponse> {\n\t\t\tconst result = await pinner.uploadAndWait(file, {\n\t\t\t\tname: options?.metadata?.name,\n\t\t\t\tkeyvalues: options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\treturn createUploadResponse(result, file.name);\n\t\t},\n\n\t\t/**\n\t\t * Pin JSON data to IPFS\n\t\t */\n\t\tasync pinJSONToIPFS(\n\t\t\tdata: any,\n\t\t\toptions?: UploadOptions,\n\t\t): Promise<UploadResponse> {\n\t\t\t// Convert JSON to File\n\t\t\tconst jsonString = JSON.stringify(data);\n\t\t\tconst file = new File(\n\t\t\t\t[jsonString],\n\t\t\t\toptions?.metadata?.name || \"data.json\",\n\t\t\t\t{ type: \"application/json\" },\n\t\t\t);\n\n\t\t\tconst result = await pinner.uploadAndWait(file, {\n\t\t\t\tname: options?.metadata?.name,\n\t\t\t\tkeyvalues: options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\treturn createUploadResponse(result, file.name);\n\t\t},\n\n\t\t/**\n\t\t * Pin content by CID\n\t\t */\n\t\tasync pinByHash(\n\t\t\tcid: string,\n\t\t\toptions?: UploadOptions,\n\t\t): Promise<UploadResponse> {\n\t\t\tconst cidObj = parseCID(cid);\n\t\t\tconst generator = await pinner.pinByHash(cidObj, {\n\t\t\t\tname: options?.metadata?.name,\n\t\t\t\tmetadata: options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\tfor await (const _ of generator) {\n\t\t\t\t// Wait for pin to complete\n\t\t\t}\n\n\t\t\tconst pin = await pinner.getPinStatus(cidObj);\n\t\t\treturn createUploadResponse(\n\t\t\t\t{\n\t\t\t\t\tcid: pin.cid.toString(),\n\t\t\t\t\tsize: pin.size || 0,\n\t\t\t\t\tcreatedAt: pin.created,\n\t\t\t\t},\n\t\t\t\tpin.name || \"\",\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * List pinned files\n\t\t */\n\t\tasync pinList(query?: FileListQuery): Promise<FileListResponse> {\n\t\t\tconst pins = await pinner.listPins({\n\t\t\t\tlimit: query?.limit,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tfiles: pins.map(createFileListItem),\n\t\t\t\tnext_page_token: \"\",\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Unpin content\n\t\t */\n\t\tasync unpin(cid: string): Promise<{ message: string }> {\n\t\t\tawait pinner.unpin(cid);\n\t\t\treturn { message: `Unpinned ${cid}` };\n\t\t},\n\n\t\t/**\n\t\t * Update pin metadata\n\t\t */\n\t\tasync hashMetadata(\n\t\t\tcid: string,\n\t\t\tmetadata: Record<string, string>,\n\t\t): Promise<{ message: string }> {\n\t\t\tawait pinner.setPinMetadata(cid, metadata);\n\t\t\treturn { message: `Updated metadata for ${cid}` };\n\t\t},\n\n\t\t/**\n\t\t * Create signed URL (not fully supported in Pinner)\n\t\t * Returns a gateway URL instead\n\t\t */\n\t\tasync createSignedURL(options: SignedUrlOptions): Promise<string> {\n\t\t\t// Pinner doesn't support signed URLs for private files\n\t\t\t// Return a gateway URL as fallback\n\t\t\tconst gateway = config?.pinataGateway || DEFAULT_GATEWAY;\n\t\t\treturn `${gateway}/ipfs/${options.cid}`;\n\t\t},\n\n\t\t/**\n\t\t * Get pin jobs\n\t\t */\n\t\tasync pinJobs(query?: PinJobQuery): Promise<PinJobResponse> {\n\t\t\tconst pins = await pinner.listPins({\n\t\t\t\tlimit: query?.limit,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\trows: pins.map(createPinJobItem),\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Get top usage analytics (not supported in Pinner)\n\t\t * Returns empty data\n\t\t */\n\t\tasync topUsageAnalytics(\n\t\t\tquery: TopAnalyticsQuery,\n\t\t): Promise<TopAnalyticsResponse> {\n\t\t\t// Pinner doesn't support analytics\n\t\t\treturn {\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Get date interval analytics (not supported in Pinner)\n\t\t * Returns empty data\n\t\t */\n\t\tasync dateIntervalAnalytics(\n\t\t\tquery: TimeIntervalAnalyticsQuery,\n\t\t): Promise<TimeIntervalAnalyticsResponse> {\n\t\t\t// Pinner doesn't support analytics\n\t\t\treturn {\n\t\t\t\ttotal_requests: 0,\n\t\t\t\ttotal_bandwidth: 0,\n\t\t\t\ttime_periods: [],\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Swap CID (not supported in Pinner)\n\t\t * Returns error\n\t\t */\n\t\tasync swapCid(options: SwapCidOptions): Promise<SwapCidResponse> {\n\t\t\tnotSupported(\"Swap CID\");\n\t\t},\n\n\t\t/**\n\t\t * Get swap history (not supported in Pinner)\n\t\t * Returns empty array\n\t\t */\n\t\tasync swapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]> {\n\t\t\t// Pinner doesn't support swaps\n\t\t\treturn [];\n\t\t},\n\t};\n}\n"],"mappings":";;;;;;;;;;;AA+GA,SAAgB,oBACf,QACA,QACsB;AACtB,QAAO;EAIN,MAAM,cACL,MACA,SAC0B;AAM1B,UAAOA,mCALQ,MAAM,OAAO,cAAc,MAAM;IAC/C,MAAM,SAAS,UAAU;IACzB,WAAW,SAAS,UAAU;IAC9B,CAAC,EAEkC,KAAK,KAAK;;EAM/C,MAAM,cACL,MACA,SAC0B;GAE1B,MAAM,aAAa,KAAK,UAAU,KAAK;GACvC,MAAM,OAAO,IAAI,KAChB,CAAC,WAAW,EACZ,SAAS,UAAU,QAAQ,aAC3B,EAAE,MAAM,oBAAoB,CAC5B;AAOD,UAAOA,mCALQ,MAAM,OAAO,cAAc,MAAM;IAC/C,MAAM,SAAS,UAAU;IACzB,WAAW,SAAS,UAAU;IAC9B,CAAC,EAEkC,KAAK,KAAK;;EAM/C,MAAM,UACL,KACA,SAC0B;GAC1B,MAAM,SAASC,uBAAS,IAAI;GAC5B,MAAM,YAAY,MAAM,OAAO,UAAU,QAAQ;IAChD,MAAM,SAAS,UAAU;IACzB,UAAU,SAAS,UAAU;IAC7B,CAAC;AAEF,cAAW,MAAM,KAAK;GAItB,MAAM,MAAM,MAAM,OAAO,aAAa,OAAO;AAC7C,UAAOD,mCACN;IACC,KAAK,IAAI,IAAI,UAAU;IACvB,MAAM,IAAI,QAAQ;IAClB,WAAW,IAAI;IACf,EACD,IAAI,QAAQ,GACZ;;EAMF,MAAM,QAAQ,OAAkD;AAK/D,UAAO;IACN,QALY,MAAM,OAAO,SAAS,EAClC,OAAO,OAAO,OACd,CAAC,EAGW,IAAIE,iCAAmB;IACnC,iBAAiB;IACjB;;EAMF,MAAM,MAAM,KAA2C;AACtD,SAAM,OAAO,MAAM,IAAI;AACvB,UAAO,EAAE,SAAS,YAAY,OAAO;;EAMtC,MAAM,aACL,KACA,UAC+B;AAC/B,SAAM,OAAO,eAAe,KAAK,SAAS;AAC1C,UAAO,EAAE,SAAS,wBAAwB,OAAO;;EAOlD,MAAM,gBAAgB,SAA4C;AAIjE,UAAO,GADS,QAAQ,iBAAiBC,kCACvB,QAAQ,QAAQ;;EAMnC,MAAM,QAAQ,OAA8C;AAK3D,UAAO,EACN,OALY,MAAM,OAAO,SAAS,EAClC,OAAO,OAAO,OACd,CAAC,EAGU,IAAIC,+BAAiB,EAChC;;EAOF,MAAM,kBACL,OACgC;AAEhC,UAAO,EACN,MAAM,EAAE,EACR;;EAOF,MAAM,sBACL,OACyC;AAEzC,UAAO;IACN,gBAAgB;IAChB,iBAAiB;IACjB,cAAc,EAAE;IAChB;;EAOF,MAAM,QAAQ,SAAmD;AAChE,8BAAa,WAAW;;EAOzB,MAAM,YAAY,SAAyD;AAE1E,UAAO,EAAE;;EAEV"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Pinner } from "../../../pinner.cjs";
|
|
2
|
+
import { FileListQuery, FileListResponse, PinJobQuery, PinJobResponse, PinataConfig, SignedUrlOptions, SwapCidOptions, SwapCidResponse, SwapHistoryOptions, TimeIntervalAnalyticsQuery, TimeIntervalAnalyticsResponse, TopAnalyticsQuery, TopAnalyticsResponse, UploadOptions, UploadResponse } from "../shared/types.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/adapters/pinata/legacy/adapter.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Pinata 1.x Legacy Adapter Interface
|
|
8
|
+
* Matches Pinata SDK 1.x API exactly
|
|
9
|
+
*/
|
|
10
|
+
interface PinataLegacyAdapter {
|
|
11
|
+
/**
|
|
12
|
+
* Upload a file to IPFS
|
|
13
|
+
*/
|
|
14
|
+
pinFileToIPFS(file: File, options?: UploadOptions): Promise<UploadResponse>;
|
|
15
|
+
/**
|
|
16
|
+
* Upload JSON data to IPFS
|
|
17
|
+
*/
|
|
18
|
+
pinJSONToIPFS(data: any, options?: UploadOptions): Promise<UploadResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Pin content by CID
|
|
21
|
+
*/
|
|
22
|
+
pinByHash(cid: string, options?: UploadOptions): Promise<UploadResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* List pinned files
|
|
25
|
+
*/
|
|
26
|
+
pinList(query?: FileListQuery): Promise<FileListResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Unpin content by CID
|
|
29
|
+
*/
|
|
30
|
+
unpin(cid: string): Promise<{
|
|
31
|
+
message: string;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Update pin metadata
|
|
35
|
+
*/
|
|
36
|
+
hashMetadata(cid: string, metadata: Record<string, string>): Promise<{
|
|
37
|
+
message: string;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Create signed URL for private IPFS files
|
|
41
|
+
*/
|
|
42
|
+
createSignedURL(options: SignedUrlOptions): Promise<string>;
|
|
43
|
+
/**
|
|
44
|
+
* Get pin jobs
|
|
45
|
+
*/
|
|
46
|
+
pinJobs(query?: PinJobQuery): Promise<PinJobResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Get top usage analytics
|
|
49
|
+
*/
|
|
50
|
+
topUsageAnalytics(query: TopAnalyticsQuery): Promise<TopAnalyticsResponse>;
|
|
51
|
+
/**
|
|
52
|
+
* Get date interval analytics
|
|
53
|
+
*/
|
|
54
|
+
dateIntervalAnalytics(query: TimeIntervalAnalyticsQuery): Promise<TimeIntervalAnalyticsResponse>;
|
|
55
|
+
/**
|
|
56
|
+
* Swap CID
|
|
57
|
+
*/
|
|
58
|
+
swapCid(options: SwapCidOptions): Promise<SwapCidResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* Get swap history
|
|
61
|
+
*/
|
|
62
|
+
swapHistory(options: SwapHistoryOptions): Promise<SwapCidResponse[]>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create Pinata 1.x Legacy Adapter
|
|
66
|
+
*
|
|
67
|
+
* @param pinner - Pinner client instance
|
|
68
|
+
* @param config - Pinata configuration
|
|
69
|
+
* @returns PinataLegacyAdapter
|
|
70
|
+
*/
|
|
71
|
+
declare function pinataLegacyAdapter(pinner: Pinner, config?: PinataConfig): PinataLegacyAdapter;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { PinataLegacyAdapter, pinataLegacyAdapter };
|
|
74
|
+
//# sourceMappingURL=adapter.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const require_adapter = require('./adapter.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const require_utils = require('./utils.cjs');
|
|
@@ -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 { FileListQuery, FileListResponse, PinJobQuery, PinJobResponse, PinataConfig, SignedUrlOptions, SwapCidOptions, SwapCidResponse, SwapHistoryOptions, TimeIntervalAnalyticsQuery, TimeIntervalAnalyticsResponse, TopAnalyticsQuery, TopAnalyticsResponse, UploadOptions, UploadResponse };
|
|
218
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let multiformats_cid = require("multiformats/cid");
|
|
3
|
+
|
|
4
|
+
//#region src/adapters/pinata/shared/utils.ts
|
|
5
|
+
/**
|
|
6
|
+
* Shared utilities for Pinata adapters
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse CID string to CID object
|
|
10
|
+
*/
|
|
11
|
+
function parseCID(cidString) {
|
|
12
|
+
try {
|
|
13
|
+
return multiformats_cid.CID.parse(cidString);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
throw new Error(`Invalid CID: ${cidString}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create upload response object
|
|
20
|
+
*/
|
|
21
|
+
function createUploadResponse(result, name) {
|
|
22
|
+
return {
|
|
23
|
+
id: result.cid,
|
|
24
|
+
name: name || "",
|
|
25
|
+
cid: result.cid,
|
|
26
|
+
size: result.size,
|
|
27
|
+
created_at: result.createdAt.toISOString(),
|
|
28
|
+
number_of_files: 1,
|
|
29
|
+
mime_type: "application/octet-stream",
|
|
30
|
+
user_id: "",
|
|
31
|
+
group_id: null,
|
|
32
|
+
is_duplicate: null,
|
|
33
|
+
vectorized: null
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create file list item from remote pin
|
|
38
|
+
*/
|
|
39
|
+
function createFileListItem(remotePin) {
|
|
40
|
+
return {
|
|
41
|
+
id: remotePin.cid.toString(),
|
|
42
|
+
name: remotePin.name || null,
|
|
43
|
+
cid: remotePin.cid.toString(),
|
|
44
|
+
size: remotePin.size || 0,
|
|
45
|
+
number_of_files: 1,
|
|
46
|
+
mime_type: "application/octet-stream",
|
|
47
|
+
keyvalues: remotePin.metadata || {},
|
|
48
|
+
group_id: null,
|
|
49
|
+
created_at: remotePin.created.toISOString()
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create pin job item from remote pin
|
|
54
|
+
*/
|
|
55
|
+
function createPinJobItem(remotePin) {
|
|
56
|
+
return {
|
|
57
|
+
id: remotePin.cid.toString(),
|
|
58
|
+
ipfs_pin_hash: remotePin.cid.toString(),
|
|
59
|
+
date_queued: remotePin.created.toISOString(),
|
|
60
|
+
name: remotePin.name || "",
|
|
61
|
+
status: remotePin.status || "pinned",
|
|
62
|
+
keyvalues: remotePin.metadata || {},
|
|
63
|
+
host_nodes: [],
|
|
64
|
+
pin_policy: {
|
|
65
|
+
regions: [],
|
|
66
|
+
version: 1
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Throw error for unsupported features
|
|
72
|
+
*/
|
|
73
|
+
function notSupported(feature) {
|
|
74
|
+
throw new Error(`${feature} are not supported by Pinner`);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//#endregion
|
|
78
|
+
exports.createFileListItem = createFileListItem;
|
|
79
|
+
exports.createPinJobItem = createPinJobItem;
|
|
80
|
+
exports.createUploadResponse = createUploadResponse;
|
|
81
|
+
exports.notSupported = notSupported;
|
|
82
|
+
exports.parseCID = parseCID;
|
|
83
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["CID"],"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,SAAOA,qBAAI,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"}
|