@fragno-dev/upload 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -12
- package/dist/browser/client/clients.js +17 -9
- package/dist/browser/client/clients.js.map +1 -1
- package/dist/browser/client/helpers.d.ts +15 -6
- package/dist/browser/client/helpers.d.ts.map +1 -1
- package/dist/browser/client/helpers.js +176 -30
- package/dist/browser/client/helpers.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{@nanostores_query@0.3.4_nanostores@1.1.0 → @nanostores_query@0.3.4_nanostores@1.2.0}/node_modules/@nanostores/query/dist/nanoquery.js +6 -6
- package/dist/browser/client/node_modules/.pnpm/{@nanostores_query@0.3.4_nanostores@1.1.0 → @nanostores_query@0.3.4_nanostores@1.2.0}/node_modules/@nanostores/query/dist/nanoquery.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10 → @nanostores_solid@1.1.1_nanostores@1.2.0_solid-js@1.9.10}/node_modules/@nanostores/solid/dist/index.js +2 -2
- package/dist/browser/client/node_modules/.pnpm/{@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10 → @nanostores_solid@1.1.1_nanostores@1.2.0_solid-js@1.9.10}/node_modules/@nanostores/solid/dist/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/atom/index.js +2 -1
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/atom/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/clean-stores/index.js +6 -0
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/clean-stores/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/computed/index.js +8 -5
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/computed/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/lifecycle/index.js +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/lifecycle/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/listen-keys/index.js +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/listen-keys/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/map/index.js +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/map/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/task/index.js +1 -1
- package/dist/browser/client/node_modules/.pnpm/{nanostores@1.1.0 → nanostores@1.2.0}/node_modules/nanostores/task/index.js.map +1 -1
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/warn/index.js +16 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/warn/index.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/definition.js +1 -42
- package/dist/browser/client/packages/fragment-upload/src/definition.js.map +1 -1
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js +12 -5
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js.map +1 -1
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js +3 -4
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js.map +1 -1
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js +32 -21
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js.map +1 -1
- package/dist/browser/client/packages/fragment-upload/src/schema.js +33 -3
- package/dist/browser/client/packages/fragment-upload/src/schema.js.map +1 -1
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts +1 -2
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/client.js +28 -12
- package/dist/browser/client/packages/fragno/dist/client/client.js.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js +11 -3
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/react.js +104 -12
- package/dist/browser/client/packages/fragno/dist/client/react.js.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/solid.js +25 -11
- package/dist/browser/client/packages/fragno/dist/client/solid.js.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js +21 -1
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js.map +1 -1
- package/dist/browser/client/packages/fragno/dist/client/vue.js +19 -11
- package/dist/browser/client/packages/fragno/dist/client/vue.js.map +1 -1
- package/dist/browser/client/react.d.ts +215 -192
- package/dist/browser/client/react.d.ts.map +1 -1
- package/dist/browser/client/react.js.map +1 -1
- package/dist/browser/client/solid.d.ts +218 -196
- package/dist/browser/client/solid.d.ts.map +1 -1
- package/dist/browser/client/solid.js.map +1 -1
- package/dist/browser/client/svelte.d.ts +216 -193
- package/dist/browser/client/svelte.d.ts.map +1 -1
- package/dist/browser/client/svelte.js.map +1 -1
- package/dist/browser/client/vanilla.d.ts +217 -195
- package/dist/browser/client/vanilla.d.ts.map +1 -1
- package/dist/browser/client/vanilla.js.map +1 -1
- package/dist/browser/client/vue.d.ts +217 -194
- package/dist/browser/client/vue.d.ts.map +1 -1
- package/dist/browser/client/vue.js.map +1 -1
- package/dist/cli/commands/files/delete.d.ts +4 -4
- package/dist/cli/commands/files/delete.d.ts.map +1 -1
- package/dist/cli/commands/files/delete.js +8 -10
- package/dist/cli/commands/files/delete.js.map +1 -1
- package/dist/cli/commands/files/download-url.d.ts +4 -4
- package/dist/cli/commands/files/download-url.d.ts.map +1 -1
- package/dist/cli/commands/files/download-url.js +8 -10
- package/dist/cli/commands/files/download-url.js.map +1 -1
- package/dist/cli/commands/files/download.d.ts +4 -4
- package/dist/cli/commands/files/download.d.ts.map +1 -1
- package/dist/cli/commands/files/download.js +10 -12
- package/dist/cli/commands/files/download.js.map +1 -1
- package/dist/cli/commands/files/get.d.ts +4 -4
- package/dist/cli/commands/files/get.d.ts.map +1 -1
- package/dist/cli/commands/files/get.js +8 -10
- package/dist/cli/commands/files/get.js.map +1 -1
- package/dist/cli/commands/files/list.d.ts +4 -4
- package/dist/cli/commands/files/list.d.ts.map +1 -1
- package/dist/cli/commands/files/list.js +6 -8
- package/dist/cli/commands/files/list.js.map +1 -1
- package/dist/cli/commands/files/update.d.ts +4 -4
- package/dist/cli/commands/files/update.d.ts.map +1 -1
- package/dist/cli/commands/files/update.js +8 -10
- package/dist/cli/commands/files/update.js.map +1 -1
- package/dist/cli/commands/files/upload.d.ts +4 -4
- package/dist/cli/commands/files/upload.d.ts.map +1 -1
- package/dist/cli/commands/files/upload.js +10 -12
- package/dist/cli/commands/files/upload.js.map +1 -1
- package/dist/cli/commands/uploads/abort.d.ts +2 -2
- package/dist/cli/commands/uploads/abort.d.ts.map +1 -1
- package/dist/cli/commands/uploads/abort.js.map +1 -1
- package/dist/cli/commands/uploads/complete.d.ts +2 -2
- package/dist/cli/commands/uploads/complete.d.ts.map +1 -1
- package/dist/cli/commands/uploads/complete.js.map +1 -1
- package/dist/cli/commands/uploads/content.d.ts +2 -2
- package/dist/cli/commands/uploads/content.d.ts.map +1 -1
- package/dist/cli/commands/uploads/content.js +1 -1
- package/dist/cli/commands/uploads/content.js.map +1 -1
- package/dist/cli/commands/uploads/create.d.ts +4 -4
- package/dist/cli/commands/uploads/create.d.ts.map +1 -1
- package/dist/cli/commands/uploads/create.js +8 -11
- package/dist/cli/commands/uploads/create.js.map +1 -1
- package/dist/cli/commands/uploads/get.d.ts +2 -2
- package/dist/cli/commands/uploads/get.d.ts.map +1 -1
- package/dist/cli/commands/uploads/get.js.map +1 -1
- package/dist/cli/commands/uploads/parts-complete.d.ts +2 -2
- package/dist/cli/commands/uploads/parts-complete.d.ts.map +1 -1
- package/dist/cli/commands/uploads/parts-complete.js.map +1 -1
- package/dist/cli/commands/uploads/parts-list.d.ts +2 -2
- package/dist/cli/commands/uploads/parts-list.d.ts.map +1 -1
- package/dist/cli/commands/uploads/parts-list.js.map +1 -1
- package/dist/cli/commands/uploads/parts-urls.d.ts +2 -2
- package/dist/cli/commands/uploads/parts-urls.d.ts.map +1 -1
- package/dist/cli/commands/uploads/parts-urls.js.map +1 -1
- package/dist/cli/commands/uploads/progress.d.ts +2 -2
- package/dist/cli/commands/uploads/progress.d.ts.map +1 -1
- package/dist/cli/commands/uploads/progress.js.map +1 -1
- package/dist/cli/commands/uploads/transfer.d.ts +4 -4
- package/dist/cli/commands/uploads/transfer.d.ts.map +1 -1
- package/dist/cli/commands/uploads/transfer.js +9 -12
- package/dist/cli/commands/uploads/transfer.js.map +1 -1
- package/dist/cli/index.d.ts +13 -13
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +14 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/client.js +22 -5
- package/dist/cli/utils/client.js.map +1 -1
- package/dist/cli/utils/options.js +7 -43
- package/dist/cli/utils/options.js.map +1 -1
- package/dist/node/cli/commands/files/delete.d.ts +4 -4
- package/dist/node/cli/commands/files/delete.d.ts.map +1 -1
- package/dist/node/cli/commands/files/delete.js +8 -10
- package/dist/node/cli/commands/files/delete.js.map +1 -1
- package/dist/node/cli/commands/files/download-url.d.ts +4 -4
- package/dist/node/cli/commands/files/download-url.d.ts.map +1 -1
- package/dist/node/cli/commands/files/download-url.js +8 -10
- package/dist/node/cli/commands/files/download-url.js.map +1 -1
- package/dist/node/cli/commands/files/download.d.ts +4 -4
- package/dist/node/cli/commands/files/download.d.ts.map +1 -1
- package/dist/node/cli/commands/files/download.js +9 -11
- package/dist/node/cli/commands/files/download.js.map +1 -1
- package/dist/node/cli/commands/files/get.d.ts +4 -4
- package/dist/node/cli/commands/files/get.d.ts.map +1 -1
- package/dist/node/cli/commands/files/get.js +8 -10
- package/dist/node/cli/commands/files/get.js.map +1 -1
- package/dist/node/cli/commands/files/list.d.ts +4 -4
- package/dist/node/cli/commands/files/list.d.ts.map +1 -1
- package/dist/node/cli/commands/files/list.js +6 -8
- package/dist/node/cli/commands/files/list.js.map +1 -1
- package/dist/node/cli/commands/files/update.d.ts +4 -4
- package/dist/node/cli/commands/files/update.d.ts.map +1 -1
- package/dist/node/cli/commands/files/update.js +8 -10
- package/dist/node/cli/commands/files/update.js.map +1 -1
- package/dist/node/cli/commands/files/upload.d.ts +4 -4
- package/dist/node/cli/commands/files/upload.d.ts.map +1 -1
- package/dist/node/cli/commands/files/upload.js +9 -11
- package/dist/node/cli/commands/files/upload.js.map +1 -1
- package/dist/node/cli/commands/uploads/abort.d.ts +2 -2
- package/dist/node/cli/commands/uploads/abort.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/abort.js.map +1 -1
- package/dist/node/cli/commands/uploads/complete.d.ts +2 -2
- package/dist/node/cli/commands/uploads/complete.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/complete.js.map +1 -1
- package/dist/node/cli/commands/uploads/content.d.ts +2 -2
- package/dist/node/cli/commands/uploads/content.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/content.js.map +1 -1
- package/dist/node/cli/commands/uploads/create.d.ts +4 -4
- package/dist/node/cli/commands/uploads/create.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/create.js +8 -11
- package/dist/node/cli/commands/uploads/create.js.map +1 -1
- package/dist/node/cli/commands/uploads/get.d.ts +2 -2
- package/dist/node/cli/commands/uploads/get.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/get.js.map +1 -1
- package/dist/node/cli/commands/uploads/parts-complete.d.ts +2 -2
- package/dist/node/cli/commands/uploads/parts-complete.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/parts-complete.js.map +1 -1
- package/dist/node/cli/commands/uploads/parts-list.d.ts +2 -2
- package/dist/node/cli/commands/uploads/parts-list.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/parts-list.js.map +1 -1
- package/dist/node/cli/commands/uploads/parts-urls.d.ts +2 -2
- package/dist/node/cli/commands/uploads/parts-urls.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/parts-urls.js.map +1 -1
- package/dist/node/cli/commands/uploads/progress.d.ts +2 -2
- package/dist/node/cli/commands/uploads/progress.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/progress.js.map +1 -1
- package/dist/node/cli/commands/uploads/transfer.d.ts +4 -4
- package/dist/node/cli/commands/uploads/transfer.d.ts.map +1 -1
- package/dist/node/cli/commands/uploads/transfer.js +8 -11
- package/dist/node/cli/commands/uploads/transfer.js.map +1 -1
- package/dist/node/cli/index.d.ts +13 -13
- package/dist/node/cli/index.d.ts.map +1 -1
- package/dist/node/cli/index.js +14 -14
- package/dist/node/cli/index.js.map +1 -1
- package/dist/node/cli/utils/client.js +22 -5
- package/dist/node/cli/utils/client.js.map +1 -1
- package/dist/node/cli/utils/options.js +7 -43
- package/dist/node/cli/utils/options.js.map +1 -1
- package/dist/node/client/clients.d.ts +217 -194
- package/dist/node/client/clients.d.ts.map +1 -1
- package/dist/node/client/clients.js +17 -9
- package/dist/node/client/clients.js.map +1 -1
- package/dist/node/client/helpers.d.ts +15 -6
- package/dist/node/client/helpers.d.ts.map +1 -1
- package/dist/node/client/helpers.js +176 -30
- package/dist/node/client/helpers.js.map +1 -1
- package/dist/node/client/react.d.ts +217 -194
- package/dist/node/client/react.d.ts.map +1 -1
- package/dist/node/client/react.js.map +1 -1
- package/dist/node/client/solid.d.ts +218 -196
- package/dist/node/client/solid.d.ts.map +1 -1
- package/dist/node/client/solid.js.map +1 -1
- package/dist/node/client/svelte.d.ts +216 -193
- package/dist/node/client/svelte.d.ts.map +1 -1
- package/dist/node/client/svelte.js.map +1 -1
- package/dist/node/client/vanilla.d.ts +217 -195
- package/dist/node/client/vanilla.d.ts.map +1 -1
- package/dist/node/client/vanilla.js.map +1 -1
- package/dist/node/client/vue.d.ts +217 -194
- package/dist/node/client/vue.d.ts.map +1 -1
- package/dist/node/client/vue.js.map +1 -1
- package/dist/node/config.d.ts +6 -6
- package/dist/node/config.d.ts.map +1 -1
- package/dist/node/config.js.map +1 -1
- package/dist/node/definition.d.ts +588 -219
- package/dist/node/definition.d.ts.map +1 -1
- package/dist/node/definition.js +27 -3
- package/dist/node/definition.js.map +1 -1
- package/dist/node/file-key.d.ts +19 -0
- package/dist/node/file-key.d.ts.map +1 -0
- package/dist/node/file-key.js +47 -0
- package/dist/node/file-key.js.map +1 -0
- package/dist/node/index.d.ts +582 -175
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +3 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/routes/files.js +99 -64
- package/dist/node/routes/files.js.map +1 -1
- package/dist/node/routes/index.d.ts +1497 -721
- package/dist/node/routes/index.d.ts.map +1 -1
- package/dist/node/routes/shared.js +5 -9
- package/dist/node/routes/shared.js.map +1 -1
- package/dist/node/routes/uploads.js +105 -47
- package/dist/node/routes/uploads.js.map +1 -1
- package/dist/node/schema.d.ts +6 -6
- package/dist/node/schema.d.ts.map +1 -1
- package/dist/node/schema.js +12 -3
- package/dist/node/schema.js.map +1 -1
- package/dist/node/services/files.d.ts +6 -2
- package/dist/node/services/files.d.ts.map +1 -1
- package/dist/node/services/files.js +22 -20
- package/dist/node/services/files.js.map +1 -1
- package/dist/node/services/helpers.js +37 -15
- package/dist/node/services/helpers.js.map +1 -1
- package/dist/node/services/uploads.d.ts +10 -5
- package/dist/node/services/uploads.d.ts.map +1 -1
- package/dist/node/services/uploads.js +340 -63
- package/dist/node/services/uploads.js.map +1 -1
- package/dist/node/storage/fs.d.ts.map +1 -1
- package/dist/node/storage/fs.js +16 -10
- package/dist/node/storage/fs.js.map +1 -1
- package/dist/node/storage/object-key.js +36 -0
- package/dist/node/storage/object-key.js.map +1 -0
- package/dist/node/storage/r2-binding.d.ts +59 -0
- package/dist/node/storage/r2-binding.d.ts.map +1 -0
- package/dist/node/storage/r2-binding.js +245 -0
- package/dist/node/storage/r2-binding.js.map +1 -0
- package/dist/node/storage/r2.d.ts +6 -5
- package/dist/node/storage/r2.d.ts.map +1 -1
- package/dist/node/storage/s3.d.ts.map +1 -1
- package/dist/node/storage/s3.js +16 -10
- package/dist/node/storage/s3.js.map +1 -1
- package/dist/node/storage/types.d.ts +6 -5
- package/dist/node/storage/types.d.ts.map +1 -1
- package/dist/node/types.d.ts +1 -2
- package/dist/node/types.d.ts.map +1 -1
- package/package.json +26 -46
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js.map +0 -1
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js +0 -6
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js.map +0 -1
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts +0 -7
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts.map +0 -1
- package/dist/browser/client/packages/fragment-upload/src/keys.js +0 -28
- package/dist/browser/client/packages/fragment-upload/src/keys.js.map +0 -1
- package/dist/browser/index-BdjKPO4J.d.ts +0 -177
- package/dist/browser/index-BdjKPO4J.d.ts.map +0 -1
- package/dist/browser/index.js +0 -3
- package/dist/browser/src-vdNJUbjT.js +0 -1982
- package/dist/browser/src-vdNJUbjT.js.map +0 -1
- package/dist/cli/keys.js +0 -32
- package/dist/cli/keys.js.map +0 -1
- package/dist/node/keys.d.ts +0 -12
- package/dist/node/keys.d.ts.map +0 -1
- package/dist/node/keys.js +0 -63
- package/dist/node/keys.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-url.d.ts","names":[],"sources":["../../../../src/cli/commands/files/download-url.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"download-url.d.ts","names":[],"sources":["../../../../src/cli/commands/files/download-url.ts"],"sourcesContent":[],"mappings":";;;cASa,yBAwBX,OAAA,CAxBkC;;;IAAvB,WAAA,EAAA,MAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { baseArgs, createClientFromContext, resolveFileKeyValue } from "../../utils/options.js";
|
|
1
|
+
import { baseArgs, createClientFromContext, resolveFileKeyValue, resolveProviderValue } from "../../utils/options.js";
|
|
2
2
|
import { define } from "gunshi";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/commands/files/download-url.ts
|
|
@@ -7,21 +7,19 @@ const filesDownloadUrlCommand = define({
|
|
|
7
7
|
description: "Get a signed download URL",
|
|
8
8
|
args: {
|
|
9
9
|
...baseArgs,
|
|
10
|
-
|
|
10
|
+
provider: {
|
|
11
11
|
type: "string",
|
|
12
|
-
description: "
|
|
12
|
+
description: "Storage provider"
|
|
13
13
|
},
|
|
14
|
-
"key
|
|
14
|
+
"file-key": {
|
|
15
15
|
type: "string",
|
|
16
|
-
description: "File key
|
|
16
|
+
description: "File key"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
run: async (ctx) => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
const response = await createClientFromContext(ctx).getDownloadUrl(resolvedKey.fileKey);
|
|
20
|
+
const provider = resolveProviderValue(ctx.values["provider"]);
|
|
21
|
+
const resolvedKey = resolveFileKeyValue({ fileKey: ctx.values["file-key"] });
|
|
22
|
+
const response = await createClientFromContext(ctx).getDownloadUrl(provider, resolvedKey.fileKey);
|
|
25
23
|
console.log(JSON.stringify(response, null, 2));
|
|
26
24
|
}
|
|
27
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-url.js","names":[],"sources":["../../../../src/cli/commands/files/download-url.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport {
|
|
1
|
+
{"version":3,"file":"download-url.js","names":[],"sources":["../../../../src/cli/commands/files/download-url.ts"],"sourcesContent":["import { define } from \"gunshi\";\n\nimport {\n baseArgs,\n createClientFromContext,\n resolveFileKeyValue,\n resolveProviderValue,\n} from \"../../utils/options.js\";\n\nexport const filesDownloadUrlCommand = define({\n name: \"download-url\",\n description: \"Get a signed download URL\",\n args: {\n ...baseArgs,\n provider: {\n type: \"string\",\n description: \"Storage provider\",\n },\n \"file-key\": {\n type: \"string\",\n description: \"File key\",\n },\n },\n run: async (ctx) => {\n const provider = resolveProviderValue(ctx.values[\"provider\"] as string | undefined);\n const resolvedKey = resolveFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\n });\n\n const client = createClientFromContext(ctx);\n const response = await client.getDownloadUrl(provider, resolvedKey.fileKey);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AASA,MAAa,0BAA0B,OAAO;CAC5C,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,qBAAqB,IAAI,OAAO,YAAkC;EACnF,MAAM,cAAc,oBAAoB,EACtC,SAAS,IAAI,OAAO,aACrB,CAAC;EAGF,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,eAAe,UAAU,YAAY,QAAQ;AAC3E,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi2 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/files/download.d.ts
|
|
4
|
-
declare const filesDownloadCommand:
|
|
5
|
-
|
|
4
|
+
declare const filesDownloadCommand: gunshi2.Command<{
|
|
5
|
+
provider: {
|
|
6
6
|
type: "string";
|
|
7
7
|
description: string;
|
|
8
8
|
};
|
|
9
|
-
"key
|
|
9
|
+
"file-key": {
|
|
10
10
|
type: "string";
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","names":[],"sources":["../../../../src/cli/commands/files/download.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"download.d.ts","names":[],"sources":["../../../../src/cli/commands/files/download.ts"],"sourcesContent":[],"mappings":";;;cAca,sBAyEX,OAAA,CAzE+B;;;IAApB,WAAA,EAAA,MAyEX"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { baseArgs, createClientFromContext, resolveFileKeyValue } from "../../utils/options.js";
|
|
2
|
-
import { define } from "gunshi";
|
|
1
|
+
import { baseArgs, createClientFromContext, resolveFileKeyValue, resolveProviderValue } from "../../utils/options.js";
|
|
3
2
|
import { createWriteStream } from "node:fs";
|
|
3
|
+
import { define } from "gunshi";
|
|
4
4
|
import { Readable } from "node:stream";
|
|
5
5
|
import { pipeline } from "node:stream/promises";
|
|
6
6
|
|
|
@@ -10,13 +10,13 @@ const filesDownloadCommand = define({
|
|
|
10
10
|
description: "Download file contents",
|
|
11
11
|
args: {
|
|
12
12
|
...baseArgs,
|
|
13
|
-
|
|
13
|
+
provider: {
|
|
14
14
|
type: "string",
|
|
15
|
-
description: "
|
|
15
|
+
description: "Storage provider"
|
|
16
16
|
},
|
|
17
|
-
"key
|
|
17
|
+
"file-key": {
|
|
18
18
|
type: "string",
|
|
19
|
-
description: "File key
|
|
19
|
+
description: "File key"
|
|
20
20
|
},
|
|
21
21
|
output: {
|
|
22
22
|
type: "string",
|
|
@@ -29,17 +29,15 @@ const filesDownloadCommand = define({
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
run: async (ctx) => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
keyParts: ctx.values["key-parts"]
|
|
35
|
-
});
|
|
32
|
+
const provider = resolveProviderValue(ctx.values["provider"]);
|
|
33
|
+
const resolvedKey = resolveFileKeyValue({ fileKey: ctx.values["file-key"] });
|
|
36
34
|
const outputPath = ctx.values["output"];
|
|
37
35
|
const toStdout = Boolean(ctx.values["stdout"]);
|
|
38
36
|
if (!outputPath && !toStdout) throw new Error("Provide --output or --stdout.");
|
|
39
37
|
const client = createClientFromContext(ctx);
|
|
40
38
|
let response;
|
|
41
39
|
try {
|
|
42
|
-
const download = await client.getDownloadUrl(resolvedKey.fileKey);
|
|
40
|
+
const download = await client.getDownloadUrl(provider, resolvedKey.fileKey);
|
|
43
41
|
response = await fetch(download.url, {
|
|
44
42
|
method: "GET",
|
|
45
43
|
headers: download.headers
|
|
@@ -47,7 +45,7 @@ const filesDownloadCommand = define({
|
|
|
47
45
|
if (!response.ok) throw new Error(`Download failed (${response.status})`);
|
|
48
46
|
} catch (error) {
|
|
49
47
|
if ((error instanceof Error ? error.code : void 0) !== "SIGNED_URL_UNSUPPORTED") throw error;
|
|
50
|
-
response = await client.downloadContent(resolvedKey.fileKey);
|
|
48
|
+
response = await client.downloadContent(provider, resolvedKey.fileKey);
|
|
51
49
|
}
|
|
52
50
|
if (!response.body) throw new Error("Response has no body");
|
|
53
51
|
const bodyStream = Readable.fromWeb(response.body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","names":["response: Response"],"sources":["../../../../src/cli/commands/files/download.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"download.js","names":["response: Response"],"sources":["../../../../src/cli/commands/files/download.ts"],"sourcesContent":["import { createWriteStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\nimport { pipeline } from \"node:stream/promises\";\nimport type { ReadableStream as NodeReadableStream } from \"node:stream/web\";\n\nimport { define } from \"gunshi\";\n\nimport {\n baseArgs,\n createClientFromContext,\n resolveFileKeyValue,\n resolveProviderValue,\n} from \"../../utils/options.js\";\n\nexport const filesDownloadCommand = define({\n name: \"download\",\n description: \"Download file contents\",\n args: {\n ...baseArgs,\n provider: {\n type: \"string\",\n description: \"Storage provider\",\n },\n \"file-key\": {\n type: \"string\",\n description: \"File key\",\n },\n output: {\n type: \"string\",\n short: \"o\",\n description: \"Output file path\",\n },\n stdout: {\n type: \"boolean\",\n description: \"Write content to stdout\",\n },\n },\n run: async (ctx) => {\n const provider = resolveProviderValue(ctx.values[\"provider\"] as string | undefined);\n const resolvedKey = resolveFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\n });\n\n const outputPath = ctx.values[\"output\"] as string | undefined;\n const toStdout = Boolean(ctx.values[\"stdout\"]);\n\n if (!outputPath && !toStdout) {\n throw new Error(\"Provide --output or --stdout.\");\n }\n\n const client = createClientFromContext(ctx);\n\n let response: Response;\n try {\n const download = (await client.getDownloadUrl(provider, resolvedKey.fileKey)) as {\n url: string;\n headers?: Record<string, string>;\n };\n response = await fetch(download.url, {\n method: \"GET\",\n headers: download.headers,\n });\n if (!response.ok) {\n throw new Error(`Download failed (${response.status})`);\n }\n } catch (error) {\n const code = error instanceof Error ? (error as Error & { code?: string }).code : undefined;\n if (code !== \"SIGNED_URL_UNSUPPORTED\") {\n throw error;\n }\n response = await client.downloadContent(provider, resolvedKey.fileKey);\n }\n\n if (!response.body) {\n throw new Error(\"Response has no body\");\n }\n\n const bodyStream = Readable.fromWeb(response.body as unknown as NodeReadableStream);\n\n if (toStdout) {\n await pipeline(bodyStream, process.stdout);\n return;\n }\n\n await pipeline(bodyStream, createWriteStream(outputPath as string));\n console.log(`Downloaded to ${outputPath}`);\n },\n});\n"],"mappings":";;;;;;;AAcA,MAAa,uBAAuB,OAAO;CACzC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,QAAQ;GACN,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,QAAQ;GACN,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,qBAAqB,IAAI,OAAO,YAAkC;EACnF,MAAM,cAAc,oBAAoB,EACtC,SAAS,IAAI,OAAO,aACrB,CAAC;EAEF,MAAM,aAAa,IAAI,OAAO;EAC9B,MAAM,WAAW,QAAQ,IAAI,OAAO,UAAU;AAE9C,MAAI,CAAC,cAAc,CAAC,SAClB,OAAM,IAAI,MAAM,gCAAgC;EAGlD,MAAM,SAAS,wBAAwB,IAAI;EAE3C,IAAIA;AACJ,MAAI;GACF,MAAM,WAAY,MAAM,OAAO,eAAe,UAAU,YAAY,QAAQ;AAI5E,cAAW,MAAM,MAAM,SAAS,KAAK;IACnC,QAAQ;IACR,SAAS,SAAS;IACnB,CAAC;AACF,OAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,oBAAoB,SAAS,OAAO,GAAG;WAElD,OAAO;AAEd,QADa,iBAAiB,QAAS,MAAoC,OAAO,YACrE,yBACX,OAAM;AAER,cAAW,MAAM,OAAO,gBAAgB,UAAU,YAAY,QAAQ;;AAGxE,MAAI,CAAC,SAAS,KACZ,OAAM,IAAI,MAAM,uBAAuB;EAGzC,MAAM,aAAa,SAAS,QAAQ,SAAS,KAAsC;AAEnF,MAAI,UAAU;AACZ,SAAM,SAAS,YAAY,QAAQ,OAAO;AAC1C;;AAGF,QAAM,SAAS,YAAY,kBAAkB,WAAqB,CAAC;AACnE,UAAQ,IAAI,iBAAiB,aAAa;;CAE7C,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi3 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/files/get.d.ts
|
|
4
|
-
declare const filesGetCommand:
|
|
5
|
-
|
|
4
|
+
declare const filesGetCommand: gunshi3.Command<{
|
|
5
|
+
provider: {
|
|
6
6
|
type: "string";
|
|
7
7
|
description: string;
|
|
8
8
|
};
|
|
9
|
-
"key
|
|
9
|
+
"file-key": {
|
|
10
10
|
type: "string";
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","names":[],"sources":["../../../../src/cli/commands/files/get.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get.d.ts","names":[],"sources":["../../../../src/cli/commands/files/get.ts"],"sourcesContent":[],"mappings":";;;cASa,iBAwBX,OAAA,CAxB0B;;;IAAf,WAAA,EAAA,MAwBX"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { baseArgs, createClientFromContext, resolveFileKeyValue } from "../../utils/options.js";
|
|
1
|
+
import { baseArgs, createClientFromContext, resolveFileKeyValue, resolveProviderValue } from "../../utils/options.js";
|
|
2
2
|
import { define } from "gunshi";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/commands/files/get.ts
|
|
@@ -7,21 +7,19 @@ const filesGetCommand = define({
|
|
|
7
7
|
description: "Get file metadata",
|
|
8
8
|
args: {
|
|
9
9
|
...baseArgs,
|
|
10
|
-
|
|
10
|
+
provider: {
|
|
11
11
|
type: "string",
|
|
12
|
-
description: "
|
|
12
|
+
description: "Storage provider"
|
|
13
13
|
},
|
|
14
|
-
"key
|
|
14
|
+
"file-key": {
|
|
15
15
|
type: "string",
|
|
16
|
-
description: "File key
|
|
16
|
+
description: "File key"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
run: async (ctx) => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
const response = await createClientFromContext(ctx).getFile(resolvedKey.fileKey);
|
|
20
|
+
const provider = resolveProviderValue(ctx.values["provider"]);
|
|
21
|
+
const resolvedKey = resolveFileKeyValue({ fileKey: ctx.values["file-key"] });
|
|
22
|
+
const response = await createClientFromContext(ctx).getFile(provider, resolvedKey.fileKey);
|
|
25
23
|
console.log(JSON.stringify(response, null, 2));
|
|
26
24
|
}
|
|
27
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","names":[],"sources":["../../../../src/cli/commands/files/get.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport {
|
|
1
|
+
{"version":3,"file":"get.js","names":[],"sources":["../../../../src/cli/commands/files/get.ts"],"sourcesContent":["import { define } from \"gunshi\";\n\nimport {\n baseArgs,\n createClientFromContext,\n resolveFileKeyValue,\n resolveProviderValue,\n} from \"../../utils/options.js\";\n\nexport const filesGetCommand = define({\n name: \"get\",\n description: \"Get file metadata\",\n args: {\n ...baseArgs,\n provider: {\n type: \"string\",\n description: \"Storage provider\",\n },\n \"file-key\": {\n type: \"string\",\n description: \"File key\",\n },\n },\n run: async (ctx) => {\n const provider = resolveProviderValue(ctx.values[\"provider\"] as string | undefined);\n const resolvedKey = resolveFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\n });\n\n const client = createClientFromContext(ctx);\n const response = await client.getFile(provider, resolvedKey.fileKey);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AASA,MAAa,kBAAkB,OAAO;CACpC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,qBAAqB,IAAI,OAAO,YAAkC;EACnF,MAAM,cAAc,oBAAoB,EACtC,SAAS,IAAI,OAAO,aACrB,CAAC;EAGF,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,QAAQ,UAAU,YAAY,QAAQ;AACpE,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi4 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/files/list.d.ts
|
|
4
|
-
declare const filesListCommand:
|
|
5
|
-
|
|
4
|
+
declare const filesListCommand: gunshi4.Command<{
|
|
5
|
+
provider: {
|
|
6
6
|
type: "string";
|
|
7
7
|
description: string;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
prefix: {
|
|
10
10
|
type: "string";
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","names":[],"sources":["../../../../src/cli/commands/files/list.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"list.d.ts","names":[],"sources":["../../../../src/cli/commands/files/list.ts"],"sourcesContent":[],"mappings":";;;cAIa,kBA+CX,OAAA,CA/C2B;;;IAAhB,WAAA,EAAA,MA+CX"}
|
|
@@ -7,13 +7,13 @@ const filesListCommand = define({
|
|
|
7
7
|
description: "List files",
|
|
8
8
|
args: {
|
|
9
9
|
...baseArgs,
|
|
10
|
-
|
|
10
|
+
provider: {
|
|
11
11
|
type: "string",
|
|
12
|
-
description: "
|
|
12
|
+
description: "Filter by storage provider"
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
prefix: {
|
|
15
15
|
type: "string",
|
|
16
|
-
description: "File key prefix
|
|
16
|
+
description: "File key prefix"
|
|
17
17
|
},
|
|
18
18
|
cursor: {
|
|
19
19
|
type: "string",
|
|
@@ -33,11 +33,9 @@ const filesListCommand = define({
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
run: async (ctx) => {
|
|
36
|
-
const prefix = resolvePrefixValue({
|
|
37
|
-
prefix: ctx.values["prefix"],
|
|
38
|
-
prefixParts: ctx.values["prefix-parts"]
|
|
39
|
-
});
|
|
36
|
+
const prefix = resolvePrefixValue({ prefix: ctx.values["prefix"] });
|
|
40
37
|
const response = await createClientFromContext(ctx).listFiles({
|
|
38
|
+
provider: ctx.values["provider"],
|
|
41
39
|
prefix,
|
|
42
40
|
cursor: ctx.values["cursor"],
|
|
43
41
|
pageSize: ctx.values["page-size"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","names":[],"sources":["../../../../src/cli/commands/files/list.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext, resolvePrefixValue } from \"../../utils/options.js\";\n\nexport const filesListCommand = define({\n name: \"list\",\n description: \"List files\",\n args: {\n ...baseArgs,\n
|
|
1
|
+
{"version":3,"file":"list.js","names":[],"sources":["../../../../src/cli/commands/files/list.ts"],"sourcesContent":["import { define } from \"gunshi\";\n\nimport { baseArgs, createClientFromContext, resolvePrefixValue } from \"../../utils/options.js\";\n\nexport const filesListCommand = define({\n name: \"list\",\n description: \"List files\",\n args: {\n ...baseArgs,\n provider: {\n type: \"string\",\n description: \"Filter by storage provider\",\n },\n prefix: {\n type: \"string\",\n description: \"File key prefix\",\n },\n cursor: {\n type: \"string\",\n description: \"Cursor for pagination\",\n },\n \"page-size\": {\n type: \"number\",\n description: \"Page size for pagination\",\n },\n status: {\n type: \"string\",\n description: \"Filter by status (ready, deleted)\",\n },\n \"uploader-id\": {\n type: \"string\",\n description: \"Filter by uploader id\",\n },\n },\n run: async (ctx) => {\n const prefix = resolvePrefixValue({\n prefix: ctx.values[\"prefix\"] as string | undefined,\n });\n\n const client = createClientFromContext(ctx);\n const response = await client.listFiles({\n provider: ctx.values[\"provider\"] as string | undefined,\n prefix,\n cursor: ctx.values[\"cursor\"] as string | undefined,\n pageSize: ctx.values[\"page-size\"] as number | undefined,\n status: ctx.values[\"status\"] as string | undefined,\n uploaderId: ctx.values[\"uploader-id\"] as string | undefined,\n });\n\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAIA,MAAa,mBAAmB,OAAO;CACrC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,QAAQ;GACN,MAAM;GACN,aAAa;GACd;EACD,QAAQ;GACN,MAAM;GACN,aAAa;GACd;EACD,aAAa;GACX,MAAM;GACN,aAAa;GACd;EACD,QAAQ;GACN,MAAM;GACN,aAAa;GACd;EACD,eAAe;GACb,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,SAAS,mBAAmB,EAChC,QAAQ,IAAI,OAAO,WACpB,CAAC;EAGF,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,UAAU;GACtC,UAAU,IAAI,OAAO;GACrB;GACA,QAAQ,IAAI,OAAO;GACnB,UAAU,IAAI,OAAO;GACrB,QAAQ,IAAI,OAAO;GACnB,YAAY,IAAI,OAAO;GACxB,CAAC;AAEF,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi5 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/files/update.d.ts
|
|
4
|
-
declare const filesUpdateCommand:
|
|
5
|
-
|
|
4
|
+
declare const filesUpdateCommand: gunshi5.Command<{
|
|
5
|
+
provider: {
|
|
6
6
|
type: "string";
|
|
7
7
|
description: string;
|
|
8
8
|
};
|
|
9
|
-
"key
|
|
9
|
+
"file-key": {
|
|
10
10
|
type: "string";
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","names":[],"sources":["../../../../src/cli/commands/files/update.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update.d.ts","names":[],"sources":["../../../../src/cli/commands/files/update.ts"],"sourcesContent":[],"mappings":";;;cAUa,oBA6DX,OAAA,CA7D6B;;;IAAlB,WAAA,EAAA,MA6DX"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { baseArgs, createClientFromContext, parseJsonValue, resolveFileKeyValue } from "../../utils/options.js";
|
|
1
|
+
import { baseArgs, createClientFromContext, parseJsonValue, resolveFileKeyValue, resolveProviderValue } from "../../utils/options.js";
|
|
2
2
|
import { define } from "gunshi";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/commands/files/update.ts
|
|
@@ -7,13 +7,13 @@ const filesUpdateCommand = define({
|
|
|
7
7
|
description: "Update file metadata",
|
|
8
8
|
args: {
|
|
9
9
|
...baseArgs,
|
|
10
|
-
|
|
10
|
+
provider: {
|
|
11
11
|
type: "string",
|
|
12
|
-
description: "
|
|
12
|
+
description: "Storage provider"
|
|
13
13
|
},
|
|
14
|
-
"key
|
|
14
|
+
"file-key": {
|
|
15
15
|
type: "string",
|
|
16
|
-
description: "File key
|
|
16
|
+
description: "File key"
|
|
17
17
|
},
|
|
18
18
|
filename: {
|
|
19
19
|
type: "string",
|
|
@@ -33,17 +33,15 @@ const filesUpdateCommand = define({
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
run: async (ctx) => {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
keyParts: ctx.values["key-parts"]
|
|
39
|
-
});
|
|
36
|
+
const provider = resolveProviderValue(ctx.values["provider"]);
|
|
37
|
+
const resolvedKey = resolveFileKeyValue({ fileKey: ctx.values["file-key"] });
|
|
40
38
|
const payload = {};
|
|
41
39
|
if (ctx.values["filename"]) payload["filename"] = ctx.values["filename"];
|
|
42
40
|
if (ctx.values["visibility"]) payload["visibility"] = ctx.values["visibility"];
|
|
43
41
|
if (ctx.values["tags"] !== void 0) payload["tags"] = parseJsonValue("tags", ctx.values["tags"]);
|
|
44
42
|
if (ctx.values["metadata"] !== void 0) payload["metadata"] = parseJsonValue("metadata", ctx.values["metadata"]);
|
|
45
43
|
if (Object.keys(payload).length === 0) throw new Error("Provide at least one field to update.");
|
|
46
|
-
const response = await createClientFromContext(ctx).updateFile(resolvedKey.fileKey, payload);
|
|
44
|
+
const response = await createClientFromContext(ctx).updateFile(provider, resolvedKey.fileKey, payload);
|
|
47
45
|
console.log(JSON.stringify(response, null, 2));
|
|
48
46
|
}
|
|
49
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","names":["payload: Record<string, unknown>"],"sources":["../../../../src/cli/commands/files/update.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport {\n baseArgs,\n createClientFromContext,\n parseJsonValue,\n resolveFileKeyValue,\n} from \"../../utils/options.js\";\n\nexport const filesUpdateCommand = define({\n name: \"update\",\n description: \"Update file metadata\",\n args: {\n ...baseArgs,\n
|
|
1
|
+
{"version":3,"file":"update.js","names":["payload: Record<string, unknown>"],"sources":["../../../../src/cli/commands/files/update.ts"],"sourcesContent":["import { define } from \"gunshi\";\n\nimport {\n baseArgs,\n createClientFromContext,\n parseJsonValue,\n resolveFileKeyValue,\n resolveProviderValue,\n} from \"../../utils/options.js\";\n\nexport const filesUpdateCommand = define({\n name: \"update\",\n description: \"Update file metadata\",\n args: {\n ...baseArgs,\n provider: {\n type: \"string\",\n description: \"Storage provider\",\n },\n \"file-key\": {\n type: \"string\",\n description: \"File key\",\n },\n filename: {\n type: \"string\",\n description: \"New filename\",\n },\n visibility: {\n type: \"string\",\n description: \"Visibility (private, public, unlisted)\",\n },\n tags: {\n type: \"string\",\n description: \"Tags JSON array or null\",\n },\n metadata: {\n type: \"string\",\n description: \"Metadata JSON object or null\",\n },\n },\n run: async (ctx) => {\n const provider = resolveProviderValue(ctx.values[\"provider\"] as string | undefined);\n const resolvedKey = resolveFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\n });\n\n const payload: Record<string, unknown> = {};\n if (ctx.values[\"filename\"]) {\n payload[\"filename\"] = ctx.values[\"filename\"] as string;\n }\n if (ctx.values[\"visibility\"]) {\n payload[\"visibility\"] = ctx.values[\"visibility\"] as string;\n }\n if (ctx.values[\"tags\"] !== undefined) {\n payload[\"tags\"] = parseJsonValue(\"tags\", ctx.values[\"tags\"] as string | undefined);\n }\n if (ctx.values[\"metadata\"] !== undefined) {\n payload[\"metadata\"] = parseJsonValue(\n \"metadata\",\n ctx.values[\"metadata\"] as string | undefined,\n );\n }\n\n if (Object.keys(payload).length === 0) {\n throw new Error(\"Provide at least one field to update.\");\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.updateFile(provider, resolvedKey.fileKey, payload);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAUA,MAAa,qBAAqB,OAAO;CACvC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACF;CACD,KAAK,OAAO,QAAQ;EAClB,MAAM,WAAW,qBAAqB,IAAI,OAAO,YAAkC;EACnF,MAAM,cAAc,oBAAoB,EACtC,SAAS,IAAI,OAAO,aACrB,CAAC;EAEF,MAAMA,UAAmC,EAAE;AAC3C,MAAI,IAAI,OAAO,YACb,SAAQ,cAAc,IAAI,OAAO;AAEnC,MAAI,IAAI,OAAO,cACb,SAAQ,gBAAgB,IAAI,OAAO;AAErC,MAAI,IAAI,OAAO,YAAY,OACzB,SAAQ,UAAU,eAAe,QAAQ,IAAI,OAAO,QAA8B;AAEpF,MAAI,IAAI,OAAO,gBAAgB,OAC7B,SAAQ,cAAc,eACpB,YACA,IAAI,OAAO,YACZ;AAGH,MAAI,OAAO,KAAK,QAAQ,CAAC,WAAW,EAClC,OAAM,IAAI,MAAM,wCAAwC;EAI1D,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,WAAW,UAAU,YAAY,SAAS,QAAQ;AAChF,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi6 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/files/upload.d.ts
|
|
4
|
-
declare const filesUploadCommand:
|
|
4
|
+
declare const filesUploadCommand: gunshi6.Command<{
|
|
5
5
|
file: {
|
|
6
6
|
type: "string";
|
|
7
7
|
short: string;
|
|
8
8
|
description: string;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
provider: {
|
|
11
11
|
type: "string";
|
|
12
12
|
description: string;
|
|
13
13
|
};
|
|
14
|
-
"key
|
|
14
|
+
"file-key": {
|
|
15
15
|
type: "string";
|
|
16
16
|
description: string;
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","names":[],"sources":["../../../../src/cli/commands/files/upload.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","names":[],"sources":["../../../../src/cli/commands/files/upload.ts"],"sourcesContent":[],"mappings":";;;cAea,oBAmGX,OAAA,CAnG6B;;;IAAlB,KAAA,EAAA,MAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { baseArgs, createClientFromContext, parseJsonValue, resolveFileKeyValue } from "../../utils/options.js";
|
|
2
|
-
import { define } from "gunshi";
|
|
1
|
+
import { baseArgs, createClientFromContext, parseJsonValue, resolveFileKeyValue, resolveProviderValue } from "../../utils/options.js";
|
|
3
2
|
import { promises } from "node:fs";
|
|
4
3
|
import path from "node:path";
|
|
4
|
+
import { define } from "gunshi";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/commands/files/upload.ts
|
|
7
7
|
const DEFAULT_CONTENT_TYPE = "application/octet-stream";
|
|
@@ -15,13 +15,13 @@ const filesUploadCommand = define({
|
|
|
15
15
|
short: "f",
|
|
16
16
|
description: "Path to file"
|
|
17
17
|
},
|
|
18
|
-
|
|
18
|
+
provider: {
|
|
19
19
|
type: "string",
|
|
20
|
-
description: "
|
|
20
|
+
description: "Storage provider"
|
|
21
21
|
},
|
|
22
|
-
"key
|
|
22
|
+
"file-key": {
|
|
23
23
|
type: "string",
|
|
24
|
-
description: "File key
|
|
24
|
+
description: "File key"
|
|
25
25
|
},
|
|
26
26
|
filename: {
|
|
27
27
|
type: "string",
|
|
@@ -58,17 +58,15 @@ const filesUploadCommand = define({
|
|
|
58
58
|
const fileBuffer = await promises.readFile(filePath);
|
|
59
59
|
const filename = ctx.values["filename"] ?? path.basename(filePath);
|
|
60
60
|
const contentType = ctx.values["content-type"] ?? DEFAULT_CONTENT_TYPE;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
keyParts: ctx.values["key-parts"]
|
|
64
|
-
});
|
|
61
|
+
const provider = resolveProviderValue(ctx.values["provider"]);
|
|
62
|
+
const resolvedKey = resolveFileKeyValue({ fileKey: ctx.values["file-key"] });
|
|
65
63
|
const checksum = parseJsonValue("checksum", ctx.values["checksum"]);
|
|
66
64
|
const tags = parseJsonValue("tags", ctx.values["tags"]);
|
|
67
65
|
const metadata = parseJsonValue("metadata", ctx.values["metadata"]);
|
|
68
66
|
const form = new FormData();
|
|
69
67
|
form.append("file", new File([fileBuffer], filename, { type: contentType }));
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
form.append("provider", provider);
|
|
69
|
+
form.append("fileKey", resolvedKey.fileKey);
|
|
72
70
|
if (checksum !== void 0) form.append("checksum", JSON.stringify(checksum));
|
|
73
71
|
if (tags !== void 0) form.append("tags", JSON.stringify(tags));
|
|
74
72
|
if (metadata !== void 0) form.append("metadata", JSON.stringify(metadata));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","names":["fs"],"sources":["../../../../src/cli/commands/files/upload.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"upload.js","names":["fs"],"sources":["../../../../src/cli/commands/files/upload.ts"],"sourcesContent":["import { promises as fs } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { define } from \"gunshi\";\n\nimport {\n baseArgs,\n createClientFromContext,\n parseJsonValue,\n resolveFileKeyValue,\n resolveProviderValue,\n} from \"../../utils/options.js\";\n\nconst DEFAULT_CONTENT_TYPE = \"application/octet-stream\";\n\nexport const filesUploadCommand = define({\n name: \"upload\",\n description: \"Upload a file via the /files endpoint\",\n args: {\n ...baseArgs,\n file: {\n type: \"string\",\n short: \"f\",\n description: \"Path to file\",\n },\n provider: {\n type: \"string\",\n description: \"Storage provider\",\n },\n \"file-key\": {\n type: \"string\",\n description: \"File key\",\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\",\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 fileBuffer = await fs.readFile(filePath);\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 const provider = resolveProviderValue(ctx.values[\"provider\"] as string | undefined);\n\n const resolvedKey = resolveFileKeyValue({\n fileKey: ctx.values[\"file-key\"] as string | undefined,\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 form = new FormData();\n form.append(\"file\", new File([fileBuffer], filename, { type: contentType }));\n form.append(\"provider\", provider);\n\n form.append(\"fileKey\", resolvedKey.fileKey);\n if (checksum !== undefined) {\n form.append(\"checksum\", JSON.stringify(checksum));\n }\n if (tags !== undefined) {\n form.append(\"tags\", JSON.stringify(tags));\n }\n if (metadata !== undefined) {\n form.append(\"metadata\", JSON.stringify(metadata));\n }\n\n const uploaderId = ctx.values[\"uploader-id\"] as string | undefined;\n if (uploaderId) {\n form.append(\"uploaderId\", uploaderId);\n }\n\n const visibility = ctx.values[\"visibility\"] as string | undefined;\n if (visibility) {\n form.append(\"visibility\", visibility);\n }\n\n if (ctx.values[\"filename\"]) {\n form.append(\"filename\", filename);\n }\n\n const client = createClientFromContext(ctx);\n const response = await client.createFile(form);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;;;AAaA,MAAM,uBAAuB;AAE7B,MAAa,qBAAqB,OAAO;CACvC,MAAM;CACN,aAAa;CACb,MAAM;EACJ,GAAG;EACH,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;GACd;EACD,UAAU;GACR,MAAM;GACN,aAAa;GACd;EACD,YAAY;GACV,MAAM;GACN,aAAa;GACd;EACD,UAAU;GACR,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;AAC5B,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,iBAAiB;EAGnC,MAAM,aAAa,MAAMA,SAAG,SAAS,SAAS;EAC9C,MAAM,WAAY,IAAI,OAAO,eAAsC,KAAK,SAAS,SAAS;EAC1F,MAAM,cAAe,IAAI,OAAO,mBAA0C;EAC1E,MAAM,WAAW,qBAAqB,IAAI,OAAO,YAAkC;EAEnF,MAAM,cAAc,oBAAoB,EACtC,SAAS,IAAI,OAAO,aACrB,CAAC;EAEF,MAAM,WAAW,eAAe,YAAY,IAAI,OAAO,YAAkC;EACzF,MAAM,OAAO,eAAe,QAAQ,IAAI,OAAO,QAA8B;EAC7E,MAAM,WAAW,eAAe,YAAY,IAAI,OAAO,YAAkC;EAEzF,MAAM,OAAO,IAAI,UAAU;AAC3B,OAAK,OAAO,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC,CAAC;AAC5E,OAAK,OAAO,YAAY,SAAS;AAEjC,OAAK,OAAO,WAAW,YAAY,QAAQ;AAC3C,MAAI,aAAa,OACf,MAAK,OAAO,YAAY,KAAK,UAAU,SAAS,CAAC;AAEnD,MAAI,SAAS,OACX,MAAK,OAAO,QAAQ,KAAK,UAAU,KAAK,CAAC;AAE3C,MAAI,aAAa,OACf,MAAK,OAAO,YAAY,KAAK,UAAU,SAAS,CAAC;EAGnD,MAAM,aAAa,IAAI,OAAO;AAC9B,MAAI,WACF,MAAK,OAAO,cAAc,WAAW;EAGvC,MAAM,aAAa,IAAI,OAAO;AAC9B,MAAI,WACF,MAAK,OAAO,cAAc,WAAW;AAGvC,MAAI,IAAI,OAAO,YACb,MAAK,OAAO,YAAY,SAAS;EAInC,MAAM,WAAW,MADF,wBAAwB,IAAI,CACb,WAAW,KAAK;AAC9C,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi7 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/uploads/abort.d.ts
|
|
4
|
-
declare const uploadsAbortCommand:
|
|
4
|
+
declare const uploadsAbortCommand: gunshi7.Command<{
|
|
5
5
|
"upload-id": {
|
|
6
6
|
type: "string";
|
|
7
7
|
short: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abort.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/abort.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abort.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/abort.ts"],"sourcesContent":[],"mappings":";;;cAIa,qBAqBX,OAAA,CArB8B;;;IAAnB,KAAA,EAAA,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abort.js","names":[],"sources":["../../../../src/cli/commands/uploads/abort.ts"],"sourcesContent":["import { define } from \"gunshi\";\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nexport const uploadsAbortCommand = define({\n name: \"abort\",\n description: \"Abort an upload\",\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.abortUpload(uploadId);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"abort.js","names":[],"sources":["../../../../src/cli/commands/uploads/abort.ts"],"sourcesContent":["import { define } from \"gunshi\";\n\nimport { baseArgs, createClientFromContext } from \"../../utils/options.js\";\n\nexport const uploadsAbortCommand = define({\n name: \"abort\",\n description: \"Abort an upload\",\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.abortUpload(uploadId);\n console.log(JSON.stringify(response, null, 2));\n },\n});\n"],"mappings":";;;;AAIA,MAAa,sBAAsB,OAAO;CACxC,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,YAAY,SAAS;AACnD,UAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;;CAEjD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi8 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/uploads/complete.d.ts
|
|
4
|
-
declare const uploadsCompleteCommand:
|
|
4
|
+
declare const uploadsCompleteCommand: gunshi8.Command<{
|
|
5
5
|
"upload-id": {
|
|
6
6
|
type: "string";
|
|
7
7
|
short: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/complete.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"complete.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/complete.ts"],"sourcesContent":[],"mappings":";;;cAIa,wBAkDX,OAAA,CAlDiC;;;IAAtB,KAAA,EAAA,MAAA"}
|
|
@@ -1 +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":";;;;
|
|
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\";\n\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":";;;;AAIA,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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as gunshi9 from "gunshi";
|
|
2
2
|
|
|
3
3
|
//#region src/cli/commands/uploads/content.d.ts
|
|
4
|
-
declare const uploadsContentCommand:
|
|
4
|
+
declare const uploadsContentCommand: gunshi9.Command<{
|
|
5
5
|
"upload-id": {
|
|
6
6
|
type: "string";
|
|
7
7
|
short: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"content.d.ts","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":[],"mappings":";;;cASa,uBA0CX,OAAA,CA1CgC;;;IAArB,KAAA,EAAA,MAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { baseArgs, createClientFromContext } from "../../utils/options.js";
|
|
2
|
-
import { define } from "gunshi";
|
|
3
2
|
import { createReadStream } from "node:fs";
|
|
3
|
+
import { define } from "gunshi";
|
|
4
4
|
import { Readable } from "node:stream";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/commands/uploads/content.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"content.js","names":[],"sources":["../../../../src/cli/commands/uploads/content.ts"],"sourcesContent":["import { createReadStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\n\nimport { define } from \"gunshi\";\n\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":";;;;;;AAOA,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"}
|