gemi 0.45.0 → 0.50.0-rc.2
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/dist/app/App.d.ts +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/index.js +2 -2
- package/dist/app/index.js.map +1 -1
- package/dist/auth/AuthController.d.ts +107 -0
- package/dist/auth/AuthController.d.ts.map +1 -0
- package/dist/auth/{AuthenticationServiceContainer.d.ts → AuthManager.d.ts} +12 -7
- package/dist/auth/AuthManager.d.ts.map +1 -0
- package/dist/auth/AuthServiceProvider.d.ts +5 -0
- package/dist/auth/AuthServiceProvider.d.ts.map +1 -0
- package/dist/auth/config.d.ts +32 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/requests.d.ts +24 -0
- package/dist/auth/requests.d.ts.map +1 -0
- package/dist/auth/{AuthenticationServiceProvider.d.ts → routes.d.ts} +3 -33
- package/dist/auth/routes.d.ts.map +1 -0
- package/dist/bin/gemi.js +19631 -51226
- package/dist/bin/gemi.js.map +10 -74
- package/dist/bin/migrate/classBody.d.ts +31 -0
- package/dist/bin/migrate/classBody.d.ts.map +1 -0
- package/dist/bin/migrate/imports.d.ts +37 -0
- package/dist/bin/migrate/imports.d.ts.map +1 -0
- package/dist/bin/migrate/index.d.ts +6 -0
- package/dist/bin/migrate/index.d.ts.map +1 -0
- package/dist/bin/migrate/lex.d.ts +23 -0
- package/dist/bin/migrate/lex.d.ts.map +1 -0
- package/dist/bin/migrate/tables.d.ts +38 -0
- package/dist/bin/migrate/tables.d.ts.map +1 -0
- package/dist/broadcasting/index.js +1 -1
- package/dist/bun/plugin.js +2 -2
- package/dist/bun/plugin.js.map +1 -1
- package/dist/bun/preload.js +2 -2
- package/dist/bun/preload.js.map +1 -1
- package/dist/chunk-01gbjyc5.js +4 -0
- package/dist/{chunk-tyjhatbq.js.map → chunk-01gbjyc5.js.map} +2 -2
- package/dist/chunk-0e8313cy.js +5 -0
- package/dist/{chunk-b0ca3dzf.js.map → chunk-0e8313cy.js.map} +2 -2
- package/dist/chunk-0g7fds80.js +4 -0
- package/dist/{chunk-8jns0zmx.js.map → chunk-0g7fds80.js.map} +2 -2
- package/dist/{chunk-snp18f2m.js → chunk-0j1vfxj7.js} +3 -3
- package/dist/{chunk-snp18f2m.js.map → chunk-0j1vfxj7.js.map} +1 -1
- package/dist/chunk-0j8rgg32.js +4 -0
- package/dist/{chunk-atv6nybp.js.map → chunk-0j8rgg32.js.map} +16 -8
- package/dist/chunk-1jzj2t3t.js +5 -0
- package/dist/chunk-1jzj2t3t.js.map +10 -0
- package/dist/{chunk-4k7p344e.js → chunk-2mza564z.js} +2 -2
- package/dist/{chunk-4k7p344e.js.map → chunk-2mza564z.js.map} +1 -1
- package/dist/{chunk-n4wrg0sn.js → chunk-4a47a3tt.js} +3 -3
- package/dist/{chunk-f18weffa.js.map → chunk-4a47a3tt.js.map} +1 -1
- package/dist/chunk-4b8kjq68.js +5 -0
- package/dist/chunk-4b8kjq68.js.map +10 -0
- package/dist/chunk-4y8vkbtw.js +34 -0
- package/dist/chunk-4y8vkbtw.js.map +242 -0
- package/dist/chunk-563jg281.js +5 -0
- package/dist/chunk-563jg281.js.map +11 -0
- package/dist/chunk-5em8db18.js +5 -0
- package/dist/chunk-5em8db18.js.map +10 -0
- package/dist/{chunk-1nkxmecw.js → chunk-5f88sbt2.js} +3 -3
- package/dist/{chunk-1nkxmecw.js.map → chunk-5f88sbt2.js.map} +1 -1
- package/dist/{chunk-6av6dnxx.js → chunk-64smn3fn.js} +2 -2
- package/dist/{chunk-6av6dnxx.js.map → chunk-64smn3fn.js.map} +2 -2
- package/dist/{chunk-w54fj10r.js → chunk-6q2xys8x.js} +1 -1
- package/dist/chunk-7hh953xm.js +5 -0
- package/dist/chunk-7hh953xm.js.map +10 -0
- package/dist/chunk-7w6qsfm3.js +5 -0
- package/dist/chunk-7w6qsfm3.js.map +10 -0
- package/dist/{chunk-a3bmbfn3.js → chunk-9eg4q6hm.js} +2 -2
- package/dist/{chunk-a3bmbfn3.js.map → chunk-9eg4q6hm.js.map} +1 -1
- package/dist/{chunk-2a4ze3n3.js → chunk-a0hk8r8n.js} +3 -3
- package/dist/{chunk-2a4ze3n3.js.map → chunk-a0hk8r8n.js.map} +1 -1
- package/dist/{chunk-jrnbyhgq.js → chunk-ctffrrx4.js} +4 -4
- package/dist/{chunk-jrnbyhgq.js.map → chunk-ctffrrx4.js.map} +1 -1
- package/dist/{chunk-vpqq7v9e.js → chunk-eq02jfj2.js} +2 -2
- package/dist/{chunk-vpqq7v9e.js.map → chunk-eq02jfj2.js.map} +1 -1
- package/dist/chunk-g250akbq.js +4 -0
- package/dist/chunk-g250akbq.js.map +13 -0
- package/dist/{chunk-wtydwxgg.js → chunk-g7tytfm9.js} +3 -3
- package/dist/{chunk-wtydwxgg.js.map → chunk-g7tytfm9.js.map} +1 -1
- package/dist/chunk-h3b5b2rm.js +4 -0
- package/dist/{chunk-wed042aw.js.map → chunk-h3b5b2rm.js.map} +2 -2
- package/dist/{chunk-2cew23ww.js → chunk-jek07yr8.js} +3 -3
- package/dist/{chunk-2cew23ww.js.map → chunk-jek07yr8.js.map} +1 -1
- package/dist/chunk-jzqeb93s.js +4 -0
- package/dist/{chunk-2pazt3hc.js.map → chunk-jzqeb93s.js.map} +2 -2
- package/dist/chunk-k0rg0bh0.js +5 -0
- package/dist/chunk-k0rg0bh0.js.map +10 -0
- package/dist/chunk-k1xs9cjj.js +5 -0
- package/dist/chunk-k1xs9cjj.js.map +12 -0
- package/dist/{chunk-396qq8ge.js → chunk-kpzrdjqs.js} +2 -2
- package/dist/{chunk-396qq8ge.js.map → chunk-kpzrdjqs.js.map} +3 -3
- package/dist/{chunk-sv4v623e.js → chunk-ktdrrvqm.js} +3 -3
- package/dist/{chunk-sv4v623e.js.map → chunk-ktdrrvqm.js.map} +1 -1
- package/dist/chunk-m4nm4zy6.js +5 -0
- package/dist/{chunk-7bggj8g7.js.map → chunk-m4nm4zy6.js.map} +2 -2
- package/dist/{chunk-f18weffa.js → chunk-n5q0gwd9.js} +2 -2
- package/dist/{chunk-n4wrg0sn.js.map → chunk-n5q0gwd9.js.map} +1 -1
- package/dist/chunk-pda081kg.js +4 -0
- package/dist/{chunk-y4q11zr2.js.map → chunk-pda081kg.js.map} +2 -2
- package/dist/chunk-qb70bkja.js +4 -0
- package/dist/{chunk-vh6dnbty.js.map → chunk-qb70bkja.js.map} +2 -2
- package/dist/chunk-qwy7b1v6.js +5 -0
- package/dist/{chunk-tjzbw6eg.js.map → chunk-qwy7b1v6.js.map} +2 -2
- package/dist/chunk-sqafdycr.js +23 -0
- package/dist/chunk-sqafdycr.js.map +33 -0
- package/dist/{chunk-0r110r6m.js → chunk-t9ydh7x3.js} +3 -3
- package/dist/{chunk-0r110r6m.js.map → chunk-t9ydh7x3.js.map} +1 -1
- package/dist/chunk-vvp2dr94.js +5 -0
- package/dist/chunk-vvp2dr94.js.map +12 -0
- package/dist/{chunk-mped4eh6.js → chunk-w7kvrp0q.js} +4 -4
- package/dist/{chunk-mped4eh6.js.map → chunk-w7kvrp0q.js.map} +1 -1
- package/dist/{chunk-wjhh4pf0.js → chunk-wqzg9229.js} +3 -3
- package/dist/{chunk-wjhh4pf0.js.map → chunk-wqzg9229.js.map} +1 -1
- package/dist/{chunk-27tkdqp6.js → chunk-xdsjdz4a.js} +4 -4
- package/dist/{chunk-27tkdqp6.js.map → chunk-xdsjdz4a.js.map} +2 -2
- package/dist/chunk-xvfy2e73.js +4 -0
- package/dist/{chunk-ww5vyb4s.js.map → chunk-xvfy2e73.js.map} +2 -2
- package/dist/chunk-xvr6bezx.js +6 -0
- package/dist/{chunk-tvp3xgfq.js.map → chunk-xvr6bezx.js.map} +2 -2
- package/dist/{chunk-cmnhs4mh.js → chunk-y1h1tf4f.js} +3 -3
- package/dist/{chunk-cmnhs4mh.js.map → chunk-y1h1tf4f.js.map} +1 -1
- package/dist/chunk-ya4rt5nk.js +79 -0
- package/dist/{chunk-jxpwexpz.js.map → chunk-ya4rt5nk.js.map} +33 -24
- package/dist/chunk-ye31dsgf.js +5 -0
- package/dist/chunk-ye31dsgf.js.map +11 -0
- package/dist/chunk-z78ksnx2.js +5 -0
- package/dist/chunk-z78ksnx2.js.map +10 -0
- package/dist/chunk-zx3ypgvw.js +4 -0
- package/dist/{chunk-yyn0qk1w.js.map → chunk-zx3ypgvw.js.map} +1 -1
- package/dist/client/rpc.d.ts +1 -1
- package/dist/client/rpc.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/container/Container.d.ts +33 -0
- package/dist/container/Container.d.ts.map +1 -0
- package/dist/container/index.d.ts +2 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js +4 -0
- package/dist/container/index.js.map +9 -0
- package/dist/database/DatabaseManager.d.ts +14 -0
- package/dist/database/DatabaseManager.d.ts.map +1 -0
- package/dist/database/DatabaseServiceProvider.d.ts +5 -0
- package/dist/database/DatabaseServiceProvider.d.ts.map +1 -0
- package/dist/database/config.d.ts +11 -0
- package/dist/database/config.d.ts.map +1 -0
- package/dist/database/dialect.d.ts +11 -0
- package/dist/database/dialect.d.ts.map +1 -0
- package/dist/database/index.d.ts +5 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +4 -0
- package/dist/database/index.js.map +9 -0
- package/dist/email/Email.d.ts.map +1 -1
- package/dist/email/index.js +3 -3
- package/dist/email/index.js.map +3 -3
- package/dist/facades/Auth.d.ts +4 -1
- package/dist/facades/Auth.d.ts.map +1 -1
- package/dist/facades/Broadcast.d.ts +4 -1
- package/dist/facades/Broadcast.d.ts.map +1 -1
- package/dist/facades/DB.d.ts +12 -0
- package/dist/facades/DB.d.ts.map +1 -0
- package/dist/facades/Facade.d.ts +29 -0
- package/dist/facades/Facade.d.ts.map +1 -0
- package/dist/facades/Lang.d.ts +10 -0
- package/dist/facades/Lang.d.ts.map +1 -0
- package/dist/facades/Log.d.ts +4 -1
- package/dist/facades/Log.d.ts.map +1 -1
- package/dist/facades/Prefetch.d.ts +4 -1
- package/dist/facades/Prefetch.d.ts.map +1 -1
- package/dist/facades/RateLimiter.d.ts +4 -2
- package/dist/facades/RateLimiter.d.ts.map +1 -1
- package/dist/facades/Redis.d.ts +4 -1
- package/dist/facades/Redis.d.ts.map +1 -1
- package/dist/facades/{FileStorage.d.ts → Storage.d.ts} +5 -2
- package/dist/facades/Storage.d.ts.map +1 -0
- package/dist/facades/index.d.ts +4 -2
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/Application.d.ts +44 -0
- package/dist/foundation/Application.d.ts.map +1 -0
- package/dist/foundation/app.d.ts +15 -0
- package/dist/foundation/app.d.ts.map +1 -0
- package/dist/foundation/index.d.ts +3 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +4 -0
- package/dist/foundation/index.js.map +9 -0
- package/dist/http/AuthenticationMiddlware.d.ts.map +1 -1
- package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/http/middleware-config.d.ts +8 -0
- package/dist/http/middleware-config.d.ts.map +1 -0
- package/dist/i18n/I18nRouter.d.ts.map +1 -1
- package/dist/i18n/TranslationServiceProvider.d.ts +5 -0
- package/dist/i18n/TranslationServiceProvider.d.ts.map +1 -0
- package/dist/i18n/Translator.d.ts +17 -0
- package/dist/i18n/Translator.d.ts.map +1 -0
- package/dist/i18n/config.d.ts +13 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +3 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +3 -3
- package/dist/kernel/Kernel.d.ts +46 -33
- package/dist/kernel/Kernel.d.ts.map +1 -1
- package/dist/kernel/KernelContext.d.ts.map +1 -1
- package/dist/kernel/index.d.ts +1 -1
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +5 -7
- package/dist/kernel/providers.d.ts +11 -0
- package/dist/kernel/providers.d.ts.map +1 -0
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +3 -3
- package/dist/services/cron/ScheduleServiceProvider.d.ts +12 -0
- package/dist/services/cron/ScheduleServiceProvider.d.ts.map +1 -0
- package/dist/services/cron/Scheduler.d.ts +22 -0
- package/dist/services/cron/Scheduler.d.ts.map +1 -0
- package/dist/services/cron/config.d.ts +7 -0
- package/dist/services/cron/config.d.ts.map +1 -0
- package/dist/services/email/MailManager.d.ts +13 -0
- package/dist/services/email/MailManager.d.ts.map +1 -0
- package/dist/services/email/MailServiceProvider.d.ts +5 -0
- package/dist/services/email/MailServiceProvider.d.ts.map +1 -0
- package/dist/services/email/config.d.ts +9 -0
- package/dist/services/email/config.d.ts.map +1 -0
- package/dist/services/file-storage/FilesystemManager.d.ts +8 -0
- package/dist/services/file-storage/FilesystemManager.d.ts.map +1 -0
- package/dist/services/file-storage/FilesystemServiceProvider.d.ts +5 -0
- package/dist/services/file-storage/FilesystemServiceProvider.d.ts.map +1 -0
- package/dist/services/file-storage/config.d.ts +7 -0
- package/dist/services/file-storage/config.d.ts.map +1 -0
- package/dist/services/image-optimization/ImageManager.d.ts +16 -0
- package/dist/services/image-optimization/ImageManager.d.ts.map +1 -0
- package/dist/services/image-optimization/ImageServiceProvider.d.ts +5 -0
- package/dist/services/image-optimization/ImageServiceProvider.d.ts.map +1 -0
- package/dist/services/image-optimization/config.d.ts +7 -0
- package/dist/services/image-optimization/config.d.ts.map +1 -0
- package/dist/services/index.d.ts +37 -10
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +44 -2
- package/dist/services/index.js.map +159 -3
- package/dist/services/kernel-id/KernelId.d.ts +11 -0
- package/dist/services/kernel-id/KernelId.d.ts.map +1 -0
- package/dist/services/kernel-id/KernelIdServiceProvider.d.ts +2 -3
- package/dist/services/kernel-id/KernelIdServiceProvider.d.ts.map +1 -1
- package/dist/services/logging/LogManager.d.ts +28 -0
- package/dist/services/logging/LogManager.d.ts.map +1 -0
- package/dist/services/logging/LogServiceProvider.d.ts +13 -0
- package/dist/services/logging/LogServiceProvider.d.ts.map +1 -0
- package/dist/services/logging/LoggingRouter.d.ts.map +1 -1
- package/dist/services/logging/config.d.ts +9 -0
- package/dist/services/logging/config.d.ts.map +1 -0
- package/dist/services/middleware/MiddlewareRegistry.d.ts +11 -0
- package/dist/services/middleware/MiddlewareRegistry.d.ts.map +1 -0
- package/dist/services/middleware/MiddlewareServiceProvider.d.ts +5 -0
- package/dist/services/middleware/MiddlewareServiceProvider.d.ts.map +1 -0
- package/dist/services/pubsub/{BroadcastingServiceContainer.d.ts → BroadcastManager.d.ts} +7 -7
- package/dist/services/pubsub/BroadcastManager.d.ts.map +1 -0
- package/dist/services/pubsub/BroadcastServiceProvider.d.ts +5 -0
- package/dist/services/pubsub/BroadcastServiceProvider.d.ts.map +1 -0
- package/dist/services/pubsub/config.d.ts +7 -0
- package/dist/services/pubsub/config.d.ts.map +1 -0
- package/dist/services/queue/Job.d.ts.map +1 -1
- package/dist/services/queue/{QueueServiceContainer.d.ts → QueueManager.d.ts} +6 -7
- package/dist/services/queue/QueueManager.d.ts.map +1 -0
- package/dist/services/queue/QueueServiceProvider.d.ts +2 -5
- package/dist/services/queue/QueueServiceProvider.d.ts.map +1 -1
- package/dist/services/queue/config.d.ts +8 -0
- package/dist/services/queue/config.d.ts.map +1 -0
- package/dist/services/rate-limiter/{RateLimiterServiceContainer.d.ts → RateLimiter.d.ts} +10 -9
- package/dist/services/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts +2 -12
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts.map +1 -1
- package/dist/services/rate-limiter/config.d.ts +15 -0
- package/dist/services/rate-limiter/config.d.ts.map +1 -0
- package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts +6 -4
- package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts.map +1 -1
- package/dist/services/redis/RedisManager.d.ts +9 -0
- package/dist/services/redis/RedisManager.d.ts.map +1 -0
- package/dist/services/redis/RedisServiceProvider.d.ts +2 -5
- package/dist/services/redis/RedisServiceProvider.d.ts.map +1 -1
- package/dist/services/redis/config.d.ts +8 -0
- package/dist/services/redis/config.d.ts.map +1 -0
- package/dist/services/router/{ApiRouterServiceContainer.d.ts → ApiRouteDispatcher.d.ts} +8 -7
- package/dist/services/router/ApiRouteDispatcher.d.ts.map +1 -0
- package/dist/services/router/RouteServiceProvider.d.ts +18 -0
- package/dist/services/router/RouteServiceProvider.d.ts.map +1 -0
- package/dist/services/router/{ViewRouterServiceContainer.d.ts → ViewRouteDispatcher.d.ts} +6 -8
- package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -0
- package/dist/services/router/config.d.ts +25 -0
- package/dist/services/router/config.d.ts.map +1 -0
- package/dist/support/Repository.d.ts +15 -0
- package/dist/support/Repository.d.ts.map +1 -0
- package/dist/support/ServiceProvider.d.ts +13 -0
- package/dist/support/ServiceProvider.d.ts.map +1 -0
- package/dist/support/index.d.ts +5 -0
- package/dist/support/index.d.ts.map +1 -0
- package/dist/support/index.js +4 -0
- package/dist/support/index.js.map +10 -0
- package/dist/support/loadConfig.d.ts +4 -0
- package/dist/support/loadConfig.d.ts.map +1 -0
- package/dist/support/withDefaults.d.ts +13 -0
- package/dist/support/withDefaults.d.ts.map +1 -0
- package/package.json +5 -1
- package/dist/auth/AuthenticationServiceContainer.d.ts.map +0 -1
- package/dist/auth/AuthenticationServiceProvider.d.ts.map +0 -1
- package/dist/chunk-2pazt3hc.js +0 -4
- package/dist/chunk-4z53shav.js +0 -5
- package/dist/chunk-4z53shav.js.map +0 -15
- package/dist/chunk-63gmzy5r.js +0 -5
- package/dist/chunk-63gmzy5r.js.map +0 -12
- package/dist/chunk-7bggj8g7.js +0 -5
- package/dist/chunk-8jns0zmx.js +0 -4
- package/dist/chunk-atv6nybp.js +0 -4
- package/dist/chunk-b0ca3dzf.js +0 -5
- package/dist/chunk-jxpwexpz.js +0 -79
- package/dist/chunk-m0earq80.js +0 -5
- package/dist/chunk-m0earq80.js.map +0 -11
- package/dist/chunk-p5r0t9jh.js +0 -5
- package/dist/chunk-p5r0t9jh.js.map +0 -10
- package/dist/chunk-pf4r36w2.js +0 -5
- package/dist/chunk-pf4r36w2.js.map +0 -10
- package/dist/chunk-ppn0j67g.js +0 -4
- package/dist/chunk-ppn0j67g.js.map +0 -13
- package/dist/chunk-tjzbw6eg.js +0 -5
- package/dist/chunk-tvp3xgfq.js +0 -6
- package/dist/chunk-tyjhatbq.js +0 -4
- package/dist/chunk-v0qh5dqv.js +0 -75
- package/dist/chunk-v0qh5dqv.js.map +0 -416
- package/dist/chunk-vh6dnbty.js +0 -4
- package/dist/chunk-wed042aw.js +0 -4
- package/dist/chunk-ww5vyb4s.js +0 -4
- package/dist/chunk-xdk6y558.js +0 -5
- package/dist/chunk-xdk6y558.js.map +0 -10
- package/dist/chunk-xkrthw08.js +0 -23
- package/dist/chunk-xkrthw08.js.map +0 -10
- package/dist/chunk-y4q11zr2.js +0 -4
- package/dist/chunk-yyn0qk1w.js +0 -4
- package/dist/facades/FileStorage.d.ts.map +0 -1
- package/dist/facades/I18n.d.ts +0 -7
- package/dist/facades/I18n.d.ts.map +0 -1
- package/dist/http/MiddlewareServiceProvider.d.ts +0 -8
- package/dist/http/MiddlewareServiceProvider.d.ts.map +0 -1
- package/dist/i18n/I18nServiceContainer.d.ts +0 -13
- package/dist/i18n/I18nServiceContainer.d.ts.map +0 -1
- package/dist/i18n/I18nServiceProvider.d.ts +0 -13
- package/dist/i18n/I18nServiceProvider.d.ts.map +0 -1
- package/dist/services/ServiceContainer.d.ts +0 -7
- package/dist/services/ServiceContainer.d.ts.map +0 -1
- package/dist/services/ServiceProvider.d.ts +0 -4
- package/dist/services/ServiceProvider.d.ts.map +0 -1
- package/dist/services/Singleton.d.ts +0 -4
- package/dist/services/Singleton.d.ts.map +0 -1
- package/dist/services/cron/CronServiceContainer.d.ts +0 -13
- package/dist/services/cron/CronServiceContainer.d.ts.map +0 -1
- package/dist/services/cron/CronServiceProvider.d.ts +0 -10
- package/dist/services/cron/CronServiceProvider.d.ts.map +0 -1
- package/dist/services/email/EmailServiceContainer.d.ts +0 -8
- package/dist/services/email/EmailServiceContainer.d.ts.map +0 -1
- package/dist/services/email/EmailServiceProvider.d.ts +0 -9
- package/dist/services/email/EmailServiceProvider.d.ts.map +0 -1
- package/dist/services/file-storage/FileStorageServiceContainer.d.ts +0 -8
- package/dist/services/file-storage/FileStorageServiceContainer.d.ts.map +0 -1
- package/dist/services/file-storage/FileStorageServiceProvider.d.ts +0 -7
- package/dist/services/file-storage/FileStorageServiceProvider.d.ts.map +0 -1
- package/dist/services/image-optimization/ImageOptimizationServiceContainer.d.ts +0 -14
- package/dist/services/image-optimization/ImageOptimizationServiceContainer.d.ts.map +0 -1
- package/dist/services/image-optimization/ImageOptimizationServiceProvider.d.ts +0 -7
- package/dist/services/image-optimization/ImageOptimizationServiceProvider.d.ts.map +0 -1
- package/dist/services/kernel-id/KernelIdServiceContainer.d.ts +0 -8
- package/dist/services/kernel-id/KernelIdServiceContainer.d.ts.map +0 -1
- package/dist/services/logging/LoggingServiceContainer.d.ts +0 -22
- package/dist/services/logging/LoggingServiceContainer.d.ts.map +0 -1
- package/dist/services/logging/LoggingServiceProvider.d.ts +0 -9
- package/dist/services/logging/LoggingServiceProvider.d.ts.map +0 -1
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts +0 -10
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts.map +0 -1
- package/dist/services/pubsub/BroadcastingServiceContainer.d.ts.map +0 -1
- package/dist/services/pubsub/BroadcastingServiceProvider.d.ts +0 -7
- package/dist/services/pubsub/BroadcastingServiceProvider.d.ts.map +0 -1
- package/dist/services/queue/QueueServiceContainer.d.ts.map +0 -1
- package/dist/services/rate-limiter/RateLimiterServiceContainer.d.ts.map +0 -1
- package/dist/services/redis/RedisServiceContainer.d.ts +0 -10
- package/dist/services/redis/RedisServiceContainer.d.ts.map +0 -1
- package/dist/services/router/ApiRouterServiceContainer.d.ts.map +0 -1
- package/dist/services/router/ApiRouterServiceProvider.d.ts +0 -11
- package/dist/services/router/ApiRouterServiceProvider.d.ts.map +0 -1
- package/dist/services/router/ViewRouterServiceContainer.d.ts.map +0 -1
- package/dist/services/router/ViewRouterServiceProvider.d.ts +0 -13
- package/dist/services/router/ViewRouterServiceProvider.d.ts.map +0 -1
- package/dist/services/singleton/SingletonServiceContainer.d.ts +0 -8
- package/dist/services/singleton/SingletonServiceContainer.d.ts.map +0 -1
- package/dist/services/singleton/SingletonServiceProvider.d.ts +0 -7
- package/dist/services/singleton/SingletonServiceProvider.d.ts.map +0 -1
- /package/dist/{chunk-w54fj10r.js.map → chunk-6q2xys8x.js.map} +0 -0
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,46 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Aa as r,Ba as s,Ca as t,Da as u,Ea as v,Fa as w,Ga as x,Ha as y,Ia as z,Ja as A,Ka as B,La as C,Ma as D,Na as E,Oa as F,Qa as G,oa as f,pa as g,qa as h,ra as i,sa as j,ta as k,ua as l,va as m,wa as n,xa as o,ya as p,za as q}from"../chunk-v0qh5dqv.js";import"../chunk-a3bmbfn3.js";import"../chunk-27tkdqp6.js";import"../chunk-7bggj8g7.js";import"../chunk-jrnbyhgq.js";import"../chunk-wtydwxgg.js";import"../chunk-1nkxmecw.js";import"../chunk-cmnhs4mh.js";import"../chunk-snp18f2m.js";import"../chunk-0r110r6m.js";import"../chunk-sv4v623e.js";import"../chunk-2cew23ww.js";import"../chunk-wjhh4pf0.js";import"../chunk-xkrthw08.js";import{Qb as a,Rb as b,Sb as c,Zb as d,_b as e}from"../chunk-4z53shav.js";import"../chunk-m0earq80.js";import"../chunk-f18weffa.js";export{b as toRangeHeaderValue,a as resolveRange,c as parseContentRange,C as XOAuthProvider,t as ViewRouterServiceProvider,G as Singleton,y as Sharp,j as S3Driver,q as ResendDriver,F as RedisServiceProvider,o as RedisRateLimiter,n as RateLimiterServiceProvider,l as RateLimiterDriver,d as RangeNotSatisfiableError,v as QueueServiceProvider,A as OAuthProvider,u as LoggingServiceProvider,w as Job,m as InMemoryRateLimiter,z as ImageOptimizationServiceProvider,x as ImageOptimizationDriver,B as GoogleOAuthProvider,g as FileSystemDriver,h as FileStorageServiceProvider,f as FileStorageDriver,e as FileNotFoundError,r as EmailServiceProvider,p as EmailDriver,D as CronServiceProvider,E as CronJob,s as BroadcastingServiceProvider,k as AzureBlobDriver,i as ApiRouterServiceProvider};
|
|
2
|
+
import{A as zS,u as GS,v as MS}from"../chunk-9eg4q6hm.js";import{B as Kv,C as Mv,D as Lc,E as ew,F as aw,G as rw,H as yv,I as Iy,J as gy,K as pw,L as cb,M as IS,N as xb,O as kc,P as gS,Q as Vw,R as Ew,S as iw,T as dw,U as _w,V as ow}from"../chunk-xdsjdz4a.js";import{W as lw}from"../chunk-m4nm4zy6.js";import{X as Dw}from"../chunk-0j1vfxj7.js";import{$ as qw,Y as Dt,Z as mw,aa as jS,ba as lx,da as o1,ha as E}from"../chunk-ctffrrx4.js";import{ia as hc}from"../chunk-g7tytfm9.js";import"../chunk-ktdrrvqm.js";import{ka as r0,ma as Ot}from"../chunk-5f88sbt2.js";import{na as Tw}from"../chunk-y1h1tf4f.js";import"../chunk-t9ydh7x3.js";import{pa as wS}from"../chunk-jek07yr8.js";import{qa as cy}from"../chunk-wqzg9229.js";import{Aa as y4,Ba as w4,Ca as b4,Da as B4,Ea as $4,Fa as G4,Ga as M4,Ha as z4,Ia as N4,Ja as Z4,Ka as W4,La as B0,Ma as $0,Na as Rn,Oa as R4,Pa as j4,Qa as K4,Ra as O4,Sa as J4,Ta as D4,Ua as Q4,Va as k4,ra as ab,sa as rb,ta as c4,ua as jn,va as x4,wa as n4,xa as h4,ya as v4,za as S4}from"../chunk-sqafdycr.js";import{Wa as f4,Xa as t4}from"../chunk-1jzj2t3t.js";import"../chunk-7w6qsfm3.js";import{Cb as Vb,_a as Yb,cb as kx,db as Xb,eb as ub,fb as Ub,gb as Hb,ib as Fb,jb as Lb,kb as Ab,lb as Ib,mb as gb,nb as Cb,ob as Pb,pb as mb,qb as Tb,rb as _b,ub as qb,wb as pb,xb as lb}from"../chunk-ya4rt5nk.js";import"../chunk-563jg281.js";import{Qb as Wn,Rb as Nn,Sb as Qx,cc as Ec,dc as Mc,hc as q0,mc as Jb,nc as Db,pc as Qb,qc as kb,vc as sb}from"../chunk-0j8rgg32.js";import"../chunk-7hh953xm.js";import{Dc as Eb,Ec as ib,Fc as db,Gc as ob,Hc as eb}from"../chunk-4y8vkbtw.js";import"../chunk-k0rg0bh0.js";import{Lc as Pf}from"../chunk-vvp2dr94.js";import"../chunk-z78ksnx2.js";import"../chunk-5em8db18.js";import{Pc as b,Sc as sc}from"../chunk-n5q0gwd9.js";var Dh=b(hc(),1);function E0(c){return(x)=>async(f)=>{let{request:t}=f;if(c.expectContinueHeader!==!1&&Dh.HttpRequest.isInstance(t)&&t.body&&c.runtime==="node"&&c.requestHandler?.constructor?.name!=="FetchHttpHandler"){let n=!0;if(typeof c.expectContinueHeader==="number")try{n=(Number(t.headers?.["content-length"])??c.bodyLengthChecker?.(t.body)??1/0)>=c.expectContinueHeader}catch(h){}else n=!!c.expectContinueHeader;if(n)t.headers.Expect="100-continue"}return x({...f,request:t})}}var i0={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0},Qh=(c)=>({applyToStack:(x)=>{x.add(E0(c),i0)}});var V={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},gx=V.WHEN_SUPPORTED,Oc={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},Cx=V.WHEN_SUPPORTED,O;(function(c){c.MD5="MD5",c.CRC32="CRC32",c.CRC32C="CRC32C",c.CRC64NVME="CRC64NVME",c.SHA1="SHA1",c.SHA256="SHA256"})(O||(O={}));var kh;(function(c){c.HEADER="header",c.TRAILER="trailer"})(kh||(kh={}));var yx=O.CRC32;var yc;(function(c){c.ENV="env",c.CONFIG="shared config entry"})(yc||(yc={}));var Hc=(c,x,f,t)=>{if(!(x in c))return;let n=c[x].toUpperCase();if(!Object.values(f).includes(n))throw TypeError(`Cannot load ${t} '${x}'. Expected one of ${Object.values(f)}, got '${c[x]}'.`);return n};var d0="AWS_REQUEST_CHECKSUM_CALCULATION",o0="request_checksum_calculation",sh={environmentVariableSelector:(c)=>Hc(c,d0,V,yc.ENV),configFileSelector:(c)=>Hc(c,o0,V,yc.CONFIG),default:gx};var e0="AWS_RESPONSE_CHECKSUM_VALIDATION",a0="response_checksum_validation",Yh={environmentVariableSelector:(c)=>Hc(c,e0,Oc,yc.ENV),configFileSelector:(c)=>Hc(c,a0,Oc,yc.CONFIG),default:Cx};var Fc=b(Lc(),1),mh=b(hc(),1),Th=b(lx(),1);var Xh=(c,{requestChecksumRequired:x,requestAlgorithmMember:f,requestChecksumCalculation:t})=>{if(!f)return t===V.WHEN_SUPPORTED||x?yx:void 0;if(!c[f])return;return c[f]};var Jc=(c)=>c===O.MD5?"content-md5":`x-amz-checksum-${c.toLowerCase()}`;var uh=(c,x)=>{let f=c.toLowerCase();for(let t of Object.keys(x))if(f===t.toLowerCase())return!0;return!1};var Uh=(c,x)=>{let f=c.toLowerCase();for(let t of Object.keys(x))if(t.toLowerCase().startsWith(f))return!0;return!1};var Hh=b(r0(),1),Px=(c)=>c!==void 0&&typeof c!=="string"&&!ArrayBuffer.isView(c)&&!Hh.isArrayBuffer(c);var Fh=b(cy(),1),{__extends:q4,__assign:p4,__rest:l4,__decorate:V4,__param:E4,__esDecorate:i4,__runInitializers:d4,__propKey:o4,__setFunctionName:e4,__metadata:a4,__awaiter:mx,__generator:Tx,__exportStar:r4,__createBinding:c8,__values:_x,__read:x8,__spread:f8,__spreadArrays:t8,__spreadArray:n8,__await:h8,__asyncGenerator:v8,__asyncDelegator:S8,__asyncValues:y8,__makeTemplateObject:w8,__importStar:b8,__importDefault:B8,__classPrivateFieldGet:$8,__classPrivateFieldSet:G8,__classPrivateFieldIn:M8,__addDisposableResource:z8,__disposeResources:N8,__rewriteRelativeImportExtension:Z8}=Fh.default;import{Buffer as Lh}from"buffer";var Ah=(c,x)=>{if(typeof c!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof c} (${c})`);return x?Lh.from(c,x):Lh.from(c)};var vt=(c)=>{let x=Ah(c,"utf8");return new Uint8Array(x.buffer,x.byteOffset,x.byteLength/Uint8Array.BYTES_PER_ELEMENT)};var xy=typeof Buffer<"u"&&Buffer.from?function(c){return Buffer.from(c,"utf8")}:vt;function wx(c){if(c instanceof Uint8Array)return c;if(typeof c==="string")return xy(c);if(ArrayBuffer.isView(c))return new Uint8Array(c.buffer,c.byteOffset,c.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(c)}function bx(c){if(typeof c==="string")return c.length===0;return c.byteLength===0}function Dc(c){return new Uint8Array([(c&4278190080)>>24,(c&16711680)>>16,(c&65280)>>8,c&255])}function Bx(c){if(!Uint32Array.from){var x=new Uint32Array(c.length),f=0;while(f<c.length)x[f]=c[f],f+=1;return x}return Uint32Array.from(c)}var yt=function(){function c(){this.crc32c=new St}return c.prototype.update=function(x){if(bx(x))return;this.crc32c.update(wx(x))},c.prototype.digest=function(){return mx(this,void 0,void 0,function(){return Tx(this,function(x){return[2,Dc(this.crc32c.digest())]})})},c.prototype.reset=function(){this.crc32c=new St},c}();var St=function(){function c(){this.checksum=4294967295}return c.prototype.update=function(x){var f,t;try{for(var n=_x(x),h=n.next();!h.done;h=n.next()){var v=h.value;this.checksum=this.checksum>>>8^ty[(this.checksum^v)&255]}}catch(S){f={error:S}}finally{try{if(h&&!h.done&&(t=n.return))t.call(n)}finally{if(f)throw f.error}}return this},c.prototype.digest=function(){return(this.checksum^4294967295)>>>0},c}();var fy=[0,4067132163,3778769143,324072436,3348797215,904991772,648144872,3570033899,2329499855,2024987596,1809983544,2575936315,1296289744,3207089363,2893594407,1578318884,274646895,3795141740,4049975192,51262619,3619967088,632279923,922689671,3298075524,2592579488,1760304291,2075979607,2312596564,1562183871,2943781820,3156637768,1313733451,549293790,3537243613,3246849577,871202090,3878099393,357341890,102525238,4101499445,2858735121,1477399826,1264559846,3107202533,1845379342,2677391885,2361733625,2125378298,820201905,3263744690,3520608582,598981189,4151959214,85089709,373468761,3827903834,3124367742,1213305469,1526817161,2842354314,2107672161,2412447074,2627466902,1861252501,1098587580,3004210879,2688576843,1378610760,2262928035,1955203488,1742404180,2511436119,3416409459,969524848,714683780,3639785095,205050476,4266873199,3976438427,526918040,1361435347,2739821008,2954799652,1114974503,2529119692,1691668175,2005155131,2247081528,3690758684,697762079,986182379,3366744552,476452099,3993867776,4250756596,255256311,1640403810,2477592673,2164122517,1922457750,2791048317,1412925310,1197962378,3037525897,3944729517,427051182,170179418,4165941337,746937522,3740196785,3451792453,1070968646,1905808397,2213795598,2426610938,1657317369,3053634322,1147748369,1463399397,2773627110,4215344322,153784257,444234805,3893493558,1021025245,3467647198,3722505002,797665321,2197175160,1889384571,1674398607,2443626636,1164749927,3070701412,2757221520,1446797203,137323447,4198817972,3910406976,461344835,3484808360,1037989803,781091935,3705997148,2460548119,1623424788,1939049696,2180517859,1429367560,2807687179,3020495871,1180866812,410100952,3927582683,4182430767,186734380,3756733383,763408580,1053836080,3434856499,2722870694,1344288421,1131464017,2971354706,1708204729,2545590714,2229949006,1988219213,680717673,3673779818,3383336350,1002577565,4010310262,493091189,238226049,4233660802,2987750089,1082061258,1395524158,2705686845,1972364758,2279892693,2494862625,1725896226,952904198,3399985413,3656866545,731699698,4283874585,222117402,510512622,3959836397,3280807620,837199303,582374963,3504198960,68661723,4135334616,3844915500,390545967,1230274059,3141532936,2825850620,1510247935,2395924756,2091215383,1878366691,2644384480,3553878443,565732008,854102364,3229815391,340358836,3861050807,4117890627,119113024,1493875044,2875275879,3090270611,1247431312,2660249211,1828433272,2141937292,2378227087,3811616794,291187481,34330861,4032846830,615137029,3603020806,3314634738,939183345,1776939221,2609017814,2295496738,2058945313,2926798794,1545135305,1330124605,3173225534,4084100981,17165430,307568514,3762199681,888469610,3332340585,3587147933,665062302,2042050490,2346497209,2559330125,1793573966,3190661285,1279665062,1595330642,2910671697],ty=Bx(fy);var ny=()=>{let x=[,,,,,,,,];for(let f=0;f<8;f++){let t=Array(512);for(let n=0;n<256;n++){let h=BigInt(n);for(let v=0;v<8*(f+1);v++)if(h&1n)h=h>>1n^0x9a6c9329ac4bc9b5n;else h=h>>1n;t[n*2]=Number(h>>32n&0xffffffffn),t[n*2+1]=Number(h&0xffffffffn)}x[f]=new Uint32Array(t)}return x},wt,$x,bt,Bt,$t,Gt,Mt,zt,Nt,hy=()=>{if(!wt)wt=ny(),[$x,bt,Bt,$t,Gt,Mt,zt,Nt]=wt};class Zt{c1=0;c2=0;constructor(){hy(),this.reset()}update(c){let x=c.length,f=0,t=this.c1,n=this.c2;while(f+8<=x){let h=((n^c[f++])&255)<<1,v=((n>>>8^c[f++])&255)<<1,S=((n>>>16^c[f++])&255)<<1,y=((n>>>24^c[f++])&255)<<1,w=((t^c[f++])&255)<<1,B=((t>>>8^c[f++])&255)<<1,$=((t>>>16^c[f++])&255)<<1,N=((t>>>24^c[f++])&255)<<1;t=Nt[h]^zt[v]^Mt[S]^Gt[y]^$t[w]^Bt[B]^bt[$]^$x[N],n=Nt[h+1]^zt[v+1]^Mt[S+1]^Gt[y+1]^$t[w+1]^Bt[B+1]^bt[$+1]^$x[N+1]}while(f<x){let h=((n^c[f])&255)<<1;n=(n>>>8|(t&255)<<24)>>>0,t=t>>>8^$x[h],n^=$x[h+1],f++}this.c1=t,this.c2=n}async digest(){let c=this.c1^4294967295,x=this.c2^4294967295;return new Uint8Array([c>>>24,c>>>16&255,c>>>8&255,c&255,x>>>24,x>>>16&255,x>>>8&255,x&255])}reset(){this.c1=4294967295,this.c2=4294967295}}var Wt={CrtCrc64Nvme:null};var Rt=function(){function c(){this.crc32=new Qc}return c.prototype.update=function(x){if(bx(x))return;this.crc32.update(wx(x))},c.prototype.digest=function(){return mx(this,void 0,void 0,function(){return Tx(this,function(x){return[2,Dc(this.crc32.digest())]})})},c.prototype.reset=function(){this.crc32=new Qc},c}();var Qc=function(){function c(){this.checksum=4294967295}return c.prototype.update=function(x){var f,t;try{for(var n=_x(x),h=n.next();!h.done;h=n.next()){var v=h.value;this.checksum=this.checksum>>>8^Sy[(this.checksum^v)&255]}}catch(S){f={error:S}}finally{try{if(h&&!h.done&&(t=n.return))t.call(n)}finally{if(f)throw f.error}}return this},c.prototype.digest=function(){return(this.checksum^4294967295)>>>0},c}();var vy=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],Sy=Bx(vy);import*as jt from"zlib";class Ih{checksum=0;update(c){this.checksum=jt.crc32(c,this.checksum)}async digest(){return Dc(this.checksum)}reset(){this.checksum=0}}var gh=()=>{if(typeof jt.crc32>"u")return Rt;return Ih};var Ch=[O.CRC32,O.CRC32C,O.CRC64NVME,O.SHA1,O.SHA256],Kt=[O.SHA256,O.SHA1,O.CRC32,O.CRC32C,O.CRC64NVME];var qx=(c,x)=>{let{checksumAlgorithms:f={}}=x;switch(c){case O.MD5:return f?.MD5??x.md5;case O.CRC32:return f?.CRC32??gh();case O.CRC32C:return f?.CRC32C??yt;case O.CRC64NVME:if(typeof Wt.CrtCrc64Nvme!=="function")return f?.CRC64NVME??Zt;return f?.CRC64NVME??Wt.CrtCrc64Nvme;case O.SHA1:return f?.SHA1??x.sha1;case O.SHA256:return f?.SHA256??x.sha256;default:if(f?.[c])return f[c];throw Error(`The checksum algorithm "${c}" is not supported by the client. Select one of ${Ch}, or provide an implementation to the client constructor checksums field.`)}};var Ph=b(Ot(),1),px=(c,x)=>{let f=new c;return f.update(Ph.toUint8Array(x||"")),f.digest()};var _h={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:!0},qh=(c,x)=>(f,t)=>async(n)=>{if(!mh.HttpRequest.isInstance(n.request))return f(n);if(Uh("x-amz-checksum-",n.request.headers))return f(n);let{request:h,input:v}=n,{body:S,headers:y}=h,{base64Encoder:w,streamHasher:B}=c,{requestChecksumRequired:$,requestAlgorithmMember:N}=x,j=await c.requestChecksumCalculation(),I=N?.name,T=N?.httpHeader;if(I&&!v[I]){if(j===V.WHEN_SUPPORTED||$){if(v[I]=yx,T)y[T]=yx}}let cc=Xh(v,{requestChecksumRequired:$,requestAlgorithmMember:N?.name,requestChecksumCalculation:j}),jc=S,Kc=y;if(cc){switch(cc){case O.CRC32:Fc.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_CRC32","U");break;case O.CRC32C:Fc.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_CRC32C","V");break;case O.CRC64NVME:Fc.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_CRC64","W");break;case O.SHA1:Fc.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_SHA1","X");break;case O.SHA256:Fc.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_SHA256","Y");break}let l=Jc(cc),nt=qx(cc,c);if(Px(S)){let{getAwsChunkedEncodingStream:ht,bodyLengthChecker:V0}=c;jc=ht(typeof c.requestStreamBufferSize==="number"&&c.requestStreamBufferSize>=8192?Th.createBufferedReadable(S,c.requestStreamBufferSize,t.logger):S,{base64Encoder:w,bodyLengthChecker:V0,checksumLocationName:l,checksumAlgorithmFn:nt,streamHasher:B}),Kc={...y,"content-encoding":y["content-encoding"]?`${y["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":y["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":l},delete Kc["content-length"]}else if(!uh(l,y)){let ht=await px(nt,S);Kc={...y,[l]:w(ht)}}}try{return await f({...n,request:{...h,headers:Kc,body:jc}})}catch(l){if(l instanceof Error&&l.name==="InvalidChunkSizeError")try{if(!l.message.endsWith("."))l.message+=".";l.message+=" Set [requestStreamBufferSize=number e.g. 65_536] in client constructor to instruct AWS SDK to buffer your input stream."}catch(nt){}throw l}};var Gx=b(Lc(),1);var ph={name:"flexibleChecksumsInputMiddleware",toMiddleware:"serializerMiddleware",relation:"before",tags:["BODY_CHECKSUM"],override:!0},lh=(c,x)=>(f,t)=>async(n)=>{let h=n.input,{requestValidationModeMember:v}=x,S=await c.requestChecksumCalculation(),y=await c.responseChecksumValidation();switch(S){case V.WHEN_REQUIRED:Gx.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED","a");break;case V.WHEN_SUPPORTED:Gx.setFeature(t,"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED","Z");break}switch(y){case Oc.WHEN_REQUIRED:Gx.setFeature(t,"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED","c");break;case Oc.WHEN_SUPPORTED:Gx.setFeature(t,"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED","b");break}if(v&&!h[v]){if(y===Oc.WHEN_SUPPORTED)h[v]="ENABLED"}return f(n)};var oh=b(hc(),1);var Vx=(c=[])=>{let x=[],f=Kt.length;for(let t of c){let n=Kt.indexOf(t);if(n!==-1)x[n]=t;else x[f++]=t}return x.filter(Boolean)};var Vh=(c)=>{let x=c.lastIndexOf("-");if(x!==-1){let f=c.slice(x+1);if(!f.startsWith("0")){let t=parseInt(f,10);if(!isNaN(t)&&t>=1&&t<=1e4)return!0}}return!1};var ih=b(lx(),1);var Eh=async(c,{checksumAlgorithmFn:x,base64Encoder:f})=>f(await px(x,c));var dh=async(c,{config:x,responseAlgorithms:f,logger:t})=>{let n=Vx(f),{body:h,headers:v}=c;for(let S of n){let y=Jc(S),w=v[y];if(w){let B;try{B=qx(S,x)}catch(j){if(S===O.CRC64NVME){t?.warn(`Skipping ${O.CRC64NVME} checksum validation: ${j.message}`);continue}throw j}let{base64Encoder:$}=x;if(Px(h)){c.body=ih.createChecksumStream({expectedChecksum:w,checksumSourceLocation:y,checksum:new B,source:h,base64Encoder:$});return}let N=await Eh(h,{checksumAlgorithmFn:B,base64Encoder:$});if(N===w)break;throw Error(`Checksum mismatch: expected "${N}" but received "${w}" in response header "${y}".`)}}};var eh={name:"flexibleChecksumsResponseMiddleware",toMiddleware:"deserializerMiddleware",relation:"after",tags:["BODY_CHECKSUM"],override:!0},ah=(c,x)=>(f,t)=>async(n)=>{if(!oh.HttpRequest.isInstance(n.request))return f(n);let h=n.input,v=await f(n),S=v.response,{requestValidationModeMember:y,responseAlgorithms:w}=x;if(y&&h[y]==="ENABLED"){let{clientName:B,commandName:$}=t,N=Object.keys(c.checksumAlgorithms??{}).filter((T)=>{let cc=Jc(T);return S.headers[cc]!==void 0}),j=Vx([...w??[],...N]);if(B==="S3Client"&&$==="GetObjectCommand"&&j.every((T)=>{let cc=Jc(T),jc=S.headers[cc];return!jc||Vh(jc)}))return v;await dh(S,{config:c,responseAlgorithms:j,logger:t.logger})}return v};var Ex=(c,x)=>({applyToStack:(f)=>{f.add(qh(c,x),_h),f.addRelativeTo(lh(c,x),ph),f.addRelativeTo(ah(c,x),eh)}});var Jt=b(Dt(),1);var rh=(c)=>{let{requestChecksumCalculation:x,responseChecksumValidation:f,requestStreamBufferSize:t}=c;return Object.assign(c,{requestChecksumCalculation:Jt.normalizeProvider(x??gx),responseChecksumValidation:Jt.normalizeProvider(f??Cx),requestStreamBufferSize:Number(t??0),checksumAlgorithms:c.checksumAlgorithms??{}})};var Af=b(ew(),1),lS=b(aw(),1),VS=b(rw(),1);var cv=b(hc(),1),xv=b(E(),1),yy="content-length",wy="x-amz-decoded-content-length";function by(){return(c,x)=>async(f)=>{let{request:t}=f;if(cv.HttpRequest.isInstance(t)){if(!(yy in t.headers)&&!(wy in t.headers))if(typeof x?.logger?.warn==="function"&&!(x.logger instanceof xv.NoOpLogger))x.logger.warn("Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.");else console.warn("Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.")}return c({...f})}}var By={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},fv=(c)=>({applyToStack:(x)=>{x.add(by(),By)}});var tv=(c)=>{return(x,f)=>async(t)=>{let n=await c.region(),h=c.region,v=()=>{};if(f.__s3RegionRedirect)Object.defineProperty(c,"region",{writable:!1,value:async()=>{return f.__s3RegionRedirect}}),v=()=>Object.defineProperty(c,"region",{writable:!0,value:h});try{let S=await x(t);if(f.__s3RegionRedirect){v();let y=await c.region();if(n!==y)throw Error("Region was not restored following S3 region redirect.")}return S}catch(S){throw v(),S}}},nv={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function $y(c){return(x,f)=>async(t)=>{try{return await x(t)}catch(n){if(c.followRegionRedirects){let h=n?.$metadata?.httpStatusCode,v=f.commandName==="HeadBucketCommand",S=n?.$response?.headers?.["x-amz-bucket-region"];if(S){if(h===301||h===400&&(n?.name==="IllegalLocationConstraintException"||v)){try{let y=S;f.logger?.debug(`Redirecting from ${await c.region()} to ${y}`),f.__s3RegionRedirect=y}catch(y){throw Error("Region redirect failed: "+y)}return x(t)}}}throw n}}}var Gy={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},hv=(c)=>({applyToStack:(x)=>{x.add($y(c),Gy),x.addRelativeTo(tv(c),nv)}});var vv=b(hc(),1),Sv=b(E(),1),My=(c)=>{return(x,f)=>async(t)=>{let n=await x(t),{response:h}=n;if(vv.HttpResponse.isInstance(h)){if(h.headers.expires){h.headers.expiresstring=h.headers.expires;try{Sv.parseRfc7231DateTime(h.headers.expires)}catch(v){f.logger?.warn(`AWS SDK Warning for ${f.clientName}::${f.commandName} response parsing (${h.headers.expires}): ${v}`),delete h.headers.expires}}}return n}},zy={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},ix=(c)=>({applyToStack:(x)=>{x.addRelativeTo(My(c),zy)}});class dx{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=30000;constructor(c={}){this.data=c}get(c){let x=this.data[c];if(!x)return;return x}set(c,x){return this.data[c]=x,x}delete(c){delete this.data[c]}async purgeExpired(){let c=Date.now();if(this.lastPurgeTime+dx.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>c)return;for(let x in this.data){let f=this.data[x];if(!f.isRefreshing){let t=await f.identity;if(t.expiration){if(t.expiration.getTime()<c)delete this.data[x]}}}}}class Mx{_identity;isRefreshing;accessed;constructor(c,x=!1,f=Date.now()){this._identity=c,this.isRefreshing=x,this.accessed=f}get identity(){return this.accessed=Date.now(),this._identity}}class zx{createSessionFn;cache;static REFRESH_WINDOW_MS=60000;constructor(c,x=new dx){this.createSessionFn=c,this.cache=x}async getS3ExpressIdentity(c,x){let f=x.Bucket,{cache:t}=this,n=t.get(f);if(n)return n.identity.then((h)=>{if((h.expiration?.getTime()??0)<Date.now())return t.set(f,new Mx(this.getIdentity(f))).identity;if((h.expiration?.getTime()??0)<Date.now()+zx.REFRESH_WINDOW_MS&&!n.isRefreshing)n.isRefreshing=!0,this.getIdentity(f).then((y)=>{t.set(f,new Mx(Promise.resolve(y)))});return h});return t.set(f,new Mx(this.getIdentity(f))).identity}async getIdentity(c){await this.cache.purgeExpired().catch((t)=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache:
|
|
3
|
+
`+t)});let x=await this.createSessionFn(c);if(!x.Credentials?.AccessKeyId||!x.Credentials?.SecretAccessKey)throw Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:x.Credentials.AccessKeyId,secretAccessKey:x.Credentials.SecretAccessKey,sessionToken:x.Credentials.SessionToken,expiration:x.Credentials.Expiration?new Date(x.Credentials.Expiration):void 0}}}var zv=b(Mv(),1);var Ac=b(yv(),1),wv="Directory",bv="S3Express",Bv="sigv4-s3express",ox="X-Amz-S3session-Token",Nx=ox.toLowerCase(),Ny="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",Zy="s3_disable_express_session_auth",Qt={environmentVariableSelector:(c)=>Ac.booleanSelector(c,Ny,Ac.SelectorType.ENV),configFileSelector:(c)=>Ac.booleanSelector(c,Zy,Ac.SelectorType.CONFIG),default:!1};class ex extends zv.SignatureV4{async signWithCredentials(c,x,f){let t=$v(x);c.headers[Nx]=x.sessionToken;let n=this;return Gv(n,t),n.signRequest(c,f??{})}async presignWithCredentials(c,x,f){let t=$v(x);return delete c.headers[Nx],c.headers[ox]=x.sessionToken,c.query=c.query??{},c.query[ox]=x.sessionToken,Gv(this,t),this.presign(c,f)}}function $v(c){return{accessKeyId:c.accessKeyId,secretAccessKey:c.secretAccessKey,expiration:c.expiration}}function Gv(c,x){let f=setTimeout(()=>{throw Error("SignatureV4S3Express credential override was created but not called.")},10),t=c.credentialProvider,n=()=>{return clearTimeout(f),c.credentialProvider=t,Promise.resolve(x)};c.credentialProvider=n}var Nv=b(Lc(),1),Zv=b(hc(),1);var Wv=(c)=>{return(x,f)=>async(t)=>{if(f.endpointV2){let n=f.endpointV2,h=n.properties?.authSchemes?.[0]?.name===Bv;if(n.properties?.backend===bv||n.properties?.bucketType===wv)Nv.setFeature(f,"S3_EXPRESS_BUCKET","J"),f.isS3ExpressBucket=!0;if(h){let S=t.input.Bucket;if(S){let y=await c.s3ExpressIdentityProvider.getS3ExpressIdentity(await c.credentials(),{Bucket:S});if(f.s3ExpressIdentity=y,Zv.HttpRequest.isInstance(t.request)&&y.sessionToken)t.request.headers[Nx]=y.sessionToken}}}return x(t)}},Rv={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},kt=(c)=>({applyToStack:(x)=>{x.add(Wv(c),Rv)}});var Ov=b(Kv(),1),Jv=b(hc(),1),Dv=b(Dt(),1);var jv=async(c,x,f,t)=>{let n=await t.signWithCredentials(f,c,{});if(n.headers["X-Amz-Security-Token"]||n.headers["x-amz-security-token"])throw Error("X-Amz-Security-Token must not be set for s3-express requests.");return n};var Wy=(c)=>(x)=>{throw x},Ry=(c,x)=>{};var Qv=(c)=>(x,f)=>async(t)=>{if(!Jv.HttpRequest.isInstance(t.request))return x(t);let h=Dv.getSmithyContext(f).selectedHttpAuthScheme;if(!h)throw Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:v={}},identity:S,signer:y}=h,w;if(f.s3ExpressIdentity)w=await jv(f.s3ExpressIdentity,v,t.request,await c.signer());else w=await y.sign(t.request,S,v);let B=await x({...t,request:w}).catch((y.errorHandler||Wy)(v));return(y.successHandler||Ry)(B.response,v),B},st=(c)=>({applyToStack:(x)=>{x.addRelativeTo(Qv(c),Ov.httpSigningMiddlewareOptions)}});var kv=(c,{session:x})=>{let[f,t]=x,{forcePathStyle:n,useAccelerateEndpoint:h,disableMultiregionAccessPoints:v,followRegionRedirects:S,s3ExpressIdentityProvider:y,bucketEndpoint:w,expectContinueHeader:B}=c;return Object.assign(c,{forcePathStyle:n??!1,useAccelerateEndpoint:h??!1,disableMultiregionAccessPoints:v??!1,followRegionRedirects:S??!1,s3ExpressIdentityProvider:y??new zx(async($)=>f().send(new t({Bucket:$}))),bucketEndpoint:w??!1,expectContinueHeader:B??2097152})};var sv=b(hc(),1),ax=b(lx(),1),jy={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},Ky=3000,Oy=(c)=>(x,f)=>async(t)=>{let n=await x(t),{response:h}=n;if(!sv.HttpResponse.isInstance(h))return n;let{statusCode:v,body:S}=h;if(v<200||v>=300)return n;if(!(typeof S?.stream==="function"||typeof S?.pipe==="function"||typeof S?.tee==="function"))return n;let w=S,B=S;if(S&&typeof S==="object"&&!(S instanceof Uint8Array))[w,B]=await ax.splitStream(S);h.body=B;let $=await Jy(w,{streamCollector:async(j)=>{return ax.headStream(j,Ky)}});if(typeof w?.destroy==="function")w.destroy();let N=c.utf8Encoder($.subarray($.length-16));if($.length===0&&jy[f.commandName]){let j=Error("S3 aborted request");throw j.name="InternalError",j}if(N&&N.endsWith("</Error>"))h.statusCode=400;return n},Jy=(c=new Uint8Array,x)=>{if(c instanceof Uint8Array)return Promise.resolve(c);return x.streamCollector(c)||Promise.resolve(new Uint8Array)},Dy={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},wc=(c)=>({applyToStack:(x)=>{x.addRelativeTo(Oy(c),Dy)}});var Yv=(c)=>typeof c==="string"&&c.indexOf("arn:")===0&&c.split(":").length>=6;function Xv(c){return(x,f)=>async(t)=>{if(c.bucketEndpoint){let n=f.endpointV2;if(n){let h=t.input.Bucket;if(typeof h==="string")try{let v=new URL(h);f.endpointV2={...n,url:v}}catch(v){let S=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${h} could not be parsed as URL.`;if(f.logger?.constructor?.name==="NoOpLogger")console.warn(S);else f.logger?.warn?.(S);throw v}}}return x(t)}}var uv={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function Qy({bucketEndpoint:c}){return(x)=>async(f)=>{let{input:{Bucket:t}}=f;if(!c&&typeof t==="string"&&!Yv(t)&&t.indexOf("/")>=0){let n=Error(`Bucket name shouldn't contain '/', received '${t}'`);throw n.name="InvalidBucketName",n}return x({...f})}}var ky={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},Uv=(c)=>({applyToStack:(x)=>{x.add(Qy(c),ky),x.addRelativeTo(Xv(c),uv)}});var If=b(cb(),1),ES=b(IS(),1),lc=b(Kv(),1),iS=b(o1(),1);var Hv=(c)=>Object.assign(c,{eventStreamMarshaller:c.eventStreamSerdeProvider(c)});var dS=b(xb(),1),oS=b(kc(),1),gf=b(gS(),1),eS=b(E(),1);var nf=b(Lc(),1);var Yt=b(Mv(),1);var Zx={CrtSignerV4:null};class Wx{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){if(typeof Zx.CrtSignerV4==="function")return"crt";else if(typeof Yt.signatureV4aContainer.SignatureV4a==="function")return"js";return"none"}constructor(c){this.sigv4Signer=new ex(c),this.signerOptions=c}async sign(c,x={}){if(x.signingRegion==="*")return this.getSigv4aSigner().sign(c,x);return this.sigv4Signer.sign(c,x)}async signWithCredentials(c,x,f={}){if(f.signingRegion==="*"){let t=this.getSigv4aSigner(),n=Zx.CrtSignerV4;if(n&&t instanceof n)return t.signWithCredentials(c,x,f);else throw Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.signWithCredentials(c,x,f)}async presign(c,x={}){if(x.signingRegion==="*"){let f=this.getSigv4aSigner(),t=Zx.CrtSignerV4;if(t&&f instanceof t)return f.presign(c,x);else throw Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.presign(c,x)}async presignWithCredentials(c,x,f={}){if(f.signingRegion==="*")throw Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(c,x,f)}getSigv4aSigner(){if(!this.sigv4aSigner){let c=Zx.CrtSignerV4,x=Yt.signatureV4aContainer.SignatureV4a;if(this.signerOptions.runtime==="node"){if(!c&&!x)throw Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");if(c&&typeof c==="function")this.sigv4aSigner=new c({...this.signerOptions,signingAlgorithm:1});else if(x&&typeof x==="function")this.sigv4aSigner=new x({...this.signerOptions});else throw Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{if(!x||typeof x!=="function")throw Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");this.sigv4aSigner=new x({...this.signerOptions})}}return this.sigv4aSigner}}var T1=b(kc(),1),mc=b(Dt(),1);var m1=b(gy(),1),Pc=b(Iy(),1);var Ic={["required"]:!1,["type"]:"string"},gc={["required"]:!0,default:!1,["type"]:"boolean"},Rx={["required"]:!1,["type"]:"boolean"},d={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"Accelerate"},!0]},D={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseFIPS"},!0]},J={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseDualStack"},!0]},s={["fn"]:"isSet",["argv"]:[{["ref"]:"Endpoint"}]},H1={["fn"]:"aws.partition",["argv"]:[{["ref"]:"Region"}],["assign"]:"partitionResult"},Fv={["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"partitionResult"},"name"]},"aws-cn"]},Kx={["fn"]:"isSet",["argv"]:[{["ref"]:"Bucket"}]},K={["ref"]:"Bucket"},Lv={["conditions"]:[d],["error"]:"S3Express does not support S3 Accelerate.",["type"]:"error"},Av={["conditions"]:[s,{["fn"]:"parseURL",["argv"]:[{["ref"]:"Endpoint"}],["assign"]:"url"}],["rules"]:[{["conditions"]:[{["fn"]:"isSet",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"},!0]}],["rules"]:[{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"url"},"isIp"]},!0]}],["rules"]:[{["conditions"]:[{["fn"]:"uriEncode",["argv"]:[K],["assign"]:"uri_encoded_bucket"}],["rules"]:[{["endpoint"]:{["url"]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[K,!1]}],["rules"]:[{["endpoint"]:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"}],["type"]:"tree"},{["error"]:"S3Express bucket name is not a valid virtual hostable name.",["type"]:"error"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"url"},"isIp"]},!0]}],["rules"]:[{["conditions"]:[{["fn"]:"uriEncode",["argv"]:[K],["assign"]:"uri_encoded_bucket"}],["rules"]:[{["endpoint"]:{["url"]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[K,!1]}],["rules"]:[{["endpoint"]:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"}],["type"]:"tree"},{["error"]:"S3Express bucket name is not a valid virtual hostable name.",["type"]:"error"}],["type"]:"tree"},P={["fn"]:"parseURL",["argv"]:[{["ref"]:"Endpoint"}],["assign"]:"url"},Xt={["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"url"},"isIp"]},!0]},F1={["ref"]:"url"},L1={["fn"]:"uriEncode",["argv"]:[K],["assign"]:"uri_encoded_bucket"},_={["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},G={},A1={["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[K,!1]},Iv={["error"]:"S3Express bucket name is not a valid virtual hostable name.",["type"]:"error"},gv={["fn"]:"isSet",["argv"]:[{["ref"]:"UseS3ExpressControlEndpoint"}]},Cv={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseS3ExpressControlEndpoint"},!0]},M={["fn"]:"not",["argv"]:[s]},Z={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseDualStack"},!1]},z={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseFIPS"},!1]},rx={["error"]:"Unrecognized S3Express bucket name format.",["type"]:"error"},Pv={["fn"]:"not",["argv"]:[Kx]},mv={["ref"]:"hardwareType"},Tv={["conditions"]:[M],["error"]:"Expected a endpoint to be specified but no endpoint was found",["type"]:"error"},cf={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4a",["signingName"]:"s3-outposts",["signingRegionSet"]:["*"]},{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-outposts",["signingRegion"]:"{Region}"}]},ut={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"ForcePathStyle"},!1]},sy={["ref"]:"ForcePathStyle"},Y={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"Accelerate"},!1]},U={["fn"]:"stringEquals",["argv"]:[{["ref"]:"Region"},"aws-global"]},H={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"us-east-1"}]},R={["fn"]:"not",["argv"]:[U]},F={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseGlobalEndpoint"},!0]},_v={["url"]:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{Region}"}]},["headers"]:{}},X={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{Region}"}]},L={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseGlobalEndpoint"},!1]},qv={["url"]:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},pv={["url"]:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},lv={["url"]:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},Ut={["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[F1,"isIp"]},!1]},Ht={["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",["properties"]:X,["headers"]:{}},at={["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:X,["headers"]:{}},Vv={["endpoint"]:at,["type"]:"endpoint"},Ft={["url"]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},Ev={["url"]:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},xf={["error"]:"Invalid region: region was not a valid DNS name.",["type"]:"error"},m={["ref"]:"bucketArn"},I1={["ref"]:"arnType"},Lt={["fn"]:"getAttr",["argv"]:[m,"service"]},rt={["ref"]:"accessPointName"},iv={["conditions"]:[J],["error"]:"S3 Object Lambda does not support Dual-stack",["type"]:"error"},dv={["conditions"]:[d],["error"]:"S3 Object Lambda does not support S3 Accelerate",["type"]:"error"},ov={["conditions"]:[{["fn"]:"isSet",["argv"]:[{["ref"]:"DisableAccessPoints"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableAccessPoints"},!0]}],["error"]:"Access points are not supported for this operation",["type"]:"error"},At={["conditions"]:[{["fn"]:"isSet",["argv"]:[{["ref"]:"UseArnRegion"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseArnRegion"},!1]},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"region"]},"{Region}"]}]}],["error"]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",["type"]:"error"},g1={["fn"]:"getAttr",["argv"]:[{["ref"]:"bucketPartition"},"name"]},C1={["fn"]:"getAttr",["argv"]:[m,"accountId"]},It={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-object-lambda",["signingRegion"]:"{bucketArn#region}"}]},ev={["error"]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",["type"]:"error"},gt={["error"]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",["type"]:"error"},Ct={["error"]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",["type"]:"error"},Pt={["error"]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",["type"]:"error"},av={["error"]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",["type"]:"error"},rv={["error"]:"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided",["type"]:"error"},jx={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{bucketArn#region}"}]},c1={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4a",["signingName"]:"s3-outposts",["signingRegionSet"]:["*"]},{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-outposts",["signingRegion"]:"{bucketArn#region}"}]},x1={["fn"]:"aws.parseArn",["argv"]:[K]},f1={["url"]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:X,["headers"]:{}},t1={["url"]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:X,["headers"]:{}},n1={["url"]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:X,["headers"]:{}},mt={["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",["properties"]:X,["headers"]:{}},h1={["url"]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:X,["headers"]:{}},v1={["ref"]:"UseObjectLambdaEndpoint"},Tt={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-object-lambda",["signingRegion"]:"{Region}"}]},S1={["url"]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},y1={["url"]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},w1={["url"]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},_t={["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:X,["headers"]:{}},b1={["url"]:"https://s3.{Region}.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:{}},qt=[{["ref"]:"Region"}],Yy=[{["ref"]:"Endpoint"}],Xy=[K],pt=[d],Cc=[s,P],B1=[{["fn"]:"isSet",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"},!0]}],uy=[L1],lt=[A1],i=[H1],Vt=[D,J],Ox=[D,Z],Jx=[z,J],Dx=[z,Z],$1=[{["fn"]:"substring",["argv"]:[K,6,14,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,14,16,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],xc=[{["conditions"]:[D,J],["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Ox,["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Jx,["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Dx,["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:{}},["type"]:"endpoint"}],G1=[{["fn"]:"substring",["argv"]:[K,6,15,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,15,17,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],M1=[{["fn"]:"substring",["argv"]:[K,6,19,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,19,21,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],z1=[{["fn"]:"substring",["argv"]:[K,6,20,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,20,22,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],N1=[{["fn"]:"substring",["argv"]:[K,6,26,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,26,28,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],fc=[{["conditions"]:[D,J],["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Ox,["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Jx,["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"},{["conditions"]:Dx,["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},["headers"]:{}},["type"]:"endpoint"}],Z1=[K,0,7,!0],W1=[{["fn"]:"substring",["argv"]:[K,7,15,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,15,17,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],R1=[{["fn"]:"substring",["argv"]:[K,7,16,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,16,18,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],j1=[{["fn"]:"substring",["argv"]:[K,7,20,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,20,22,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],K1=[{["fn"]:"substring",["argv"]:[K,7,21,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,21,23,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],O1=[{["fn"]:"substring",["argv"]:[K,7,27,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[K,27,29,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],Uy=[Kx],J1=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"outpostId"},!1]}],D1=[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"regionPrefix"},"beta"]}],Hy=["*"],Q1=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"Region"},!1]}],bc=[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"Region"},"us-east-1"]}],Et=[{["fn"]:"stringEquals",["argv"]:[I1,"accesspoint"]}],k1=[{["fn"]:"getAttr",["argv"]:[m,"resourceId[1]"],["assign"]:"accessPointName"},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[rt,""]}]}],Fy=[m,"resourceId[1]"],s1=[J],it=[{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"region"]},""]}]}],Y1=[{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"resourceId[2]"]}]}]}],Ly=[m,"resourceId[2]"],dt=[{["fn"]:"aws.partition",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"region"]}],["assign"]:"bucketPartition"}],X1=[{["fn"]:"stringEquals",["argv"]:[g1,{["fn"]:"getAttr",["argv"]:[{["ref"]:"partitionResult"},"name"]}]}],ot=[{["fn"]:"isValidHostLabel",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"region"]},!0]}],et=[{["fn"]:"isValidHostLabel",["argv"]:[C1,!1]}],u1=[{["fn"]:"isValidHostLabel",["argv"]:[rt,!1]}],ff=[D],U1=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"Region"},!0]}],Ay={version:"1.0",parameters:{Bucket:Ic,Region:Ic,UseFIPS:gc,UseDualStack:gc,Endpoint:Ic,ForcePathStyle:gc,Accelerate:gc,UseGlobalEndpoint:gc,UseObjectLambdaEndpoint:Rx,Key:Ic,Prefix:Ic,CopySource:Ic,DisableAccessPoints:Rx,DisableMultiRegionAccessPoints:gc,UseArnRegion:Rx,UseS3ExpressControlEndpoint:Rx,DisableS3ExpressSessionAuth:Rx},["rules"]:[{["conditions"]:[{["fn"]:"isSet",["argv"]:qt}],["rules"]:[{["conditions"]:[d,D],error:"Accelerate cannot be used with FIPS",["type"]:"error"},{["conditions"]:[J,s],error:"Cannot set dual-stack in combination with a custom endpoint.",["type"]:"error"},{["conditions"]:[s,D],error:"A custom endpoint cannot be combined with FIPS",["type"]:"error"},{["conditions"]:[s,d],error:"A custom endpoint cannot be combined with S3 Accelerate",["type"]:"error"},{["conditions"]:[D,H1,Fv],error:"Partition does not support FIPS",["type"]:"error"},{["conditions"]:[Kx,{["fn"]:"substring",["argv"]:[K,0,6,!0],["assign"]:"bucketSuffix"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"bucketSuffix"},"--x-s3"]}],["rules"]:[Lv,Av,{["conditions"]:[gv,Cv],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:[L1,M],["rules"]:[{["conditions"]:Vt,endpoint:{["url"]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Ox,endpoint:{["url"]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Jx,endpoint:{["url"]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Dx,endpoint:{["url"]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:_,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:lt,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:B1,["rules"]:[{["conditions"]:$1,["rules"]:xc,["type"]:"tree"},{["conditions"]:G1,["rules"]:xc,["type"]:"tree"},{["conditions"]:M1,["rules"]:xc,["type"]:"tree"},{["conditions"]:z1,["rules"]:xc,["type"]:"tree"},{["conditions"]:N1,["rules"]:xc,["type"]:"tree"},rx],["type"]:"tree"},{["conditions"]:$1,["rules"]:fc,["type"]:"tree"},{["conditions"]:G1,["rules"]:fc,["type"]:"tree"},{["conditions"]:M1,["rules"]:fc,["type"]:"tree"},{["conditions"]:z1,["rules"]:fc,["type"]:"tree"},{["conditions"]:N1,["rules"]:fc,["type"]:"tree"},rx],["type"]:"tree"}],["type"]:"tree"},Iv],["type"]:"tree"},{["conditions"]:[Kx,{["fn"]:"substring",["argv"]:Z1,["assign"]:"accessPointSuffix"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"accessPointSuffix"},"--xa-s3"]}],["rules"]:[Lv,Av,{["conditions"]:lt,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:B1,["rules"]:[{["conditions"]:W1,["rules"]:xc,["type"]:"tree"},{["conditions"]:R1,["rules"]:xc,["type"]:"tree"},{["conditions"]:j1,["rules"]:xc,["type"]:"tree"},{["conditions"]:K1,["rules"]:xc,["type"]:"tree"},{["conditions"]:O1,["rules"]:xc,["type"]:"tree"},rx],["type"]:"tree"},{["conditions"]:W1,["rules"]:fc,["type"]:"tree"},{["conditions"]:R1,["rules"]:fc,["type"]:"tree"},{["conditions"]:j1,["rules"]:fc,["type"]:"tree"},{["conditions"]:K1,["rules"]:fc,["type"]:"tree"},{["conditions"]:O1,["rules"]:fc,["type"]:"tree"},rx],["type"]:"tree"}],["type"]:"tree"},Iv],["type"]:"tree"},{["conditions"]:[Pv,gv,Cv],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:Cc,endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Vt,endpoint:{["url"]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Ox,endpoint:{["url"]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Jx,endpoint:{["url"]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Dx,endpoint:{["url"]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}",["properties"]:_,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[Kx,{["fn"]:"substring",["argv"]:[K,49,50,!0],["assign"]:"hardwareType"},{["fn"]:"substring",["argv"]:[K,8,12,!0],["assign"]:"regionPrefix"},{["fn"]:"substring",["argv"]:Z1,["assign"]:"bucketAliasSuffix"},{["fn"]:"substring",["argv"]:[K,32,49,!0],["assign"]:"outpostId"},{["fn"]:"aws.partition",["argv"]:qt,["assign"]:"regionPartition"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"bucketAliasSuffix"},"--op-s3"]}],["rules"]:[{["conditions"]:J1,["rules"]:[{["conditions"]:lt,["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[mv,"e"]}],["rules"]:[{["conditions"]:D1,["rules"]:[Tv,{["conditions"]:Cc,endpoint:{["url"]:"https://{Bucket}.ec2.{url#authority}",["properties"]:cf,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{endpoint:{["url"]:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",["properties"]:cf,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[mv,"o"]}],["rules"]:[{["conditions"]:D1,["rules"]:[Tv,{["conditions"]:Cc,endpoint:{["url"]:"https://{Bucket}.op-{outpostId}.{url#authority}",["properties"]:cf,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{endpoint:{["url"]:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",["properties"]:cf,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',["type"]:"error"}],["type"]:"tree"},{error:"Invalid Outposts Bucket alias - it must be a valid bucket name.",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",["type"]:"error"}],["type"]:"tree"},{["conditions"]:Uy,["rules"]:[{["conditions"]:[s,{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"parseURL",["argv"]:Yy}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",["type"]:"error"},{["conditions"]:[ut,A1],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:Q1,["rules"]:[{["conditions"]:[d,Fv],error:"S3 Accelerate cannot be used in this region",["type"]:"error"},{["conditions"]:[J,D,Y,M,U],endpoint:{["url"]:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[J,D,Y,M,R,F],["rules"]:[{endpoint:_v,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[J,D,Y,M,R,L],endpoint:_v,["type"]:"endpoint"},{["conditions"]:[Z,D,Y,M,U],endpoint:{["url"]:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,D,Y,M,R,F],["rules"]:[{endpoint:qv,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,D,Y,M,R,L],endpoint:qv,["type"]:"endpoint"},{["conditions"]:[J,z,d,M,U],endpoint:{["url"]:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[J,z,d,M,R,F],["rules"]:[{endpoint:pv,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[J,z,d,M,R,L],endpoint:pv,["type"]:"endpoint"},{["conditions"]:[J,z,Y,M,U],endpoint:{["url"]:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[J,z,Y,M,R,F],["rules"]:[{endpoint:lv,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[J,z,Y,M,R,L],endpoint:lv,["type"]:"endpoint"},{["conditions"]:[Z,z,Y,s,P,Xt,U],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,z,Y,s,P,Ut,U],endpoint:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,z,Y,s,P,Xt,R,F],["rules"]:[{["conditions"]:bc,endpoint:Ht,["type"]:"endpoint"},{endpoint:Ht,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,z,Y,s,P,Ut,R,F],["rules"]:[{["conditions"]:bc,endpoint:at,["type"]:"endpoint"},Vv],["type"]:"tree"},{["conditions"]:[Z,z,Y,s,P,Xt,R,L],endpoint:Ht,["type"]:"endpoint"},{["conditions"]:[Z,z,Y,s,P,Ut,R,L],endpoint:at,["type"]:"endpoint"},{["conditions"]:[Z,z,d,M,U],endpoint:{["url"]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,z,d,M,R,F],["rules"]:[{["conditions"]:bc,endpoint:Ft,["type"]:"endpoint"},{endpoint:Ft,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,z,d,M,R,L],endpoint:Ft,["type"]:"endpoint"},{["conditions"]:[Z,z,Y,M,U],endpoint:{["url"]:"https://{Bucket}.s3.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,z,Y,M,R,F],["rules"]:[{["conditions"]:bc,endpoint:{["url"]:"https://{Bucket}.s3.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:G},["type"]:"endpoint"},{endpoint:Ev,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,z,Y,M,R,L],endpoint:Ev,["type"]:"endpoint"}],["type"]:"tree"},xf],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[s,P,{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[F1,"scheme"]},"http"]},{["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[K,!0]},ut,z,Z,Y],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:Q1,["rules"]:[Vv],["type"]:"tree"},xf],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[ut,{["fn"]:"aws.parseArn",["argv"]:Xy,["assign"]:"bucketArn"}],["rules"]:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:[m,"resourceId[0]"],["assign"]:"arnType"},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[I1,""]}]}],["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Lt,"s3-object-lambda"]}],["rules"]:[{["conditions"]:Et,["rules"]:[{["conditions"]:k1,["rules"]:[iv,dv,{["conditions"]:it,["rules"]:[ov,{["conditions"]:Y1,["rules"]:[At,{["conditions"]:dt,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:X1,["rules"]:[{["conditions"]:ot,["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[C1,""]}],error:"Invalid ARN: Missing account id",["type"]:"error"},{["conditions"]:et,["rules"]:[{["conditions"]:u1,["rules"]:[{["conditions"]:Cc,endpoint:{["url"]:"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",["properties"]:It,["headers"]:G},["type"]:"endpoint"},{["conditions"]:ff,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:It,["headers"]:G},["type"]:"endpoint"},{endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:It,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},ev],["type"]:"tree"},gt],["type"]:"tree"},Ct],["type"]:"tree"},Pt],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},av],["type"]:"tree"},{error:"Invalid ARN: bucket ARN is missing a region",["type"]:"error"}],["type"]:"tree"},rv],["type"]:"tree"},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",["type"]:"error"}],["type"]:"tree"},{["conditions"]:Et,["rules"]:[{["conditions"]:k1,["rules"]:[{["conditions"]:it,["rules"]:[{["conditions"]:Et,["rules"]:[{["conditions"]:it,["rules"]:[ov,{["conditions"]:Y1,["rules"]:[At,{["conditions"]:dt,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[g1,"{partitionResult#name}"]}],["rules"]:[{["conditions"]:ot,["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Lt,"s3"]}],["rules"]:[{["conditions"]:et,["rules"]:[{["conditions"]:u1,["rules"]:[{["conditions"]:pt,error:"Access Points do not support S3 Accelerate",["type"]:"error"},{["conditions"]:Vt,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:jx,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Ox,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:jx,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Jx,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:jx,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[z,Z,s,P],endpoint:{["url"]:"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",["properties"]:jx,["headers"]:G},["type"]:"endpoint"},{["conditions"]:Dx,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:jx,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},ev],["type"]:"tree"},gt],["type"]:"tree"},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",["type"]:"error"}],["type"]:"tree"},Ct],["type"]:"tree"},Pt],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},av],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"isValidHostLabel",["argv"]:[rt,!0]}],["rules"]:[{["conditions"]:s1,error:"S3 MRAP does not support dual-stack",["type"]:"error"},{["conditions"]:ff,error:"S3 MRAP does not support FIPS",["type"]:"error"},{["conditions"]:pt,error:"S3 MRAP does not support S3 Accelerate",["type"]:"error"},{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableMultiRegionAccessPoints"},!0]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",["type"]:"error"},{["conditions"]:[{["fn"]:"aws.partition",["argv"]:qt,["assign"]:"mrapPartition"}],["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"mrapPartition"},"name"]},{["fn"]:"getAttr",["argv"]:[m,"partition"]}]}],["rules"]:[{endpoint:{["url"]:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",["properties"]:{["authSchemes"]:[{["disableDoubleEncoding"]:!0,name:"sigv4a",["signingName"]:"s3",["signingRegionSet"]:Hy}]},["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",["type"]:"error"}],["type"]:"tree"}],["type"]:"tree"},{error:"Invalid Access Point Name",["type"]:"error"}],["type"]:"tree"},rv],["type"]:"tree"},{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Lt,"s3-outposts"]}],["rules"]:[{["conditions"]:s1,error:"S3 Outposts does not support Dual-stack",["type"]:"error"},{["conditions"]:ff,error:"S3 Outposts does not support FIPS",["type"]:"error"},{["conditions"]:pt,error:"S3 Outposts does not support S3 Accelerate",["type"]:"error"},{["conditions"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"getAttr",["argv"]:[m,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",["type"]:"error"},{["conditions"]:[{["fn"]:"getAttr",["argv"]:Fy,["assign"]:"outpostId"}],["rules"]:[{["conditions"]:J1,["rules"]:[At,{["conditions"]:dt,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:X1,["rules"]:[{["conditions"]:ot,["rules"]:[{["conditions"]:et,["rules"]:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:Ly,["assign"]:"outpostType"}],["rules"]:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:[m,"resourceId[3]"],["assign"]:"accessPointName"}],["rules"]:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"outpostType"},"accesspoint"]}],["rules"]:[{["conditions"]:Cc,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",["properties"]:c1,["headers"]:G},["type"]:"endpoint"},{endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:c1,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},{error:"Expected an outpost type `accesspoint`, found {outpostType}",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: expected an access point name",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: Expected a 4-component resource",["type"]:"error"}],["type"]:"tree"},gt],["type"]:"tree"},Ct],["type"]:"tree"},Pt],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: The Outpost Id was not set",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: No ARN type specified",["type"]:"error"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"substring",["argv"]:[K,0,4,!1],["assign"]:"arnPrefix"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"arnPrefix"},"arn:"]},{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[x1]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",["type"]:"error"},{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[sy,!0]},x1],error:"Path-style addressing cannot be used with ARN buckets",["type"]:"error"},{["conditions"]:uy,["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:[Y],["rules"]:[{["conditions"]:[J,M,D,U],endpoint:{["url"]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[J,M,D,R,F],["rules"]:[{endpoint:f1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[J,M,D,R,L],endpoint:f1,["type"]:"endpoint"},{["conditions"]:[Z,M,D,U],endpoint:{["url"]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,M,D,R,F],["rules"]:[{endpoint:t1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,M,D,R,L],endpoint:t1,["type"]:"endpoint"},{["conditions"]:[J,M,z,U],endpoint:{["url"]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[J,M,z,R,F],["rules"]:[{endpoint:n1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[J,M,z,R,L],endpoint:n1,["type"]:"endpoint"},{["conditions"]:[Z,s,P,z,U],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,s,P,z,R,F],["rules"]:[{["conditions"]:bc,endpoint:mt,["type"]:"endpoint"},{endpoint:mt,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,s,P,z,R,L],endpoint:mt,["type"]:"endpoint"},{["conditions"]:[Z,M,z,U],endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[Z,M,z,R,F],["rules"]:[{["conditions"]:bc,endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:X,["headers"]:G},["type"]:"endpoint"},{endpoint:h1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[Z,M,z,R,L],endpoint:h1,["type"]:"endpoint"}],["type"]:"tree"},{error:"Path-style addressing cannot be used with S3 Accelerate",["type"]:"error"}],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"isSet",["argv"]:[v1]},{["fn"]:"booleanEquals",["argv"]:[v1,!0]}],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:U1,["rules"]:[iv,dv,{["conditions"]:Cc,endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:Tt,["headers"]:G},["type"]:"endpoint"},{["conditions"]:ff,endpoint:{["url"]:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:Tt,["headers"]:G},["type"]:"endpoint"},{endpoint:{["url"]:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",["properties"]:Tt,["headers"]:G},["type"]:"endpoint"}],["type"]:"tree"},xf],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[Pv],["rules"]:[{["conditions"]:i,["rules"]:[{["conditions"]:U1,["rules"]:[{["conditions"]:[D,J,M,U],endpoint:{["url"]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[D,J,M,R,F],["rules"]:[{endpoint:S1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[D,J,M,R,L],endpoint:S1,["type"]:"endpoint"},{["conditions"]:[D,Z,M,U],endpoint:{["url"]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[D,Z,M,R,F],["rules"]:[{endpoint:y1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[D,Z,M,R,L],endpoint:y1,["type"]:"endpoint"},{["conditions"]:[z,J,M,U],endpoint:{["url"]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[z,J,M,R,F],["rules"]:[{endpoint:w1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[z,J,M,R,L],endpoint:w1,["type"]:"endpoint"},{["conditions"]:[z,Z,s,P,U],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[z,Z,s,P,R,F],["rules"]:[{["conditions"]:bc,endpoint:_t,["type"]:"endpoint"},{endpoint:_t,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[z,Z,s,P,R,L],endpoint:_t,["type"]:"endpoint"},{["conditions"]:[z,Z,M,U],endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}",["properties"]:H,["headers"]:G},["type"]:"endpoint"},{["conditions"]:[z,Z,M,R,F],["rules"]:[{["conditions"]:bc,endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}",["properties"]:X,["headers"]:G},["type"]:"endpoint"},{endpoint:b1,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[z,Z,M,R,L],endpoint:b1,["type"]:"endpoint"}],["type"]:"tree"},xf],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{error:"A region must be set when sending requests to S3.",["type"]:"error"}]},P1=Ay;var Cy=new Pc.EndpointCache({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),tf=(c,x={})=>{return Cy.get(c,()=>Pc.resolveEndpoint(P1,{endpointParams:c,logger:x.logger}))};Pc.customEndpointFunctions.aws=m1.awsEndpointFunctions;var Py=(c)=>async(x,f,t)=>{if(!t)throw Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let n=await c(x,f,t),h=mc.getSmithyContext(f)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!h)throw Error(`getEndpointParameterInstructions() is not defined on '${f.commandName}'`);let v=await T1.resolveParams(t,{getEndpointParameterInstructions:h},x);return Object.assign(n,v)},my=async(c,x,f)=>{return{operation:mc.getSmithyContext(x).operation,region:await mc.normalizeProvider(c.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}},_1=Py(my);function q1(c){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:c.region},propertiesExtractor:(x,f)=>({signingProperties:{config:x,context:f}})}}function p1(c){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:c.region},propertiesExtractor:(x,f)=>({signingProperties:{config:x,context:f}})}}var Ty=(c,x,f)=>{return(n)=>{let v=c(n).properties?.authSchemes;if(!v)return x(n);let S=[];for(let y of v){let{name:w,properties:B={},...$}=y,N=w.toLowerCase();if(w!==N)console.warn(`HttpAuthScheme has been normalized with lowercasing: '${w}' to '${N}'`);let j;if(N==="sigv4a"){j="aws.auth#sigv4a";let cc=v.find((jc)=>{let Kc=jc.name.toLowerCase();return Kc!=="sigv4a"&&Kc.startsWith("sigv4")});if(Wx.sigv4aDependency()==="none"&&cc)continue}else if(N.startsWith("sigv4"))j="aws.auth#sigv4";else throw Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${N}'`);let I=f[j];if(!I)throw Error(`Could not find HttpAuthOption create function for '${j}'`);let T=I(n);T.schemeId=j,T.signingProperties={...T.signingProperties||{},...$,...B},S.push(T)}return S}},_y=(c)=>{let x=[];switch(c.operation){default:x.push(q1(c)),x.push(p1(c))}return x},l1=Ty(tf,_y,{"aws.auth#sigv4":q1,"aws.auth#sigv4a":p1}),V1=(c)=>{let x=nf.resolveAwsSdkSigV4Config(c),f=nf.resolveAwsSdkSigV4AConfig(x);return Object.assign(f,{authSchemePreference:mc.normalizeProvider(c.authSchemePreference??[])})};var hS=b(kc(),1),vS=b(E(),1);var E1=(c)=>{return Object.assign(c,{useFipsEndpoint:c.useFipsEndpoint??!1,useDualstackEndpoint:c.useDualstackEndpoint??!1,forcePathStyle:c.forcePathStyle??!1,useAccelerateEndpoint:c.useAccelerateEndpoint??!1,useGlobalEndpoint:c.useGlobalEndpoint??!1,disableMultiregionAccessPoints:c.disableMultiregionAccessPoints??!1,defaultSigningName:"s3",clientContextParams:c.clientContextParams??{}})},tc={ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},DisableS3ExpressSessionAuth:{type:"clientContextParams",name:"disableS3ExpressSessionAuth"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}};var cn=b(o1(),1);var i1=b(E(),1);class u extends i1.ServiceException{constructor(c){super(c);Object.setPrototypeOf(this,u.prototype)}}class hf extends u{name="NoSuchUpload";$fault="client";constructor(c){super({name:"NoSuchUpload",$fault:"client",...c});Object.setPrototypeOf(this,hf.prototype)}}class vf extends u{name="AccessDenied";$fault="client";constructor(c){super({name:"AccessDenied",$fault:"client",...c});Object.setPrototypeOf(this,vf.prototype)}}class Sf extends u{name="ObjectNotInActiveTierError";$fault="client";constructor(c){super({name:"ObjectNotInActiveTierError",$fault:"client",...c});Object.setPrototypeOf(this,Sf.prototype)}}class yf extends u{name="BucketAlreadyExists";$fault="client";constructor(c){super({name:"BucketAlreadyExists",$fault:"client",...c});Object.setPrototypeOf(this,yf.prototype)}}class wf extends u{name="BucketAlreadyOwnedByYou";$fault="client";constructor(c){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...c});Object.setPrototypeOf(this,wf.prototype)}}class bf extends u{name="NoSuchBucket";$fault="client";constructor(c){super({name:"NoSuchBucket",$fault:"client",...c});Object.setPrototypeOf(this,bf.prototype)}}class Bf extends u{name="InvalidObjectState";$fault="client";StorageClass;AccessTier;constructor(c){super({name:"InvalidObjectState",$fault:"client",...c});Object.setPrototypeOf(this,Bf.prototype),this.StorageClass=c.StorageClass,this.AccessTier=c.AccessTier}}class $f extends u{name="NoSuchKey";$fault="client";constructor(c){super({name:"NoSuchKey",$fault:"client",...c});Object.setPrototypeOf(this,$f.prototype)}}class Gf extends u{name="NotFound";$fault="client";constructor(c){super({name:"NotFound",$fault:"client",...c});Object.setPrototypeOf(this,Gf.prototype)}}class Mf extends u{name="EncryptionTypeMismatch";$fault="client";constructor(c){super({name:"EncryptionTypeMismatch",$fault:"client",...c});Object.setPrototypeOf(this,Mf.prototype)}}class zf extends u{name="InvalidRequest";$fault="client";constructor(c){super({name:"InvalidRequest",$fault:"client",...c});Object.setPrototypeOf(this,zf.prototype)}}class Nf extends u{name="InvalidWriteOffset";$fault="client";constructor(c){super({name:"InvalidWriteOffset",$fault:"client",...c});Object.setPrototypeOf(this,Nf.prototype)}}class Zf extends u{name="TooManyParts";$fault="client";constructor(c){super({name:"TooManyParts",$fault:"client",...c});Object.setPrototypeOf(this,Zf.prototype)}}class Wf extends u{name="IdempotencyParameterMismatch";$fault="client";constructor(c){super({name:"IdempotencyParameterMismatch",$fault:"client",...c});Object.setPrototypeOf(this,Wf.prototype)}}class Rf extends u{name="ObjectAlreadyInActiveTierError";$fault="client";constructor(c){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...c});Object.setPrototypeOf(this,Rf.prototype)}}var e1=cn.TypeRegistry.for("smithy.ts.sdk.synthetic.com.amazonaws.s3"),qy=[-3,"smithy.ts.sdk.synthetic.com.amazonaws.s3","S3ServiceException",0,[],[]];e1.registerError(qy,u);var C=cn.TypeRegistry.for("com.amazonaws.s3"),py=[-3,"com.amazonaws.s3","AccessDenied",{["error"]:"client",["httpError"]:403},[],[]];C.registerError(py,vf);var ly=[-3,"com.amazonaws.s3","BucketAlreadyExists",{["error"]:"client",["httpError"]:409},[],[]];C.registerError(ly,yf);var Vy=[-3,"com.amazonaws.s3","BucketAlreadyOwnedByYou",{["error"]:"client",["httpError"]:409},[],[]];C.registerError(Vy,wf);var Ey=[-3,"com.amazonaws.s3","EncryptionTypeMismatch",{["error"]:"client",["httpError"]:400},[],[]];C.registerError(Ey,Mf);var iy=[-3,"com.amazonaws.s3","IdempotencyParameterMismatch",{["error"]:"client",["httpError"]:400},[],[]];C.registerError(iy,Wf);var dy=[-3,"com.amazonaws.s3","InvalidObjectState",{["error"]:"client",["httpError"]:403},["StorageClass","AccessTier"],[0,0]];C.registerError(dy,Bf);var oy=[-3,"com.amazonaws.s3","InvalidRequest",{["error"]:"client",["httpError"]:400},[],[]];C.registerError(oy,zf);var ey=[-3,"com.amazonaws.s3","InvalidWriteOffset",{["error"]:"client",["httpError"]:400},[],[]];C.registerError(ey,Nf);var ay=[-3,"com.amazonaws.s3","NoSuchBucket",{["error"]:"client",["httpError"]:404},[],[]];C.registerError(ay,bf);var ry=[-3,"com.amazonaws.s3","NoSuchKey",{["error"]:"client",["httpError"]:404},[],[]];C.registerError(ry,$f);var cw=[-3,"com.amazonaws.s3","NoSuchUpload",{["error"]:"client",["httpError"]:404},[],[]];C.registerError(cw,hf);var xw=[-3,"com.amazonaws.s3","NotFound",{["error"]:"client"},[],[]];C.registerError(xw,Gf);var fw=[-3,"com.amazonaws.s3","ObjectAlreadyInActiveTierError",{["error"]:"client",["httpError"]:403},[],[]];C.registerError(fw,Rf);var tw=[-3,"com.amazonaws.s3","ObjectNotInActiveTierError",{["error"]:"client",["httpError"]:403},[],[]];C.registerError(tw,Sf);var nw=[-3,"com.amazonaws.s3","TooManyParts",{["error"]:"client",["httpError"]:400},[],[]];C.registerError(nw,Zf);var a1=[e1,C];var d1=[0,"com.amazonaws.s3","SessionCredentialValue",8,0],xn=[0,"com.amazonaws.s3","SSECustomerKey",8,0],jf=[0,"com.amazonaws.s3","SSEKMSEncryptionContext",8,0],Tc=[0,"com.amazonaws.s3","SSEKMSKeyId",8,0],r1=[0,"com.amazonaws.s3","StreamingBlob",{["streaming"]:1},42];var hw=[3,"com.amazonaws.s3","CommonPrefix",0,["Prefix"],[0]];var vw=[3,"com.amazonaws.s3","CreateSessionOutput",{["xmlName"]:"CreateSessionResult"},["Credentials","ServerSideEncryption","SSEKMSKeyId","SSEKMSEncryptionContext","BucketKeyEnabled"],[[()=>Rw,{["xmlName"]:"Credentials"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[()=>jf,{["httpHeader"]:"x-amz-server-side-encryption-context"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}]],1],Sw=[3,"com.amazonaws.s3","CreateSessionRequest",0,["Bucket","SessionMode","ServerSideEncryption","SSEKMSKeyId","SSEKMSEncryptionContext","BucketKeyEnabled"],[[0,1],[0,{["httpHeader"]:"x-amz-create-session-mode"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[()=>jf,{["httpHeader"]:"x-amz-server-side-encryption-context"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}]],1];var yw=[3,"com.amazonaws.s3","GetObjectOutput",0,["Body","DeleteMarker","AcceptRanges","Expiration","Restore","LastModified","ContentLength","ETag","ChecksumCRC32","ChecksumCRC32C","ChecksumCRC64NVME","ChecksumSHA1","ChecksumSHA256","ChecksumType","MissingMeta","VersionId","CacheControl","ContentDisposition","ContentEncoding","ContentLanguage","ContentRange","ContentType","Expires","ExpiresString","WebsiteRedirectLocation","ServerSideEncryption","Metadata","SSECustomerAlgorithm","SSECustomerKeyMD5","SSEKMSKeyId","BucketKeyEnabled","StorageClass","RequestCharged","ReplicationStatus","PartsCount","TagCount","ObjectLockMode","ObjectLockRetainUntilDate","ObjectLockLegalHoldStatus"],[[()=>r1,16],[2,{["httpHeader"]:"x-amz-delete-marker"}],[0,{["httpHeader"]:"accept-ranges"}],[0,{["httpHeader"]:"x-amz-expiration"}],[0,{["httpHeader"]:"x-amz-restore"}],[4,{["httpHeader"]:"Last-Modified"}],[1,{["httpHeader"]:"Content-Length"}],[0,{["httpHeader"]:"ETag"}],[0,{["httpHeader"]:"x-amz-checksum-crc32"}],[0,{["httpHeader"]:"x-amz-checksum-crc32c"}],[0,{["httpHeader"]:"x-amz-checksum-crc64nvme"}],[0,{["httpHeader"]:"x-amz-checksum-sha1"}],[0,{["httpHeader"]:"x-amz-checksum-sha256"}],[0,{["httpHeader"]:"x-amz-checksum-type"}],[1,{["httpHeader"]:"x-amz-missing-meta"}],[0,{["httpHeader"]:"x-amz-version-id"}],[0,{["httpHeader"]:"Cache-Control"}],[0,{["httpHeader"]:"Content-Disposition"}],[0,{["httpHeader"]:"Content-Encoding"}],[0,{["httpHeader"]:"Content-Language"}],[0,{["httpHeader"]:"Content-Range"}],[0,{["httpHeader"]:"Content-Type"}],[4,{["httpHeader"]:"Expires"}],[0,{["httpHeader"]:"ExpiresString"}],[0,{["httpHeader"]:"x-amz-website-redirect-location"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[128,{["httpPrefixHeaders"]:"x-amz-meta-"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}],[0,{["httpHeader"]:"x-amz-storage-class"}],[0,{["httpHeader"]:"x-amz-request-charged"}],[0,{["httpHeader"]:"x-amz-replication-status"}],[1,{["httpHeader"]:"x-amz-mp-parts-count"}],[1,{["httpHeader"]:"x-amz-tagging-count"}],[0,{["httpHeader"]:"x-amz-object-lock-mode"}],[5,{["httpHeader"]:"x-amz-object-lock-retain-until-date"}],[0,{["httpHeader"]:"x-amz-object-lock-legal-hold"}]]],ww=[3,"com.amazonaws.s3","GetObjectRequest",0,["Bucket","Key","IfMatch","IfModifiedSince","IfNoneMatch","IfUnmodifiedSince","Range","ResponseCacheControl","ResponseContentDisposition","ResponseContentEncoding","ResponseContentLanguage","ResponseContentType","ResponseExpires","VersionId","SSECustomerAlgorithm","SSECustomerKey","SSECustomerKeyMD5","RequestPayer","PartNumber","ExpectedBucketOwner","ChecksumMode"],[[0,1],[0,1],[0,{["httpHeader"]:"If-Match"}],[4,{["httpHeader"]:"If-Modified-Since"}],[0,{["httpHeader"]:"If-None-Match"}],[4,{["httpHeader"]:"If-Unmodified-Since"}],[0,{["httpHeader"]:"Range"}],[0,{["httpQuery"]:"response-cache-control"}],[0,{["httpQuery"]:"response-content-disposition"}],[0,{["httpQuery"]:"response-content-encoding"}],[0,{["httpQuery"]:"response-content-language"}],[0,{["httpQuery"]:"response-content-type"}],[6,{["httpQuery"]:"response-expires"}],[0,{["httpQuery"]:"versionId"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[()=>xn,{["httpHeader"]:"x-amz-server-side-encryption-customer-key"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[0,{["httpHeader"]:"x-amz-request-payer"}],[1,{["httpQuery"]:"partNumber"}],[0,{["httpHeader"]:"x-amz-expected-bucket-owner"}],[0,{["httpHeader"]:"x-amz-checksum-mode"}]],2];var bw=[3,"com.amazonaws.s3","HeadObjectOutput",0,["DeleteMarker","AcceptRanges","Expiration","Restore","ArchiveStatus","LastModified","ContentLength","ChecksumCRC32","ChecksumCRC32C","ChecksumCRC64NVME","ChecksumSHA1","ChecksumSHA256","ChecksumType","ETag","MissingMeta","VersionId","CacheControl","ContentDisposition","ContentEncoding","ContentLanguage","ContentType","ContentRange","Expires","ExpiresString","WebsiteRedirectLocation","ServerSideEncryption","Metadata","SSECustomerAlgorithm","SSECustomerKeyMD5","SSEKMSKeyId","BucketKeyEnabled","StorageClass","RequestCharged","ReplicationStatus","PartsCount","TagCount","ObjectLockMode","ObjectLockRetainUntilDate","ObjectLockLegalHoldStatus"],[[2,{["httpHeader"]:"x-amz-delete-marker"}],[0,{["httpHeader"]:"accept-ranges"}],[0,{["httpHeader"]:"x-amz-expiration"}],[0,{["httpHeader"]:"x-amz-restore"}],[0,{["httpHeader"]:"x-amz-archive-status"}],[4,{["httpHeader"]:"Last-Modified"}],[1,{["httpHeader"]:"Content-Length"}],[0,{["httpHeader"]:"x-amz-checksum-crc32"}],[0,{["httpHeader"]:"x-amz-checksum-crc32c"}],[0,{["httpHeader"]:"x-amz-checksum-crc64nvme"}],[0,{["httpHeader"]:"x-amz-checksum-sha1"}],[0,{["httpHeader"]:"x-amz-checksum-sha256"}],[0,{["httpHeader"]:"x-amz-checksum-type"}],[0,{["httpHeader"]:"ETag"}],[1,{["httpHeader"]:"x-amz-missing-meta"}],[0,{["httpHeader"]:"x-amz-version-id"}],[0,{["httpHeader"]:"Cache-Control"}],[0,{["httpHeader"]:"Content-Disposition"}],[0,{["httpHeader"]:"Content-Encoding"}],[0,{["httpHeader"]:"Content-Language"}],[0,{["httpHeader"]:"Content-Type"}],[0,{["httpHeader"]:"Content-Range"}],[4,{["httpHeader"]:"Expires"}],[0,{["httpHeader"]:"ExpiresString"}],[0,{["httpHeader"]:"x-amz-website-redirect-location"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[128,{["httpPrefixHeaders"]:"x-amz-meta-"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}],[0,{["httpHeader"]:"x-amz-storage-class"}],[0,{["httpHeader"]:"x-amz-request-charged"}],[0,{["httpHeader"]:"x-amz-replication-status"}],[1,{["httpHeader"]:"x-amz-mp-parts-count"}],[1,{["httpHeader"]:"x-amz-tagging-count"}],[0,{["httpHeader"]:"x-amz-object-lock-mode"}],[5,{["httpHeader"]:"x-amz-object-lock-retain-until-date"}],[0,{["httpHeader"]:"x-amz-object-lock-legal-hold"}]]],Bw=[3,"com.amazonaws.s3","HeadObjectRequest",0,["Bucket","Key","IfMatch","IfModifiedSince","IfNoneMatch","IfUnmodifiedSince","Range","ResponseCacheControl","ResponseContentDisposition","ResponseContentEncoding","ResponseContentLanguage","ResponseContentType","ResponseExpires","VersionId","SSECustomerAlgorithm","SSECustomerKey","SSECustomerKeyMD5","RequestPayer","PartNumber","ExpectedBucketOwner","ChecksumMode"],[[0,1],[0,1],[0,{["httpHeader"]:"If-Match"}],[4,{["httpHeader"]:"If-Modified-Since"}],[0,{["httpHeader"]:"If-None-Match"}],[4,{["httpHeader"]:"If-Unmodified-Since"}],[0,{["httpHeader"]:"Range"}],[0,{["httpQuery"]:"response-cache-control"}],[0,{["httpQuery"]:"response-content-disposition"}],[0,{["httpQuery"]:"response-content-encoding"}],[0,{["httpQuery"]:"response-content-language"}],[0,{["httpQuery"]:"response-content-type"}],[6,{["httpQuery"]:"response-expires"}],[0,{["httpQuery"]:"versionId"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[()=>xn,{["httpHeader"]:"x-amz-server-side-encryption-customer-key"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[0,{["httpHeader"]:"x-amz-request-payer"}],[1,{["httpQuery"]:"partNumber"}],[0,{["httpHeader"]:"x-amz-expected-bucket-owner"}],[0,{["httpHeader"]:"x-amz-checksum-mode"}]],2];var $w=[3,"com.amazonaws.s3","ListObjectsV2Output",{["xmlName"]:"ListBucketResult"},["IsTruncated","Contents","Name","Prefix","Delimiter","MaxKeys","CommonPrefixes","EncodingType","KeyCount","ContinuationToken","NextContinuationToken","StartAfter","RequestCharged"],[2,[()=>Kw,{["xmlFlattened"]:1}],0,0,0,1,[()=>jw,{["xmlFlattened"]:1}],0,1,0,0,0,[0,{["httpHeader"]:"x-amz-request-charged"}]]],Gw=[3,"com.amazonaws.s3","ListObjectsV2Request",0,["Bucket","Delimiter","EncodingType","MaxKeys","Prefix","ContinuationToken","FetchOwner","StartAfter","RequestPayer","ExpectedBucketOwner","OptionalObjectAttributes"],[[0,1],[0,{["httpQuery"]:"delimiter"}],[0,{["httpQuery"]:"encoding-type"}],[1,{["httpQuery"]:"max-keys"}],[0,{["httpQuery"]:"prefix"}],[0,{["httpQuery"]:"continuation-token"}],[2,{["httpQuery"]:"fetch-owner"}],[0,{["httpQuery"]:"start-after"}],[0,{["httpHeader"]:"x-amz-request-payer"}],[0,{["httpHeader"]:"x-amz-expected-bucket-owner"}],[64,{["httpHeader"]:"x-amz-optional-object-attributes"}]],1];var Mw=[3,"com.amazonaws.s3","Object",0,["Key","LastModified","ETag","ChecksumAlgorithm","ChecksumType","Size","StorageClass","Owner","RestoreStatus"],[0,4,0,[64,{["xmlFlattened"]:1}],0,1,0,()=>zw,()=>Ww]];var zw=[3,"com.amazonaws.s3","Owner",0,["DisplayName","ID"],[0,0]];var Nw=[3,"com.amazonaws.s3","PutObjectOutput",0,["Expiration","ETag","ChecksumCRC32","ChecksumCRC32C","ChecksumCRC64NVME","ChecksumSHA1","ChecksumSHA256","ChecksumType","ServerSideEncryption","VersionId","SSECustomerAlgorithm","SSECustomerKeyMD5","SSEKMSKeyId","SSEKMSEncryptionContext","BucketKeyEnabled","Size","RequestCharged"],[[0,{["httpHeader"]:"x-amz-expiration"}],[0,{["httpHeader"]:"ETag"}],[0,{["httpHeader"]:"x-amz-checksum-crc32"}],[0,{["httpHeader"]:"x-amz-checksum-crc32c"}],[0,{["httpHeader"]:"x-amz-checksum-crc64nvme"}],[0,{["httpHeader"]:"x-amz-checksum-sha1"}],[0,{["httpHeader"]:"x-amz-checksum-sha256"}],[0,{["httpHeader"]:"x-amz-checksum-type"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[0,{["httpHeader"]:"x-amz-version-id"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[()=>jf,{["httpHeader"]:"x-amz-server-side-encryption-context"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}],[1,{["httpHeader"]:"x-amz-object-size"}],[0,{["httpHeader"]:"x-amz-request-charged"}]]],Zw=[3,"com.amazonaws.s3","PutObjectRequest",0,["Bucket","Key","ACL","Body","CacheControl","ContentDisposition","ContentEncoding","ContentLanguage","ContentLength","ContentMD5","ContentType","ChecksumAlgorithm","ChecksumCRC32","ChecksumCRC32C","ChecksumCRC64NVME","ChecksumSHA1","ChecksumSHA256","Expires","IfMatch","IfNoneMatch","GrantFullControl","GrantRead","GrantReadACP","GrantWriteACP","WriteOffsetBytes","Metadata","ServerSideEncryption","StorageClass","WebsiteRedirectLocation","SSECustomerAlgorithm","SSECustomerKey","SSECustomerKeyMD5","SSEKMSKeyId","SSEKMSEncryptionContext","BucketKeyEnabled","RequestPayer","Tagging","ObjectLockMode","ObjectLockRetainUntilDate","ObjectLockLegalHoldStatus","ExpectedBucketOwner"],[[0,1],[0,1],[0,{["httpHeader"]:"x-amz-acl"}],[()=>r1,16],[0,{["httpHeader"]:"Cache-Control"}],[0,{["httpHeader"]:"Content-Disposition"}],[0,{["httpHeader"]:"Content-Encoding"}],[0,{["httpHeader"]:"Content-Language"}],[1,{["httpHeader"]:"Content-Length"}],[0,{["httpHeader"]:"Content-MD5"}],[0,{["httpHeader"]:"Content-Type"}],[0,{["httpHeader"]:"x-amz-sdk-checksum-algorithm"}],[0,{["httpHeader"]:"x-amz-checksum-crc32"}],[0,{["httpHeader"]:"x-amz-checksum-crc32c"}],[0,{["httpHeader"]:"x-amz-checksum-crc64nvme"}],[0,{["httpHeader"]:"x-amz-checksum-sha1"}],[0,{["httpHeader"]:"x-amz-checksum-sha256"}],[4,{["httpHeader"]:"Expires"}],[0,{["httpHeader"]:"If-Match"}],[0,{["httpHeader"]:"If-None-Match"}],[0,{["httpHeader"]:"x-amz-grant-full-control"}],[0,{["httpHeader"]:"x-amz-grant-read"}],[0,{["httpHeader"]:"x-amz-grant-read-acp"}],[0,{["httpHeader"]:"x-amz-grant-write-acp"}],[1,{["httpHeader"]:"x-amz-write-offset-bytes"}],[128,{["httpPrefixHeaders"]:"x-amz-meta-"}],[0,{["httpHeader"]:"x-amz-server-side-encryption"}],[0,{["httpHeader"]:"x-amz-storage-class"}],[0,{["httpHeader"]:"x-amz-website-redirect-location"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-algorithm"}],[()=>xn,{["httpHeader"]:"x-amz-server-side-encryption-customer-key"}],[0,{["httpHeader"]:"x-amz-server-side-encryption-customer-key-MD5"}],[()=>Tc,{["httpHeader"]:"x-amz-server-side-encryption-aws-kms-key-id"}],[()=>jf,{["httpHeader"]:"x-amz-server-side-encryption-context"}],[2,{["httpHeader"]:"x-amz-server-side-encryption-bucket-key-enabled"}],[0,{["httpHeader"]:"x-amz-request-payer"}],[0,{["httpHeader"]:"x-amz-tagging"}],[0,{["httpHeader"]:"x-amz-object-lock-mode"}],[5,{["httpHeader"]:"x-amz-object-lock-retain-until-date"}],[0,{["httpHeader"]:"x-amz-object-lock-legal-hold"}],[0,{["httpHeader"]:"x-amz-expected-bucket-owner"}]],2];var Ww=[3,"com.amazonaws.s3","RestoreStatus",0,["IsRestoreInProgress","RestoreExpiryDate"],[2,4]];var Rw=[3,"com.amazonaws.s3","SessionCredentials",0,["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],[[0,{["xmlName"]:"AccessKeyId"}],[()=>d1,{["xmlName"]:"SecretAccessKey"}],[()=>d1,{["xmlName"]:"SessionToken"}],[4,{["xmlName"]:"Expiration"}]],4];var jw=[1,"com.amazonaws.s3","CommonPrefixList",0,()=>hw];var Kw=[1,"com.amazonaws.s3","ObjectList",0,[()=>Mw,0]];var cS=[9,"com.amazonaws.s3","CreateSession",{["http"]:["GET","/?session",200]},()=>Sw,()=>vw];var xS=[9,"com.amazonaws.s3","GetObject",{["httpChecksum"]:"-",["http"]:["GET","/{Key+}?x-id=GetObject",200]},()=>ww,()=>yw];var fS=[9,"com.amazonaws.s3","HeadObject",{["http"]:["HEAD","/{Key+}",200]},()=>Bw,()=>bw];var tS=[9,"com.amazonaws.s3","ListObjectsV2",{["http"]:["GET","/?list-type=2",200]},()=>Gw,()=>$w];var nS=[9,"com.amazonaws.s3","PutObject",{["httpChecksum"]:"-",["http"]:["PUT","/{Key+}?x-id=PutObject",200]},()=>Zw,()=>Nw];class fn extends vS.Command.classBuilder().ep({...tc,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(c,x,f,t){return[hS.getEndpointPlugin(f,c.getEndpointParameterInstructions()),wc(f)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").sc(cS).build(){}var SS={name:"@aws-sdk/client-s3",description:"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",version:"3.1015.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-s3","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo s3",test:"yarn g:vitest run","test:browser":"node ./test/browser-build/esbuild && yarn g:vitest run -c vitest.config.browser.mts","test:browser:watch":"node ./test/browser-build/esbuild && yarn g:vitest watch -c vitest.config.browser.mts","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts && yarn test:browser","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs","test:integration":"yarn g:vitest run -c vitest.config.integ.mts","test:integration:watch":"yarn g:vitest watch -c vitest.config.integ.mts","test:watch":"yarn g:vitest watch"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha1-browser":"5.2.0","@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.24","@aws-sdk/credential-provider-node":"^3.972.25","@aws-sdk/middleware-bucket-endpoint":"^3.972.8","@aws-sdk/middleware-expect-continue":"^3.972.8","@aws-sdk/middleware-flexible-checksums":"^3.974.4","@aws-sdk/middleware-host-header":"^3.972.8","@aws-sdk/middleware-location-constraint":"^3.972.8","@aws-sdk/middleware-logger":"^3.972.8","@aws-sdk/middleware-recursion-detection":"^3.972.8","@aws-sdk/middleware-sdk-s3":"^3.972.24","@aws-sdk/middleware-ssec":"^3.972.8","@aws-sdk/middleware-user-agent":"^3.972.25","@aws-sdk/region-config-resolver":"^3.972.9","@aws-sdk/signature-v4-multi-region":"^3.996.12","@aws-sdk/types":"^3.973.6","@aws-sdk/util-endpoints":"^3.996.5","@aws-sdk/util-user-agent-browser":"^3.972.8","@aws-sdk/util-user-agent-node":"^3.973.11","@smithy/config-resolver":"^4.4.13","@smithy/core":"^3.23.12","@smithy/eventstream-serde-browser":"^4.2.12","@smithy/eventstream-serde-config-resolver":"^4.3.12","@smithy/eventstream-serde-node":"^4.2.12","@smithy/fetch-http-handler":"^5.3.15","@smithy/hash-blob-browser":"^4.2.13","@smithy/hash-node":"^4.2.12","@smithy/hash-stream-node":"^4.2.12","@smithy/invalid-dependency":"^4.2.12","@smithy/md5-js":"^4.2.12","@smithy/middleware-content-length":"^4.2.12","@smithy/middleware-endpoint":"^4.4.27","@smithy/middleware-retry":"^4.4.44","@smithy/middleware-serde":"^4.2.15","@smithy/middleware-stack":"^4.2.12","@smithy/node-config-provider":"^4.3.12","@smithy/node-http-handler":"^4.5.0","@smithy/protocol-http":"^5.3.12","@smithy/smithy-client":"^4.12.7","@smithy/types":"^4.13.1","@smithy/url-parser":"^4.2.12","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.43","@smithy/util-defaults-mode-node":"^4.2.47","@smithy/util-endpoints":"^3.3.3","@smithy/util-middleware":"^4.2.12","@smithy/util-retry":"^4.2.12","@smithy/util-stream":"^4.5.20","@smithy/util-utf8":"^4.2.2","@smithy/util-waiter":"^4.2.13",tslib:"^2.6.2"},devDependencies:{"@aws-sdk/signature-v4-crt":"3.1015.0","@smithy/snapshot-testing":"^2.0.3","@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3",vitest:"^4.0.17"},engines:{node:">=20.0.0"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-s3"}};var pc=b(Lc(),1);var Of=b(wS(),1),NS=b(Dw(),1);var Kf=b(wS(),1),yS="AWS_EC2_METADATA_DISABLED",bS=async(c)=>{let{ENV_CMDS_FULL_URI:x,ENV_CMDS_RELATIVE_URI:f,fromContainerMetadata:t,fromInstanceMetadata:n}=await import("../chunk-0e8313cy.js");if(process.env[f]||process.env[x]){c.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:h}=await import("../chunk-64smn3fn.js");return Kf.chain(h(c),t(c))}if(process.env[yS]&&process.env[yS]!=="false")return async()=>{throw new Kf.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:c.logger})};return c.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),n(c)};function BS(c,x){let f=Jw(c),t,n,h,v=async(S)=>{if(S?.forceRefresh)return await f(S);if(h?.expiration){if(h?.expiration?.getTime()<Date.now())h=void 0}if(t)await t;else if(!h||x?.(h))if(h){if(!n)n=f(S).then((y)=>{h=y}).finally(()=>{n=void 0})}else return t=f(S).then((y)=>{h=y}).finally(()=>{t=void 0}),v(S);return h};return v}var Jw=(c)=>async(x)=>{let f;for(let t of c)try{return await t(x)}catch(n){if(f=n,n?.tryNextLink)continue;throw n}throw f};var $S=!1,ZS=(c={})=>BS([async()=>{if(c.profile??process.env[NS.ENV_PROFILE]){if(process.env[GS]&&process.env[MS]){if(!$S)(c.logger?.warn&&c.logger?.constructor?.name!=="NoOpLogger"?c.logger.warn.bind(c.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
|
|
4
|
+
Multiple credential sources detected:
|
|
5
|
+
Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.
|
|
6
|
+
This SDK will proceed with the AWS_PROFILE value.
|
|
7
|
+
|
|
8
|
+
However, a future version may change this behavior to prefer the ENV static credentials.
|
|
9
|
+
Please ensure that your environment only sets either the AWS_PROFILE or the
|
|
10
|
+
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.
|
|
11
|
+
`),$S=!0}throw new Of.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:c.logger,tryNextLink:!0})}return c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),zS(c)()},async(x)=>{c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:f,ssoAccountId:t,ssoRegion:n,ssoRoleName:h,ssoSession:v}=c;if(!f&&!t&&!n&&!h&&!v)throw new Of.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:c.logger});let{fromSSO:S}=await import("../chunk-qwy7b1v6.js");return S(c)(x)},async(x)=>{c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:f}=await import("../chunk-h3b5b2rm.js");return f(c)(x)},async(x)=>{c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:f}=await import("../chunk-01gbjyc5.js");return f(c)(x)},async(x)=>{c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:f}=await import("../chunk-0g7fds80.js");return f(c)(x)},async()=>{return c.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await bS(c))()},async()=>{throw new Of.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:c.logger})}],Qw);var Qw=(c)=>c?.expiration!==void 0&&c.expiration.getTime()-Date.now()<300000;var _c=b(yv(),1),kw="AWS_S3_USE_ARN_REGION",sw="s3_use_arn_region",WS={environmentVariableSelector:(c)=>_c.booleanSelector(c,kw,_c.SelectorType.ENV),configFileSelector:(c)=>_c.booleanSelector(c,sw,_c.SelectorType.CONFIG),default:void 0};var Yf=b(Vw(),1),Gc=b(IS(),1);var Bc=b(jS(),1);var KS=b(jS(),1);class qc{bytes;constructor(c){if(this.bytes=c,c.byteLength!==8)throw Error("Int64 buffers must be exactly 8 bytes")}static fromNumber(c){if(c>9223372036854776000||c<-9223372036854776000)throw Error(`${c} is too large (or, if negative, too small) to represent as an Int64`);let x=new Uint8Array(8);for(let f=7,t=Math.abs(Math.round(c));f>-1&&t>0;f--,t/=256)x[f]=t;if(c<0)RS(x);return new qc(x)}valueOf(){let c=this.bytes.slice(0),x=c[0]&128;if(x)RS(c);return parseInt(KS.toHex(c),16)*(x?-1:1)}toString(){return String(this.valueOf())}}function RS(c){for(let x=0;x<8;x++)c[x]^=255;for(let x=7;x>-1;x--)if(c[x]++,c[x]!==0)break}class tn{toUtf8;fromUtf8;constructor(c,x){this.toUtf8=c,this.fromUtf8=x}format(c){let x=[];for(let n of Object.keys(c)){let h=this.fromUtf8(n);x.push(Uint8Array.from([h.byteLength]),h,this.formatHeaderValue(c[n]))}let f=new Uint8Array(x.reduce((n,h)=>n+h.byteLength,0)),t=0;for(let n of x)f.set(n,t),t+=n.byteLength;return f}formatHeaderValue(c){switch(c.type){case"boolean":return Uint8Array.from([c.value?0:1]);case"byte":return Uint8Array.from([2,c.value]);case"short":let x=new DataView(new ArrayBuffer(3));return x.setUint8(0,3),x.setInt16(1,c.value,!1),new Uint8Array(x.buffer);case"integer":let f=new DataView(new ArrayBuffer(5));return f.setUint8(0,4),f.setInt32(1,c.value,!1),new Uint8Array(f.buffer);case"long":let t=new Uint8Array(9);return t[0]=5,t.set(c.value.bytes,1),t;case"binary":let n=new DataView(new ArrayBuffer(3+c.value.byteLength));n.setUint8(0,6),n.setUint16(1,c.value.byteLength,!1);let h=new Uint8Array(n.buffer);return h.set(c.value,3),h;case"string":let v=this.fromUtf8(c.value),S=new DataView(new ArrayBuffer(3+v.byteLength));S.setUint8(0,7),S.setUint16(1,v.byteLength,!1);let y=new Uint8Array(S.buffer);return y.set(v,3),y;case"timestamp":let w=new Uint8Array(9);return w[0]=8,w.set(qc.fromNumber(c.value.valueOf()).bytes,1),w;case"uuid":if(!Iw.test(c.value))throw Error(`Invalid UUID received: ${c.value}`);let B=new Uint8Array(17);return B[0]=9,B.set(Bc.fromHex(c.value.replace(/\-/g,"")),1),B}}parse(c){let x={},f=0;while(f<c.byteLength){let t=c.getUint8(f++),n=this.toUtf8(new Uint8Array(c.buffer,c.byteOffset+f,t));switch(f+=t,c.getUint8(f++)){case 0:x[n]={type:JS,value:!0};break;case 1:x[n]={type:JS,value:!1};break;case 2:x[n]={type:Yw,value:c.getInt8(f++)};break;case 3:x[n]={type:Xw,value:c.getInt16(f,!1)},f+=2;break;case 4:x[n]={type:uw,value:c.getInt32(f,!1)},f+=4;break;case 5:x[n]={type:Uw,value:new qc(new Uint8Array(c.buffer,c.byteOffset+f,8))},f+=8;break;case 6:let h=c.getUint16(f,!1);f+=2,x[n]={type:Hw,value:new Uint8Array(c.buffer,c.byteOffset+f,h)},f+=h;break;case 7:let v=c.getUint16(f,!1);f+=2,x[n]={type:Fw,value:this.toUtf8(new Uint8Array(c.buffer,c.byteOffset+f,v))},f+=v;break;case 8:x[n]={type:Lw,value:new Date(new qc(new Uint8Array(c.buffer,c.byteOffset+f,8)).valueOf())},f+=8;break;case 9:let S=new Uint8Array(c.buffer,c.byteOffset+f,16);f+=16,x[n]={type:Aw,value:`${Bc.toHex(S.subarray(0,4))}-${Bc.toHex(S.subarray(4,6))}-${Bc.toHex(S.subarray(6,8))}-${Bc.toHex(S.subarray(8,10))}-${Bc.toHex(S.subarray(10))}`};break;default:throw Error("Unrecognized header type tag")}}return x}}var OS;(function(c){c[c.boolTrue=0]="boolTrue",c[c.boolFalse=1]="boolFalse",c[c.byte=2]="byte",c[c.short=3]="short",c[c.integer=4]="integer",c[c.long=5]="long",c[c.byteArray=6]="byteArray",c[c.string=7]="string",c[c.timestamp=8]="timestamp",c[c.uuid=9]="uuid"})(OS||(OS={}));var JS="boolean",Yw="byte",Xw="short",uw="integer",Uw="long",Hw="binary",Fw="string",Lw="timestamp",Aw="uuid",Iw=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;var DS=4,$c=DS*2,Yc=4,gw=$c+Yc*2;function QS({byteLength:c,byteOffset:x,buffer:f}){if(c<gw)throw Error("Provided message too short to accommodate event stream message overhead");let t=new DataView(f,x,c),n=t.getUint32(0,!1);if(c!==n)throw Error("Reported message length does not match received message length");let h=t.getUint32(DS,!1),v=t.getUint32($c,!1),S=t.getUint32(c-Yc,!1),y=new Qc().update(new Uint8Array(f,x,$c));if(v!==y.digest())throw Error(`The prelude checksum specified in the message (${v}) does not match the calculated CRC32 checksum (${y.digest()})`);if(y.update(new Uint8Array(f,x+$c,c-($c+Yc))),S!==y.digest())throw Error(`The message checksum (${y.digest()}) did not match the expected value of ${S}`);return{headers:new DataView(f,x+$c+Yc,h),body:new Uint8Array(f,x+$c+Yc+h,n-h-($c+Yc+Yc))}}class nn{headerMarshaller;messageBuffer;isEndOfStream;constructor(c,x){this.headerMarshaller=new tn(c,x),this.messageBuffer=[],this.isEndOfStream=!1}feed(c){this.messageBuffer.push(this.decode(c))}endOfStream(){this.isEndOfStream=!0}getMessage(){let c=this.messageBuffer.pop(),x=this.isEndOfStream;return{getMessage(){return c},isEndOfStream(){return x}}}getAvailableMessages(){let c=this.messageBuffer;this.messageBuffer=[];let x=this.isEndOfStream;return{getMessages(){return c},isEndOfStream(){return x}}}encode({headers:c,body:x}){let f=this.headerMarshaller.format(c),t=f.byteLength+x.byteLength+16,n=new Uint8Array(t),h=new DataView(n.buffer,n.byteOffset,n.byteLength),v=new Qc;return h.setUint32(0,t,!1),h.setUint32(4,f.byteLength,!1),h.setUint32(8,v.update(n.subarray(0,8)).digest(),!1),n.set(f,12),n.set(x,f.byteLength+12),h.setUint32(t-4,v.update(n.subarray(8,t-4)).digest(),!1),n}decode(c){let{headers:x,body:f}=QS(c);return{headers:this.headerMarshaller.parse(x),body:f}}formatHeaders(c){return this.headerMarshaller.format(c)}}class hn{options;constructor(c){this.options=c}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let c of this.options.inputStream)yield this.options.decoder.decode(c)}}class vn{options;constructor(c){this.options=c}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let c of this.options.messageStream)yield this.options.encoder.encode(c);if(this.options.includeEndFrame)yield new Uint8Array(0)}}class Sn{options;constructor(c){this.options=c}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let c of this.options.messageStream){let x=await this.options.deserializer(c);if(x===void 0)continue;yield x}}}class yn{options;constructor(c){this.options=c}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let c of this.options.inputStream)yield this.options.serializer(c)}}function kS(c){let x=0,f=0,t=null,n=null,h=(S)=>{if(typeof S!=="number")throw Error("Attempted to allocate an event message where size was not a number: "+S);x=S,f=4,t=new Uint8Array(S),new DataView(t.buffer).setUint32(0,S,!1)},v=async function*(){let S=c[Symbol.asyncIterator]();while(!0){let{value:y,done:w}=await S.next();if(w){if(!x)return;else if(x===f)yield t;else throw Error("Truncated event message received.");return}let B=y.length,$=0;while($<B){if(!t){let j=B-$;if(!n)n=new Uint8Array(4);let I=Math.min(4-f,j);if(n.set(y.slice($,$+I),f),f+=I,$+=I,f<4)break;h(new DataView(n.buffer).getUint32(0,!1)),n=null}let N=Math.min(x-f,B-$);if(t.set(y.slice($,$+N),f),f+=N,$+=N,x&&x===f)yield t,t=null,x=0,f=0}}};return{[Symbol.asyncIterator]:v}}function sS(c,x){return async function(f){let{value:t}=f.headers[":message-type"];if(t==="error"){let n=Error(f.headers[":error-message"].value||"UnknownError");throw n.name=f.headers[":error-code"].value,n}else if(t==="exception"){let n=f.headers[":exception-type"].value,h={[n]:f},v=await c(h);if(v.$unknown){let S=Error(x(f.body));throw S.name=n,S}throw v[n]}else if(t==="event"){let n={[f.headers[":event-type"].value]:f},h=await c(n);if(h.$unknown)return;return h}else throw Error(`Unrecognizable event type: ${f.headers[":event-type"].value}`)}}class wn{eventStreamCodec;utfEncoder;constructor({utf8Encoder:c,utf8Decoder:x}){this.eventStreamCodec=new nn(c,x),this.utfEncoder=c}deserialize(c,x){let f=kS(c);return new Sn({messageStream:new hn({inputStream:f,decoder:this.eventStreamCodec}),deserializer:sS(x,this.utfEncoder)})}serialize(c,x){return new vn({messageStream:new yn({inputStream:c,serializer:x}),encoder:this.eventStreamCodec,includeEndFrame:!0})}}import{Readable as Cw}from"stream";async function*YS(c){let x=!1,f=!1,t=[];c.on("error",(n)=>{if(!x)x=!0;if(n)throw n}),c.on("data",(n)=>{t.push(n)}),c.on("end",()=>{x=!0});while(!f){let n=await new Promise((h)=>setTimeout(()=>h(t.shift()),0));if(n)yield n;f=x&&t.length===0}}class bn{universalMarshaller;constructor({utf8Encoder:c,utf8Decoder:x}){this.universalMarshaller=new wn({utf8Decoder:x,utf8Encoder:c})}deserialize(c,x){let f=typeof c[Symbol.asyncIterator]==="function"?c:YS(c);return this.universalMarshaller.deserialize(f,x)}serialize(c,x){return Cw.from(this.universalMarshaller.serialize(c,x))}}var XS=(c)=>new bn(c);var sf=b(Ew(),1);var uS=b(Ot(),1);import{Writable as Pw}from"stream";class Bn extends Pw{hash;constructor(c,x){super(x);this.hash=c}_write(c,x,f){try{this.hash.update(uS.toUint8Array(c))}catch(t){return f(t)}f()}}var US=(c,x)=>{if(x.readableFlowing!==null)throw Error("Unable to calculate hash for flowing readable stream");let f=new c,t=new Bn(f);return x.pipe(t),new Promise((n,h)=>{x.on("error",(v)=>{t.end(),h(v)}),t.on("error",h),t.on("finish",()=>{f.digest().then(n).catch(h)})})};var Xf=b(gS(),1),q=b(lw(),1),uf=b(qw(),1),Uf=b(E(),1),CS=b(iw(),1),PS=b(dw(),1),mS=b(pw(),1);var Jf=b(Lc(),1),HS=b(_w(),1);var FS=b(E(),1),LS=b(Tw(),1),Df=b(mw(),1),Qf=b(lx(),1),kf=b(Ot(),1);var AS=(c)=>{return{apiVersion:"2006-03-01",base64Decoder:c?.base64Decoder??Df.fromBase64,base64Encoder:c?.base64Encoder??Df.toBase64,disableHostPrefix:c?.disableHostPrefix??!1,endpointProvider:c?.endpointProvider??tf,extensions:c?.extensions??[],getAwsChunkedEncodingStream:c?.getAwsChunkedEncodingStream??Qf.getAwsChunkedEncodingStream,httpAuthSchemeProvider:c?.httpAuthSchemeProvider??l1,httpAuthSchemes:c?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(x)=>x.getIdentityProvider("aws.auth#sigv4"),signer:new Jf.AwsSdkSigV4Signer},{schemeId:"aws.auth#sigv4a",identityProvider:(x)=>x.getIdentityProvider("aws.auth#sigv4a"),signer:new Jf.AwsSdkSigV4ASigner}],logger:c?.logger??new FS.NoOpLogger,protocol:c?.protocol??HS.AwsRestXmlProtocol,protocolSettings:c?.protocolSettings??{defaultNamespace:"com.amazonaws.s3",errorTypeRegistries:a1,xmlNamespace:"http://s3.amazonaws.com/doc/2006-03-01/",version:"2006-03-01",serviceTarget:"AmazonS3"},sdkStreamMixin:c?.sdkStreamMixin??Qf.sdkStreamMixin,serviceId:c?.serviceId??"S3",signerConstructor:c?.signerConstructor??Wx,signingEscapePath:c?.signingEscapePath??!1,urlParser:c?.urlParser??LS.parseUrl,useArnRegion:c?.useArnRegion??void 0,utf8Decoder:c?.utf8Decoder??kf.fromUtf8,utf8Encoder:c?.utf8Encoder??kf.toUtf8}};var TS=(c)=>{Uf.emitWarningIfUnsupportedVersion(process.version);let x=PS.resolveDefaultsModeConfig(c),f=()=>x().then(Uf.loadConfigsForDefaultMode),t=AS(c);pc.emitWarningIfUnsupportedVersion(process.version);let n={profile:c?.profile,logger:t.logger};return{...t,...c,runtime:"node",defaultsMode:x,authSchemePreference:c?.authSchemePreference??q.loadConfig(pc.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,n),bodyLengthChecker:c?.bodyLengthChecker??CS.calculateBodyLength,credentialDefaultProvider:c?.credentialDefaultProvider??ZS,defaultUserAgentProvider:c?.defaultUserAgentProvider??Yf.createDefaultUserAgentProvider({serviceId:t.serviceId,clientVersion:SS.version}),disableS3ExpressSessionAuth:c?.disableS3ExpressSessionAuth??q.loadConfig(Qt,n),eventStreamSerdeProvider:c?.eventStreamSerdeProvider??XS,maxAttempts:c?.maxAttempts??q.loadConfig(Xf.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,c),md5:c?.md5??sf.Hash.bind(null,"md5"),region:c?.region??q.loadConfig(Gc.NODE_REGION_CONFIG_OPTIONS,{...Gc.NODE_REGION_CONFIG_FILE_OPTIONS,...n}),requestChecksumCalculation:c?.requestChecksumCalculation??q.loadConfig(sh,n),requestHandler:uf.NodeHttpHandler.create(c?.requestHandler??f),responseChecksumValidation:c?.responseChecksumValidation??q.loadConfig(Yh,n),retryMode:c?.retryMode??q.loadConfig({...Xf.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await f()).retryMode||mS.DEFAULT_RETRY_MODE},c),sha1:c?.sha1??sf.Hash.bind(null,"sha1"),sha256:c?.sha256??sf.Hash.bind(null,"sha256"),sigv4aSigningRegionSet:c?.sigv4aSigningRegionSet??q.loadConfig(pc.NODE_SIGV4A_CONFIG_OPTIONS,n),streamCollector:c?.streamCollector??uf.streamCollector,streamHasher:c?.streamHasher??US,useArnRegion:c?.useArnRegion??q.loadConfig(WS,n),useDualstackEndpoint:c?.useDualstackEndpoint??q.loadConfig(Gc.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,n),useFipsEndpoint:c?.useFipsEndpoint??q.loadConfig(Gc.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,n),userAgentAppId:c?.userAgentAppId??q.loadConfig(Yf.NODE_APP_ID_CONFIG_OPTIONS,n)}};var Hf=b(ow(),1),Ff=b(hc(),1),Lf=b(E(),1);var _S=(c)=>{let{httpAuthSchemes:x,httpAuthSchemeProvider:f,credentials:t}=c;return{setHttpAuthScheme(n){let h=x.findIndex((v)=>v.schemeId===n.schemeId);if(h===-1)x.push(n);else x.splice(h,1,n)},httpAuthSchemes(){return x},setHttpAuthSchemeProvider(n){f=n},httpAuthSchemeProvider(){return f},setCredentials(n){t=n},credentials(){return t}}},qS=(c)=>{return{httpAuthSchemes:c.httpAuthSchemes(),httpAuthSchemeProvider:c.httpAuthSchemeProvider(),credentials:c.credentials()}};var pS=(c,x)=>{let f=Object.assign(Hf.getAwsRegionExtensionConfiguration(c),Lf.getDefaultExtensionConfiguration(c),Ff.getHttpHandlerExtensionConfiguration(c),_S(c));return x.forEach((t)=>t.configure(f)),Object.assign(c,Hf.resolveAwsRegionExtensionConfiguration(f),Lf.resolveDefaultRuntimeConfig(f),Ff.resolveHttpHandlerRuntimeConfig(f),qS(f))};class $n extends eS.Client{config;constructor(...[c]){let x=TS(c||{});super(x);this.initConfig=x;let f=E1(x),t=If.resolveUserAgentConfig(f),n=rh(t),h=gf.resolveRetryConfig(n),v=ES.resolveRegionConfig(h),S=Af.resolveHostHeaderConfig(v),y=oS.resolveEndpointConfig(S),w=Hv(y),B=V1(w),$=kv(B,{session:[()=>this,fn]}),N=pS($,c?.extensions||[]);this.config=N,this.middlewareStack.use(iS.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(If.getUserAgentPlugin(this.config)),this.middlewareStack.use(gf.getRetryPlugin(this.config)),this.middlewareStack.use(dS.getContentLengthPlugin(this.config)),this.middlewareStack.use(Af.getHostHeaderPlugin(this.config)),this.middlewareStack.use(lS.getLoggerPlugin(this.config)),this.middlewareStack.use(VS.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(lc.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:_1,identityProviderConfigProvider:async(j)=>new lc.DefaultIdentityProviderConfig({"aws.auth#sigv4":j.credentials,"aws.auth#sigv4a":j.credentials})})),this.middlewareStack.use(lc.getHttpSigningPlugin(this.config)),this.middlewareStack.use(Uv(this.config)),this.middlewareStack.use(Qh(this.config)),this.middlewareStack.use(hv(this.config)),this.middlewareStack.use(kt(this.config)),this.middlewareStack.use(st(this.config))}destroy(){super.destroy()}}function fb(c){return(x)=>async(f)=>{let t={...f.input},n=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let h of n){let v=t[h.target];if(v){let S;if(typeof v==="string")if(nb(v,c))S=c.base64Decoder(v);else S=c.utf8Decoder(v),t[h.target]=c.base64Encoder(S);else S=ArrayBuffer.isView(v)?new Uint8Array(v.buffer,v.byteOffset,v.byteLength):new Uint8Array(v),t[h.target]=c.base64Encoder(S);let y=new c.md5;y.update(S),t[h.hash]=c.base64Encoder(await y.digest())}}return x({...f,input:t})}}var tb={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:!0},Vc=(c)=>({applyToStack:(x)=>{x.add(fb(c),tb)}});function nb(c,x){if(!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(c))return!1;try{return x.base64Decoder(c).length===32}catch{return!1}}var aS=b(kc(),1),rS=b(E(),1);class Cf extends rS.Command.classBuilder().ep({...tc,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(c,x,f,t){return[aS.getEndpointPlugin(f,c.getEndpointParameterInstructions()),Ex(f,{requestChecksumRequired:!1,requestValidationModeMember:"ChecksumMode",responseAlgorithms:["CRC64NVME","CRC32","CRC32C","SHA256","SHA1"]}),Vc(f),ix(f)]}).s("AmazonS3","GetObject",{}).n("S3Client","GetObjectCommand").sc(xS).build(){}var c0=b(kc(),1),x0=b(E(),1);class Gn extends x0.Command.classBuilder().ep({...tc,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(c,x,f,t){return[c0.getEndpointPlugin(f,c.getEndpointParameterInstructions()),wc(f),Vc(f),ix(f)]}).s("AmazonS3","HeadObject",{}).n("S3Client","HeadObjectCommand").sc(fS).build(){}var f0=b(kc(),1),t0=b(E(),1);class Mn extends t0.Command.classBuilder().ep({...tc,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(c,x,f,t){return[f0.getEndpointPlugin(f,c.getEndpointParameterInstructions()),wc(f)]}).s("AmazonS3","ListObjectsV2",{}).n("S3Client","ListObjectsV2Command").sc(tS).build(){}var n0=b(kc(),1),h0=b(E(),1);class zn extends h0.Command.classBuilder().ep({...tc,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(c,x,f,t){return[n0.getEndpointPlugin(f,c.getEndpointParameterInstructions()),Ex(f,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),fv(f),wc(f),Vc(f)]}).s("AmazonS3","PutObject",{}).n("S3Client","PutObjectCommand").sc(nS).build(){}import{Buffer as v0}from"buffer";class S0 extends kx{client;constructor(...c){super();this.client=new $n(...c)}async put(c){let x,f,t,n=process.env.BUCKET_NAME;if(c instanceof Blob)x=c,t=`${Bun.randomUUIDv7()}.${c.type.split("/")[1].split(";")[0]}`,f=c.type;else x=c.body,t=c.name,n=c.bucket??n,f=c.contentType||(x instanceof Blob||x instanceof File?x.type:void 0);f=f||void 0;let h=x instanceof v0?x:x instanceof Blob||x instanceof File?v0.from(await x.arrayBuffer()):"";return await this.client.send(new zn({Bucket:n,Key:t,Body:h,ContentType:f})),t}async list(c){return await this.client.send(new Mn({Bucket:process.env.BUCKET_NAME,Prefix:c}))}async fetch(c){let x=process.env.BUCKET_NAME,f;if(typeof c==="string")f=c;else x=c.bucket??x,f=c.name;if(!f)throw Error("Object name has to be specified");let t=await this.client.send(new Cf({Bucket:x,Key:f}));return new Response(t.Body.transformToWebStream(),{headers:{"Content-Type":t.ContentType,"Content-Length":t.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":t.LastModified?.toUTCString()||"",ETag:t.ETag||""}})}async read(c){let x=typeof c==="string"?{name:c}:c,f=x.bucket??process.env.BUCKET_NAME,{name:t,range:n=null}=x;if(!t)throw Error("Object name has to be specified");let h;try{h=await this.client.send(new Cf({Bucket:f,Key:t,Range:n?Nn(n):void 0}))}catch(w){if(w?.name==="InvalidRange"||w?.$metadata?.httpStatusCode===416)throw new Ec(await this.size({name:t,bucket:f}));if(w?.name==="NoSuchKey"||w?.$metadata?.httpStatusCode===404)throw new Mc(t);throw w}let v=Qx(h.ContentRange),S=Boolean(v)&&h.$metadata?.httpStatusCode===206,y=v?.total??h.ContentLength??0;return{body:h.Body.transformToWebStream(),start:v?.start??0,end:v?.end??y-1,total:y,partial:S,type:h.ContentType??"application/octet-stream",etag:h.ETag||void 0,lastModified:h.LastModified,name:t}}async size(c){let x=typeof c==="string"?c:c.name,f=(typeof c==="string"?void 0:c.bucket)??process.env.BUCKET_NAME;try{return(await this.client.send(new Gn({Bucket:f,Key:x}))).ContentLength??0}catch(t){if(t?.name==="NotFound"||t?.$metadata?.httpStatusCode===404)throw new Mc(x);throw t}}}import{Buffer as y0}from"buffer";import{Readable as hb}from"stream";function Zn(c){return c?.statusCode===404||c?.details?.errorCode==="BlobNotFound"||c?.code==="BlobNotFound"}function vb(c){return c?.statusCode===416||c?.details?.errorCode==="InvalidRange"||c?.code==="InvalidRange"}class w0 extends kx{config;serviceClientPromise=null;constructor(c={}){super();this.config=c}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let c;try{c=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let x=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new c.BlobServiceClient(this.config.url,this.config.credential);if(x)return c.BlobServiceClient.fromConnectionString(x);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(c,x){if(!c)throw Error("Object name has to be specified");let f=x??this.config.container??process.env.BUCKET_NAME;if(!f)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient(f).getBlockBlobClient(c)}async put(c){let x,f,t,n;if(c instanceof Blob)x=c,t=`${Bun.randomUUIDv7()}.${c.type.split("/")[1].split(";")[0]}`,f=c.type;else x=c.body,t=c.name,n=c.bucket,f=c.contentType??(x instanceof Blob||x instanceof File?x.type:void 0);let h=x instanceof y0?x:y0.from(await x.arrayBuffer());return await(await this.blob(t,n)).uploadData(h,{blobHTTPHeaders:f?{blobContentType:f}:void 0}),t}async list(c){let x=this.config.container??process.env.BUCKET_NAME,t=(await this.serviceClient()).getContainerClient(x),n=[];for await(let h of t.listBlobsFlat({prefix:c}))n.push(h.name);return n}async fetch(c){let x=await this.read(typeof c==="string"?{name:c}:{name:c.name,bucket:c.bucket});return new Response(x.body,{headers:{"Content-Type":x.type,"Content-Length":String(x.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":x.lastModified?.toUTCString()??"",ETag:x.etag??""}})}async read(c){let x=typeof c==="string"?{name:c}:c,{name:f,bucket:t,range:n=null}=x,h=await this.blob(f,t),v,S,y=n?.kind==="suffix"||n?.kind==="offset"&&n.end===null&&n.start===0;if(n&&y){let j=await this.size({name:f,bucket:t}),I=Wn(n,j);if(!I)throw new Ec(j);v=I.start,S=I.length}else if(n?.kind==="offset")v=n.start,S=n.end===null?void 0:n.end-n.start+1;let w;try{w=await h.download(v,S)}catch(j){if(vb(j))throw new Ec(await this.size({name:f,bucket:t}));if(Zn(j))throw new Mc(f);throw j}let B=Qx(w.contentRange),$=Boolean(B),N=B?.total??w.contentLength??0;return{body:await Sb(w),start:B?.start??0,end:B?.end??N-1,total:N,partial:$,type:w.contentType??"application/octet-stream",etag:w.etag||void 0,lastModified:w.lastModified,name:f}}async size(c){let x=typeof c==="string"?c:c.name,f=typeof c==="string"?void 0:c.bucket,t=await this.blob(x,f);try{return(await t.getProperties()).contentLength??0}catch(n){if(Zn(n))throw new Mc(x);throw n}}async delete(c){let x=typeof c==="string"?c:c.name,f=typeof c==="string"?void 0:c.bucket,t=await this.blob(x,f);try{await t.delete()}catch(n){if(Zn(n))throw new Mc(x);throw n}}}async function Sb(c){if(c.blobBody)return await c.blobBody;if(c.readableStreamBody)return hb.toWeb(c.readableStreamBody);return null}var b0={token:"redis"},yb=`
|
|
12
|
+
local currentKey = KEYS[1]
|
|
13
|
+
local previousKey = KEYS[2]
|
|
14
|
+
local limit = tonumber(ARGV[1])
|
|
15
|
+
local window = tonumber(ARGV[2])
|
|
16
|
+
local elapsed = tonumber(ARGV[3])
|
|
17
|
+
local cost = tonumber(ARGV[4])
|
|
3
18
|
|
|
4
|
-
|
|
19
|
+
local current = tonumber(redis.call("GET", currentKey)) or 0
|
|
20
|
+
local previous = tonumber(redis.call("GET", previousKey)) or 0
|
|
21
|
+
|
|
22
|
+
local weight = (window - elapsed) / window
|
|
23
|
+
if weight < 0 then weight = 0 end
|
|
24
|
+
if weight > 1 then weight = 1 end
|
|
25
|
+
|
|
26
|
+
local usage = previous * weight + current
|
|
27
|
+
|
|
28
|
+
if usage + cost > limit then
|
|
29
|
+
return {0, current, previous}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
current = redis.call("INCRBY", currentKey, cost)
|
|
33
|
+
-- Two windows of lifetime: the key still has to be readable as "previous"
|
|
34
|
+
-- while the next window is running.
|
|
35
|
+
redis.call("PEXPIRE", currentKey, window * 2)
|
|
36
|
+
|
|
37
|
+
return {1, current, previous}
|
|
38
|
+
`;class G0 extends Rn{injectedClient;prefix;failOpen;onError;scriptSha=null;constructor(c={}){super();this.injectedClient=c.client,this.prefix=c.prefix??"gemi:rl",this.failOpen=c.failOpen??!0,this.onError=c.onError??((x)=>console.error(x))}async consume(c){let{key:x,limit:f,window:t}=c,n=c.cost??1,h=Date.now(),v=B0(h,t),S=h-v,y=v/t;try{let w=await this.run([`${this.prefix}:${x}:${y}`,`${this.prefix}:${x}:${y-1}`],[String(f),String(t),String(S),String(n)]),[B,$,N]=(Array.isArray(w)?w:[]).map(Number);return $0({allowed:B===1,current:Number.isFinite($)?$:0,previous:Number.isFinite(N)?N:0,now:h,elapsed:S,window:t,limit:f,cost:n})}catch(w){if(this.onError(w),!this.failOpen)return{allowed:!1,limit:f,remaining:0,resetAt:h+t,retryAfter:t};return{allowed:!0,limit:f,remaining:Math.max(0,Math.floor(f-n)),resetAt:v+t,retryAfter:0}}}get client(){if(this.injectedClient)return this.injectedClient;let c=Pf(),x=c.bound(b0)?c.make(b0).client:void 0;if(!x)throw Error("RedisRateLimiter could not reach the Redis client. Register RedisServiceProvider on your application, or pass a client: new RedisRateLimiter({ client }).");return x}async run(c,x){let f=this.client,t=[String(c.length),...c,...x];try{return await f.send("EVALSHA",[await this.load(f),...t])}catch(n){if(!wb(n))throw n;return this.scriptSha=null,await f.send("EVALSHA",[await this.load(f),...t])}}load(c){if(!this.scriptSha)this.scriptSha=Promise.resolve(c.send("SCRIPT",["LOAD",yb])).then(String).catch((x)=>{throw this.scriptSha=null,x});return this.scriptSha}}function wb(c){return String(c?.message??c).includes("NOSCRIPT")}class M0{static name="unset";worker=!1;maxAttempts=3;run(...c){}onFail(c,...x){}onSuccess(c,...x){}onDeadletter(c,...x){}static dispatch(...c){if(this.name==="unset")throw Error("Cannot dispatch a job with no name");Pf(jn).push(this,JSON.stringify(c))}}class ic{}var bb={clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET,redirectPath:"/auth/oauth/google/callback",scope:"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email"};class z0 extends ic{config;constructor(c={}){super();this.config={...bb,...c}}getRedirectUrl(){let c=this.config.scope,x=this.config.clientId,f=new URL("https://accounts.google.com/o/oauth2/v2/auth"),t={scope:c,include_granted_scopes:"true",response_type:"code",state:"state_parameter_passthrough_value",redirect_uri:`${process.env.HOST_NAME}/auth/oauth/google/callback`,client_id:x};for(let[h,v]of Object.entries(t))f.searchParams.append(h,v);return f.toString()}async onCallback(c){let x=new URL("https://oauth2.googleapis.com/token");x.searchParams.append("code",c.search.get("code")),x.searchParams.append("client_id",this.config.clientId),x.searchParams.append("client_secret",this.config.clientSecret),x.searchParams.append("grant_type","authorization_code"),x.searchParams.append("redirect_uri",`${process.env.HOST_NAME}${this.config.redirectPath}`);let f=await fetch(x.toString(),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"}}),{access_token:t}=await f.json(),h=await(await fetch(`https://www.googleapis.com/oauth2/v3/userinfo?access_token=${t}`)).json();if(!h.email)console.error("Google OAuth error: email not found in user info response",h);return{name:h.name,email:h.email}}}var zc="https://api.x.com/2/",dc="https://api.x.com/labs/2/",Nc="https://api.x.com/1.1/",vc="https://upload.x.com/1.1/",N0="https://stream.x.com/1.1/",oc="https://ads-api.x.com/12/",ec="https://ads-api-sandbox.twitter.com/12/";class Kn{constructor({realData:c,rateLimit:x,instance:f,queryParams:t,sharedParams:n}){this._maxResultsWhenFetchLast=100,this._realData=c,this._rateLimit=x,this._instance=f,this._queryParams=t,this._sharedParams=n}get _isRateLimitOk(){if(!this._rateLimit)return!0;if(this._rateLimit.reset*1000<Date.now())return!0;return this._rateLimit.remaining>0}makeRequest(c){return this._instance.get(this.getEndpoint(),c,{fullResponse:!0,params:this._sharedParams})}makeNewInstanceFromResult(c,x){return new this.constructor({realData:c.data,rateLimit:c.rateLimit,instance:this._instance,queryParams:x,sharedParams:this._sharedParams})}getEndpoint(){return this._endpoint}injectQueryParams(c){return{...c?{max_results:c}:{},...this._queryParams}}async next(c){let x=this.getNextQueryParams(c),f=await this.makeRequest(x);return this.makeNewInstanceFromResult(f,x)}async fetchNext(c){let x=this.getNextQueryParams(c),f=await this.makeRequest(x);return await this.refreshInstanceFromResult(f,!0),this}async fetchLast(c=1/0){let x=this.getNextQueryParams(this._maxResultsWhenFetchLast),f=0;while(f<c&&this._isRateLimitOk){let t=await this.makeRequest(x);if(await this.refreshInstanceFromResult(t,!0),f+=this.getPageLengthFromRequest(t),this.isFetchLastOver(t))break;x=this.getNextQueryParams(this._maxResultsWhenFetchLast)}return this}get rateLimit(){var c;return{...(c=this._rateLimit)!==null&&c!==void 0?c:{}}}get data(){return this._realData}get done(){return!this.canFetchNextPage(this._realData)}*[Symbol.iterator](){yield*this.getItemArray()}async*[Symbol.asyncIterator](){yield*this.getItemArray();let c=this,x=this.canFetchNextPage(this._realData);while(x&&this._isRateLimitOk&&c.getItemArray().length>0){let f=await c.next(this._maxResultsWhenFetchLast);this.refreshInstanceFromResult({data:f._realData,headers:{},rateLimit:f._rateLimit},!0),x=this.canFetchNextPage(f._realData),yield*f.getItemArray(),c=f}}async*fetchAndIterate(){for(let f of this.getItemArray())yield[f,this];let c=this,x=this.canFetchNextPage(this._realData);while(x&&this._isRateLimitOk&&c.getItemArray().length>0){let f=await c.next(this._maxResultsWhenFetchLast);this.refreshInstanceFromResult({data:f._realData,headers:{},rateLimit:f._rateLimit},!0),x=this.canFetchNextPage(f._realData);for(let t of f.getItemArray())yield[t,f];this._rateLimit=f._rateLimit,c=f}}}class On extends Kn{async previous(c){let x=this.getPreviousQueryParams(c),f=await this.makeRequest(x);return this.makeNewInstanceFromResult(f,x)}async fetchPrevious(c){let x=this.getPreviousQueryParams(c),f=await this.makeRequest(x);return await this.refreshInstanceFromResult(f,!1),this}}var ac=Kn;class A extends ac{getNextQueryParams(c){var x;return{...this._queryParams,cursor:(x=this._realData.next_cursor_str)!==null&&x!==void 0?x:this._realData.next_cursor,...c?{count:c}:{}}}isFetchLastOver(c){return!this.canFetchNextPage(c.data)}canFetchNextPage(c){return!this.isNextCursorInvalid(c.next_cursor)||!this.isNextCursorInvalid(c.next_cursor_str)}isNextCursorInvalid(c){return c===void 0||c===0||c===-1||c==="0"||c==="-1"}}class Jn extends A{constructor(){super(...arguments);this._endpoint="direct_messages/events/list.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.events.push(...f.events),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.events.length}getItemArray(){return this.events}get events(){return this._realData.events}}class Dn extends A{constructor(){super(...arguments);this._endpoint="direct_messages/welcome_messages/list.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.welcome_messages.push(...f.welcome_messages),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.welcome_messages.length}getItemArray(){return this.welcomeMessages}get welcomeMessages(){return this._realData.welcome_messages}}var k;(function(c){c.Jpeg="image/jpeg",c.Mp4="video/mp4",c.Mov="video/quicktime",c.Gif="image/gif",c.Png="image/png",c.Srt="text/plain",c.Webp="image/webp"})(k||(k={}));var Zc;(function(c){c.Create="message_create",c.WelcomeCreate="welcome_message"})(Zc||(Zc={}));var sx;(function(c){c.Request="request",c.PartialResponse="partial-response",c.Response="response"})(sx||(sx={}));class mf extends Error{constructor(){super(...arguments);this.error=!0}}class Yx extends mf{constructor(c,x){super(c);this.type=sx.Request,Error.captureStackTrace(this,this.constructor),Object.defineProperty(this,"_options",{value:x})}get request(){return this._options.request}get requestError(){return this._options.requestError}toJSON(){return{type:this.type,error:this.requestError}}}class Xx extends mf{constructor(c,x){super(c);this.type=sx.PartialResponse,Error.captureStackTrace(this,this.constructor),Object.defineProperty(this,"_options",{value:x})}get request(){return this._options.request}get response(){return this._options.response}get responseError(){return this._options.responseError}get rawContent(){return this._options.rawContent}toJSON(){return{type:this.type,error:this.responseError}}}class ux extends mf{constructor(c,x){super(c);if(this.type=sx.Response,Error.captureStackTrace(this,this.constructor),Object.defineProperty(this,"_options",{value:x}),this.code=x.code,this.headers=x.headers,this.rateLimit=x.rateLimit,x.data&&typeof x.data==="object"&&"error"in x.data&&!x.data.errors){let f={...x.data};f.errors=[{code:Xc.InternalError,message:f.error}],this.data=f}else this.data=x.data}get request(){return this._options.request}get response(){return this._options.response}hasErrorCode(...c){let x=this.errors;if(!(x===null||x===void 0?void 0:x.length))return!1;if("code"in x[0])return x.some((n)=>c.includes(n.code));let f=this.data;return c.includes(f.type)}get errors(){var c;return(c=this.data)===null||c===void 0?void 0:c.errors}get rateLimitError(){return this.code===420||this.code===429}get isAuthError(){if(this.code===401)return!0;return this.hasErrorCode(Xc.AuthTimestampInvalid,Xc.AuthenticationFail,Xc.BadAuthenticationData,Xc.InvalidOrExpiredToken)}toJSON(){return{type:this.type,code:this.code,error:this.data,rateLimit:this.rateLimit,headers:this.headers}}}var Xc;(function(c){c[c.InvalidCoordinates=3]="InvalidCoordinates",c[c.NoLocationFound=13]="NoLocationFound",c[c.AuthenticationFail=32]="AuthenticationFail",c[c.InvalidOrExpiredToken=89]="InvalidOrExpiredToken",c[c.UnableToVerifyCredentials=99]="UnableToVerifyCredentials",c[c.AuthTimestampInvalid=135]="AuthTimestampInvalid",c[c.BadAuthenticationData=215]="BadAuthenticationData",c[c.NoUserMatch=17]="NoUserMatch",c[c.UserNotFound=50]="UserNotFound",c[c.ResourceNotFound=34]="ResourceNotFound",c[c.TweetNotFound=144]="TweetNotFound",c[c.TweetNotVisible=179]="TweetNotVisible",c[c.NotAllowedResource=220]="NotAllowedResource",c[c.MediaIdNotFound=325]="MediaIdNotFound",c[c.TweetNoLongerAvailable=421]="TweetNoLongerAvailable",c[c.TweetViolatedRules=422]="TweetViolatedRules",c[c.TargetUserSuspended=63]="TargetUserSuspended",c[c.YouAreSuspended=64]="YouAreSuspended",c[c.AccountUpdateFailed=120]="AccountUpdateFailed",c[c.NoSelfSpamReport=36]="NoSelfSpamReport",c[c.NoSelfMute=271]="NoSelfMute",c[c.AccountLocked=326]="AccountLocked",c[c.RateLimitExceeded=88]="RateLimitExceeded",c[c.NoDMRightForApp=93]="NoDMRightForApp",c[c.OverCapacity=130]="OverCapacity",c[c.InternalError=131]="InternalError",c[c.TooManyFollowings=161]="TooManyFollowings",c[c.TweetLimitExceeded=185]="TweetLimitExceeded",c[c.DuplicatedTweet=187]="DuplicatedTweet",c[c.TooManySpamReports=205]="TooManySpamReports",c[c.RequestLooksLikeSpam=226]="RequestLooksLikeSpam",c[c.NoWriteRightForApp=261]="NoWriteRightForApp",c[c.TweetActionsDisabled=425]="TweetActionsDisabled",c[c.TweetRepliesRestricted=433]="TweetRepliesRestricted",c[c.NamedParameterMissing=38]="NamedParameterMissing",c[c.InvalidAttachmentUrl=44]="InvalidAttachmentUrl",c[c.TweetTextTooLong=186]="TweetTextTooLong",c[c.MissingUrlParameter=195]="MissingUrlParameter",c[c.NoMultipleGifs=323]="NoMultipleGifs",c[c.InvalidMediaIds=324]="InvalidMediaIds",c[c.InvalidUrl=407]="InvalidUrl",c[c.TooManyTweetAttachments=386]="TooManyTweetAttachments",c[c.StatusAlreadyFavorited=139]="StatusAlreadyFavorited",c[c.FollowRequestAlreadySent=160]="FollowRequestAlreadySent",c[c.CannotUnmuteANonMutedAccount=272]="CannotUnmuteANonMutedAccount",c[c.TweetAlreadyRetweeted=327]="TweetAlreadyRetweeted",c[c.ReplyToDeletedTweet=385]="ReplyToDeletedTweet",c[c.DMReceiverNotFollowingYou=150]="DMReceiverNotFollowingYou",c[c.UnableToSendDM=151]="UnableToSendDM",c[c.MustAllowDMFromAnyone=214]="MustAllowDMFromAnyone",c[c.CannotSendDMToThisUser=349]="CannotSendDMToThisUser",c[c.DMTextTooLong=354]="DMTextTooLong",c[c.SubscriptionAlreadyExists=355]="SubscriptionAlreadyExists",c[c.CallbackUrlNotApproved=415]="CallbackUrlNotApproved",c[c.SuspendedApplication=416]="SuspendedApplication",c[c.OobOauthIsNotAllowed=417]="OobOauthIsNotAllowed"})(Xc||(Xc={}));var Z0;(function(c){c.InvalidRequest="https://developer.x.com/en/support/x-api/error-troubleshooting#invalid-request",c.ClientForbidden="https://developer.x.com/en/support/x-api/error-troubleshooting#client-forbidden",c.UnsupportedAuthentication="https://developer.x.com/en/support/x-api/error-troubleshooting#unsupported-authentication",c.InvalidRules="https://developer.x.com/en/support/x-api/error-troubleshooting#invalid-rules",c.TooManyRules="https://developer.x.com/en/support/x-api/error-troubleshooting#rule-cap",c.DuplicatedRules="https://developer.x.com/en/support/x-api/error-troubleshooting#duplicate-rules",c.RateLimitExceeded="https://developer.x.com/en/support/x-api/error-troubleshooting#usage-capped",c.ConnectionError="https://developer.x.com/en/support/x-api/error-troubleshooting#streaming-connection",c.ClientDisconnected="https://developer.x.com/en/support/x-api/error-troubleshooting#client-disconnected",c.TwitterDisconnectedYou="https://developer.x.com/en/support/x-api/error-troubleshooting#operational-disconnect",c.ResourceNotFound="https://developer.x.com/en/support/x-api/error-troubleshooting#resource-not-found",c.ResourceUnauthorized="https://developer.x.com/en/support/x-api/error-troubleshooting#not-authorized-for-resource",c.DisallowedResource="https://developer.x.com/en/support/x-api/error-troubleshooting#disallowed-resource"})(Z0||(Z0={}));var W;(function(c){c.Connected="connected",c.ConnectError="connect error",c.ConnectionError="connection error",c.ConnectionClosed="connection closed",c.ConnectionLost="connection lost",c.ReconnectAttempt="reconnect attempt",c.Reconnected="reconnected",c.ReconnectError="reconnect error",c.ReconnectLimitExceeded="reconnect limit exceeded",c.DataKeepAlive="data keep-alive",c.Data="data event content",c.DataError="data twitter error",c.TweetParseError="data tweet parse error",c.Error="stream error"})(W||(W={}));class Ux{constructor(c){this.value=c}}import*as en from"fs";var g={debug:!1,deprecationWarnings:!0,logger:{log:console.log.bind(console)}};function Qn(c){let x={value:void 0,promise:c().then((f)=>{return x.value=f,f})};return x}function Tf(c){if(Array.isArray(c))return c;return[c]}function R0(c){for(let x of Object.keys(c))if(c[x]===void 0)delete c[x]}function _f(c){return typeof c==="object"&&"errors"in c&&!("data"in c)}function Hx(c){if(Array.isArray(c)&&c.length>1)return!0;return c.toString().includes(",")}var W0=new Set;function kn(c){if(typeof console>"u"||!console.warn||!g.deprecationWarnings)return;let x=`${c.instance}-${c.method}-${c.problem}`;if(W0.has(x))return;let f=`[twitter-api-v2] Deprecation warning: In ${c.instance}.${c.method}() call, ${c.problem}.
|
|
39
|
+
${c.resolution}.`;console.warn(f),console.warn("To disable this message, import variable TwitterApiV2Settings from twitter-api-v2 and set TwitterApiV2Settings.deprecationWarnings to false."),W0.add(x)}import{EventEmitter as zb}from"events";import{request as Bb}from"https";import*as p from"zlib";import{EventEmitter as $b}from"events";class j0{constructor(c){this.requestData=c,this.requestErrorHandled=!1,this.responseData=[]}get hrefPathname(){let c=this.requestData.url;return c.hostname+c.pathname}isCompressionDisabled(){return!this.requestData.compression||this.requestData.compression==="identity"}isFormEncodedEndpoint(){return this.requestData.url.href.startsWith("https://api.x.com/oauth/")}createRequestError(c){if(g.debug)g.logger.log("Request error:",c);return new Yx("Request failed.",{request:this.req,error:c})}createPartialResponseError(c,x){let t=`Request failed with partial response with HTTP code ${this.res.statusCode}`;if(x)t+=" (connection abruptly closed)";else t+=" (parse error)";return new Xx(t,{request:this.req,response:this.res,responseError:c,rawContent:Buffer.concat(this.responseData).toString()})}formatV1Errors(c){return c.map(({code:x,message:f})=>`${f} (Twitter code ${x})`).join(", ")}formatV2Error(c){return`${c.title}: ${c.detail} (see ${c.type})`}createResponseError({res:c,data:x,rateLimit:f,code:t}){var n;if(g.debug)g.logger.log(`Request failed with code ${t}, data:`,x),g.logger.log("Response headers:",c.headers);let h=`Request failed with code ${t}`;if((n=x===null||x===void 0?void 0:x.errors)===null||n===void 0?void 0:n.length){let v=x.errors;if(typeof v[0]==="object"&&"code"in v[0])h+=" - "+this.formatV1Errors(v);else h+=" - "+this.formatV2Error(x)}return new ux(h,{code:t,data:x,headers:c.headers,request:this.req,response:c,rateLimit:f})}getResponseDataStream(c){if(this.isCompressionDisabled())return c;let x=(c.headers["content-encoding"]||"identity").trim().toLowerCase();if(x==="br"){let f=p.createBrotliDecompress({flush:p.constants.BROTLI_OPERATION_FLUSH,finishFlush:p.constants.BROTLI_OPERATION_FLUSH});return c.pipe(f),f}if(x==="gzip"){let f=p.createGunzip({flush:p.constants.Z_SYNC_FLUSH,finishFlush:p.constants.Z_SYNC_FLUSH});return c.pipe(f),f}if(x==="deflate"){let f=p.createInflate({flush:p.constants.Z_SYNC_FLUSH,finishFlush:p.constants.Z_SYNC_FLUSH});return c.pipe(f),f}return c}detectResponseType(c){var x,f;if(((x=c.headers["content-type"])===null||x===void 0?void 0:x.includes("application/json"))||((f=c.headers["content-type"])===null||f===void 0?void 0:f.includes("application/problem+json")))return"json";else if(this.isFormEncodedEndpoint())return"url";return"text"}getParsedResponse(c){let x=this.responseData,f=this.requestData.forceParseMode||this.detectResponseType(c);if(f==="buffer")return Buffer.concat(x);else if(f==="text")return Buffer.concat(x).toString();else if(f==="json"){let t=Buffer.concat(x).toString();return t.length?JSON.parse(t):void 0}else if(f==="url"){let t=Buffer.concat(x).toString(),n={};for(let[h,v]of new URLSearchParams(t))n[h]=v;return n}else return}getRateLimitFromResponse(c){let x=void 0;if(c.headers["x-rate-limit-limit"]){if(x={limit:Number(c.headers["x-rate-limit-limit"]),remaining:Number(c.headers["x-rate-limit-remaining"]),reset:Number(c.headers["x-rate-limit-reset"])},c.headers["x-app-limit-24hour-limit"])x.day={limit:Number(c.headers["x-app-limit-24hour-limit"]),remaining:Number(c.headers["x-app-limit-24hour-remaining"]),reset:Number(c.headers["x-app-limit-24hour-reset"])};if(c.headers["x-user-limit-24hour-limit"])x.userDay={limit:Number(c.headers["x-user-limit-24hour-limit"]),remaining:Number(c.headers["x-user-limit-24hour-remaining"]),reset:Number(c.headers["x-user-limit-24hour-reset"])};if(this.requestData.rateLimitSaver)this.requestData.rateLimitSaver(x)}return x}onSocketEventHandler(c,x,f){let t=this.onSocketCloseHandler.bind(this,c);f.on("close",t),x.on("complete",()=>f.off("close",t))}onSocketCloseHandler(c){if(this.req.removeAllListeners("timeout"),this.res)return;if(!this.requestErrorHandled)return c(this.createRequestError(Error("Socket closed without any information.")))}requestErrorHandler(c,x){var f,t;(t=(f=this.requestData).requestEventDebugHandler)===null||t===void 0||t.call(f,"request-error",{requestError:x}),this.requestErrorHandled=!0,c(this.createRequestError(x))}timeoutErrorHandler(){this.requestErrorHandled=!0,this.req.destroy(Error("Request timeout."))}classicResponseHandler(c,x,f){this.res=f;let t=this.getResponseDataStream(f);if(t.on("data",(n)=>this.responseData.push(n)),t.on("end",this.onResponseEndHandler.bind(this,c,x)),t.on("close",this.onResponseCloseHandler.bind(this,c,x)),this.requestData.requestEventDebugHandler)this.requestData.requestEventDebugHandler("response",{res:f}),f.on("aborted",(n)=>this.requestData.requestEventDebugHandler("response-aborted",{error:n})),f.on("error",(n)=>this.requestData.requestEventDebugHandler("response-error",{error:n})),f.on("close",()=>this.requestData.requestEventDebugHandler("response-close",{data:this.responseData})),f.on("end",()=>this.requestData.requestEventDebugHandler("response-end"))}onResponseEndHandler(c,x){let f=this.getRateLimitFromResponse(this.res),t;try{t=this.getParsedResponse(this.res)}catch(h){x(this.createPartialResponseError(h,!1));return}let n=this.res.statusCode;if(n>=400){x(this.createResponseError({data:t,res:this.res,rateLimit:f,code:n}));return}if(g.debug)g.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]: Request succeeds with code ${this.res.statusCode}`),g.logger.log("Response body:",t);c({data:t,headers:this.res.headers,rateLimit:f})}onResponseCloseHandler(c,x){let f=this.res;if(f.aborted)try{return this.getParsedResponse(this.res),this.onResponseEndHandler(c,x)}catch(t){return x(this.createPartialResponseError(t,!0))}if(!f.complete)return x(this.createPartialResponseError(Error("Response has been interrupted before response could be parsed."),!0))}streamResponseHandler(c,x,f){if(f.statusCode<400){if(g.debug)g.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]: Request succeeds with code ${f.statusCode} (starting stream)`);let n=this.getResponseDataStream(f);c({req:this.req,res:n,originalResponse:f,requestData:this.requestData})}else this.classicResponseHandler(()=>{return},x,f)}debugRequest(){let c=this.requestData.url;if(g.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]`,this.requestData.options),c.search)g.logger.log("Request parameters:",[...c.searchParams.entries()].map(([x,f])=>`${x}: ${f}`));if(this.requestData.body)g.logger.log("Request body:",this.requestData.body)}buildRequest(){var c;let x=this.requestData.url,f=x.username?`${x.username}:${x.password}`:void 0,t=(c=this.requestData.options.headers)!==null&&c!==void 0?c:{};if(this.requestData.compression===!0||this.requestData.compression==="brotli")t["accept-encoding"]="br;q=1.0, gzip;q=0.8, deflate;q=0.5, *;q=0.1";else if(this.requestData.compression==="gzip")t["accept-encoding"]="gzip;q=1, deflate;q=0.5, *;q=0.1";else if(this.requestData.compression==="deflate")t["accept-encoding"]="deflate;q=1, *;q=0.1";if(g.debug)this.debugRequest();this.req=Bb({...this.requestData.options,host:x.hostname,port:x.port||void 0,path:x.pathname+x.search,protocol:x.protocol,auth:f,headers:t})}registerRequestEventDebugHandlers(c){c.on("close",()=>this.requestData.requestEventDebugHandler("close")),c.on("abort",()=>this.requestData.requestEventDebugHandler("abort")),c.on("socket",(x)=>{this.requestData.requestEventDebugHandler("socket",{socket:x}),x.on("error",(f)=>this.requestData.requestEventDebugHandler("socket-error",{socket:x,error:f})),x.on("connect",()=>this.requestData.requestEventDebugHandler("socket-connect",{socket:x})),x.on("close",(f)=>this.requestData.requestEventDebugHandler("socket-close",{socket:x,withError:f})),x.on("end",()=>this.requestData.requestEventDebugHandler("socket-end",{socket:x})),x.on("lookup",(...f)=>this.requestData.requestEventDebugHandler("socket-lookup",{socket:x,data:f})),x.on("timeout",()=>this.requestData.requestEventDebugHandler("socket-timeout",{socket:x}))})}makeRequest(){return this.buildRequest(),new Promise((c,x)=>{let f=(v)=>{n.emit("complete"),c(v)},t=(v)=>{n.emit("complete"),x(v)},n=new $b,h=this.req;if(h.on("error",this.requestErrorHandler.bind(this,t)),h.on("socket",this.onSocketEventHandler.bind(this,t,n)),h.on("response",this.classicResponseHandler.bind(this,f,t)),this.requestData.options.timeout)h.on("timeout",this.timeoutErrorHandler.bind(this));if(this.requestData.requestEventDebugHandler)this.registerRequestEventDebugHandlers(h);if(this.requestData.body)h.write(this.requestData.body);h.end()})}async makeRequestAsStream(){let{req:c,res:x,requestData:f,originalResponse:t}=await this.makeRequestAndResolveWhenReady();return new qf(f,{req:c,res:x,originalResponse:t})}makeRequestAndResolveWhenReady(){return this.buildRequest(),new Promise((c,x)=>{let f=this.req;if(f.on("error",this.requestErrorHandler.bind(this,x)),f.on("response",this.streamResponseHandler.bind(this,c,x)),this.requestData.body)f.write(this.requestData.body);f.end()})}}var Fx=j0;import{EventEmitter as Gb}from"events";class K0 extends Gb{constructor(c){super();this.stream=c,this.stack=[],this.onStreamData=this.onStreamData.bind(this),this.onStreamError=this.onStreamError.bind(this),this.onceNewEvent=this.once.bind(this,"event"),c.on(W.Data,this.onStreamData),c.on(W.ConnectionError,this.onStreamError),c.on(W.TweetParseError,this.onStreamError),c.on(W.ConnectionClosed,this.onStreamError)}nextEvent(){return new Promise(this.onceNewEvent)}hasStack(){return this.stack.length>0}popStack(){let c=this.stack;return this.stack=[],c}destroy(){this.removeAllListeners(),this.stream.off(W.Data,this.onStreamData),this.stream.off(W.ConnectionError,this.onStreamError),this.stream.off(W.TweetParseError,this.onStreamError),this.stream.off(W.ConnectionClosed,this.onStreamError)}emitEvent(c,x){this.emit("event",{type:c,payload:x})}onStreamError(c){this.emitEvent("error",c)}onStreamData(c){this.stack.push(c),this.emitEvent("data",c)}}var O0=K0;import{EventEmitter as Mb}from"events";class pf extends Mb{constructor(){super(...arguments);this.currentMessage=""}push(c){this.currentMessage+=c,c=this.currentMessage;let x=c.length,f=0,t=0;while(t<x){if(c.slice(t,t+2)===`\r
|
|
40
|
+
`){let n=c.slice(f,t);if(f=t+=2,!n.length)continue;try{let h=JSON.parse(n);if(h){this.emit(uc.ParsedData,h);continue}}catch(h){this.emit(uc.ParseError,h)}}t++}this.currentMessage=c.slice(f,x)}reset(){this.currentMessage=""}}var uc;(function(c){c.ParsedData="parsed data",c.ParseError="parse error"})(uc||(uc={}));var J0=[5,15,30,60,90,120,180,300,600,900],Nb=(c)=>c>J0.length?901000:J0[c-1]*1000;class D0 extends zb{constructor(c,x){super();if(this.requestData=c,this.autoReconnect=!1,this.autoReconnectRetries=5,this.keepAliveTimeoutMs=120000,this.nextRetryTimeout=Nb,this.parser=new pf,this.connectionProcessRunning=!1,this.onKeepAliveTimeout=this.onKeepAliveTimeout.bind(this),this.initEventsFromParser(),x)this.req=x.req,this.res=x.res,this.originalResponse=x.originalResponse,this.initEventsFromRequest()}on(c,x){return super.on(c,x)}initEventsFromRequest(){if(!this.req||!this.res)throw Error("TweetStream error: You cannot init TweetStream without a request and response object.");let c=(x)=>{this.emit(W.ConnectionError,x),this.emit(W.Error,{type:W.ConnectionError,error:x,message:"Connection lost or closed by Twitter."}),this.onConnectionError()};this.req.on("error",c),this.res.on("error",c),this.res.on("close",()=>c(Error("Connection closed by Twitter."))),this.res.on("data",(x)=>{if(this.resetKeepAliveTimeout(),x.toString()===`\r
|
|
41
|
+
`)return this.emit(W.DataKeepAlive);this.parser.push(x.toString())}),this.resetKeepAliveTimeout()}initEventsFromParser(){let c=this.requestData.payloadIsError;this.parser.on(uc.ParsedData,(x)=>{if(c&&c(x))this.emit(W.DataError,x),this.emit(W.Error,{type:W.DataError,error:x,message:"Twitter sent a payload that is detected as an error payload."});else this.emit(W.Data,x)}),this.parser.on(uc.ParseError,(x)=>{this.emit(W.TweetParseError,x),this.emit(W.Error,{type:W.TweetParseError,error:x,message:"Failed to parse stream data."})})}resetKeepAliveTimeout(){if(this.unbindKeepAliveTimeout(),this.keepAliveTimeoutMs!==1/0)this.keepAliveTimeout=setTimeout(this.onKeepAliveTimeout,this.keepAliveTimeoutMs)}onKeepAliveTimeout(){this.emit(W.ConnectionLost),this.onConnectionError()}unbindTimeouts(){this.unbindRetryTimeout(),this.unbindKeepAliveTimeout()}unbindKeepAliveTimeout(){if(this.keepAliveTimeout)clearTimeout(this.keepAliveTimeout),this.keepAliveTimeout=void 0}unbindRetryTimeout(){if(this.retryTimeout)clearTimeout(this.retryTimeout),this.retryTimeout=void 0}closeWithoutEmit(){if(this.unbindTimeouts(),this.res)this.res.removeAllListeners(),this.res.destroy();if(this.req)this.req.removeAllListeners(),this.req.destroy()}close(){this.emit(W.ConnectionClosed),this.closeWithoutEmit()}destroy(){this.removeAllListeners(),this.close()}async clone(){let x=await new Fx(this.requestData).makeRequestAsStream(),f=this.eventNames();for(let t of f){let n=this.listeners(t);for(let h of n)x.on(t,h)}return x}async connect(c={}){if(typeof c.autoReconnect<"u")this.autoReconnect=c.autoReconnect;if(typeof c.autoReconnectRetries<"u")this.autoReconnectRetries=c.autoReconnectRetries==="unlimited"?1/0:c.autoReconnectRetries;if(typeof c.keepAliveTimeout<"u")this.keepAliveTimeoutMs=c.keepAliveTimeout==="disable"?1/0:c.keepAliveTimeout;if(typeof c.nextRetryTimeout<"u")this.nextRetryTimeout=c.nextRetryTimeout;this.unbindTimeouts();try{await this.reconnect()}catch(x){if(this.emit(W.ConnectError,0),this.emit(W.Error,{type:W.ConnectError,error:x,message:"Connect error - Initial connection just failed."}),this.autoReconnect)this.makeAutoReconnectRetry(0,x);else throw x}return this}async reconnect(){if(this.connectionProcessRunning)throw Error("Connection process is already running.");this.connectionProcessRunning=!0;try{let c=!0;if(this.req)c=!1,this.closeWithoutEmit();let{req:x,res:f,originalResponse:t}=await new Fx(this.requestData).makeRequestAndResolveWhenReady();this.req=x,this.res=f,this.originalResponse=t,this.emit(c?W.Connected:W.Reconnected),this.parser.reset(),this.initEventsFromRequest()}finally{this.connectionProcessRunning=!1}}async onConnectionError(c=0){if(this.unbindTimeouts(),this.closeWithoutEmit(),!this.autoReconnect){this.emit(W.ConnectionClosed);return}if(c>=this.autoReconnectRetries){this.emit(W.ReconnectLimitExceeded),this.emit(W.ConnectionClosed);return}try{this.emit(W.ReconnectAttempt,c),await this.reconnect()}catch(x){this.emit(W.ReconnectError,c),this.emit(W.Error,{type:W.ReconnectError,error:x,message:`Reconnect error - ${c+1} attempts made yet.`}),this.makeAutoReconnectRetry(c,x)}}makeAutoReconnectRetry(c,x){let f=this.nextRetryTimeout(c+1,x);this.retryTimeout=setTimeout(()=>{this.onConnectionError(c+1)},f)}async*[Symbol.asyncIterator](){let c=new O0(this);try{while(!0){if(!this.req||this.req.aborted)throw Error("Connection closed");if(c.hasStack())yield*c.popStack();let{type:x,payload:f}=await c.nextEvent();if(x==="error")throw f}}finally{c.destroy()}}}var qf=D0;function Q0(c){var x;if(!((x=c.clientSettings.plugins)===null||x===void 0?void 0:x.length))return!1;for(let f of c.clientSettings.plugins)if(f.onRequestError||f.onResponseError)return!0;return!1}async function k0(c,x,f,t){let n;if(t instanceof Yx||t instanceof Xx)n=await this.applyPluginMethod("onRequestError",{client:this,url:this.getUrlObjectFromUrlString(c.url),params:c,computedParams:x,requestOptions:f,error:t});else if(t instanceof ux)n=await this.applyPluginMethod("onResponseError",{client:this,url:this.getUrlObjectFromUrlString(c.url),params:c,computedParams:x,requestOptions:f,error:t});if(n&&n instanceof Ux)return n.value;return Promise.reject(t)}import*as X0 from"crypto";class a{constructor(c){this.nonceLength=32,this.consumerKeys=c.consumerKeys}static percentEncode(c){return encodeURIComponent(c).replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}hash(c,x){return X0.createHmac("sha1",x).update(c).digest("base64")}authorize(c,x={}){let f={oauth_consumer_key:this.consumerKeys.key,oauth_nonce:this.getNonce(),oauth_signature_method:"HMAC-SHA1",oauth_timestamp:this.getTimestamp(),oauth_version:"1.0"};if(x.key!==void 0)f.oauth_token=x.key;if(!c.data)c.data={};return f.oauth_signature=this.getSignature(c,x.secret,f),f}toHeader(c){let x=Y0(c),f="OAuth ";for(let t of x){if(t.key.indexOf("oauth_")!==0)continue;f+=a.percentEncode(t.key)+'="'+a.percentEncode(t.value)+'",'}return{Authorization:f.slice(0,f.length-1)}}getNonce(){let x="";for(let f=0;f<this.nonceLength;f++)x+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.trunc(Math.random()*62)];return x}getTimestamp(){return Math.trunc(new Date().getTime()/1000)}getSignature(c,x,f){return this.hash(this.getBaseString(c,f),this.getSigningKey(x))}getSigningKey(c){return a.percentEncode(this.consumerKeys.secret)+"&"+a.percentEncode(c||"")}getBaseString(c,x){return c.method.toUpperCase()+"&"+a.percentEncode(this.getBaseUrl(c.url))+"&"+a.percentEncode(this.getParameterString(c,x))}getParameterString(c,x){let f=Y0(Rb(s0(x,s0(c.data,Wb(c.url))))),t="";for(let{key:n,value:h}of f)if(h&&Array.isArray(h)){h.sort();let v="";h.forEach((S,y)=>{if(v+=n+"="+S,y<h.length)v+="&"}),t+=v}else t+=n+"="+h+"&";return t.slice(0,t.length-1)}getBaseUrl(c){return c.split("?")[0]}}var Lx=a;function s0(c,x){return{...c||{},...x||{}}}function Y0(c){return Object.keys(c).sort().map((x)=>({key:x,value:c[x]}))}function Zb(c){let x=c.split("&"),f={};for(let t of x){let[n,h=""]=t.split("=");if(f[n]){if(!Array.isArray(f[n]))f[n]=[f[n]];f[n].push(decodeURIComponent(h))}else f[n]=decodeURIComponent(h)}return f}function Wb(c){let x=c.split("?");if(x.length===1)return{};return Zb(x[1])}function Rb(c){let x={};for(let f in c){let t=c[f];if(t&&Array.isArray(t))t=t.map((n)=>a.percentEncode(n));else t=a.percentEncode(t);x[a.percentEncode(f)]=t}return x}class r{constructor(){this._boundary="",this._chunks=[]}bodyAppend(...c){let x=c.map((f)=>f instanceof Buffer?f:Buffer.from(f));this._chunks.push(...x)}append(c,x,f){let t=x instanceof Buffer?x:x.toString(),n=this.getMultipartHeader(c,t,f);this.bodyAppend(n,t,r.LINE_BREAK)}getHeaders(){return{"content-type":"multipart/form-data; boundary="+this.getBoundary()}}getLength(){return this._chunks.reduce((c,x)=>c+x.length,this.getMultipartFooter().length)}getBuffer(){let c=[...this._chunks,this.getMultipartFooter()],x=Buffer.alloc(this.getLength()),f=0;for(let t of c)for(let n=0;n<t.length;f++,n++)x[f]=t[n];return x}getBoundary(){if(!this._boundary)this.generateBoundary();return this._boundary}generateBoundary(){let c="--------------------------";for(let x=0;x<24;x++)c+=Math.floor(Math.random()*10).toString(16);this._boundary=c}getMultipartHeader(c,x,f){if(!f)f=x instanceof Buffer?r.DEFAULT_CONTENT_TYPE:"";let t={"Content-Disposition":["form-data",`name="${c}"`],"Content-Type":f},n="";for(let[h,v]of Object.entries(t)){if(!v.length)continue;n+=h+": "+Tf(v).join("; ")+r.LINE_BREAK}return"--"+this.getBoundary()+r.LINE_BREAK+n+r.LINE_BREAK}getMultipartFooter(){if(this._footerChunk)return this._footerChunk;return this._footerChunk=Buffer.from("--"+this.getBoundary()+"--"+r.LINE_BREAK)}}r.LINE_BREAK=`\r
|
|
42
|
+
`;r.DEFAULT_CONTENT_TYPE="application/octet-stream";class sn{static formatQueryToString(c){let x={};for(let f in c)if(typeof c[f]==="string")x[f]=c[f];else if(typeof c[f]<"u")x[f]=String(c[f]);return x}static autoDetectBodyType(c){if(c.pathname.startsWith("/2/")||c.pathname.startsWith("/labs/2/")){if(c.password.startsWith("/2/oauth2"))return"url";return"json"}if(c.hostname==="upload.x.com"){if(c.pathname==="/1.1/media/upload.json")return"form-data";return"json"}let x=c.pathname.split("/1.1/",2)[1];if(this.JSON_1_1_ENDPOINTS.has(x))return"json";return"url"}static addQueryParamsToUrl(c,x){let f=Object.entries(x);if(f.length){let t="";for(let[n,h]of f)t+=(t.length?"&":"?")+`${Lx.percentEncode(n)}=${Lx.percentEncode(h)}`;c.search=t}}static constructBodyParams(c,x,f){if(c instanceof Buffer)return c;if(f==="json"){if(!x["content-type"])x["content-type"]="application/json;charset=UTF-8";return JSON.stringify(c)}else if(f==="url"){if(!x["content-type"])x["content-type"]="application/x-www-form-urlencoded;charset=UTF-8";if(Object.keys(c).length)return new URLSearchParams(c).toString().replace(/\*/g,"%2A");return""}else if(f==="raw")throw Error("You can only use raw body mode with Buffers. To give a string, use Buffer.from(str).");else{let t=new r;for(let n in c)t.append(n,c[n]);if(!x["content-type"]){let n=t.getHeaders();x["content-type"]=n["content-type"]}return t.getBuffer()}}static setBodyLengthHeader(c,x){var f;if(c.headers=(f=c.headers)!==null&&f!==void 0?f:{},typeof x==="string")c.headers["content-length"]=Buffer.byteLength(x);else c.headers["content-length"]=x.length}static isOAuthSerializable(c){return!(c instanceof Buffer)}static mergeQueryAndBodyForOAuth(c,x){let f={};for(let t in c)f[t]=c[t];if(this.isOAuthSerializable(x))for(let t in x){let n=x[t];if(this.isOAuthSerializable(n))f[t]=typeof n==="object"&&n!==null&&"toString"in n?n.toString():n}return f}static moveUrlQueryParamsIntoObject(c,x){for(let[f,t]of c.searchParams)x[f]=t;return c.search="",c}static applyRequestParametersToUrl(c,x){return c.pathname=c.pathname.replace(/:([A-Z_-]+)/ig,(f,t)=>{if(x[t]!==void 0)return String(x[t]);return f}),c}}sn.JSON_1_1_ENDPOINTS=new Set(["direct_messages/events/new.json","direct_messages/welcome_messages/new.json","direct_messages/welcome_messages/rules/new.json","media/metadata/create.json","collections/entries/curate.json"]);var o=sn;import*as u0 from"crypto";class Uc{static getCodeVerifier(){return this.generateRandomString(128)}static getCodeChallengeFromVerifier(c){return this.escapeBase64Url(u0.createHash("sha256").update(c).digest("base64"))}static getAuthHeader(c,x){let f=encodeURIComponent(c)+":"+encodeURIComponent(x);return Buffer.from(f).toString("base64")}static generateRandomString(c){let x="",f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";for(let t=0;t<c;t++)x+=f[Math.floor(Math.random()*f.length)];return x}static escapeBase64Url(c){return c.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}}class rc{constructor(c){if(this.rateLimits={},this.clientSettings={},c)this.clientSettings=c}getRateLimits(){return this.rateLimits}saveRateLimit(c,x){this.rateLimits[c]=x}async send(c){var x,f,t,n,h;if((x=this.clientSettings.plugins)===null||x===void 0?void 0:x.length){let $=await this.applyPreRequestConfigHooks(c);if($)return $}let v=this.getHttpRequestArgs(c),S={method:v.method,headers:v.headers,timeout:c.timeout,agent:this.clientSettings.httpAgent},y=c.enableRateLimitSave!==!1;if(v.body)o.setBodyLengthHeader(S,v.body);if((f=this.clientSettings.plugins)===null||f===void 0?void 0:f.length)await this.applyPreRequestHooks(c,v,S);let w=new Fx({url:v.url,options:S,body:v.body,rateLimitSaver:y?this.saveRateLimit.bind(this,v.rawUrl):void 0,requestEventDebugHandler:c.requestEventDebugHandler,compression:(n=(t=c.compression)!==null&&t!==void 0?t:this.clientSettings.compression)!==null&&n!==void 0?n:!0,forceParseMode:c.forceParseMode}).makeRequest();if(Q0(this))w=this.applyResponseErrorHooks(c,v,S,w);let B=await w;if((h=this.clientSettings.plugins)===null||h===void 0?void 0:h.length){let $=await this.applyPostRequestHooks(c,v,S,B);if($)return $.value}return B}sendStream(c){var x,f;if(this.clientSettings.plugins)this.applyPreStreamRequestConfigHooks(c);let t=this.getHttpRequestArgs(c),n={method:t.method,headers:t.headers,agent:this.clientSettings.httpAgent},h=c.enableRateLimitSave!==!1,v=c.autoConnect!==!1;if(t.body)o.setBodyLengthHeader(n,t.body);let S={url:t.url,options:n,body:t.body,rateLimitSaver:h?this.saveRateLimit.bind(this,t.rawUrl):void 0,payloadIsError:c.payloadIsError,compression:(f=(x=c.compression)!==null&&x!==void 0?x:this.clientSettings.compression)!==null&&f!==void 0?f:!0},y=new qf(S);if(!v)return y;return y.connect()}initializeToken(c){if(typeof c==="string")this.bearerToken=c;else if(typeof c==="object"&&"appKey"in c){if(this.consumerToken=c.appKey,this.consumerSecret=c.appSecret,c.accessToken&&c.accessSecret)this.accessToken=c.accessToken,this.accessSecret=c.accessSecret;this._oauth=this.buildOAuth()}else if(typeof c==="object"&&"username"in c){let x=encodeURIComponent(c.username)+":"+encodeURIComponent(c.password);this.basicToken=Buffer.from(x).toString("base64")}else if(typeof c==="object"&&"clientId"in c)this.clientId=c.clientId,this.clientSecret=c.clientSecret}getActiveTokens(){if(this.bearerToken)return{type:"oauth2",bearerToken:this.bearerToken};else if(this.basicToken)return{type:"basic",token:this.basicToken};else if(this.consumerSecret&&this._oauth)return{type:"oauth-1.0a",appKey:this.consumerToken,appSecret:this.consumerSecret,accessToken:this.accessToken,accessSecret:this.accessSecret};else if(this.clientId)return{type:"oauth2-user",clientId:this.clientId};return{type:"none"}}buildOAuth(){if(!this.consumerSecret||!this.consumerToken)throw Error("Invalid consumer tokens");return new Lx({consumerKeys:{key:this.consumerToken,secret:this.consumerSecret}})}getOAuthAccessTokens(){if(!this.accessSecret||!this.accessToken)return;return{key:this.accessToken,secret:this.accessSecret}}getPlugins(){var c;return(c=this.clientSettings.plugins)!==null&&c!==void 0?c:[]}hasPlugins(){var c;return!!((c=this.clientSettings.plugins)===null||c===void 0?void 0:c.length)}async applyPluginMethod(c,x){var f;let t;for(let n of this.getPlugins()){let h=await((f=n[c])===null||f===void 0?void 0:f.call(n,x));if(h&&h instanceof Ux)t=h}return t}writeAuthHeaders({headers:c,bodyInSignature:x,url:f,method:t,query:n,body:h}){if(c={...c},this.bearerToken)c.Authorization="Bearer "+this.bearerToken;else if(this.basicToken)c.Authorization="Basic "+this.basicToken;else if(this.clientId&&this.clientSecret)c.Authorization="Basic "+Uc.getAuthHeader(this.clientId,this.clientSecret);else if(this.consumerSecret&&this._oauth){let v=x?o.mergeQueryAndBodyForOAuth(n,h):n,S=this._oauth.authorize({url:f.toString(),method:t,data:v},this.getOAuthAccessTokens());c={...c,...this._oauth.toHeader(S)}}return c}getUrlObjectFromUrlString(c){if(!c.startsWith("http"))c="https://"+c;return new URL(c)}getHttpRequestArgs({url:c,method:x,query:f={},body:t={},headers:n,forceBodyMode:h,enableAuth:v,params:S}){let y=void 0;if(x=x.toUpperCase(),n=n!==null&&n!==void 0?n:{},!n["x-user-agent"])n["x-user-agent"]="Node.twitter-api-v2";let w=this.getUrlObjectFromUrlString(c),B=w.origin+w.pathname;if(S)o.applyRequestParametersToUrl(w,S);let $=o.formatQueryToString(f);if(o.moveUrlQueryParamsIntoObject(w,$),!(t instanceof Buffer))R0(t);let N=h!==null&&h!==void 0?h:o.autoDetectBodyType(w);if(v!==!1){let j=rc.BODY_METHODS.has(x)&&N==="url";n=this.writeAuthHeaders({headers:n,bodyInSignature:j,method:x,query:$,url:w,body:t})}if(rc.BODY_METHODS.has(x))y=o.constructBodyParams(t,n,N)||void 0;return o.addQueryParamsToUrl(w,$),{rawUrl:B,url:w,method:x,headers:n,body:y}}async applyPreRequestConfigHooks(c){var x;let f=this.getUrlObjectFromUrlString(c.url);for(let t of this.getPlugins()){let n=await((x=t.onBeforeRequestConfig)===null||x===void 0?void 0:x.call(t,{client:this,url:f,params:c}));if(n)return n}}applyPreStreamRequestConfigHooks(c){var x;let f=this.getUrlObjectFromUrlString(c.url);for(let t of this.getPlugins())(x=t.onBeforeStreamRequestConfig)===null||x===void 0||x.call(t,{client:this,url:f,params:c})}async applyPreRequestHooks(c,x,f){await this.applyPluginMethod("onBeforeRequest",{client:this,url:this.getUrlObjectFromUrlString(c.url),params:c,computedParams:x,requestOptions:f})}async applyPostRequestHooks(c,x,f,t){return await this.applyPluginMethod("onAfterRequest",{client:this,url:this.getUrlObjectFromUrlString(c.url),params:c,computedParams:x,requestOptions:f,response:t})}applyResponseErrorHooks(c,x,f,t){return t.catch(k0.bind(this,c,x,f))}}rc.BODY_METHODS=new Set(["POST","PUT","PATCH"]);class Wc{constructor(c,x={}){if(this._currentUser=null,this._currentUserV2=null,c instanceof Wc)this._requestMaker=c._requestMaker;else this._requestMaker=new rc(x),this._requestMaker.initializeToken(c)}setPrefix(c){this._prefix=c}cloneWithPrefix(c){let x=this.constructor(this);return x.setPrefix(c),x}getActiveTokens(){return this._requestMaker.getActiveTokens()}getPlugins(){return this._requestMaker.getPlugins()}getPluginOfType(c){return this.getPlugins().find((x)=>x instanceof c)}hasHitRateLimit(c){var x;if(this.isRateLimitStatusObsolete(c))return!1;return((x=this.getLastRateLimitStatus(c))===null||x===void 0?void 0:x.remaining)===0}isRateLimitStatusObsolete(c){let x=this.getLastRateLimitStatus(c);if(x===void 0)return!0;return x.reset*1000<Date.now()}getLastRateLimitStatus(c){let x=c.match(/^https?:\/\//)?c:this._prefix+c;return this._requestMaker.getRateLimits()[x]}getCurrentUserObject(c=!1){if(!c&&this._currentUser){if(this._currentUser.value)return Promise.resolve(this._currentUser.value);return this._currentUser.promise}return this._currentUser=Qn(()=>this.get("account/verify_credentials.json",{tweet_mode:"extended"},{prefix:Nc})),this._currentUser.promise}getCurrentUserV2Object(c=!1){if(!c&&this._currentUserV2){if(this._currentUserV2.value)return Promise.resolve(this._currentUserV2.value);return this._currentUserV2.promise}return this._currentUserV2=Qn(()=>this.get("users/me",void 0,{prefix:zc})),this._currentUserV2.promise}async get(c,x={},{fullResponse:f,prefix:t=this._prefix,...n}={}){if(t)c=t+c;let h=await this._requestMaker.send({url:c,method:"GET",query:x,...n});return f?h:h.data}async delete(c,x={},{fullResponse:f,prefix:t=this._prefix,...n}={}){if(t)c=t+c;let h=await this._requestMaker.send({url:c,method:"DELETE",query:x,...n});return f?h:h.data}async post(c,x,{fullResponse:f,prefix:t=this._prefix,...n}={}){if(t)c=t+c;let h=await this._requestMaker.send({url:c,method:"POST",body:x,...n});return f?h:h.data}async put(c,x,{fullResponse:f,prefix:t=this._prefix,...n}={}){if(t)c=t+c;let h=await this._requestMaker.send({url:c,method:"PUT",body:x,...n});return f?h:h.data}async patch(c,x,{fullResponse:f,prefix:t=this._prefix,...n}={}){if(t)c=t+c;let h=await this._requestMaker.send({url:c,method:"PATCH",body:x,...n});return f?h:h.data}getStream(c,x,{prefix:f=this._prefix,...t}={}){return this._requestMaker.sendStream({url:f?f+c:c,method:"GET",query:x,...t})}postStream(c,x,{prefix:f=this._prefix,...t}={}){return this._requestMaker.sendStream({url:f?f+c:c,method:"POST",body:x,...t})}}class e extends Wc{constructor(c){if(!(c instanceof Wc))throw Error("You must instance SubTwitterApi instance from existing TwitterApi instance.");super(c)}}class cx extends ac{constructor(){super(...arguments);this.hasFinishedFetch=!1}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.push(...f),this.hasFinishedFetch=f.length===0}getNextQueryParams(c){let x=BigInt(this._realData[this._realData.length-1].id_str);return{...this.injectQueryParams(c),max_id:(x-BigInt(1)).toString()}}getPageLengthFromRequest(c){return c.data.length}isFetchLastOver(c){return!c.data.length}canFetchNextPage(c){return c.length>0}getItemArray(){return this.tweets}get tweets(){return this._realData}get done(){return super.done||this.hasFinishedFetch}}class Yn extends cx{constructor(){super(...arguments);this._endpoint="statuses/home_timeline.json"}}class Xn extends cx{constructor(){super(...arguments);this._endpoint="statuses/mentions_timeline.json"}}class lf extends cx{constructor(){super(...arguments);this._endpoint="statuses/user_timeline.json"}}class un extends cx{constructor(){super(...arguments);this._endpoint="lists/statuses.json"}}class Vf extends cx{constructor(){super(...arguments);this._endpoint="favorites/list.json"}}class Un extends A{constructor(){super(...arguments);this._endpoint="mutes/users/list.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.users.push(...f.users),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.users.length}getItemArray(){return this.users}get users(){return this._realData.users}}class Hn extends A{constructor(){super(...arguments);this._endpoint="mutes/users/ids.json",this._maxResultsWhenFetchLast=5000}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.ids.push(...f.ids),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.ids.length}getItemArray(){return this.ids}get ids(){return this._realData.ids}}class Fn extends A{constructor(){super(...arguments);this._endpoint="followers/list.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.users.push(...f.users),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.users.length}getItemArray(){return this.users}get users(){return this._realData.users}}class Ln extends A{constructor(){super(...arguments);this._endpoint="followers/ids.json",this._maxResultsWhenFetchLast=5000}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.ids.push(...f.ids),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.ids.length}getItemArray(){return this.ids}get ids(){return this._realData.ids}}class An extends A{constructor(){super(...arguments);this._endpoint="friends/list.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.users.push(...f.users),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.users.length}getItemArray(){return this.users}get users(){return this._realData.users}}class In extends A{constructor(){super(...arguments);this._endpoint="friends/ids.json",this._maxResultsWhenFetchLast=5000}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.ids.push(...f.ids),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.ids.length}getItemArray(){return this.ids}get ids(){return this._realData.ids}}class gn extends ac{constructor(){super(...arguments);this._endpoint="users/search.json"}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.push(...f)}getNextQueryParams(c){var x;let f=Number((x=this._queryParams.page)!==null&&x!==void 0?x:"1");return{...this._queryParams,page:f+1,...c?{count:c}:{}}}getPageLengthFromRequest(c){return c.data.length}isFetchLastOver(c){return!c.data.length}canFetchNextPage(c){return c.length>0}getItemArray(){return this.users}get users(){return this._realData}}class Ef extends A{constructor(){super(...arguments);this._endpoint="friendships/incoming.json",this._maxResultsWhenFetchLast=5000}refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.ids.push(...f.ids),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.ids.length}getItemArray(){return this.ids}get ids(){return this._realData.ids}}class Cn extends Ef{constructor(){super(...arguments);this._endpoint="friendships/outgoing.json"}}class df extends A{refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.lists.push(...f.lists),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.lists.length}getItemArray(){return this.lists}get lists(){return this._realData.lists}}class Pn extends df{constructor(){super(...arguments);this._endpoint="lists/memberships.json"}}class mn extends df{constructor(){super(...arguments);this._endpoint="lists/ownerships.json"}}class Tn extends df{constructor(){super(...arguments);this._endpoint="lists/subscriptions.json"}}class _n extends A{refreshInstanceFromResult(c,x){let f=c.data;if(this._rateLimit=c.rateLimit,x)this._realData.users.push(...f.users),this._realData.next_cursor=f.next_cursor}getPageLengthFromRequest(c){return c.data.users.length}getItemArray(){return this.users}get users(){return this._realData.users}}class qn extends _n{constructor(){super(...arguments);this._endpoint="lists/members.json"}}class pn extends _n{constructor(){super(...arguments);this._endpoint="lists/subscribers.json"}}class xx extends e{constructor(){super(...arguments);this._prefix=Nc}singleTweet(c,x={}){return this.get("statuses/show.json",{tweet_mode:"extended",id:c,...x})}tweets(c,x={}){return this.post("statuses/lookup.json",{tweet_mode:"extended",id:c,...x})}oembedTweet(c,x={}){return this.get("oembed",{url:`https://x.com/i/statuses/${c}`,...x},{prefix:"https://publish.x.com/"})}async homeTimeline(c={}){let x={tweet_mode:"extended",...c},f=await this.get("statuses/home_timeline.json",x,{fullResponse:!0});return new Yn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async mentionTimeline(c={}){let x={tweet_mode:"extended",...c},f=await this.get("statuses/mentions_timeline.json",x,{fullResponse:!0});return new Xn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async userTimeline(c,x={}){let f={tweet_mode:"extended",user_id:c,...x},t=await this.get("statuses/user_timeline.json",f,{fullResponse:!0});return new lf({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}async userTimelineByUsername(c,x={}){let f={tweet_mode:"extended",screen_name:c,...x},t=await this.get("statuses/user_timeline.json",f,{fullResponse:!0});return new lf({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}async favoriteTimeline(c,x={}){let f={tweet_mode:"extended",user_id:c,...x},t=await this.get("favorites/list.json",f,{fullResponse:!0});return new Vf({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}async favoriteTimelineByUsername(c,x={}){let f={tweet_mode:"extended",screen_name:c,...x},t=await this.get("favorites/list.json",f,{fullResponse:!0});return new Vf({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}user(c){return this.get("users/show.json",{tweet_mode:"extended",...c})}users(c){return this.get("users/lookup.json",{tweet_mode:"extended",...c})}verifyCredentials(c={}){return this.get("account/verify_credentials.json",c)}async listMutedUsers(c={}){let x={tweet_mode:"extended",...c},f=await this.get("mutes/users/list.json",x,{fullResponse:!0});return new Un({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async listMutedUserIds(c={}){let x={stringify_ids:!0,...c},f=await this.get("mutes/users/ids.json",x,{fullResponse:!0});return new Hn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async userFriendList(c={}){let x={...c},f=await this.get("friends/list.json",x,{fullResponse:!0});return new An({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async userFollowerList(c={}){let x={...c},f=await this.get("followers/list.json",x,{fullResponse:!0});return new Fn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async userFollowerIds(c={}){let x={stringify_ids:!0,...c},f=await this.get("followers/ids.json",x,{fullResponse:!0});return new Ln({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async userFollowingIds(c={}){let x={stringify_ids:!0,...c},f=await this.get("friends/ids.json",x,{fullResponse:!0});return new In({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async searchUsers(c,x={}){let f={q:c,tweet_mode:"extended",page:1,...x},t=await this.get("users/search.json",f,{fullResponse:!0});return new gn({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}friendship(c){return this.get("friendships/show.json",c)}friendships(c){return this.get("friendships/lookup.json",c)}friendshipsNoRetweets(){return this.get("friendships/no_retweets/ids.json",{stringify_ids:!0})}async friendshipsIncoming(c={}){let x={stringify_ids:!0,...c},f=await this.get("friendships/incoming.json",x,{fullResponse:!0});return new Ef({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async friendshipsOutgoing(c={}){let x={stringify_ids:!0,...c},f=await this.get("friendships/outgoing.json",x,{fullResponse:!0});return new Cn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}accountSettings(){return this.get("account/settings.json")}userProfileBannerSizes(c){return this.get("users/profile_banner.json",c)}list(c){return this.get("lists/show.json",{tweet_mode:"extended",...c})}lists(c={}){return this.get("lists/list.json",{tweet_mode:"extended",...c})}async listMembers(c={}){let x={tweet_mode:"extended",...c},f=await this.get("lists/members.json",x,{fullResponse:!0});return new qn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}listGetMember(c){return this.get("lists/members/show.json",{tweet_mode:"extended",...c})}async listMemberships(c={}){let x={tweet_mode:"extended",...c},f=await this.get("lists/memberships.json",x,{fullResponse:!0});return new Pn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async listOwnerships(c={}){let x={tweet_mode:"extended",...c},f=await this.get("lists/ownerships.json",x,{fullResponse:!0});return new mn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async listStatuses(c){let x={tweet_mode:"extended",...c},f=await this.get("lists/statuses.json",x,{fullResponse:!0});return new un({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}async listSubscribers(c={}){let x={tweet_mode:"extended",...c},f=await this.get("lists/subscribers.json",x,{fullResponse:!0});return new pn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}listGetSubscriber(c){return this.get("lists/subscribers/show.json",{tweet_mode:"extended",...c})}async listSubscriptions(c={}){let x={tweet_mode:"extended",...c},f=await this.get("lists/subscriptions.json",x,{fullResponse:!0});return new Tn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}mediaInfo(c){return this.get("media/upload.json",{command:"STATUS",media_id:c},{prefix:vc})}filterStream({autoConnect:c,...x}={}){let f={};for(let[n,h]of Object.entries(x))if(n==="follow"||n==="track")f[n]=h.toString();else if(n==="locations"){let v=h;f.locations=Tf(v).map((S)=>`${S.lng},${S.lat}`).join(",")}else f[n]=h;return this.stream.postStream("statuses/filter.json",f,{autoConnect:c})}sampleStream({autoConnect:c,...x}={}){return this.stream.getStream("statuses/sample.json",x,{autoConnect:c})}get stream(){let c=new of(this);return c.setPrefix(N0),c}trendsByPlace(c,x={}){return this.get("trends/place.json",{id:c,...x})}trendsAvailable(){return this.get("trends/available.json")}trendsClosest(c,x){return this.get("trends/closest.json",{lat:c,long:x})}geoPlace(c){return this.get("geo/id/:place_id.json",void 0,{params:{place_id:c}})}geoSearch(c){return this.get("geo/search.json",c)}geoReverseGeoCode(c){return this.get("geo/reverse_geocode.json",c)}rateLimitStatuses(...c){return this.get("application/rate_limit_status.json",{resources:c})}supportedLanguages(){return this.get("help/languages.json")}}import*as Rc from"fs";async function ln(c){let x=await Vn(c);if(typeof x==="number")return new Promise((f,t)=>{Rc.readFile(x,(n,h)=>{if(n)return t(n);f(h)})});else if(x instanceof Buffer)return x;else return x.readFile()}function Vn(c){if(typeof c==="string")return Rc.promises.open(c,"r");else if(typeof c==="number")return c;else if(typeof c==="object"&&!(c instanceof Buffer))return c;else if(!(c instanceof Buffer))throw Error("Given file is not valid, please check its type.");else return c}async function U0(c){if(typeof c==="number")return(await new Promise((f,t)=>{Rc.fstat(c,(n,h)=>{if(n)t(n);f(h)})})).size;else if(c instanceof Buffer)return c.length;else return(await c.stat()).size}function H0(c,x,f){if(typeof f==="string")return f;else if(typeof c==="string"&&!x)return jb(c);else if(typeof x==="string")return Kb(x);throw Error("You must specify type if file is a file handle or Buffer.")}function jb(c){if(c.endsWith(".jpeg")||c.endsWith(".jpg"))return k.Jpeg;if(c.endsWith(".png"))return k.Png;if(c.endsWith(".webp"))return k.Webp;if(c.endsWith(".gif"))return k.Gif;if(c.endsWith(".mpeg4")||c.endsWith(".mp4"))return k.Mp4;if(c.endsWith(".mov")||c.endsWith(".mov"))return k.Mov;if(c.endsWith(".srt"))return k.Srt;return kn({instance:"TwitterApiv1ReadWrite",method:"uploadMedia",problem:"options.mimeType is missing and filename couldn't help to resolve MIME type, so it will fallback to image/jpeg",resolution:"If you except to give filenames without extensions, please specify explicitlty the MIME type using options.mimeType"}),k.Jpeg}function Kb(c){if(kn({instance:"TwitterApiv1ReadWrite",method:"uploadMedia",problem:"you're using options.type",resolution:"Remove options.type argument and migrate to options.mimeType which takes the real MIME type. If you're using type=longmp4, add options.longVideo alongside of mimeType=EUploadMimeType.Mp4"}),c==="gif")return k.Gif;if(c==="jpg")return k.Jpeg;if(c==="png")return k.Png;if(c==="webp")return k.Webp;if(c==="srt")return k.Srt;if(c==="mp4"||c==="longmp4")return k.Mp4;if(c==="mov")return k.Mov;return c}function F0(c,x){if(c===k.Mp4||c===k.Mov)return x==="tweet"?"TweetVideo":"DmVideo";if(c===k.Gif)return x==="tweet"?"TweetGif":"DmGif";if(c===k.Srt)return"Subtitles";else return x==="tweet"?"TweetImage":"DmImage"}function En(c){return new Promise((x)=>setTimeout(x,c*1000))}async function dn(c,x,f=0,t){if(c instanceof Buffer){let h=c.slice(f,f+x);return[h,h.length]}if(!t)throw Error("Well, we will need a buffer to store file content.");let n;if(typeof c==="number")n=await new Promise((h,v)=>{Rc.read(c,t,0,x,f,(S,y)=>{if(S)v(S);h(y)})});else n=(await c.read(t,0,x,f)).bytesRead;return[t,n]}var on="media/upload.json";class fx extends xx{constructor(){super(...arguments);this._prefix=Nc}get readOnly(){return this}tweet(c,x={}){let f={status:c,tweet_mode:"extended",...x};return this.post("statuses/update.json",f)}async quote(c,x,f={}){let t="https://x.com/i/statuses/"+x;return this.tweet(c,{...f,attachment_url:t})}async tweetThread(c){let x=[];for(let f of c){let t=x.length?x[x.length-1]:null,n={...typeof f==="string"?{status:f}:f},h=t?t.id_str:n.in_reply_to_status_id,v=n.status;if(h)x.push(await this.reply(v,h,n));else x.push(await this.tweet(v,n))}return x}reply(c,x,f={}){return this.tweet(c,{auto_populate_reply_metadata:!0,in_reply_to_status_id:x,...f})}deleteTweet(c){return this.post("statuses/destroy/:id.json",{tweet_mode:"extended"},{params:{id:c}})}reportUserAsSpam(c){return this.post("users/report_spam.json",{tweet_mode:"extended",...c})}updateFriendship(c){return this.post("friendships/update.json",c)}createFriendship(c){return this.post("friendships/create.json",c)}destroyFriendship(c){return this.post("friendships/destroy.json",c)}updateAccountSettings(c){return this.post("account/settings.json",c)}updateAccountProfile(c){return this.post("account/update_profile.json",c)}async updateAccountProfileBanner(c,x={}){let f={banner:await ln(c),...x};return this.post("account/update_profile_banner.json",f,{forceBodyMode:"form-data"})}async updateAccountProfileImage(c,x={}){let f={tweet_mode:"extended",image:await ln(c),...x};return this.post("account/update_profile_image.json",f,{forceBodyMode:"form-data"})}removeAccountProfileBanner(){return this.post("account/remove_profile_banner.json")}createList(c){return this.post("lists/create.json",{tweet_mode:"extended",...c})}updateList(c){return this.post("lists/update.json",{tweet_mode:"extended",...c})}removeList(c){return this.post("lists/destroy.json",{tweet_mode:"extended",...c})}addListMembers(c){let f=c.user_id&&Hx(c.user_id)||c.screen_name&&Hx(c.screen_name)?"lists/members/create_all.json":"lists/members/create.json";return this.post(f,c)}removeListMembers(c){let f=c.user_id&&Hx(c.user_id)||c.screen_name&&Hx(c.screen_name)?"lists/members/destroy_all.json":"lists/members/destroy.json";return this.post(f,c)}subscribeToList(c){return this.post("lists/subscribers/create.json",{tweet_mode:"extended",...c})}unsubscribeOfList(c){return this.post("lists/subscribers/destroy.json",{tweet_mode:"extended",...c})}createMediaMetadata(c,x){return this.post("media/metadata/create.json",{media_id:c,...x},{prefix:vc,forceBodyMode:"json"})}createMediaSubtitles(c,x){return this.post("media/subtitles/create.json",{media_id:c,media_category:"TweetVideo",subtitle_info:{subtitles:x}},{prefix:vc,forceBodyMode:"json"})}deleteMediaSubtitles(c,...x){return this.post("media/subtitles/delete.json",{media_id:c,media_category:"TweetVideo",subtitle_info:{subtitles:x.map((f)=>({language_code:f}))}},{prefix:vc,forceBodyMode:"json"})}async uploadMedia(c,x={},f=!1){var t;let n=(t=x.chunkLength)!==null&&t!==void 0?t:1048576,{fileHandle:h,mediaCategory:v,fileSize:S,mimeType:y}=await this.getUploadMediaRequirements(c,x);try{let w=await this.post(on,{command:"INIT",total_bytes:S,media_type:y,media_category:v,additional_owners:x.additionalOwners,shared:x.shared?!0:void 0},{prefix:vc});await this.mediaChunkedUpload(h,n,w.media_id_string,x.maxConcurrentUploads);let B=await this.post(on,{command:"FINALIZE",media_id:w.media_id_string},{prefix:vc});if(B.processing_info&&B.processing_info.state!=="succeeded")await this.awaitForMediaProcessingCompletion(B);if(f)return B;else return B.media_id_string}finally{if(typeof c==="number")en.close(c,()=>{});else if(typeof h==="object"&&!(h instanceof Buffer))h.close()}}async awaitForMediaProcessingCompletion(c){var x;while(!0){c=await this.mediaInfo(c.media_id_string);let{processing_info:f}=c;if(!f||f.state==="succeeded")return;if((x=f.error)===null||x===void 0?void 0:x.code){let{name:t,message:n}=f.error;throw Error(`Failed to process media: ${t} - ${n}.`)}if(f.state==="failed")throw Error("Failed to process the media.");if(f.check_after_secs)await En(f.check_after_secs);else await En(5)}}async getUploadMediaRequirements(c,{mimeType:x,type:f,target:t,longVideo:n}={}){let h;try{h=await Vn(c);let v=H0(c,f,x),S;if(v===k.Mp4&&(!x&&!f&&t!=="dm"||n))S="amplify_video";else S=F0(v,t!==null&&t!==void 0?t:"tweet");return{fileHandle:h,mediaCategory:S,fileSize:await U0(h),mimeType:v}}catch(v){if(typeof c==="number")en.close(c,()=>{});else if(typeof h==="object"&&!(h instanceof Buffer))h.close();throw v}}async mediaChunkedUpload(c,x,f,t=3){let n=0;if(t<1)throw RangeError("Bad maxConcurrentUploads parameter.");let h=c instanceof Buffer?void 0:Buffer.alloc(x),v,S,y=0;[v,S]=await dn(c,x,y,h),y+=S;let w=new Set;while(S){let B=v.slice(0,S);if(B.length){let $=this.post(on,{command:"APPEND",media_id:f,segment_index:n,media:B},{prefix:vc});w.add($),$.then(()=>{w.delete($)}),n++}if(w.size>=t)await Promise.race(w);[v,S]=await dn(c,x,y,h),y+=S}await Promise.all([...w])}}class L0 extends fx{constructor(){super(...arguments);this._prefix=Nc}get readWrite(){return this}sendDm({recipient_id:c,custom_profile_id:x,...f}){let t={event:{type:Zc.Create,[Zc.Create]:{target:{recipient_id:c},message_data:f}}};if(x)t.event[Zc.Create].custom_profile_id=x;return this.post("direct_messages/events/new.json",t,{forceBodyMode:"json"})}getDmEvent(c){return this.get("direct_messages/events/show.json",{id:c})}deleteDm(c){return this.delete("direct_messages/events/destroy.json",{id:c})}async listDmEvents(c={}){let x={...c},f=await this.get("direct_messages/events/list.json",x,{fullResponse:!0});return new Jn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}newWelcomeDm(c,x){let f={[Zc.WelcomeCreate]:{name:c,message_data:x}};return this.post("direct_messages/welcome_messages/new.json",f,{forceBodyMode:"json"})}getWelcomeDm(c){return this.get("direct_messages/welcome_messages/show.json",{id:c})}deleteWelcomeDm(c){return this.delete("direct_messages/welcome_messages/destroy.json",{id:c})}updateWelcomeDm(c,x){let f={message_data:x};return this.put("direct_messages/welcome_messages/update.json",f,{forceBodyMode:"json",query:{id:c}})}async listWelcomeDms(c={}){let x={...c},f=await this.get("direct_messages/welcome_messages/list.json",x,{fullResponse:!0});return new Dn({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x})}newWelcomeDmRule(c){return this.post("direct_messages/welcome_messages/rules/new.json",{welcome_message_rule:{welcome_message_id:c}},{forceBodyMode:"json"})}getWelcomeDmRule(c){return this.get("direct_messages/welcome_messages/rules/show.json",{id:c})}deleteWelcomeDmRule(c){return this.delete("direct_messages/welcome_messages/rules/destroy.json",{id:c})}async listWelcomeDmRules(c={}){let x={...c};return this.get("direct_messages/welcome_messages/rules/list.json",x)}async setWelcomeDm(c,x=!0){var f;let t=await this.listWelcomeDmRules();if((f=t.welcome_message_rules)===null||f===void 0?void 0:f.length){for(let n of t.welcome_message_rules)if(await this.deleteWelcomeDmRule(n.id),x)await this.deleteWelcomeDm(n.welcome_message_id)}return this.newWelcomeDmRule(c)}markDmAsRead(c,x){return this.post("direct_messages/mark_read.json",{last_read_event_id:c,recipient_id:x},{forceBodyMode:"url"})}indicateDmTyping(c){return this.post("direct_messages/indicate_typing.json",{recipient_id:c},{forceBodyMode:"url"})}async downloadDmImage(c){if(typeof c!=="string"){let f=c[Zc.Create].message_data.attachment;if(!f)throw Error("The given direct message doesn't contain any attachment");c=f.media.media_url_https}let x=await this.get(c,void 0,{forceParseMode:"buffer",prefix:""});if(!x.length)throw Error("Image not found. Make sure you are logged with credentials able to access direct messages, and check the URL.");return x}}var of=L0;class Q{constructor(c){this.result=c}get tweets(){return Q.tweets(this.result)}static tweets(c){var x,f;return(f=(x=c.includes)===null||x===void 0?void 0:x.tweets)!==null&&f!==void 0?f:[]}tweetById(c){return Q.tweetById(this.result,c)}static tweetById(c,x){return this.tweets(c).find((f)=>f.id===x)}retweet(c){return Q.retweet(this.result,c)}static retweet(c,x){var f;let t=((f=x.referenced_tweets)!==null&&f!==void 0?f:[]).filter((n)=>n.type==="retweeted").map((n)=>n.id);return this.tweets(c).find((n)=>t.includes(n.id))}quote(c){return Q.quote(this.result,c)}static quote(c,x){var f;let t=((f=x.referenced_tweets)!==null&&f!==void 0?f:[]).filter((n)=>n.type==="quoted").map((n)=>n.id);return this.tweets(c).find((n)=>t.includes(n.id))}repliedTo(c){return Q.repliedTo(this.result,c)}static repliedTo(c,x){var f;let t=((f=x.referenced_tweets)!==null&&f!==void 0?f:[]).filter((n)=>n.type==="replied_to").map((n)=>n.id);return this.tweets(c).find((n)=>t.includes(n.id))}author(c){return Q.author(this.result,c)}static author(c,x){let f=x.author_id;return f?this.users(c).find((t)=>t.id===f):void 0}repliedToAuthor(c){return Q.repliedToAuthor(this.result,c)}static repliedToAuthor(c,x){let f=x.in_reply_to_user_id;return f?this.users(c).find((t)=>t.id===f):void 0}get users(){return Q.users(this.result)}static users(c){var x,f;return(f=(x=c.includes)===null||x===void 0?void 0:x.users)!==null&&f!==void 0?f:[]}userById(c){return Q.userById(this.result,c)}static userById(c,x){return this.users(c).find((f)=>f.id===x)}pinnedTweet(c){return Q.pinnedTweet(this.result,c)}static pinnedTweet(c,x){return x.pinned_tweet_id?this.tweets(c).find((f)=>f.id===x.pinned_tweet_id):void 0}get media(){return Q.media(this.result)}static media(c){var x,f;return(f=(x=c.includes)===null||x===void 0?void 0:x.media)!==null&&f!==void 0?f:[]}medias(c){return Q.medias(this.result,c)}static medias(c,x){var f,t;let n=(t=(f=x.attachments)===null||f===void 0?void 0:f.media_keys)!==null&&t!==void 0?t:[];return this.media(c).filter((h)=>n.includes(h.media_key))}get polls(){return Q.polls(this.result)}static polls(c){var x,f;return(f=(x=c.includes)===null||x===void 0?void 0:x.polls)!==null&&f!==void 0?f:[]}poll(c){return Q.poll(this.result,c)}static poll(c,x){var f,t;let n=(t=(f=x.attachments)===null||f===void 0?void 0:f.poll_ids)!==null&&t!==void 0?t:[];if(n.length){let h=n[0];return this.polls(c).find((v)=>v.id===h)}return}get places(){return Q.places(this.result)}static places(c){var x,f;return(f=(x=c.includes)===null||x===void 0?void 0:x.places)!==null&&f!==void 0?f:[]}place(c){return Q.place(this.result,c)}static place(c,x){var f;let t=(f=x.geo)===null||f===void 0?void 0:f.place_id;return t?this.places(c).find((n)=>n.id===t):void 0}listOwner(c){return Q.listOwner(this.result,c)}static listOwner(c,x){let f=x.owner_id;return f?this.users(c).find((t)=>t.id===f):void 0}spaceCreator(c){return Q.spaceCreator(this.result,c)}static spaceCreator(c,x){let f=x.creator_id;return f?this.users(c).find((t)=>t.id===f):void 0}spaceHosts(c){return Q.spaceHosts(this.result,c)}static spaceHosts(c,x){var f;let t=(f=x.host_ids)!==null&&f!==void 0?f:[];return this.users(c).filter((n)=>t.includes(n.id))}spaceSpeakers(c){return Q.spaceSpeakers(this.result,c)}static spaceSpeakers(c,x){var f;let t=(f=x.speaker_ids)!==null&&f!==void 0?f:[];return this.users(c).filter((n)=>t.includes(n.id))}spaceInvitedUsers(c){return Q.spaceInvitedUsers(this.result,c)}static spaceInvitedUsers(c,x){var f;let t=(f=x.invited_user_ids)!==null&&f!==void 0?f:[];return this.users(c).filter((n)=>t.includes(n.id))}}class ef extends On{updateIncludes(c){if(c.errors){if(!this._realData.errors)this._realData.errors=[];this._realData.errors=[...this._realData.errors,...c.errors]}if(!c.includes)return;if(!this._realData.includes)this._realData.includes={};let x=this._realData.includes;for(let[f,t]of Object.entries(c.includes)){if(!x[f])x[f]=[];x[f]=[...x[f],...t]}}assertUsable(){if(this.unusable)throw Error("Unable to use this paginator to fetch more data, as it does not contain any metadata. Check .errors property for more details.")}get meta(){return this._realData.meta}get includes(){var c;if(!((c=this._realData)===null||c===void 0?void 0:c.includes))return new Q(this._realData);if(this._includesInstance)return this._includesInstance;return this._includesInstance=new Q(this._realData)}get errors(){var c;return(c=this._realData.errors)!==null&&c!==void 0?c:[]}get unusable(){return this.errors.length>0&&!this._realData.meta&&!this._realData.data}}class nc extends ef{refreshInstanceFromResult(c,x){var f;let t=c.data,n=(f=t.data)!==null&&f!==void 0?f:[];if(this._rateLimit=c.rateLimit,!this._realData.data)this._realData.data=[];if(x)this._realData.meta.result_count+=t.meta.result_count,this._realData.meta.next_token=t.meta.next_token,this._realData.data.push(...n);else this._realData.meta.result_count+=t.meta.result_count,this._realData.meta.previous_token=t.meta.previous_token,this._realData.data.unshift(...n);this.updateIncludes(t)}getNextQueryParams(c){return this.assertUsable(),{...this.injectQueryParams(c),pagination_token:this._realData.meta.next_token}}getPreviousQueryParams(c){return this.assertUsable(),{...this.injectQueryParams(c),pagination_token:this._realData.meta.previous_token}}getPageLengthFromRequest(c){var x,f;return(f=(x=c.data.data)===null||x===void 0?void 0:x.length)!==null&&f!==void 0?f:0}isFetchLastOver(c){var x;return!((x=c.data.data)===null||x===void 0?void 0:x.length)||!this.canFetchNextPage(c.data)}canFetchNextPage(c){var x;return!!((x=c.meta)===null||x===void 0?void 0:x.next_token)}}class an extends ef{refreshInstanceFromResult(c,x){var f;let t=c.data,n=(f=t.data)!==null&&f!==void 0?f:[];if(this._rateLimit=c.rateLimit,!this._realData.data)this._realData.data=[];if(x)this._realData.meta.oldest_id=t.meta.oldest_id,this._realData.meta.result_count+=t.meta.result_count,this._realData.meta.next_token=t.meta.next_token,this._realData.data.push(...n);else this._realData.meta.newest_id=t.meta.newest_id,this._realData.meta.result_count+=t.meta.result_count,this._realData.data.unshift(...n);this.updateIncludes(t)}getNextQueryParams(c){this.assertUsable();let x={...this.injectQueryParams(c)};if(this._realData.meta.next_token)x.next_token=this._realData.meta.next_token;else{if(x.start_time)x.since_id=this.dateStringToSnowflakeId(x.start_time),delete x.start_time;if(x.end_time)delete x.end_time;x.until_id=this._realData.meta.oldest_id}return x}getPreviousQueryParams(c){return this.assertUsable(),{...this.injectQueryParams(c),since_id:this._realData.meta.newest_id}}getPageLengthFromRequest(c){var x,f;return(f=(x=c.data.data)===null||x===void 0?void 0:x.length)!==null&&f!==void 0?f:0}isFetchLastOver(c){var x;return!((x=c.data.data)===null||x===void 0?void 0:x.length)||!this.canFetchNextPage(c.data)}canFetchNextPage(c){return!!c.meta.next_token}getItemArray(){return this.tweets}dateStringToSnowflakeId(c){let x=BigInt("1288834974657"),f=new Date(c);if(isNaN(f.valueOf()))throw Error("Unable to convert start_time/end_time to a valid date. A ISO 8601 DateTime is excepted, please check your input.");return(BigInt(f.valueOf())-x<<BigInt("22")).toString()}get tweets(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}}class tx extends nc{refreshInstanceFromResult(c,x){super.refreshInstanceFromResult(c,x);let f=c.data;if(x)this._realData.meta.oldest_id=f.meta.oldest_id;else this._realData.meta.newest_id=f.meta.newest_id}getItemArray(){return this.tweets}get tweets(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}}class rn extends an{constructor(){super(...arguments);this._endpoint="tweets/search/recent"}}class ch extends an{constructor(){super(...arguments);this._endpoint="tweets/search/all"}}class xh extends tx{constructor(){super(...arguments);this._endpoint="tweets/:id/quote_tweets"}}class fh extends tx{constructor(){super(...arguments);this._endpoint="users/:id/timelines/reverse_chronological"}}class th extends tx{constructor(){super(...arguments);this._endpoint="users/:id/tweets"}}class nh extends tx{constructor(){super(...arguments);this._endpoint="users/:id/mentions"}}class hh extends tx{constructor(){super(...arguments);this._endpoint="users/:id/bookmarks"}}class vh extends nc{get tweets(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}getItemArray(){return this.tweets}}class Sh extends vh{constructor(){super(...arguments);this._endpoint="users/:id/liked_tweets"}}class yh extends vh{constructor(){super(...arguments);this._endpoint="lists/:id/tweets"}}class Sc extends nc{getItemArray(){return this.users}get users(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}}class wh extends Sc{constructor(){super(...arguments);this._endpoint="users/:id/blocking"}}class bh extends Sc{constructor(){super(...arguments);this._endpoint="users/:id/muting"}}class Bh extends Sc{constructor(){super(...arguments);this._endpoint="users/:id/followers"}}class $h extends Sc{constructor(){super(...arguments);this._endpoint="users/:id/following"}}class Gh extends Sc{constructor(){super(...arguments);this._endpoint="lists/:id/members"}}class Mh extends Sc{constructor(){super(...arguments);this._endpoint="lists/:id/followers"}}class zh extends Sc{constructor(){super(...arguments);this._endpoint="tweets/:id/liking_users"}}class Nh extends Sc{constructor(){super(...arguments);this._endpoint="tweets/:id/retweeted_by"}}class af extends nc{getItemArray(){return this.lists}get lists(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}}class Zh extends af{constructor(){super(...arguments);this._endpoint="users/:id/owned_lists"}}class Wh extends af{constructor(){super(...arguments);this._endpoint="users/:id/list_memberships"}}class Rh extends af{constructor(){super(...arguments);this._endpoint="users/:id/followed_lists"}}class nx extends e{constructor(){super(...arguments);this._prefix=dc}}class rf extends nc{getItemArray(){return this.events}get events(){var c;return(c=this._realData.data)!==null&&c!==void 0?c:[]}get meta(){return super.meta}}class jh extends rf{constructor(){super(...arguments);this._endpoint="dm_events"}}class Kh extends rf{constructor(){super(...arguments);this._endpoint="dm_conversations/with/:participant_id/dm_events"}}class Oh extends rf{constructor(){super(...arguments);this._endpoint="dm_conversations/:dm_conversation_id/dm_events"}}class hx extends e{constructor(){super(...arguments);this._prefix=zc}get labs(){if(this._labs)return this._labs;return this._labs=new nx(this)}async search(c,x={}){let f=typeof c==="string"?{...x,query:c}:{...c},t=await this.get("tweets/search/recent",f,{fullResponse:!0});return new rn({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}async searchAll(c,x={}){let f={...x,query:c},t=await this.get("tweets/search/all",f,{fullResponse:!0});return new ch({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:f})}singleTweet(c,x={}){return this.get("tweets/:id",x,{params:{id:c}})}tweets(c,x={}){return this.get("tweets",{ids:c,...x})}tweetCountRecent(c,x={}){return this.get("tweets/counts/recent",{query:c,...x})}tweetCountAll(c,x={}){return this.get("tweets/counts/all",{query:c,...x})}async tweetRetweetedBy(c,x={}){let{asPaginator:f,...t}=x,n=await this.get("tweets/:id/retweeted_by",t,{fullResponse:!0,params:{id:c}});if(!f)return n.data;return new Nh({realData:n.data,rateLimit:n.rateLimit,instance:this,queryParams:t,sharedParams:{id:c}})}async tweetLikedBy(c,x={}){let{asPaginator:f,...t}=x,n=await this.get("tweets/:id/liking_users",t,{fullResponse:!0,params:{id:c}});if(!f)return n.data;return new zh({realData:n.data,rateLimit:n.rateLimit,instance:this,queryParams:t,sharedParams:{id:c}})}async homeTimeline(c={}){let x=await this.getCurrentUserV2Object(),f=await this.get("users/:id/timelines/reverse_chronological",c,{fullResponse:!0,params:{id:x.data.id}});return new fh({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:c,sharedParams:{id:x.data.id}})}async userTimeline(c,x={}){let f=await this.get("users/:id/tweets",x,{fullResponse:!0,params:{id:c}});return new th({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x,sharedParams:{id:c}})}async userMentionTimeline(c,x={}){let f=await this.get("users/:id/mentions",x,{fullResponse:!0,params:{id:c}});return new nh({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x,sharedParams:{id:c}})}async quotes(c,x={}){let f=await this.get("tweets/:id/quote_tweets",x,{fullResponse:!0,params:{id:c}});return new xh({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:x,sharedParams:{id:c}})}async bookmarks(c={}){let x=await this.getCurrentUserV2Object(),f=await this.get("users/:id/bookmarks",c,{fullResponse:!0,params:{id:x.data.id}});return new hh({realData:f.data,rateLimit:f.rateLimit,instance:this,queryParams:c,sharedParams:{id:x.data.id}})}me(c={}){return this.get("users/me",c)}user(c,x={}){return this.get("users/:id",x,{params:{id:c}})}users(c,x={}){let f=Array.isArray(c)?c.join(","):c;return this.get("users",{...x,ids:f})}userByUsername(c,x={}){return this.get("users/by/username/:username",x,{params:{username:c}})}usersByUsernames(c,x={}){return c=Array.isArray(c)?c.join(","):c,this.get("users/by",{...x,usernames:c})}async followers(c,x={}){let{asPaginator:f,...t}=x,n={id:c};if(!f)return this.get("users/:id/followers",t,{params:n});let h=await this.get("users/:id/followers",t,{fullResponse:!0,params:n});return new Bh({realData:h.data,rateLimit:h.rateLimit,instance:this,queryParams:t,sharedParams:n})}async following(c,x={}){let{asPaginator:f,...t}=x,n={id:c};if(!f)return this.get("users/:id/following",t,{params:n});let h=await this.get("users/:id/following",t,{fullResponse:!0,params:n});return new $h({realData:h.data,rateLimit:h.rateLimit,instance:this,queryParams:t,sharedParams:n})}async userLikedTweets(c,x={}){let f={id:c},t=await this.get("users/:id/liked_tweets",x,{fullResponse:!0,params:f});return new Sh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async userBlockingUsers(c,x={}){let f={id:c},t=await this.get("users/:id/blocking",x,{fullResponse:!0,params:f});return new wh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async userMutingUsers(c,x={}){let f={id:c},t=await this.get("users/:id/muting",x,{fullResponse:!0,params:f});return new bh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}list(c,x={}){return this.get("lists/:id",x,{params:{id:c}})}async listsOwned(c,x={}){let f={id:c},t=await this.get("users/:id/owned_lists",x,{fullResponse:!0,params:f});return new Zh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listMemberships(c,x={}){let f={id:c},t=await this.get("users/:id/list_memberships",x,{fullResponse:!0,params:f});return new Wh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listFollowed(c,x={}){let f={id:c},t=await this.get("users/:id/followed_lists",x,{fullResponse:!0,params:f});return new Rh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listTweets(c,x={}){let f={id:c},t=await this.get("lists/:id/tweets",x,{fullResponse:!0,params:f});return new yh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listMembers(c,x={}){let f={id:c},t=await this.get("lists/:id/members",x,{fullResponse:!0,params:f});return new Gh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listFollowers(c,x={}){let f={id:c},t=await this.get("lists/:id/followers",x,{fullResponse:!0,params:f});return new Mh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listDmEvents(c={}){let x=await this.get("dm_events",c,{fullResponse:!0});return new jh({realData:x.data,rateLimit:x.rateLimit,instance:this,queryParams:{...c}})}async listDmEventsWithParticipant(c,x={}){let f={participant_id:c},t=await this.get("dm_conversations/with/:participant_id/dm_events",x,{fullResponse:!0,params:f});return new Kh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}async listDmEventsOfConversation(c,x={}){let f={dm_conversation_id:c},t=await this.get("dm_conversations/:dm_conversation_id/dm_events",x,{fullResponse:!0,params:f});return new Oh({realData:t.data,rateLimit:t.rateLimit,instance:this,queryParams:{...x},sharedParams:f})}space(c,x={}){return this.get("spaces/:id",x,{params:{id:c}})}spaces(c,x={}){return this.get("spaces",{ids:c,...x})}spacesByCreators(c,x={}){return this.get("spaces/by/creator_ids",{user_ids:c,...x})}searchSpaces(c){return this.get("spaces/search",c)}spaceBuyers(c,x={}){return this.get("spaces/:id/buyers",x,{params:{id:c}})}spaceTweets(c,x={}){return this.get("spaces/:id/tweets",x,{params:{id:c}})}searchStream({autoConnect:c,...x}={}){return this.getStream("tweets/search/stream",x,{payloadIsError:_f,autoConnect:c})}streamRules(c={}){return this.get("tweets/search/stream/rules",c)}updateStreamRules(c,x={}){return this.post("tweets/search/stream/rules",c,{query:x})}sampleStream({autoConnect:c,...x}={}){return this.getStream("tweets/sample/stream",x,{payloadIsError:_f,autoConnect:c})}sample10Stream({autoConnect:c,...x}={}){return this.getStream("tweets/sample10/stream",x,{payloadIsError:_f,autoConnect:c})}complianceJobs(c){return this.get("compliance/jobs",c)}complianceJob(c){return this.get("compliance/jobs/:id",void 0,{params:{id:c}})}async sendComplianceJob(c){let x=await this.post("compliance/jobs",{type:c.type,name:c.name}),f=c.ids instanceof Buffer?c.ids:Buffer.from(c.ids.join(`
|
|
43
|
+
`));return await this.put(x.data.upload_url,f,{forceBodyMode:"raw",enableAuth:!1,headers:{"Content-Type":"text/plain"},prefix:""}),x}async complianceJobResult(c){let x=c;while(x.status!=="complete"){if(x.status==="expired"||x.status==="failed")throw Error("Job failed to be completed.");await new Promise((t)=>setTimeout(t,3500)),x=(await this.complianceJob(c.id)).data}return(await this.get(c.download_url,void 0,{enableAuth:!1,prefix:""})).trim().split(`
|
|
44
|
+
`).filter((t)=>t).map((t)=>JSON.parse(t))}async usage(c={}){return this.get("usage/tweets",c)}community(c,x={}){return this.get("communities/:id",x,{params:{id:c}})}searchCommunities(c,x={}){return this.get("communities/search",{query:c,...x})}}class vx extends nx{constructor(){super(...arguments);this._prefix=dc}get readOnly(){return this}}class Sx extends hx{constructor(){super(...arguments);this._prefix=zc}get readOnly(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new vx(this)}hideReply(c,x){return this.put("tweets/:id/hidden",{hidden:x},{params:{id:c}})}like(c,x){return this.post("users/:id/likes",{tweet_id:x},{params:{id:c}})}unlike(c,x){return this.delete("users/:id/likes/:tweet_id",void 0,{params:{id:c,tweet_id:x}})}retweet(c,x){return this.post("users/:id/retweets",{tweet_id:x},{params:{id:c}})}unretweet(c,x){return this.delete("users/:id/retweets/:tweet_id",void 0,{params:{id:c,tweet_id:x}})}tweet(c,x={}){if(typeof c==="object")x=c;else x={text:c,...x};return this.post("tweets",x)}async uploadMedia(c,x,f=1048576){let t=x.media_category;if(!x.media_category){if(x.media_type.includes("gif"))t="tweet_gif";else if(x.media_type.includes("image"))t="tweet_image";else if(x.media_type.includes("video"))t="tweet_video"}let n={additional_owners:x.additional_owners,media_type:x.media_type,total_bytes:c.length,media_category:t},v=(await this.post("media/upload/initialize",n)).data.id,S=Math.ceil(c.length/f),y=new Uint8Array(c);for(let B=0;B<S;B++){let $=B*f,N=Math.min($+f,c.length),j=y.slice($,N),I=Buffer.from(j),T={segment_index:B,media:I};await this.post(`media/upload/${v}/append`,T,{forceBodyMode:"form-data"})}if((await this.post(`media/upload/${v}/finalize`)).data.processing_info)await this.waitForMediaProcessing(v);return v}async waitForMediaProcessing(c){var x;let t=(await this.get("media/upload",{command:"STATUS",media_id:c})).data.processing_info;if(!t)return;switch(t.state){case"succeeded":return;case"failed":throw Error(`Media processing failed: ${(x=t.error)===null||x===void 0?void 0:x.message}`);case"pending":case"in_progress":{let n=t===null||t===void 0?void 0:t.check_after_secs;if(n&&n>0)await new Promise((h)=>setTimeout(h,n*1000)),await this.waitForMediaProcessing(c)}}}createMediaMetadata(c,x){return this.post("media/metadata",{id:c,metadata:x})}reply(c,x,f={}){var t;let n={in_reply_to_tweet_id:x,...(t=f.reply)!==null&&t!==void 0?t:{}};return this.post("tweets",{text:c,...f,reply:n})}quote(c,x,f={}){return this.tweet(c,{...f,quote_tweet_id:x})}async tweetThread(c){var x,f;let t=[];for(let n of c){let h=t.length?t[t.length-1]:null,v={...typeof n==="string"?{text:n}:n},S=h?h.data.id:(x=v.reply)===null||x===void 0?void 0:x.in_reply_to_tweet_id,y=(f=v.text)!==null&&f!==void 0?f:"";if(S)t.push(await this.reply(y,S,v));else t.push(await this.tweet(y,v))}return t}deleteTweet(c){return this.delete("tweets/:id",void 0,{params:{id:c}})}async bookmark(c){let x=await this.getCurrentUserV2Object();return this.post("users/:id/bookmarks",{tweet_id:c},{params:{id:x.data.id}})}async deleteBookmark(c){let x=await this.getCurrentUserV2Object();return this.delete("users/:id/bookmarks/:tweet_id",void 0,{params:{id:x.data.id,tweet_id:c}})}follow(c,x){return this.post("users/:id/following",{target_user_id:x},{params:{id:c}})}unfollow(c,x){return this.delete("users/:source_user_id/following/:target_user_id",void 0,{params:{source_user_id:c,target_user_id:x}})}block(c,x){return this.post("users/:id/blocking",{target_user_id:x},{params:{id:c}})}unblock(c,x){return this.delete("users/:source_user_id/blocking/:target_user_id",void 0,{params:{source_user_id:c,target_user_id:x}})}mute(c,x){return this.post("users/:id/muting",{target_user_id:x},{params:{id:c}})}unmute(c,x){return this.delete("users/:source_user_id/muting/:target_user_id",void 0,{params:{source_user_id:c,target_user_id:x}})}createList(c){return this.post("lists",c)}updateList(c,x={}){return this.put("lists/:id",x,{params:{id:c}})}removeList(c){return this.delete("lists/:id",void 0,{params:{id:c}})}addListMember(c,x){return this.post("lists/:id/members",{user_id:x},{params:{id:c}})}removeListMember(c,x){return this.delete("lists/:id/members/:user_id",void 0,{params:{id:c,user_id:x}})}subscribeToList(c,x){return this.post("users/:id/followed_lists",{list_id:x},{params:{id:c}})}unsubscribeOfList(c,x){return this.delete("users/:id/followed_lists/:list_id",void 0,{params:{id:c,list_id:x}})}pinList(c,x){return this.post("users/:id/pinned_lists",{list_id:x},{params:{id:c}})}unpinList(c,x){return this.delete("users/:id/pinned_lists/:list_id",void 0,{params:{id:c,list_id:x}})}sendDmInConversation(c,x){return this.post("dm_conversations/:dm_conversation_id/messages",x,{params:{dm_conversation_id:c}})}sendDmToParticipant(c,x){return this.post("dm_conversations/with/:participant_id/messages",x,{params:{participant_id:c}})}createDmConversation(c){return this.post("dm_conversations",c)}}class A0 extends vx{constructor(){super(...arguments);this._prefix=dc}get readWrite(){return this}}var I0=A0;class g0 extends Sx{constructor(){super(...arguments);this._prefix=zc}get readWrite(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new I0(this)}}var C0=g0;class Ax extends Wc{get v1(){if(this._v1)return this._v1;return this._v1=new xx(this)}get v2(){if(this._v2)return this._v2;return this._v2=new hx(this)}async currentUser(c=!1){return await this.getCurrentUserObject(c)}async currentUserV2(c=!1){return await this.getCurrentUserV2Object(c)}search(c,x){return this.v2.search(c,x)}async generateAuthLink(c="oob",{authAccessType:x,linkMode:f="authenticate",forceLogin:t,screenName:n}={}){let h=await this.post("https://api.x.com/oauth/request_token",{oauth_callback:c,x_auth_access_type:x}),v=`https://api.x.com/oauth/${f}?oauth_token=${encodeURIComponent(h.oauth_token)}`;if(t!==void 0)v+=`&force_login=${encodeURIComponent(t)}`;if(n!==void 0)v+=`&screen_name=${encodeURIComponent(n)}`;if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth1RequestToken",{client:this._requestMaker,url:v,oauthResult:h});return{url:v,...h}}async login(c){let x=this.getActiveTokens();if(x.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept OAuth 1.0 login");let f=await this.post("https://api.x.com/oauth/access_token",{oauth_token:x.accessToken,oauth_verifier:c}),t=new this.constructor({appKey:x.appKey,appSecret:x.appSecret,accessToken:f.oauth_token,accessSecret:f.oauth_token_secret},this._requestMaker.clientSettings);return{accessToken:f.oauth_token,accessSecret:f.oauth_token_secret,userId:f.user_id,screenName:f.screen_name,client:t}}async appLogin(){let c=this.getActiveTokens();if(c.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept app-only login");let f=await new this.constructor({username:c.appKey,password:c.appSecret},this._requestMaker.clientSettings).post("https://api.x.com/oauth2/token",{grant_type:"client_credentials"});return new this.constructor(f.access_token,this._requestMaker.clientSettings)}generateOAuth2AuthLink(c,x={}){var f,t;if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. You can find your client ID in Twitter Developer Portal. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let n=(f=x.state)!==null&&f!==void 0?f:Uc.generateRandomString(32),h=Uc.getCodeVerifier(),v=Uc.getCodeChallengeFromVerifier(h),S=(t=x.scope)!==null&&t!==void 0?t:"",y=Array.isArray(S)?S.join(" "):S,w=new URL("https://x.com/i/oauth2/authorize"),B={response_type:"code",client_id:this._requestMaker.clientId,redirect_uri:c,state:n,code_challenge:v,code_challenge_method:"s256",scope:y};o.addQueryParamsToUrl(w,B);let $={url:w.toString(),state:n,codeVerifier:h,codeChallenge:v};if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth2RequestToken",{client:this._requestMaker,result:$,redirectUri:c});return $}async loginWithOAuth2({code:c,codeVerifier:x,redirectUri:f}){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let t=await this.post("https://api.x.com/2/oauth2/token",{code:c,code_verifier:x,redirect_uri:f,grant_type:"authorization_code",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(t)}async refreshOAuth2Token(c){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let x=await this.post("https://api.x.com/2/oauth2/token",{refresh_token:c,grant_type:"refresh_token",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(x)}async revokeOAuth2Token(c,x="access_token"){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");return await this.post("https://api.x.com/2/oauth2/revoke",{client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret,token:c,token_type_hint:x})}parseOAuth2AccessTokenResult(c){let x=new this.constructor(c.access_token,this._requestMaker.clientSettings),f=c.scope.split(" ").filter((t)=>t);return{client:x,expiresIn:c.expires_in,accessToken:c.access_token,scope:f,refreshToken:c.refresh_token}}}class Ix extends Ax{get v1(){if(this._v1)return this._v1;return this._v1=new fx(this)}get v2(){if(this._v2)return this._v2;return this._v2=new Sx(this)}get readOnly(){return this}}class ct extends e{constructor(){super(...arguments);this._prefix=oc}}class xt extends ct{constructor(){super(...arguments);this._prefix=oc}get readOnly(){return this}}class ft extends e{constructor(){super(...arguments);this._prefix=ec}}class tt extends ft{constructor(){super(...arguments);this._prefix=ec}get readOnly(){return this}}class P0 extends tt{constructor(){super(...arguments);this._prefix=ec}get readWrite(){return this}}var m0=P0;class T0 extends xt{constructor(){super(...arguments);this._prefix=oc}get readWrite(){return this}get sandbox(){if(this._sandbox)return this._sandbox;return this._sandbox=new m0(this)}}var _0=T0;class Jh extends Ix{get v1(){if(this._v1)return this._v1;return this._v1=new of(this)}get v2(){if(this._v2)return this._v2;return this._v2=new C0(this)}get readWrite(){return this}get ads(){if(this._ads)return this._ads;return this._ads=new _0(this)}static getErrors(c){var x;if(typeof c!=="object")return[];if(!("data"in c))return[];return(x=c.data.errors)!==null&&x!==void 0?x:[]}static getProfileImageInSize(c,x){let f=c.split("/").pop(),t=["normal","bigger","mini"],n=c;for(let v of t)if(f.includes(`_${v}`)){n=c.replace(`_${v}`,"");break}if(x==="original")return n;let h=n.lastIndexOf(".");if(h!==-1){let v=n.slice(h+1);return n.slice(0,h)+"_"+x+"."+v}else return n+"_"+x}}var Ob={clientId:process.env.X_CLIENT_ID,clientSecret:process.env.X_SECRET,redirectPath:"/auth/oauth/x/callback",scope:["tweet.read","users.read","offline.access"]};class p0 extends ic{config;client;oauthStates=new Map;constructor(c={}){super();this.config={...Ob,...c},this.client=new Jh({clientId:this.config.clientId,clientSecret:this.config.clientSecret})}getRedirectUrl(){let{url:c,codeVerifier:x,state:f}=this.client.generateOAuth2AuthLink(`${process.env.HOST_NAME}${this.config.redirectPath}`,{scope:this.config.scope});return this.oauthStates.set(f,{state:f,codeVerifier:x}),q0.to(c),c}async onCallback(c){let x=c.search.get("code"),f=c.search.get("state"),t=this.oauthStates.get(f);if(!t)throw Error("Invalid or expired OAuth state");let n=await this.client.loginWithOAuth2({code:x,codeVerifier:t.codeVerifier,redirectUri:`${process.env.HOST_NAME}${this.config.redirectPath}`});this.oauthStates.delete(f);let{data:h}=await n.client.v2.me({"user.fields":["name","username","entities"]}),{name:v,email:S,id:y="",username:w}=h??{};return{name:v,email:S,username:w,providerId:y}}}class l0{name;cron;callback(){}onTick(){}onComplete(){}static exp(c){return c}}export{_b as viewRouteConfigDefaults,t4 as translationConfigDefaults,Nn as toRangeHeaderValue,h4 as scheduleConfigDefaults,Wn as resolveRange,D4 as redisConfigDefaults,K4 as rateLimiterConfigDefaults,c4 as queueConfigDefaults,Qx as parseContentRange,Db as middlewareConfigDefaults,ob as mailConfigDefaults,$4 as logConfigDefaults,Ib as imageConfigDefaults,Ub as filesystemConfigDefaults,f4 as defineTranslationConfig,n4 as defineScheduleConfig,mb as defineRouteConfig,J4 as defineRedisConfig,j4 as defineRateLimiterConfig,rb as defineQueueConfig,Jb as defineMiddlewareConfig,db as defineMailConfig,B4 as defineLogConfig,Ab as defineImageConfig,ub as defineFilesystemConfig,z4 as defineBroadcastConfig,Qb as defineAuthConfig,N4 as broadcastConfigDefaults,kb as authConfigDefaults,Tb as apiRouteConfigDefaults,p0 as XOAuthProvider,pb as ViewRouteDispatcher,Lb as Sharp,ab as Scheduler,v4 as ScheduleServiceProvider,S0 as S3Driver,k4 as RouteServiceProvider,ib as ResendDriver,Q4 as RedisServiceProvider,G0 as RedisRateLimiter,Vb as RedisManager,O4 as RateLimiterServiceProvider,Rn as RateLimiterDriver,sb as RateLimiter,Ec as RangeNotSatisfiableError,W4 as QueueServiceProvider,jn as QueueManager,ic as OAuthProvider,M4 as MiddlewareServiceProvider,Pb as MiddlewareRegistry,S4 as MailServiceProvider,eb as MailManager,G4 as LogServiceProvider,Cb as LogManager,b4 as KernelIdServiceProvider,qb as KernelId,M0 as Job,R4 as InMemoryRateLimiter,w4 as ImageServiceProvider,Fb as ImageOptimizationDriver,gb as ImageManager,z0 as GoogleOAuthProvider,y4 as FilesystemServiceProvider,Hb as FilesystemManager,Xb as FileSystemDriver,kx as FileStorageDriver,Mc as FileNotFoundError,Eb as EmailDriver,l0 as CronJob,Z4 as BroadcastServiceProvider,Yb as BroadcastManager,w0 as AzureBlobDriver,x4 as AuthServiceProvider,lb as ApiRouteDispatcher};
|
|
45
|
+
|
|
46
|
+
//# debugId=78C731A01E88650F64756E2164756E21
|