@fragno-dev/upload 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 (355) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +43 -0
  3. package/bin/run.js +5 -0
  4. package/dist/browser/client/clients.js +49 -0
  5. package/dist/browser/client/clients.js.map +1 -0
  6. package/dist/browser/client/helpers.d.ts +51 -0
  7. package/dist/browser/client/helpers.d.ts.map +1 -0
  8. package/dist/browser/client/helpers.js +242 -0
  9. package/dist/browser/client/helpers.js.map +1 -0
  10. package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js +354 -0
  11. package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js.map +1 -0
  12. package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js +14 -0
  13. package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js.map +1 -0
  14. package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js +17 -0
  15. package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js.map +1 -0
  16. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js +62 -0
  17. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js.map +1 -0
  18. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js +6 -0
  19. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js.map +1 -0
  20. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js +50 -0
  21. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js.map +1 -0
  22. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js +99 -0
  23. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js.map +1 -0
  24. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js +11 -0
  25. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js.map +1 -0
  26. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js +25 -0
  27. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js.map +1 -0
  28. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js +24 -0
  29. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js.map +1 -0
  30. package/dist/browser/client/packages/fragment-upload/src/definition.js +49 -0
  31. package/dist/browser/client/packages/fragment-upload/src/definition.js.map +1 -0
  32. package/dist/browser/client/packages/fragment-upload/src/keys.d.ts +7 -0
  33. package/dist/browser/client/packages/fragment-upload/src/keys.d.ts.map +1 -0
  34. package/dist/browser/client/packages/fragment-upload/src/keys.js +28 -0
  35. package/dist/browser/client/packages/fragment-upload/src/keys.js.map +1 -0
  36. package/dist/browser/client/packages/fragment-upload/src/routes/files.js +98 -0
  37. package/dist/browser/client/packages/fragment-upload/src/routes/files.js.map +1 -0
  38. package/dist/browser/client/packages/fragment-upload/src/routes/index.js +9 -0
  39. package/dist/browser/client/packages/fragment-upload/src/routes/index.js.map +1 -0
  40. package/dist/browser/client/packages/fragment-upload/src/routes/shared.js +41 -0
  41. package/dist/browser/client/packages/fragment-upload/src/routes/shared.js.map +1 -0
  42. package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js +186 -0
  43. package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js.map +1 -0
  44. package/dist/browser/client/packages/fragment-upload/src/schema.js +8 -0
  45. package/dist/browser/client/packages/fragment-upload/src/schema.js.map +1 -0
  46. package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts +9 -0
  47. package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts.map +1 -0
  48. package/dist/browser/client/packages/fragment-upload/src/types.d.ts +31 -0
  49. package/dist/browser/client/packages/fragment-upload/src/types.d.ts.map +1 -0
  50. package/dist/browser/client/packages/fragno/dist/api/error.js +48 -0
  51. package/dist/browser/client/packages/fragno/dist/api/error.js.map +1 -0
  52. package/dist/browser/client/packages/fragno/dist/api/internal/path.js +76 -0
  53. package/dist/browser/client/packages/fragno/dist/api/internal/path.js.map +1 -0
  54. package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js +81 -0
  55. package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
  56. package/dist/browser/client/packages/fragno/dist/api/internal/route.js +10 -0
  57. package/dist/browser/client/packages/fragno/dist/api/internal/route.js.map +1 -0
  58. package/dist/browser/client/packages/fragno/dist/api/request-input-context.js +185 -0
  59. package/dist/browser/client/packages/fragno/dist/api/request-input-context.js.map +1 -0
  60. package/dist/browser/client/packages/fragno/dist/api/request-output-context.js +119 -0
  61. package/dist/browser/client/packages/fragno/dist/api/request-output-context.js.map +1 -0
  62. package/dist/browser/client/packages/fragno/dist/api/route.js +17 -0
  63. package/dist/browser/client/packages/fragno/dist/api/route.js.map +1 -0
  64. package/dist/browser/client/packages/fragno/dist/client/client-error.js +92 -0
  65. package/dist/browser/client/packages/fragno/dist/client/client-error.js.map +1 -0
  66. package/dist/browser/client/packages/fragno/dist/client/client.js +495 -0
  67. package/dist/browser/client/packages/fragno/dist/client/client.js.map +1 -0
  68. package/dist/browser/client/packages/fragno/dist/client/client.svelte.js +120 -0
  69. package/dist/browser/client/packages/fragno/dist/client/client.svelte.js.map +1 -0
  70. package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js +36 -0
  71. package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js.map +1 -0
  72. package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js +139 -0
  73. package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js.map +1 -0
  74. package/dist/browser/client/packages/fragno/dist/client/react.js +70 -0
  75. package/dist/browser/client/packages/fragno/dist/client/react.js.map +1 -0
  76. package/dist/browser/client/packages/fragno/dist/client/solid.js +108 -0
  77. package/dist/browser/client/packages/fragno/dist/client/solid.js.map +1 -0
  78. package/dist/browser/client/packages/fragno/dist/client/vanilla.js +96 -0
  79. package/dist/browser/client/packages/fragno/dist/client/vanilla.js.map +1 -0
  80. package/dist/browser/client/packages/fragno/dist/client/vue.js +120 -0
  81. package/dist/browser/client/packages/fragno/dist/client/vue.js.map +1 -0
  82. package/dist/browser/client/packages/fragno/dist/util/async.js +40 -0
  83. package/dist/browser/client/packages/fragno/dist/util/async.js.map +1 -0
  84. package/dist/browser/client/packages/fragno/dist/util/content-type.js +49 -0
  85. package/dist/browser/client/packages/fragno/dist/util/content-type.js.map +1 -0
  86. package/dist/browser/client/packages/fragno/dist/util/nanostores.js +31 -0
  87. package/dist/browser/client/packages/fragno/dist/util/nanostores.js.map +1 -0
  88. package/dist/browser/client/packages/fragno/dist/util/ssr.js +18 -0
  89. package/dist/browser/client/packages/fragno/dist/util/ssr.js.map +1 -0
  90. package/dist/browser/client/react.d.ts +295 -0
  91. package/dist/browser/client/react.d.ts.map +1 -0
  92. package/dist/browser/client/react.js +11 -0
  93. package/dist/browser/client/react.js.map +1 -0
  94. package/dist/browser/client/solid.d.ts +303 -0
  95. package/dist/browser/client/solid.d.ts.map +1 -0
  96. package/dist/browser/client/solid.js +11 -0
  97. package/dist/browser/client/solid.js.map +1 -0
  98. package/dist/browser/client/svelte.d.ts +295 -0
  99. package/dist/browser/client/svelte.d.ts.map +1 -0
  100. package/dist/browser/client/svelte.js +11 -0
  101. package/dist/browser/client/svelte.js.map +1 -0
  102. package/dist/browser/client/vanilla.d.ts +296 -0
  103. package/dist/browser/client/vanilla.d.ts.map +1 -0
  104. package/dist/browser/client/vanilla.js +11 -0
  105. package/dist/browser/client/vanilla.js.map +1 -0
  106. package/dist/browser/client/vue.d.ts +295 -0
  107. package/dist/browser/client/vue.d.ts.map +1 -0
  108. package/dist/browser/client/vue.js +11 -0
  109. package/dist/browser/client/vue.js.map +1 -0
  110. package/dist/browser/index-BdjKPO4J.d.ts +177 -0
  111. package/dist/browser/index-BdjKPO4J.d.ts.map +1 -0
  112. package/dist/browser/index.js +3 -0
  113. package/dist/browser/src-vdNJUbjT.js +1982 -0
  114. package/dist/browser/src-vdNJUbjT.js.map +1 -0
  115. package/dist/cli/commands/files/delete.d.ts +40 -0
  116. package/dist/cli/commands/files/delete.d.ts.map +1 -0
  117. package/dist/cli/commands/files/delete.js +31 -0
  118. package/dist/cli/commands/files/delete.js.map +1 -0
  119. package/dist/cli/commands/files/download-url.d.ts +40 -0
  120. package/dist/cli/commands/files/download-url.d.ts.map +1 -0
  121. package/dist/cli/commands/files/download-url.js +31 -0
  122. package/dist/cli/commands/files/download-url.js.map +1 -0
  123. package/dist/cli/commands/files/download.d.ts +49 -0
  124. package/dist/cli/commands/files/download.d.ts.map +1 -0
  125. package/dist/cli/commands/files/download.js +65 -0
  126. package/dist/cli/commands/files/download.js.map +1 -0
  127. package/dist/cli/commands/files/get.d.ts +40 -0
  128. package/dist/cli/commands/files/get.d.ts.map +1 -0
  129. package/dist/cli/commands/files/get.js +31 -0
  130. package/dist/cli/commands/files/get.js.map +1 -0
  131. package/dist/cli/commands/files/list.d.ts +56 -0
  132. package/dist/cli/commands/files/list.d.ts.map +1 -0
  133. package/dist/cli/commands/files/list.js +53 -0
  134. package/dist/cli/commands/files/list.js.map +1 -0
  135. package/dist/cli/commands/files/update.d.ts +56 -0
  136. package/dist/cli/commands/files/update.d.ts.map +1 -0
  137. package/dist/cli/commands/files/update.js +53 -0
  138. package/dist/cli/commands/files/update.js.map +1 -0
  139. package/dist/cli/commands/files/upload.d.ts +73 -0
  140. package/dist/cli/commands/files/upload.d.ts.map +1 -0
  141. package/dist/cli/commands/files/upload.js +87 -0
  142. package/dist/cli/commands/files/upload.js.map +1 -0
  143. package/dist/cli/commands/uploads/abort.d.ts +37 -0
  144. package/dist/cli/commands/uploads/abort.d.ts.map +1 -0
  145. package/dist/cli/commands/uploads/abort.js +26 -0
  146. package/dist/cli/commands/uploads/abort.js.map +1 -0
  147. package/dist/cli/commands/uploads/complete.d.ts +41 -0
  148. package/dist/cli/commands/uploads/complete.d.ts.map +1 -0
  149. package/dist/cli/commands/uploads/complete.js +45 -0
  150. package/dist/cli/commands/uploads/complete.js.map +1 -0
  151. package/dist/cli/commands/uploads/content.d.ts +46 -0
  152. package/dist/cli/commands/uploads/content.d.ts.map +1 -0
  153. package/dist/cli/commands/uploads/content.js +43 -0
  154. package/dist/cli/commands/uploads/content.js.map +1 -0
  155. package/dist/cli/commands/uploads/create.d.ts +72 -0
  156. package/dist/cli/commands/uploads/create.d.ts.map +1 -0
  157. package/dist/cli/commands/uploads/create.js +84 -0
  158. package/dist/cli/commands/uploads/create.js.map +1 -0
  159. package/dist/cli/commands/uploads/get.d.ts +37 -0
  160. package/dist/cli/commands/uploads/get.d.ts.map +1 -0
  161. package/dist/cli/commands/uploads/get.js +26 -0
  162. package/dist/cli/commands/uploads/get.js.map +1 -0
  163. package/dist/cli/commands/uploads/parts-complete.d.ts +41 -0
  164. package/dist/cli/commands/uploads/parts-complete.d.ts.map +1 -0
  165. package/dist/cli/commands/uploads/parts-complete.js +44 -0
  166. package/dist/cli/commands/uploads/parts-complete.js.map +1 -0
  167. package/dist/cli/commands/uploads/parts-list.d.ts +37 -0
  168. package/dist/cli/commands/uploads/parts-list.d.ts.map +1 -0
  169. package/dist/cli/commands/uploads/parts-list.js +26 -0
  170. package/dist/cli/commands/uploads/parts-list.js.map +1 -0
  171. package/dist/cli/commands/uploads/parts-urls.d.ts +46 -0
  172. package/dist/cli/commands/uploads/parts-urls.d.ts.map +1 -0
  173. package/dist/cli/commands/uploads/parts-urls.js +57 -0
  174. package/dist/cli/commands/uploads/parts-urls.js.map +1 -0
  175. package/dist/cli/commands/uploads/progress.d.ts +45 -0
  176. package/dist/cli/commands/uploads/progress.d.ts.map +1 -0
  177. package/dist/cli/commands/uploads/progress.js +40 -0
  178. package/dist/cli/commands/uploads/progress.js.map +1 -0
  179. package/dist/cli/commands/uploads/transfer.d.ts +73 -0
  180. package/dist/cli/commands/uploads/transfer.d.ts.map +1 -0
  181. package/dist/cli/commands/uploads/transfer.js +170 -0
  182. package/dist/cli/commands/uploads/transfer.js.map +1 -0
  183. package/dist/cli/index.d.ts +27 -0
  184. package/dist/cli/index.d.ts.map +1 -0
  185. package/dist/cli/index.js +198 -0
  186. package/dist/cli/index.js.map +1 -0
  187. package/dist/cli/keys.js +32 -0
  188. package/dist/cli/keys.js.map +1 -0
  189. package/dist/cli/utils/client.js +174 -0
  190. package/dist/cli/utils/client.js.map +1 -0
  191. package/dist/cli/utils/options.js +135 -0
  192. package/dist/cli/utils/options.js.map +1 -0
  193. package/dist/node/cli/commands/files/delete.d.ts +40 -0
  194. package/dist/node/cli/commands/files/delete.d.ts.map +1 -0
  195. package/dist/node/cli/commands/files/delete.js +31 -0
  196. package/dist/node/cli/commands/files/delete.js.map +1 -0
  197. package/dist/node/cli/commands/files/download-url.d.ts +40 -0
  198. package/dist/node/cli/commands/files/download-url.d.ts.map +1 -0
  199. package/dist/node/cli/commands/files/download-url.js +31 -0
  200. package/dist/node/cli/commands/files/download-url.js.map +1 -0
  201. package/dist/node/cli/commands/files/download.d.ts +49 -0
  202. package/dist/node/cli/commands/files/download.d.ts.map +1 -0
  203. package/dist/node/cli/commands/files/download.js +65 -0
  204. package/dist/node/cli/commands/files/download.js.map +1 -0
  205. package/dist/node/cli/commands/files/get.d.ts +40 -0
  206. package/dist/node/cli/commands/files/get.d.ts.map +1 -0
  207. package/dist/node/cli/commands/files/get.js +31 -0
  208. package/dist/node/cli/commands/files/get.js.map +1 -0
  209. package/dist/node/cli/commands/files/list.d.ts +56 -0
  210. package/dist/node/cli/commands/files/list.d.ts.map +1 -0
  211. package/dist/node/cli/commands/files/list.js +53 -0
  212. package/dist/node/cli/commands/files/list.js.map +1 -0
  213. package/dist/node/cli/commands/files/update.d.ts +56 -0
  214. package/dist/node/cli/commands/files/update.d.ts.map +1 -0
  215. package/dist/node/cli/commands/files/update.js +53 -0
  216. package/dist/node/cli/commands/files/update.js.map +1 -0
  217. package/dist/node/cli/commands/files/upload.d.ts +73 -0
  218. package/dist/node/cli/commands/files/upload.d.ts.map +1 -0
  219. package/dist/node/cli/commands/files/upload.js +87 -0
  220. package/dist/node/cli/commands/files/upload.js.map +1 -0
  221. package/dist/node/cli/commands/uploads/abort.d.ts +37 -0
  222. package/dist/node/cli/commands/uploads/abort.d.ts.map +1 -0
  223. package/dist/node/cli/commands/uploads/abort.js +26 -0
  224. package/dist/node/cli/commands/uploads/abort.js.map +1 -0
  225. package/dist/node/cli/commands/uploads/complete.d.ts +41 -0
  226. package/dist/node/cli/commands/uploads/complete.d.ts.map +1 -0
  227. package/dist/node/cli/commands/uploads/complete.js +45 -0
  228. package/dist/node/cli/commands/uploads/complete.js.map +1 -0
  229. package/dist/node/cli/commands/uploads/content.d.ts +46 -0
  230. package/dist/node/cli/commands/uploads/content.d.ts.map +1 -0
  231. package/dist/node/cli/commands/uploads/content.js +43 -0
  232. package/dist/node/cli/commands/uploads/content.js.map +1 -0
  233. package/dist/node/cli/commands/uploads/create.d.ts +72 -0
  234. package/dist/node/cli/commands/uploads/create.d.ts.map +1 -0
  235. package/dist/node/cli/commands/uploads/create.js +84 -0
  236. package/dist/node/cli/commands/uploads/create.js.map +1 -0
  237. package/dist/node/cli/commands/uploads/get.d.ts +37 -0
  238. package/dist/node/cli/commands/uploads/get.d.ts.map +1 -0
  239. package/dist/node/cli/commands/uploads/get.js +26 -0
  240. package/dist/node/cli/commands/uploads/get.js.map +1 -0
  241. package/dist/node/cli/commands/uploads/parts-complete.d.ts +41 -0
  242. package/dist/node/cli/commands/uploads/parts-complete.d.ts.map +1 -0
  243. package/dist/node/cli/commands/uploads/parts-complete.js +44 -0
  244. package/dist/node/cli/commands/uploads/parts-complete.js.map +1 -0
  245. package/dist/node/cli/commands/uploads/parts-list.d.ts +37 -0
  246. package/dist/node/cli/commands/uploads/parts-list.d.ts.map +1 -0
  247. package/dist/node/cli/commands/uploads/parts-list.js +26 -0
  248. package/dist/node/cli/commands/uploads/parts-list.js.map +1 -0
  249. package/dist/node/cli/commands/uploads/parts-urls.d.ts +46 -0
  250. package/dist/node/cli/commands/uploads/parts-urls.d.ts.map +1 -0
  251. package/dist/node/cli/commands/uploads/parts-urls.js +57 -0
  252. package/dist/node/cli/commands/uploads/parts-urls.js.map +1 -0
  253. package/dist/node/cli/commands/uploads/progress.d.ts +45 -0
  254. package/dist/node/cli/commands/uploads/progress.d.ts.map +1 -0
  255. package/dist/node/cli/commands/uploads/progress.js +40 -0
  256. package/dist/node/cli/commands/uploads/progress.js.map +1 -0
  257. package/dist/node/cli/commands/uploads/transfer.d.ts +73 -0
  258. package/dist/node/cli/commands/uploads/transfer.d.ts.map +1 -0
  259. package/dist/node/cli/commands/uploads/transfer.js +170 -0
  260. package/dist/node/cli/commands/uploads/transfer.js.map +1 -0
  261. package/dist/node/cli/index.d.ts +27 -0
  262. package/dist/node/cli/index.d.ts.map +1 -0
  263. package/dist/node/cli/index.js +198 -0
  264. package/dist/node/cli/index.js.map +1 -0
  265. package/dist/node/cli/utils/client.js +174 -0
  266. package/dist/node/cli/utils/client.js.map +1 -0
  267. package/dist/node/cli/utils/options.js +135 -0
  268. package/dist/node/cli/utils/options.js.map +1 -0
  269. package/dist/node/client/clients.d.ts +295 -0
  270. package/dist/node/client/clients.d.ts.map +1 -0
  271. package/dist/node/client/clients.js +49 -0
  272. package/dist/node/client/clients.js.map +1 -0
  273. package/dist/node/client/helpers.d.ts +51 -0
  274. package/dist/node/client/helpers.d.ts.map +1 -0
  275. package/dist/node/client/helpers.js +242 -0
  276. package/dist/node/client/helpers.js.map +1 -0
  277. package/dist/node/client/react.d.ts +295 -0
  278. package/dist/node/client/react.d.ts.map +1 -0
  279. package/dist/node/client/react.js +11 -0
  280. package/dist/node/client/react.js.map +1 -0
  281. package/dist/node/client/solid.d.ts +303 -0
  282. package/dist/node/client/solid.d.ts.map +1 -0
  283. package/dist/node/client/solid.js +11 -0
  284. package/dist/node/client/solid.js.map +1 -0
  285. package/dist/node/client/svelte.d.ts +295 -0
  286. package/dist/node/client/svelte.d.ts.map +1 -0
  287. package/dist/node/client/svelte.js +11 -0
  288. package/dist/node/client/svelte.js.map +1 -0
  289. package/dist/node/client/vanilla.d.ts +296 -0
  290. package/dist/node/client/vanilla.d.ts.map +1 -0
  291. package/dist/node/client/vanilla.js +11 -0
  292. package/dist/node/client/vanilla.js.map +1 -0
  293. package/dist/node/client/vue.d.ts +295 -0
  294. package/dist/node/client/vue.d.ts.map +1 -0
  295. package/dist/node/client/vue.js +11 -0
  296. package/dist/node/client/vue.js.map +1 -0
  297. package/dist/node/config.d.ts +41 -0
  298. package/dist/node/config.d.ts.map +1 -0
  299. package/dist/node/config.js +26 -0
  300. package/dist/node/config.js.map +1 -0
  301. package/dist/node/definition.d.ts +829 -0
  302. package/dist/node/definition.d.ts.map +1 -0
  303. package/dist/node/definition.js +59 -0
  304. package/dist/node/definition.js.map +1 -0
  305. package/dist/node/index.d.ts +1246 -0
  306. package/dist/node/index.d.ts.map +1 -0
  307. package/dist/node/index.js +19 -0
  308. package/dist/node/index.js.map +1 -0
  309. package/dist/node/keys.d.ts +12 -0
  310. package/dist/node/keys.d.ts.map +1 -0
  311. package/dist/node/keys.js +63 -0
  312. package/dist/node/keys.js.map +1 -0
  313. package/dist/node/routes/files.js +450 -0
  314. package/dist/node/routes/files.js.map +1 -0
  315. package/dist/node/routes/index.d.ts +2023 -0
  316. package/dist/node/routes/index.d.ts.map +1 -0
  317. package/dist/node/routes/index.js +9 -0
  318. package/dist/node/routes/index.js.map +1 -0
  319. package/dist/node/routes/shared.js +66 -0
  320. package/dist/node/routes/shared.js.map +1 -0
  321. package/dist/node/routes/uploads.js +454 -0
  322. package/dist/node/routes/uploads.js.map +1 -0
  323. package/dist/node/schema.d.ts +14 -0
  324. package/dist/node/schema.d.ts.map +1 -0
  325. package/dist/node/schema.js +30 -0
  326. package/dist/node/schema.js.map +1 -0
  327. package/dist/node/services/files.d.ts +20 -0
  328. package/dist/node/services/files.d.ts.map +1 -0
  329. package/dist/node/services/files.js +93 -0
  330. package/dist/node/services/files.js.map +1 -0
  331. package/dist/node/services/helpers.js +36 -0
  332. package/dist/node/services/helpers.js.map +1 -0
  333. package/dist/node/services/index.js +4 -0
  334. package/dist/node/services/uploads.d.ts +50 -0
  335. package/dist/node/services/uploads.d.ts.map +1 -0
  336. package/dist/node/services/uploads.js +358 -0
  337. package/dist/node/services/uploads.js.map +1 -0
  338. package/dist/node/storage/fs.d.ts +16 -0
  339. package/dist/node/storage/fs.d.ts.map +1 -0
  340. package/dist/node/storage/fs.js +94 -0
  341. package/dist/node/storage/fs.js.map +1 -0
  342. package/dist/node/storage/r2.d.ts +103 -0
  343. package/dist/node/storage/r2.d.ts.map +1 -0
  344. package/dist/node/storage/r2.js +23 -0
  345. package/dist/node/storage/r2.js.map +1 -0
  346. package/dist/node/storage/s3.d.ts +44 -0
  347. package/dist/node/storage/s3.d.ts.map +1 -0
  348. package/dist/node/storage/s3.js +398 -0
  349. package/dist/node/storage/s3.js.map +1 -0
  350. package/dist/node/storage/types.d.ts +118 -0
  351. package/dist/node/storage/types.d.ts.map +1 -0
  352. package/dist/node/types.d.ts +32 -0
  353. package/dist/node/types.d.ts.map +1 -0
  354. package/dist/tsconfig.tsbuildinfo +1 -0
  355. package/package.json +105 -0
@@ -0,0 +1,45 @@
1
+ import { baseArgs, createClientFromContext, parseJsonValue } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+
4
+ //#region src/cli/commands/uploads/complete.ts
5
+ const uploadsCompleteCommand = define({
6
+ name: "complete",
7
+ description: "Complete an upload",
8
+ args: {
9
+ ...baseArgs,
10
+ "upload-id": {
11
+ type: "string",
12
+ short: "i",
13
+ description: "Upload id"
14
+ },
15
+ parts: {
16
+ type: "string",
17
+ description: "JSON array of parts (partNumber, etag) for multipart uploads"
18
+ }
19
+ },
20
+ run: async (ctx) => {
21
+ const uploadId = ctx.values["upload-id"];
22
+ if (!uploadId) throw new Error("Missing --upload-id");
23
+ const rawParts = parseJsonValue("parts", ctx.values["parts"]);
24
+ let parts;
25
+ if (rawParts !== void 0) {
26
+ if (!Array.isArray(rawParts) || rawParts.length === 0) throw new Error("--parts must be a non-empty JSON array");
27
+ parts = rawParts.map((part) => {
28
+ if (!part || typeof part !== "object") throw new Error("Invalid parts payload");
29
+ const payload = part;
30
+ if (typeof payload.partNumber !== "number" || !Number.isInteger(payload.partNumber)) throw new Error("parts.partNumber must be an integer");
31
+ if (typeof payload.etag !== "string" || payload.etag.length === 0) throw new Error("parts.etag must be a string");
32
+ return {
33
+ partNumber: payload.partNumber,
34
+ etag: payload.etag
35
+ };
36
+ });
37
+ }
38
+ const response = await createClientFromContext(ctx).completeUpload(uploadId, parts);
39
+ console.log(JSON.stringify(response, null, 2));
40
+ }
41
+ });
42
+
43
+ //#endregion
44
+ export { uploadsCompleteCommand };
45
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","names":["parts: { partNumber: number; etag: string }[] | undefined"],"sources":["../../../../src/cli/commands/uploads/complete.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext, parseJsonValue } from \"../../utils/options.js\";\n\nexport const uploadsCompleteCommand = define({\n name: \"complete\",\n description: \"Complete an upload\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n parts: {\n type: \"string\",\n description: \"JSON array of parts (partNumber, etag) for multipart uploads\",\n },\n },\n run: async (ctx) => {\n const uploadId = ctx.values[\"upload-id\"] as string | undefined;\n if (!uploadId) {\n throw new Error(\"Missing --upload-id\");\n }\n\n const rawParts = parseJsonValue(\"parts\", ctx.values[\"parts\"] as string | undefined);\n let parts: { partNumber: number; etag: string }[] | undefined;\n\n if (rawParts !== undefined) {\n if (!Array.isArray(rawParts) || rawParts.length === 0) {\n throw new Error(\"--parts must be a non-empty JSON array\");\n }\n parts = rawParts.map((part) => {\n if (!part || typeof part !== \"object\") {\n throw new Error(\"Invalid parts payload\");\n }\n const payload = part as { partNumber?: unknown; etag?: unknown };\n if (typeof payload.partNumber !== \"number\" || !Number.isInteger(payload.partNumber)) {\n throw new Error(\"parts.partNumber must be an integer\");\n }\n if (typeof payload.etag !== \"string\" || payload.etag.length === 0) {\n throw new Error(\"parts.etag must be a string\");\n }\n return {\n partNumber: payload.partNumber,\n etag: payload.etag,\n };\n });\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.completeUpload(uploadId, parts);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAGA,MAAa,yBAAyB,OAAO;CAC3C,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,OAAO;GACL,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAGxC,MAAM,WAAW,eAAe,SAAS,IAAI,OAAO,SAA+B;EACnF,IAAIA;AAEJ,MAAI,aAAa,QAAW;AAC1B,OAAI,CAAC,MAAM,QAAQ,SAAS,IAAI,SAAS,WAAW,EAClD,OAAM,IAAI,MAAM,yCAAyC;AAE3D,WAAQ,SAAS,KAAK,SAAS;AAC7B,QAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,OAAM,IAAI,MAAM,wBAAwB;IAE1C,MAAM,UAAU;AAChB,QAAI,OAAO,QAAQ,eAAe,YAAY,CAAC,OAAO,UAAU,QAAQ,WAAW,CACjF,OAAM,IAAI,MAAM,sCAAsC;AAExD,QAAI,OAAO,QAAQ,SAAS,YAAY,QAAQ,KAAK,WAAW,EAC9D,OAAM,IAAI,MAAM,8BAA8B;AAEhD,WAAO;KACL,YAAY,QAAQ;KACpB,MAAM,QAAQ;KACf;KACD;;EAIJ,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,eAAe,UAAU,MAAM;AAC7D,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import * as gunshi7 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/content.d.ts
4
+ declare const uploadsContentCommand: gunshi7.Command<{
5
+ "upload-id": {
6
+ type: "string";
7
+ short: string;
8
+ description: string;
9
+ };
10
+ file: {
11
+ type: "string";
12
+ short: string;
13
+ description: string;
14
+ };
15
+ "content-type": {
16
+ type: "string";
17
+ description: string;
18
+ };
19
+ "base-url": {
20
+ readonly type: "string";
21
+ readonly short: "b";
22
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
23
+ };
24
+ header: {
25
+ readonly type: "string";
26
+ readonly short: "H";
27
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
28
+ readonly multiple: true;
29
+ };
30
+ timeout: {
31
+ readonly type: "number";
32
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
33
+ };
34
+ retries: {
35
+ readonly type: "number";
36
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
37
+ };
38
+ "retry-delay": {
39
+ readonly type: "number";
40
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
41
+ };
42
+ }>;
43
+ //# sourceMappingURL=content.d.ts.map
44
+ //#endregion
45
+ export { uploadsContentCommand };
46
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":[],"mappings":";;;cAOa,uBA0CX,OAAA,CA1CgC;;;IAArB,KAAA,EAAA,MAAA"}
@@ -0,0 +1,43 @@
1
+ import { baseArgs, createClientFromContext } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+ import { createReadStream } from "node:fs";
4
+ import { Readable } from "node:stream";
5
+
6
+ //#region src/cli/commands/uploads/content.ts
7
+ const DEFAULT_CONTENT_TYPE = "application/octet-stream";
8
+ const uploadsContentCommand = define({
9
+ name: "content",
10
+ description: "Upload file bytes via proxy upload",
11
+ args: {
12
+ ...baseArgs,
13
+ "upload-id": {
14
+ type: "string",
15
+ short: "i",
16
+ description: "Upload id"
17
+ },
18
+ file: {
19
+ type: "string",
20
+ short: "f",
21
+ description: "Path to file"
22
+ },
23
+ "content-type": {
24
+ type: "string",
25
+ description: "Content type (default: application/octet-stream)"
26
+ }
27
+ },
28
+ run: async (ctx) => {
29
+ const uploadId = ctx.values["upload-id"];
30
+ if (!uploadId) throw new Error("Missing --upload-id");
31
+ const filePath = ctx.values["file"];
32
+ if (!filePath) throw new Error("Missing --file");
33
+ const contentType = ctx.values["content-type"] ?? DEFAULT_CONTENT_TYPE;
34
+ const client = createClientFromContext(ctx);
35
+ const stream = createReadStream(filePath);
36
+ const response = await client.uploadContent(uploadId, Readable.toWeb(stream), contentType);
37
+ console.log(JSON.stringify(response, null, 2));
38
+ }
39
+ });
40
+
41
+ //#endregion
42
+ export { uploadsContentCommand };
43
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { createReadStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nconst DEFAULT_CONTENT_TYPE = \"application/octet-stream\";\n\nexport const uploadsContentCommand = define({\n name: \"content\",\n description: \"Upload file bytes via proxy upload\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n file: {\n type: \"string\",\n short: \"f\",\n description: \"Path to file\",\n },\n \"content-type\": {\n type: \"string\",\n description: \"Content type (default: application/octet-stream)\",\n },\n },\n run: async (ctx) => {\n const uploadId = ctx.values[\"upload-id\"] as string | undefined;\n if (!uploadId) {\n throw new Error(\"Missing --upload-id\");\n }\n\n const filePath = ctx.values[\"file\"] as string | undefined;\n if (!filePath) {\n throw new Error(\"Missing --file\");\n }\n\n const contentType = (ctx.values[\"content-type\"] as string | undefined) ?? DEFAULT_CONTENT_TYPE;\n\n const client = createClientFromContext(ctx);\n const stream = createReadStream(filePath);\n const response = await client.uploadContent(\n uploadId,\n Readable.toWeb(stream) as BodyInit,\n contentType,\n );\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;;;AAKA,MAAM,uBAAuB;AAE7B,MAAa,wBAAwB,OAAO;CAC1C,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,gBAAgB;GACd,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAGxC,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,iBAAiB;EAGnC,MAAM,cAAe,IAAI,OAAO,mBAA0C;EAE1E,MAAM,SAAS,wBAAwB,IAAI;EAC3C,MAAM,SAAS,iBAAiB,SAAS;EACzC,MAAM,WAAW,MAAM,OAAO,cAC5B,UACA,SAAS,MAAM,OAAO,EACtB,YACD;AACD,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as gunshi0 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/create.d.ts
4
+ declare const uploadsCreateCommand: gunshi0.Command<{
5
+ "file-key": {
6
+ type: "string";
7
+ description: string;
8
+ };
9
+ "key-parts": {
10
+ type: "string";
11
+ description: string;
12
+ };
13
+ filename: {
14
+ type: "string";
15
+ description: string;
16
+ };
17
+ "size-bytes": {
18
+ type: "number";
19
+ description: string;
20
+ };
21
+ "content-type": {
22
+ type: "string";
23
+ description: string;
24
+ };
25
+ checksum: {
26
+ type: "string";
27
+ description: string;
28
+ };
29
+ tags: {
30
+ type: "string";
31
+ description: string;
32
+ };
33
+ visibility: {
34
+ type: "string";
35
+ description: string;
36
+ };
37
+ "uploader-id": {
38
+ type: "string";
39
+ description: string;
40
+ };
41
+ metadata: {
42
+ type: "string";
43
+ description: string;
44
+ };
45
+ "base-url": {
46
+ readonly type: "string";
47
+ readonly short: "b";
48
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
49
+ };
50
+ header: {
51
+ readonly type: "string";
52
+ readonly short: "H";
53
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
54
+ readonly multiple: true;
55
+ };
56
+ timeout: {
57
+ readonly type: "number";
58
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
59
+ };
60
+ retries: {
61
+ readonly type: "number";
62
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
63
+ };
64
+ "retry-delay": {
65
+ readonly type: "number";
66
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
67
+ };
68
+ }>;
69
+ //# sourceMappingURL=create.d.ts.map
70
+ //#endregion
71
+ export { uploadsCreateCommand };
72
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/create.ts"],"sourcesContent":[],"mappings":";;;cAQa,sBA0FX,OAAA,CA1F+B;;;IAApB,WAAA,EAAA,MA0FX"}
@@ -0,0 +1,84 @@
1
+ import { baseArgs, createClientFromContext, parseJsonValue, resolveOptionalFileKeyValue } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+
4
+ //#region src/cli/commands/uploads/create.ts
5
+ const uploadsCreateCommand = define({
6
+ name: "create",
7
+ description: "Create an upload session",
8
+ args: {
9
+ ...baseArgs,
10
+ "file-key": {
11
+ type: "string",
12
+ description: "File key (encoded)"
13
+ },
14
+ "key-parts": {
15
+ type: "string",
16
+ description: "File key parts as JSON array"
17
+ },
18
+ filename: {
19
+ type: "string",
20
+ description: "Filename"
21
+ },
22
+ "size-bytes": {
23
+ type: "number",
24
+ description: "Total size in bytes"
25
+ },
26
+ "content-type": {
27
+ type: "string",
28
+ description: "Content type"
29
+ },
30
+ checksum: {
31
+ type: "string",
32
+ description: "Checksum JSON, e.g. '{\"algo\":\"sha256\",\"value\":\"...\"}'"
33
+ },
34
+ tags: {
35
+ type: "string",
36
+ description: "Tags as JSON array"
37
+ },
38
+ visibility: {
39
+ type: "string",
40
+ description: "Visibility (private, public, unlisted)"
41
+ },
42
+ "uploader-id": {
43
+ type: "string",
44
+ description: "Uploader id"
45
+ },
46
+ metadata: {
47
+ type: "string",
48
+ description: "Metadata JSON object"
49
+ }
50
+ },
51
+ run: async (ctx) => {
52
+ const filename = ctx.values["filename"];
53
+ const sizeBytes = ctx.values["size-bytes"];
54
+ const contentType = ctx.values["content-type"];
55
+ if (!filename) throw new Error("Missing --filename");
56
+ if (sizeBytes === void 0) throw new Error("Missing --size-bytes");
57
+ if (!contentType) throw new Error("Missing --content-type");
58
+ const resolvedKey = resolveOptionalFileKeyValue({
59
+ fileKey: ctx.values["file-key"],
60
+ keyParts: ctx.values["key-parts"]
61
+ });
62
+ if (!resolvedKey.fileKey && !resolvedKey.keyParts) throw new Error("Missing file key. Provide --file-key or --key-parts.");
63
+ const checksum = parseJsonValue("checksum", ctx.values["checksum"]);
64
+ const tags = parseJsonValue("tags", ctx.values["tags"]);
65
+ const metadata = parseJsonValue("metadata", ctx.values["metadata"]);
66
+ const response = await createClientFromContext(ctx).createUpload({
67
+ fileKey: resolvedKey.fileKey,
68
+ keyParts: resolvedKey.keyParts,
69
+ filename,
70
+ sizeBytes,
71
+ contentType,
72
+ checksum,
73
+ tags,
74
+ visibility: ctx.values["visibility"],
75
+ uploaderId: ctx.values["uploader-id"],
76
+ metadata
77
+ });
78
+ console.log(JSON.stringify(response, null, 2));
79
+ }
80
+ });
81
+
82
+ //#endregion
83
+ export { uploadsCreateCommand };
84
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","names":[],"sources":["../../../../src/cli/commands/uploads/create.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport {\n baseArgs,\n createClientFromContext,\n parseJsonValue,\n resolveOptionalFileKeyValue,\n} from \"../../utils/options.js\";\n\nexport const uploadsCreateCommand = define({\n name: \"create\",\n description: \"Create an upload session\",\n args: {\n ...baseArgs,\n \"file-key\": {\n type: \"string\",\n description: \"File key (encoded)\",\n },\n \"key-parts\": {\n type: \"string\",\n description: \"File key parts as JSON array\",\n },\n filename: {\n type: \"string\",\n description: \"Filename\",\n },\n \"size-bytes\": {\n type: \"number\",\n description: \"Total size in bytes\",\n },\n \"content-type\": {\n type: \"string\",\n description: \"Content type\",\n },\n checksum: {\n type: \"string\",\n description: 'Checksum JSON, e.g. \\'{\"algo\":\"sha256\",\"value\":\"...\"}\\'',\n },\n tags: {\n type: \"string\",\n description: \"Tags as JSON array\",\n },\n visibility: {\n type: \"string\",\n description: \"Visibility (private, public, unlisted)\",\n },\n \"uploader-id\": {\n type: \"string\",\n description: \"Uploader id\",\n },\n metadata: {\n type: \"string\",\n description: \"Metadata JSON object\",\n },\n },\n run: async (ctx) => {\n const filename = ctx.values[\"filename\"] as string | undefined;\n const sizeBytes = ctx.values[\"size-bytes\"] as number | undefined;\n const contentType = ctx.values[\"content-type\"] as string | undefined;\n\n if (!filename) {\n throw new Error(\"Missing --filename\");\n }\n if (sizeBytes === undefined) {\n throw new Error(\"Missing --size-bytes\");\n }\n if (!contentType) {\n throw new Error(\"Missing --content-type\");\n }\n\n const resolvedKey = resolveOptionalFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\n keyParts: ctx.values[\"key-parts\"] as string | undefined,\n });\n\n if (!resolvedKey.fileKey && !resolvedKey.keyParts) {\n throw new Error(\"Missing file key. Provide --file-key or --key-parts.\");\n }\n\n const checksum = parseJsonValue(\"checksum\", ctx.values[\"checksum\"] as string | undefined);\n const tags = parseJsonValue(\"tags\", ctx.values[\"tags\"] as string | undefined);\n const metadata = parseJsonValue(\"metadata\", ctx.values[\"metadata\"] as string | undefined);\n\n const client = createClientFromContext(ctx);\n const response = await client.createUpload({\n fileKey: resolvedKey.fileKey,\n keyParts: resolvedKey.keyParts,\n filename,\n sizeBytes,\n contentType,\n checksum,\n tags,\n visibility: ctx.values[\"visibility\"] as string | undefined,\n uploaderId: ctx.values[\"uploader-id\"] as string | undefined,\n metadata,\n });\n\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAQA,MAAa,uBAAuB,OAAO;CACzC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,aAAa;GACX,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,cAAc;GACZ,MAAM;GACN,aAAa;GACd;EACD,gBAAgB;GACd,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,eAAe;GACb,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;EAC5B,MAAM,YAAY,IAAI,OAAO;EAC7B,MAAM,cAAc,IAAI,OAAO;AAE/B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,qBAAqB;AAEvC,MAAI,cAAc,OAChB,OAAM,IAAI,MAAM,uBAAuB;AAEzC,MAAI,CAAC,YACH,OAAM,IAAI,MAAM,yBAAyB;EAG3C,MAAM,cAAc,4BAA4B;GAC9C,SAAS,IAAI,OAAO;GACpB,UAAU,IAAI,OAAO;GACtB,CAAC;AAEF,MAAI,CAAC,YAAY,WAAW,CAAC,YAAY,SACvC,OAAM,IAAI,MAAM,uDAAuD;EAGzE,MAAM,WAAW,eAAe,YAAY,IAAI,OAAO,YAAkC;EACzF,MAAM,OAAO,eAAe,QAAQ,IAAI,OAAO,QAA8B;EAC7E,MAAM,WAAW,eAAe,YAAY,IAAI,OAAO,YAAkC;EAGzF,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,aAAa;GACzC,SAAS,YAAY;GACrB,UAAU,YAAY;GACtB;GACA;GACA;GACA;GACA;GACA,YAAY,IAAI,OAAO;GACvB,YAAY,IAAI,OAAO;GACvB;GACD,CAAC;AAEF,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import * as gunshi0 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/get.d.ts
4
+ declare const uploadsGetCommand: gunshi0.Command<{
5
+ "upload-id": {
6
+ type: "string";
7
+ short: string;
8
+ description: string;
9
+ };
10
+ "base-url": {
11
+ readonly type: "string";
12
+ readonly short: "b";
13
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
14
+ };
15
+ header: {
16
+ readonly type: "string";
17
+ readonly short: "H";
18
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
19
+ readonly multiple: true;
20
+ };
21
+ timeout: {
22
+ readonly type: "number";
23
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
24
+ };
25
+ retries: {
26
+ readonly type: "number";
27
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
28
+ };
29
+ "retry-delay": {
30
+ readonly type: "number";
31
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
32
+ };
33
+ }>;
34
+ //# sourceMappingURL=get.d.ts.map
35
+ //#endregion
36
+ export { uploadsGetCommand };
37
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/get.ts"],"sourcesContent":[],"mappings":";;;cAGa,mBAqBX,OAAA,CArB4B;;;IAAjB,KAAA,EAAA,MAAA"}
@@ -0,0 +1,26 @@
1
+ import { baseArgs, createClientFromContext } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+
4
+ //#region src/cli/commands/uploads/get.ts
5
+ const uploadsGetCommand = define({
6
+ name: "get",
7
+ description: "Get upload status",
8
+ args: {
9
+ ...baseArgs,
10
+ "upload-id": {
11
+ type: "string",
12
+ short: "i",
13
+ description: "Upload id"
14
+ }
15
+ },
16
+ run: async (ctx) => {
17
+ const uploadId = ctx.values["upload-id"];
18
+ if (!uploadId) throw new Error("Missing --upload-id");
19
+ const response = await createClientFromContext(ctx).getUpload(uploadId);
20
+ console.log(JSON.stringify(response, null, 2));
21
+ }
22
+ });
23
+
24
+ //#endregion
25
+ export { uploadsGetCommand };
26
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","names":[],"sources":["../../../../src/cli/commands/uploads/get.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nexport const uploadsGetCommand = define({\n name: \"get\",\n description: \"Get upload status\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n },\n run: async (ctx) => {\n const uploadId = ctx.values[\"upload-id\"] as string | undefined;\n if (!uploadId) {\n throw new Error(\"Missing --upload-id\");\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.getUpload(uploadId);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAGA,MAAa,oBAAoB,OAAO;CACtC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAIxC,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,UAAU,SAAS;AACjD,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,41 @@
1
+ import * as gunshi2 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/parts-complete.d.ts
4
+ declare const uploadsPartsCompleteCommand: gunshi2.Command<{
5
+ "upload-id": {
6
+ type: "string";
7
+ short: string;
8
+ description: string;
9
+ };
10
+ parts: {
11
+ type: "string";
12
+ description: string;
13
+ };
14
+ "base-url": {
15
+ readonly type: "string";
16
+ readonly short: "b";
17
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
18
+ };
19
+ header: {
20
+ readonly type: "string";
21
+ readonly short: "H";
22
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
23
+ readonly multiple: true;
24
+ };
25
+ timeout: {
26
+ readonly type: "number";
27
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
28
+ };
29
+ retries: {
30
+ readonly type: "number";
31
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
32
+ };
33
+ "retry-delay": {
34
+ readonly type: "number";
35
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
36
+ };
37
+ }>;
38
+ //# sourceMappingURL=parts-complete.d.ts.map
39
+ //#endregion
40
+ export { uploadsPartsCompleteCommand };
41
+ //# sourceMappingURL=parts-complete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts-complete.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/parts-complete.ts"],"sourcesContent":[],"mappings":";;;cAGa,6BAyDX,OAAA,CAzDsC;;;IAA3B,KAAA,EAAA,MAAA"}
@@ -0,0 +1,44 @@
1
+ import { baseArgs, createClientFromContext, parseJsonValue } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+
4
+ //#region src/cli/commands/uploads/parts-complete.ts
5
+ const uploadsPartsCompleteCommand = define({
6
+ name: "parts-complete",
7
+ description: "Record completed parts",
8
+ args: {
9
+ ...baseArgs,
10
+ "upload-id": {
11
+ type: "string",
12
+ short: "i",
13
+ description: "Upload id"
14
+ },
15
+ parts: {
16
+ type: "string",
17
+ description: "JSON array of parts (partNumber, etag, sizeBytes)"
18
+ }
19
+ },
20
+ run: async (ctx) => {
21
+ const uploadId = ctx.values["upload-id"];
22
+ if (!uploadId) throw new Error("Missing --upload-id");
23
+ const rawParts = parseJsonValue("parts", ctx.values["parts"]);
24
+ if (!Array.isArray(rawParts) || rawParts.length === 0) throw new Error("--parts must be a non-empty JSON array");
25
+ const parts = rawParts.map((part) => {
26
+ if (!part || typeof part !== "object") throw new Error("Invalid parts payload");
27
+ const payload = part;
28
+ if (typeof payload.partNumber !== "number" || !Number.isInteger(payload.partNumber)) throw new Error("parts.partNumber must be an integer");
29
+ if (typeof payload.etag !== "string" || payload.etag.length === 0) throw new Error("parts.etag must be a string");
30
+ if (typeof payload.sizeBytes !== "number" || !Number.isFinite(payload.sizeBytes) || !Number.isInteger(payload.sizeBytes) || payload.sizeBytes < 0 || payload.sizeBytes > Number.MAX_SAFE_INTEGER) throw new Error("parts.sizeBytes must be a non-negative integer");
31
+ return {
32
+ partNumber: payload.partNumber,
33
+ etag: payload.etag,
34
+ sizeBytes: payload.sizeBytes
35
+ };
36
+ });
37
+ const response = await createClientFromContext(ctx).completeParts(uploadId, parts);
38
+ console.log(JSON.stringify(response, null, 2));
39
+ }
40
+ });
41
+
42
+ //#endregion
43
+ export { uploadsPartsCompleteCommand };
44
+ //# sourceMappingURL=parts-complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts-complete.js","names":[],"sources":["../../../../src/cli/commands/uploads/parts-complete.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext, parseJsonValue } from \"../../utils/options.js\";\n\nexport const uploadsPartsCompleteCommand = define({\n name: \"parts-complete\",\n description: \"Record completed parts\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n parts: {\n type: \"string\",\n description: \"JSON array of parts (partNumber, etag, sizeBytes)\",\n },\n },\n run: async (ctx) => {\n const uploadId = ctx.values[\"upload-id\"] as string | undefined;\n if (!uploadId) {\n throw new Error(\"Missing --upload-id\");\n }\n\n const rawParts = parseJsonValue(\"parts\", ctx.values[\"parts\"] as string | undefined);\n if (!Array.isArray(rawParts) || rawParts.length === 0) {\n throw new Error(\"--parts must be a non-empty JSON array\");\n }\n\n const parts = rawParts.map((part) => {\n if (!part || typeof part !== \"object\") {\n throw new Error(\"Invalid parts payload\");\n }\n const payload = part as { partNumber?: unknown; etag?: unknown; sizeBytes?: unknown };\n if (typeof payload.partNumber !== \"number\" || !Number.isInteger(payload.partNumber)) {\n throw new Error(\"parts.partNumber must be an integer\");\n }\n if (typeof payload.etag !== \"string\" || payload.etag.length === 0) {\n throw new Error(\"parts.etag must be a string\");\n }\n if (\n typeof payload.sizeBytes !== \"number\" ||\n !Number.isFinite(payload.sizeBytes) ||\n !Number.isInteger(payload.sizeBytes) ||\n payload.sizeBytes < 0 ||\n payload.sizeBytes > Number.MAX_SAFE_INTEGER\n ) {\n throw new Error(\"parts.sizeBytes must be a non-negative integer\");\n }\n return {\n partNumber: payload.partNumber,\n etag: payload.etag,\n sizeBytes: payload.sizeBytes,\n };\n });\n\n const client = createClientFromContext(ctx);\n const response = await client.completeParts(uploadId, parts);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAGA,MAAa,8BAA8B,OAAO;CAChD,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,OAAO;GACL,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAGxC,MAAM,WAAW,eAAe,SAAS,IAAI,OAAO,SAA+B;AACnF,MAAI,CAAC,MAAM,QAAQ,SAAS,IAAI,SAAS,WAAW,EAClD,OAAM,IAAI,MAAM,yCAAyC;EAG3D,MAAM,QAAQ,SAAS,KAAK,SAAS;AACnC,OAAI,CAAC,QAAQ,OAAO,SAAS,SAC3B,OAAM,IAAI,MAAM,wBAAwB;GAE1C,MAAM,UAAU;AAChB,OAAI,OAAO,QAAQ,eAAe,YAAY,CAAC,OAAO,UAAU,QAAQ,WAAW,CACjF,OAAM,IAAI,MAAM,sCAAsC;AAExD,OAAI,OAAO,QAAQ,SAAS,YAAY,QAAQ,KAAK,WAAW,EAC9D,OAAM,IAAI,MAAM,8BAA8B;AAEhD,OACE,OAAO,QAAQ,cAAc,YAC7B,CAAC,OAAO,SAAS,QAAQ,UAAU,IACnC,CAAC,OAAO,UAAU,QAAQ,UAAU,IACpC,QAAQ,YAAY,KACpB,QAAQ,YAAY,OAAO,iBAE3B,OAAM,IAAI,MAAM,iDAAiD;AAEnE,UAAO;IACL,YAAY,QAAQ;IACpB,MAAM,QAAQ;IACd,WAAW,QAAQ;IACpB;IACD;EAGF,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,cAAc,UAAU,MAAM;AAC5D,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import * as gunshi4 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/parts-list.d.ts
4
+ declare const uploadsPartsListCommand: gunshi4.Command<{
5
+ "upload-id": {
6
+ type: "string";
7
+ short: string;
8
+ description: string;
9
+ };
10
+ "base-url": {
11
+ readonly type: "string";
12
+ readonly short: "b";
13
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
14
+ };
15
+ header: {
16
+ readonly type: "string";
17
+ readonly short: "H";
18
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
19
+ readonly multiple: true;
20
+ };
21
+ timeout: {
22
+ readonly type: "number";
23
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
24
+ };
25
+ retries: {
26
+ readonly type: "number";
27
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
28
+ };
29
+ "retry-delay": {
30
+ readonly type: "number";
31
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
32
+ };
33
+ }>;
34
+ //# sourceMappingURL=parts-list.d.ts.map
35
+ //#endregion
36
+ export { uploadsPartsListCommand };
37
+ //# sourceMappingURL=parts-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts-list.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/parts-list.ts"],"sourcesContent":[],"mappings":";;;cAGa,yBAqBX,OAAA,CArBkC;;;IAAvB,KAAA,EAAA,MAAA"}
@@ -0,0 +1,26 @@
1
+ import { baseArgs, createClientFromContext } from "../../utils/options.js";
2
+ import { define } from "gunshi";
3
+
4
+ //#region src/cli/commands/uploads/parts-list.ts
5
+ const uploadsPartsListCommand = define({
6
+ name: "parts-list",
7
+ description: "List uploaded parts",
8
+ args: {
9
+ ...baseArgs,
10
+ "upload-id": {
11
+ type: "string",
12
+ short: "i",
13
+ description: "Upload id"
14
+ }
15
+ },
16
+ run: async (ctx) => {
17
+ const uploadId = ctx.values["upload-id"];
18
+ if (!uploadId) throw new Error("Missing --upload-id");
19
+ const response = await createClientFromContext(ctx).listParts(uploadId);
20
+ console.log(JSON.stringify(response, null, 2));
21
+ }
22
+ });
23
+
24
+ //#endregion
25
+ export { uploadsPartsListCommand };
26
+ //# sourceMappingURL=parts-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts-list.js","names":[],"sources":["../../../../src/cli/commands/uploads/parts-list.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nexport const uploadsPartsListCommand = define({\n name: \"parts-list\",\n description: \"List uploaded parts\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n },\n run: async (ctx) => {\n const uploadId = ctx.values[\"upload-id\"] as string | undefined;\n if (!uploadId) {\n throw new Error(\"Missing --upload-id\");\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.listParts(uploadId);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAGA,MAAa,0BAA0B,OAAO;CAC5C,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAIxC,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,UAAU,SAAS;AACjD,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import * as gunshi3 from "gunshi";
2
+
3
+ //#region src/cli/commands/uploads/parts-urls.d.ts
4
+ declare const uploadsPartsUrlsCommand: gunshi3.Command<{
5
+ "upload-id": {
6
+ type: "string";
7
+ short: string;
8
+ description: string;
9
+ };
10
+ parts: {
11
+ type: "string";
12
+ description: string;
13
+ };
14
+ part: {
15
+ type: "number";
16
+ multiple: true;
17
+ description: string;
18
+ };
19
+ "base-url": {
20
+ readonly type: "string";
21
+ readonly short: "b";
22
+ readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
23
+ };
24
+ header: {
25
+ readonly type: "string";
26
+ readonly short: "H";
27
+ readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
28
+ readonly multiple: true;
29
+ };
30
+ timeout: {
31
+ readonly type: "number";
32
+ readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
33
+ };
34
+ retries: {
35
+ readonly type: "number";
36
+ readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
37
+ };
38
+ "retry-delay": {
39
+ readonly type: "number";
40
+ readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
41
+ };
42
+ }>;
43
+ //# sourceMappingURL=parts-urls.d.ts.map
44
+ //#endregion
45
+ export { uploadsPartsUrlsCommand };
46
+ //# sourceMappingURL=parts-urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts-urls.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/parts-urls.ts"],"sourcesContent":[],"mappings":";;;cAiCa,yBAmCX,OAAA,CAnCkC;;;IAAvB,KAAA,EAAA,MAAA"}