@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":"definition.d.ts","names":[],"sources":["../../src/definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"definition.d.ts","names":[],"sources":["../../src/definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;cAea,6CAAwB,mBAAA,sBAAA,iBAAA,CAAA,8BAAA;kBAAA;;;;;;;;;MAAxB,cAAA,EAAA,CAAA,OAmJH,iBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;MAAA,aAAA,EAAA,CAAA,OAAA,iBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;MAnJ2B,oBAAA,EAAA,CAAA,OAAA,iBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;MAAA,eAAA,EAAA,CAAA,OAAA,sBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB9B;;;;;;;;;sBAQmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBARnB;;;;;;;;;sBAQmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBARnB;;;;;;;;;sBAQmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MARnB,cAAA,EAAA,CAAA,OAAA,iBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;;MAQmB,oBAAA,EAAA,CAAA,OAAA,iBAAA,EAAA,GAAA,IAAA,UAAA,CAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KARnB;;IAQmB,GAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KARnB,EAAA;;IAQmB,QAAA,0CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAzBW,QAAA,EAAA,MAAA"}
|
package/dist/node/definition.js
CHANGED
|
@@ -7,7 +7,10 @@ import { defineFragment } from "@fragno-dev/core";
|
|
|
7
7
|
import { withDatabase } from "@fragno-dev/db";
|
|
8
8
|
|
|
9
9
|
//#region src/definition.ts
|
|
10
|
+
const buildMissingDeletedFileObjectKeyError = (input) => `Missing persisted objectKey for deleted file '${input.provider}:${input.fileKey}'. Refusing to reconstruct storage key from provider/fileKey.`;
|
|
11
|
+
const buildMissingCleanupObjectKeyError = (input) => `Missing storage cleanup objectKey for '${input.provider}:${input.fileKey}'. Refusing to reconstruct storage key from provider/fileKey.`;
|
|
10
12
|
const uploadFragmentDefinition = defineFragment("upload").extend(withDatabase(uploadSchema)).withDependencies(({ config }) => ({ resolvedConfig: resolveUploadFragmentConfig(config) })).provideHooks(({ defineHook, config }) => {
|
|
13
|
+
const resolvedConfig = resolveUploadFragmentConfig(config);
|
|
11
14
|
return {
|
|
12
15
|
onFileReady: defineHook(async function(payload) {
|
|
13
16
|
await config.onFileReady?.(payload, this.idempotencyKey);
|
|
@@ -15,8 +18,28 @@ const uploadFragmentDefinition = defineFragment("upload").extend(withDatabase(up
|
|
|
15
18
|
onUploadFailed: defineHook(async function(payload) {
|
|
16
19
|
await config.onUploadFailed?.(payload, this.idempotencyKey);
|
|
17
20
|
}),
|
|
21
|
+
cleanupStorageObject: defineHook(async function(payload) {
|
|
22
|
+
const objectKey = typeof payload.objectKey === "string" && payload.objectKey.length > 0 ? payload.objectKey : null;
|
|
23
|
+
if (!objectKey) throw new Error(buildMissingCleanupObjectKeyError({
|
|
24
|
+
provider: payload.provider,
|
|
25
|
+
fileKey: payload.fileKey
|
|
26
|
+
}));
|
|
27
|
+
await resolvedConfig.storage.deleteObject({ storageKey: objectKey });
|
|
28
|
+
}),
|
|
18
29
|
onFileDeleted: defineHook(async function(payload) {
|
|
19
|
-
await
|
|
30
|
+
const persistedObjectKey = (typeof payload.objectKey === "string" && payload.objectKey.length > 0 ? payload.objectKey : void 0) ?? await this.handlerTx().retrieve(({ forSchema }) => forSchema(uploadSchema).findFirst("file", (b) => b.whereIndex("idx_file_provider_key", (eb) => eb.and(eb("provider", "=", payload.provider), eb("key", "=", payload.fileKey))))).transformRetrieve(([file]) => {
|
|
31
|
+
if (file?.status === "deleted" && typeof file.objectKey === "string" && file.objectKey.length > 0) return file.objectKey;
|
|
32
|
+
return null;
|
|
33
|
+
}).execute();
|
|
34
|
+
if (!persistedObjectKey) throw new Error(buildMissingDeletedFileObjectKeyError({
|
|
35
|
+
provider: payload.provider,
|
|
36
|
+
fileKey: payload.fileKey
|
|
37
|
+
}));
|
|
38
|
+
await resolvedConfig.storage.deleteObject({ storageKey: persistedObjectKey });
|
|
39
|
+
await config.onFileDeleted?.({
|
|
40
|
+
...payload,
|
|
41
|
+
objectKey: persistedObjectKey
|
|
42
|
+
}, this.idempotencyKey);
|
|
20
43
|
}),
|
|
21
44
|
onUploadTimeout: defineHook(async function(payload) {
|
|
22
45
|
const now = /* @__PURE__ */ new Date();
|
|
@@ -35,8 +58,9 @@ const uploadFragmentDefinition = defineFragment("upload").extend(withDatabase(up
|
|
|
35
58
|
return {
|
|
36
59
|
shouldNotify: true,
|
|
37
60
|
payload: {
|
|
38
|
-
|
|
39
|
-
|
|
61
|
+
provider: upload.provider,
|
|
62
|
+
fileKey: upload.key,
|
|
63
|
+
objectKey: upload.objectKey,
|
|
40
64
|
uploadId: payload.uploadId,
|
|
41
65
|
uploaderId: upload.uploaderId,
|
|
42
66
|
sizeBytes: Number(upload.expectedSizeBytes),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","names":[],"sources":["../../src/definition.ts"],"sourcesContent":["import { defineFragment } from \"@fragno-dev/core\";\nimport { withDatabase } from \"@fragno-dev/db\";\nimport type { UploadFragmentConfig } from \"./config\";\nimport { resolveUploadFragmentConfig } from \"./config\";\nimport { uploadSchema } from \"./schema\";\nimport { createFileServices, createUploadServices } from \"./services\";\nimport type { UploadStatus } from \"./types\";\n\nexport const uploadFragmentDefinition = defineFragment<UploadFragmentConfig>(\"upload\")\n .extend(withDatabase(uploadSchema))\n .withDependencies(({ config }) => ({\n resolvedConfig: resolveUploadFragmentConfig(config),\n }))\n .provideHooks(({ defineHook, config }) => {\n return {\n onFileReady: defineHook(async function (payload) {\n await config.onFileReady?.(payload, this.idempotencyKey);\n }),\n onUploadFailed: defineHook(async function (payload) {\n await config.onUploadFailed?.(payload, this.idempotencyKey);\n }),\n onFileDeleted: defineHook(async function (payload) {\n await config.onFileDeleted?.(payload
|
|
1
|
+
{"version":3,"file":"definition.js","names":[],"sources":["../../src/definition.ts"],"sourcesContent":["import { defineFragment } from \"@fragno-dev/core\";\nimport { withDatabase } from \"@fragno-dev/db\";\n\nimport type { UploadFragmentConfig } from \"./config\";\nimport { resolveUploadFragmentConfig } from \"./config\";\nimport { uploadSchema } from \"./schema\";\nimport { createFileServices, createUploadServices } from \"./services\";\nimport type { UploadStatus } from \"./types\";\n\nconst buildMissingDeletedFileObjectKeyError = (input: { provider: string; fileKey: string }) =>\n `Missing persisted objectKey for deleted file '${input.provider}:${input.fileKey}'. Refusing to reconstruct storage key from provider/fileKey.`;\n\nconst buildMissingCleanupObjectKeyError = (input: { provider: string; fileKey: string }) =>\n `Missing storage cleanup objectKey for '${input.provider}:${input.fileKey}'. Refusing to reconstruct storage key from provider/fileKey.`;\n\nexport const uploadFragmentDefinition = defineFragment<UploadFragmentConfig>(\"upload\")\n .extend(withDatabase(uploadSchema))\n .withDependencies(({ config }) => ({\n resolvedConfig: resolveUploadFragmentConfig(config),\n }))\n .provideHooks(({ defineHook, config }) => {\n const resolvedConfig = resolveUploadFragmentConfig(config);\n\n return {\n onFileReady: defineHook(async function (payload) {\n await config.onFileReady?.(payload, this.idempotencyKey);\n }),\n onUploadFailed: defineHook(async function (payload) {\n await config.onUploadFailed?.(payload, this.idempotencyKey);\n }),\n cleanupStorageObject: defineHook(async function (payload) {\n const objectKey =\n typeof payload.objectKey === \"string\" && payload.objectKey.length > 0\n ? payload.objectKey\n : null;\n\n if (!objectKey) {\n throw new Error(\n buildMissingCleanupObjectKeyError({\n provider: payload.provider,\n fileKey: payload.fileKey,\n }),\n );\n }\n\n await resolvedConfig.storage.deleteObject({ storageKey: objectKey });\n }),\n onFileDeleted: defineHook(async function (payload) {\n const payloadObjectKey =\n typeof payload.objectKey === \"string\" && payload.objectKey.length > 0\n ? payload.objectKey\n : undefined;\n const persistedObjectKey =\n payloadObjectKey ??\n (await this.handlerTx()\n .retrieve(({ forSchema }) =>\n forSchema(uploadSchema).findFirst(\"file\", (b) =>\n b.whereIndex(\"idx_file_provider_key\", (eb) =>\n eb.and(eb(\"provider\", \"=\", payload.provider), eb(\"key\", \"=\", payload.fileKey)),\n ),\n ),\n )\n .transformRetrieve(([file]) => {\n if (\n file?.status === \"deleted\" &&\n typeof file.objectKey === \"string\" &&\n file.objectKey.length > 0\n ) {\n return file.objectKey;\n }\n return null;\n })\n .execute());\n\n if (!persistedObjectKey) {\n throw new Error(\n buildMissingDeletedFileObjectKeyError({\n provider: payload.provider,\n fileKey: payload.fileKey,\n }),\n );\n }\n\n await resolvedConfig.storage.deleteObject({ storageKey: persistedObjectKey });\n await config.onFileDeleted?.(\n {\n ...payload,\n objectKey: persistedObjectKey,\n },\n this.idempotencyKey,\n );\n }),\n onUploadTimeout: defineHook(async function (payload) {\n const now = new Date();\n\n if (!payload.uploadId) {\n return;\n }\n\n const result = await this.handlerTx()\n .retrieve(({ forSchema }) =>\n forSchema(uploadSchema).findFirst(\"upload\", (b) =>\n b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", payload.uploadId)),\n ),\n )\n .mutate(({ forSchema, retrieveResult: [upload] }) => {\n if (!upload) {\n return { shouldNotify: false as const };\n }\n\n const status = upload.status as UploadStatus;\n if (\n status === \"completed\" ||\n status === \"aborted\" ||\n status === \"failed\" ||\n status === \"expired\"\n ) {\n return { shouldNotify: false as const };\n }\n\n if (upload.expiresAt.getTime() > now.getTime()) {\n return { shouldNotify: false as const };\n }\n\n const uow = forSchema(uploadSchema);\n uow.update(\"upload\", upload.id, (b) =>\n b.set({\n status: \"expired\",\n updatedAt: now,\n errorCode: \"UPLOAD_EXPIRED\",\n errorMessage: \"Upload expired\",\n }),\n );\n\n return {\n shouldNotify: true as const,\n payload: {\n provider: upload.provider,\n fileKey: upload.key,\n objectKey: upload.objectKey,\n uploadId: payload.uploadId,\n uploaderId: upload.uploaderId,\n sizeBytes: Number(upload.expectedSizeBytes),\n contentType: upload.contentType,\n },\n };\n })\n .transform(({ mutateResult }) => mutateResult)\n .execute();\n\n if (result.shouldNotify) {\n await config.onUploadFailed?.(result.payload, this.idempotencyKey);\n }\n }),\n };\n })\n .providesBaseService(({ defineService, deps }) => {\n return defineService({\n ...createUploadServices(deps.resolvedConfig),\n ...createFileServices(deps.resolvedConfig),\n });\n })\n .build();\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/file-key.d.ts
|
|
2
|
+
type FileKey = string;
|
|
3
|
+
type FileKeyValidationResult = {
|
|
4
|
+
valid: true;
|
|
5
|
+
} | {
|
|
6
|
+
valid: false;
|
|
7
|
+
reason: "EMPTY" | "TOO_LONG" | "EMPTY_SEGMENT" | "DOT_SEGMENT" | "CONTROL_CHARACTERS";
|
|
8
|
+
};
|
|
9
|
+
type ValidateFileKeyOptions = {
|
|
10
|
+
maxBytes?: number;
|
|
11
|
+
};
|
|
12
|
+
declare const validateFileKey: (value: string, options?: ValidateFileKeyOptions) => FileKeyValidationResult;
|
|
13
|
+
declare const assertFileKey: (value: string, options?: ValidateFileKeyOptions) => FileKey;
|
|
14
|
+
declare const splitFileKey: (value: string) => readonly string[];
|
|
15
|
+
//# sourceMappingURL=file-key.d.ts.map
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { FileKey, FileKeyValidationResult, ValidateFileKeyOptions, assertFileKey, splitFileKey, validateFileKey };
|
|
19
|
+
//# sourceMappingURL=file-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-key.d.ts","names":[],"sources":["../../src/file-key.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;AAAA,KAEA,uBAAA,GAFO;EAEP,KAAA,EAAA,IAAA;AAOZ,CAAA,GAAY;EAuBC,KAAA,EAAA,KAAA;EA4BZ,MAAA,EAAA,OAAA,GAAA,UAAA,GAAA,eAAA,GAAA,aAAA,GAAA,oBAAA;;AAzBE,KA1BS,sBAAA,GA0BT;EAyBF,QAAA,CAAA,EAAA,MAAA;AAED,CAAA;AAMC,cApCY,eAoCZ,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAlCU,sBAkCV,EAAA,GAjCE,uBAiCF;AANsD,cAA1C,aAA0C,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,sBAAA,EAAA,GAAyB,OAAzB;AAAyB,cAQnE,YARmE,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,SAAA,MAAA,EAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/file-key.ts
|
|
2
|
+
const hasControlCharacters = (value) => {
|
|
3
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
4
|
+
const code = value.charCodeAt(index);
|
|
5
|
+
if (code <= 31 || code === 127) return true;
|
|
6
|
+
}
|
|
7
|
+
return false;
|
|
8
|
+
};
|
|
9
|
+
const utf8ByteLength = (value) => {
|
|
10
|
+
if (typeof Buffer !== "undefined") return Buffer.byteLength(value, "utf8");
|
|
11
|
+
return new TextEncoder().encode(value).byteLength;
|
|
12
|
+
};
|
|
13
|
+
const validateFileKey = (value, options = {}) => {
|
|
14
|
+
if (value.length === 0) return {
|
|
15
|
+
valid: false,
|
|
16
|
+
reason: "EMPTY"
|
|
17
|
+
};
|
|
18
|
+
if (hasControlCharacters(value)) return {
|
|
19
|
+
valid: false,
|
|
20
|
+
reason: "CONTROL_CHARACTERS"
|
|
21
|
+
};
|
|
22
|
+
const segments = value.split("/");
|
|
23
|
+
for (const segment of segments) {
|
|
24
|
+
if (segment.length === 0) return {
|
|
25
|
+
valid: false,
|
|
26
|
+
reason: "EMPTY_SEGMENT"
|
|
27
|
+
};
|
|
28
|
+
if (segment === "." || segment === "..") return {
|
|
29
|
+
valid: false,
|
|
30
|
+
reason: "DOT_SEGMENT"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (typeof options.maxBytes === "number" && utf8ByteLength(value) > options.maxBytes) return {
|
|
34
|
+
valid: false,
|
|
35
|
+
reason: "TOO_LONG"
|
|
36
|
+
};
|
|
37
|
+
return { valid: true };
|
|
38
|
+
};
|
|
39
|
+
const assertFileKey = (value, options) => {
|
|
40
|
+
if (!validateFileKey(value, options).valid) throw new Error("INVALID_FILE_KEY");
|
|
41
|
+
return value;
|
|
42
|
+
};
|
|
43
|
+
const splitFileKey = (value) => assertFileKey(value).split("/");
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { assertFileKey, splitFileKey, validateFileKey };
|
|
47
|
+
//# sourceMappingURL=file-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-key.js","names":[],"sources":["../../src/file-key.ts"],"sourcesContent":["export type FileKey = string;\n\nexport type FileKeyValidationResult =\n | { valid: true }\n | {\n valid: false;\n reason: \"EMPTY\" | \"TOO_LONG\" | \"EMPTY_SEGMENT\" | \"DOT_SEGMENT\" | \"CONTROL_CHARACTERS\";\n };\n\nexport type ValidateFileKeyOptions = {\n maxBytes?: number;\n};\n\nconst hasControlCharacters = (value: string): boolean => {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code <= 0x1f || code === 0x7f) {\n return true;\n }\n }\n\n return false;\n};\n\nconst utf8ByteLength = (value: string): number => {\n if (typeof Buffer !== \"undefined\") {\n return Buffer.byteLength(value, \"utf8\");\n }\n\n return new TextEncoder().encode(value).byteLength;\n};\n\nexport const validateFileKey = (\n value: string,\n options: ValidateFileKeyOptions = {},\n): FileKeyValidationResult => {\n if (value.length === 0) {\n return { valid: false, reason: \"EMPTY\" };\n }\n\n if (hasControlCharacters(value)) {\n return { valid: false, reason: \"CONTROL_CHARACTERS\" };\n }\n\n const segments = value.split(\"/\");\n for (const segment of segments) {\n if (segment.length === 0) {\n return { valid: false, reason: \"EMPTY_SEGMENT\" };\n }\n\n if (segment === \".\" || segment === \"..\") {\n return { valid: false, reason: \"DOT_SEGMENT\" };\n }\n }\n\n if (typeof options.maxBytes === \"number\" && utf8ByteLength(value) > options.maxBytes) {\n return { valid: false, reason: \"TOO_LONG\" };\n }\n\n return { valid: true };\n};\n\nexport const assertFileKey = (value: string, options?: ValidateFileKeyOptions): FileKey => {\n const result = validateFileKey(value, options);\n if (!result.valid) {\n throw new Error(\"INVALID_FILE_KEY\");\n }\n return value;\n};\n\nexport const splitFileKey = (value: string): readonly string[] => assertFileKey(value).split(\"/\");\n"],"mappings":";AAaA,MAAM,wBAAwB,UAA2B;AACvD,MAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;EACpD,MAAM,OAAO,MAAM,WAAW,MAAM;AACpC,MAAI,QAAQ,MAAQ,SAAS,IAC3B,QAAO;;AAIX,QAAO;;AAGT,MAAM,kBAAkB,UAA0B;AAChD,KAAI,OAAO,WAAW,YACpB,QAAO,OAAO,WAAW,OAAO,OAAO;AAGzC,QAAO,IAAI,aAAa,CAAC,OAAO,MAAM,CAAC;;AAGzC,MAAa,mBACX,OACA,UAAkC,EAAE,KACR;AAC5B,KAAI,MAAM,WAAW,EACnB,QAAO;EAAE,OAAO;EAAO,QAAQ;EAAS;AAG1C,KAAI,qBAAqB,MAAM,CAC7B,QAAO;EAAE,OAAO;EAAO,QAAQ;EAAsB;CAGvD,MAAM,WAAW,MAAM,MAAM,IAAI;AACjC,MAAK,MAAM,WAAW,UAAU;AAC9B,MAAI,QAAQ,WAAW,EACrB,QAAO;GAAE,OAAO;GAAO,QAAQ;GAAiB;AAGlD,MAAI,YAAY,OAAO,YAAY,KACjC,QAAO;GAAE,OAAO;GAAO,QAAQ;GAAe;;AAIlD,KAAI,OAAO,QAAQ,aAAa,YAAY,eAAe,MAAM,GAAG,QAAQ,SAC1E,QAAO;EAAE,OAAO;EAAO,QAAQ;EAAY;AAG7C,QAAO,EAAE,OAAO,MAAM;;AAGxB,MAAa,iBAAiB,OAAe,YAA8C;AAEzF,KAAI,CADW,gBAAgB,OAAO,QAAQ,CAClC,MACV,OAAM,IAAI,MAAM,mBAAmB;AAErC,QAAO;;AAGT,MAAa,gBAAgB,UAAqC,cAAc,MAAM,CAAC,MAAM,IAAI"}
|