@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.
- package/LICENSE.md +16 -0
- package/README.md +43 -0
- package/bin/run.js +5 -0
- package/dist/browser/client/clients.js +49 -0
- package/dist/browser/client/clients.js.map +1 -0
- package/dist/browser/client/helpers.d.ts +51 -0
- package/dist/browser/client/helpers.d.ts.map +1 -0
- package/dist/browser/client/helpers.js +242 -0
- package/dist/browser/client/helpers.js.map +1 -0
- 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
- 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
- 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
- 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
- package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js +17 -0
- package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js +62 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js +6 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js +50 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js +99 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js +11 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js +25 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js +24 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/definition.js +49 -0
- package/dist/browser/client/packages/fragment-upload/src/definition.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts +7 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.js +28 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js +98 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/index.js +9 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/index.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js +41 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js +186 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/schema.js +8 -0
- package/dist/browser/client/packages/fragment-upload/src/schema.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts +9 -0
- package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts +31 -0
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/error.js +48 -0
- package/dist/browser/client/packages/fragno/dist/api/error.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/path.js +76 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/path.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js +81 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/route.js +10 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/route.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/request-input-context.js +185 -0
- package/dist/browser/client/packages/fragno/dist/api/request-input-context.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/request-output-context.js +119 -0
- package/dist/browser/client/packages/fragno/dist/api/request-output-context.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/route.js +17 -0
- package/dist/browser/client/packages/fragno/dist/api/route.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client-error.js +92 -0
- package/dist/browser/client/packages/fragno/dist/client/client-error.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client.js +495 -0
- package/dist/browser/client/packages/fragno/dist/client/client.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js +120 -0
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js +36 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js +139 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/react.js +70 -0
- package/dist/browser/client/packages/fragno/dist/client/react.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/solid.js +108 -0
- package/dist/browser/client/packages/fragno/dist/client/solid.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js +96 -0
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/vue.js +120 -0
- package/dist/browser/client/packages/fragno/dist/client/vue.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/async.js +40 -0
- package/dist/browser/client/packages/fragno/dist/util/async.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/content-type.js +49 -0
- package/dist/browser/client/packages/fragno/dist/util/content-type.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/nanostores.js +31 -0
- package/dist/browser/client/packages/fragno/dist/util/nanostores.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/ssr.js +18 -0
- package/dist/browser/client/packages/fragno/dist/util/ssr.js.map +1 -0
- package/dist/browser/client/react.d.ts +295 -0
- package/dist/browser/client/react.d.ts.map +1 -0
- package/dist/browser/client/react.js +11 -0
- package/dist/browser/client/react.js.map +1 -0
- package/dist/browser/client/solid.d.ts +303 -0
- package/dist/browser/client/solid.d.ts.map +1 -0
- package/dist/browser/client/solid.js +11 -0
- package/dist/browser/client/solid.js.map +1 -0
- package/dist/browser/client/svelte.d.ts +295 -0
- package/dist/browser/client/svelte.d.ts.map +1 -0
- package/dist/browser/client/svelte.js +11 -0
- package/dist/browser/client/svelte.js.map +1 -0
- package/dist/browser/client/vanilla.d.ts +296 -0
- package/dist/browser/client/vanilla.d.ts.map +1 -0
- package/dist/browser/client/vanilla.js +11 -0
- package/dist/browser/client/vanilla.js.map +1 -0
- package/dist/browser/client/vue.d.ts +295 -0
- package/dist/browser/client/vue.d.ts.map +1 -0
- package/dist/browser/client/vue.js +11 -0
- package/dist/browser/client/vue.js.map +1 -0
- package/dist/browser/index-BdjKPO4J.d.ts +177 -0
- package/dist/browser/index-BdjKPO4J.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/browser/src-vdNJUbjT.js +1982 -0
- package/dist/browser/src-vdNJUbjT.js.map +1 -0
- package/dist/cli/commands/files/delete.d.ts +40 -0
- package/dist/cli/commands/files/delete.d.ts.map +1 -0
- package/dist/cli/commands/files/delete.js +31 -0
- package/dist/cli/commands/files/delete.js.map +1 -0
- package/dist/cli/commands/files/download-url.d.ts +40 -0
- package/dist/cli/commands/files/download-url.d.ts.map +1 -0
- package/dist/cli/commands/files/download-url.js +31 -0
- package/dist/cli/commands/files/download-url.js.map +1 -0
- package/dist/cli/commands/files/download.d.ts +49 -0
- package/dist/cli/commands/files/download.d.ts.map +1 -0
- package/dist/cli/commands/files/download.js +65 -0
- package/dist/cli/commands/files/download.js.map +1 -0
- package/dist/cli/commands/files/get.d.ts +40 -0
- package/dist/cli/commands/files/get.d.ts.map +1 -0
- package/dist/cli/commands/files/get.js +31 -0
- package/dist/cli/commands/files/get.js.map +1 -0
- package/dist/cli/commands/files/list.d.ts +56 -0
- package/dist/cli/commands/files/list.d.ts.map +1 -0
- package/dist/cli/commands/files/list.js +53 -0
- package/dist/cli/commands/files/list.js.map +1 -0
- package/dist/cli/commands/files/update.d.ts +56 -0
- package/dist/cli/commands/files/update.d.ts.map +1 -0
- package/dist/cli/commands/files/update.js +53 -0
- package/dist/cli/commands/files/update.js.map +1 -0
- package/dist/cli/commands/files/upload.d.ts +73 -0
- package/dist/cli/commands/files/upload.d.ts.map +1 -0
- package/dist/cli/commands/files/upload.js +87 -0
- package/dist/cli/commands/files/upload.js.map +1 -0
- package/dist/cli/commands/uploads/abort.d.ts +37 -0
- package/dist/cli/commands/uploads/abort.d.ts.map +1 -0
- package/dist/cli/commands/uploads/abort.js +26 -0
- package/dist/cli/commands/uploads/abort.js.map +1 -0
- package/dist/cli/commands/uploads/complete.d.ts +41 -0
- package/dist/cli/commands/uploads/complete.d.ts.map +1 -0
- package/dist/cli/commands/uploads/complete.js +45 -0
- package/dist/cli/commands/uploads/complete.js.map +1 -0
- package/dist/cli/commands/uploads/content.d.ts +46 -0
- package/dist/cli/commands/uploads/content.d.ts.map +1 -0
- package/dist/cli/commands/uploads/content.js +43 -0
- package/dist/cli/commands/uploads/content.js.map +1 -0
- package/dist/cli/commands/uploads/create.d.ts +72 -0
- package/dist/cli/commands/uploads/create.d.ts.map +1 -0
- package/dist/cli/commands/uploads/create.js +84 -0
- package/dist/cli/commands/uploads/create.js.map +1 -0
- package/dist/cli/commands/uploads/get.d.ts +37 -0
- package/dist/cli/commands/uploads/get.d.ts.map +1 -0
- package/dist/cli/commands/uploads/get.js +26 -0
- package/dist/cli/commands/uploads/get.js.map +1 -0
- package/dist/cli/commands/uploads/parts-complete.d.ts +41 -0
- package/dist/cli/commands/uploads/parts-complete.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-complete.js +44 -0
- package/dist/cli/commands/uploads/parts-complete.js.map +1 -0
- package/dist/cli/commands/uploads/parts-list.d.ts +37 -0
- package/dist/cli/commands/uploads/parts-list.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-list.js +26 -0
- package/dist/cli/commands/uploads/parts-list.js.map +1 -0
- package/dist/cli/commands/uploads/parts-urls.d.ts +46 -0
- package/dist/cli/commands/uploads/parts-urls.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-urls.js +57 -0
- package/dist/cli/commands/uploads/parts-urls.js.map +1 -0
- package/dist/cli/commands/uploads/progress.d.ts +45 -0
- package/dist/cli/commands/uploads/progress.d.ts.map +1 -0
- package/dist/cli/commands/uploads/progress.js +40 -0
- package/dist/cli/commands/uploads/progress.js.map +1 -0
- package/dist/cli/commands/uploads/transfer.d.ts +73 -0
- package/dist/cli/commands/uploads/transfer.d.ts.map +1 -0
- package/dist/cli/commands/uploads/transfer.js +170 -0
- package/dist/cli/commands/uploads/transfer.js.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +198 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/keys.js +32 -0
- package/dist/cli/keys.js.map +1 -0
- package/dist/cli/utils/client.js +174 -0
- package/dist/cli/utils/client.js.map +1 -0
- package/dist/cli/utils/options.js +135 -0
- package/dist/cli/utils/options.js.map +1 -0
- package/dist/node/cli/commands/files/delete.d.ts +40 -0
- package/dist/node/cli/commands/files/delete.d.ts.map +1 -0
- package/dist/node/cli/commands/files/delete.js +31 -0
- package/dist/node/cli/commands/files/delete.js.map +1 -0
- package/dist/node/cli/commands/files/download-url.d.ts +40 -0
- package/dist/node/cli/commands/files/download-url.d.ts.map +1 -0
- package/dist/node/cli/commands/files/download-url.js +31 -0
- package/dist/node/cli/commands/files/download-url.js.map +1 -0
- package/dist/node/cli/commands/files/download.d.ts +49 -0
- package/dist/node/cli/commands/files/download.d.ts.map +1 -0
- package/dist/node/cli/commands/files/download.js +65 -0
- package/dist/node/cli/commands/files/download.js.map +1 -0
- package/dist/node/cli/commands/files/get.d.ts +40 -0
- package/dist/node/cli/commands/files/get.d.ts.map +1 -0
- package/dist/node/cli/commands/files/get.js +31 -0
- package/dist/node/cli/commands/files/get.js.map +1 -0
- package/dist/node/cli/commands/files/list.d.ts +56 -0
- package/dist/node/cli/commands/files/list.d.ts.map +1 -0
- package/dist/node/cli/commands/files/list.js +53 -0
- package/dist/node/cli/commands/files/list.js.map +1 -0
- package/dist/node/cli/commands/files/update.d.ts +56 -0
- package/dist/node/cli/commands/files/update.d.ts.map +1 -0
- package/dist/node/cli/commands/files/update.js +53 -0
- package/dist/node/cli/commands/files/update.js.map +1 -0
- package/dist/node/cli/commands/files/upload.d.ts +73 -0
- package/dist/node/cli/commands/files/upload.d.ts.map +1 -0
- package/dist/node/cli/commands/files/upload.js +87 -0
- package/dist/node/cli/commands/files/upload.js.map +1 -0
- package/dist/node/cli/commands/uploads/abort.d.ts +37 -0
- package/dist/node/cli/commands/uploads/abort.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/abort.js +26 -0
- package/dist/node/cli/commands/uploads/abort.js.map +1 -0
- package/dist/node/cli/commands/uploads/complete.d.ts +41 -0
- package/dist/node/cli/commands/uploads/complete.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/complete.js +45 -0
- package/dist/node/cli/commands/uploads/complete.js.map +1 -0
- package/dist/node/cli/commands/uploads/content.d.ts +46 -0
- package/dist/node/cli/commands/uploads/content.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/content.js +43 -0
- package/dist/node/cli/commands/uploads/content.js.map +1 -0
- package/dist/node/cli/commands/uploads/create.d.ts +72 -0
- package/dist/node/cli/commands/uploads/create.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/create.js +84 -0
- package/dist/node/cli/commands/uploads/create.js.map +1 -0
- package/dist/node/cli/commands/uploads/get.d.ts +37 -0
- package/dist/node/cli/commands/uploads/get.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/get.js +26 -0
- package/dist/node/cli/commands/uploads/get.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-complete.d.ts +41 -0
- package/dist/node/cli/commands/uploads/parts-complete.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-complete.js +44 -0
- package/dist/node/cli/commands/uploads/parts-complete.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-list.d.ts +37 -0
- package/dist/node/cli/commands/uploads/parts-list.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-list.js +26 -0
- package/dist/node/cli/commands/uploads/parts-list.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-urls.d.ts +46 -0
- package/dist/node/cli/commands/uploads/parts-urls.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-urls.js +57 -0
- package/dist/node/cli/commands/uploads/parts-urls.js.map +1 -0
- package/dist/node/cli/commands/uploads/progress.d.ts +45 -0
- package/dist/node/cli/commands/uploads/progress.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/progress.js +40 -0
- package/dist/node/cli/commands/uploads/progress.js.map +1 -0
- package/dist/node/cli/commands/uploads/transfer.d.ts +73 -0
- package/dist/node/cli/commands/uploads/transfer.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/transfer.js +170 -0
- package/dist/node/cli/commands/uploads/transfer.js.map +1 -0
- package/dist/node/cli/index.d.ts +27 -0
- package/dist/node/cli/index.d.ts.map +1 -0
- package/dist/node/cli/index.js +198 -0
- package/dist/node/cli/index.js.map +1 -0
- package/dist/node/cli/utils/client.js +174 -0
- package/dist/node/cli/utils/client.js.map +1 -0
- package/dist/node/cli/utils/options.js +135 -0
- package/dist/node/cli/utils/options.js.map +1 -0
- package/dist/node/client/clients.d.ts +295 -0
- package/dist/node/client/clients.d.ts.map +1 -0
- package/dist/node/client/clients.js +49 -0
- package/dist/node/client/clients.js.map +1 -0
- package/dist/node/client/helpers.d.ts +51 -0
- package/dist/node/client/helpers.d.ts.map +1 -0
- package/dist/node/client/helpers.js +242 -0
- package/dist/node/client/helpers.js.map +1 -0
- package/dist/node/client/react.d.ts +295 -0
- package/dist/node/client/react.d.ts.map +1 -0
- package/dist/node/client/react.js +11 -0
- package/dist/node/client/react.js.map +1 -0
- package/dist/node/client/solid.d.ts +303 -0
- package/dist/node/client/solid.d.ts.map +1 -0
- package/dist/node/client/solid.js +11 -0
- package/dist/node/client/solid.js.map +1 -0
- package/dist/node/client/svelte.d.ts +295 -0
- package/dist/node/client/svelte.d.ts.map +1 -0
- package/dist/node/client/svelte.js +11 -0
- package/dist/node/client/svelte.js.map +1 -0
- package/dist/node/client/vanilla.d.ts +296 -0
- package/dist/node/client/vanilla.d.ts.map +1 -0
- package/dist/node/client/vanilla.js +11 -0
- package/dist/node/client/vanilla.js.map +1 -0
- package/dist/node/client/vue.d.ts +295 -0
- package/dist/node/client/vue.d.ts.map +1 -0
- package/dist/node/client/vue.js +11 -0
- package/dist/node/client/vue.js.map +1 -0
- package/dist/node/config.d.ts +41 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +26 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/definition.d.ts +829 -0
- package/dist/node/definition.d.ts.map +1 -0
- package/dist/node/definition.js +59 -0
- package/dist/node/definition.js.map +1 -0
- package/dist/node/index.d.ts +1246 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +19 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/keys.d.ts +12 -0
- package/dist/node/keys.d.ts.map +1 -0
- package/dist/node/keys.js +63 -0
- package/dist/node/keys.js.map +1 -0
- package/dist/node/routes/files.js +450 -0
- package/dist/node/routes/files.js.map +1 -0
- package/dist/node/routes/index.d.ts +2023 -0
- package/dist/node/routes/index.d.ts.map +1 -0
- package/dist/node/routes/index.js +9 -0
- package/dist/node/routes/index.js.map +1 -0
- package/dist/node/routes/shared.js +66 -0
- package/dist/node/routes/shared.js.map +1 -0
- package/dist/node/routes/uploads.js +454 -0
- package/dist/node/routes/uploads.js.map +1 -0
- package/dist/node/schema.d.ts +14 -0
- package/dist/node/schema.d.ts.map +1 -0
- package/dist/node/schema.js +30 -0
- package/dist/node/schema.js.map +1 -0
- package/dist/node/services/files.d.ts +20 -0
- package/dist/node/services/files.d.ts.map +1 -0
- package/dist/node/services/files.js +93 -0
- package/dist/node/services/files.js.map +1 -0
- package/dist/node/services/helpers.js +36 -0
- package/dist/node/services/helpers.js.map +1 -0
- package/dist/node/services/index.js +4 -0
- package/dist/node/services/uploads.d.ts +50 -0
- package/dist/node/services/uploads.d.ts.map +1 -0
- package/dist/node/services/uploads.js +358 -0
- package/dist/node/services/uploads.js.map +1 -0
- package/dist/node/storage/fs.d.ts +16 -0
- package/dist/node/storage/fs.d.ts.map +1 -0
- package/dist/node/storage/fs.js +94 -0
- package/dist/node/storage/fs.js.map +1 -0
- package/dist/node/storage/r2.d.ts +103 -0
- package/dist/node/storage/r2.d.ts.map +1 -0
- package/dist/node/storage/r2.js +23 -0
- package/dist/node/storage/r2.js.map +1 -0
- package/dist/node/storage/s3.d.ts +44 -0
- package/dist/node/storage/s3.d.ts.map +1 -0
- package/dist/node/storage/s3.js +398 -0
- package/dist/node/storage/s3.js.map +1 -0
- package/dist/node/storage/types.d.ts +118 -0
- package/dist/node/storage/types.d.ts.map +1 -0
- package/dist/node/types.d.ts +32 -0
- package/dist/node/types.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as gunshi5 from "gunshi";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/commands/uploads/parts-list.d.ts
|
|
4
|
+
declare const uploadsPartsListCommand: gunshi5.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 gunshi4 from "gunshi";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/commands/uploads/parts-urls.d.ts
|
|
4
|
+
declare const uploadsPartsUrlsCommand: gunshi4.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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { baseArgs, createClientFromContext, parseJsonValue } from "../../utils/options.js";
|
|
2
|
+
import { define } from "gunshi";
|
|
3
|
+
|
|
4
|
+
//#region src/cli/commands/uploads/parts-urls.ts
|
|
5
|
+
const parsePartNumbers = (rawParts, rawPart) => {
|
|
6
|
+
const parts = [];
|
|
7
|
+
if (rawParts) {
|
|
8
|
+
const parsed = parseJsonValue("parts", String(rawParts));
|
|
9
|
+
if (!Array.isArray(parsed)) throw new Error("--parts must be a JSON array of numbers");
|
|
10
|
+
for (const value of parsed) {
|
|
11
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < 1) throw new Error("--parts must be a JSON array of positive integers");
|
|
12
|
+
parts.push(value);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (rawPart) {
|
|
16
|
+
const items = Array.isArray(rawPart) ? rawPart : [rawPart];
|
|
17
|
+
for (const value of items) {
|
|
18
|
+
const parsed = Number(value);
|
|
19
|
+
if (!Number.isInteger(parsed) || parsed < 1) throw new Error("--part must be a positive integer");
|
|
20
|
+
parts.push(parsed);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return Array.from(new Set(parts));
|
|
24
|
+
};
|
|
25
|
+
const uploadsPartsUrlsCommand = define({
|
|
26
|
+
name: "parts-urls",
|
|
27
|
+
description: "Get signed URLs for multipart upload",
|
|
28
|
+
args: {
|
|
29
|
+
...baseArgs,
|
|
30
|
+
"upload-id": {
|
|
31
|
+
type: "string",
|
|
32
|
+
short: "i",
|
|
33
|
+
description: "Upload id"
|
|
34
|
+
},
|
|
35
|
+
parts: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "JSON array of part numbers"
|
|
38
|
+
},
|
|
39
|
+
part: {
|
|
40
|
+
type: "number",
|
|
41
|
+
multiple: true,
|
|
42
|
+
description: "Part number (repeatable)"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
run: async (ctx) => {
|
|
46
|
+
const uploadId = ctx.values["upload-id"];
|
|
47
|
+
if (!uploadId) throw new Error("Missing --upload-id");
|
|
48
|
+
const partNumbers = parsePartNumbers(ctx.values["parts"], ctx.values["part"]);
|
|
49
|
+
if (!partNumbers.length) throw new Error("Provide --parts or at least one --part");
|
|
50
|
+
const response = await createClientFromContext(ctx).getPartUrls(uploadId, partNumbers);
|
|
51
|
+
console.log(JSON.stringify(response, null, 2));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { uploadsPartsUrlsCommand };
|
|
57
|
+
//# sourceMappingURL=parts-urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts-urls.js","names":["parts: number[]"],"sources":["../../../../../src/cli/commands/uploads/parts-urls.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext, parseJsonValue } from \"../../utils/options.js\";\n\nconst parsePartNumbers = (rawParts: unknown, rawPart: unknown): number[] => {\n const parts: number[] = [];\n\n if (rawParts) {\n const parsed = parseJsonValue(\"parts\", String(rawParts));\n if (!Array.isArray(parsed)) {\n throw new Error(\"--parts must be a JSON array of numbers\");\n }\n for (const value of parsed) {\n if (typeof value !== \"number\" || !Number.isInteger(value) || value < 1) {\n throw new Error(\"--parts must be a JSON array of positive integers\");\n }\n parts.push(value);\n }\n }\n\n if (rawPart) {\n const items = Array.isArray(rawPart) ? rawPart : [rawPart];\n for (const value of items) {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed < 1) {\n throw new Error(\"--part must be a positive integer\");\n }\n parts.push(parsed);\n }\n }\n\n return Array.from(new Set(parts));\n};\n\nexport const uploadsPartsUrlsCommand = define({\n name: \"parts-urls\",\n description: \"Get signed URLs for multipart 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 part numbers\",\n },\n part: {\n type: \"number\",\n multiple: true,\n description: \"Part number (repeatable)\",\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 partNumbers = parsePartNumbers(ctx.values[\"parts\"], ctx.values[\"part\"]);\n if (!partNumbers.length) {\n throw new Error(\"Provide --parts or at least one --part\");\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.getPartUrls(uploadId, partNumbers);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAGA,MAAM,oBAAoB,UAAmB,YAA+B;CAC1E,MAAMA,QAAkB,EAAE;AAE1B,KAAI,UAAU;EACZ,MAAM,SAAS,eAAe,SAAS,OAAO,SAAS,CAAC;AACxD,MAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,0CAA0C;AAE5D,OAAK,MAAM,SAAS,QAAQ;AAC1B,OAAI,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,MAAM,IAAI,QAAQ,EACnE,OAAM,IAAI,MAAM,oDAAoD;AAEtE,SAAM,KAAK,MAAM;;;AAIrB,KAAI,SAAS;EACX,MAAM,QAAQ,MAAM,QAAQ,QAAQ,GAAG,UAAU,CAAC,QAAQ;AAC1D,OAAK,MAAM,SAAS,OAAO;GACzB,MAAM,SAAS,OAAO,MAAM;AAC5B,OAAI,CAAC,OAAO,UAAU,OAAO,IAAI,SAAS,EACxC,OAAM,IAAI,MAAM,oCAAoC;AAEtD,SAAM,KAAK,OAAO;;;AAItB,QAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC;;AAGnC,MAAa,0BAA0B,OAAO;CAC5C,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,aAAa;GACX,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,OAAO;GACL,MAAM;GACN,aAAa;GACd;EACD,MAAM;GACJ,MAAM;GACN,UAAU;GACV,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAGxC,MAAM,cAAc,iBAAiB,IAAI,OAAO,UAAU,IAAI,OAAO,QAAQ;AAC7E,MAAI,CAAC,YAAY,OACf,OAAM,IAAI,MAAM,yCAAyC;EAI3D,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,YAAY,UAAU,YAAY;AAChE,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as gunshi3 from "gunshi";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/commands/uploads/progress.d.ts
|
|
4
|
+
declare const uploadsProgressCommand: gunshi3.Command<{
|
|
5
|
+
"upload-id": {
|
|
6
|
+
type: "string";
|
|
7
|
+
short: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
"bytes-uploaded": {
|
|
11
|
+
type: "number";
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
"parts-uploaded": {
|
|
15
|
+
type: "number";
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
"base-url": {
|
|
19
|
+
readonly type: "string";
|
|
20
|
+
readonly short: "b";
|
|
21
|
+
readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
|
|
22
|
+
};
|
|
23
|
+
header: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
readonly short: "H";
|
|
26
|
+
readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
|
|
27
|
+
readonly multiple: true;
|
|
28
|
+
};
|
|
29
|
+
timeout: {
|
|
30
|
+
readonly type: "number";
|
|
31
|
+
readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
|
|
32
|
+
};
|
|
33
|
+
retries: {
|
|
34
|
+
readonly type: "number";
|
|
35
|
+
readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
|
|
36
|
+
};
|
|
37
|
+
"retry-delay": {
|
|
38
|
+
readonly type: "number";
|
|
39
|
+
readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
|
|
40
|
+
};
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
43
|
+
//#endregion
|
|
44
|
+
export { uploadsProgressCommand };
|
|
45
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","names":[],"sources":["../../../../../src/cli/commands/uploads/progress.ts"],"sourcesContent":[],"mappings":";;;cAGa,wBAoCX,OAAA,CApCiC;;;IAAtB,KAAA,EAAA,MAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { baseArgs, createClientFromContext } from "../../utils/options.js";
|
|
2
|
+
import { define } from "gunshi";
|
|
3
|
+
|
|
4
|
+
//#region src/cli/commands/uploads/progress.ts
|
|
5
|
+
const uploadsProgressCommand = define({
|
|
6
|
+
name: "progress",
|
|
7
|
+
description: "Record upload progress",
|
|
8
|
+
args: {
|
|
9
|
+
...baseArgs,
|
|
10
|
+
"upload-id": {
|
|
11
|
+
type: "string",
|
|
12
|
+
short: "i",
|
|
13
|
+
description: "Upload id"
|
|
14
|
+
},
|
|
15
|
+
"bytes-uploaded": {
|
|
16
|
+
type: "number",
|
|
17
|
+
description: "Total bytes uploaded"
|
|
18
|
+
},
|
|
19
|
+
"parts-uploaded": {
|
|
20
|
+
type: "number",
|
|
21
|
+
description: "Total parts uploaded"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
run: async (ctx) => {
|
|
25
|
+
const uploadId = ctx.values["upload-id"];
|
|
26
|
+
if (!uploadId) throw new Error("Missing --upload-id");
|
|
27
|
+
const bytesUploaded = ctx.values["bytes-uploaded"];
|
|
28
|
+
const partsUploaded = ctx.values["parts-uploaded"];
|
|
29
|
+
if (bytesUploaded === void 0 && partsUploaded === void 0) throw new Error("Provide --bytes-uploaded, --parts-uploaded, or both.");
|
|
30
|
+
const response = await createClientFromContext(ctx).reportProgress(uploadId, {
|
|
31
|
+
bytesUploaded,
|
|
32
|
+
partsUploaded
|
|
33
|
+
});
|
|
34
|
+
console.log(JSON.stringify(response, null, 2));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { uploadsProgressCommand };
|
|
40
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","names":[],"sources":["../../../../../src/cli/commands/uploads/progress.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nexport const uploadsProgressCommand = define({\n name: \"progress\",\n description: \"Record upload progress\",\n args: {\n ...baseArgs,\n \"upload-id\": {\n type: \"string\",\n short: \"i\",\n description: \"Upload id\",\n },\n \"bytes-uploaded\": {\n type: \"number\",\n description: \"Total bytes uploaded\",\n },\n \"parts-uploaded\": {\n type: \"number\",\n description: \"Total parts uploaded\",\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 bytesUploaded = ctx.values[\"bytes-uploaded\"] as number | undefined;\n const partsUploaded = ctx.values[\"parts-uploaded\"] as number | undefined;\n\n if (bytesUploaded === undefined && partsUploaded === undefined) {\n throw new Error(\"Provide --bytes-uploaded, --parts-uploaded, or both.\");\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.reportProgress(uploadId, { bytesUploaded, partsUploaded });\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,kBAAkB;GAChB,MAAM;GACN,aAAa;GACd;EACD,kBAAkB;GAChB,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,IAAI,OAAO;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,sBAAsB;EAGxC,MAAM,gBAAgB,IAAI,OAAO;EACjC,MAAM,gBAAgB,IAAI,OAAO;AAEjC,MAAI,kBAAkB,UAAa,kBAAkB,OACnD,OAAM,IAAI,MAAM,uDAAuD;EAIzE,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,eAAe,UAAU;GAAE;GAAe;GAAe,CAAC;AACxF,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as gunshi10 from "gunshi";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/commands/uploads/transfer.d.ts
|
|
4
|
+
declare const uploadsTransferCommand: gunshi10.Command<{
|
|
5
|
+
file: {
|
|
6
|
+
type: "string";
|
|
7
|
+
short: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
"file-key": {
|
|
11
|
+
type: "string";
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
"key-parts": {
|
|
15
|
+
type: "string";
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
filename: {
|
|
19
|
+
type: "string";
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
"content-type": {
|
|
23
|
+
type: "string";
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
checksum: {
|
|
27
|
+
type: "string";
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
tags: {
|
|
31
|
+
type: "string";
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
visibility: {
|
|
35
|
+
type: "string";
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
38
|
+
"uploader-id": {
|
|
39
|
+
type: "string";
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
metadata: {
|
|
43
|
+
type: "string";
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
"base-url": {
|
|
47
|
+
readonly type: "string";
|
|
48
|
+
readonly short: "b";
|
|
49
|
+
readonly description: "Upload fragment base URL (env: FRAGNO_UPLOAD_BASE_URL)";
|
|
50
|
+
};
|
|
51
|
+
header: {
|
|
52
|
+
readonly type: "string";
|
|
53
|
+
readonly short: "H";
|
|
54
|
+
readonly description: "Extra HTTP header (repeatable), format: 'Name: value' (env: FRAGNO_UPLOAD_HEADERS)";
|
|
55
|
+
readonly multiple: true;
|
|
56
|
+
};
|
|
57
|
+
timeout: {
|
|
58
|
+
readonly type: "number";
|
|
59
|
+
readonly description: "Request timeout in ms (env: FRAGNO_UPLOAD_TIMEOUT_MS, default: 15000)";
|
|
60
|
+
};
|
|
61
|
+
retries: {
|
|
62
|
+
readonly type: "number";
|
|
63
|
+
readonly description: "Retry count for network/5xx/429 (env: FRAGNO_UPLOAD_RETRIES, default: 2)";
|
|
64
|
+
};
|
|
65
|
+
"retry-delay": {
|
|
66
|
+
readonly type: "number";
|
|
67
|
+
readonly description: "Delay between retries in ms (env: FRAGNO_UPLOAD_RETRY_DELAY_MS, default: 500)";
|
|
68
|
+
};
|
|
69
|
+
}>;
|
|
70
|
+
//# sourceMappingURL=transfer.d.ts.map
|
|
71
|
+
//#endregion
|
|
72
|
+
export { uploadsTransferCommand };
|
|
73
|
+
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","names":[],"sources":["../../../../../src/cli/commands/uploads/transfer.ts"],"sourcesContent":[],"mappings":";;;cAaa,wBAmMX,QAAA,CAnMiC;;;IAAtB,KAAA,EAAA,MAAA"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { baseArgs, createClientFromContext, parseJsonValue, resolveOptionalFileKeyValue } from "../../utils/options.js";
|
|
2
|
+
import { createReadStream, promises } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { Readable } from "node:stream";
|
|
5
|
+
import { define } from "gunshi";
|
|
6
|
+
|
|
7
|
+
//#region src/cli/commands/uploads/transfer.ts
|
|
8
|
+
const DEFAULT_CONTENT_TYPE = "application/octet-stream";
|
|
9
|
+
const uploadsTransferCommand = define({
|
|
10
|
+
name: "transfer",
|
|
11
|
+
description: "Create an upload and transfer a file",
|
|
12
|
+
args: {
|
|
13
|
+
...baseArgs,
|
|
14
|
+
file: {
|
|
15
|
+
type: "string",
|
|
16
|
+
short: "f",
|
|
17
|
+
description: "Path to file"
|
|
18
|
+
},
|
|
19
|
+
"file-key": {
|
|
20
|
+
type: "string",
|
|
21
|
+
description: "File key (encoded)"
|
|
22
|
+
},
|
|
23
|
+
"key-parts": {
|
|
24
|
+
type: "string",
|
|
25
|
+
description: "File key parts as JSON array"
|
|
26
|
+
},
|
|
27
|
+
filename: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Override filename"
|
|
30
|
+
},
|
|
31
|
+
"content-type": {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Content type (default: application/octet-stream)"
|
|
34
|
+
},
|
|
35
|
+
checksum: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Checksum JSON, e.g. '{\"algo\":\"sha256\",\"value\":\"...\"}'"
|
|
38
|
+
},
|
|
39
|
+
tags: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Tags as JSON array"
|
|
42
|
+
},
|
|
43
|
+
visibility: {
|
|
44
|
+
type: "string",
|
|
45
|
+
description: "Visibility (private, public, unlisted)"
|
|
46
|
+
},
|
|
47
|
+
"uploader-id": {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Uploader id"
|
|
50
|
+
},
|
|
51
|
+
metadata: {
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Metadata JSON object"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
run: async (ctx) => {
|
|
57
|
+
const filePath = ctx.values["file"];
|
|
58
|
+
if (!filePath) throw new Error("Missing --file");
|
|
59
|
+
const resolvedKey = resolveOptionalFileKeyValue({
|
|
60
|
+
fileKey: ctx.values["file-key"],
|
|
61
|
+
keyParts: ctx.values["key-parts"]
|
|
62
|
+
});
|
|
63
|
+
if (!resolvedKey.fileKey && !resolvedKey.keyParts) throw new Error("Missing file key. Provide --file-key or --key-parts.");
|
|
64
|
+
const sizeBytes = (await promises.stat(filePath)).size;
|
|
65
|
+
const filename = ctx.values["filename"] ?? path.basename(filePath);
|
|
66
|
+
const contentType = ctx.values["content-type"] ?? DEFAULT_CONTENT_TYPE;
|
|
67
|
+
const checksum = parseJsonValue("checksum", ctx.values["checksum"]);
|
|
68
|
+
const tags = parseJsonValue("tags", ctx.values["tags"]);
|
|
69
|
+
const metadata = parseJsonValue("metadata", ctx.values["metadata"]);
|
|
70
|
+
const client = createClientFromContext(ctx);
|
|
71
|
+
const upload = await client.createUpload({
|
|
72
|
+
fileKey: resolvedKey.fileKey,
|
|
73
|
+
keyParts: resolvedKey.keyParts,
|
|
74
|
+
filename,
|
|
75
|
+
sizeBytes,
|
|
76
|
+
contentType,
|
|
77
|
+
checksum,
|
|
78
|
+
tags,
|
|
79
|
+
visibility: ctx.values["visibility"],
|
|
80
|
+
uploaderId: ctx.values["uploader-id"],
|
|
81
|
+
metadata
|
|
82
|
+
});
|
|
83
|
+
if (upload.strategy === "direct-single") {
|
|
84
|
+
if (!upload.upload.uploadUrl) throw new Error("Missing upload URL for direct upload");
|
|
85
|
+
const headers = new Headers(upload.upload.uploadHeaders ?? {});
|
|
86
|
+
headers.set("Content-Length", String(sizeBytes));
|
|
87
|
+
const init = {
|
|
88
|
+
method: "PUT",
|
|
89
|
+
headers,
|
|
90
|
+
body: Readable.toWeb(createReadStream(filePath)),
|
|
91
|
+
duplex: "half"
|
|
92
|
+
};
|
|
93
|
+
const response$1 = await fetch(upload.upload.uploadUrl, init);
|
|
94
|
+
if (!response$1.ok) throw new Error(`Direct upload failed (${response$1.status})`);
|
|
95
|
+
await client.reportProgress(upload.uploadId, {
|
|
96
|
+
bytesUploaded: sizeBytes,
|
|
97
|
+
partsUploaded: 1
|
|
98
|
+
});
|
|
99
|
+
const file = await client.completeUpload(upload.uploadId, []);
|
|
100
|
+
console.log(JSON.stringify({
|
|
101
|
+
upload,
|
|
102
|
+
file
|
|
103
|
+
}, null, 2));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (upload.strategy === "direct-multipart") {
|
|
107
|
+
const partSizeBytes = upload.upload.partSizeBytes;
|
|
108
|
+
if (!partSizeBytes) throw new Error("Missing multipart part size from server");
|
|
109
|
+
const totalParts = Math.ceil(sizeBytes / partSizeBytes);
|
|
110
|
+
if (upload.upload.maxParts && totalParts > upload.upload.maxParts) throw new Error("Multipart upload exceeds maximum parts");
|
|
111
|
+
const partNumbers = Array.from({ length: totalParts }, (_, index) => index + 1);
|
|
112
|
+
const orderedParts = (await client.getPartUrls(upload.uploadId, partNumbers)).parts.sort((a, b) => a.partNumber - b.partNumber);
|
|
113
|
+
const completedParts = [];
|
|
114
|
+
const completionParts = [];
|
|
115
|
+
let bytesUploaded = 0;
|
|
116
|
+
let partsUploaded = 0;
|
|
117
|
+
for (const part of orderedParts) {
|
|
118
|
+
const start = (part.partNumber - 1) * partSizeBytes;
|
|
119
|
+
const length = Math.min(partSizeBytes, sizeBytes - start);
|
|
120
|
+
const end = start + length - 1;
|
|
121
|
+
const headers = new Headers(part.headers ?? {});
|
|
122
|
+
headers.set("Content-Length", String(length));
|
|
123
|
+
const init = {
|
|
124
|
+
method: "PUT",
|
|
125
|
+
headers,
|
|
126
|
+
body: Readable.toWeb(createReadStream(filePath, {
|
|
127
|
+
start,
|
|
128
|
+
end
|
|
129
|
+
})),
|
|
130
|
+
duplex: "half"
|
|
131
|
+
};
|
|
132
|
+
const response$1 = await fetch(part.url, init);
|
|
133
|
+
if (!response$1.ok) throw new Error(`Multipart upload failed (${response$1.status})`);
|
|
134
|
+
const etag = response$1.headers.get("etag") ?? response$1.headers.get("ETag");
|
|
135
|
+
if (!etag) throw new Error("Missing ETag for uploaded part");
|
|
136
|
+
completedParts.push({
|
|
137
|
+
partNumber: part.partNumber,
|
|
138
|
+
etag,
|
|
139
|
+
sizeBytes: length
|
|
140
|
+
});
|
|
141
|
+
completionParts.push({
|
|
142
|
+
partNumber: part.partNumber,
|
|
143
|
+
etag
|
|
144
|
+
});
|
|
145
|
+
bytesUploaded += length;
|
|
146
|
+
partsUploaded += 1;
|
|
147
|
+
await client.reportProgress(upload.uploadId, {
|
|
148
|
+
bytesUploaded,
|
|
149
|
+
partsUploaded
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
await client.completeParts(upload.uploadId, completedParts);
|
|
153
|
+
const file = await client.completeUpload(upload.uploadId, completionParts);
|
|
154
|
+
console.log(JSON.stringify({
|
|
155
|
+
upload,
|
|
156
|
+
file
|
|
157
|
+
}, null, 2));
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const response = await client.uploadContent(upload.uploadId, Readable.toWeb(createReadStream(filePath)), contentType);
|
|
161
|
+
console.log(JSON.stringify({
|
|
162
|
+
upload,
|
|
163
|
+
file: response
|
|
164
|
+
}, null, 2));
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
//#endregion
|
|
169
|
+
export { uploadsTransferCommand };
|
|
170
|
+
//# sourceMappingURL=transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.js","names":["fs","init: RequestInit & { duplex?: \"half\" }","response","completedParts: { partNumber: number; etag: string; sizeBytes: number }[]","completionParts: { partNumber: number; etag: string }[]"],"sources":["../../../../../src/cli/commands/uploads/transfer.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { createReadStream, promises as fs } from \"node:fs\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport {\n baseArgs,\n createClientFromContext,\n parseJsonValue,\n resolveOptionalFileKeyValue,\n} from \"../../utils/options.js\";\n\nconst DEFAULT_CONTENT_TYPE = \"application/octet-stream\";\n\nexport const uploadsTransferCommand = define({\n name: \"transfer\",\n description: \"Create an upload and transfer a file\",\n args: {\n ...baseArgs,\n file: {\n type: \"string\",\n short: \"f\",\n description: \"Path to file\",\n },\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: \"Override filename\",\n },\n \"content-type\": {\n type: \"string\",\n description: \"Content type (default: application/octet-stream)\",\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 filePath = ctx.values[\"file\"] as string | undefined;\n if (!filePath) {\n throw new Error(\"Missing --file\");\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 stats = await fs.stat(filePath);\n const sizeBytes = stats.size;\n const filename = (ctx.values[\"filename\"] as string | undefined) ?? path.basename(filePath);\n const contentType = (ctx.values[\"content-type\"] as string | undefined) ?? DEFAULT_CONTENT_TYPE;\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 upload = (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 })) as {\n uploadId: string;\n strategy: \"direct-single\" | \"direct-multipart\" | \"proxy\";\n upload: {\n partSizeBytes?: number;\n maxParts?: number;\n uploadUrl?: string;\n uploadHeaders?: Record<string, string>;\n };\n };\n\n if (upload.strategy === \"direct-single\") {\n if (!upload.upload.uploadUrl) {\n throw new Error(\"Missing upload URL for direct upload\");\n }\n\n const headers = new Headers(upload.upload.uploadHeaders ?? {});\n headers.set(\"Content-Length\", String(sizeBytes));\n const init: RequestInit & { duplex?: \"half\" } = {\n method: \"PUT\",\n headers,\n body: Readable.toWeb(createReadStream(filePath)) as BodyInit,\n duplex: \"half\",\n };\n const response = await fetch(upload.upload.uploadUrl, init);\n\n if (!response.ok) {\n throw new Error(`Direct upload failed (${response.status})`);\n }\n\n await client.reportProgress(upload.uploadId, {\n bytesUploaded: sizeBytes,\n partsUploaded: 1,\n });\n\n const file = await client.completeUpload(upload.uploadId, []);\n console.log(JSON.stringify({ upload, file }, null, 2));\n return;\n }\n\n if (upload.strategy === \"direct-multipart\") {\n const partSizeBytes = upload.upload.partSizeBytes;\n if (!partSizeBytes) {\n throw new Error(\"Missing multipart part size from server\");\n }\n\n const totalParts = Math.ceil(sizeBytes / partSizeBytes);\n if (upload.upload.maxParts && totalParts > upload.upload.maxParts) {\n throw new Error(\"Multipart upload exceeds maximum parts\");\n }\n\n const partNumbers = Array.from({ length: totalParts }, (_, index) => index + 1);\n const partUrls = (await client.getPartUrls(upload.uploadId, partNumbers)) as {\n parts: { partNumber: number; url: string; headers?: Record<string, string> }[];\n };\n const orderedParts = partUrls.parts.sort((a, b) => a.partNumber - b.partNumber);\n\n const completedParts: { partNumber: number; etag: string; sizeBytes: number }[] = [];\n const completionParts: { partNumber: number; etag: string }[] = [];\n\n let bytesUploaded = 0;\n let partsUploaded = 0;\n\n for (const part of orderedParts) {\n const start = (part.partNumber - 1) * partSizeBytes;\n const length = Math.min(partSizeBytes, sizeBytes - start);\n const end = start + length - 1;\n\n const headers = new Headers(part.headers ?? {});\n headers.set(\"Content-Length\", String(length));\n const init: RequestInit & { duplex?: \"half\" } = {\n method: \"PUT\",\n headers,\n body: Readable.toWeb(createReadStream(filePath, { start, end })) as BodyInit,\n duplex: \"half\",\n };\n\n const response = await fetch(part.url, init);\n\n if (!response.ok) {\n throw new Error(`Multipart upload failed (${response.status})`);\n }\n\n const etag = response.headers.get(\"etag\") ?? response.headers.get(\"ETag\");\n if (!etag) {\n throw new Error(\"Missing ETag for uploaded part\");\n }\n\n completedParts.push({ partNumber: part.partNumber, etag, sizeBytes: length });\n completionParts.push({ partNumber: part.partNumber, etag });\n\n bytesUploaded += length;\n partsUploaded += 1;\n await client.reportProgress(upload.uploadId, {\n bytesUploaded,\n partsUploaded,\n });\n }\n\n await client.completeParts(upload.uploadId, completedParts);\n const file = await client.completeUpload(upload.uploadId, completionParts);\n console.log(JSON.stringify({ upload, file }, null, 2));\n return;\n }\n\n const response = await client.uploadContent(\n upload.uploadId,\n Readable.toWeb(createReadStream(filePath)) as BodyInit,\n contentType,\n );\n console.log(JSON.stringify({ upload, file: response }, null, 2));\n },\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { uploadsCreateCommand } from "./commands/uploads/create.js";
|
|
3
|
+
import { uploadsGetCommand } from "./commands/uploads/get.js";
|
|
4
|
+
import { uploadsProgressCommand } from "./commands/uploads/progress.js";
|
|
5
|
+
import { uploadsPartsUrlsCommand } from "./commands/uploads/parts-urls.js";
|
|
6
|
+
import { uploadsPartsListCommand } from "./commands/uploads/parts-list.js";
|
|
7
|
+
import { uploadsPartsCompleteCommand } from "./commands/uploads/parts-complete.js";
|
|
8
|
+
import { uploadsCompleteCommand } from "./commands/uploads/complete.js";
|
|
9
|
+
import { uploadsAbortCommand } from "./commands/uploads/abort.js";
|
|
10
|
+
import { uploadsContentCommand } from "./commands/uploads/content.js";
|
|
11
|
+
import { uploadsTransferCommand } from "./commands/uploads/transfer.js";
|
|
12
|
+
import { filesUploadCommand } from "./commands/files/upload.js";
|
|
13
|
+
import { filesListCommand } from "./commands/files/list.js";
|
|
14
|
+
import { filesGetCommand } from "./commands/files/get.js";
|
|
15
|
+
import { filesUpdateCommand } from "./commands/files/update.js";
|
|
16
|
+
import { filesDeleteCommand } from "./commands/files/delete.js";
|
|
17
|
+
import { filesDownloadUrlCommand } from "./commands/files/download-url.js";
|
|
18
|
+
import { filesDownloadCommand } from "./commands/files/download.js";
|
|
19
|
+
import { Args, Command } from "gunshi";
|
|
20
|
+
|
|
21
|
+
//#region src/cli/index.d.ts
|
|
22
|
+
declare const uploadsCommand: Command<Args>;
|
|
23
|
+
declare const filesCommand: Command<Args>;
|
|
24
|
+
declare function run(): Promise<void>;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { filesCommand, filesDeleteCommand, filesDownloadCommand, filesDownloadUrlCommand, filesGetCommand, filesListCommand, filesUpdateCommand, filesUploadCommand, run, uploadsAbortCommand, uploadsCommand, uploadsCompleteCommand, uploadsContentCommand, uploadsCreateCommand, uploadsGetCommand, uploadsPartsCompleteCommand, uploadsPartsListCommand, uploadsPartsUrlsCommand, uploadsProgressCommand, uploadsTransferCommand };
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/cli/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;cA6Ba,gBAAc,QAAA;cAKd,cAAY,QAAA;AALZ,iBA0HS,GAAA,CAAA,CAvHpB,EAuHuB,OAvHvB,CAAA,IAAA,CAAA"}
|