@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.
Files changed (200) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +707 -28
  3. package/dist/cjs/_virtual/rolldown_runtime.cjs +29 -0
  4. package/dist/cjs/adapters/pinata/index.cjs +6 -0
  5. package/dist/cjs/adapters/pinata/legacy/adapter.cjs +83 -0
  6. package/dist/cjs/adapters/pinata/legacy/adapter.cjs.map +1 -0
  7. package/dist/cjs/adapters/pinata/legacy/adapter.d.cts +74 -0
  8. package/dist/cjs/adapters/pinata/legacy/index.cjs +1 -0
  9. package/dist/cjs/adapters/pinata/shared/index.cjs +1 -0
  10. package/dist/cjs/adapters/pinata/shared/types.d.cts +218 -0
  11. package/dist/cjs/adapters/pinata/shared/utils.cjs +83 -0
  12. package/dist/cjs/adapters/pinata/shared/utils.cjs.map +1 -0
  13. package/dist/cjs/adapters/pinata/v2/adapter-interface.d.cts +198 -0
  14. package/dist/cjs/adapters/pinata/v2/adapter.cjs +636 -0
  15. package/dist/cjs/adapters/pinata/v2/adapter.cjs.map +1 -0
  16. package/dist/cjs/adapters/pinata/v2/adapter.d.cts +17 -0
  17. package/dist/cjs/adapters/pinata/v2/index.cjs +1 -0
  18. package/dist/cjs/adapters/pinata/v2/types.d.cts +308 -0
  19. package/dist/cjs/blockstore/index.cjs +2 -0
  20. package/dist/cjs/blockstore/unstorage-base.cjs +240 -0
  21. package/dist/cjs/blockstore/unstorage-base.cjs.map +1 -0
  22. package/dist/cjs/blockstore/unstorage-base.d.cts +23 -0
  23. package/dist/cjs/blockstore/unstorage.cjs +39 -0
  24. package/dist/cjs/blockstore/unstorage.cjs.map +1 -0
  25. package/dist/cjs/blockstore/unstorage.d.cts +36 -0
  26. package/dist/cjs/config.d.cts +51 -0
  27. package/dist/cjs/encoder/base64.cjs +38 -0
  28. package/dist/cjs/encoder/base64.cjs.map +1 -0
  29. package/dist/cjs/encoder/csv/csv-formatter.cjs +81 -0
  30. package/dist/cjs/encoder/csv/csv-formatter.cjs.map +1 -0
  31. package/dist/cjs/encoder/csv/field-formatter.cjs +76 -0
  32. package/dist/cjs/encoder/csv/field-formatter.cjs.map +1 -0
  33. package/dist/cjs/encoder/csv/row-formatter.cjs +159 -0
  34. package/dist/cjs/encoder/csv/row-formatter.cjs.map +1 -0
  35. package/dist/cjs/encoder/csv.cjs +44 -0
  36. package/dist/cjs/encoder/csv.cjs.map +1 -0
  37. package/dist/cjs/encoder/error.cjs +19 -0
  38. package/dist/cjs/encoder/error.cjs.map +1 -0
  39. package/dist/cjs/encoder/index.cjs +6 -0
  40. package/dist/cjs/encoder/json.cjs +36 -0
  41. package/dist/cjs/encoder/json.cjs.map +1 -0
  42. package/dist/cjs/encoder/text.cjs +35 -0
  43. package/dist/cjs/encoder/text.cjs.map +1 -0
  44. package/dist/cjs/encoder/url.cjs +39 -0
  45. package/dist/cjs/encoder/url.cjs.map +1 -0
  46. package/dist/cjs/errors/index.cjs +104 -0
  47. package/dist/cjs/errors/index.cjs.map +1 -0
  48. package/dist/cjs/errors/index.d.cts +47 -0
  49. package/dist/cjs/index.cjs +44 -0
  50. package/dist/cjs/index.d.cts +16 -0
  51. package/dist/cjs/pin/client.cjs +98 -0
  52. package/dist/cjs/pin/client.cjs.map +1 -0
  53. package/dist/cjs/pin/index.cjs +1 -0
  54. package/dist/cjs/pinner.cjs +132 -0
  55. package/dist/cjs/pinner.cjs.map +1 -0
  56. package/dist/cjs/pinner.d.cts +81 -0
  57. package/dist/cjs/types/constants.cjs +39 -0
  58. package/dist/cjs/types/constants.cjs.map +1 -0
  59. package/dist/cjs/types/mime-types.cjs +11 -0
  60. package/dist/cjs/types/mime-types.cjs.map +1 -0
  61. package/dist/cjs/types/mime-types.d.cts +7 -0
  62. package/dist/cjs/types/pin.d.cts +78 -0
  63. package/dist/cjs/types/type-guards.cjs +20 -0
  64. package/dist/cjs/types/type-guards.cjs.map +1 -0
  65. package/dist/cjs/types/type-guards.d.cts +15 -0
  66. package/dist/cjs/types/upload.cjs +18 -0
  67. package/dist/cjs/types/upload.cjs.map +1 -0
  68. package/dist/cjs/types/upload.d.cts +189 -0
  69. package/dist/cjs/upload/base-upload.cjs +135 -0
  70. package/dist/cjs/upload/base-upload.cjs.map +1 -0
  71. package/dist/cjs/upload/builder.cjs +174 -0
  72. package/dist/cjs/upload/builder.cjs.map +1 -0
  73. package/dist/cjs/upload/builder.d.cts +60 -0
  74. package/dist/cjs/upload/car.cjs +129 -0
  75. package/dist/cjs/upload/car.cjs.map +1 -0
  76. package/dist/cjs/upload/car.d.cts +19 -0
  77. package/dist/cjs/upload/constants.cjs +9 -0
  78. package/dist/cjs/upload/constants.cjs.map +1 -0
  79. package/dist/cjs/upload/index.cjs +8 -0
  80. package/dist/cjs/upload/manager.cjs +249 -0
  81. package/dist/cjs/upload/manager.cjs.map +1 -0
  82. package/dist/cjs/upload/manager.d.cts +35 -0
  83. package/dist/cjs/upload/normalize.cjs +28 -0
  84. package/dist/cjs/upload/normalize.cjs.map +1 -0
  85. package/dist/cjs/upload/tus-upload.cjs +74 -0
  86. package/dist/cjs/upload/tus-upload.cjs.map +1 -0
  87. package/dist/cjs/upload/xhr-upload.cjs +41 -0
  88. package/dist/cjs/upload/xhr-upload.cjs.map +1 -0
  89. package/dist/cjs/utils/env.cjs +12 -0
  90. package/dist/cjs/utils/env.cjs.map +1 -0
  91. package/dist/cjs/utils/stream.cjs +141 -0
  92. package/dist/cjs/utils/stream.cjs.map +1 -0
  93. package/dist/cjs/utils/stream.d.cts +23 -0
  94. package/dist/cjs/utils/tus-patch.cjs +50 -0
  95. package/dist/cjs/utils/tus-patch.cjs.map +1 -0
  96. package/dist/cjs/utils/validation.cjs +62 -0
  97. package/dist/cjs/utils/validation.cjs.map +1 -0
  98. package/dist/esm/_virtual/rolldown_runtime.js +8 -0
  99. package/dist/esm/adapters/pinata/index.d.ts +7 -0
  100. package/dist/esm/adapters/pinata/index.js +6 -0
  101. package/dist/esm/adapters/pinata/legacy/adapter.d.ts +74 -0
  102. package/dist/esm/adapters/pinata/legacy/adapter.js +83 -0
  103. package/dist/esm/adapters/pinata/legacy/adapter.js.map +1 -0
  104. package/dist/esm/adapters/pinata/legacy/index.d.ts +1 -0
  105. package/dist/esm/adapters/pinata/legacy/index.js +1 -0
  106. package/dist/esm/adapters/pinata/shared/index.d.ts +2 -0
  107. package/dist/esm/adapters/pinata/shared/index.js +1 -0
  108. package/dist/esm/adapters/pinata/shared/types.d.ts +218 -0
  109. package/dist/esm/adapters/pinata/shared/utils.d.ts +1 -0
  110. package/dist/esm/adapters/pinata/shared/utils.js +78 -0
  111. package/dist/esm/adapters/pinata/shared/utils.js.map +1 -0
  112. package/dist/esm/adapters/pinata/v2/adapter-interface.d.ts +198 -0
  113. package/dist/esm/adapters/pinata/v2/adapter.d.ts +17 -0
  114. package/dist/esm/adapters/pinata/v2/adapter.js +636 -0
  115. package/dist/esm/adapters/pinata/v2/adapter.js.map +1 -0
  116. package/dist/esm/adapters/pinata/v2/index.d.ts +3 -0
  117. package/dist/esm/adapters/pinata/v2/index.js +1 -0
  118. package/dist/esm/adapters/pinata/v2/types.d.ts +308 -0
  119. package/dist/esm/blockstore/index.d.ts +2 -0
  120. package/dist/esm/blockstore/index.js +2 -0
  121. package/dist/esm/blockstore/unstorage-base.d.ts +23 -0
  122. package/dist/esm/blockstore/unstorage-base.js +231 -0
  123. package/dist/esm/blockstore/unstorage-base.js.map +1 -0
  124. package/dist/esm/blockstore/unstorage.d.ts +36 -0
  125. package/dist/esm/blockstore/unstorage.js +38 -0
  126. package/dist/esm/blockstore/unstorage.js.map +1 -0
  127. package/dist/esm/config.d.ts +51 -0
  128. package/dist/esm/encoder/base64.js +37 -0
  129. package/dist/esm/encoder/base64.js.map +1 -0
  130. package/dist/esm/encoder/csv/csv-formatter.js +81 -0
  131. package/dist/esm/encoder/csv/csv-formatter.js.map +1 -0
  132. package/dist/esm/encoder/csv/field-formatter.js +75 -0
  133. package/dist/esm/encoder/csv/field-formatter.js.map +1 -0
  134. package/dist/esm/encoder/csv/row-formatter.js +159 -0
  135. package/dist/esm/encoder/csv/row-formatter.js.map +1 -0
  136. package/dist/esm/encoder/csv.js +43 -0
  137. package/dist/esm/encoder/csv.js.map +1 -0
  138. package/dist/esm/encoder/error.js +18 -0
  139. package/dist/esm/encoder/error.js.map +1 -0
  140. package/dist/esm/encoder/index.js +6 -0
  141. package/dist/esm/encoder/json.js +35 -0
  142. package/dist/esm/encoder/json.js.map +1 -0
  143. package/dist/esm/encoder/text.js +34 -0
  144. package/dist/esm/encoder/text.js.map +1 -0
  145. package/dist/esm/encoder/url.js +36 -0
  146. package/dist/esm/encoder/url.js.map +1 -0
  147. package/dist/esm/errors/index.d.ts +47 -0
  148. package/dist/esm/errors/index.js +93 -0
  149. package/dist/esm/errors/index.js.map +1 -0
  150. package/dist/esm/index.d.ts +18 -0
  151. package/dist/esm/index.js +15 -0
  152. package/dist/esm/pin/client.js +97 -0
  153. package/dist/esm/pin/client.js.map +1 -0
  154. package/dist/esm/pin/index.js +1 -0
  155. package/dist/esm/pinner.d.ts +81 -0
  156. package/dist/esm/pinner.js +131 -0
  157. package/dist/esm/pinner.js.map +1 -0
  158. package/dist/esm/types/constants.js +33 -0
  159. package/dist/esm/types/constants.js.map +1 -0
  160. package/dist/esm/types/mime-types.d.ts +7 -0
  161. package/dist/esm/types/mime-types.js +8 -0
  162. package/dist/esm/types/mime-types.js.map +1 -0
  163. package/dist/esm/types/pin.d.ts +78 -0
  164. package/dist/esm/types/type-guards.d.ts +15 -0
  165. package/dist/esm/types/type-guards.js +19 -0
  166. package/dist/esm/types/type-guards.js.map +1 -0
  167. package/dist/esm/types/upload.d.ts +189 -0
  168. package/dist/esm/types/upload.js +16 -0
  169. package/dist/esm/types/upload.js.map +1 -0
  170. package/dist/esm/upload/base-upload.js +132 -0
  171. package/dist/esm/upload/base-upload.js.map +1 -0
  172. package/dist/esm/upload/builder.d.ts +60 -0
  173. package/dist/esm/upload/builder.js +173 -0
  174. package/dist/esm/upload/builder.js.map +1 -0
  175. package/dist/esm/upload/car.d.ts +19 -0
  176. package/dist/esm/upload/car.js +125 -0
  177. package/dist/esm/upload/car.js.map +1 -0
  178. package/dist/esm/upload/constants.js +7 -0
  179. package/dist/esm/upload/constants.js.map +1 -0
  180. package/dist/esm/upload/index.js +8 -0
  181. package/dist/esm/upload/manager.d.ts +35 -0
  182. package/dist/esm/upload/manager.js +248 -0
  183. package/dist/esm/upload/manager.js.map +1 -0
  184. package/dist/esm/upload/normalize.js +28 -0
  185. package/dist/esm/upload/normalize.js.map +1 -0
  186. package/dist/esm/upload/tus-upload.js +72 -0
  187. package/dist/esm/upload/tus-upload.js.map +1 -0
  188. package/dist/esm/upload/xhr-upload.js +39 -0
  189. package/dist/esm/upload/xhr-upload.js.map +1 -0
  190. package/dist/esm/utils/env.js +11 -0
  191. package/dist/esm/utils/env.js.map +1 -0
  192. package/dist/esm/utils/stream.d.ts +23 -0
  193. package/dist/esm/utils/stream.js +134 -0
  194. package/dist/esm/utils/stream.js.map +1 -0
  195. package/dist/esm/utils/tus-patch.js +51 -0
  196. package/dist/esm/utils/tus-patch.js.map +1 -0
  197. package/dist/esm/utils/validation.js +60 -0
  198. package/dist/esm/utils/validation.js.map +1 -0
  199. package/package.json +95 -8
  200. package/public/mockServiceWorker.js +349 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.cjs","names":["parseCID","DEFAULT_GATEWAY"],"sources":["../../../../../src/adapters/pinata/v2/adapter.ts"],"sourcesContent":["/**\n * Pinata SDK 2.x Adapter Implementation\n * Provides compatibility with Pinata SDK 2.x API\n *\n * Source: https://github.com/PinataCloud/pinata/commit/cdc0c06116aaadaf7c4b287a2673cd23b6ba1125\n * - src/core/pinataSDK.ts\n * - src/core/types/index.ts\n * - src/core/classes/index.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\tUploadCIDOptions,\n\tPinByCIDResponse,\n\tSignedUploadUrlOptions,\n\tFileListItem,\n\tFileListQuery,\n\tFileListResponse,\n\tUpdateFileOptions,\n\tDeleteResponse,\n\tPinQueueQuery,\n\tPinQueueResponse,\n\tSwapCidOptions,\n\tSwapCidResponse,\n\tSwapHistoryOptions,\n\tAccessLinkOptions,\n\tGroupOptions,\n\tUpdateGroupOptions,\n\tGetGroupOptions,\n\tGroupResponseItem,\n\tGroupCIDOptions,\n\tUpdateGroupFilesResponse,\n\tTopAnalyticsQuery,\n\tTopAnalyticsResponse,\n\tTimeIntervalAnalyticsQuery,\n\tTimeIntervalAnalyticsResponse,\n} from \"./types\";\nimport type {\n\tPinataAdapter,\n\tPublicUpload,\n\tPrivateUpload,\n\tPublicFiles,\n\tPrivateFiles,\n\tPublicGateways,\n\tPrivateGateways,\n\tPublicGroups,\n\tPrivateGroups,\n\tAnalytics,\n\tUploadBuilder,\n\tFilterFiles,\n\tFilterQueue,\n\tFilterGroups,\n} from \"./adapter-interface\";\nimport { parseCID, notSupported } from \"../shared/utils\";\nimport { DEFAULT_GATEWAY } from \"@/types/constants\";\n\n/**\n * Implementation of UploadBuilder\n */\nclass UploadBuilderImpl<TResult> implements UploadBuilder<TResult> {\n\tprivate _name?: string;\n\tprivate _keyvalues?: Record<string, string>;\n\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate executeFn: (name?: string, keyvalues?: Record<string, string>) => Promise<TResult>,\n\t) {}\n\n\tname(name: string): this {\n\t\tthis._name = name;\n\t\treturn this;\n\t}\n\n\tkeyvalues(keyvalues: Record<string, string>): this {\n\t\tthis._keyvalues = keyvalues;\n\t\treturn this;\n\t}\n\n\tasync execute(): Promise<TResult> {\n\t\treturn this.executeFn(this._name, this._keyvalues);\n\t}\n}\n\n/**\n * Implementation of FilterFiles\n */\nclass FilterFilesImpl implements FilterFiles {\n\tprivate query: FileListQuery = {};\n\tprivate currentPageToken: string | undefined;\n\tprivate privacy: \"public\" | \"private\";\n\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivacy: \"public\" | \"private\",\n\t) {\n\t\tthis.privacy = privacy;\n\t}\n\n\tname(name: string): FilterFiles {\n\t\tthis.query.name = name;\n\t\treturn this;\n\t}\n\n\tgroup(group: string): FilterFiles {\n\t\tthis.query.group = group;\n\t\treturn this;\n\t}\n\n\tcid(cid: string): FilterFiles {\n\t\tthis.query.cid = cid;\n\t\treturn this;\n\t}\n\n\tmimeType(mimeType: string): FilterFiles {\n\t\tthis.query.mimeType = mimeType;\n\t\treturn this;\n\t}\n\n\torder(order: \"ASC\" | \"DESC\"): FilterFiles {\n\t\tthis.query.order = order;\n\t\treturn this;\n\t}\n\n\tlimit(limit: number): FilterFiles {\n\t\tthis.query.limit = limit;\n\t\treturn this;\n\t}\n\n\tcidPending(cidPending: boolean): FilterFiles {\n\t\tthis.query.cidPending = cidPending;\n\t\treturn this;\n\t}\n\n\tkeyvalues(keyvalues: Record<string, string>): FilterFiles {\n\t\tthis.query.metadata = keyvalues;\n\t\treturn this;\n\t}\n\n\tnoGroup(noGroup: boolean): FilterFiles {\n\t\tthis.query.noGroup = noGroup;\n\t\treturn this;\n\t}\n\n\tpageToken(pageToken: string): FilterFiles {\n\t\tthis.query.pageToken = Number.parseInt(pageToken, 10);\n\t\treturn this;\n\t}\n\n\tthen(\n\t\tonfulfilled?: ((value: FileListResponse) => any) | null,\n\t\tonrejected?: ((reason: any) => any) | null,\n\t): Promise<any> {\n\t\treturn this.fetchPage().then(onfulfilled, onrejected);\n\t}\n\n\tprivate async fetchPage(): Promise<FileListResponse> {\n\t\tconst pins = await this.pinner.listPins({\n\t\t\tlimit: this.query.limit,\n\t\t});\n\n\t\treturn {\n\t\t\tfiles: pins.map((pin) => ({\n\t\t\t\tid: pin.cid.toString(),\n\t\t\t\tname: pin.name || null,\n\t\t\t\tcid: pin.cid.toString(),\n\t\t\t\tsize: pin.size || 0,\n\t\t\t\tnumber_of_files: 1,\n\t\t\t\tmime_type: \"application/octet-stream\",\n\t\t\t\tkeyvalues: pin.metadata || {},\n\t\t\t\tgroup_id: null,\n\t\t\t\tcreated_at: pin.created.toISOString(),\n\t\t\t})),\n\t\t\tnext_page_token: this.currentPageToken || \"\",\n\t\t};\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncGenerator<FileListItem, void, unknown> {\n\t\twhile (true) {\n\t\t\tconst items = await this.fetchPage();\n\t\t\tfor (const item of items.files) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t\tif (!this.currentPageToken) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync all(): Promise<FileListItem[]> {\n\t\tconst allItems: FileListItem[] = [];\n\t\tfor await (const item of this) {\n\t\t\tallItems.push(item);\n\t\t}\n\t\treturn allItems;\n\t}\n}\n\n/**\n * Implementation of FilterQueue\n */\nclass FilterQueueImpl implements FilterQueue {\n\tprivate query: PinQueueQuery = {};\n\tprivate currentPageToken: string | undefined;\n\n\tconstructor(private pinner: Pinner) {}\n\n\tcid(cid: string): FilterQueue {\n\t\tthis.query.cid = cid;\n\t\treturn this;\n\t}\n\n\tstatus(\n\t\tstatus:\n\t\t\t| \"prechecking\"\n\t\t\t| \"retrieving\"\n\t\t\t| \"expired\"\n\t\t\t| \"backfilled\"\n\t\t\t| \"over_free_limit\"\n\t\t\t| \"over_max_size\"\n\t\t\t| \"invalid_object\"\n\t\t\t| \"bad_host_node\",\n\t): FilterQueue {\n\t\tthis.query.status = status;\n\t\treturn this;\n\t}\n\n\tpageLimit(limit: number): FilterQueue {\n\t\tthis.query.limit = limit;\n\t\treturn this;\n\t}\n\n\tpageToken(pageToken: string): FilterQueue {\n\t\tthis.query.pageToken = pageToken;\n\t\treturn this;\n\t}\n\n\tsort(sort: \"ASC\" | \"DSC\"): FilterQueue {\n\t\tthis.query.sort = sort;\n\t\treturn this;\n\t}\n\n\tthen(\n\t\tonfulfilled?: ((value: PinQueueResponse) => any) | null,\n\t\tonrejected?: ((reason: any) => any) | null,\n\t): Promise<any> {\n\t\treturn this.fetchPage().then(onfulfilled, onrejected);\n\t}\n\n\tprivate async fetchPage(): Promise<PinQueueResponse> {\n\t\tconst pins = await this.pinner.listPins({\n\t\t\tlimit: this.query.limit,\n\t\t});\n\n\t\treturn {\n\t\t\tjobs: pins.map((pin) => ({\n\t\t\t\tid: pin.cid.toString(),\n\t\t\t\tcid: pin.cid.toString(),\n\t\t\t\tdate_queued: pin.created.toISOString(),\n\t\t\t\tname: pin.name || \"\",\n\t\t\t\tstatus: pin.status || \"pinned\",\n\t\t\t\tkeyvalues: pin.metadata || {},\n\t\t\t\thost_nodes: [],\n\t\t\t\tpin_policy: {\n\t\t\t\t\tregions: [],\n\t\t\t\t\tversion: 1,\n\t\t\t\t},\n\t\t\t})),\n\t\t\tnext_page_token: this.currentPageToken || \"\",\n\t\t};\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncGenerator<\n\t\timport(\"./types\").PinQueueItem,\n\t\tvoid,\n\t\tunknown\n\t> {\n\t\twhile (true) {\n\t\t\tconst items = await this.fetchPage();\n\t\t\tfor (const item of items.jobs) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t\tif (!this.currentPageToken) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync all(): Promise<import(\"./types\").PinQueueItem[]> {\n\t\tconst allItems: import(\"./types\").PinQueueItem[] = [];\n\t\tfor await (const item of this) {\n\t\t\tallItems.push(item);\n\t\t}\n\t\treturn allItems;\n\t}\n}\n\n/**\n * Implementation of FilterGroups\n */\nclass FilterGroupsImpl implements FilterGroups {\n\tprivate currentPageToken: string | undefined;\n\tprivate privacy: \"public\" | \"private\";\n\n\tconstructor(private pinner: Pinner, privacy: \"public\" | \"private\") {\n\t\tthis.privacy = privacy;\n\t}\n\n\tname(name: string): FilterGroups {\n\t\t// Pinner doesn't support groups, return empty\n\t\treturn this;\n\t}\n\n\tlimit(limit: number): FilterGroups {\n\t\treturn this;\n\t}\n\n\tpageToken(pageToken: string): FilterGroups {\n\t\tthis.currentPageToken = pageToken;\n\t\treturn this;\n\t}\n\n\tisPublic(isPublic: boolean): FilterGroups {\n\t\treturn this;\n\t}\n\n\tthen(\n\t\tonfulfilled?: ((value: import(\"./types\").GroupListResponse) => any) | null,\n\t\tonrejected?: ((reason: any) => any) | null,\n\t): Promise<any> {\n\t\treturn this.fetchPage().then(onfulfilled, onrejected);\n\t}\n\n\tprivate async fetchPage(): Promise<import(\"./types\").GroupListResponse> {\n\t\t// Pinner doesn't support groups\n\t\treturn {\n\t\t\tgroups: [],\n\t\t\tnext_page_token: this.currentPageToken || \"\",\n\t\t};\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncGenerator<GroupResponseItem, void, unknown> {\n\t\tconst items = await this.fetchPage();\n\t\tfor (const item of items.groups) {\n\t\t\tyield item;\n\t\t}\n\t}\n\n\tasync all(): Promise<GroupResponseItem[]> {\n\t\tconst allItems: GroupResponseItem[] = [];\n\t\tfor await (const item of this) {\n\t\t\tallItems.push(item);\n\t\t}\n\t\treturn allItems;\n\t}\n}\n\n/**\n * Implementation of PublicUpload\n */\nclass PublicUploadImpl implements PublicUpload {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tfile(file: File, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async (name, keyvalues) => {\n\t\t\tconst result = await this.pinner.uploadAndWait(file, {\n\t\t\t\tname: name || options?.metadata?.name,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tid: result.cid,\n\t\t\t\tname: file.name,\n\t\t\t\tcid: result.cid,\n\t\t\t\tsize: result.size,\n\t\t\t\tcreated_at: result.createdAt.toISOString(),\n\t\t\t\tnumber_of_files: 1,\n\t\t\t\tmime_type: file.type || \"application/octet-stream\",\n\t\t\t\tgroup_id: null,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues || {},\n\t\t\t\tvectorized: false,\n\t\t\t\tnetwork: \"public\",\n\t\t\t};\n\t\t});\n\t}\n\n\tfileArray(\n\t\tfiles: File[],\n\t\toptions?: UploadOptions,\n\t): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async (name, keyvalues) => {\n\t\t\tconst operation = await this.pinner.uploadDirectory(files, {\n\t\t\t\tname: name || options?.metadata?.name,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues,\n\t\t\t});\n\t\t\tconst result = await operation.result;\n\n\t\t\treturn {\n\t\t\t\tid: result.cid,\n\t\t\t\tname: name || options?.metadata?.name || \"directory\",\n\t\t\t\tcid: result.cid,\n\t\t\t\tsize: result.size,\n\t\t\t\tcreated_at: result.createdAt.toISOString(),\n\t\t\t\tnumber_of_files: files.length,\n\t\t\t\tmime_type: \"application/octet-stream\",\n\t\t\t\tgroup_id: null,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues || {},\n\t\t\t\tvectorized: false,\n\t\t\t\tnetwork: \"public\",\n\t\t\t};\n\t\t});\n\t}\n\n\tbase64(\n\t\tbase64String: string,\n\t\toptions?: UploadOptions,\n\t): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async (name, keyvalues) => {\n\t\t\t// Convert base64 to file\n\t\t\tconst binaryString = atob(base64String);\n\t\t\tconst bytes = new Uint8Array(binaryString.length);\n\t\t\tfor (let i = 0; i < binaryString.length; i++) {\n\t\t\t\tbytes[i] = binaryString.charCodeAt(i);\n\t\t\t}\n\t\t\tconst blob = new Blob([bytes], {\n\t\t\t\ttype: \"application/octet-stream\",\n\t\t\t});\n\t\t\tconst file = new File(\n\t\t\t\t[blob],\n\t\t\t\tname || options?.metadata?.name || \"file.bin\",\n\t\t\t\t{ type: \"application/octet-stream\" },\n\t\t\t);\n\n\t\t\tconst result = await this.pinner.uploadAndWait(file, {\n\t\t\t\tname: name || options?.metadata?.name,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tid: result.cid,\n\t\t\t\tname: file.name,\n\t\t\t\tcid: result.cid,\n\t\t\t\tsize: result.size,\n\t\t\t\tcreated_at: result.createdAt.toISOString(),\n\t\t\t\tnumber_of_files: 1,\n\t\t\t\tmime_type: \"application/octet-stream\",\n\t\t\t\tgroup_id: null,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues || {},\n\t\t\t\tvectorized: false,\n\t\t\t\tnetwork: \"public\",\n\t\t\t};\n\t\t});\n\t}\n\n\turl(url: string, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"URL upload\");\n\t\t});\n\t}\n\n\tjson(data: object, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async (name, keyvalues) => {\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\tname || options?.metadata?.name || \"data.json\",\n\t\t\t\t{ type: \"application/json\" },\n\t\t\t);\n\n\t\t\tconst result = await this.pinner.uploadAndWait(file, {\n\t\t\t\tname: name || options?.metadata?.name,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tid: result.cid,\n\t\t\t\tname: file.name,\n\t\t\t\tcid: result.cid,\n\t\t\t\tsize: result.size,\n\t\t\t\tcreated_at: result.createdAt.toISOString(),\n\t\t\t\tnumber_of_files: 1,\n\t\t\t\tmime_type: \"application/json\",\n\t\t\t\tgroup_id: null,\n\t\t\t\tkeyvalues: keyvalues || options?.metadata?.keyvalues || {},\n\t\t\t\tvectorized: false,\n\t\t\t\tnetwork: \"public\",\n\t\t\t};\n\t\t});\n\t}\n\n\tcid(cid: string, options?: UploadCIDOptions): UploadBuilder<PinByCIDResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tconst cidObj = parseCID(cid);\n\t\t\tconst generator = await this.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\treturn {\n\t\t\t\tid: cid,\n\t\t\t\tcid: cid,\n\t\t\t\tdate_queued: new Date().toISOString(),\n\t\t\t\tname: options?.metadata?.name || \"\",\n\t\t\t\tstatus: \"pinned\",\n\t\t\t\tkeyvalues: options?.metadata?.keyvalues || null,\n\t\t\t\thost_nodes: null,\n\t\t\t\tgroup_id: options?.groupId || null,\n\t\t\t};\n\t\t});\n\t}\n\n\tasync createSignedURL(\n\t\toptions: SignedUploadUrlOptions,\n\t): Promise<string> {\n\t\tnotSupported(\"Signed upload URLs\");\n\t}\n}\n\n/**\n * Implementation of PrivateUpload\n */\nclass PrivateUploadImpl implements PrivateUpload {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tfile(file: File, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\tfileArray(\n\t\tfiles: File[],\n\t\toptions?: UploadOptions,\n\t): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\tbase64(\n\t\tbase64String: string,\n\t\toptions?: UploadOptions,\n\t): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\turl(url: string, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\tjson(data: object, options?: UploadOptions): UploadBuilder<UploadResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\tcid(cid: string, options?: UploadCIDOptions): UploadBuilder<PinByCIDResponse> {\n\t\treturn new UploadBuilderImpl(this.pinner, async () => {\n\t\t\tnotSupported(\"Private upload\");\n\t\t});\n\t}\n\n\tasync createSignedURL(\n\t\toptions: SignedUploadUrlOptions,\n\t): Promise<string> {\n\t\tnotSupported(\"Private upload\");\n\t}\n}\n\n/**\n * Implementation of PublicFiles\n */\nclass PublicFilesImpl implements PublicFiles {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tlist(): FilterFiles {\n\t\treturn new FilterFilesImpl(this.pinner, \"public\");\n\t}\n\n\tasync get(id: string): Promise<FileListItem> {\n\t\tconst cidObj = parseCID(id);\n\t\tconst pin = await this.pinner.getPinStatus(cidObj);\n\n\t\treturn {\n\t\t\tid: pin.cid.toString(),\n\t\t\tname: pin.name || null,\n\t\t\tcid: pin.cid.toString(),\n\t\t\tsize: pin.size || 0,\n\t\t\tnumber_of_files: 1,\n\t\t\tmime_type: \"application/octet-stream\",\n\t\t\tkeyvalues: pin.metadata || {},\n\t\t\tgroup_id: null,\n\t\t\tcreated_at: pin.created.toISOString(),\n\t\t};\n\t}\n\n\tasync delete(files: string[]): Promise<DeleteResponse[]> {\n\t\tconst results: DeleteResponse[] = [];\n\t\tfor (const file of files) {\n\t\t\tawait this.pinner.unpin(file);\n\t\t\tresults.push({ id: file, status: \"deleted\" });\n\t\t}\n\t\treturn results;\n\t}\n\n\tasync update(options: UpdateFileOptions): Promise<FileListItem> {\n\t\tawait this.pinner.setPinMetadata(options.id, options.keyvalues || {});\n\n\t\tconst pin = await this.pinner.getPinStatus(parseCID(options.id));\n\t\treturn {\n\t\t\tid: pin.cid.toString(),\n\t\t\tname: pin.name || null,\n\t\t\tcid: pin.cid.toString(),\n\t\t\tsize: pin.size || 0,\n\t\t\tnumber_of_files: 1,\n\t\t\tmime_type: \"application/octet-stream\",\n\t\t\tkeyvalues: pin.metadata || {},\n\t\t\tgroup_id: null,\n\t\t\tcreated_at: pin.created.toISOString(),\n\t\t};\n\t}\n\n\tasync addSwap(options: SwapCidOptions): Promise<SwapCidResponse> {\n\t\tnotSupported(\"Swap CID\");\n\t}\n\n\tasync getSwapHistory(\n\t\toptions: SwapHistoryOptions,\n\t): Promise<SwapCidResponse[]> {\n\t\treturn [];\n\t}\n\n\tasync deleteSwap(cid: string): Promise<string> {\n\t\tnotSupported(\"Swap CID\");\n\t}\n\n\tqueue(): FilterQueue {\n\t\treturn new FilterQueueImpl(this.pinner);\n\t}\n\n\tasync deletePinRequest(requestId: string): Promise<string> {\n\t\t// Delete pin by request ID (not CID)\n\t\tawait this.pinner.unpinByRequestId(requestId);\n\t\treturn requestId;\n\t}\n}\n\n/**\n * Implementation of PrivateFiles\n */\nclass PrivateFilesImpl implements PrivateFiles {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tlist(): FilterFiles {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync get(id: string): Promise<FileListItem> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync delete(files: string[]): Promise<DeleteResponse[]> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync update(options: UpdateFileOptions): Promise<FileListItem> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync addSwap(options: SwapCidOptions): Promise<SwapCidResponse> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync getSwapHistory(\n\t\toptions: SwapHistoryOptions,\n\t): Promise<SwapCidResponse[]> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync deleteSwap(cid: string): Promise<string> {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tqueue(): FilterQueue {\n\t\tnotSupported(\"Private files\");\n\t}\n\n\tasync deletePinRequest(requestId: string): Promise<string> {\n\t\tnotSupported(\"Private files\");\n\t}\n}\n\n/**\n * Implementation of PublicGateways\n */\nclass PublicGatewaysImpl implements PublicGateways {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tget(cid: string): any {\n\t\t// Return an object that can be used to fetch CID\n\t\treturn {\n\t\t\tcid,\n\t\t\tgateway: this.config?.pinataGateway || DEFAULT_GATEWAY,\n\t\t\turl: `${this.config?.pinataGateway || DEFAULT_GATEWAY}/ipfs/${cid}`,\n\t\t};\n\t}\n\n\tasync convert(\n\t\turl: string,\n\t\tgatewayPrefix?: string,\n\t): Promise<string> {\n\t\t// Convert IPFS URL to gateway URL\n\t\tconst gateway = gatewayPrefix || this.config?.pinataGateway || DEFAULT_GATEWAY;\n\t\treturn url.replace(\"ipfs://\", `${gateway}/ipfs/`);\n\t}\n}\n\n/**\n * Implementation of PrivateGateways\n */\nclass PrivateGatewaysImpl implements PrivateGateways {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tget(cid: string): any {\n\t\tnotSupported(\"Private gateways\");\n\t}\n\n\tcreateAccessLink(options: AccessLinkOptions): any {\n\t\tnotSupported(\"Private gateways\");\n\t}\n}\n\n/**\n * Implementation of PublicGroups\n */\nclass PublicGroupsImpl implements PublicGroups {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tasync create(options: GroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Groups\");\n\t}\n\n\tlist(): FilterGroups {\n\t\treturn new FilterGroupsImpl(this.pinner, \"public\");\n\t}\n\n\tasync get(options: GetGroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Groups\");\n\t}\n\n\tasync addFiles(\n\t\toptions: GroupCIDOptions,\n\t): Promise<UpdateGroupFilesResponse[]> {\n\t\tnotSupported(\"Groups\");\n\t}\n\n\tasync removeFiles(\n\t\toptions: GroupCIDOptions,\n\t): Promise<UpdateGroupFilesResponse[]> {\n\t\tnotSupported(\"Groups\");\n\t}\n\n\tasync update(options: UpdateGroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Groups\");\n\t}\n\n\tasync delete(options: GetGroupOptions): Promise<string> {\n\t\tnotSupported(\"Groups\");\n\t}\n}\n\n/**\n * Implementation of PrivateGroups\n */\nclass PrivateGroupsImpl implements PrivateGroups {\n\tconstructor(\n\t\tprivate pinner: Pinner,\n\t\tprivate config?: PinataConfig,\n\t) {}\n\n\tasync create(options: GroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tlist(): FilterGroups {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tasync get(options: GetGroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tasync addFiles(\n\t\toptions: GroupCIDOptions,\n\t): Promise<UpdateGroupFilesResponse[]> {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tasync removeFiles(\n\t\toptions: GroupCIDOptions,\n\t): Promise<UpdateGroupFilesResponse[]> {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tasync update(options: UpdateGroupOptions): Promise<GroupResponseItem> {\n\t\tnotSupported(\"Private groups\");\n\t}\n\n\tasync delete(options: GetGroupOptions): Promise<string> {\n\t\tnotSupported(\"Private groups\");\n\t}\n}\n\n/**\n * Implementation of Analytics\n */\nclass AnalyticsImpl implements Analytics {\n\tasync requests(query: TopAnalyticsQuery): Promise<TopAnalyticsResponse> {\n\t\t// Pinner doesn't support analytics\n\t\treturn {\n\t\t\tdata: [],\n\t\t};\n\t}\n\n\tasync bandwidth(\n\t\tquery: TimeIntervalAnalyticsQuery,\n\t): Promise<TimeIntervalAnalyticsResponse> {\n\t\t// Pinner doesn't support analytics\n\t\treturn {\n\t\t\ttotal_requests: 0,\n\t\t\ttotal_bandwidth: 0,\n\t\t\ttime_periods: [],\n\t\t};\n\t}\n}\n\n/**\n * Create Pinata Adapter\n *\n * @param pinner - Pinner client instance\n * @param config - Pinata configuration\n * @returns PinataAdapter\n */\nexport function pinataAdapter(\n\tpinner: Pinner,\n\tconfig?: PinataConfig,\n): PinataAdapter {\n\tconst effectiveConfig: PinataConfig = config || {};\n\n\treturn {\n\t\tconfig: effectiveConfig,\n\t\tupdateConfig(newConfig: PinataConfig): void {\n\t\t\tObject.assign(effectiveConfig, newConfig);\n\t\t},\n\n\t\tupload: {\n\t\t\tpublic: new PublicUploadImpl(pinner, effectiveConfig),\n\t\t\tprivate: new PrivateUploadImpl(pinner, effectiveConfig),\n\t\t},\n\n\t\tfiles: {\n\t\t\tpublic: new PublicFilesImpl(pinner, effectiveConfig),\n\t\t\tprivate: new PrivateFilesImpl(pinner, effectiveConfig),\n\t\t},\n\n\t\tgateways: {\n\t\t\tpublic: new PublicGatewaysImpl(pinner, effectiveConfig),\n\t\t\tprivate: new PrivateGatewaysImpl(pinner, effectiveConfig),\n\t\t},\n\n\t\tgroups: {\n\t\t\tpublic: new PublicGroupsImpl(pinner, effectiveConfig),\n\t\t\tprivate: new PrivateGroupsImpl(pinner, effectiveConfig),\n\t\t},\n\n\t\tanalytics: new AnalyticsImpl(),\n\t};\n}\n\n// Re-export interface\nexport type { PinataAdapter } from \"./adapter-interface\";\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Pinner } from "../../../pinner.cjs";
2
+ import { PinataConfig } from "./types.cjs";
3
+ import { PinataAdapter } from "./adapter-interface.cjs";
4
+
5
+ //#region src/adapters/pinata/v2/adapter.d.ts
6
+
7
+ /**
8
+ * Create Pinata Adapter
9
+ *
10
+ * @param pinner - Pinner client instance
11
+ * @param config - Pinata configuration
12
+ * @returns PinataAdapter
13
+ */
14
+ declare function pinataAdapter(pinner: Pinner, config?: PinataConfig): PinataAdapter;
15
+ //#endregion
16
+ export { pinataAdapter };
17
+ //# sourceMappingURL=adapter.d.cts.map
@@ -0,0 +1 @@
1
+ const require_adapter = require('./adapter.cjs');
@@ -0,0 +1,308 @@
1
+ //#region src/adapters/pinata/v2/types.d.ts
2
+ /**
3
+ * Pinata SDK 2.x Types
4
+ * Source: https://github.com/PinataCloud/pinata/commit/cdc0c06116aaadaf7c4b287a2673cd23b6ba1125
5
+ * - src/core/types/index.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
+ * CID version type
13
+ */
14
+ type CidVersion = "v0" | "v1";
15
+ /**
16
+ * Pinata configuration options
17
+ */
18
+ type PinataConfig = {
19
+ pinataJwt?: string;
20
+ pinataGateway?: string;
21
+ pinataGatewayKey?: string;
22
+ customHeaders?: Record<string, string>;
23
+ endpointUrl?: string;
24
+ uploadUrl?: string;
25
+ legacyUploadUrl?: string;
26
+ };
27
+ /**
28
+ * Pinata metadata
29
+ */
30
+ type PinataMetadata = {
31
+ name?: string;
32
+ keyvalues?: Record<string, string>;
33
+ };
34
+ /**
35
+ * Upload options
36
+ */
37
+ type UploadOptions = {
38
+ metadata?: PinataMetadata;
39
+ keys?: string;
40
+ groupId?: string;
41
+ vectorize?: boolean;
42
+ url?: string;
43
+ streamable?: boolean;
44
+ peerAddresses?: string[];
45
+ car?: boolean;
46
+ cid_version?: CidVersion;
47
+ };
48
+ /**
49
+ * Upload response
50
+ */
51
+ type UploadResponse = {
52
+ id: string;
53
+ name: string;
54
+ cid: string;
55
+ size: number;
56
+ created_at: string;
57
+ number_of_files: number;
58
+ mime_type: string;
59
+ group_id: string | null;
60
+ keyvalues: Record<string, string>;
61
+ vectorized: boolean;
62
+ network: string;
63
+ };
64
+ /**
65
+ * Upload CID options
66
+ */
67
+ type UploadCIDOptions = {
68
+ metadata?: PinataMetadata;
69
+ peerAddresses?: string[];
70
+ keys?: string;
71
+ groupId?: string;
72
+ };
73
+ /**
74
+ * Pin by CID response
75
+ */
76
+ type PinByCIDResponse = {
77
+ id: string;
78
+ cid: string;
79
+ date_queued: string;
80
+ name: string;
81
+ status: string;
82
+ keyvalues: Record<string, any> | null;
83
+ host_nodes: string[] | null;
84
+ group_id: string | null;
85
+ };
86
+ /**
87
+ * Signed upload URL options
88
+ */
89
+ type SignedUploadUrlOptions = {
90
+ date?: number;
91
+ expires: number;
92
+ groupId?: string;
93
+ name?: string;
94
+ keyvalues?: Record<string, string>;
95
+ vectorize?: boolean;
96
+ maxFileSize?: number;
97
+ mimeTypes?: string[];
98
+ streamable?: boolean;
99
+ car?: boolean;
100
+ cid_version?: CidVersion;
101
+ };
102
+ /**
103
+ * File list item
104
+ */
105
+ type FileListItem = {
106
+ id: string;
107
+ name: string | null;
108
+ cid: "pending" | string;
109
+ size: number;
110
+ number_of_files: number;
111
+ mime_type: string;
112
+ keyvalues: Record<string, string>;
113
+ group_id: string | null;
114
+ created_at: string;
115
+ };
116
+ /**
117
+ * File list response
118
+ */
119
+ type FileListResponse = {
120
+ files: FileListItem[];
121
+ next_page_token: string;
122
+ };
123
+ /**
124
+ * Update file options
125
+ */
126
+ type UpdateFileOptions = {
127
+ id: string;
128
+ name?: string;
129
+ keyvalues?: Record<string, string>;
130
+ };
131
+ /**
132
+ * Delete response
133
+ */
134
+ type DeleteResponse = {
135
+ id: string;
136
+ status: string;
137
+ };
138
+ /**
139
+ * Pin queue item
140
+ */
141
+ type PinQueueItem = {
142
+ id: string;
143
+ cid?: string;
144
+ ipfs_pin_hash?: string;
145
+ date_queued: string;
146
+ name: string;
147
+ status: string;
148
+ keyvalues: any;
149
+ host_nodes: string[];
150
+ pin_policy: {
151
+ regions: {
152
+ id: string;
153
+ desiredReplicationCount: number;
154
+ }[];
155
+ version: number;
156
+ };
157
+ };
158
+ /**
159
+ * Pin queue response
160
+ */
161
+ type PinQueueResponse = {
162
+ jobs: PinQueueItem[];
163
+ next_page_token: string;
164
+ };
165
+ /**
166
+ * Swap CID options
167
+ */
168
+ type SwapCidOptions = {
169
+ cid: string;
170
+ swapCid: string;
171
+ };
172
+ /**
173
+ * Swap history options
174
+ */
175
+ type SwapHistoryOptions = {
176
+ cid: string;
177
+ domain: string;
178
+ };
179
+ /**
180
+ * Swap CID response
181
+ */
182
+ type SwapCidResponse = {
183
+ mapped_cid: string;
184
+ created_at: string;
185
+ };
186
+ /**
187
+ * Access link options
188
+ */
189
+ type AccessLinkOptions = {
190
+ cid: string;
191
+ date?: number;
192
+ expires: number;
193
+ gateway?: string;
194
+ };
195
+ /**
196
+ * Group options
197
+ */
198
+ type GroupOptions = {
199
+ name: string;
200
+ isPublic?: boolean;
201
+ };
202
+ /**
203
+ * Update group options
204
+ */
205
+ type UpdateGroupOptions = {
206
+ groupId: string;
207
+ name?: string;
208
+ isPublic?: boolean;
209
+ };
210
+ /**
211
+ * Get group options
212
+ */
213
+ type GetGroupOptions = {
214
+ groupId: string;
215
+ };
216
+ /**
217
+ * Group response item
218
+ */
219
+ type GroupResponseItem = {
220
+ id: string;
221
+ is_public: boolean;
222
+ name: string;
223
+ createdAt: string;
224
+ };
225
+ /**
226
+ * Group list response
227
+ */
228
+ type GroupListResponse = {
229
+ groups: GroupResponseItem[];
230
+ next_page_token: string;
231
+ };
232
+ /**
233
+ * Group CID options
234
+ */
235
+ type GroupCIDOptions = {
236
+ groupId: string;
237
+ files: string[];
238
+ };
239
+ /**
240
+ * Update group files response
241
+ */
242
+ type UpdateGroupFilesResponse = {
243
+ id: string;
244
+ status: string;
245
+ };
246
+ /**
247
+ * Analytics query
248
+ */
249
+ type AnalyticsQuery = {
250
+ gateway_domain: string;
251
+ start_date: string;
252
+ end_date: string;
253
+ cid?: string;
254
+ file_name?: string;
255
+ user_agent?: string;
256
+ country?: string;
257
+ region?: string;
258
+ referer?: string;
259
+ limit?: number;
260
+ sort_order?: "asc" | "desc";
261
+ };
262
+ /**
263
+ * Top analytics query
264
+ */
265
+ type TopAnalyticsQuery = AnalyticsQuery & {
266
+ sort_by: "requests" | "bandwidth";
267
+ attribute: "cid" | "country" | "region" | "user_agent" | "referer" | "file_name";
268
+ };
269
+ /**
270
+ * Top analytics response
271
+ */
272
+ type TopAnalyticsResponse = {
273
+ data: TopAnalyticsItem[];
274
+ };
275
+ /**
276
+ * Top analytics item
277
+ */
278
+ type TopAnalyticsItem = {
279
+ value: string;
280
+ requests: number;
281
+ bandwidth: number;
282
+ };
283
+ /**
284
+ * Time interval analytics query
285
+ */
286
+ type TimeIntervalAnalyticsQuery = AnalyticsQuery & {
287
+ sort_by?: "requests" | "bandwidth";
288
+ date_interval: "day" | "week";
289
+ };
290
+ /**
291
+ * Time period item
292
+ */
293
+ type TimePeriodItem = {
294
+ period_start_time: string;
295
+ requests: number;
296
+ bandwidth: number;
297
+ };
298
+ /**
299
+ * Time interval analytics response
300
+ */
301
+ type TimeIntervalAnalyticsResponse = {
302
+ total_requests: number;
303
+ total_bandwidth: number;
304
+ time_periods: TimePeriodItem[];
305
+ };
306
+ //#endregion
307
+ export { 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 };
308
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1,2 @@
1
+ const require_unstorage_base = require('./unstorage-base.cjs');
2
+ const require_unstorage = require('./unstorage.cjs');
@@ -0,0 +1,240 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_stream = require('../utils/stream.cjs');
3
+ const require_constants = require('../types/constants.cjs');
4
+ let _home_runner_work_web_web_node_modules__pnpm_blockstore_core_6_1_2_node_modules_blockstore_core_dist_src_index_js = require("/home/runner/work/web/web/node_modules/.pnpm/blockstore-core@6.1.2/node_modules/blockstore-core/dist/src/index.js");
5
+ let multiformats_cid = require("multiformats/cid");
6
+ let unstorage = require("unstorage");
7
+ let interface_datastore = require("interface-datastore");
8
+
9
+ //#region src/blockstore/unstorage-base.ts
10
+ let driverFactory = null;
11
+ function setDriverFactory(factory) {
12
+ driverFactory = factory;
13
+ }
14
+ function createStorageWithOptions(options) {
15
+ return options.storage ? options.storage : (0, unstorage.createStorage)({ driver: options.driver });
16
+ }
17
+ async function initializeStorage(storage, options, getDefaultDriver) {
18
+ if (options.storage || options.driver) return;
19
+ const driver = await getDefaultDriver(options.base);
20
+ Object.assign(storage, (0, unstorage.createStorage)({ driver }));
21
+ }
22
+ function createUnstorageBase(options, getDefaultDriver) {
23
+ const storage = createStorageWithOptions(options);
24
+ const initialized = initializeStorage(storage, options, getDefaultDriver);
25
+ async function ensureInitialized() {
26
+ await initialized;
27
+ }
28
+ async function hasItem(key) {
29
+ await ensureInitialized();
30
+ return await storage.hasItem(key);
31
+ }
32
+ async function getItem(key) {
33
+ await ensureInitialized();
34
+ const value = await storage.getItemRaw(key);
35
+ if (value === null) throw new Error(`Item not found: ${key}`);
36
+ return value;
37
+ }
38
+ async function putItem(key, value) {
39
+ await ensureInitialized();
40
+ await storage.setItemRaw(key, value);
41
+ }
42
+ async function deleteItem(key) {
43
+ await ensureInitialized();
44
+ await storage.removeItem(key);
45
+ }
46
+ async function getAllKeys() {
47
+ await ensureInitialized();
48
+ return await storage.getKeys();
49
+ }
50
+ return {
51
+ storage,
52
+ hasItem,
53
+ getItem,
54
+ putItem,
55
+ deleteItem,
56
+ getAllKeys
57
+ };
58
+ }
59
+ function createUnstorageBlockstore(getDefaultDriver) {
60
+ return class UnstorageBlockstore extends _home_runner_work_web_web_node_modules__pnpm_blockstore_core_6_1_2_node_modules_blockstore_core_dist_src_index_js.BaseBlockstore {
61
+ prefix;
62
+ base;
63
+ constructor(options = {}) {
64
+ super();
65
+ this.prefix = options.prefix ?? require_constants.DEFAULT_BLOCKSTORE_PREFIX;
66
+ this.base = createUnstorageBase(options, getDefaultDriver);
67
+ }
68
+ keyToStorageKey(key) {
69
+ return `${this.prefix}:${key.toString()}`;
70
+ }
71
+ async has(key, _) {
72
+ return await this.base.hasItem(this.keyToStorageKey(key));
73
+ }
74
+ async put(key, val, _) {
75
+ const storageKey = this.keyToStorageKey(key);
76
+ const bytes = val instanceof Uint8Array ? val : await require_stream.collectAsyncIterable(val);
77
+ await this.base.putItem(storageKey, bytes);
78
+ return key;
79
+ }
80
+ async *putMany(source, options) {
81
+ for await (const { cid, bytes } of source) yield await this.put(cid, bytes, options);
82
+ }
83
+ async *get(key, _) {
84
+ const storageKey = this.keyToStorageKey(key);
85
+ yield await this.base.getItem(storageKey);
86
+ }
87
+ async *getMany(source, options) {
88
+ for await (const cid of source) yield {
89
+ cid,
90
+ bytes: async function* () {
91
+ yield* await this.get(cid, options);
92
+ }.call(this)
93
+ };
94
+ }
95
+ async delete(key, _) {
96
+ await this.base.deleteItem(this.keyToStorageKey(key));
97
+ }
98
+ async *deleteMany(source, options) {
99
+ for await (const cid of source) {
100
+ await this.delete(cid, options);
101
+ yield cid;
102
+ }
103
+ }
104
+ async *getAll(_) {
105
+ const keys = await this.base.getAllKeys();
106
+ for (const key of keys) if (key.startsWith(this.prefix + ":")) {
107
+ const cidString = key.slice(this.prefix.length + 1);
108
+ try {
109
+ const cid = multiformats_cid.CID.parse(cidString);
110
+ const value = await this.base.getItem(key);
111
+ yield {
112
+ cid,
113
+ bytes: (async function* () {
114
+ yield value;
115
+ })()
116
+ };
117
+ } catch {}
118
+ }
119
+ }
120
+ };
121
+ }
122
+ function createUnstorageDatastore(getDefaultDriver) {
123
+ return class UnstorageDatastore {
124
+ prefix;
125
+ base;
126
+ constructor(options = {}) {
127
+ this.prefix = options.datastorePrefix ?? options.prefix ?? require_constants.DEFAULT_BLOCKSTORE_PREFIX;
128
+ this.base = createUnstorageBase(options, getDefaultDriver);
129
+ }
130
+ keyToStorageKey(key) {
131
+ return `${this.prefix}:${key.toString()}`;
132
+ }
133
+ storageKeyToKey(storageKey) {
134
+ return new interface_datastore.Key(storageKey.slice(this.prefix.length + 1));
135
+ }
136
+ async has(key, _) {
137
+ return await this.base.hasItem(this.keyToStorageKey(key));
138
+ }
139
+ async put(key, val, _) {
140
+ await this.base.putItem(this.keyToStorageKey(key), val);
141
+ return key;
142
+ }
143
+ async *putMany(source, options) {
144
+ for await (const { key, value } of source) yield await this.put(key, value, options);
145
+ }
146
+ async get(key, _) {
147
+ const storageKey = this.keyToStorageKey(key);
148
+ try {
149
+ return await this.base.getItem(storageKey);
150
+ } catch (error) {
151
+ throw new Error(`Datastore item not found: ${key.toString()}`);
152
+ }
153
+ }
154
+ async *getMany(source, options) {
155
+ for await (const key of source) yield {
156
+ key,
157
+ value: await this.get(key, options)
158
+ };
159
+ }
160
+ async delete(key, _) {
161
+ await this.base.deleteItem(this.keyToStorageKey(key));
162
+ }
163
+ async *deleteMany(source, options) {
164
+ for await (const key of source) {
165
+ await this.delete(key, options);
166
+ yield key;
167
+ }
168
+ }
169
+ batch() {
170
+ const operations = [];
171
+ const base = this.base;
172
+ const keyToStorageKey = this.keyToStorageKey.bind(this);
173
+ return {
174
+ put(key, value) {
175
+ operations.push({
176
+ type: "put",
177
+ key,
178
+ value
179
+ });
180
+ },
181
+ delete(key) {
182
+ operations.push({
183
+ type: "delete",
184
+ key
185
+ });
186
+ },
187
+ async commit() {
188
+ for (const op of operations) if (op.type === "put" && op.value !== void 0) await base.putItem(keyToStorageKey(op.key), op.value);
189
+ else if (op.type === "delete") await base.deleteItem(keyToStorageKey(op.key));
190
+ operations.length = 0;
191
+ }
192
+ };
193
+ }
194
+ async *query(query, _) {
195
+ const keys = await this.base.getAllKeys();
196
+ for (const key of keys) {
197
+ if (!key.startsWith(this.prefix + ":")) continue;
198
+ const datastoreKey = this.storageKeyToKey(key);
199
+ if (query.prefix && !datastoreKey.toString().startsWith(query.prefix.toString())) continue;
200
+ const value = await this.base.getItem(key);
201
+ if (query.filters) {
202
+ let match = true;
203
+ for (const filter of query.filters) if (!filter({
204
+ key: datastoreKey,
205
+ value
206
+ })) {
207
+ match = false;
208
+ break;
209
+ }
210
+ if (!match) continue;
211
+ }
212
+ yield {
213
+ key: datastoreKey,
214
+ value
215
+ };
216
+ }
217
+ }
218
+ async *queryKeys(query, _) {
219
+ const keys = await this.base.getAllKeys();
220
+ for (const key of keys) {
221
+ if (!key.startsWith(this.prefix + ":")) continue;
222
+ const datastoreKey = this.storageKeyToKey(key);
223
+ if (query.prefix && !datastoreKey.toString().startsWith(query.prefix.toString())) continue;
224
+ yield datastoreKey;
225
+ }
226
+ }
227
+ };
228
+ }
229
+
230
+ //#endregion
231
+ exports.createUnstorageBlockstore = createUnstorageBlockstore;
232
+ exports.createUnstorageDatastore = createUnstorageDatastore;
233
+ Object.defineProperty(exports, 'driverFactory', {
234
+ enumerable: true,
235
+ get: function () {
236
+ return driverFactory;
237
+ }
238
+ });
239
+ exports.setDriverFactory = setDriverFactory;
240
+ //# sourceMappingURL=unstorage-base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unstorage-base.cjs","names":["BaseBlockstore","DEFAULT_BLOCKSTORE_PREFIX","collectAsyncIterable","CID","Key"],"sources":["../../../src/blockstore/unstorage-base.ts"],"sourcesContent":["import { BaseBlockstore } from \"blockstore-core\";\nimport type { InputPair, Pair as BlockstorePair } from \"interface-blockstore\";\nimport type {\n AbortOptions,\n Await,\n AwaitGenerator,\n AwaitIterable,\n} from \"interface-store\";\nimport { CID } from \"multiformats/cid\";\nimport { createStorage, type Driver, type Storage } from \"unstorage\";\nimport { DEFAULT_BLOCKSTORE_PREFIX } from \"@/types/constants\";\nimport type { Batch, Datastore, KeyQuery, Query } from \"interface-datastore\";\nimport { Key, Pair } from \"interface-datastore\";\nimport { collectAsyncIterable } from \"@/utils/stream\";\n\n\n\nexport interface UnstorageBlockstoreOptions {\n storage?: Storage;\n prefix?: string;\n driver?: Driver;\n base?: string;\n datastorePrefix?: string;\n}\n\n/**\n * prefix: Key prefix for blockstore keys (e.g., \"blockstore\" or \"pinner-helia-blocks\").\n * This is prepended to CID strings in storage keys.\n *\n * base: Base path for the storage driver (e.g., \"pinner:\" for IndexedDB, \"./.pinner-blocks\" for filesystem).\n * This determines where the storage driver stores data.\n */\n\ntype DriverFactory = () => Driver | Promise<Driver>;\n\nexport let driverFactory: DriverFactory | null = null;\n\nexport function setDriverFactory(factory: DriverFactory | null): void {\n driverFactory = factory;\n}\n\nfunction createStorageWithOptions(\n options: UnstorageBlockstoreOptions,\n): Storage {\n return options.storage\n ? options.storage\n : createStorage({ driver: options.driver });\n}\n\nasync function initializeStorage(\n storage: Storage,\n options: UnstorageBlockstoreOptions,\n getDefaultDriver: (base?: string) => Driver | Promise<Driver>,\n): Promise<void> {\n if (options.storage || options.driver) {\n return;\n }\n\n const driver = await getDefaultDriver(options.base);\n Object.assign(storage, createStorage({ driver }));\n}\n\nfunction createUnstorageBase(\n options: UnstorageBlockstoreOptions,\n getDefaultDriver: (base?: string) => Driver | Promise<Driver>,\n) {\n const storage = createStorageWithOptions(options);\n const initialized = initializeStorage(storage, options, getDefaultDriver);\n\n async function ensureInitialized(): Promise<void> {\n await initialized;\n }\n\n async function hasItem(key: string): Promise<boolean> {\n await ensureInitialized();\n return await storage.hasItem(key);\n }\n\n async function getItem(key: string): Promise<Uint8Array> {\n await ensureInitialized();\n const value = await storage.getItemRaw<Uint8Array>(key);\n\n if (value === null) {\n throw new Error(`Item not found: ${key}`);\n }\n\n return value;\n }\n\n async function putItem(key: string, value: Uint8Array): Promise<void> {\n await ensureInitialized();\n await storage.setItemRaw(key, value);\n }\n\n async function deleteItem(key: string): Promise<void> {\n await ensureInitialized();\n await storage.removeItem(key);\n }\n\n async function getAllKeys(): Promise<string[]> {\n await ensureInitialized();\n return await storage.getKeys();\n }\n\n return {\n storage,\n hasItem,\n getItem,\n putItem,\n deleteItem,\n getAllKeys,\n };\n}\n\nexport function createUnstorageBlockstore(\n getDefaultDriver: (base?: string) => Driver | Promise<Driver>,\n): new (\n options?: UnstorageBlockstoreOptions,\n) => InstanceType<typeof BaseBlockstore> {\n return class UnstorageBlockstore extends BaseBlockstore {\n private prefix: string;\n private base: ReturnType<typeof createUnstorageBase>;\n\n constructor(options: UnstorageBlockstoreOptions = {}) {\n super();\n this.prefix = options.prefix ?? DEFAULT_BLOCKSTORE_PREFIX;\n this.base = createUnstorageBase(options, getDefaultDriver);\n }\n\n private keyToStorageKey(key: CID): string {\n return `${this.prefix}:${key.toString()}`;\n }\n\n async has(key: CID, _?: AbortOptions): Promise<boolean> {\n return await this.base.hasItem(this.keyToStorageKey(key));\n }\n\n async put(\n key: CID,\n val: Uint8Array | AwaitIterable<Uint8Array>,\n _?: AbortOptions,\n ): Promise<CID> {\n const storageKey = this.keyToStorageKey(key);\n const bytes =\n val instanceof Uint8Array ? val : await collectAsyncIterable(val);\n await this.base.putItem(storageKey, bytes);\n return key;\n }\n\n async *putMany(\n source: AwaitIterable<InputPair>,\n options?: AbortOptions,\n ): AwaitGenerator<CID> {\n for await (const { cid, bytes } of source) {\n yield await this.put(cid, bytes, options);\n }\n }\n\n async *get(key: CID, _?: AbortOptions): AsyncGenerator<Uint8Array> {\n const storageKey = this.keyToStorageKey(key);\n const value = await this.base.getItem(storageKey);\n yield value;\n }\n\n async *getMany(\n source: AwaitIterable<CID>,\n options?: AbortOptions,\n ): AwaitGenerator<BlockstorePair> {\n for await (const cid of source) {\n yield {\n cid,\n bytes: (async function* () {\n yield* await this.get(cid, options);\n }.call(this)),\n };\n }\n }\n\n async delete(key: CID, _?: AbortOptions): Promise<void> {\n await this.base.deleteItem(this.keyToStorageKey(key));\n }\n\n async *deleteMany(\n source: AwaitIterable<CID>,\n options?: AbortOptions,\n ): AwaitGenerator<CID> {\n for await (const cid of source) {\n await this.delete(cid, options);\n yield cid;\n }\n }\n\n async *getAll(_?: AbortOptions): AwaitGenerator<BlockstorePair> {\n const keys = await this.base.getAllKeys();\n\n for (const key of keys) {\n if (key.startsWith(this.prefix + \":\")) {\n const cidString = key.slice(this.prefix.length + 1);\n try {\n const cid = CID.parse(cidString);\n const value = await this.base.getItem(key);\n\n yield {\n cid,\n bytes: (async function* () {\n yield value;\n })(),\n };\n } catch {\n // Skip invalid keys\n }\n }\n }\n }\n };\n}\n\nexport function createUnstorageDatastore(\n getDefaultDriver: (base?: string) => Driver | Promise<Driver>,\n): new (options?: UnstorageBlockstoreOptions) => Datastore {\n return class UnstorageDatastore implements Datastore {\n private prefix: string;\n private base: ReturnType<typeof createUnstorageBase>;\n\n constructor(options: UnstorageBlockstoreOptions = {}) {\n this.prefix =\n options.datastorePrefix ?? options.prefix ?? DEFAULT_BLOCKSTORE_PREFIX;\n this.base = createUnstorageBase(options, getDefaultDriver);\n }\n\n private keyToStorageKey(key: Key): string {\n return `${this.prefix}:${key.toString()}`;\n }\n\n private storageKeyToKey(storageKey: string): Key {\n return new Key(storageKey.slice(this.prefix.length + 1));\n }\n\n async has(key: Key, _?: AbortOptions): Promise<boolean> {\n return await this.base.hasItem(this.keyToStorageKey(key));\n }\n\n async put(key: Key, val: Uint8Array, _?: AbortOptions): Promise<Key> {\n await this.base.putItem(this.keyToStorageKey(key), val);\n return key;\n }\n\n async *putMany(\n source: AwaitIterable<Pair>,\n options?: AbortOptions,\n ): AsyncGenerator<Key> {\n for await (const { key, value } of source) {\n yield await this.put(key, value, options);\n }\n }\n\n async get(key: Key, _?: AbortOptions): Promise<Uint8Array> {\n const storageKey = this.keyToStorageKey(key);\n try {\n return await this.base.getItem(storageKey);\n } catch (error) {\n throw new Error(`Datastore item not found: ${key.toString()}`);\n }\n }\n\n async *getMany(\n source: AwaitIterable<Key>,\n options?: AbortOptions,\n ): AsyncGenerator<Pair> {\n for await (const key of source) {\n yield {\n key,\n value: await this.get(key, options),\n };\n }\n }\n\n async delete(key: Key, _?: AbortOptions): Promise<void> {\n await this.base.deleteItem(this.keyToStorageKey(key));\n }\n\n async *deleteMany(\n source: AwaitIterable<Key>,\n options?: AbortOptions,\n ): AsyncGenerator<Key> {\n for await (const key of source) {\n await this.delete(key, options);\n yield key;\n }\n }\n\n batch(): Batch {\n const operations: Array<{\n type: \"put\" | \"delete\";\n key: Key;\n value?: Uint8Array;\n }> = [];\n const base = this.base;\n const keyToStorageKey = this.keyToStorageKey.bind(this);\n\n return {\n put(key: Key, value: Uint8Array): void {\n operations.push({ type: \"put\", key, value });\n },\n delete(key: Key): void {\n operations.push({ type: \"delete\", key });\n },\n async commit(): Promise<void> {\n for (const op of operations) {\n if (op.type === \"put\" && op.value !== undefined) {\n await base.putItem(keyToStorageKey(op.key), op.value);\n } else if (op.type === \"delete\") {\n await base.deleteItem(keyToStorageKey(op.key));\n }\n }\n operations.length = 0;\n },\n };\n }\n\n async *query(query: Query, _?: AbortOptions): AsyncGenerator<Pair> {\n const keys = await this.base.getAllKeys();\n\n for (const key of keys) {\n if (!key.startsWith(this.prefix + \":\")) {\n continue;\n }\n\n const datastoreKey = this.storageKeyToKey(key);\n\n if (\n query.prefix &&\n !datastoreKey.toString().startsWith(query.prefix.toString())\n ) {\n continue;\n }\n\n const value = await this.base.getItem(key);\n\n if (query.filters) {\n let match = true;\n for (const filter of query.filters) {\n if (!filter({ key: datastoreKey, value })) {\n match = false;\n break;\n }\n }\n if (!match) continue;\n }\n\n yield {\n key: datastoreKey,\n value,\n };\n }\n }\n\n async *queryKeys(query: KeyQuery, _?: AbortOptions): AsyncGenerator<Key> {\n const keys = await this.base.getAllKeys();\n\n for (const key of keys) {\n if (!key.startsWith(this.prefix + \":\")) {\n continue;\n }\n\n const datastoreKey = this.storageKeyToKey(key);\n\n if (\n query.prefix &&\n !datastoreKey.toString().startsWith(query.prefix.toString())\n ) {\n continue;\n }\n\n yield datastoreKey;\n }\n }\n };\n}\n"],"mappings":"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"}