@fragno-dev/upload 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +16 -0
- package/README.md +43 -0
- package/bin/run.js +5 -0
- package/dist/browser/client/clients.js +49 -0
- package/dist/browser/client/clients.js.map +1 -0
- package/dist/browser/client/helpers.d.ts +51 -0
- package/dist/browser/client/helpers.d.ts.map +1 -0
- package/dist/browser/client/helpers.js +242 -0
- package/dist/browser/client/helpers.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js +354 -0
- package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js +14 -0
- package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js +17 -0
- package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js +62 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js +6 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js +50 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js +99 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js +11 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js +25 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js.map +1 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js +24 -0
- package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/definition.js +49 -0
- package/dist/browser/client/packages/fragment-upload/src/definition.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts +7 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.d.ts.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.js +28 -0
- package/dist/browser/client/packages/fragment-upload/src/keys.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js +98 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/files.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/index.js +9 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/index.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js +41 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/shared.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js +186 -0
- package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/schema.js +8 -0
- package/dist/browser/client/packages/fragment-upload/src/schema.js.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts +9 -0
- package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts.map +1 -0
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts +31 -0
- package/dist/browser/client/packages/fragment-upload/src/types.d.ts.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/error.js +48 -0
- package/dist/browser/client/packages/fragno/dist/api/error.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/path.js +76 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/path.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js +81 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/route.js +10 -0
- package/dist/browser/client/packages/fragno/dist/api/internal/route.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/request-input-context.js +185 -0
- package/dist/browser/client/packages/fragno/dist/api/request-input-context.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/request-output-context.js +119 -0
- package/dist/browser/client/packages/fragno/dist/api/request-output-context.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/api/route.js +17 -0
- package/dist/browser/client/packages/fragno/dist/api/route.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client-error.js +92 -0
- package/dist/browser/client/packages/fragno/dist/client/client-error.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client.js +495 -0
- package/dist/browser/client/packages/fragno/dist/client/client.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js +120 -0
- package/dist/browser/client/packages/fragno/dist/client/client.svelte.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js +36 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js +139 -0
- package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/react.js +70 -0
- package/dist/browser/client/packages/fragno/dist/client/react.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/solid.js +108 -0
- package/dist/browser/client/packages/fragno/dist/client/solid.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js +96 -0
- package/dist/browser/client/packages/fragno/dist/client/vanilla.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/client/vue.js +120 -0
- package/dist/browser/client/packages/fragno/dist/client/vue.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/async.js +40 -0
- package/dist/browser/client/packages/fragno/dist/util/async.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/content-type.js +49 -0
- package/dist/browser/client/packages/fragno/dist/util/content-type.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/nanostores.js +31 -0
- package/dist/browser/client/packages/fragno/dist/util/nanostores.js.map +1 -0
- package/dist/browser/client/packages/fragno/dist/util/ssr.js +18 -0
- package/dist/browser/client/packages/fragno/dist/util/ssr.js.map +1 -0
- package/dist/browser/client/react.d.ts +295 -0
- package/dist/browser/client/react.d.ts.map +1 -0
- package/dist/browser/client/react.js +11 -0
- package/dist/browser/client/react.js.map +1 -0
- package/dist/browser/client/solid.d.ts +303 -0
- package/dist/browser/client/solid.d.ts.map +1 -0
- package/dist/browser/client/solid.js +11 -0
- package/dist/browser/client/solid.js.map +1 -0
- package/dist/browser/client/svelte.d.ts +295 -0
- package/dist/browser/client/svelte.d.ts.map +1 -0
- package/dist/browser/client/svelte.js +11 -0
- package/dist/browser/client/svelte.js.map +1 -0
- package/dist/browser/client/vanilla.d.ts +296 -0
- package/dist/browser/client/vanilla.d.ts.map +1 -0
- package/dist/browser/client/vanilla.js +11 -0
- package/dist/browser/client/vanilla.js.map +1 -0
- package/dist/browser/client/vue.d.ts +295 -0
- package/dist/browser/client/vue.d.ts.map +1 -0
- package/dist/browser/client/vue.js +11 -0
- package/dist/browser/client/vue.js.map +1 -0
- package/dist/browser/index-BdjKPO4J.d.ts +177 -0
- package/dist/browser/index-BdjKPO4J.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/browser/src-vdNJUbjT.js +1982 -0
- package/dist/browser/src-vdNJUbjT.js.map +1 -0
- package/dist/cli/commands/files/delete.d.ts +40 -0
- package/dist/cli/commands/files/delete.d.ts.map +1 -0
- package/dist/cli/commands/files/delete.js +31 -0
- package/dist/cli/commands/files/delete.js.map +1 -0
- package/dist/cli/commands/files/download-url.d.ts +40 -0
- package/dist/cli/commands/files/download-url.d.ts.map +1 -0
- package/dist/cli/commands/files/download-url.js +31 -0
- package/dist/cli/commands/files/download-url.js.map +1 -0
- package/dist/cli/commands/files/download.d.ts +49 -0
- package/dist/cli/commands/files/download.d.ts.map +1 -0
- package/dist/cli/commands/files/download.js +65 -0
- package/dist/cli/commands/files/download.js.map +1 -0
- package/dist/cli/commands/files/get.d.ts +40 -0
- package/dist/cli/commands/files/get.d.ts.map +1 -0
- package/dist/cli/commands/files/get.js +31 -0
- package/dist/cli/commands/files/get.js.map +1 -0
- package/dist/cli/commands/files/list.d.ts +56 -0
- package/dist/cli/commands/files/list.d.ts.map +1 -0
- package/dist/cli/commands/files/list.js +53 -0
- package/dist/cli/commands/files/list.js.map +1 -0
- package/dist/cli/commands/files/update.d.ts +56 -0
- package/dist/cli/commands/files/update.d.ts.map +1 -0
- package/dist/cli/commands/files/update.js +53 -0
- package/dist/cli/commands/files/update.js.map +1 -0
- package/dist/cli/commands/files/upload.d.ts +73 -0
- package/dist/cli/commands/files/upload.d.ts.map +1 -0
- package/dist/cli/commands/files/upload.js +87 -0
- package/dist/cli/commands/files/upload.js.map +1 -0
- package/dist/cli/commands/uploads/abort.d.ts +37 -0
- package/dist/cli/commands/uploads/abort.d.ts.map +1 -0
- package/dist/cli/commands/uploads/abort.js +26 -0
- package/dist/cli/commands/uploads/abort.js.map +1 -0
- package/dist/cli/commands/uploads/complete.d.ts +41 -0
- package/dist/cli/commands/uploads/complete.d.ts.map +1 -0
- package/dist/cli/commands/uploads/complete.js +45 -0
- package/dist/cli/commands/uploads/complete.js.map +1 -0
- package/dist/cli/commands/uploads/content.d.ts +46 -0
- package/dist/cli/commands/uploads/content.d.ts.map +1 -0
- package/dist/cli/commands/uploads/content.js +43 -0
- package/dist/cli/commands/uploads/content.js.map +1 -0
- package/dist/cli/commands/uploads/create.d.ts +72 -0
- package/dist/cli/commands/uploads/create.d.ts.map +1 -0
- package/dist/cli/commands/uploads/create.js +84 -0
- package/dist/cli/commands/uploads/create.js.map +1 -0
- package/dist/cli/commands/uploads/get.d.ts +37 -0
- package/dist/cli/commands/uploads/get.d.ts.map +1 -0
- package/dist/cli/commands/uploads/get.js +26 -0
- package/dist/cli/commands/uploads/get.js.map +1 -0
- package/dist/cli/commands/uploads/parts-complete.d.ts +41 -0
- package/dist/cli/commands/uploads/parts-complete.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-complete.js +44 -0
- package/dist/cli/commands/uploads/parts-complete.js.map +1 -0
- package/dist/cli/commands/uploads/parts-list.d.ts +37 -0
- package/dist/cli/commands/uploads/parts-list.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-list.js +26 -0
- package/dist/cli/commands/uploads/parts-list.js.map +1 -0
- package/dist/cli/commands/uploads/parts-urls.d.ts +46 -0
- package/dist/cli/commands/uploads/parts-urls.d.ts.map +1 -0
- package/dist/cli/commands/uploads/parts-urls.js +57 -0
- package/dist/cli/commands/uploads/parts-urls.js.map +1 -0
- package/dist/cli/commands/uploads/progress.d.ts +45 -0
- package/dist/cli/commands/uploads/progress.d.ts.map +1 -0
- package/dist/cli/commands/uploads/progress.js +40 -0
- package/dist/cli/commands/uploads/progress.js.map +1 -0
- package/dist/cli/commands/uploads/transfer.d.ts +73 -0
- package/dist/cli/commands/uploads/transfer.d.ts.map +1 -0
- package/dist/cli/commands/uploads/transfer.js +170 -0
- package/dist/cli/commands/uploads/transfer.js.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +198 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/keys.js +32 -0
- package/dist/cli/keys.js.map +1 -0
- package/dist/cli/utils/client.js +174 -0
- package/dist/cli/utils/client.js.map +1 -0
- package/dist/cli/utils/options.js +135 -0
- package/dist/cli/utils/options.js.map +1 -0
- package/dist/node/cli/commands/files/delete.d.ts +40 -0
- package/dist/node/cli/commands/files/delete.d.ts.map +1 -0
- package/dist/node/cli/commands/files/delete.js +31 -0
- package/dist/node/cli/commands/files/delete.js.map +1 -0
- package/dist/node/cli/commands/files/download-url.d.ts +40 -0
- package/dist/node/cli/commands/files/download-url.d.ts.map +1 -0
- package/dist/node/cli/commands/files/download-url.js +31 -0
- package/dist/node/cli/commands/files/download-url.js.map +1 -0
- package/dist/node/cli/commands/files/download.d.ts +49 -0
- package/dist/node/cli/commands/files/download.d.ts.map +1 -0
- package/dist/node/cli/commands/files/download.js +65 -0
- package/dist/node/cli/commands/files/download.js.map +1 -0
- package/dist/node/cli/commands/files/get.d.ts +40 -0
- package/dist/node/cli/commands/files/get.d.ts.map +1 -0
- package/dist/node/cli/commands/files/get.js +31 -0
- package/dist/node/cli/commands/files/get.js.map +1 -0
- package/dist/node/cli/commands/files/list.d.ts +56 -0
- package/dist/node/cli/commands/files/list.d.ts.map +1 -0
- package/dist/node/cli/commands/files/list.js +53 -0
- package/dist/node/cli/commands/files/list.js.map +1 -0
- package/dist/node/cli/commands/files/update.d.ts +56 -0
- package/dist/node/cli/commands/files/update.d.ts.map +1 -0
- package/dist/node/cli/commands/files/update.js +53 -0
- package/dist/node/cli/commands/files/update.js.map +1 -0
- package/dist/node/cli/commands/files/upload.d.ts +73 -0
- package/dist/node/cli/commands/files/upload.d.ts.map +1 -0
- package/dist/node/cli/commands/files/upload.js +87 -0
- package/dist/node/cli/commands/files/upload.js.map +1 -0
- package/dist/node/cli/commands/uploads/abort.d.ts +37 -0
- package/dist/node/cli/commands/uploads/abort.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/abort.js +26 -0
- package/dist/node/cli/commands/uploads/abort.js.map +1 -0
- package/dist/node/cli/commands/uploads/complete.d.ts +41 -0
- package/dist/node/cli/commands/uploads/complete.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/complete.js +45 -0
- package/dist/node/cli/commands/uploads/complete.js.map +1 -0
- package/dist/node/cli/commands/uploads/content.d.ts +46 -0
- package/dist/node/cli/commands/uploads/content.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/content.js +43 -0
- package/dist/node/cli/commands/uploads/content.js.map +1 -0
- package/dist/node/cli/commands/uploads/create.d.ts +72 -0
- package/dist/node/cli/commands/uploads/create.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/create.js +84 -0
- package/dist/node/cli/commands/uploads/create.js.map +1 -0
- package/dist/node/cli/commands/uploads/get.d.ts +37 -0
- package/dist/node/cli/commands/uploads/get.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/get.js +26 -0
- package/dist/node/cli/commands/uploads/get.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-complete.d.ts +41 -0
- package/dist/node/cli/commands/uploads/parts-complete.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-complete.js +44 -0
- package/dist/node/cli/commands/uploads/parts-complete.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-list.d.ts +37 -0
- package/dist/node/cli/commands/uploads/parts-list.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-list.js +26 -0
- package/dist/node/cli/commands/uploads/parts-list.js.map +1 -0
- package/dist/node/cli/commands/uploads/parts-urls.d.ts +46 -0
- package/dist/node/cli/commands/uploads/parts-urls.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/parts-urls.js +57 -0
- package/dist/node/cli/commands/uploads/parts-urls.js.map +1 -0
- package/dist/node/cli/commands/uploads/progress.d.ts +45 -0
- package/dist/node/cli/commands/uploads/progress.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/progress.js +40 -0
- package/dist/node/cli/commands/uploads/progress.js.map +1 -0
- package/dist/node/cli/commands/uploads/transfer.d.ts +73 -0
- package/dist/node/cli/commands/uploads/transfer.d.ts.map +1 -0
- package/dist/node/cli/commands/uploads/transfer.js +170 -0
- package/dist/node/cli/commands/uploads/transfer.js.map +1 -0
- package/dist/node/cli/index.d.ts +27 -0
- package/dist/node/cli/index.d.ts.map +1 -0
- package/dist/node/cli/index.js +198 -0
- package/dist/node/cli/index.js.map +1 -0
- package/dist/node/cli/utils/client.js +174 -0
- package/dist/node/cli/utils/client.js.map +1 -0
- package/dist/node/cli/utils/options.js +135 -0
- package/dist/node/cli/utils/options.js.map +1 -0
- package/dist/node/client/clients.d.ts +295 -0
- package/dist/node/client/clients.d.ts.map +1 -0
- package/dist/node/client/clients.js +49 -0
- package/dist/node/client/clients.js.map +1 -0
- package/dist/node/client/helpers.d.ts +51 -0
- package/dist/node/client/helpers.d.ts.map +1 -0
- package/dist/node/client/helpers.js +242 -0
- package/dist/node/client/helpers.js.map +1 -0
- package/dist/node/client/react.d.ts +295 -0
- package/dist/node/client/react.d.ts.map +1 -0
- package/dist/node/client/react.js +11 -0
- package/dist/node/client/react.js.map +1 -0
- package/dist/node/client/solid.d.ts +303 -0
- package/dist/node/client/solid.d.ts.map +1 -0
- package/dist/node/client/solid.js +11 -0
- package/dist/node/client/solid.js.map +1 -0
- package/dist/node/client/svelte.d.ts +295 -0
- package/dist/node/client/svelte.d.ts.map +1 -0
- package/dist/node/client/svelte.js +11 -0
- package/dist/node/client/svelte.js.map +1 -0
- package/dist/node/client/vanilla.d.ts +296 -0
- package/dist/node/client/vanilla.d.ts.map +1 -0
- package/dist/node/client/vanilla.js +11 -0
- package/dist/node/client/vanilla.js.map +1 -0
- package/dist/node/client/vue.d.ts +295 -0
- package/dist/node/client/vue.d.ts.map +1 -0
- package/dist/node/client/vue.js +11 -0
- package/dist/node/client/vue.js.map +1 -0
- package/dist/node/config.d.ts +41 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +26 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/definition.d.ts +829 -0
- package/dist/node/definition.d.ts.map +1 -0
- package/dist/node/definition.js +59 -0
- package/dist/node/definition.js.map +1 -0
- package/dist/node/index.d.ts +1246 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +19 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/keys.d.ts +12 -0
- package/dist/node/keys.d.ts.map +1 -0
- package/dist/node/keys.js +63 -0
- package/dist/node/keys.js.map +1 -0
- package/dist/node/routes/files.js +450 -0
- package/dist/node/routes/files.js.map +1 -0
- package/dist/node/routes/index.d.ts +2023 -0
- package/dist/node/routes/index.d.ts.map +1 -0
- package/dist/node/routes/index.js +9 -0
- package/dist/node/routes/index.js.map +1 -0
- package/dist/node/routes/shared.js +66 -0
- package/dist/node/routes/shared.js.map +1 -0
- package/dist/node/routes/uploads.js +454 -0
- package/dist/node/routes/uploads.js.map +1 -0
- package/dist/node/schema.d.ts +14 -0
- package/dist/node/schema.d.ts.map +1 -0
- package/dist/node/schema.js +30 -0
- package/dist/node/schema.js.map +1 -0
- package/dist/node/services/files.d.ts +20 -0
- package/dist/node/services/files.d.ts.map +1 -0
- package/dist/node/services/files.js +93 -0
- package/dist/node/services/files.js.map +1 -0
- package/dist/node/services/helpers.js +36 -0
- package/dist/node/services/helpers.js.map +1 -0
- package/dist/node/services/index.js +4 -0
- package/dist/node/services/uploads.d.ts +50 -0
- package/dist/node/services/uploads.d.ts.map +1 -0
- package/dist/node/services/uploads.js +358 -0
- package/dist/node/services/uploads.js.map +1 -0
- package/dist/node/storage/fs.d.ts +16 -0
- package/dist/node/storage/fs.d.ts.map +1 -0
- package/dist/node/storage/fs.js +94 -0
- package/dist/node/storage/fs.js.map +1 -0
- package/dist/node/storage/r2.d.ts +103 -0
- package/dist/node/storage/r2.d.ts.map +1 -0
- package/dist/node/storage/r2.js +23 -0
- package/dist/node/storage/r2.js.map +1 -0
- package/dist/node/storage/s3.d.ts +44 -0
- package/dist/node/storage/s3.d.ts.map +1 -0
- package/dist/node/storage/s3.js +398 -0
- package/dist/node/storage/s3.js.map +1 -0
- package/dist/node/storage/types.d.ts +118 -0
- package/dist/node/storage/types.d.ts.map +1 -0
- package/dist/node/types.d.ts +32 -0
- package/dist/node/types.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as _fragno_dev_db382 from "@fragno-dev/db";
|
|
2
|
+
import * as _fragno_dev_db_schema855 from "@fragno-dev/db/schema";
|
|
3
|
+
|
|
4
|
+
//#region src/schema.d.ts
|
|
5
|
+
declare const uploadSchema: _fragno_dev_db_schema855.Schema<{
|
|
6
|
+
file: _fragno_dev_db_schema855.Table<Record<string, _fragno_dev_db_schema855.AnyColumn> & Record<"id", _fragno_dev_db_schema855.IdColumn<"varchar(30)", string | _fragno_dev_db_schema855.FragnoId | null, _fragno_dev_db_schema855.FragnoId>> & Record<"fileKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"uploaderId", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"filename", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"sizeBytes", _fragno_dev_db_schema855.Column<"bigint", bigint, bigint>> & Record<"contentType", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"checksum", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"visibility", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"tags", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"metadata", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"status", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageProvider", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"createdAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"updatedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"completedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date | null>> & Record<"deletedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date | null>> & Record<"errorCode", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"errorMessage", _fragno_dev_db_schema855.Column<"string", string | null, string | null>>, Record<string, _fragno_dev_db_schema855.AnyRelation>, Record<string, _fragno_dev_db_schema855.Index<_fragno_dev_db_schema855.AnyColumn[], readonly string[]>> & Record<"idx_file_key", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey"]>> & Record<"idx_file_key_status", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>, _fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey", "status"]>> & Record<"idx_file_key_uploaderId", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>, _fragno_dev_db_schema855.Column<"string", string | null, string | null>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey", "uploaderId"]>> & Record<"idx_file_key_status_uploaderId", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>, _fragno_dev_db_schema855.Column<"string", string, string>, _fragno_dev_db_schema855.Column<"string", string | null, string | null>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey", "status", "uploaderId"]>> & Record<"idx_file_uploaderId", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string | null, string | null>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["uploaderId"]>> & Record<"idx_file_createdAt", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["createdAt"]>> & Record<"idx_file_status_createdAt", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>, _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["status", "createdAt"]>>>;
|
|
7
|
+
upload: _fragno_dev_db_schema855.Table<Record<string, _fragno_dev_db_schema855.AnyColumn> & Record<"id", _fragno_dev_db_schema855.IdColumn<"varchar(30)", string | _fragno_dev_db_schema855.FragnoId | null, _fragno_dev_db_schema855.FragnoId>> & Record<"fileKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"uploaderId", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"filename", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"expectedSizeBytes", _fragno_dev_db_schema855.Column<"bigint", bigint, bigint>> & Record<"contentType", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"checksum", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"visibility", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"tags", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"metadata", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"status", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"strategy", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageProvider", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageUploadId", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"uploadUrl", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"uploadHeaders", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"bytesUploaded", _fragno_dev_db_schema855.Column<"bigint", bigint | null, bigint>> & Record<"partsUploaded", _fragno_dev_db_schema855.Column<"integer", number | null, number>> & Record<"partSizeBytes", _fragno_dev_db_schema855.Column<"integer", number | null, number | null>> & Record<"expiresAt", _fragno_dev_db_schema855.Column<"timestamp", _fragno_dev_db382.DbNow | Date, Date>> & Record<"createdAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"updatedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"completedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date | null>> & Record<"errorCode", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"errorMessage", _fragno_dev_db_schema855.Column<"string", string | null, string | null>>, Record<string, _fragno_dev_db_schema855.AnyRelation>, Record<string, _fragno_dev_db_schema855.Index<_fragno_dev_db_schema855.AnyColumn[], readonly string[]>> & Record<"idx_upload_file_key", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey"]>> & Record<"idx_upload_status", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["status"]>> & Record<"idx_upload_expiresAt", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"timestamp", _fragno_dev_db382.DbNow | Date, Date>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["expiresAt"]>>>;
|
|
8
|
+
upload_part: _fragno_dev_db_schema855.Table<Record<string, _fragno_dev_db_schema855.AnyColumn> & Record<"id", _fragno_dev_db_schema855.IdColumn<"varchar(30)", string | _fragno_dev_db_schema855.FragnoId | null, _fragno_dev_db_schema855.FragnoId>> & Record<"uploadId", _fragno_dev_db_schema855.Column<"bigint", string | bigint | _fragno_dev_db_schema855.FragnoId | _fragno_dev_db_schema855.FragnoReference, _fragno_dev_db_schema855.FragnoReference>> & Record<"partNumber", _fragno_dev_db_schema855.Column<"integer", number, number>> & Record<"etag", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"sizeBytes", _fragno_dev_db_schema855.Column<"bigint", bigint, bigint>> & Record<"createdAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>>, Record<string, _fragno_dev_db_schema855.AnyRelation> & Record<"upload", _fragno_dev_db_schema855.Relation<"one", _fragno_dev_db_schema855.Table<Record<string, _fragno_dev_db_schema855.AnyColumn> & Record<"id", _fragno_dev_db_schema855.IdColumn<"varchar(30)", string | _fragno_dev_db_schema855.FragnoId | null, _fragno_dev_db_schema855.FragnoId>> & Record<"fileKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"uploaderId", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"filename", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"expectedSizeBytes", _fragno_dev_db_schema855.Column<"bigint", bigint, bigint>> & Record<"contentType", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"checksum", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"visibility", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"tags", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"metadata", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"status", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"strategy", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageProvider", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageKey", _fragno_dev_db_schema855.Column<"string", string, string>> & Record<"storageUploadId", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"uploadUrl", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"uploadHeaders", _fragno_dev_db_schema855.Column<"json", unknown, unknown>> & Record<"bytesUploaded", _fragno_dev_db_schema855.Column<"bigint", bigint | null, bigint>> & Record<"partsUploaded", _fragno_dev_db_schema855.Column<"integer", number | null, number>> & Record<"partSizeBytes", _fragno_dev_db_schema855.Column<"integer", number | null, number | null>> & Record<"expiresAt", _fragno_dev_db_schema855.Column<"timestamp", _fragno_dev_db382.DbNow | Date, Date>> & Record<"createdAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"updatedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date>> & Record<"completedAt", _fragno_dev_db_schema855.Column<"timestamp", (_fragno_dev_db382.DbNow | Date) | null, Date | null>> & Record<"errorCode", _fragno_dev_db_schema855.Column<"string", string | null, string | null>> & Record<"errorMessage", _fragno_dev_db_schema855.Column<"string", string | null, string | null>>, Record<string, _fragno_dev_db_schema855.AnyRelation>, Record<string, _fragno_dev_db_schema855.Index<_fragno_dev_db_schema855.AnyColumn[], readonly string[]>> & Record<"idx_upload_file_key", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["fileKey"]>> & Record<"idx_upload_status", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"string", string, string>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["status"]>> & Record<"idx_upload_expiresAt", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"timestamp", _fragno_dev_db382.DbNow | Date, Date>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["expiresAt"]>>>>>, Record<string, _fragno_dev_db_schema855.Index<_fragno_dev_db_schema855.AnyColumn[], readonly string[]>> & Record<"idx_upload_part_upload", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"bigint", string | bigint | _fragno_dev_db_schema855.FragnoId | _fragno_dev_db_schema855.FragnoReference, _fragno_dev_db_schema855.FragnoReference>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["uploadId"]>> & Record<"idx_upload_part_number", _fragno_dev_db_schema855.Index<readonly [_fragno_dev_db_schema855.Column<"bigint", string | bigint | _fragno_dev_db_schema855.FragnoId | _fragno_dev_db_schema855.FragnoReference, _fragno_dev_db_schema855.FragnoReference>, _fragno_dev_db_schema855.Column<"integer", number, number>] & _fragno_dev_db_schema855.AnyColumn[], readonly ["uploadId", "partNumber"]>>>;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { uploadSchema };
|
|
14
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","names":[],"sources":["../../src/schema.ts"],"sourcesContent":[],"mappings":";;;;cAEa,uCAAY;sDAgGvB,wBAAA,CAAA,SAAA;;;AAhGF,CAAA,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { column, idColumn, referenceColumn, schema } from "@fragno-dev/db/schema";
|
|
2
|
+
|
|
3
|
+
//#region src/schema.ts
|
|
4
|
+
const uploadSchema = schema("upload", (s) => {
|
|
5
|
+
return s.addTable("file", (t) => {
|
|
6
|
+
return t.addColumn("id", idColumn()).addColumn("fileKey", column("string")).addColumn("uploaderId", column("string").nullable()).addColumn("filename", column("string")).addColumn("sizeBytes", column("bigint")).addColumn("contentType", column("string")).addColumn("checksum", column("json").nullable()).addColumn("visibility", column("string")).addColumn("tags", column("json").nullable()).addColumn("metadata", column("json").nullable()).addColumn("status", column("string")).addColumn("storageProvider", column("string")).addColumn("storageKey", column("string")).addColumn("createdAt", column("timestamp").defaultTo((b) => b.now())).addColumn("updatedAt", column("timestamp").defaultTo((b) => b.now())).addColumn("completedAt", column("timestamp").nullable()).addColumn("deletedAt", column("timestamp").nullable()).addColumn("errorCode", column("string").nullable()).addColumn("errorMessage", column("string").nullable()).createIndex("idx_file_key", ["fileKey"], { unique: true }).createIndex("idx_file_key_status", ["fileKey", "status"]).createIndex("idx_file_key_uploaderId", ["fileKey", "uploaderId"]).createIndex("idx_file_key_status_uploaderId", [
|
|
7
|
+
"fileKey",
|
|
8
|
+
"status",
|
|
9
|
+
"uploaderId"
|
|
10
|
+
]).createIndex("idx_file_uploaderId", ["uploaderId"]).createIndex("idx_file_createdAt", ["createdAt"]).createIndex("idx_file_status_createdAt", ["status", "createdAt"]);
|
|
11
|
+
}).addTable("upload", (t) => {
|
|
12
|
+
return t.addColumn("id", idColumn()).addColumn("fileKey", column("string")).addColumn("uploaderId", column("string").nullable()).addColumn("filename", column("string")).addColumn("expectedSizeBytes", column("bigint")).addColumn("contentType", column("string")).addColumn("checksum", column("json").nullable()).addColumn("visibility", column("string")).addColumn("tags", column("json").nullable()).addColumn("metadata", column("json").nullable()).addColumn("status", column("string")).addColumn("strategy", column("string")).addColumn("storageProvider", column("string")).addColumn("storageKey", column("string")).addColumn("storageUploadId", column("string").nullable()).addColumn("uploadUrl", column("string").nullable()).addColumn("uploadHeaders", column("json").nullable()).addColumn("bytesUploaded", column("bigint").defaultTo(0n)).addColumn("partsUploaded", column("integer").defaultTo(0)).addColumn("partSizeBytes", column("integer").nullable()).addColumn("expiresAt", column("timestamp")).addColumn("createdAt", column("timestamp").defaultTo((b) => b.now())).addColumn("updatedAt", column("timestamp").defaultTo((b) => b.now())).addColumn("completedAt", column("timestamp").nullable()).addColumn("errorCode", column("string").nullable()).addColumn("errorMessage", column("string").nullable()).createIndex("idx_upload_file_key", ["fileKey"]).createIndex("idx_upload_status", ["status"]).createIndex("idx_upload_expiresAt", ["expiresAt"]);
|
|
13
|
+
}).addTable("upload_part", (t) => {
|
|
14
|
+
return t.addColumn("id", idColumn()).addColumn("uploadId", referenceColumn()).addColumn("partNumber", column("integer")).addColumn("etag", column("string")).addColumn("sizeBytes", column("bigint")).addColumn("createdAt", column("timestamp").defaultTo((b) => b.now())).createIndex("idx_upload_part_upload", ["uploadId"]).createIndex("idx_upload_part_number", ["uploadId", "partNumber"], { unique: true });
|
|
15
|
+
}).addReference("upload", {
|
|
16
|
+
type: "one",
|
|
17
|
+
from: {
|
|
18
|
+
table: "upload_part",
|
|
19
|
+
column: "uploadId"
|
|
20
|
+
},
|
|
21
|
+
to: {
|
|
22
|
+
table: "upload",
|
|
23
|
+
column: "id"
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { uploadSchema };
|
|
30
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../src/schema.ts"],"sourcesContent":["import { column, idColumn, referenceColumn, schema } from \"@fragno-dev/db/schema\";\n\nexport const uploadSchema = schema(\"upload\", (s) => {\n return s\n .addTable(\"file\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"fileKey\", column(\"string\"))\n .addColumn(\"uploaderId\", column(\"string\").nullable())\n .addColumn(\"filename\", column(\"string\"))\n .addColumn(\"sizeBytes\", column(\"bigint\"))\n .addColumn(\"contentType\", column(\"string\"))\n .addColumn(\"checksum\", column(\"json\").nullable())\n .addColumn(\"visibility\", column(\"string\"))\n .addColumn(\"tags\", column(\"json\").nullable())\n .addColumn(\"metadata\", column(\"json\").nullable())\n .addColumn(\"status\", column(\"string\"))\n .addColumn(\"storageProvider\", column(\"string\"))\n .addColumn(\"storageKey\", column(\"string\"))\n .addColumn(\n \"createdAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\n \"updatedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\"completedAt\", column(\"timestamp\").nullable())\n .addColumn(\"deletedAt\", column(\"timestamp\").nullable())\n .addColumn(\"errorCode\", column(\"string\").nullable())\n .addColumn(\"errorMessage\", column(\"string\").nullable())\n .createIndex(\"idx_file_key\", [\"fileKey\"], { unique: true })\n .createIndex(\"idx_file_key_status\", [\"fileKey\", \"status\"])\n .createIndex(\"idx_file_key_uploaderId\", [\"fileKey\", \"uploaderId\"])\n .createIndex(\"idx_file_key_status_uploaderId\", [\"fileKey\", \"status\", \"uploaderId\"])\n .createIndex(\"idx_file_uploaderId\", [\"uploaderId\"])\n .createIndex(\"idx_file_createdAt\", [\"createdAt\"])\n .createIndex(\"idx_file_status_createdAt\", [\"status\", \"createdAt\"]);\n })\n .addTable(\"upload\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"fileKey\", column(\"string\"))\n .addColumn(\"uploaderId\", column(\"string\").nullable())\n .addColumn(\"filename\", column(\"string\"))\n .addColumn(\"expectedSizeBytes\", column(\"bigint\"))\n .addColumn(\"contentType\", column(\"string\"))\n .addColumn(\"checksum\", column(\"json\").nullable())\n .addColumn(\"visibility\", column(\"string\"))\n .addColumn(\"tags\", column(\"json\").nullable())\n .addColumn(\"metadata\", column(\"json\").nullable())\n .addColumn(\"status\", column(\"string\"))\n .addColumn(\"strategy\", column(\"string\"))\n .addColumn(\"storageProvider\", column(\"string\"))\n .addColumn(\"storageKey\", column(\"string\"))\n .addColumn(\"storageUploadId\", column(\"string\").nullable())\n .addColumn(\"uploadUrl\", column(\"string\").nullable())\n .addColumn(\"uploadHeaders\", column(\"json\").nullable())\n .addColumn(\"bytesUploaded\", column(\"bigint\").defaultTo(0n))\n .addColumn(\"partsUploaded\", column(\"integer\").defaultTo(0))\n .addColumn(\"partSizeBytes\", column(\"integer\").nullable())\n .addColumn(\"expiresAt\", column(\"timestamp\"))\n .addColumn(\n \"createdAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\n \"updatedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\"completedAt\", column(\"timestamp\").nullable())\n .addColumn(\"errorCode\", column(\"string\").nullable())\n .addColumn(\"errorMessage\", column(\"string\").nullable())\n .createIndex(\"idx_upload_file_key\", [\"fileKey\"])\n .createIndex(\"idx_upload_status\", [\"status\"])\n .createIndex(\"idx_upload_expiresAt\", [\"expiresAt\"]);\n })\n .addTable(\"upload_part\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"uploadId\", referenceColumn())\n .addColumn(\"partNumber\", column(\"integer\"))\n .addColumn(\"etag\", column(\"string\"))\n .addColumn(\"sizeBytes\", column(\"bigint\"))\n .addColumn(\n \"createdAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .createIndex(\"idx_upload_part_upload\", [\"uploadId\"])\n .createIndex(\"idx_upload_part_number\", [\"uploadId\", \"partNumber\"], {\n unique: true,\n });\n })\n .addReference(\"upload\", {\n type: \"one\",\n from: { table: \"upload_part\", column: \"uploadId\" },\n to: { table: \"upload\", column: \"id\" },\n });\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FileStatus } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/services/files.d.ts
|
|
4
|
+
|
|
5
|
+
type ListFilesInput = {
|
|
6
|
+
prefix?: string;
|
|
7
|
+
pageSize: number;
|
|
8
|
+
cursor?: string;
|
|
9
|
+
status?: FileStatus;
|
|
10
|
+
uploaderId?: string;
|
|
11
|
+
};
|
|
12
|
+
type UpdateFileInput = {
|
|
13
|
+
filename?: string;
|
|
14
|
+
visibility?: string;
|
|
15
|
+
tags?: string[] | null;
|
|
16
|
+
metadata?: Record<string, unknown> | null;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { ListFilesInput, UpdateFileInput };
|
|
20
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","names":[],"sources":["../../../src/services/files.ts"],"sourcesContent":[],"mappings":";;;;AAkBY,KARA,cAAA,GAQe;;;;WAJhB;;;KAIC,eAAA;;;;aAIC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { uploadSchema } from "../schema.js";
|
|
2
|
+
|
|
3
|
+
//#region src/services/files.ts
|
|
4
|
+
const createFileServices = (_config) => {
|
|
5
|
+
return {
|
|
6
|
+
findFileByKey: function(fileKey) {
|
|
7
|
+
return this.serviceTx(uploadSchema).retrieve((uow) => uow.findFirst("file", (b) => b.whereIndex("idx_file_key", (eb) => eb("fileKey", "=", fileKey)))).transformRetrieve(([file]) => file ?? null).build();
|
|
8
|
+
},
|
|
9
|
+
getFileByKey: function(fileKey) {
|
|
10
|
+
return this.serviceTx(uploadSchema).retrieve((uow) => uow.findFirst("file", (b) => b.whereIndex("idx_file_key", (eb) => eb("fileKey", "=", fileKey)))).transformRetrieve(([file]) => {
|
|
11
|
+
if (!file) throw new Error("FILE_NOT_FOUND");
|
|
12
|
+
return file;
|
|
13
|
+
}).build();
|
|
14
|
+
},
|
|
15
|
+
listFiles: function(input) {
|
|
16
|
+
return this.serviceTx(uploadSchema).retrieve((uow) => uow.findWithCursor("file", (b) => {
|
|
17
|
+
const prefix = input.prefix ?? "";
|
|
18
|
+
if (input.status && input.uploaderId) {
|
|
19
|
+
const status = input.status;
|
|
20
|
+
const uploaderId = input.uploaderId;
|
|
21
|
+
const ordered$1 = b.whereIndex("idx_file_key_status_uploaderId", (eb) => eb.and(eb("fileKey", "starts with", prefix), eb("status", "=", status), eb("uploaderId", "=", uploaderId))).orderByIndex("idx_file_key_status_uploaderId", "asc").pageSize(input.pageSize);
|
|
22
|
+
return input.cursor ? ordered$1.after(input.cursor) : ordered$1;
|
|
23
|
+
}
|
|
24
|
+
if (input.status) {
|
|
25
|
+
const status = input.status;
|
|
26
|
+
const ordered$1 = b.whereIndex("idx_file_key_status", (eb) => eb.and(eb("fileKey", "starts with", prefix), eb("status", "=", status))).orderByIndex("idx_file_key_status", "asc").pageSize(input.pageSize);
|
|
27
|
+
return input.cursor ? ordered$1.after(input.cursor) : ordered$1;
|
|
28
|
+
}
|
|
29
|
+
if (input.uploaderId) {
|
|
30
|
+
const uploaderId = input.uploaderId;
|
|
31
|
+
const ordered$1 = b.whereIndex("idx_file_key_uploaderId", (eb) => eb.and(eb("fileKey", "starts with", prefix), eb("uploaderId", "=", uploaderId))).orderByIndex("idx_file_key_uploaderId", "asc").pageSize(input.pageSize);
|
|
32
|
+
return input.cursor ? ordered$1.after(input.cursor) : ordered$1;
|
|
33
|
+
}
|
|
34
|
+
const ordered = b.whereIndex("idx_file_key", (eb) => eb("fileKey", "starts with", prefix)).orderByIndex("idx_file_key", "asc").pageSize(input.pageSize);
|
|
35
|
+
return input.cursor ? ordered.after(input.cursor) : ordered;
|
|
36
|
+
})).transformRetrieve(([result]) => result).build();
|
|
37
|
+
},
|
|
38
|
+
updateFile: function(fileKey, input) {
|
|
39
|
+
const now = /* @__PURE__ */ new Date();
|
|
40
|
+
return this.serviceTx(uploadSchema).retrieve((uow) => uow.findFirst("file", (b) => b.whereIndex("idx_file_key", (eb) => eb("fileKey", "=", fileKey)))).mutate(({ uow, retrieveResult: [file] }) => {
|
|
41
|
+
if (!file) throw new Error("FILE_NOT_FOUND");
|
|
42
|
+
if (file.status === "deleted") throw new Error("UPLOAD_INVALID_STATE");
|
|
43
|
+
const updatedFile = {
|
|
44
|
+
...file,
|
|
45
|
+
filename: input.filename ?? file.filename,
|
|
46
|
+
visibility: input.visibility ?? file.visibility,
|
|
47
|
+
tags: input.tags ?? file.tags,
|
|
48
|
+
metadata: input.metadata ?? file.metadata,
|
|
49
|
+
updatedAt: now
|
|
50
|
+
};
|
|
51
|
+
uow.update("file", file.id, (b) => b.set({
|
|
52
|
+
filename: updatedFile.filename,
|
|
53
|
+
visibility: updatedFile.visibility,
|
|
54
|
+
tags: updatedFile.tags,
|
|
55
|
+
metadata: updatedFile.metadata,
|
|
56
|
+
updatedAt: updatedFile.updatedAt
|
|
57
|
+
}).check());
|
|
58
|
+
return updatedFile;
|
|
59
|
+
}).build();
|
|
60
|
+
},
|
|
61
|
+
markFileDeleted: function(fileKey, fileKeyParts, uploadId) {
|
|
62
|
+
const now = /* @__PURE__ */ new Date();
|
|
63
|
+
return this.serviceTx(uploadSchema).retrieve((uow) => uow.findFirst("file", (b) => b.whereIndex("idx_file_key", (eb) => eb("fileKey", "=", fileKey)))).mutate(({ uow, retrieveResult: [file] }) => {
|
|
64
|
+
if (!file) throw new Error("FILE_NOT_FOUND");
|
|
65
|
+
if (file.status === "deleted") return file;
|
|
66
|
+
const updatedFile = {
|
|
67
|
+
...file,
|
|
68
|
+
status: "deleted",
|
|
69
|
+
updatedAt: now,
|
|
70
|
+
deletedAt: now
|
|
71
|
+
};
|
|
72
|
+
uow.update("file", file.id, (b) => b.set({
|
|
73
|
+
status: updatedFile.status,
|
|
74
|
+
updatedAt: updatedFile.updatedAt,
|
|
75
|
+
deletedAt: updatedFile.deletedAt
|
|
76
|
+
}).check());
|
|
77
|
+
uow.triggerHook("onFileDeleted", {
|
|
78
|
+
fileKey: file.fileKey,
|
|
79
|
+
fileKeyParts,
|
|
80
|
+
uploadId,
|
|
81
|
+
uploaderId: file.uploaderId,
|
|
82
|
+
sizeBytes: Number(file.sizeBytes),
|
|
83
|
+
contentType: file.contentType
|
|
84
|
+
});
|
|
85
|
+
return updatedFile;
|
|
86
|
+
}).build();
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
export { createFileServices };
|
|
93
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","names":["ordered"],"sources":["../../../src/services/files.ts"],"sourcesContent":["import type { DatabaseServiceContext } from \"@fragno-dev/db\";\nimport type {\n FileHookPayload,\n UploadFragmentResolvedConfig,\n UploadTimeoutPayload,\n} from \"../config\";\nimport type { FileKeyEncoded, FileKeyParts } from \"../keys\";\nimport { uploadSchema } from \"../schema\";\nimport type { FileStatus } from \"../types\";\n\nexport type ListFilesInput = {\n prefix?: string;\n pageSize: number;\n cursor?: string;\n status?: FileStatus;\n uploaderId?: string;\n};\n\nexport type UpdateFileInput = {\n filename?: string;\n visibility?: string;\n tags?: string[] | null;\n metadata?: Record<string, unknown> | null;\n};\n\ntype UploadHooks = {\n onFileReady: (payload: FileHookPayload) => void | Promise<void>;\n onUploadFailed: (payload: FileHookPayload) => void | Promise<void>;\n onFileDeleted: (payload: FileHookPayload) => void | Promise<void>;\n onUploadTimeout: (payload: UploadTimeoutPayload) => void | Promise<void>;\n};\n\ntype UploadServiceContext = DatabaseServiceContext<UploadHooks>;\n\nexport const createFileServices = (_config: UploadFragmentResolvedConfig) => {\n return {\n findFileByKey: function (this: UploadServiceContext, fileKey: FileKeyEncoded) {\n return this.serviceTx(uploadSchema)\n .retrieve((uow) =>\n uow.findFirst(\"file\", (b) =>\n b.whereIndex(\"idx_file_key\", (eb) => eb(\"fileKey\", \"=\", fileKey)),\n ),\n )\n .transformRetrieve(([file]) => file ?? null)\n .build();\n },\n\n getFileByKey: function (this: UploadServiceContext, fileKey: FileKeyEncoded) {\n return this.serviceTx(uploadSchema)\n .retrieve((uow) =>\n uow.findFirst(\"file\", (b) =>\n b.whereIndex(\"idx_file_key\", (eb) => eb(\"fileKey\", \"=\", fileKey)),\n ),\n )\n .transformRetrieve(([file]) => {\n if (!file) {\n throw new Error(\"FILE_NOT_FOUND\");\n }\n return file;\n })\n .build();\n },\n\n listFiles: function (this: UploadServiceContext, input: ListFilesInput) {\n return this.serviceTx(uploadSchema)\n .retrieve((uow) =>\n uow.findWithCursor(\"file\", (b) => {\n const prefix = input.prefix ?? \"\";\n if (input.status && input.uploaderId) {\n const status = input.status;\n const uploaderId = input.uploaderId;\n const query = b.whereIndex(\"idx_file_key_status_uploaderId\", (eb) =>\n eb.and(\n eb(\"fileKey\", \"starts with\", prefix),\n eb(\"status\", \"=\", status),\n eb(\"uploaderId\", \"=\", uploaderId),\n ),\n );\n const ordered = query\n .orderByIndex(\"idx_file_key_status_uploaderId\", \"asc\")\n .pageSize(input.pageSize);\n return input.cursor ? ordered.after(input.cursor) : ordered;\n }\n\n if (input.status) {\n const status = input.status;\n const query = b.whereIndex(\"idx_file_key_status\", (eb) =>\n eb.and(eb(\"fileKey\", \"starts with\", prefix), eb(\"status\", \"=\", status)),\n );\n const ordered = query\n .orderByIndex(\"idx_file_key_status\", \"asc\")\n .pageSize(input.pageSize);\n return input.cursor ? ordered.after(input.cursor) : ordered;\n }\n\n if (input.uploaderId) {\n const uploaderId = input.uploaderId;\n const query = b.whereIndex(\"idx_file_key_uploaderId\", (eb) =>\n eb.and(eb(\"fileKey\", \"starts with\", prefix), eb(\"uploaderId\", \"=\", uploaderId)),\n );\n const ordered = query\n .orderByIndex(\"idx_file_key_uploaderId\", \"asc\")\n .pageSize(input.pageSize);\n return input.cursor ? ordered.after(input.cursor) : ordered;\n }\n\n const query = b.whereIndex(\"idx_file_key\", (eb) =>\n eb(\"fileKey\", \"starts with\", prefix),\n );\n const ordered = query.orderByIndex(\"idx_file_key\", \"asc\").pageSize(input.pageSize);\n return input.cursor ? ordered.after(input.cursor) : ordered;\n }),\n )\n .transformRetrieve(([result]) => result)\n .build();\n },\n\n updateFile: function (\n this: UploadServiceContext,\n fileKey: FileKeyEncoded,\n input: UpdateFileInput,\n ) {\n const now = new Date();\n return this.serviceTx(uploadSchema)\n .retrieve((uow) =>\n uow.findFirst(\"file\", (b) =>\n b.whereIndex(\"idx_file_key\", (eb) => eb(\"fileKey\", \"=\", fileKey)),\n ),\n )\n .mutate(({ uow, retrieveResult: [file] }) => {\n if (!file) {\n throw new Error(\"FILE_NOT_FOUND\");\n }\n\n if (file.status === \"deleted\") {\n throw new Error(\"UPLOAD_INVALID_STATE\");\n }\n\n const updatedFile = {\n ...file,\n filename: input.filename ?? file.filename,\n visibility: (input.visibility ?? file.visibility) as string,\n tags: input.tags ?? file.tags,\n metadata: input.metadata ?? file.metadata,\n updatedAt: now,\n };\n\n uow.update(\"file\", file.id, (b) =>\n b\n .set({\n filename: updatedFile.filename,\n visibility: updatedFile.visibility,\n tags: updatedFile.tags,\n metadata: updatedFile.metadata,\n updatedAt: updatedFile.updatedAt,\n })\n .check(),\n );\n\n return updatedFile;\n })\n .build();\n },\n\n markFileDeleted: function (\n this: UploadServiceContext,\n fileKey: FileKeyEncoded,\n fileKeyParts: FileKeyParts,\n uploadId?: string,\n ) {\n const now = new Date();\n return this.serviceTx(uploadSchema)\n .retrieve((uow) =>\n uow.findFirst(\"file\", (b) =>\n b.whereIndex(\"idx_file_key\", (eb) => eb(\"fileKey\", \"=\", fileKey)),\n ),\n )\n .mutate(({ uow, retrieveResult: [file] }) => {\n if (!file) {\n throw new Error(\"FILE_NOT_FOUND\");\n }\n\n if (file.status === \"deleted\") {\n return file;\n }\n\n const updatedFile = {\n ...file,\n status: \"deleted\" as FileStatus,\n updatedAt: now,\n deletedAt: now,\n };\n\n uow.update(\"file\", file.id, (b) =>\n b\n .set({\n status: updatedFile.status,\n updatedAt: updatedFile.updatedAt,\n deletedAt: updatedFile.deletedAt,\n })\n .check(),\n );\n\n uow.triggerHook(\"onFileDeleted\", {\n fileKey: file.fileKey,\n fileKeyParts,\n uploadId,\n uploaderId: file.uploaderId,\n sizeBytes: Number(file.sizeBytes),\n contentType: file.contentType,\n });\n\n return updatedFile;\n })\n .build();\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { decodeFileKey, encodeFileKey } from "../keys.js";
|
|
2
|
+
|
|
3
|
+
//#region src/services/helpers.ts
|
|
4
|
+
const resolveFileKeyInput = (input) => {
|
|
5
|
+
const { keyParts, fileKey } = input;
|
|
6
|
+
if ((!keyParts || keyParts.length === 0) && (!fileKey || fileKey.length === 0)) throw new Error("INVALID_FILE_KEY");
|
|
7
|
+
if (keyParts && fileKey) {
|
|
8
|
+
let decoded;
|
|
9
|
+
try {
|
|
10
|
+
decoded = decodeFileKey(fileKey);
|
|
11
|
+
} catch {
|
|
12
|
+
throw new Error("INVALID_FILE_KEY");
|
|
13
|
+
}
|
|
14
|
+
if (encodeFileKey(keyParts) !== fileKey) throw new Error("INVALID_FILE_KEY");
|
|
15
|
+
return {
|
|
16
|
+
fileKey,
|
|
17
|
+
fileKeyParts: decoded
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (keyParts) return {
|
|
21
|
+
fileKey: encodeFileKey(keyParts),
|
|
22
|
+
fileKeyParts: keyParts
|
|
23
|
+
};
|
|
24
|
+
try {
|
|
25
|
+
return {
|
|
26
|
+
fileKey,
|
|
27
|
+
fileKeyParts: decodeFileKey(fileKey)
|
|
28
|
+
};
|
|
29
|
+
} catch {
|
|
30
|
+
throw new Error("INVALID_FILE_KEY");
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { resolveFileKeyInput };
|
|
36
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["decoded: FileKeyParts"],"sources":["../../../src/services/helpers.ts"],"sourcesContent":["import { decodeFileKey, encodeFileKey, type FileKeyEncoded, type FileKeyParts } from \"../keys\";\n\nexport type FileKeyInput = {\n keyParts?: FileKeyParts;\n fileKey?: FileKeyEncoded;\n};\n\nexport const resolveFileKeyInput = (\n input: FileKeyInput,\n): {\n fileKey: FileKeyEncoded;\n fileKeyParts: FileKeyParts;\n} => {\n const { keyParts, fileKey } = input;\n\n if ((!keyParts || keyParts.length === 0) && (!fileKey || fileKey.length === 0)) {\n throw new Error(\"INVALID_FILE_KEY\");\n }\n\n if (keyParts && fileKey) {\n let decoded: FileKeyParts;\n try {\n decoded = decodeFileKey(fileKey);\n } catch {\n throw new Error(\"INVALID_FILE_KEY\");\n }\n\n const encoded = encodeFileKey(keyParts);\n if (encoded !== fileKey) {\n throw new Error(\"INVALID_FILE_KEY\");\n }\n\n return { fileKey, fileKeyParts: decoded };\n }\n\n if (keyParts) {\n return { fileKey: encodeFileKey(keyParts), fileKeyParts: keyParts };\n }\n\n try {\n return { fileKey: fileKey!, fileKeyParts: decodeFileKey(fileKey!) };\n } catch {\n throw new Error(\"INVALID_FILE_KEY\");\n }\n};\n"],"mappings":";;;AAOA,MAAa,uBACX,UAIG;CACH,MAAM,EAAE,UAAU,YAAY;AAE9B,MAAK,CAAC,YAAY,SAAS,WAAW,OAAO,CAAC,WAAW,QAAQ,WAAW,GAC1E,OAAM,IAAI,MAAM,mBAAmB;AAGrC,KAAI,YAAY,SAAS;EACvB,IAAIA;AACJ,MAAI;AACF,aAAU,cAAc,QAAQ;UAC1B;AACN,SAAM,IAAI,MAAM,mBAAmB;;AAIrC,MADgB,cAAc,SAAS,KACvB,QACd,OAAM,IAAI,MAAM,mBAAmB;AAGrC,SAAO;GAAE;GAAS,cAAc;GAAS;;AAG3C,KAAI,SACF,QAAO;EAAE,SAAS,cAAc,SAAS;EAAE,cAAc;EAAU;AAGrE,KAAI;AACF,SAAO;GAAW;GAAU,cAAc,cAAc,QAAS;GAAE;SAC7D;AACN,QAAM,IAAI,MAAM,mBAAmB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { FileKeyEncoded, FileKeyParts } from "../keys.js";
|
|
2
|
+
import { UploadChecksum } from "../storage/types.js";
|
|
3
|
+
import { FileVisibility, UploadStrategy } from "../types.js";
|
|
4
|
+
|
|
5
|
+
//#region src/services/uploads.d.ts
|
|
6
|
+
type CreateUploadInput = {
|
|
7
|
+
keyParts?: FileKeyParts;
|
|
8
|
+
fileKey?: FileKeyEncoded;
|
|
9
|
+
filename: string;
|
|
10
|
+
sizeBytes: number;
|
|
11
|
+
contentType: string;
|
|
12
|
+
checksum?: UploadChecksum | null;
|
|
13
|
+
tags?: string[];
|
|
14
|
+
visibility?: FileVisibility;
|
|
15
|
+
uploaderId?: string;
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
};
|
|
18
|
+
type UploadProgressInput = {
|
|
19
|
+
bytesUploaded?: number;
|
|
20
|
+
partsUploaded?: number;
|
|
21
|
+
};
|
|
22
|
+
type CompletePartsInput = {
|
|
23
|
+
parts: {
|
|
24
|
+
partNumber: number;
|
|
25
|
+
etag: string;
|
|
26
|
+
sizeBytes: number;
|
|
27
|
+
}[];
|
|
28
|
+
};
|
|
29
|
+
type CreateUploadResult = {
|
|
30
|
+
uploadId: string;
|
|
31
|
+
fileKey: FileKeyEncoded;
|
|
32
|
+
fileKeyParts: FileKeyParts;
|
|
33
|
+
status: "created" | "in_progress";
|
|
34
|
+
strategy: UploadStrategy;
|
|
35
|
+
expiresAt: Date;
|
|
36
|
+
upload: {
|
|
37
|
+
mode: "single" | "multipart";
|
|
38
|
+
transport: "direct" | "proxy";
|
|
39
|
+
uploadUrl?: string;
|
|
40
|
+
uploadHeaders?: Record<string, string>;
|
|
41
|
+
partSizeBytes?: number;
|
|
42
|
+
maxParts?: number;
|
|
43
|
+
partsEndpoint?: string;
|
|
44
|
+
completeEndpoint: string;
|
|
45
|
+
contentEndpoint?: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { CompletePartsInput, CreateUploadInput, CreateUploadResult, UploadProgressInput };
|
|
50
|
+
//# sourceMappingURL=uploads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploads.d.ts","names":[],"sources":["../../../src/services/uploads.ts"],"sourcesContent":[],"mappings":";;;;;AAcY,KAAA,iBAAA,GAAiB;EAAA,QAAA,CAAA,EAChB,YADgB;SAChB,CAAA,EACD,cADC;UACD,EAAA,MAAA;WAIC,EAAA,MAAA;aAEE,EAAA,MAAA;UAEF,CAAA,EAJA,cAIA,GAAA,IAAA;EAAM,IAAA,CAAA,EAAA,MAAA,EAAA;EAGP,UAAA,CAAA,EALG,cAKgB;EAKnB,UAAA,CAAA,EAAA,MAAA;EAIA,QAAA,CAAA,EAZC,MAYD,CAAA,MAAkB,EAAA,OAAA,CAAA;CAAA;AAEnB,KAXC,mBAAA,GAWD;eACK,CAAA,EAAA,MAAA;eAEJ,CAAA,EAAA,MAAA;;AAMQ,KAfR,kBAAA,GAeQ;EAAM,KAAA,EAAA;;;;;;KAXd,kBAAA;;WAED;gBACK;;YAEJ;aACC;;;;;oBAKO"}
|