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
|
@@ -1,9 +1,165 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
3
|
+
"sources": ["../../../node_modules/.bun/@aws-sdk+middleware-expect-continue@3.972.8/node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringUnionSelector.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeaderWithPrefix.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js", "../../../node_modules/.bun/tslib@2.8.1/node_modules/tslib/modules/index.js", "../../../node_modules/.bun/@smithy+util-buffer-from@2.2.0/node_modules/@smithy/util-buffer-from/dist-es/index.js", "../../../node_modules/.bun/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js", "../../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/module/convertToBuffer.js", "../../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/module/isEmptyData.js", "../../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/module/numToUint8.js", "../../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/module/uint32ArrayFrom.js", "../../../node_modules/.bun/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/build/module/aws_crc32c.js", "../../../node_modules/.bun/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/build/module/index.js", "../../../node_modules/.bun/@aws-sdk+crc64-nvme@3.972.5/node_modules/@aws-sdk/crc64-nvme/dist-es/Crc64Nvme.js", "../../../node_modules/.bun/@aws-sdk+crc64-nvme@3.972.5/node_modules/@aws-sdk/crc64-nvme/dist-es/crc64-nvme-crt-container.js", "../../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js", "../../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/module/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsInputMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js", "../../../node_modules/.bun/@aws-sdk+middleware-flexible-checksums@3.974.4/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js", "../../../node_modules/.bun/@aws-sdk+util-arn-parser@3.972.3/node_modules/@aws-sdk/util-arn-parser/dist-es/index.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js", "../../../node_modules/.bun/@aws-sdk+middleware-sdk-s3@3.972.24/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js", "../../../node_modules/.bun/@smithy+eventstream-serde-config-resolver@4.3.12/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js", "../../../node_modules/.bun/@aws-sdk+signature-v4-multi-region@3.996.12/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js", "../../../node_modules/.bun/@aws-sdk+signature-v4-multi-region@3.996.12/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/models/errors.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js", "../../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.25/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js", "../../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.25/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js", "../../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.25/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js", "../../../node_modules/.bun/@aws-sdk+middleware-bucket-endpoint@3.972.8/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/NodeUseArnRegionConfigOptions.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/Int64.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js", "../../../node_modules/.bun/@smithy+eventstream-codec@4.2.12/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js", "../../../node_modules/.bun/@smithy+eventstream-serde-universal@4.2.12/node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js", "../../../node_modules/.bun/@smithy+eventstream-serde-universal@4.2.12/node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js", "../../../node_modules/.bun/@smithy+eventstream-serde-universal@4.2.12/node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js", "../../../node_modules/.bun/@smithy+eventstream-serde-node@4.2.12/node_modules/@smithy/eventstream-serde-node/dist-es/EventStreamMarshaller.js", "../../../node_modules/.bun/@smithy+eventstream-serde-node@4.2.12/node_modules/@smithy/eventstream-serde-node/dist-es/utils.js", "../../../node_modules/.bun/@smithy+eventstream-serde-node@4.2.12/node_modules/@smithy/eventstream-serde-node/dist-es/provider.js", "../../../node_modules/.bun/@smithy+hash-stream-node@4.2.12/node_modules/@smithy/hash-stream-node/dist-es/HashCalculator.js", "../../../node_modules/.bun/@smithy+hash-stream-node@4.2.12/node_modules/@smithy/hash-stream-node/dist-es/readableStreamHasher.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthExtensionConfiguration.js", "../../../node_modules/.bun/@aws-sdk+middleware-ssec@3.972.8/node_modules/@aws-sdk/middleware-ssec/dist-es/index.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js", "../../../node_modules/.bun/@aws-sdk+client-s3@3.1015.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js", "../services/file-storage/drivers/S3Driver.ts", "../services/file-storage/drivers/AzureBlobDriver.ts", "../services/rate-limiter/drivers/RedisRateLimiterDriver.ts", "../services/queue/Job.ts", "../auth/oauth/OAuthProvider.ts", "../auth/oauth/GoogleOAuthProvider.ts", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/globals.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/TwitterPaginator.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/dm.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/types/v1/tweet.v1.types.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/types/v1/dm.v1.types.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/types/errors.types.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/types/client.types.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/types/plugins/client.plugins.types.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v1/client.v1.write.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/settings.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/helpers.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/stream/TweetStream.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/request-handler.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/stream/TweetStreamEventCombiner.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/stream/TweetStreamParser.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/plugins/helpers.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/oauth1.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/form-data.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/request-param.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/oauth2.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client-mixins/request-maker.mixin.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client.base.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client.subclient.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/tweet.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/mutes.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/followers.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/friends.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/user.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/list.paginator.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v1/client.v1.read.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v1/media-helpers.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v1/client.v1.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2/includes.v2.helper.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/v2.paginator.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/tweet.paginator.v2.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/user.paginator.v2.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/list.paginator.v2.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2-labs/client.v2.labs.read.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/paginators/dm.paginator.v2.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2/client.v2.read.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2-labs/client.v2.labs.write.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2/client.v2.write.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2-labs/client.v2.labs.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/v2/client.v2.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client/readonly.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client/readwrite.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads/client.ads.read.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads/client.ads.write.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads-sandbox/client.ads-sandbox.read.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads-sandbox/client.ads-sandbox.write.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads-sandbox/client.ads-sandbox.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/ads/client.ads.js", "../../../node_modules/.bun/twitter-api-v2@1.29.0/node_modules/twitter-api-v2/dist/esm/client/index.js", "../auth/oauth/XOAuthProvider.ts", "../services/cron/CronJob.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
+
"import { HttpRequest } from \"@smithy/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (options.expectContinueHeader !== false &&\n HttpRequest.isInstance(request) &&\n request.body &&\n options.runtime === \"node\" &&\n options.requestHandler?.constructor?.name !== \"FetchHttpHandler\") {\n let sendHeader = true;\n if (typeof options.expectContinueHeader === \"number\") {\n try {\n const bodyLength = Number(request.headers?.[\"content-length\"]) ?? options.bodyLengthChecker?.(request.body) ?? Infinity;\n sendHeader = bodyLength >= options.expectContinueHeader;\n }\n catch (e) { }\n }\n else {\n sendHeader = !!options.expectContinueHeader;\n }\n if (sendHeader) {\n request.headers.Expect = \"100-continue\";\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport const getAddExpectContinuePlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n});\n",
|
|
6
|
+
"export const RequestChecksumCalculation = {\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport const ResponseChecksumValidation = {\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport var ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm[\"CRC64NVME\"] = \"CRC64NVME\";\n ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm || (ChecksumAlgorithm = {}));\nexport var ChecksumLocation;\n(function (ChecksumLocation) {\n ChecksumLocation[\"HEADER\"] = \"header\";\n ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation || (ChecksumLocation = {}));\nexport const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;\n",
|
|
7
|
+
"export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport const stringUnionSelector = (obj, key, union, type) => {\n if (!(key in obj))\n return undefined;\n const value = obj[key].toUpperCase();\n if (!Object.values(union).includes(value)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);\n }\n return value;\n};\n",
|
|
8
|
+
"import { DEFAULT_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation } from \"./constants\";\nimport { SelectorType, stringUnionSelector } from \"./stringUnionSelector\";\nexport const ENV_REQUEST_CHECKSUM_CALCULATION = \"AWS_REQUEST_CHECKSUM_CALCULATION\";\nexport const CONFIG_REQUEST_CHECKSUM_CALCULATION = \"request_checksum_calculation\";\nexport const NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => stringUnionSelector(env, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType.ENV),\n configFileSelector: (profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType.CONFIG),\n default: DEFAULT_REQUEST_CHECKSUM_CALCULATION,\n};\n",
|
|
9
|
+
"import { DEFAULT_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation } from \"./constants\";\nimport { SelectorType, stringUnionSelector } from \"./stringUnionSelector\";\nexport const ENV_RESPONSE_CHECKSUM_VALIDATION = \"AWS_RESPONSE_CHECKSUM_VALIDATION\";\nexport const CONFIG_RESPONSE_CHECKSUM_VALIDATION = \"response_checksum_validation\";\nexport const NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => stringUnionSelector(env, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType.ENV),\n configFileSelector: (profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType.CONFIG),\n default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION,\n};\n",
|
|
10
|
+
"import { setFeature } from \"@aws-sdk/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { createBufferedReadable } from \"@smithy/util-stream\";\nimport { ChecksumAlgorithm, DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nimport { getChecksumAlgorithmForRequest } from \"./getChecksumAlgorithmForRequest\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { hasHeader } from \"./hasHeader\";\nimport { hasHeaderWithPrefix } from \"./hasHeaderWithPrefix\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nimport { stringHasher } from \"./stringHasher\";\nexport const flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n if (hasHeaderWithPrefix(\"x-amz-checksum-\", args.request.headers)) {\n return next(args);\n }\n const { request, input } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const requestAlgorithmMemberName = requestAlgorithmMember?.name;\n const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;\n if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {\n if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {\n input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;\n if (requestAlgorithmMemberHttpHeader) {\n headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;\n }\n }\n }\n const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n requestChecksumRequired,\n requestAlgorithmMember: requestAlgorithmMember?.name,\n requestChecksumCalculation,\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n switch (checksumAlgorithm) {\n case ChecksumAlgorithm.CRC32:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32\", \"U\");\n break;\n case ChecksumAlgorithm.CRC32C:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32C\", \"V\");\n break;\n case ChecksumAlgorithm.CRC64NVME:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC64\", \"W\");\n break;\n case ChecksumAlgorithm.SHA1:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA1\", \"X\");\n break;\n case ChecksumAlgorithm.SHA256:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA256\", \"Y\");\n break;\n }\n const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n if (isStreaming(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(typeof config.requestStreamBufferSize === \"number\" && config.requestStreamBufferSize >= 8 * 1024\n ? createBufferedReadable(requestBody, config.requestStreamBufferSize, context.logger)\n : requestBody, {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher,\n });\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"]\n ? `${headers[\"content-encoding\"]},aws-chunked`\n : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName,\n };\n delete updatedHeaders[\"content-length\"];\n }\n else if (!hasHeader(checksumLocationName, headers)) {\n const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum),\n };\n }\n }\n try {\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody,\n },\n });\n return result;\n }\n catch (e) {\n if (e instanceof Error && e.name === \"InvalidChunkSizeError\") {\n try {\n if (!e.message.endsWith(\".\")) {\n e.message += \".\";\n }\n e.message +=\n \" Set [requestStreamBufferSize=number e.g. 65_536] in client constructor to instruct AWS SDK to buffer your input stream.\";\n }\n catch (ignored) {\n }\n }\n throw e;\n }\n};\n",
|
|
11
|
+
"import { DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nexport const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {\n if (!requestAlgorithmMember) {\n return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired\n ? DEFAULT_CHECKSUM_ALGORITHM\n : undefined;\n }\n if (!input[requestAlgorithmMember]) {\n return undefined;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n return checksumAlgorithm;\n};\n",
|
|
12
|
+
"import { ChecksumAlgorithm } from \"./constants\";\nexport const getChecksumLocationName = (algorithm) => algorithm === ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\n",
|
|
13
|
+
"export const hasHeader = (header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n",
|
|
14
|
+
"export const hasHeaderWithPrefix = (headerPrefix, headers) => {\n const soughtHeaderPrefix = headerPrefix.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {\n return true;\n }\n }\n return false;\n};\n",
|
|
15
|
+
"import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nexport const isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !isArrayBuffer(body);\n",
|
|
16
|
+
"import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n __rewriteRelativeImportExtension,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n __rewriteRelativeImportExtension,\r\n};\r\nexport default tslib;\r\n",
|
|
17
|
+
"import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { Buffer } from \"buffer\";\nexport const fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!isArrayBuffer(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return Buffer.from(input, offset, length);\n};\nexport const fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? Buffer.from(input, encoding) : Buffer.from(input);\n};\n",
|
|
18
|
+
"import { fromString } from \"@smithy/util-buffer-from\";\nexport const fromUtf8 = (input) => {\n const buf = fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n",
|
|
19
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : fromUtf8Browser;\nexport function convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=convertToBuffer.js.map",
|
|
20
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map",
|
|
21
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n//# sourceMappingURL=numToUint8.js.map",
|
|
22
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\n//# sourceMappingURL=uint32ArrayFrom.js.map",
|
|
23
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32c } from \"./index\";\nvar AwsCrc32c = /** @class */ (function () {\n function AwsCrc32c() {\n this.crc32c = new Crc32c();\n }\n AwsCrc32c.prototype.update = function (toHash) {\n if (isEmptyData(toHash))\n return;\n this.crc32c.update(convertToBuffer(toHash));\n };\n AwsCrc32c.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, numToUint8(this.crc32c.digest())];\n });\n });\n };\n AwsCrc32c.prototype.reset = function () {\n this.crc32c = new Crc32c();\n };\n return AwsCrc32c;\n}());\nexport { AwsCrc32c };\n//# sourceMappingURL=aws_crc32c.js.map",
|
|
24
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32c(data) {\n return new Crc32c().update(data).digest();\n}\nvar Crc32c = /** @class */ (function () {\n function Crc32c() {\n this.checksum = 0xffffffff;\n }\n Crc32c.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32c.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32c;\n}());\nexport { Crc32c };\n// prettier-ignore\nvar a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = uint32ArrayFrom(a_lookupTable);\nexport { AwsCrc32c } from \"./aws_crc32c\";\n//# sourceMappingURL=index.js.map",
|
|
25
|
+
"const generateCRC64NVMETable = () => {\n const sliceLength = 8;\n const tables = new Array(sliceLength);\n for (let slice = 0; slice < sliceLength; slice++) {\n const table = new Array(512);\n for (let i = 0; i < 256; i++) {\n let crc = BigInt(i);\n for (let j = 0; j < 8 * (slice + 1); j++) {\n if (crc & 1n) {\n crc = (crc >> 1n) ^ 0x9a6c9329ac4bc9b5n;\n }\n else {\n crc = crc >> 1n;\n }\n }\n table[i * 2] = Number((crc >> 32n) & 0xffffffffn);\n table[i * 2 + 1] = Number(crc & 0xffffffffn);\n }\n tables[slice] = new Uint32Array(table);\n }\n return tables;\n};\nlet CRC64_NVME_REVERSED_TABLE;\nlet t0, t1, t2, t3;\nlet t4, t5, t6, t7;\nconst ensureTablesInitialized = () => {\n if (!CRC64_NVME_REVERSED_TABLE) {\n CRC64_NVME_REVERSED_TABLE = generateCRC64NVMETable();\n [t0, t1, t2, t3, t4, t5, t6, t7] = CRC64_NVME_REVERSED_TABLE;\n }\n};\nexport class Crc64Nvme {\n c1 = 0;\n c2 = 0;\n constructor() {\n ensureTablesInitialized();\n this.reset();\n }\n update(data) {\n const len = data.length;\n let i = 0;\n let crc1 = this.c1;\n let crc2 = this.c2;\n while (i + 8 <= len) {\n const idx0 = ((crc2 ^ data[i++]) & 255) << 1;\n const idx1 = (((crc2 >>> 8) ^ data[i++]) & 255) << 1;\n const idx2 = (((crc2 >>> 16) ^ data[i++]) & 255) << 1;\n const idx3 = (((crc2 >>> 24) ^ data[i++]) & 255) << 1;\n const idx4 = ((crc1 ^ data[i++]) & 255) << 1;\n const idx5 = (((crc1 >>> 8) ^ data[i++]) & 255) << 1;\n const idx6 = (((crc1 >>> 16) ^ data[i++]) & 255) << 1;\n const idx7 = (((crc1 >>> 24) ^ data[i++]) & 255) << 1;\n crc1 = t7[idx0] ^ t6[idx1] ^ t5[idx2] ^ t4[idx3] ^ t3[idx4] ^ t2[idx5] ^ t1[idx6] ^ t0[idx7];\n crc2 =\n t7[idx0 + 1] ^\n t6[idx1 + 1] ^\n t5[idx2 + 1] ^\n t4[idx3 + 1] ^\n t3[idx4 + 1] ^\n t2[idx5 + 1] ^\n t1[idx6 + 1] ^\n t0[idx7 + 1];\n }\n while (i < len) {\n const idx = ((crc2 ^ data[i]) & 255) << 1;\n crc2 = ((crc2 >>> 8) | ((crc1 & 255) << 24)) >>> 0;\n crc1 = (crc1 >>> 8) ^ t0[idx];\n crc2 ^= t0[idx + 1];\n i++;\n }\n this.c1 = crc1;\n this.c2 = crc2;\n }\n async digest() {\n const c1 = this.c1 ^ 4294967295;\n const c2 = this.c2 ^ 4294967295;\n return new Uint8Array([\n c1 >>> 24,\n (c1 >>> 16) & 255,\n (c1 >>> 8) & 255,\n c1 & 255,\n c2 >>> 24,\n (c2 >>> 16) & 255,\n (c2 >>> 8) & 255,\n c2 & 255,\n ]);\n }\n reset() {\n this.c1 = 4294967295;\n this.c2 = 4294967295;\n }\n}\n",
|
|
26
|
+
"export const crc64NvmeCrtContainer = {\n CrtCrc64Nvme: null,\n};\n",
|
|
27
|
+
"// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if (isEmptyData(toHash))\n return;\n this.crc32.update(convertToBuffer(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, numToUint8(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new Crc32();\n };\n return AwsCrc32;\n}());\nexport { AwsCrc32 };\n//# sourceMappingURL=aws_crc32.js.map",
|
|
28
|
+
"import { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32(data) {\n return new Crc32().update(data).digest();\n}\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexport { Crc32 };\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = uint32ArrayFrom(a_lookUpTable);\nexport { AwsCrc32 } from \"./aws_crc32\";\n//# sourceMappingURL=index.js.map",
|
|
29
|
+
"import { AwsCrc32 } from \"@aws-crypto/crc32\";\nimport { numToUint8 } from \"@aws-crypto/util\";\nimport * as zlib from \"node:zlib\";\nclass NodeCrc32 {\n checksum = 0;\n update(data) {\n this.checksum = zlib.crc32(data, this.checksum);\n }\n async digest() {\n return numToUint8(this.checksum);\n }\n reset() {\n this.checksum = 0;\n }\n}\nexport const getCrc32ChecksumAlgorithmFunction = () => {\n if (typeof zlib.crc32 === \"undefined\") {\n return AwsCrc32;\n }\n return NodeCrc32;\n};\n",
|
|
30
|
+
"import { ChecksumAlgorithm } from \"./constants\";\nexport const CLIENT_SUPPORTED_ALGORITHMS = [\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.CRC64NVME,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.SHA256,\n];\nexport const PRIORITY_ORDER_ALGORITHMS = [\n ChecksumAlgorithm.SHA256,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.CRC64NVME,\n];\n",
|
|
31
|
+
"import { AwsCrc32c } from \"@aws-crypto/crc32c\";\nimport { Crc64Nvme, crc64NvmeCrtContainer } from \"@aws-sdk/crc64-nvme\";\nimport { ChecksumAlgorithm } from \"./constants\";\nimport { getCrc32ChecksumAlgorithmFunction } from \"./getCrc32ChecksumAlgorithmFunction\";\nimport { CLIENT_SUPPORTED_ALGORITHMS } from \"./types\";\nexport const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => {\n const { checksumAlgorithms = {} } = config;\n switch (checksumAlgorithm) {\n case ChecksumAlgorithm.MD5:\n return checksumAlgorithms?.MD5 ?? config.md5;\n case ChecksumAlgorithm.CRC32:\n return checksumAlgorithms?.CRC32 ?? getCrc32ChecksumAlgorithmFunction();\n case ChecksumAlgorithm.CRC32C:\n return checksumAlgorithms?.CRC32C ?? AwsCrc32c;\n case ChecksumAlgorithm.CRC64NVME:\n if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== \"function\") {\n return checksumAlgorithms?.CRC64NVME ?? Crc64Nvme;\n }\n return checksumAlgorithms?.CRC64NVME ?? crc64NvmeCrtContainer.CrtCrc64Nvme;\n case ChecksumAlgorithm.SHA1:\n return checksumAlgorithms?.SHA1 ?? config.sha1;\n case ChecksumAlgorithm.SHA256:\n return checksumAlgorithms?.SHA256 ?? config.sha256;\n default:\n if (checksumAlgorithms?.[checksumAlgorithm]) {\n return checksumAlgorithms[checksumAlgorithm];\n }\n throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n ` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}, or provide an implementation to ` +\n ` the client constructor checksums field.`);\n }\n};\n",
|
|
32
|
+
"import { toUint8Array } from \"@smithy/util-utf8\";\nexport const stringHasher = (checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update(toUint8Array(body || \"\"));\n return hash.digest();\n};\n",
|
|
33
|
+
"import { setFeature } from \"@aws-sdk/core\";\nimport { RequestChecksumCalculation, ResponseChecksumValidation } from \"./constants\";\nexport const flexibleChecksumsInputMiddlewareOptions = {\n name: \"flexibleChecksumsInputMiddleware\",\n toMiddleware: \"serializerMiddleware\",\n relation: \"before\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const flexibleChecksumsInputMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n const input = args.input;\n const { requestValidationModeMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const responseChecksumValidation = await config.responseChecksumValidation();\n switch (requestChecksumCalculation) {\n case RequestChecksumCalculation.WHEN_REQUIRED:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED\", \"a\");\n break;\n case RequestChecksumCalculation.WHEN_SUPPORTED:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED\", \"Z\");\n break;\n }\n switch (responseChecksumValidation) {\n case ResponseChecksumValidation.WHEN_REQUIRED:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED\", \"c\");\n break;\n case ResponseChecksumValidation.WHEN_SUPPORTED:\n setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED\", \"b\");\n break;\n }\n if (requestValidationModeMember && !input[requestValidationModeMember]) {\n if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {\n input[requestValidationModeMember] = \"ENABLED\";\n }\n }\n return next(args);\n};\n",
|
|
34
|
+
"import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isChecksumWithPartNumber } from \"./isChecksumWithPartNumber\";\nimport { validateChecksumFromResponse } from \"./validateChecksumFromResponse\";\nexport const flexibleChecksumsResponseMiddlewareOptions = {\n name: \"flexibleChecksumsResponseMiddleware\",\n toMiddleware: \"deserializerMiddleware\",\n relation: \"after\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const input = args.input;\n const result = await next(args);\n const response = result.response;\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n const { clientName, commandName } = context;\n const customChecksumAlgorithms = Object.keys(config.checksumAlgorithms ?? {}).filter((algorithm) => {\n const responseHeader = getChecksumLocationName(algorithm);\n return response.headers[responseHeader] !== undefined;\n });\n const algoList = getChecksumAlgorithmListForResponse([\n ...(responseAlgorithms ?? []),\n ...customChecksumAlgorithms,\n ]);\n const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" &&\n commandName === \"GetObjectCommand\" &&\n algoList.every((algorithm) => {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = response.headers[responseHeader];\n return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n });\n if (isS3WholeObjectMultipartGetResponseChecksum) {\n return result;\n }\n await validateChecksumFromResponse(response, {\n config,\n responseAlgorithms: algoList,\n logger: context.logger,\n });\n }\n return result;\n};\n",
|
|
35
|
+
"import { PRIORITY_ORDER_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n let i = PRIORITY_ORDER_ALGORITHMS.length;\n for (const algorithm of responseAlgorithms) {\n const priority = PRIORITY_ORDER_ALGORITHMS.indexOf(algorithm);\n if (priority !== -1) {\n validChecksumAlgorithms[priority] = algorithm;\n }\n else {\n validChecksumAlgorithms[i++] = algorithm;\n }\n }\n return validChecksumAlgorithms.filter(Boolean);\n};\n",
|
|
36
|
+
"export const isChecksumWithPartNumber = (checksum) => {\n const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n if (lastHyphenIndex !== -1) {\n const numberPart = checksum.slice(lastHyphenIndex + 1);\n if (!numberPart.startsWith(\"0\")) {\n const number = parseInt(numberPart, 10);\n if (!isNaN(number) && number >= 1 && number <= 10000) {\n return true;\n }\n }\n }\n return false;\n};\n",
|
|
37
|
+
"import { createChecksumStream } from \"@smithy/util-stream\";\nimport { ChecksumAlgorithm } from \"./constants\";\nimport { getChecksum } from \"./getChecksum\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nexport const validateChecksumFromResponse = async (response, { config, responseAlgorithms, logger }) => {\n const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n let checksumAlgorithmFn;\n try {\n checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n }\n catch (error) {\n if (algorithm === ChecksumAlgorithm.CRC64NVME) {\n logger?.warn(`Skipping ${ChecksumAlgorithm.CRC64NVME} checksum validation: ${error.message}`);\n continue;\n }\n throw error;\n }\n const { base64Encoder } = config;\n if (isStreaming(responseBody)) {\n response.body = createChecksumStream({\n expectedChecksum: checksumFromResponse,\n checksumSourceLocation: responseHeader,\n checksum: new checksumAlgorithmFn(),\n source: responseBody,\n base64Encoder,\n });\n return;\n }\n const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n ` in response header \"${responseHeader}\".`);\n }\n }\n};\n",
|
|
38
|
+
"import { stringHasher } from \"./stringHasher\";\nexport const getChecksum = async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body));\n",
|
|
39
|
+
"import { flexibleChecksumsInputMiddleware, flexibleChecksumsInputMiddlewareOptions, } from \"./flexibleChecksumsInputMiddleware\";\nimport { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions } from \"./flexibleChecksumsMiddleware\";\nimport { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from \"./flexibleChecksumsResponseMiddleware\";\nexport const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config, middlewareConfig), flexibleChecksumsInputMiddlewareOptions);\n clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);\n },\n});\n",
|
|
40
|
+
"import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { DEFAULT_REQUEST_CHECKSUM_CALCULATION, DEFAULT_RESPONSE_CHECKSUM_VALIDATION } from \"./constants\";\nexport const resolveFlexibleChecksumsConfig = (input) => {\n const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;\n return Object.assign(input, {\n requestChecksumCalculation: normalizeProvider(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),\n responseChecksumValidation: normalizeProvider(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),\n requestStreamBufferSize: Number(requestStreamBufferSize ?? 0),\n checksumAlgorithms: input.checksumAlgorithms ?? {},\n });\n};\n",
|
|
41
|
+
"import { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { resolveFlexibleChecksumsConfig, } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRegionRedirectMiddlewarePlugin, getS3ExpressHttpSigningPlugin, getS3ExpressPlugin, getValidateBucketNamePlugin, resolveS3Config, } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { DefaultIdentityProviderConfig, getHttpAuthSchemeEndpointRuleSetPlugin, getHttpSigningPlugin, } from \"@smithy/core\";\nimport { getSchemaSerdePlugin } from \"@smithy/core/schema\";\nimport { resolveEventStreamSerdeConfig, } from \"@smithy/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig, } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig, } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { defaultS3HttpAuthSchemeParametersProvider, resolveHttpAuthSchemeConfig, } from \"./auth/httpAuthSchemeProvider\";\nimport { CreateSessionCommand, } from \"./commands/CreateSessionCommand\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class S3Client extends __Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = __getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveUserAgentConfig(_config_1);\n const _config_3 = resolveFlexibleChecksumsConfig(_config_2);\n const _config_4 = resolveRetryConfig(_config_3);\n const _config_5 = resolveRegionConfig(_config_4);\n const _config_6 = resolveHostHeaderConfig(_config_5);\n const _config_7 = resolveEndpointConfig(_config_6);\n const _config_8 = resolveEventStreamSerdeConfig(_config_7);\n const _config_9 = resolveHttpAuthSchemeConfig(_config_8);\n const _config_10 = resolveS3Config(_config_9, { session: [() => this, CreateSessionCommand] });\n const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);\n this.config = _config_11;\n this.middlewareStack.use(getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultS3HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n \"aws.auth#sigv4a\": config.credentials,\n }),\n }));\n this.middlewareStack.use(getHttpSigningPlugin(this.config));\n this.middlewareStack.use(getValidateBucketNamePlugin(this.config));\n this.middlewareStack.use(getAddExpectContinuePlugin(this.config));\n this.middlewareStack.use(getRegionRedirectMiddlewarePlugin(this.config));\n this.middlewareStack.use(getS3ExpressPlugin(this.config));\n this.middlewareStack.use(getS3ExpressHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n",
|
|
42
|
+
"import { HttpRequest } from \"@smithy/protocol-http\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nconst DECODED_CONTENT_LENGTH_HEADER = \"x-amz-decoded-content-length\";\nexport function checkContentLengthHeader() {\n return (next, context) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof context?.logger?.warn === \"function\" && !(context.logger instanceof NoOpLogger)) {\n context.logger.warn(message);\n }\n else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\nexport const checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true,\n};\nexport const getCheckContentLengthHeaderPlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n },\n});\n",
|
|
43
|
+
"export const regionRedirectEndpointMiddleware = (config) => {\n return (next, context) => async (args) => {\n const originalRegion = await config.region();\n const regionProviderRef = config.region;\n let unlock = () => { };\n if (context.__s3RegionRedirect) {\n Object.defineProperty(config, \"region\", {\n writable: false,\n value: async () => {\n return context.__s3RegionRedirect;\n },\n });\n unlock = () => Object.defineProperty(config, \"region\", {\n writable: true,\n value: regionProviderRef,\n });\n }\n try {\n const result = await next(args);\n if (context.__s3RegionRedirect) {\n unlock();\n const region = await config.region();\n if (originalRegion !== region) {\n throw new Error(\"Region was not restored following S3 region redirect.\");\n }\n }\n return result;\n }\n catch (e) {\n unlock();\n throw e;\n }\n };\n};\nexport const regionRedirectEndpointMiddlewareOptions = {\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectEndpointMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\",\n};\n",
|
|
44
|
+
"import { regionRedirectEndpointMiddleware, regionRedirectEndpointMiddlewareOptions, } from \"./region-redirect-endpoint-middleware\";\nexport function regionRedirectMiddleware(clientConfig) {\n return (next, context) => async (args) => {\n try {\n return await next(args);\n }\n catch (err) {\n if (clientConfig.followRegionRedirects) {\n const statusCode = err?.$metadata?.httpStatusCode;\n const isHeadBucket = context.commandName === \"HeadBucketCommand\";\n const bucketRegionHeader = err?.$response?.headers?.[\"x-amz-bucket-region\"];\n if (bucketRegionHeader) {\n if (statusCode === 301 ||\n (statusCode === 400 && (err?.name === \"IllegalLocationConstraintException\" || isHeadBucket))) {\n try {\n const actualRegion = bucketRegionHeader;\n context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n context.__s3RegionRedirect = actualRegion;\n }\n catch (e) {\n throw new Error(\"Region redirect failed: \" + e);\n }\n return next(args);\n }\n }\n }\n throw err;\n }\n };\n}\nexport const regionRedirectMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectMiddleware\",\n override: true,\n};\nexport const getRegionRedirectMiddlewarePlugin = (clientConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n },\n});\n",
|
|
45
|
+
"import { HttpResponse } from \"@smithy/protocol-http\";\nimport { parseRfc7231DateTime } from \"@smithy/smithy-client\";\nexport const s3ExpiresMiddleware = (config) => {\n return (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (HttpResponse.isInstance(response)) {\n if (response.headers.expires) {\n response.headers.expiresstring = response.headers.expires;\n try {\n parseRfc7231DateTime(response.headers.expires);\n }\n catch (e) {\n context.logger?.warn(`AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`);\n delete response.headers.expires;\n }\n }\n }\n return result;\n };\n};\nexport const s3ExpiresMiddlewareOptions = {\n tags: [\"S3\"],\n name: \"s3ExpiresMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n};\nexport const getS3ExpiresMiddlewarePlugin = (clientConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);\n },\n});\n",
|
|
46
|
+
"export class S3ExpressIdentityCache {\n data;\n lastPurgeTime = Date.now();\n static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 30_000;\n constructor(data = {}) {\n this.data = data;\n }\n get(key) {\n const entry = this.data[key];\n if (!entry) {\n return;\n }\n return entry;\n }\n set(key, entry) {\n this.data[key] = entry;\n return entry;\n }\n delete(key) {\n delete this.data[key];\n }\n async purgeExpired() {\n const now = Date.now();\n if (this.lastPurgeTime + S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {\n return;\n }\n for (const key in this.data) {\n const entry = this.data[key];\n if (!entry.isRefreshing) {\n const credential = await entry.identity;\n if (credential.expiration) {\n if (credential.expiration.getTime() < now) {\n delete this.data[key];\n }\n }\n }\n }\n }\n}\n",
|
|
47
|
+
"export class S3ExpressIdentityCacheEntry {\n _identity;\n isRefreshing;\n accessed;\n constructor(_identity, isRefreshing = false, accessed = Date.now()) {\n this._identity = _identity;\n this.isRefreshing = isRefreshing;\n this.accessed = accessed;\n }\n get identity() {\n this.accessed = Date.now();\n return this._identity;\n }\n}\n",
|
|
48
|
+
"import { S3ExpressIdentityCache } from \"./S3ExpressIdentityCache\";\nimport { S3ExpressIdentityCacheEntry } from \"./S3ExpressIdentityCacheEntry\";\nexport class S3ExpressIdentityProviderImpl {\n createSessionFn;\n cache;\n static REFRESH_WINDOW_MS = 60_000;\n constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {\n this.createSessionFn = createSessionFn;\n this.cache = cache;\n }\n async getS3ExpressIdentity(awsIdentity, identityProperties) {\n const key = identityProperties.Bucket;\n const { cache } = this;\n const entry = cache.get(key);\n if (entry) {\n return entry.identity.then((identity) => {\n const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();\n if (isExpired) {\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;\n if (isExpiringSoon && !entry.isRefreshing) {\n entry.isRefreshing = true;\n this.getIdentity(key).then((id) => {\n cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));\n });\n }\n return identity;\n });\n }\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n async getIdentity(key) {\n await this.cache.purgeExpired().catch((error) => {\n console.warn(\"Error while clearing expired entries in S3ExpressIdentityCache: \\n\" + error);\n });\n const session = await this.createSessionFn(key);\n if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {\n throw new Error(\"s3#createSession response credential missing AccessKeyId or SecretAccessKey.\");\n }\n const identity = {\n accessKeyId: session.Credentials.AccessKeyId,\n secretAccessKey: session.Credentials.SecretAccessKey,\n sessionToken: session.Credentials.SessionToken,\n expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : undefined,\n };\n return identity;\n }\n}\n",
|
|
49
|
+
"import { SignatureV4 } from \"@smithy/signature-v4\";\nimport { SESSION_TOKEN_HEADER, SESSION_TOKEN_QUERY_PARAM } from \"../constants\";\nexport class SignatureV4S3Express extends SignatureV4 {\n async signWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return privateAccess.signRequest(requestToSign, options ?? {});\n }\n async presignWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n delete requestToSign.headers[SESSION_TOKEN_HEADER];\n requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n requestToSign.query = requestToSign.query ?? {};\n requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return this.presign(requestToSign, options);\n }\n}\nfunction getCredentialsWithoutSessionToken(credentials) {\n const credentialsWithoutSessionToken = {\n accessKeyId: credentials.accessKeyId,\n secretAccessKey: credentials.secretAccessKey,\n expiration: credentials.expiration,\n };\n return credentialsWithoutSessionToken;\n}\nfunction setSingleOverride(privateAccess, credentialsWithoutSessionToken) {\n const id = setTimeout(() => {\n throw new Error(\"SignatureV4S3Express credential override was created but not called.\");\n }, 10);\n const currentCredentialProvider = privateAccess.credentialProvider;\n const overrideCredentialsProviderOnce = () => {\n clearTimeout(id);\n privateAccess.credentialProvider = currentCredentialProvider;\n return Promise.resolve(credentialsWithoutSessionToken);\n };\n privateAccess.credentialProvider = overrideCredentialsProviderOnce;\n}\n",
|
|
50
|
+
"import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const S3_EXPRESS_BUCKET_TYPE = \"Directory\";\nexport const S3_EXPRESS_BACKEND = \"S3Express\";\nexport const S3_EXPRESS_AUTH_SCHEME = \"sigv4-s3express\";\nexport const SESSION_TOKEN_QUERY_PARAM = \"X-Amz-S3session-Token\";\nexport const SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = \"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = \"s3_disable_express_session_auth\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, SelectorType.CONFIG),\n default: false,\n};\n",
|
|
51
|
+
"import { setFeature } from \"@aws-sdk/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { S3_EXPRESS_AUTH_SCHEME, S3_EXPRESS_BACKEND, S3_EXPRESS_BUCKET_TYPE, SESSION_TOKEN_HEADER } from \"../constants\";\nexport const s3ExpressMiddleware = (options) => {\n return (next, context) => async (args) => {\n if (context.endpointV2) {\n const endpoint = context.endpointV2;\n const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;\n const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND ||\n endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;\n if (isS3ExpressBucket) {\n setFeature(context, \"S3_EXPRESS_BUCKET\", \"J\");\n context.isS3ExpressBucket = true;\n }\n if (isS3ExpressAuth) {\n const requestBucket = args.input.Bucket;\n if (requestBucket) {\n const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(await options.credentials(), {\n Bucket: requestBucket,\n });\n context.s3ExpressIdentity = s3ExpressIdentity;\n if (HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {\n args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;\n }\n }\n }\n }\n return next(args);\n };\n};\nexport const s3ExpressMiddlewareOptions = {\n name: \"s3ExpressMiddleware\",\n step: \"build\",\n tags: [\"S3\", \"S3_EXPRESS\"],\n override: true,\n};\nexport const getS3ExpressPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);\n },\n});\n",
|
|
52
|
+
"import { httpSigningMiddlewareOptions } from \"@smithy/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { signS3Express } from \"./signS3Express\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const s3ExpressHttpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexport const s3ExpressHttpSigningMiddleware = (config) => (next, context) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = getSmithyContext(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n let request;\n if (context.s3ExpressIdentity) {\n request = await signS3Express(context.s3ExpressIdentity, signingProperties, args.request, await config.signer());\n }\n else {\n request = await signer.sign(args.request, identity, signingProperties);\n }\n const output = await next({\n ...args,\n request,\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n};\nexport const getS3ExpressHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(s3ExpressHttpSigningMiddleware(config), httpSigningMiddlewareOptions);\n },\n});\n",
|
|
53
|
+
"export const signS3Express = async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {\n const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});\n if (signedRequest.headers[\"X-Amz-Security-Token\"] || signedRequest.headers[\"x-amz-security-token\"]) {\n throw new Error(\"X-Amz-Security-Token must not be set for s3-express requests.\");\n }\n return signedRequest;\n};\n",
|
|
54
|
+
"import { S3ExpressIdentityProviderImpl } from \"./s3-express\";\nexport const resolveS3Config = (input, { session, }) => {\n const [s3ClientProvider, CreateSessionCommandCtor] = session;\n const { forcePathStyle, useAccelerateEndpoint, disableMultiregionAccessPoints, followRegionRedirects, s3ExpressIdentityProvider, bucketEndpoint, expectContinueHeader, } = input;\n return Object.assign(input, {\n forcePathStyle: forcePathStyle ?? false,\n useAccelerateEndpoint: useAccelerateEndpoint ?? false,\n disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,\n followRegionRedirects: followRegionRedirects ?? false,\n s3ExpressIdentityProvider: s3ExpressIdentityProvider ??\n new S3ExpressIdentityProviderImpl(async (key) => s3ClientProvider().send(new CreateSessionCommandCtor({\n Bucket: key,\n }))),\n bucketEndpoint: bucketEndpoint ?? false,\n expectContinueHeader: expectContinueHeader ?? 2_097_152,\n });\n};\n",
|
|
55
|
+
"import { HttpResponse } from \"@smithy/protocol-http\";\nimport { headStream, splitStream } from \"@smithy/util-stream\";\nconst THROW_IF_EMPTY_BODY = {\n CopyObjectCommand: true,\n UploadPartCopyCommand: true,\n CompleteMultipartUploadCommand: true,\n};\nconst MAX_BYTES_TO_INSPECT = 3000;\nexport const throw200ExceptionsMiddleware = (config) => (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!HttpResponse.isInstance(response)) {\n return result;\n }\n const { statusCode, body: sourceBody } = response;\n if (statusCode < 200 || statusCode >= 300) {\n return result;\n }\n const isSplittableStream = typeof sourceBody?.stream === \"function\" ||\n typeof sourceBody?.pipe === \"function\" ||\n typeof sourceBody?.tee === \"function\";\n if (!isSplittableStream) {\n return result;\n }\n let bodyCopy = sourceBody;\n let body = sourceBody;\n if (sourceBody && typeof sourceBody === \"object\" && !(sourceBody instanceof Uint8Array)) {\n [bodyCopy, body] = await splitStream(sourceBody);\n }\n response.body = body;\n const bodyBytes = await collectBody(bodyCopy, {\n streamCollector: async (stream) => {\n return headStream(stream, MAX_BYTES_TO_INSPECT);\n },\n });\n if (typeof bodyCopy?.destroy === \"function\") {\n bodyCopy.destroy();\n }\n const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));\n if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyStringTail && bodyStringTail.endsWith(\"</Error>\")) {\n response.statusCode = 400;\n }\n return result;\n};\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nexport const throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\nexport const getThrow200ExceptionsPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n});\n",
|
|
56
|
+
"export const validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexport const parse = (arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n const [, partition, service, region, accountId, ...resource] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\"),\n };\n};\nexport const build = (arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\n",
|
|
57
|
+
"export function bucketEndpointMiddleware(options) {\n return (next, context) => async (args) => {\n if (options.bucketEndpoint) {\n const endpoint = context.endpointV2;\n if (endpoint) {\n const bucket = args.input.Bucket;\n if (typeof bucket === \"string\") {\n try {\n const bucketEndpointUrl = new URL(bucket);\n context.endpointV2 = {\n ...endpoint,\n url: bucketEndpointUrl,\n };\n }\n catch (e) {\n const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;\n if (context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(warning);\n }\n else {\n context.logger?.warn?.(warning);\n }\n throw e;\n }\n }\n }\n }\n return next(args);\n };\n}\nexport const bucketEndpointMiddlewareOptions = {\n name: \"bucketEndpointMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"endpointV2Middleware\",\n};\n",
|
|
58
|
+
"import { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketEndpointMiddleware, bucketEndpointMiddlewareOptions } from \"./bucket-endpoint-middleware\";\nexport function validateBucketNameMiddleware({ bucketEndpoint }) {\n return (next) => async (args) => {\n const { input: { Bucket }, } = args;\n if (!bucketEndpoint && typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\nexport const validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\nexport const getValidateBucketNamePlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n },\n});\n",
|
|
59
|
+
"export const resolveEventStreamSerdeConfig = (input) => Object.assign(input, {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n",
|
|
60
|
+
"import { resolveAwsSdkSigV4AConfig, resolveAwsSdkSigV4Config, } from \"@aws-sdk/core\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { resolveParams } from \"@smithy/middleware-endpoint\";\nimport { getSmithyContext, normalizeProvider } from \"@smithy/util-middleware\";\nimport { defaultEndpointResolver } from \"../endpoint/endpointResolver\";\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n if (!input) {\n throw new Error(\"Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`\");\n }\n const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor\n ?.getEndpointParameterInstructions;\n if (!instructionsFn) {\n throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`);\n }\n const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);\n return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultS3HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: getSmithyContext(context).operation,\n region: await normalizeProvider(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexport const defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultS3HttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4a\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n const endpoint = defaultEndpointResolver(authParameters);\n const authSchemes = endpoint.properties?.authSchemes;\n if (!authSchemes) {\n return defaultHttpAuthSchemeResolver(authParameters);\n }\n const options = [];\n for (const scheme of authSchemes) {\n const { name: resolvedName, properties = {}, ...rest } = scheme;\n const name = resolvedName.toLowerCase();\n if (resolvedName !== name) {\n console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name}'`);\n }\n let schemeId;\n if (name === \"sigv4a\") {\n schemeId = \"aws.auth#sigv4a\";\n const sigv4Present = authSchemes.find((s) => {\n const name = s.name.toLowerCase();\n return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n });\n if (SignatureV4MultiRegion.sigv4aDependency() === \"none\" && sigv4Present) {\n continue;\n }\n }\n else if (name.startsWith(\"sigv4\")) {\n schemeId = \"aws.auth#sigv4\";\n }\n else {\n throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name}'`);\n }\n const createOption = createHttpAuthOptionFunctions[schemeId];\n if (!createOption) {\n throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`);\n }\n const option = createOption(authParameters);\n option.schemeId = schemeId;\n option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n options.push(option);\n }\n return options;\n };\n return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultS3HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexport const defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver, _defaultS3HttpAuthSchemeProvider, {\n \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nexport const resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = resolveAwsSdkSigV4Config(config);\n const config_1 = resolveAwsSdkSigV4AConfig(config_0);\n return Object.assign(config_1, {\n authSchemePreference: normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n",
|
|
61
|
+
"import { SignatureV4S3Express } from \"@aws-sdk/middleware-sdk-s3\";\nimport { signatureV4aContainer } from \"@smithy/signature-v4\";\nimport { signatureV4CrtContainer } from \"./signature-v4-crt-container\";\nexport class SignatureV4MultiRegion {\n sigv4aSigner;\n sigv4Signer;\n signerOptions;\n static sigv4aDependency() {\n if (typeof signatureV4CrtContainer.CrtSignerV4 === \"function\") {\n return \"crt\";\n }\n else if (typeof signatureV4aContainer.SignatureV4a === \"function\") {\n return \"js\";\n }\n return \"none\";\n }\n constructor(options) {\n this.sigv4Signer = new SignatureV4S3Express(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n async signWithCredentials(requestToSign, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.signWithCredentials(requestToSign, credentials, options);\n }\n else {\n throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. ` +\n `Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. ` +\n `You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] ` +\n `or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. ` +\n `For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);\n }\n }\n return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options);\n }\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.presign(originalRequest, options);\n }\n else {\n throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. ` +\n `Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. ` +\n `You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] ` +\n `or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. ` +\n `For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);\n }\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n async presignWithCredentials(originalRequest, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n throw new Error(\"Method presignWithCredentials is not supported for [signingRegion=*].\");\n }\n return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n const JsSigV4aSigner = signatureV4aContainer.SignatureV4a;\n if (this.signerOptions.runtime === \"node\") {\n if (!CrtSignerV4 && !JsSigV4aSigner) {\n throw new Error(\"Neither CRT nor JS SigV4a implementation is available. \" +\n \"Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. \" +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\");\n }\n if (CrtSignerV4 && typeof CrtSignerV4 === \"function\") {\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1,\n });\n }\n else if (JsSigV4aSigner && typeof JsSigV4aSigner === \"function\") {\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions,\n });\n }\n else {\n throw new Error(\"Available SigV4a implementation is not a valid constructor. \" +\n \"Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.\" +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\");\n }\n }\n else {\n if (!JsSigV4aSigner || typeof JsSigV4aSigner !== \"function\") {\n throw new Error(\"JS SigV4a implementation is not available or not a valid constructor. \" +\n \"Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. \" +\n \"You must also register the package by calling [require('@aws-sdk/signature-v4a');] \" +\n \"or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. \" +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a\");\n }\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions,\n });\n }\n }\n return this.sigv4aSigner;\n }\n}\n",
|
|
62
|
+
"export const signatureV4CrtContainer = {\n CrtSignerV4: null,\n};\n",
|
|
63
|
+
"import { awsEndpointFunctions } from \"@aws-sdk/util-endpoints\";\nimport { customEndpointFunctions, EndpointCache, resolveEndpoint } from \"@smithy/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nconst cache = new EndpointCache({\n size: 50,\n params: [\n \"Accelerate\",\n \"Bucket\",\n \"DisableAccessPoints\",\n \"DisableMultiRegionAccessPoints\",\n \"DisableS3ExpressSessionAuth\",\n \"Endpoint\",\n \"ForcePathStyle\",\n \"Region\",\n \"UseArnRegion\",\n \"UseDualStack\",\n \"UseFIPS\",\n \"UseGlobalEndpoint\",\n \"UseObjectLambdaEndpoint\",\n \"UseS3ExpressControlEndpoint\",\n ],\n});\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n",
|
|
64
|
+
"const cs = \"required\", ct = \"type\", cu = \"rules\", cv = \"conditions\", cw = \"fn\", cx = \"argv\", cy = \"ref\", cz = \"assign\", cA = \"url\", cB = \"properties\", cC = \"backend\", cD = \"authSchemes\", cE = \"disableDoubleEncoding\", cF = \"signingName\", cG = \"signingRegion\", cH = \"headers\", cI = \"signingRegionSet\";\nconst a = 6, b = false, c = true, d = \"isSet\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"bucketSuffix\", m = \"parseURL\", n = \"endpoint\", o = \"tree\", p = \"aws.isVirtualHostableS3Bucket\", q = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", r = \"not\", s = \"accessPointSuffix\", t = \"{url#scheme}://{url#authority}{url#path}\", u = \"hardwareType\", v = \"regionPrefix\", w = \"bucketAliasSuffix\", x = \"outpostId\", y = \"isValidHostLabel\", z = \"sigv4a\", A = \"s3-outposts\", B = \"s3\", C = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", D = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", E = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", F = \"aws.parseArn\", G = \"bucketArn\", H = \"arnType\", I = \"\", J = \"s3-object-lambda\", K = \"accesspoint\", L = \"accessPointName\", M = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", N = \"mrapPartition\", O = \"outpostType\", P = \"arnPrefix\", Q = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", R = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", S = \"https://s3.{partitionResult#dnsSuffix}\", T = { [cs]: false, [ct]: \"string\" }, U = { [cs]: true, \"default\": false, [ct]: \"boolean\" }, V = { [cs]: false, [ct]: \"boolean\" }, W = { [cw]: e, [cx]: [{ [cy]: \"Accelerate\" }, true] }, X = { [cw]: e, [cx]: [{ [cy]: \"UseFIPS\" }, true] }, Y = { [cw]: e, [cx]: [{ [cy]: \"UseDualStack\" }, true] }, Z = { [cw]: d, [cx]: [{ [cy]: \"Endpoint\" }] }, aa = { [cw]: g, [cx]: [{ [cy]: \"Region\" }], [cz]: \"partitionResult\" }, ab = { [cw]: h, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"partitionResult\" }, j] }, \"aws-cn\"] }, ac = { [cw]: d, [cx]: [{ [cy]: \"Bucket\" }] }, ad = { [cy]: \"Bucket\" }, ae = { [cv]: [W], [f]: \"S3Express does not support S3 Accelerate.\", [ct]: f }, af = { [cv]: [Z, { [cw]: m, [cx]: [{ [cy]: \"Endpoint\" }], [cz]: \"url\" }], [cu]: [{ [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }, true] }], [cu]: [{ [cv]: [{ [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }], [cu]: [{ [cv]: [{ [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }], [cu]: [{ [n]: { [cA]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: p, [cx]: [ad, false] }], [cu]: [{ [n]: { [cA]: q, [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }], [ct]: o }, { [cv]: [{ [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }], [cu]: [{ [cv]: [{ [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }], [cu]: [{ [n]: { [cA]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: p, [cx]: [ad, false] }], [cu]: [{ [n]: { [cA]: q, [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }], [ct]: o }, ag = { [cw]: m, [cx]: [{ [cy]: \"Endpoint\" }], [cz]: \"url\" }, ah = { [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }, ai = { [cy]: \"url\" }, aj = { [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }, ak = { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, al = {}, am = { [cw]: p, [cx]: [ad, false] }, an = { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }, ao = { [cw]: d, [cx]: [{ [cy]: \"UseS3ExpressControlEndpoint\" }] }, ap = { [cw]: e, [cx]: [{ [cy]: \"UseS3ExpressControlEndpoint\" }, true] }, aq = { [cw]: r, [cx]: [Z] }, ar = { [cw]: e, [cx]: [{ [cy]: \"UseDualStack\" }, false] }, as = { [cw]: e, [cx]: [{ [cy]: \"UseFIPS\" }, false] }, at = { [f]: \"Unrecognized S3Express bucket name format.\", [ct]: f }, au = { [cw]: r, [cx]: [ac] }, av = { [cy]: u }, aw = { [cv]: [aq], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [ct]: f }, ax = { [cD]: [{ [cE]: true, [j]: z, [cF]: A, [cI]: [\"*\"] }, { [cE]: true, [j]: \"sigv4\", [cF]: A, [cG]: \"{Region}\" }] }, ay = { [cw]: e, [cx]: [{ [cy]: \"ForcePathStyle\" }, false] }, az = { [cy]: \"ForcePathStyle\" }, aA = { [cw]: e, [cx]: [{ [cy]: \"Accelerate\" }, false] }, aB = { [cw]: h, [cx]: [{ [cy]: \"Region\" }, \"aws-global\"] }, aC = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"us-east-1\" }] }, aD = { [cw]: r, [cx]: [aB] }, aE = { [cw]: e, [cx]: [{ [cy]: \"UseGlobalEndpoint\" }, true] }, aF = { [cA]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{Region}\" }] }, [cH]: {} }, aG = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{Region}\" }] }, aH = { [cw]: e, [cx]: [{ [cy]: \"UseGlobalEndpoint\" }, false] }, aI = { [cA]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aJ = { [cA]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aK = { [cA]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aL = { [cw]: e, [cx]: [{ [cw]: i, [cx]: [ai, \"isIp\"] }, false] }, aM = { [cA]: C, [cB]: aG, [cH]: {} }, aN = { [cA]: q, [cB]: aG, [cH]: {} }, aO = { [n]: aN, [ct]: n }, aP = { [cA]: D, [cB]: aG, [cH]: {} }, aQ = { [cA]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aR = { [f]: \"Invalid region: region was not a valid DNS name.\", [ct]: f }, aS = { [cy]: G }, aT = { [cy]: H }, aU = { [cw]: i, [cx]: [aS, \"service\"] }, aV = { [cy]: L }, aW = { [cv]: [Y], [f]: \"S3 Object Lambda does not support Dual-stack\", [ct]: f }, aX = { [cv]: [W], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [ct]: f }, aY = { [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"DisableAccessPoints\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [ct]: f }, aZ = { [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"UseArnRegion\" }] }, { [cw]: e, [cx]: [{ [cy]: \"UseArnRegion\" }, false] }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [ct]: f }, ba = { [cw]: i, [cx]: [{ [cy]: \"bucketPartition\" }, j] }, bb = { [cw]: i, [cx]: [aS, \"accountId\"] }, bc = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: J, [cG]: \"{bucketArn#region}\" }] }, bd = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [ct]: f }, be = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [ct]: f }, bf = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [ct]: f }, bg = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [ct]: f }, bh = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [ct]: f }, bi = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided\", [ct]: f }, bj = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{bucketArn#region}\" }] }, bk = { [cD]: [{ [cE]: true, [j]: z, [cF]: A, [cI]: [\"*\"] }, { [cE]: true, [j]: \"sigv4\", [cF]: A, [cG]: \"{bucketArn#region}\" }] }, bl = { [cw]: F, [cx]: [ad] }, bm = { [cA]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bn = { [cA]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bo = { [cA]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bp = { [cA]: Q, [cB]: aG, [cH]: {} }, bq = { [cA]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, br = { [cy]: \"UseObjectLambdaEndpoint\" }, bs = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: J, [cG]: \"{Region}\" }] }, bt = { [cA]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bu = { [cA]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bv = { [cA]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bw = { [cA]: t, [cB]: aG, [cH]: {} }, bx = { [cA]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, by = [{ [cy]: \"Region\" }], bz = [{ [cy]: \"Endpoint\" }], bA = [ad], bB = [W], bC = [Z, ag], bD = [{ [cw]: d, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }, true] }], bE = [aj], bF = [am], bG = [aa], bH = [X, Y], bI = [X, ar], bJ = [as, Y], bK = [as, ar], bL = [{ [cw]: k, [cx]: [ad, 6, 14, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 14, 16, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bM = [{ [cv]: [X, Y], [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bI, [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bJ, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bK, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }], bN = [{ [cw]: k, [cx]: [ad, 6, 15, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 15, 17, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bO = [{ [cw]: k, [cx]: [ad, 6, 19, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 19, 21, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bP = [{ [cw]: k, [cx]: [ad, 6, 20, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 20, 22, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bQ = [{ [cw]: k, [cx]: [ad, 6, 26, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 26, 28, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bR = [{ [cv]: [X, Y], [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bI, [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bJ, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bK, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], bS = [ad, 0, 7, true], bT = [{ [cw]: k, [cx]: [ad, 7, 15, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 15, 17, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bU = [{ [cw]: k, [cx]: [ad, 7, 16, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 16, 18, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bV = [{ [cw]: k, [cx]: [ad, 7, 20, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 20, 22, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bW = [{ [cw]: k, [cx]: [ad, 7, 21, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 21, 23, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bX = [{ [cw]: k, [cx]: [ad, 7, 27, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 27, 29, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bY = [ac], bZ = [{ [cw]: y, [cx]: [{ [cy]: x }, false] }], ca = [{ [cw]: h, [cx]: [{ [cy]: v }, \"beta\"] }], cb = [\"*\"], cc = [{ [cw]: y, [cx]: [{ [cy]: \"Region\" }, false] }], cd = [{ [cw]: h, [cx]: [{ [cy]: \"Region\" }, \"us-east-1\"] }], ce = [{ [cw]: h, [cx]: [aT, K] }], cf = [{ [cw]: i, [cx]: [aS, \"resourceId[1]\"], [cz]: L }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [aV, I] }] }], cg = [aS, \"resourceId[1]\"], ch = [Y], ci = [{ [cw]: r, [cx]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, I] }] }], cj = [{ [cw]: r, [cx]: [{ [cw]: d, [cx]: [{ [cw]: i, [cx]: [aS, \"resourceId[2]\"] }] }] }], ck = [aS, \"resourceId[2]\"], cl = [{ [cw]: g, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }], [cz]: \"bucketPartition\" }], cm = [{ [cw]: h, [cx]: [ba, { [cw]: i, [cx]: [{ [cy]: \"partitionResult\" }, j] }] }], cn = [{ [cw]: y, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, true] }], co = [{ [cw]: y, [cx]: [bb, false] }], cp = [{ [cw]: y, [cx]: [aV, false] }], cq = [X], cr = [{ [cw]: y, [cx]: [{ [cy]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: T, Region: T, UseFIPS: U, UseDualStack: U, Endpoint: T, ForcePathStyle: U, Accelerate: U, UseGlobalEndpoint: U, UseObjectLambdaEndpoint: V, Key: T, Prefix: T, CopySource: T, DisableAccessPoints: V, DisableMultiRegionAccessPoints: U, UseArnRegion: V, UseS3ExpressControlEndpoint: V, DisableS3ExpressSessionAuth: V }, [cu]: [{ [cv]: [{ [cw]: d, [cx]: by }], [cu]: [{ [cv]: [W, X], error: \"Accelerate cannot be used with FIPS\", [ct]: f }, { [cv]: [Y, Z], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [ct]: f }, { [cv]: [Z, X], error: \"A custom endpoint cannot be combined with FIPS\", [ct]: f }, { [cv]: [Z, W], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [ct]: f }, { [cv]: [X, aa, ab], error: \"Partition does not support FIPS\", [ct]: f }, { [cv]: [ac, { [cw]: k, [cx]: [ad, 0, a, c], [cz]: l }, { [cw]: h, [cx]: [{ [cy]: l }, \"--x-s3\"] }], [cu]: [ae, af, { [cv]: [ao, ap], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [aj, aq], [cu]: [{ [cv]: bH, endpoint: { [cA]: \"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: bF, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bD, [cu]: [{ [cv]: bL, [cu]: bM, [ct]: o }, { [cv]: bN, [cu]: bM, [ct]: o }, { [cv]: bO, [cu]: bM, [ct]: o }, { [cv]: bP, [cu]: bM, [ct]: o }, { [cv]: bQ, [cu]: bM, [ct]: o }, at], [ct]: o }, { [cv]: bL, [cu]: bR, [ct]: o }, { [cv]: bN, [cu]: bR, [ct]: o }, { [cv]: bO, [cu]: bR, [ct]: o }, { [cv]: bP, [cu]: bR, [ct]: o }, { [cv]: bQ, [cu]: bR, [ct]: o }, at], [ct]: o }], [ct]: o }, an], [ct]: o }, { [cv]: [ac, { [cw]: k, [cx]: bS, [cz]: s }, { [cw]: h, [cx]: [{ [cy]: s }, \"--xa-s3\"] }], [cu]: [ae, af, { [cv]: bF, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bD, [cu]: [{ [cv]: bT, [cu]: bM, [ct]: o }, { [cv]: bU, [cu]: bM, [ct]: o }, { [cv]: bV, [cu]: bM, [ct]: o }, { [cv]: bW, [cu]: bM, [ct]: o }, { [cv]: bX, [cu]: bM, [ct]: o }, at], [ct]: o }, { [cv]: bT, [cu]: bR, [ct]: o }, { [cv]: bU, [cu]: bR, [ct]: o }, { [cv]: bV, [cu]: bR, [ct]: o }, { [cv]: bW, [cu]: bR, [ct]: o }, { [cv]: bX, [cu]: bR, [ct]: o }, at], [ct]: o }], [ct]: o }, an], [ct]: o }, { [cv]: [au, ao, ap], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bC, endpoint: { [cA]: t, [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bH, endpoint: { [cA]: \"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [ac, { [cw]: k, [cx]: [ad, 49, 50, c], [cz]: u }, { [cw]: k, [cx]: [ad, 8, 12, c], [cz]: v }, { [cw]: k, [cx]: bS, [cz]: w }, { [cw]: k, [cx]: [ad, 32, 49, c], [cz]: x }, { [cw]: g, [cx]: by, [cz]: \"regionPartition\" }, { [cw]: h, [cx]: [{ [cy]: w }, \"--op-s3\"] }], [cu]: [{ [cv]: bZ, [cu]: [{ [cv]: bF, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [av, \"e\"] }], [cu]: [{ [cv]: ca, [cu]: [aw, { [cv]: bC, endpoint: { [cA]: \"https://{Bucket}.ec2.{url#authority}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { endpoint: { [cA]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { [cv]: [{ [cw]: h, [cx]: [av, \"o\"] }], [cu]: [{ [cv]: ca, [cu]: [aw, { [cv]: bC, endpoint: { [cA]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { endpoint: { [cA]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [ct]: f }], [ct]: o }, { error: \"Invalid Outposts Bucket alias - it must be a valid bucket name.\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [ct]: f }], [ct]: o }, { [cv]: bY, [cu]: [{ [cv]: [Z, { [cw]: r, [cx]: [{ [cw]: d, [cx]: [{ [cw]: m, [cx]: bz }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [ct]: f }, { [cv]: [ay, am], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cc, [cu]: [{ [cv]: [W, ab], error: \"S3 Accelerate cannot be used in this region\", [ct]: f }, { [cv]: [Y, X, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, X, aA, aq, aD, aE], [cu]: [{ endpoint: aF, [ct]: n }], [ct]: o }, { [cv]: [Y, X, aA, aq, aD, aH], endpoint: aF, [ct]: n }, { [cv]: [ar, X, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, X, aA, aq, aD, aE], [cu]: [{ endpoint: aI, [ct]: n }], [ct]: o }, { [cv]: [ar, X, aA, aq, aD, aH], endpoint: aI, [ct]: n }, { [cv]: [Y, as, W, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, as, W, aq, aD, aE], [cu]: [{ endpoint: aJ, [ct]: n }], [ct]: o }, { [cv]: [Y, as, W, aq, aD, aH], endpoint: aJ, [ct]: n }, { [cv]: [Y, as, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, as, aA, aq, aD, aE], [cu]: [{ endpoint: aK, [ct]: n }], [ct]: o }, { [cv]: [Y, as, aA, aq, aD, aH], endpoint: aK, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, ah, aB], endpoint: { [cA]: C, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, aL, aB], endpoint: { [cA]: q, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, ah, aD, aE], [cu]: [{ [cv]: cd, endpoint: aM, [ct]: n }, { endpoint: aM, [ct]: n }], [ct]: o }, { [cv]: [ar, as, aA, Z, ag, aL, aD, aE], [cu]: [{ [cv]: cd, endpoint: aN, [ct]: n }, aO], [ct]: o }, { [cv]: [ar, as, aA, Z, ag, ah, aD, aH], endpoint: aM, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, aL, aD, aH], endpoint: aN, [ct]: n }, { [cv]: [ar, as, W, aq, aB], endpoint: { [cA]: D, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, W, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: aP, [ct]: n }, { endpoint: aP, [ct]: n }], [ct]: o }, { [cv]: [ar, as, W, aq, aD, aH], endpoint: aP, [ct]: n }, { [cv]: [ar, as, aA, aq, aB], endpoint: { [cA]: E, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: E, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: aQ, [ct]: n }], [ct]: o }, { [cv]: [ar, as, aA, aq, aD, aH], endpoint: aQ, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [Z, ag, { [cw]: h, [cx]: [{ [cw]: i, [cx]: [ai, \"scheme\"] }, \"http\"] }, { [cw]: p, [cx]: [ad, c] }, ay, as, ar, aA], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cc, [cu]: [aO], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [ay, { [cw]: F, [cx]: bA, [cz]: G }], [cu]: [{ [cv]: [{ [cw]: i, [cx]: [aS, \"resourceId[0]\"], [cz]: H }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [aT, I] }] }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [aU, J] }], [cu]: [{ [cv]: ce, [cu]: [{ [cv]: cf, [cu]: [aW, aX, { [cv]: ci, [cu]: [aY, { [cv]: cj, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cm, [cu]: [{ [cv]: cn, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [bb, I] }], error: \"Invalid ARN: Missing account id\", [ct]: f }, { [cv]: co, [cu]: [{ [cv]: cp, [cu]: [{ [cv]: bC, endpoint: { [cA]: M, [cB]: bc, [cH]: al }, [ct]: n }, { [cv]: cq, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bc, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bc, [cH]: al }, [ct]: n }], [ct]: o }, bd], [ct]: o }, be], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, bh], [ct]: o }, { error: \"Invalid ARN: bucket ARN is missing a region\", [ct]: f }], [ct]: o }, bi], [ct]: o }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [ct]: f }], [ct]: o }, { [cv]: ce, [cu]: [{ [cv]: cf, [cu]: [{ [cv]: ci, [cu]: [{ [cv]: ce, [cu]: [{ [cv]: ci, [cu]: [aY, { [cv]: cj, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [ba, \"{partitionResult#name}\"] }], [cu]: [{ [cv]: cn, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [aU, B] }], [cu]: [{ [cv]: co, [cu]: [{ [cv]: cp, [cu]: [{ [cv]: bB, error: \"Access Points do not support S3 Accelerate\", [ct]: f }, { [cv]: bH, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: [as, ar, Z, ag], endpoint: { [cA]: M, [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }], [ct]: o }, bd], [ct]: o }, be], [ct]: o }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [ct]: f }], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, bh], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: y, [cx]: [aV, c] }], [cu]: [{ [cv]: ch, error: \"S3 MRAP does not support dual-stack\", [ct]: f }, { [cv]: cq, error: \"S3 MRAP does not support FIPS\", [ct]: f }, { [cv]: bB, error: \"S3 MRAP does not support S3 Accelerate\", [ct]: f }, { [cv]: [{ [cw]: e, [cx]: [{ [cy]: \"DisableMultiRegionAccessPoints\" }, c] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [ct]: f }, { [cv]: [{ [cw]: g, [cx]: by, [cz]: N }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [{ [cy]: N }, j] }, { [cw]: i, [cx]: [aS, \"partition\"] }] }], [cu]: [{ endpoint: { [cA]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [cB]: { [cD]: [{ [cE]: c, name: z, [cF]: B, [cI]: cb }] }, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [ct]: f }], [ct]: o }], [ct]: o }, { error: \"Invalid Access Point Name\", [ct]: f }], [ct]: o }, bi], [ct]: o }, { [cv]: [{ [cw]: h, [cx]: [aU, A] }], [cu]: [{ [cv]: ch, error: \"S3 Outposts does not support Dual-stack\", [ct]: f }, { [cv]: cq, error: \"S3 Outposts does not support FIPS\", [ct]: f }, { [cv]: bB, error: \"S3 Outposts does not support S3 Accelerate\", [ct]: f }, { [cv]: [{ [cw]: d, [cx]: [{ [cw]: i, [cx]: [aS, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [ct]: f }, { [cv]: [{ [cw]: i, [cx]: cg, [cz]: x }], [cu]: [{ [cv]: bZ, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cm, [cu]: [{ [cv]: cn, [cu]: [{ [cv]: co, [cu]: [{ [cv]: [{ [cw]: i, [cx]: ck, [cz]: O }], [cu]: [{ [cv]: [{ [cw]: i, [cx]: [aS, \"resourceId[3]\"], [cz]: L }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [{ [cy]: O }, K] }], [cu]: [{ [cv]: bC, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [cB]: bk, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bk, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: expected an access point name\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: Expected a 4-component resource\", [ct]: f }], [ct]: o }, be], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: The Outpost Id was not set\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: No ARN type specified\", [ct]: f }], [ct]: o }, { [cv]: [{ [cw]: k, [cx]: [ad, 0, 4, b], [cz]: P }, { [cw]: h, [cx]: [{ [cy]: P }, \"arn:\"] }, { [cw]: r, [cx]: [{ [cw]: d, [cx]: [bl] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [ct]: f }, { [cv]: [{ [cw]: e, [cx]: [az, c] }, bl], error: \"Path-style addressing cannot be used with ARN buckets\", [ct]: f }, { [cv]: bE, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [aA], [cu]: [{ [cv]: [Y, aq, X, aB], endpoint: { [cA]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, aq, X, aD, aE], [cu]: [{ endpoint: bm, [ct]: n }], [ct]: o }, { [cv]: [Y, aq, X, aD, aH], endpoint: bm, [ct]: n }, { [cv]: [ar, aq, X, aB], endpoint: { [cA]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, aq, X, aD, aE], [cu]: [{ endpoint: bn, [ct]: n }], [ct]: o }, { [cv]: [ar, aq, X, aD, aH], endpoint: bn, [ct]: n }, { [cv]: [Y, aq, as, aB], endpoint: { [cA]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, aq, as, aD, aE], [cu]: [{ endpoint: bo, [ct]: n }], [ct]: o }, { [cv]: [Y, aq, as, aD, aH], endpoint: bo, [ct]: n }, { [cv]: [ar, Z, ag, as, aB], endpoint: { [cA]: Q, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, Z, ag, as, aD, aE], [cu]: [{ [cv]: cd, endpoint: bp, [ct]: n }, { endpoint: bp, [ct]: n }], [ct]: o }, { [cv]: [ar, Z, ag, as, aD, aH], endpoint: bp, [ct]: n }, { [cv]: [ar, aq, as, aB], endpoint: { [cA]: R, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, aq, as, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: R, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: bq, [ct]: n }], [ct]: o }, { [cv]: [ar, aq, as, aD, aH], endpoint: bq, [ct]: n }], [ct]: o }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [ct]: f }], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: d, [cx]: [br] }, { [cw]: e, [cx]: [br, c] }], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cr, [cu]: [aW, aX, { [cv]: bC, endpoint: { [cA]: t, [cB]: bs, [cH]: al }, [ct]: n }, { [cv]: cq, endpoint: { [cA]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: bs, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [cB]: bs, [cH]: al }, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [au], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cr, [cu]: [{ [cv]: [X, Y, aq, aB], endpoint: { [cA]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [X, Y, aq, aD, aE], [cu]: [{ endpoint: bt, [ct]: n }], [ct]: o }, { [cv]: [X, Y, aq, aD, aH], endpoint: bt, [ct]: n }, { [cv]: [X, ar, aq, aB], endpoint: { [cA]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [X, ar, aq, aD, aE], [cu]: [{ endpoint: bu, [ct]: n }], [ct]: o }, { [cv]: [X, ar, aq, aD, aH], endpoint: bu, [ct]: n }, { [cv]: [as, Y, aq, aB], endpoint: { [cA]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, Y, aq, aD, aE], [cu]: [{ endpoint: bv, [ct]: n }], [ct]: o }, { [cv]: [as, Y, aq, aD, aH], endpoint: bv, [ct]: n }, { [cv]: [as, ar, Z, ag, aB], endpoint: { [cA]: t, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, ar, Z, ag, aD, aE], [cu]: [{ [cv]: cd, endpoint: bw, [ct]: n }, { endpoint: bw, [ct]: n }], [ct]: o }, { [cv]: [as, ar, Z, ag, aD, aH], endpoint: bw, [ct]: n }, { [cv]: [as, ar, aq, aB], endpoint: { [cA]: S, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, ar, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: S, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: bx, [ct]: n }], [ct]: o }, { [cv]: [as, ar, aq, aD, aH], endpoint: bx, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }], [ct]: o }, { error: \"A region must be set when sending requests to S3.\", [ct]: f }] };\nexport const ruleSet = _data;\n",
|
|
65
|
+
"import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CreateSession$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class CreateSessionCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n})\n .m(function (Command, cs, config, o) {\n return [\n getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n getThrow200ExceptionsPlugin(config),\n ];\n})\n .s(\"AmazonS3\", \"CreateSession\", {})\n .n(\"S3Client\", \"CreateSessionCommand\")\n .sc(CreateSession$)\n .build() {\n}\n",
|
|
66
|
+
"const clientContextParamDefaults = {};\nexport const resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n forcePathStyle: options.forcePathStyle ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\",\n clientContextParams: options.clientContextParams ?? {},\n });\n};\nexport const commonParams = {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n DisableS3ExpressSessionAuth: { type: \"clientContextParams\", name: \"disableS3ExpressSessionAuth\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n",
|
|
67
|
+
"const _A = \"Account\";\nconst _AAO = \"AnalyticsAndOperator\";\nconst _AC = \"AccelerateConfiguration\";\nconst _ACL = \"AccessControlList\";\nconst _ACL_ = \"ACL\";\nconst _ACLn = \"AnalyticsConfigurationList\";\nconst _ACP = \"AccessControlPolicy\";\nconst _ACT = \"AccessControlTranslation\";\nconst _ACn = \"AnalyticsConfiguration\";\nconst _AD = \"AccessDenied\";\nconst _ADb = \"AbortDate\";\nconst _AED = \"AnalyticsExportDestination\";\nconst _AF = \"AnalyticsFilter\";\nconst _AH = \"AllowedHeaders\";\nconst _AHl = \"AllowedHeader\";\nconst _AI = \"AccountId\";\nconst _AIMU = \"AbortIncompleteMultipartUpload\";\nconst _AKI = \"AccessKeyId\";\nconst _AM = \"AllowedMethods\";\nconst _AMU = \"AbortMultipartUpload\";\nconst _AMUO = \"AbortMultipartUploadOutput\";\nconst _AMUR = \"AbortMultipartUploadRequest\";\nconst _AMl = \"AllowedMethod\";\nconst _AO = \"AllowedOrigins\";\nconst _AOl = \"AllowedOrigin\";\nconst _APA = \"AccessPointAlias\";\nconst _APAc = \"AccessPointArn\";\nconst _AQRD = \"AllowQuotedRecordDelimiter\";\nconst _AR = \"AcceptRanges\";\nconst _ARI = \"AbortRuleId\";\nconst _AS = \"AbacStatus\";\nconst _ASBD = \"AnalyticsS3BucketDestination\";\nconst _ASSEBD = \"ApplyServerSideEncryptionByDefault\";\nconst _ASr = \"ArchiveStatus\";\nconst _AT = \"AccessTier\";\nconst _An = \"And\";\nconst _B = \"Bucket\";\nconst _BA = \"BucketArn\";\nconst _BAE = \"BucketAlreadyExists\";\nconst _BAI = \"BucketAccountId\";\nconst _BAOBY = \"BucketAlreadyOwnedByYou\";\nconst _BET = \"BlockedEncryptionTypes\";\nconst _BGR = \"BypassGovernanceRetention\";\nconst _BI = \"BucketInfo\";\nconst _BKE = \"BucketKeyEnabled\";\nconst _BLC = \"BucketLifecycleConfiguration\";\nconst _BLN = \"BucketLocationName\";\nconst _BLS = \"BucketLoggingStatus\";\nconst _BLT = \"BucketLocationType\";\nconst _BN = \"BucketNamespace\";\nconst _BNu = \"BucketName\";\nconst _BP = \"BytesProcessed\";\nconst _BPA = \"BlockPublicAcls\";\nconst _BPP = \"BlockPublicPolicy\";\nconst _BR = \"BucketRegion\";\nconst _BRy = \"BytesReturned\";\nconst _BS = \"BytesScanned\";\nconst _Bo = \"Body\";\nconst _Bu = \"Buckets\";\nconst _C = \"Checksum\";\nconst _CA = \"ChecksumAlgorithm\";\nconst _CACL = \"CannedACL\";\nconst _CB = \"CreateBucket\";\nconst _CBC = \"CreateBucketConfiguration\";\nconst _CBMC = \"CreateBucketMetadataConfiguration\";\nconst _CBMCR = \"CreateBucketMetadataConfigurationRequest\";\nconst _CBMTC = \"CreateBucketMetadataTableConfiguration\";\nconst _CBMTCR = \"CreateBucketMetadataTableConfigurationRequest\";\nconst _CBO = \"CreateBucketOutput\";\nconst _CBR = \"CreateBucketRequest\";\nconst _CC = \"CacheControl\";\nconst _CCRC = \"ChecksumCRC32\";\nconst _CCRCC = \"ChecksumCRC32C\";\nconst _CCRCNVME = \"ChecksumCRC64NVME\";\nconst _CC_ = \"Cache-Control\";\nconst _CD = \"CreationDate\";\nconst _CD_ = \"Content-Disposition\";\nconst _CDo = \"ContentDisposition\";\nconst _CE = \"ContinuationEvent\";\nconst _CE_ = \"Content-Encoding\";\nconst _CEo = \"ContentEncoding\";\nconst _CF = \"CloudFunction\";\nconst _CFC = \"CloudFunctionConfiguration\";\nconst _CL = \"ContentLanguage\";\nconst _CL_ = \"Content-Language\";\nconst _CL__ = \"Content-Length\";\nconst _CLo = \"ContentLength\";\nconst _CM = \"Content-MD5\";\nconst _CMD = \"ContentMD5\";\nconst _CMU = \"CompletedMultipartUpload\";\nconst _CMUO = \"CompleteMultipartUploadOutput\";\nconst _CMUOr = \"CreateMultipartUploadOutput\";\nconst _CMUR = \"CompleteMultipartUploadResult\";\nconst _CMURo = \"CompleteMultipartUploadRequest\";\nconst _CMURr = \"CreateMultipartUploadRequest\";\nconst _CMUo = \"CompleteMultipartUpload\";\nconst _CMUr = \"CreateMultipartUpload\";\nconst _CMh = \"ChecksumMode\";\nconst _CO = \"CopyObject\";\nconst _COO = \"CopyObjectOutput\";\nconst _COR = \"CopyObjectResult\";\nconst _CORSC = \"CORSConfiguration\";\nconst _CORSR = \"CORSRules\";\nconst _CORSRu = \"CORSRule\";\nconst _CORo = \"CopyObjectRequest\";\nconst _CP = \"CommonPrefix\";\nconst _CPL = \"CommonPrefixList\";\nconst _CPLo = \"CompletedPartList\";\nconst _CPR = \"CopyPartResult\";\nconst _CPo = \"CompletedPart\";\nconst _CPom = \"CommonPrefixes\";\nconst _CR = \"ContentRange\";\nconst _CRSBA = \"ConfirmRemoveSelfBucketAccess\";\nconst _CR_ = \"Content-Range\";\nconst _CS = \"CopySource\";\nconst _CSHA = \"ChecksumSHA1\";\nconst _CSHAh = \"ChecksumSHA256\";\nconst _CSIM = \"CopySourceIfMatch\";\nconst _CSIMS = \"CopySourceIfModifiedSince\";\nconst _CSINM = \"CopySourceIfNoneMatch\";\nconst _CSIUS = \"CopySourceIfUnmodifiedSince\";\nconst _CSO = \"CreateSessionOutput\";\nconst _CSR = \"CreateSessionResult\";\nconst _CSRo = \"CopySourceRange\";\nconst _CSRr = \"CreateSessionRequest\";\nconst _CSSSECA = \"CopySourceSSECustomerAlgorithm\";\nconst _CSSSECK = \"CopySourceSSECustomerKey\";\nconst _CSSSECKMD = \"CopySourceSSECustomerKeyMD5\";\nconst _CSV = \"CSV\";\nconst _CSVI = \"CopySourceVersionId\";\nconst _CSVIn = \"CSVInput\";\nconst _CSVO = \"CSVOutput\";\nconst _CSo = \"ConfigurationState\";\nconst _CSr = \"CreateSession\";\nconst _CT = \"ChecksumType\";\nconst _CT_ = \"Content-Type\";\nconst _CTl = \"ClientToken\";\nconst _CTo = \"ContentType\";\nconst _CTom = \"CompressionType\";\nconst _CTon = \"ContinuationToken\";\nconst _Co = \"Condition\";\nconst _Cod = \"Code\";\nconst _Com = \"Comments\";\nconst _Con = \"Contents\";\nconst _Cont = \"Cont\";\nconst _Cr = \"Credentials\";\nconst _D = \"Days\";\nconst _DAI = \"DaysAfterInitiation\";\nconst _DB = \"DeleteBucket\";\nconst _DBAC = \"DeleteBucketAnalyticsConfiguration\";\nconst _DBACR = \"DeleteBucketAnalyticsConfigurationRequest\";\nconst _DBC = \"DeleteBucketCors\";\nconst _DBCR = \"DeleteBucketCorsRequest\";\nconst _DBE = \"DeleteBucketEncryption\";\nconst _DBER = \"DeleteBucketEncryptionRequest\";\nconst _DBIC = \"DeleteBucketInventoryConfiguration\";\nconst _DBICR = \"DeleteBucketInventoryConfigurationRequest\";\nconst _DBITC = \"DeleteBucketIntelligentTieringConfiguration\";\nconst _DBITCR = \"DeleteBucketIntelligentTieringConfigurationRequest\";\nconst _DBL = \"DeleteBucketLifecycle\";\nconst _DBLR = \"DeleteBucketLifecycleRequest\";\nconst _DBMC = \"DeleteBucketMetadataConfiguration\";\nconst _DBMCR = \"DeleteBucketMetadataConfigurationRequest\";\nconst _DBMCRe = \"DeleteBucketMetricsConfigurationRequest\";\nconst _DBMCe = \"DeleteBucketMetricsConfiguration\";\nconst _DBMTC = \"DeleteBucketMetadataTableConfiguration\";\nconst _DBMTCR = \"DeleteBucketMetadataTableConfigurationRequest\";\nconst _DBOC = \"DeleteBucketOwnershipControls\";\nconst _DBOCR = \"DeleteBucketOwnershipControlsRequest\";\nconst _DBP = \"DeleteBucketPolicy\";\nconst _DBPR = \"DeleteBucketPolicyRequest\";\nconst _DBR = \"DeleteBucketRequest\";\nconst _DBRR = \"DeleteBucketReplicationRequest\";\nconst _DBRe = \"DeleteBucketReplication\";\nconst _DBT = \"DeleteBucketTagging\";\nconst _DBTR = \"DeleteBucketTaggingRequest\";\nconst _DBW = \"DeleteBucketWebsite\";\nconst _DBWR = \"DeleteBucketWebsiteRequest\";\nconst _DE = \"DataExport\";\nconst _DIM = \"DestinationIfMatch\";\nconst _DIMS = \"DestinationIfModifiedSince\";\nconst _DINM = \"DestinationIfNoneMatch\";\nconst _DIUS = \"DestinationIfUnmodifiedSince\";\nconst _DM = \"DeleteMarker\";\nconst _DME = \"DeleteMarkerEntry\";\nconst _DMR = \"DeleteMarkerReplication\";\nconst _DMVI = \"DeleteMarkerVersionId\";\nconst _DMe = \"DeleteMarkers\";\nconst _DN = \"DisplayName\";\nconst _DO = \"DeletedObject\";\nconst _DOO = \"DeleteObjectOutput\";\nconst _DOOe = \"DeleteObjectsOutput\";\nconst _DOR = \"DeleteObjectRequest\";\nconst _DORe = \"DeleteObjectsRequest\";\nconst _DOT = \"DeleteObjectTagging\";\nconst _DOTO = \"DeleteObjectTaggingOutput\";\nconst _DOTR = \"DeleteObjectTaggingRequest\";\nconst _DOe = \"DeletedObjects\";\nconst _DOel = \"DeleteObject\";\nconst _DOele = \"DeleteObjects\";\nconst _DPAB = \"DeletePublicAccessBlock\";\nconst _DPABR = \"DeletePublicAccessBlockRequest\";\nconst _DR = \"DataRedundancy\";\nconst _DRe = \"DefaultRetention\";\nconst _DRel = \"DeleteResult\";\nconst _DRes = \"DestinationResult\";\nconst _Da = \"Date\";\nconst _De = \"Delete\";\nconst _Del = \"Deleted\";\nconst _Deli = \"Delimiter\";\nconst _Des = \"Destination\";\nconst _Desc = \"Description\";\nconst _Det = \"Details\";\nconst _E = \"Expiration\";\nconst _EA = \"EmailAddress\";\nconst _EBC = \"EventBridgeConfiguration\";\nconst _EBO = \"ExpectedBucketOwner\";\nconst _EC = \"EncryptionConfiguration\";\nconst _ECr = \"ErrorCode\";\nconst _ED = \"ErrorDetails\";\nconst _EDr = \"ErrorDocument\";\nconst _EE = \"EndEvent\";\nconst _EH = \"ExposeHeaders\";\nconst _EHx = \"ExposeHeader\";\nconst _EM = \"ErrorMessage\";\nconst _EODM = \"ExpiredObjectDeleteMarker\";\nconst _EOR = \"ExistingObjectReplication\";\nconst _ES = \"ExpiresString\";\nconst _ESBO = \"ExpectedSourceBucketOwner\";\nconst _ET = \"EncryptionType\";\nconst _ETL = \"EncryptionTypeList\";\nconst _ETM = \"EncryptionTypeMismatch\";\nconst _ETa = \"ETag\";\nconst _ETn = \"EncodingType\";\nconst _ETv = \"EventThreshold\";\nconst _ETx = \"ExpressionType\";\nconst _En = \"Encryption\";\nconst _Ena = \"Enabled\";\nconst _End = \"End\";\nconst _Er = \"Errors\";\nconst _Err = \"Error\";\nconst _Ev = \"Events\";\nconst _Eve = \"Event\";\nconst _Ex = \"Expires\";\nconst _Exp = \"Expression\";\nconst _F = \"Filter\";\nconst _FD = \"FieldDelimiter\";\nconst _FHI = \"FileHeaderInfo\";\nconst _FO = \"FetchOwner\";\nconst _FR = \"FilterRule\";\nconst _FRL = \"FilterRuleList\";\nconst _FRi = \"FilterRules\";\nconst _Fi = \"Field\";\nconst _Fo = \"Format\";\nconst _Fr = \"Frequency\";\nconst _G = \"Grants\";\nconst _GBA = \"GetBucketAbac\";\nconst _GBAC = \"GetBucketAccelerateConfiguration\";\nconst _GBACO = \"GetBucketAccelerateConfigurationOutput\";\nconst _GBACOe = \"GetBucketAnalyticsConfigurationOutput\";\nconst _GBACR = \"GetBucketAccelerateConfigurationRequest\";\nconst _GBACRe = \"GetBucketAnalyticsConfigurationRequest\";\nconst _GBACe = \"GetBucketAnalyticsConfiguration\";\nconst _GBAO = \"GetBucketAbacOutput\";\nconst _GBAOe = \"GetBucketAclOutput\";\nconst _GBAR = \"GetBucketAbacRequest\";\nconst _GBARe = \"GetBucketAclRequest\";\nconst _GBAe = \"GetBucketAcl\";\nconst _GBC = \"GetBucketCors\";\nconst _GBCO = \"GetBucketCorsOutput\";\nconst _GBCR = \"GetBucketCorsRequest\";\nconst _GBE = \"GetBucketEncryption\";\nconst _GBEO = \"GetBucketEncryptionOutput\";\nconst _GBER = \"GetBucketEncryptionRequest\";\nconst _GBIC = \"GetBucketInventoryConfiguration\";\nconst _GBICO = \"GetBucketInventoryConfigurationOutput\";\nconst _GBICR = \"GetBucketInventoryConfigurationRequest\";\nconst _GBITC = \"GetBucketIntelligentTieringConfiguration\";\nconst _GBITCO = \"GetBucketIntelligentTieringConfigurationOutput\";\nconst _GBITCR = \"GetBucketIntelligentTieringConfigurationRequest\";\nconst _GBL = \"GetBucketLocation\";\nconst _GBLC = \"GetBucketLifecycleConfiguration\";\nconst _GBLCO = \"GetBucketLifecycleConfigurationOutput\";\nconst _GBLCR = \"GetBucketLifecycleConfigurationRequest\";\nconst _GBLO = \"GetBucketLocationOutput\";\nconst _GBLOe = \"GetBucketLoggingOutput\";\nconst _GBLR = \"GetBucketLocationRequest\";\nconst _GBLRe = \"GetBucketLoggingRequest\";\nconst _GBLe = \"GetBucketLogging\";\nconst _GBMC = \"GetBucketMetadataConfiguration\";\nconst _GBMCO = \"GetBucketMetadataConfigurationOutput\";\nconst _GBMCOe = \"GetBucketMetricsConfigurationOutput\";\nconst _GBMCR = \"GetBucketMetadataConfigurationResult\";\nconst _GBMCRe = \"GetBucketMetadataConfigurationRequest\";\nconst _GBMCRet = \"GetBucketMetricsConfigurationRequest\";\nconst _GBMCe = \"GetBucketMetricsConfiguration\";\nconst _GBMTC = \"GetBucketMetadataTableConfiguration\";\nconst _GBMTCO = \"GetBucketMetadataTableConfigurationOutput\";\nconst _GBMTCR = \"GetBucketMetadataTableConfigurationResult\";\nconst _GBMTCRe = \"GetBucketMetadataTableConfigurationRequest\";\nconst _GBNC = \"GetBucketNotificationConfiguration\";\nconst _GBNCR = \"GetBucketNotificationConfigurationRequest\";\nconst _GBOC = \"GetBucketOwnershipControls\";\nconst _GBOCO = \"GetBucketOwnershipControlsOutput\";\nconst _GBOCR = \"GetBucketOwnershipControlsRequest\";\nconst _GBP = \"GetBucketPolicy\";\nconst _GBPO = \"GetBucketPolicyOutput\";\nconst _GBPR = \"GetBucketPolicyRequest\";\nconst _GBPS = \"GetBucketPolicyStatus\";\nconst _GBPSO = \"GetBucketPolicyStatusOutput\";\nconst _GBPSR = \"GetBucketPolicyStatusRequest\";\nconst _GBR = \"GetBucketReplication\";\nconst _GBRO = \"GetBucketReplicationOutput\";\nconst _GBRP = \"GetBucketRequestPayment\";\nconst _GBRPO = \"GetBucketRequestPaymentOutput\";\nconst _GBRPR = \"GetBucketRequestPaymentRequest\";\nconst _GBRR = \"GetBucketReplicationRequest\";\nconst _GBT = \"GetBucketTagging\";\nconst _GBTO = \"GetBucketTaggingOutput\";\nconst _GBTR = \"GetBucketTaggingRequest\";\nconst _GBV = \"GetBucketVersioning\";\nconst _GBVO = \"GetBucketVersioningOutput\";\nconst _GBVR = \"GetBucketVersioningRequest\";\nconst _GBW = \"GetBucketWebsite\";\nconst _GBWO = \"GetBucketWebsiteOutput\";\nconst _GBWR = \"GetBucketWebsiteRequest\";\nconst _GFC = \"GrantFullControl\";\nconst _GJP = \"GlacierJobParameters\";\nconst _GO = \"GetObject\";\nconst _GOA = \"GetObjectAcl\";\nconst _GOAO = \"GetObjectAclOutput\";\nconst _GOAOe = \"GetObjectAttributesOutput\";\nconst _GOAP = \"GetObjectAttributesParts\";\nconst _GOAR = \"GetObjectAclRequest\";\nconst _GOARe = \"GetObjectAttributesResponse\";\nconst _GOARet = \"GetObjectAttributesRequest\";\nconst _GOAe = \"GetObjectAttributes\";\nconst _GOLC = \"GetObjectLockConfiguration\";\nconst _GOLCO = \"GetObjectLockConfigurationOutput\";\nconst _GOLCR = \"GetObjectLockConfigurationRequest\";\nconst _GOLH = \"GetObjectLegalHold\";\nconst _GOLHO = \"GetObjectLegalHoldOutput\";\nconst _GOLHR = \"GetObjectLegalHoldRequest\";\nconst _GOO = \"GetObjectOutput\";\nconst _GOR = \"GetObjectRequest\";\nconst _GORO = \"GetObjectRetentionOutput\";\nconst _GORR = \"GetObjectRetentionRequest\";\nconst _GORe = \"GetObjectRetention\";\nconst _GOT = \"GetObjectTagging\";\nconst _GOTO = \"GetObjectTaggingOutput\";\nconst _GOTOe = \"GetObjectTorrentOutput\";\nconst _GOTR = \"GetObjectTaggingRequest\";\nconst _GOTRe = \"GetObjectTorrentRequest\";\nconst _GOTe = \"GetObjectTorrent\";\nconst _GPAB = \"GetPublicAccessBlock\";\nconst _GPABO = \"GetPublicAccessBlockOutput\";\nconst _GPABR = \"GetPublicAccessBlockRequest\";\nconst _GR = \"GrantRead\";\nconst _GRACP = \"GrantReadACP\";\nconst _GW = \"GrantWrite\";\nconst _GWACP = \"GrantWriteACP\";\nconst _Gr = \"Grant\";\nconst _Gra = \"Grantee\";\nconst _HB = \"HeadBucket\";\nconst _HBO = \"HeadBucketOutput\";\nconst _HBR = \"HeadBucketRequest\";\nconst _HECRE = \"HttpErrorCodeReturnedEquals\";\nconst _HN = \"HostName\";\nconst _HO = \"HeadObject\";\nconst _HOO = \"HeadObjectOutput\";\nconst _HOR = \"HeadObjectRequest\";\nconst _HRC = \"HttpRedirectCode\";\nconst _I = \"Id\";\nconst _IC = \"InventoryConfiguration\";\nconst _ICL = \"InventoryConfigurationList\";\nconst _ID = \"ID\";\nconst _IDn = \"IndexDocument\";\nconst _IDnv = \"InventoryDestination\";\nconst _IE = \"IsEnabled\";\nconst _IEn = \"InventoryEncryption\";\nconst _IF = \"InventoryFilter\";\nconst _IL = \"IsLatest\";\nconst _IM = \"IfMatch\";\nconst _IMIT = \"IfMatchInitiatedTime\";\nconst _IMLMT = \"IfMatchLastModifiedTime\";\nconst _IMS = \"IfMatchSize\";\nconst _IMS_ = \"If-Modified-Since\";\nconst _IMSf = \"IfModifiedSince\";\nconst _IMUR = \"InitiateMultipartUploadResult\";\nconst _IM_ = \"If-Match\";\nconst _INM = \"IfNoneMatch\";\nconst _INM_ = \"If-None-Match\";\nconst _IOF = \"InventoryOptionalFields\";\nconst _IOS = \"InvalidObjectState\";\nconst _IOV = \"IncludedObjectVersions\";\nconst _IP = \"IsPublic\";\nconst _IPA = \"IgnorePublicAcls\";\nconst _IPM = \"IdempotencyParameterMismatch\";\nconst _IR = \"InvalidRequest\";\nconst _IRIP = \"IsRestoreInProgress\";\nconst _IS = \"InputSerialization\";\nconst _ISBD = \"InventoryS3BucketDestination\";\nconst _ISn = \"InventorySchedule\";\nconst _IT = \"IsTruncated\";\nconst _ITAO = \"IntelligentTieringAndOperator\";\nconst _ITC = \"IntelligentTieringConfiguration\";\nconst _ITCL = \"IntelligentTieringConfigurationList\";\nconst _ITCR = \"InventoryTableConfigurationResult\";\nconst _ITCU = \"InventoryTableConfigurationUpdates\";\nconst _ITCn = \"InventoryTableConfiguration\";\nconst _ITF = \"IntelligentTieringFilter\";\nconst _IUS = \"IfUnmodifiedSince\";\nconst _IUS_ = \"If-Unmodified-Since\";\nconst _IWO = \"InvalidWriteOffset\";\nconst _In = \"Initiator\";\nconst _Ini = \"Initiated\";\nconst _JSON = \"JSON\";\nconst _JSONI = \"JSONInput\";\nconst _JSONO = \"JSONOutput\";\nconst _JTC = \"JournalTableConfiguration\";\nconst _JTCR = \"JournalTableConfigurationResult\";\nconst _JTCU = \"JournalTableConfigurationUpdates\";\nconst _K = \"Key\";\nconst _KC = \"KeyCount\";\nconst _KI = \"KeyId\";\nconst _KKA = \"KmsKeyArn\";\nconst _KM = \"KeyMarker\";\nconst _KMSC = \"KMSContext\";\nconst _KMSKA = \"KMSKeyArn\";\nconst _KMSKI = \"KMSKeyId\";\nconst _KMSMKID = \"KMSMasterKeyID\";\nconst _KPE = \"KeyPrefixEquals\";\nconst _L = \"Location\";\nconst _LAMBR = \"ListAllMyBucketsResult\";\nconst _LAMDBR = \"ListAllMyDirectoryBucketsResult\";\nconst _LB = \"ListBuckets\";\nconst _LBAC = \"ListBucketAnalyticsConfigurations\";\nconst _LBACO = \"ListBucketAnalyticsConfigurationsOutput\";\nconst _LBACR = \"ListBucketAnalyticsConfigurationResult\";\nconst _LBACRi = \"ListBucketAnalyticsConfigurationsRequest\";\nconst _LBIC = \"ListBucketInventoryConfigurations\";\nconst _LBICO = \"ListBucketInventoryConfigurationsOutput\";\nconst _LBICR = \"ListBucketInventoryConfigurationsRequest\";\nconst _LBITC = \"ListBucketIntelligentTieringConfigurations\";\nconst _LBITCO = \"ListBucketIntelligentTieringConfigurationsOutput\";\nconst _LBITCR = \"ListBucketIntelligentTieringConfigurationsRequest\";\nconst _LBMC = \"ListBucketMetricsConfigurations\";\nconst _LBMCO = \"ListBucketMetricsConfigurationsOutput\";\nconst _LBMCR = \"ListBucketMetricsConfigurationsRequest\";\nconst _LBO = \"ListBucketsOutput\";\nconst _LBR = \"ListBucketsRequest\";\nconst _LBRi = \"ListBucketResult\";\nconst _LC = \"LocationConstraint\";\nconst _LCi = \"LifecycleConfiguration\";\nconst _LDB = \"ListDirectoryBuckets\";\nconst _LDBO = \"ListDirectoryBucketsOutput\";\nconst _LDBR = \"ListDirectoryBucketsRequest\";\nconst _LE = \"LoggingEnabled\";\nconst _LEi = \"LifecycleExpiration\";\nconst _LFA = \"LambdaFunctionArn\";\nconst _LFC = \"LambdaFunctionConfiguration\";\nconst _LFCL = \"LambdaFunctionConfigurationList\";\nconst _LFCa = \"LambdaFunctionConfigurations\";\nconst _LH = \"LegalHold\";\nconst _LI = \"LocationInfo\";\nconst _LICR = \"ListInventoryConfigurationsResult\";\nconst _LM = \"LastModified\";\nconst _LMCR = \"ListMetricsConfigurationsResult\";\nconst _LMT = \"LastModifiedTime\";\nconst _LMU = \"ListMultipartUploads\";\nconst _LMUO = \"ListMultipartUploadsOutput\";\nconst _LMUR = \"ListMultipartUploadsResult\";\nconst _LMURi = \"ListMultipartUploadsRequest\";\nconst _LM_ = \"Last-Modified\";\nconst _LO = \"ListObjects\";\nconst _LOO = \"ListObjectsOutput\";\nconst _LOR = \"ListObjectsRequest\";\nconst _LOV = \"ListObjectsV2\";\nconst _LOVO = \"ListObjectsV2Output\";\nconst _LOVOi = \"ListObjectVersionsOutput\";\nconst _LOVR = \"ListObjectsV2Request\";\nconst _LOVRi = \"ListObjectVersionsRequest\";\nconst _LOVi = \"ListObjectVersions\";\nconst _LP = \"ListParts\";\nconst _LPO = \"ListPartsOutput\";\nconst _LPR = \"ListPartsResult\";\nconst _LPRi = \"ListPartsRequest\";\nconst _LR = \"LifecycleRule\";\nconst _LRAO = \"LifecycleRuleAndOperator\";\nconst _LRF = \"LifecycleRuleFilter\";\nconst _LRi = \"LifecycleRules\";\nconst _LVR = \"ListVersionsResult\";\nconst _M = \"Metadata\";\nconst _MAO = \"MetricsAndOperator\";\nconst _MAS = \"MaxAgeSeconds\";\nconst _MB = \"MaxBuckets\";\nconst _MC = \"MetadataConfiguration\";\nconst _MCL = \"MetricsConfigurationList\";\nconst _MCR = \"MetadataConfigurationResult\";\nconst _MCe = \"MetricsConfiguration\";\nconst _MD = \"MetadataDirective\";\nconst _MDB = \"MaxDirectoryBuckets\";\nconst _MDf = \"MfaDelete\";\nconst _ME = \"MetadataEntry\";\nconst _MF = \"MetricsFilter\";\nconst _MFA = \"MFA\";\nconst _MFAD = \"MFADelete\";\nconst _MK = \"MaxKeys\";\nconst _MM = \"MissingMeta\";\nconst _MOS = \"MpuObjectSize\";\nconst _MP = \"MaxParts\";\nconst _MTC = \"MetadataTableConfiguration\";\nconst _MTCR = \"MetadataTableConfigurationResult\";\nconst _MTEC = \"MetadataTableEncryptionConfiguration\";\nconst _MU = \"MultipartUpload\";\nconst _MUL = \"MultipartUploadList\";\nconst _MUa = \"MaxUploads\";\nconst _Ma = \"Marker\";\nconst _Me = \"Metrics\";\nconst _Mes = \"Message\";\nconst _Mi = \"Minutes\";\nconst _Mo = \"Mode\";\nconst _N = \"Name\";\nconst _NC = \"NotificationConfiguration\";\nconst _NCF = \"NotificationConfigurationFilter\";\nconst _NCT = \"NextContinuationToken\";\nconst _ND = \"NoncurrentDays\";\nconst _NEKKAS = \"NonEmptyKmsKeyArnString\";\nconst _NF = \"NotFound\";\nconst _NKM = \"NextKeyMarker\";\nconst _NM = \"NextMarker\";\nconst _NNV = \"NewerNoncurrentVersions\";\nconst _NPNM = \"NextPartNumberMarker\";\nconst _NSB = \"NoSuchBucket\";\nconst _NSK = \"NoSuchKey\";\nconst _NSU = \"NoSuchUpload\";\nconst _NUIM = \"NextUploadIdMarker\";\nconst _NVE = \"NoncurrentVersionExpiration\";\nconst _NVIM = \"NextVersionIdMarker\";\nconst _NVT = \"NoncurrentVersionTransitions\";\nconst _NVTL = \"NoncurrentVersionTransitionList\";\nconst _NVTo = \"NoncurrentVersionTransition\";\nconst _O = \"Owner\";\nconst _OA = \"ObjectAttributes\";\nconst _OAIATE = \"ObjectAlreadyInActiveTierError\";\nconst _OC = \"OwnershipControls\";\nconst _OCR = \"OwnershipControlsRule\";\nconst _OCRw = \"OwnershipControlsRules\";\nconst _OE = \"ObjectEncryption\";\nconst _OF = \"OptionalFields\";\nconst _OI = \"ObjectIdentifier\";\nconst _OIL = \"ObjectIdentifierList\";\nconst _OL = \"OutputLocation\";\nconst _OLC = \"ObjectLockConfiguration\";\nconst _OLE = \"ObjectLockEnabled\";\nconst _OLEFB = \"ObjectLockEnabledForBucket\";\nconst _OLLH = \"ObjectLockLegalHold\";\nconst _OLLHS = \"ObjectLockLegalHoldStatus\";\nconst _OLM = \"ObjectLockMode\";\nconst _OLR = \"ObjectLockRetention\";\nconst _OLRUD = \"ObjectLockRetainUntilDate\";\nconst _OLRb = \"ObjectLockRule\";\nconst _OLb = \"ObjectList\";\nconst _ONIATE = \"ObjectNotInActiveTierError\";\nconst _OO = \"ObjectOwnership\";\nconst _OOA = \"OptionalObjectAttributes\";\nconst _OP = \"ObjectParts\";\nconst _OPb = \"ObjectPart\";\nconst _OS = \"ObjectSize\";\nconst _OSGT = \"ObjectSizeGreaterThan\";\nconst _OSLT = \"ObjectSizeLessThan\";\nconst _OSV = \"OutputSchemaVersion\";\nconst _OSu = \"OutputSerialization\";\nconst _OV = \"ObjectVersion\";\nconst _OVL = \"ObjectVersionList\";\nconst _Ob = \"Objects\";\nconst _Obj = \"Object\";\nconst _P = \"Prefix\";\nconst _PABC = \"PublicAccessBlockConfiguration\";\nconst _PBA = \"PutBucketAbac\";\nconst _PBAC = \"PutBucketAccelerateConfiguration\";\nconst _PBACR = \"PutBucketAccelerateConfigurationRequest\";\nconst _PBACRu = \"PutBucketAnalyticsConfigurationRequest\";\nconst _PBACu = \"PutBucketAnalyticsConfiguration\";\nconst _PBAR = \"PutBucketAbacRequest\";\nconst _PBARu = \"PutBucketAclRequest\";\nconst _PBAu = \"PutBucketAcl\";\nconst _PBC = \"PutBucketCors\";\nconst _PBCR = \"PutBucketCorsRequest\";\nconst _PBE = \"PutBucketEncryption\";\nconst _PBER = \"PutBucketEncryptionRequest\";\nconst _PBIC = \"PutBucketInventoryConfiguration\";\nconst _PBICR = \"PutBucketInventoryConfigurationRequest\";\nconst _PBITC = \"PutBucketIntelligentTieringConfiguration\";\nconst _PBITCR = \"PutBucketIntelligentTieringConfigurationRequest\";\nconst _PBL = \"PutBucketLogging\";\nconst _PBLC = \"PutBucketLifecycleConfiguration\";\nconst _PBLCO = \"PutBucketLifecycleConfigurationOutput\";\nconst _PBLCR = \"PutBucketLifecycleConfigurationRequest\";\nconst _PBLR = \"PutBucketLoggingRequest\";\nconst _PBMC = \"PutBucketMetricsConfiguration\";\nconst _PBMCR = \"PutBucketMetricsConfigurationRequest\";\nconst _PBNC = \"PutBucketNotificationConfiguration\";\nconst _PBNCR = \"PutBucketNotificationConfigurationRequest\";\nconst _PBOC = \"PutBucketOwnershipControls\";\nconst _PBOCR = \"PutBucketOwnershipControlsRequest\";\nconst _PBP = \"PutBucketPolicy\";\nconst _PBPR = \"PutBucketPolicyRequest\";\nconst _PBR = \"PutBucketReplication\";\nconst _PBRP = \"PutBucketRequestPayment\";\nconst _PBRPR = \"PutBucketRequestPaymentRequest\";\nconst _PBRR = \"PutBucketReplicationRequest\";\nconst _PBT = \"PutBucketTagging\";\nconst _PBTR = \"PutBucketTaggingRequest\";\nconst _PBV = \"PutBucketVersioning\";\nconst _PBVR = \"PutBucketVersioningRequest\";\nconst _PBW = \"PutBucketWebsite\";\nconst _PBWR = \"PutBucketWebsiteRequest\";\nconst _PC = \"PartsCount\";\nconst _PDS = \"PartitionDateSource\";\nconst _PE = \"ProgressEvent\";\nconst _PI = \"ParquetInput\";\nconst _PL = \"PartsList\";\nconst _PN = \"PartNumber\";\nconst _PNM = \"PartNumberMarker\";\nconst _PO = \"PutObject\";\nconst _POA = \"PutObjectAcl\";\nconst _POAO = \"PutObjectAclOutput\";\nconst _POAR = \"PutObjectAclRequest\";\nconst _POLC = \"PutObjectLockConfiguration\";\nconst _POLCO = \"PutObjectLockConfigurationOutput\";\nconst _POLCR = \"PutObjectLockConfigurationRequest\";\nconst _POLH = \"PutObjectLegalHold\";\nconst _POLHO = \"PutObjectLegalHoldOutput\";\nconst _POLHR = \"PutObjectLegalHoldRequest\";\nconst _POO = \"PutObjectOutput\";\nconst _POR = \"PutObjectRequest\";\nconst _PORO = \"PutObjectRetentionOutput\";\nconst _PORR = \"PutObjectRetentionRequest\";\nconst _PORu = \"PutObjectRetention\";\nconst _POT = \"PutObjectTagging\";\nconst _POTO = \"PutObjectTaggingOutput\";\nconst _POTR = \"PutObjectTaggingRequest\";\nconst _PP = \"PartitionedPrefix\";\nconst _PPAB = \"PutPublicAccessBlock\";\nconst _PPABR = \"PutPublicAccessBlockRequest\";\nconst _PS = \"PolicyStatus\";\nconst _Pa = \"Parts\";\nconst _Par = \"Part\";\nconst _Parq = \"Parquet\";\nconst _Pay = \"Payer\";\nconst _Payl = \"Payload\";\nconst _Pe = \"Permission\";\nconst _Po = \"Policy\";\nconst _Pr = \"Progress\";\nconst _Pri = \"Priority\";\nconst _Pro = \"Protocol\";\nconst _Q = \"Quiet\";\nconst _QA = \"QueueArn\";\nconst _QC = \"QuoteCharacter\";\nconst _QCL = \"QueueConfigurationList\";\nconst _QCu = \"QueueConfigurations\";\nconst _QCue = \"QueueConfiguration\";\nconst _QEC = \"QuoteEscapeCharacter\";\nconst _QF = \"QuoteFields\";\nconst _Qu = \"Queue\";\nconst _R = \"Rules\";\nconst _RART = \"RedirectAllRequestsTo\";\nconst _RC = \"RequestCharged\";\nconst _RCC = \"ResponseCacheControl\";\nconst _RCD = \"ResponseContentDisposition\";\nconst _RCE = \"ResponseContentEncoding\";\nconst _RCL = \"ResponseContentLanguage\";\nconst _RCT = \"ResponseContentType\";\nconst _RCe = \"ReplicationConfiguration\";\nconst _RD = \"RecordDelimiter\";\nconst _RE = \"ResponseExpires\";\nconst _RED = \"RestoreExpiryDate\";\nconst _REe = \"RecordExpiration\";\nconst _REec = \"RecordsEvent\";\nconst _RKKID = \"ReplicaKmsKeyID\";\nconst _RKPW = \"ReplaceKeyPrefixWith\";\nconst _RKW = \"ReplaceKeyWith\";\nconst _RM = \"ReplicaModifications\";\nconst _RO = \"RenameObject\";\nconst _ROO = \"RenameObjectOutput\";\nconst _ROOe = \"RestoreObjectOutput\";\nconst _ROP = \"RestoreOutputPath\";\nconst _ROR = \"RenameObjectRequest\";\nconst _RORe = \"RestoreObjectRequest\";\nconst _ROe = \"RestoreObject\";\nconst _RP = \"RequestPayer\";\nconst _RPB = \"RestrictPublicBuckets\";\nconst _RPC = \"RequestPaymentConfiguration\";\nconst _RPe = \"RequestProgress\";\nconst _RR = \"RoutingRules\";\nconst _RRAO = \"ReplicationRuleAndOperator\";\nconst _RRF = \"ReplicationRuleFilter\";\nconst _RRe = \"ReplicationRule\";\nconst _RRep = \"ReplicationRules\";\nconst _RReq = \"RequestRoute\";\nconst _RRes = \"RestoreRequest\";\nconst _RRo = \"RoutingRule\";\nconst _RS = \"ReplicationStatus\";\nconst _RSe = \"RestoreStatus\";\nconst _RSen = \"RenameSource\";\nconst _RT = \"ReplicationTime\";\nconst _RTV = \"ReplicationTimeValue\";\nconst _RTe = \"RequestToken\";\nconst _RUD = \"RetainUntilDate\";\nconst _Ra = \"Range\";\nconst _Re = \"Restore\";\nconst _Rec = \"Records\";\nconst _Red = \"Redirect\";\nconst _Ret = \"Retention\";\nconst _Ro = \"Role\";\nconst _Ru = \"Rule\";\nconst _S = \"Status\";\nconst _SA = \"StartAfter\";\nconst _SAK = \"SecretAccessKey\";\nconst _SAs = \"SseAlgorithm\";\nconst _SB = \"StreamingBlob\";\nconst _SBD = \"S3BucketDestination\";\nconst _SC = \"StorageClass\";\nconst _SCA = \"StorageClassAnalysis\";\nconst _SCADE = \"StorageClassAnalysisDataExport\";\nconst _SCV = \"SessionCredentialValue\";\nconst _SCe = \"SessionCredentials\";\nconst _SCt = \"StatusCode\";\nconst _SDV = \"SkipDestinationValidation\";\nconst _SE = \"StatsEvent\";\nconst _SIM = \"SourceIfMatch\";\nconst _SIMS = \"SourceIfModifiedSince\";\nconst _SINM = \"SourceIfNoneMatch\";\nconst _SIUS = \"SourceIfUnmodifiedSince\";\nconst _SK = \"SSE-KMS\";\nconst _SKEO = \"SseKmsEncryptedObjects\";\nconst _SKF = \"S3KeyFilter\";\nconst _SKe = \"S3Key\";\nconst _SL = \"S3Location\";\nconst _SM = \"SessionMode\";\nconst _SOC = \"SelectObjectContent\";\nconst _SOCES = \"SelectObjectContentEventStream\";\nconst _SOCO = \"SelectObjectContentOutput\";\nconst _SOCR = \"SelectObjectContentRequest\";\nconst _SP = \"SelectParameters\";\nconst _SPi = \"SimplePrefix\";\nconst _SR = \"ScanRange\";\nconst _SS = \"SSE-S3\";\nconst _SSC = \"SourceSelectionCriteria\";\nconst _SSE = \"ServerSideEncryption\";\nconst _SSEA = \"SSEAlgorithm\";\nconst _SSEBD = \"ServerSideEncryptionByDefault\";\nconst _SSEC = \"ServerSideEncryptionConfiguration\";\nconst _SSECA = \"SSECustomerAlgorithm\";\nconst _SSECK = \"SSECustomerKey\";\nconst _SSECKMD = \"SSECustomerKeyMD5\";\nconst _SSEKMS = \"SSEKMS\";\nconst _SSEKMSE = \"SSEKMSEncryption\";\nconst _SSEKMSEC = \"SSEKMSEncryptionContext\";\nconst _SSEKMSKI = \"SSEKMSKeyId\";\nconst _SSER = \"ServerSideEncryptionRule\";\nconst _SSERe = \"ServerSideEncryptionRules\";\nconst _SSES = \"SSES3\";\nconst _ST = \"SessionToken\";\nconst _STD = \"S3TablesDestination\";\nconst _STDR = \"S3TablesDestinationResult\";\nconst _S_ = \"S3\";\nconst _Sc = \"Schedule\";\nconst _Si = \"Size\";\nconst _St = \"Start\";\nconst _Sta = \"Stats\";\nconst _Su = \"Suffix\";\nconst _T = \"Tags\";\nconst _TA = \"TableArn\";\nconst _TAo = \"TopicArn\";\nconst _TB = \"TargetBucket\";\nconst _TBA = \"TableBucketArn\";\nconst _TBT = \"TableBucketType\";\nconst _TC = \"TagCount\";\nconst _TCL = \"TopicConfigurationList\";\nconst _TCo = \"TopicConfigurations\";\nconst _TCop = \"TopicConfiguration\";\nconst _TD = \"TaggingDirective\";\nconst _TDMOS = \"TransitionDefaultMinimumObjectSize\";\nconst _TG = \"TargetGrants\";\nconst _TGa = \"TargetGrant\";\nconst _TL = \"TieringList\";\nconst _TLr = \"TransitionList\";\nconst _TMP = \"TooManyParts\";\nconst _TN = \"TableNamespace\";\nconst _TNa = \"TableName\";\nconst _TOKF = \"TargetObjectKeyFormat\";\nconst _TP = \"TargetPrefix\";\nconst _TPC = \"TotalPartsCount\";\nconst _TS = \"TagSet\";\nconst _TSa = \"TableStatus\";\nconst _Ta = \"Tag\";\nconst _Tag = \"Tagging\";\nconst _Ti = \"Tier\";\nconst _Tie = \"Tierings\";\nconst _Tier = \"Tiering\";\nconst _Tim = \"Time\";\nconst _To = \"Token\";\nconst _Top = \"Topic\";\nconst _Tr = \"Transitions\";\nconst _Tra = \"Transition\";\nconst _Ty = \"Type\";\nconst _U = \"Uploads\";\nconst _UBMITC = \"UpdateBucketMetadataInventoryTableConfiguration\";\nconst _UBMITCR = \"UpdateBucketMetadataInventoryTableConfigurationRequest\";\nconst _UBMJTC = \"UpdateBucketMetadataJournalTableConfiguration\";\nconst _UBMJTCR = \"UpdateBucketMetadataJournalTableConfigurationRequest\";\nconst _UI = \"UploadId\";\nconst _UIM = \"UploadIdMarker\";\nconst _UM = \"UserMetadata\";\nconst _UOE = \"UpdateObjectEncryption\";\nconst _UOER = \"UpdateObjectEncryptionRequest\";\nconst _UOERp = \"UpdateObjectEncryptionResponse\";\nconst _UP = \"UploadPart\";\nconst _UPC = \"UploadPartCopy\";\nconst _UPCO = \"UploadPartCopyOutput\";\nconst _UPCR = \"UploadPartCopyRequest\";\nconst _UPO = \"UploadPartOutput\";\nconst _UPR = \"UploadPartRequest\";\nconst _URI = \"URI\";\nconst _Up = \"Upload\";\nconst _V = \"Value\";\nconst _VC = \"VersioningConfiguration\";\nconst _VI = \"VersionId\";\nconst _VIM = \"VersionIdMarker\";\nconst _Ve = \"Versions\";\nconst _Ver = \"Version\";\nconst _WC = \"WebsiteConfiguration\";\nconst _WGOR = \"WriteGetObjectResponse\";\nconst _WGORR = \"WriteGetObjectResponseRequest\";\nconst _WOB = \"WriteOffsetBytes\";\nconst _WRL = \"WebsiteRedirectLocation\";\nconst _Y = \"Years\";\nconst _ar = \"accept-ranges\";\nconst _br = \"bucket-region\";\nconst _c = \"client\";\nconst _ct = \"continuation-token\";\nconst _d = \"delimiter\";\nconst _e = \"error\";\nconst _eP = \"eventPayload\";\nconst _en = \"endpoint\";\nconst _et = \"encoding-type\";\nconst _fo = \"fetch-owner\";\nconst _h = \"http\";\nconst _hC = \"httpChecksum\";\nconst _hE = \"httpError\";\nconst _hH = \"httpHeader\";\nconst _hL = \"hostLabel\";\nconst _hP = \"httpPayload\";\nconst _hPH = \"httpPrefixHeaders\";\nconst _hQ = \"httpQuery\";\nconst _hi = \"http://www.w3.org/2001/XMLSchema-instance\";\nconst _i = \"id\";\nconst _iT = \"idempotencyToken\";\nconst _km = \"key-marker\";\nconst _m = \"marker\";\nconst _mb = \"max-buckets\";\nconst _mdb = \"max-directory-buckets\";\nconst _mk = \"max-keys\";\nconst _mp = \"max-parts\";\nconst _mu = \"max-uploads\";\nconst _p = \"prefix\";\nconst _pN = \"partNumber\";\nconst _pnm = \"part-number-marker\";\nconst _rcc = \"response-cache-control\";\nconst _rcd = \"response-content-disposition\";\nconst _rce = \"response-content-encoding\";\nconst _rcl = \"response-content-language\";\nconst _rct = \"response-content-type\";\nconst _re = \"response-expires\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.s3\";\nconst _sa = \"start-after\";\nconst _st = \"streaming\";\nconst _uI = \"uploadId\";\nconst _uim = \"upload-id-marker\";\nconst _vI = \"versionId\";\nconst _vim = \"version-id-marker\";\nconst _x = \"xsi\";\nconst _xA = \"xmlAttribute\";\nconst _xF = \"xmlFlattened\";\nconst _xN = \"xmlName\";\nconst _xNm = \"xmlNamespace\";\nconst _xaa = \"x-amz-acl\";\nconst _xaad = \"x-amz-abort-date\";\nconst _xaapa = \"x-amz-access-point-alias\";\nconst _xaari = \"x-amz-abort-rule-id\";\nconst _xaas = \"x-amz-archive-status\";\nconst _xaba = \"x-amz-bucket-arn\";\nconst _xabgr = \"x-amz-bypass-governance-retention\";\nconst _xabln = \"x-amz-bucket-location-name\";\nconst _xablt = \"x-amz-bucket-location-type\";\nconst _xabn = \"x-amz-bucket-namespace\";\nconst _xabole = \"x-amz-bucket-object-lock-enabled\";\nconst _xabolt = \"x-amz-bucket-object-lock-token\";\nconst _xabr = \"x-amz-bucket-region\";\nconst _xaca = \"x-amz-checksum-algorithm\";\nconst _xacc = \"x-amz-checksum-crc32\";\nconst _xacc_ = \"x-amz-checksum-crc32c\";\nconst _xacc__ = \"x-amz-checksum-crc64nvme\";\nconst _xacm = \"x-amz-checksum-mode\";\nconst _xacrsba = \"x-amz-confirm-remove-self-bucket-access\";\nconst _xacs = \"x-amz-checksum-sha1\";\nconst _xacs_ = \"x-amz-checksum-sha256\";\nconst _xacs__ = \"x-amz-copy-source\";\nconst _xacsim = \"x-amz-copy-source-if-match\";\nconst _xacsims = \"x-amz-copy-source-if-modified-since\";\nconst _xacsinm = \"x-amz-copy-source-if-none-match\";\nconst _xacsius = \"x-amz-copy-source-if-unmodified-since\";\nconst _xacsm = \"x-amz-create-session-mode\";\nconst _xacsr = \"x-amz-copy-source-range\";\nconst _xacssseca = \"x-amz-copy-source-server-side-encryption-customer-algorithm\";\nconst _xacssseck = \"x-amz-copy-source-server-side-encryption-customer-key\";\nconst _xacssseckM = \"x-amz-copy-source-server-side-encryption-customer-key-MD5\";\nconst _xacsvi = \"x-amz-copy-source-version-id\";\nconst _xact = \"x-amz-checksum-type\";\nconst _xact_ = \"x-amz-client-token\";\nconst _xadm = \"x-amz-delete-marker\";\nconst _xae = \"x-amz-expiration\";\nconst _xaebo = \"x-amz-expected-bucket-owner\";\nconst _xafec = \"x-amz-fwd-error-code\";\nconst _xafem = \"x-amz-fwd-error-message\";\nconst _xafhCC = \"x-amz-fwd-header-Cache-Control\";\nconst _xafhCD = \"x-amz-fwd-header-Content-Disposition\";\nconst _xafhCE = \"x-amz-fwd-header-Content-Encoding\";\nconst _xafhCL = \"x-amz-fwd-header-Content-Language\";\nconst _xafhCR = \"x-amz-fwd-header-Content-Range\";\nconst _xafhCT = \"x-amz-fwd-header-Content-Type\";\nconst _xafhE = \"x-amz-fwd-header-ETag\";\nconst _xafhE_ = \"x-amz-fwd-header-Expires\";\nconst _xafhLM = \"x-amz-fwd-header-Last-Modified\";\nconst _xafhar = \"x-amz-fwd-header-accept-ranges\";\nconst _xafhxacc = \"x-amz-fwd-header-x-amz-checksum-crc32\";\nconst _xafhxacc_ = \"x-amz-fwd-header-x-amz-checksum-crc32c\";\nconst _xafhxacc__ = \"x-amz-fwd-header-x-amz-checksum-crc64nvme\";\nconst _xafhxacs = \"x-amz-fwd-header-x-amz-checksum-sha1\";\nconst _xafhxacs_ = \"x-amz-fwd-header-x-amz-checksum-sha256\";\nconst _xafhxadm = \"x-amz-fwd-header-x-amz-delete-marker\";\nconst _xafhxae = \"x-amz-fwd-header-x-amz-expiration\";\nconst _xafhxamm = \"x-amz-fwd-header-x-amz-missing-meta\";\nconst _xafhxampc = \"x-amz-fwd-header-x-amz-mp-parts-count\";\nconst _xafhxaollh = \"x-amz-fwd-header-x-amz-object-lock-legal-hold\";\nconst _xafhxaolm = \"x-amz-fwd-header-x-amz-object-lock-mode\";\nconst _xafhxaolrud = \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\";\nconst _xafhxar = \"x-amz-fwd-header-x-amz-restore\";\nconst _xafhxarc = \"x-amz-fwd-header-x-amz-request-charged\";\nconst _xafhxars = \"x-amz-fwd-header-x-amz-replication-status\";\nconst _xafhxasc = \"x-amz-fwd-header-x-amz-storage-class\";\nconst _xafhxasse = \"x-amz-fwd-header-x-amz-server-side-encryption\";\nconst _xafhxasseakki = \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xafhxassebke = \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xafhxasseca = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\";\nconst _xafhxasseckM = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5\";\nconst _xafhxatc = \"x-amz-fwd-header-x-amz-tagging-count\";\nconst _xafhxavi = \"x-amz-fwd-header-x-amz-version-id\";\nconst _xafs = \"x-amz-fwd-status\";\nconst _xagfc = \"x-amz-grant-full-control\";\nconst _xagr = \"x-amz-grant-read\";\nconst _xagra = \"x-amz-grant-read-acp\";\nconst _xagw = \"x-amz-grant-write\";\nconst _xagwa = \"x-amz-grant-write-acp\";\nconst _xaimit = \"x-amz-if-match-initiated-time\";\nconst _xaimlmt = \"x-amz-if-match-last-modified-time\";\nconst _xaims = \"x-amz-if-match-size\";\nconst _xam = \"x-amz-meta-\";\nconst _xam_ = \"x-amz-mfa\";\nconst _xamd = \"x-amz-metadata-directive\";\nconst _xamm = \"x-amz-missing-meta\";\nconst _xamos = \"x-amz-mp-object-size\";\nconst _xamp = \"x-amz-max-parts\";\nconst _xampc = \"x-amz-mp-parts-count\";\nconst _xaoa = \"x-amz-object-attributes\";\nconst _xaollh = \"x-amz-object-lock-legal-hold\";\nconst _xaolm = \"x-amz-object-lock-mode\";\nconst _xaolrud = \"x-amz-object-lock-retain-until-date\";\nconst _xaoo = \"x-amz-object-ownership\";\nconst _xaooa = \"x-amz-optional-object-attributes\";\nconst _xaos = \"x-amz-object-size\";\nconst _xapnm = \"x-amz-part-number-marker\";\nconst _xar = \"x-amz-restore\";\nconst _xarc = \"x-amz-request-charged\";\nconst _xarop = \"x-amz-restore-output-path\";\nconst _xarp = \"x-amz-request-payer\";\nconst _xarr = \"x-amz-request-route\";\nconst _xars = \"x-amz-replication-status\";\nconst _xars_ = \"x-amz-rename-source\";\nconst _xarsim = \"x-amz-rename-source-if-match\";\nconst _xarsims = \"x-amz-rename-source-if-modified-since\";\nconst _xarsinm = \"x-amz-rename-source-if-none-match\";\nconst _xarsius = \"x-amz-rename-source-if-unmodified-since\";\nconst _xart = \"x-amz-request-token\";\nconst _xasc = \"x-amz-storage-class\";\nconst _xasca = \"x-amz-sdk-checksum-algorithm\";\nconst _xasdv = \"x-amz-skip-destination-validation\";\nconst _xasebo = \"x-amz-source-expected-bucket-owner\";\nconst _xasse = \"x-amz-server-side-encryption\";\nconst _xasseakki = \"x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xassebke = \"x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xassec = \"x-amz-server-side-encryption-context\";\nconst _xasseca = \"x-amz-server-side-encryption-customer-algorithm\";\nconst _xasseck = \"x-amz-server-side-encryption-customer-key\";\nconst _xasseckM = \"x-amz-server-side-encryption-customer-key-MD5\";\nconst _xat = \"x-amz-tagging\";\nconst _xatc = \"x-amz-tagging-count\";\nconst _xatd = \"x-amz-tagging-directive\";\nconst _xatdmos = \"x-amz-transition-default-minimum-object-size\";\nconst _xavi = \"x-amz-version-id\";\nconst _xawob = \"x-amz-write-offset-bytes\";\nconst _xawrl = \"x-amz-website-redirect-location\";\nconst _xs = \"xsi:type\";\nconst n0 = \"com.amazonaws.s3\";\nimport { TypeRegistry } from \"@smithy/core/schema\";\nimport { AccessDenied, BucketAlreadyExists, BucketAlreadyOwnedByYou, EncryptionTypeMismatch, IdempotencyParameterMismatch, InvalidObjectState, InvalidRequest, InvalidWriteOffset, NoSuchBucket, NoSuchKey, NoSuchUpload, NotFound, ObjectAlreadyInActiveTierError, ObjectNotInActiveTierError, TooManyParts, } from \"../models/errors\";\nimport { S3ServiceException } from \"../models/S3ServiceException\";\nconst _s_registry = TypeRegistry.for(_s);\nexport var S3ServiceException$ = [-3, _s, \"S3ServiceException\", 0, [], []];\n_s_registry.registerError(S3ServiceException$, S3ServiceException);\nconst n0_registry = TypeRegistry.for(n0);\nexport var AccessDenied$ = [-3, n0, _AD,\n { [_e]: _c, [_hE]: 403 },\n [],\n []\n];\nn0_registry.registerError(AccessDenied$, AccessDenied);\nexport var BucketAlreadyExists$ = [-3, n0, _BAE,\n { [_e]: _c, [_hE]: 409 },\n [],\n []\n];\nn0_registry.registerError(BucketAlreadyExists$, BucketAlreadyExists);\nexport var BucketAlreadyOwnedByYou$ = [-3, n0, _BAOBY,\n { [_e]: _c, [_hE]: 409 },\n [],\n []\n];\nn0_registry.registerError(BucketAlreadyOwnedByYou$, BucketAlreadyOwnedByYou);\nexport var EncryptionTypeMismatch$ = [-3, n0, _ETM,\n { [_e]: _c, [_hE]: 400 },\n [],\n []\n];\nn0_registry.registerError(EncryptionTypeMismatch$, EncryptionTypeMismatch);\nexport var IdempotencyParameterMismatch$ = [-3, n0, _IPM,\n { [_e]: _c, [_hE]: 400 },\n [],\n []\n];\nn0_registry.registerError(IdempotencyParameterMismatch$, IdempotencyParameterMismatch);\nexport var InvalidObjectState$ = [-3, n0, _IOS,\n { [_e]: _c, [_hE]: 403 },\n [_SC, _AT],\n [0, 0]\n];\nn0_registry.registerError(InvalidObjectState$, InvalidObjectState);\nexport var InvalidRequest$ = [-3, n0, _IR,\n { [_e]: _c, [_hE]: 400 },\n [],\n []\n];\nn0_registry.registerError(InvalidRequest$, InvalidRequest);\nexport var InvalidWriteOffset$ = [-3, n0, _IWO,\n { [_e]: _c, [_hE]: 400 },\n [],\n []\n];\nn0_registry.registerError(InvalidWriteOffset$, InvalidWriteOffset);\nexport var NoSuchBucket$ = [-3, n0, _NSB,\n { [_e]: _c, [_hE]: 404 },\n [],\n []\n];\nn0_registry.registerError(NoSuchBucket$, NoSuchBucket);\nexport var NoSuchKey$ = [-3, n0, _NSK,\n { [_e]: _c, [_hE]: 404 },\n [],\n []\n];\nn0_registry.registerError(NoSuchKey$, NoSuchKey);\nexport var NoSuchUpload$ = [-3, n0, _NSU,\n { [_e]: _c, [_hE]: 404 },\n [],\n []\n];\nn0_registry.registerError(NoSuchUpload$, NoSuchUpload);\nexport var NotFound$ = [-3, n0, _NF,\n { [_e]: _c },\n [],\n []\n];\nn0_registry.registerError(NotFound$, NotFound);\nexport var ObjectAlreadyInActiveTierError$ = [-3, n0, _OAIATE,\n { [_e]: _c, [_hE]: 403 },\n [],\n []\n];\nn0_registry.registerError(ObjectAlreadyInActiveTierError$, ObjectAlreadyInActiveTierError);\nexport var ObjectNotInActiveTierError$ = [-3, n0, _ONIATE,\n { [_e]: _c, [_hE]: 403 },\n [],\n []\n];\nn0_registry.registerError(ObjectNotInActiveTierError$, ObjectNotInActiveTierError);\nexport var TooManyParts$ = [-3, n0, _TMP,\n { [_e]: _c, [_hE]: 400 },\n [],\n []\n];\nn0_registry.registerError(TooManyParts$, TooManyParts);\nexport const errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nvar CopySourceSSECustomerKey = [0, n0, _CSSSECK, 8, 0];\nvar NonEmptyKmsKeyArnString = [0, n0, _NEKKAS, 8, 0];\nvar SessionCredentialValue = [0, n0, _SCV, 8, 0];\nvar SSECustomerKey = [0, n0, _SSECK, 8, 0];\nvar SSEKMSEncryptionContext = [0, n0, _SSEKMSEC, 8, 0];\nvar SSEKMSKeyId = [0, n0, _SSEKMSKI, 8, 0];\nvar StreamingBlob = [0, n0, _SB, { [_st]: 1 }, 42];\nexport var AbacStatus$ = [3, n0, _AS,\n 0,\n [_S],\n [0]\n];\nexport var AbortIncompleteMultipartUpload$ = [3, n0, _AIMU,\n 0,\n [_DAI],\n [1]\n];\nexport var AbortMultipartUploadOutput$ = [3, n0, _AMUO,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var AbortMultipartUploadRequest$ = [3, n0, _AMUR,\n 0,\n [_B, _K, _UI, _RP, _EBO, _IMIT],\n [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [6, { [_hH]: _xaimit }]], 3\n];\nexport var AccelerateConfiguration$ = [3, n0, _AC,\n 0,\n [_S],\n [0]\n];\nexport var AccessControlPolicy$ = [3, n0, _ACP,\n 0,\n [_G, _O],\n [[() => Grants, { [_xN]: _ACL }], () => Owner$]\n];\nexport var AccessControlTranslation$ = [3, n0, _ACT,\n 0,\n [_O],\n [0], 1\n];\nexport var AnalyticsAndOperator$ = [3, n0, _AAO,\n 0,\n [_P, _T],\n [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var AnalyticsConfiguration$ = [3, n0, _ACn,\n 0,\n [_I, _SCA, _F],\n [0, () => StorageClassAnalysis$, [() => AnalyticsFilter$, 0]], 2\n];\nexport var AnalyticsExportDestination$ = [3, n0, _AED,\n 0,\n [_SBD],\n [() => AnalyticsS3BucketDestination$], 1\n];\nexport var AnalyticsS3BucketDestination$ = [3, n0, _ASBD,\n 0,\n [_Fo, _B, _BAI, _P],\n [0, 0, 0, 0], 2\n];\nexport var BlockedEncryptionTypes$ = [3, n0, _BET,\n 0,\n [_ET],\n [[() => EncryptionTypeList, { [_xF]: 1 }]]\n];\nexport var Bucket$ = [3, n0, _B,\n 0,\n [_N, _CD, _BR, _BA],\n [0, 4, 0, 0]\n];\nexport var BucketInfo$ = [3, n0, _BI,\n 0,\n [_DR, _Ty],\n [0, 0]\n];\nexport var BucketLifecycleConfiguration$ = [3, n0, _BLC,\n 0,\n [_R],\n [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var BucketLoggingStatus$ = [3, n0, _BLS,\n 0,\n [_LE],\n [[() => LoggingEnabled$, 0]]\n];\nexport var Checksum$ = [3, n0, _C,\n 0,\n [_CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT],\n [0, 0, 0, 0, 0, 0]\n];\nexport var CommonPrefix$ = [3, n0, _CP,\n 0,\n [_P],\n [0]\n];\nexport var CompletedMultipartUpload$ = [3, n0, _CMU,\n 0,\n [_Pa],\n [[() => CompletedPartList, { [_xF]: 1, [_xN]: _Par }]]\n];\nexport var CompletedPart$ = [3, n0, _CPo,\n 0,\n [_ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _PN],\n [0, 0, 0, 0, 0, 0, 1]\n];\nexport var CompleteMultipartUploadOutput$ = [3, n0, _CMUO,\n { [_xN]: _CMUR },\n [_L, _B, _K, _E, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _SSE, _VI, _SSEKMSKI, _BKE, _RC],\n [0, 0, 0, [0, { [_hH]: _xae }], 0, 0, 0, 0, 0, 0, 0, [0, { [_hH]: _xasse }], [0, { [_hH]: _xavi }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var CompleteMultipartUploadRequest$ = [3, n0, _CMURo,\n 0,\n [_B, _K, _UI, _MU, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _MOS, _RP, _EBO, _IM, _INM, _SSECA, _SSECK, _SSECKMD],\n [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [() => CompletedMultipartUpload$, { [_hP]: 1, [_xN]: _CMUo }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [1, { [_hH]: _xamos }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }]], 3\n];\nexport var Condition$ = [3, n0, _Co,\n 0,\n [_HECRE, _KPE],\n [0, 0]\n];\nexport var ContinuationEvent$ = [3, n0, _CE,\n 0,\n [],\n []\n];\nexport var CopyObjectOutput$ = [3, n0, _COO,\n 0,\n [_COR, _E, _CSVI, _VI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC],\n [[() => CopyObjectResult$, 16], [0, { [_hH]: _xae }], [0, { [_hH]: _xacsvi }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var CopyObjectRequest$ = [3, n0, _CORo,\n 0,\n [_B, _CS, _K, _ACL_, _CC, _CA, _CDo, _CEo, _CL, _CTo, _CSIM, _CSIMS, _CSINM, _CSIUS, _Ex, _GFC, _GR, _GRACP, _GWACP, _IM, _INM, _M, _MD, _TD, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO, _ESBO],\n [[0, 1], [0, { [_hH]: _xacs__ }], [0, 1], [0, { [_hH]: _xaa }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _xaca }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _xacsim }], [4, { [_hH]: _xacsims }], [0, { [_hH]: _xacsinm }], [4, { [_hH]: _xacsius }], [4, { [_hH]: _Ex }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xamd }], [0, { [_hH]: _xatd }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH]: _xacssseck }], [0, { [_hH]: _xacssseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasebo }]], 3\n];\nexport var CopyObjectResult$ = [3, n0, _COR,\n 0,\n [_ETa, _LM, _CT, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n [0, 4, 0, 0, 0, 0, 0, 0]\n];\nexport var CopyPartResult$ = [3, n0, _CPR,\n 0,\n [_ETa, _LM, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n [0, 4, 0, 0, 0, 0, 0]\n];\nexport var CORSConfiguration$ = [3, n0, _CORSC,\n 0,\n [_CORSR],\n [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]], 1\n];\nexport var CORSRule$ = [3, n0, _CORSRu,\n 0,\n [_AM, _AO, _ID, _AH, _EH, _MAS],\n [[64 | 0, { [_xF]: 1, [_xN]: _AMl }], [64 | 0, { [_xF]: 1, [_xN]: _AOl }], 0, [64 | 0, { [_xF]: 1, [_xN]: _AHl }], [64 | 0, { [_xF]: 1, [_xN]: _EHx }], 1], 2\n];\nexport var CreateBucketConfiguration$ = [3, n0, _CBC,\n 0,\n [_LC, _L, _B, _T],\n [0, () => LocationInfo$, () => BucketInfo$, [() => TagSet, 0]]\n];\nexport var CreateBucketMetadataConfigurationRequest$ = [3, n0, _CBMCR,\n 0,\n [_B, _MC, _CMD, _CA, _EBO],\n [[0, 1], [() => MetadataConfiguration$, { [_hP]: 1, [_xN]: _MC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var CreateBucketMetadataTableConfigurationRequest$ = [3, n0, _CBMTCR,\n 0,\n [_B, _MTC, _CMD, _CA, _EBO],\n [[0, 1], [() => MetadataTableConfiguration$, { [_hP]: 1, [_xN]: _MTC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var CreateBucketOutput$ = [3, n0, _CBO,\n 0,\n [_L, _BA],\n [[0, { [_hH]: _L }], [0, { [_hH]: _xaba }]]\n];\nexport var CreateBucketRequest$ = [3, n0, _CBR,\n 0,\n [_B, _ACL_, _CBC, _GFC, _GR, _GRACP, _GW, _GWACP, _OLEFB, _OO, _BN],\n [[0, 1], [0, { [_hH]: _xaa }], [() => CreateBucketConfiguration$, { [_hP]: 1, [_xN]: _CBC }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [2, { [_hH]: _xabole }], [0, { [_hH]: _xaoo }], [0, { [_hH]: _xabn }]], 1\n];\nexport var CreateMultipartUploadOutput$ = [3, n0, _CMUOr,\n { [_xN]: _IMUR },\n [_ADb, _ARI, _B, _K, _UI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC, _CA, _CT],\n [[4, { [_hH]: _xaad }], [0, { [_hH]: _xaari }], [0, { [_xN]: _B }], 0, 0, [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xaca }], [0, { [_hH]: _xact }]]\n];\nexport var CreateMultipartUploadRequest$ = [3, n0, _CMURr,\n 0,\n [_B, _K, _ACL_, _CC, _CDo, _CEo, _CL, _CTo, _Ex, _GFC, _GR, _GRACP, _GWACP, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO, _CA, _CT],\n [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xaca }], [0, { [_hH]: _xact }]], 2\n];\nexport var CreateSessionOutput$ = [3, n0, _CSO,\n { [_xN]: _CSR },\n [_Cr, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE],\n [[() => SessionCredentials$, { [_xN]: _Cr }], [0, { [_hH]: _xasse }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }]], 1\n];\nexport var CreateSessionRequest$ = [3, n0, _CSRr,\n 0,\n [_B, _SM, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE],\n [[0, 1], [0, { [_hH]: _xacsm }], [0, { [_hH]: _xasse }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }]], 1\n];\nexport var CSVInput$ = [3, n0, _CSVIn,\n 0,\n [_FHI, _Com, _QEC, _RD, _FD, _QC, _AQRD],\n [0, 0, 0, 0, 0, 0, 2]\n];\nexport var CSVOutput$ = [3, n0, _CSVO,\n 0,\n [_QF, _QEC, _RD, _FD, _QC],\n [0, 0, 0, 0, 0]\n];\nexport var DefaultRetention$ = [3, n0, _DRe,\n 0,\n [_Mo, _D, _Y],\n [0, 1, 1]\n];\nexport var Delete$ = [3, n0, _De,\n 0,\n [_Ob, _Q],\n [[() => ObjectIdentifierList, { [_xF]: 1, [_xN]: _Obj }], 2], 1\n];\nexport var DeleteBucketAnalyticsConfigurationRequest$ = [3, n0, _DBACR,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketCorsRequest$ = [3, n0, _DBCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketEncryptionRequest$ = [3, n0, _DBER,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketIntelligentTieringConfigurationRequest$ = [3, n0, _DBITCR,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketInventoryConfigurationRequest$ = [3, n0, _DBICR,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketLifecycleRequest$ = [3, n0, _DBLR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetadataConfigurationRequest$ = [3, n0, _DBMCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetadataTableConfigurationRequest$ = [3, n0, _DBMTCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetricsConfigurationRequest$ = [3, n0, _DBMCRe,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketOwnershipControlsRequest$ = [3, n0, _DBOCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketPolicyRequest$ = [3, n0, _DBPR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketReplicationRequest$ = [3, n0, _DBRR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketRequest$ = [3, n0, _DBR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketTaggingRequest$ = [3, n0, _DBTR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketWebsiteRequest$ = [3, n0, _DBWR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeletedObject$ = [3, n0, _DO,\n 0,\n [_K, _VI, _DM, _DMVI],\n [0, 0, 2, 0]\n];\nexport var DeleteMarkerEntry$ = [3, n0, _DME,\n 0,\n [_O, _K, _VI, _IL, _LM],\n [() => Owner$, 0, 0, 2, 4]\n];\nexport var DeleteMarkerReplication$ = [3, n0, _DMR,\n 0,\n [_S],\n [0]\n];\nexport var DeleteObjectOutput$ = [3, n0, _DOO,\n 0,\n [_DM, _VI, _RC],\n [[2, { [_hH]: _xadm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xarc }]]\n];\nexport var DeleteObjectRequest$ = [3, n0, _DOR,\n 0,\n [_B, _K, _MFA, _VI, _RP, _BGR, _EBO, _IM, _IMLMT, _IMS],\n [[0, 1], [0, 1], [0, { [_hH]: _xam_ }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _IM_ }], [6, { [_hH]: _xaimlmt }], [1, { [_hH]: _xaims }]], 2\n];\nexport var DeleteObjectsOutput$ = [3, n0, _DOOe,\n { [_xN]: _DRel },\n [_Del, _RC, _Er],\n [[() => DeletedObjects, { [_xF]: 1 }], [0, { [_hH]: _xarc }], [() => Errors, { [_xF]: 1, [_xN]: _Err }]]\n];\nexport var DeleteObjectsRequest$ = [3, n0, _DORe,\n 0,\n [_B, _De, _MFA, _RP, _BGR, _EBO, _CA],\n [[0, 1], [() => Delete$, { [_hP]: 1, [_xN]: _De }], [0, { [_hH]: _xam_ }], [0, { [_hH]: _xarp }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var DeleteObjectTaggingOutput$ = [3, n0, _DOTO,\n 0,\n [_VI],\n [[0, { [_hH]: _xavi }]]\n];\nexport var DeleteObjectTaggingRequest$ = [3, n0, _DOTR,\n 0,\n [_B, _K, _VI, _EBO],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeletePublicAccessBlockRequest$ = [3, n0, _DPABR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var Destination$ = [3, n0, _Des,\n 0,\n [_B, _A, _SC, _ACT, _EC, _RT, _Me],\n [0, 0, 0, () => AccessControlTranslation$, () => EncryptionConfiguration$, () => ReplicationTime$, () => Metrics$], 1\n];\nexport var DestinationResult$ = [3, n0, _DRes,\n 0,\n [_TBT, _TBA, _TN],\n [0, 0, 0]\n];\nexport var Encryption$ = [3, n0, _En,\n 0,\n [_ET, _KMSKI, _KMSC],\n [0, [() => SSEKMSKeyId, 0], 0], 1\n];\nexport var EncryptionConfiguration$ = [3, n0, _EC,\n 0,\n [_RKKID],\n [0]\n];\nexport var EndEvent$ = [3, n0, _EE,\n 0,\n [],\n []\n];\nexport var _Error$ = [3, n0, _Err,\n 0,\n [_K, _VI, _Cod, _Mes],\n [0, 0, 0, 0]\n];\nexport var ErrorDetails$ = [3, n0, _ED,\n 0,\n [_ECr, _EM],\n [0, 0]\n];\nexport var ErrorDocument$ = [3, n0, _EDr,\n 0,\n [_K],\n [0], 1\n];\nexport var EventBridgeConfiguration$ = [3, n0, _EBC,\n 0,\n [],\n []\n];\nexport var ExistingObjectReplication$ = [3, n0, _EOR,\n 0,\n [_S],\n [0], 1\n];\nexport var FilterRule$ = [3, n0, _FR,\n 0,\n [_N, _V],\n [0, 0]\n];\nexport var GetBucketAbacOutput$ = [3, n0, _GBAO,\n 0,\n [_AS],\n [[() => AbacStatus$, 16]]\n];\nexport var GetBucketAbacRequest$ = [3, n0, _GBAR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketAccelerateConfigurationOutput$ = [3, n0, _GBACO,\n { [_xN]: _AC },\n [_S, _RC],\n [0, [0, { [_hH]: _xarc }]]\n];\nexport var GetBucketAccelerateConfigurationRequest$ = [3, n0, _GBACR,\n 0,\n [_B, _EBO, _RP],\n [[0, 1], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 1\n];\nexport var GetBucketAclOutput$ = [3, n0, _GBAOe,\n { [_xN]: _ACP },\n [_O, _G],\n [() => Owner$, [() => Grants, { [_xN]: _ACL }]]\n];\nexport var GetBucketAclRequest$ = [3, n0, _GBARe,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketAnalyticsConfigurationOutput$ = [3, n0, _GBACOe,\n 0,\n [_ACn],\n [[() => AnalyticsConfiguration$, 16]]\n];\nexport var GetBucketAnalyticsConfigurationRequest$ = [3, n0, _GBACRe,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketCorsOutput$ = [3, n0, _GBCO,\n { [_xN]: _CORSC },\n [_CORSR],\n [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]]\n];\nexport var GetBucketCorsRequest$ = [3, n0, _GBCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketEncryptionOutput$ = [3, n0, _GBEO,\n 0,\n [_SSEC],\n [[() => ServerSideEncryptionConfiguration$, 16]]\n];\nexport var GetBucketEncryptionRequest$ = [3, n0, _GBER,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketIntelligentTieringConfigurationOutput$ = [3, n0, _GBITCO,\n 0,\n [_ITC],\n [[() => IntelligentTieringConfiguration$, 16]]\n];\nexport var GetBucketIntelligentTieringConfigurationRequest$ = [3, n0, _GBITCR,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketInventoryConfigurationOutput$ = [3, n0, _GBICO,\n 0,\n [_IC],\n [[() => InventoryConfiguration$, 16]]\n];\nexport var GetBucketInventoryConfigurationRequest$ = [3, n0, _GBICR,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketLifecycleConfigurationOutput$ = [3, n0, _GBLCO,\n { [_xN]: _LCi },\n [_R, _TDMOS],\n [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Ru }], [0, { [_hH]: _xatdmos }]]\n];\nexport var GetBucketLifecycleConfigurationRequest$ = [3, n0, _GBLCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketLocationOutput$ = [3, n0, _GBLO,\n { [_xN]: _LC },\n [_LC],\n [0]\n];\nexport var GetBucketLocationRequest$ = [3, n0, _GBLR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketLoggingOutput$ = [3, n0, _GBLOe,\n { [_xN]: _BLS },\n [_LE],\n [[() => LoggingEnabled$, 0]]\n];\nexport var GetBucketLoggingRequest$ = [3, n0, _GBLRe,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataConfigurationOutput$ = [3, n0, _GBMCO,\n 0,\n [_GBMCR],\n [[() => GetBucketMetadataConfigurationResult$, 16]]\n];\nexport var GetBucketMetadataConfigurationRequest$ = [3, n0, _GBMCRe,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataConfigurationResult$ = [3, n0, _GBMCR,\n 0,\n [_MCR],\n [() => MetadataConfigurationResult$], 1\n];\nexport var GetBucketMetadataTableConfigurationOutput$ = [3, n0, _GBMTCO,\n 0,\n [_GBMTCR],\n [[() => GetBucketMetadataTableConfigurationResult$, 16]]\n];\nexport var GetBucketMetadataTableConfigurationRequest$ = [3, n0, _GBMTCRe,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataTableConfigurationResult$ = [3, n0, _GBMTCR,\n 0,\n [_MTCR, _S, _Err],\n [() => MetadataTableConfigurationResult$, 0, () => ErrorDetails$], 2\n];\nexport var GetBucketMetricsConfigurationOutput$ = [3, n0, _GBMCOe,\n 0,\n [_MCe],\n [[() => MetricsConfiguration$, 16]]\n];\nexport var GetBucketMetricsConfigurationRequest$ = [3, n0, _GBMCRet,\n 0,\n [_B, _I, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketNotificationConfigurationRequest$ = [3, n0, _GBNCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketOwnershipControlsOutput$ = [3, n0, _GBOCO,\n 0,\n [_OC],\n [[() => OwnershipControls$, 16]]\n];\nexport var GetBucketOwnershipControlsRequest$ = [3, n0, _GBOCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketPolicyOutput$ = [3, n0, _GBPO,\n 0,\n [_Po],\n [[0, 16]]\n];\nexport var GetBucketPolicyRequest$ = [3, n0, _GBPR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketPolicyStatusOutput$ = [3, n0, _GBPSO,\n 0,\n [_PS],\n [[() => PolicyStatus$, 16]]\n];\nexport var GetBucketPolicyStatusRequest$ = [3, n0, _GBPSR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketReplicationOutput$ = [3, n0, _GBRO,\n 0,\n [_RCe],\n [[() => ReplicationConfiguration$, 16]]\n];\nexport var GetBucketReplicationRequest$ = [3, n0, _GBRR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketRequestPaymentOutput$ = [3, n0, _GBRPO,\n { [_xN]: _RPC },\n [_Pay],\n [0]\n];\nexport var GetBucketRequestPaymentRequest$ = [3, n0, _GBRPR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketTaggingOutput$ = [3, n0, _GBTO,\n { [_xN]: _Tag },\n [_TS],\n [[() => TagSet, 0]], 1\n];\nexport var GetBucketTaggingRequest$ = [3, n0, _GBTR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketVersioningOutput$ = [3, n0, _GBVO,\n { [_xN]: _VC },\n [_S, _MFAD],\n [0, [0, { [_xN]: _MDf }]]\n];\nexport var GetBucketVersioningRequest$ = [3, n0, _GBVR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketWebsiteOutput$ = [3, n0, _GBWO,\n { [_xN]: _WC },\n [_RART, _IDn, _EDr, _RR],\n [() => RedirectAllRequestsTo$, () => IndexDocument$, () => ErrorDocument$, [() => RoutingRules, 0]]\n];\nexport var GetBucketWebsiteRequest$ = [3, n0, _GBWR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetObjectAclOutput$ = [3, n0, _GOAO,\n { [_xN]: _ACP },\n [_O, _G, _RC],\n [() => Owner$, [() => Grants, { [_xN]: _ACL }], [0, { [_hH]: _xarc }]]\n];\nexport var GetObjectAclRequest$ = [3, n0, _GOAR,\n 0,\n [_B, _K, _VI, _RP, _EBO],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectAttributesOutput$ = [3, n0, _GOAOe,\n { [_xN]: _GOARe },\n [_DM, _LM, _VI, _RC, _ETa, _C, _OP, _SC, _OS],\n [[2, { [_hH]: _xadm }], [4, { [_hH]: _LM_ }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xarc }], 0, () => Checksum$, [() => GetObjectAttributesParts$, 0], 0, 1]\n];\nexport var GetObjectAttributesParts$ = [3, n0, _GOAP,\n 0,\n [_TPC, _PNM, _NPNM, _MP, _IT, _Pa],\n [[1, { [_xN]: _PC }], 0, 0, 1, 2, [() => PartsList, { [_xF]: 1, [_xN]: _Par }]]\n];\nexport var GetObjectAttributesRequest$ = [3, n0, _GOARet,\n 0,\n [_B, _K, _OA, _VI, _MP, _PNM, _SSECA, _SSECK, _SSECKMD, _RP, _EBO],\n [[0, 1], [0, 1], [64 | 0, { [_hH]: _xaoa }], [0, { [_hQ]: _vI }], [1, { [_hH]: _xamp }], [0, { [_hH]: _xapnm }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var GetObjectLegalHoldOutput$ = [3, n0, _GOLHO,\n 0,\n [_LH],\n [[() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }]]\n];\nexport var GetObjectLegalHoldRequest$ = [3, n0, _GOLHR,\n 0,\n [_B, _K, _VI, _RP, _EBO],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectLockConfigurationOutput$ = [3, n0, _GOLCO,\n 0,\n [_OLC],\n [[() => ObjectLockConfiguration$, 16]]\n];\nexport var GetObjectLockConfigurationRequest$ = [3, n0, _GOLCR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetObjectOutput$ = [3, n0, _GOO,\n 0,\n [_Bo, _DM, _AR, _E, _Re, _LM, _CLo, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _MM, _VI, _CC, _CDo, _CEo, _CL, _CR, _CTo, _Ex, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC, _RS, _PC, _TC, _OLM, _OLRUD, _OLLHS],\n [[() => StreamingBlob, 16], [2, { [_hH]: _xadm }], [0, { [_hH]: _ar }], [0, { [_hH]: _xae }], [0, { [_hH]: _xar }], [4, { [_hH]: _LM_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [1, { [_hH]: _xamm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CR_ }], [0, { [_hH]: _CT_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _ES }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xars }], [1, { [_hH]: _xampc }], [1, { [_hH]: _xatc }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }]]\n];\nexport var GetObjectRequest$ = [3, n0, _GOR,\n 0,\n [_B, _K, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh],\n [[0, 1], [0, 1], [0, { [_hH]: _IM_ }], [4, { [_hH]: _IMS_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _Ra }], [0, { [_hQ]: _rcc }], [0, { [_hQ]: _rcd }], [0, { [_hQ]: _rce }], [0, { [_hQ]: _rcl }], [0, { [_hQ]: _rct }], [6, { [_hQ]: _re }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [1, { [_hQ]: _pN }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xacm }]], 2\n];\nexport var GetObjectRetentionOutput$ = [3, n0, _GORO,\n 0,\n [_Ret],\n [[() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }]]\n];\nexport var GetObjectRetentionRequest$ = [3, n0, _GORR,\n 0,\n [_B, _K, _VI, _RP, _EBO],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectTaggingOutput$ = [3, n0, _GOTO,\n { [_xN]: _Tag },\n [_TS, _VI],\n [[() => TagSet, 0], [0, { [_hH]: _xavi }]], 1\n];\nexport var GetObjectTaggingRequest$ = [3, n0, _GOTR,\n 0,\n [_B, _K, _VI, _EBO, _RP],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 2\n];\nexport var GetObjectTorrentOutput$ = [3, n0, _GOTOe,\n 0,\n [_Bo, _RC],\n [[() => StreamingBlob, 16], [0, { [_hH]: _xarc }]]\n];\nexport var GetObjectTorrentRequest$ = [3, n0, _GOTRe,\n 0,\n [_B, _K, _RP, _EBO],\n [[0, 1], [0, 1], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetPublicAccessBlockOutput$ = [3, n0, _GPABO,\n 0,\n [_PABC],\n [[() => PublicAccessBlockConfiguration$, 16]]\n];\nexport var GetPublicAccessBlockRequest$ = [3, n0, _GPABR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GlacierJobParameters$ = [3, n0, _GJP,\n 0,\n [_Ti],\n [0], 1\n];\nexport var Grant$ = [3, n0, _Gr,\n 0,\n [_Gra, _Pe],\n [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0]\n];\nexport var Grantee$ = [3, n0, _Gra,\n 0,\n [_Ty, _DN, _EA, _ID, _URI],\n [[0, { [_xA]: 1, [_xN]: _xs }], 0, 0, 0, 0], 1\n];\nexport var HeadBucketOutput$ = [3, n0, _HBO,\n 0,\n [_BA, _BLT, _BLN, _BR, _APA],\n [[0, { [_hH]: _xaba }], [0, { [_hH]: _xablt }], [0, { [_hH]: _xabln }], [0, { [_hH]: _xabr }], [2, { [_hH]: _xaapa }]]\n];\nexport var HeadBucketRequest$ = [3, n0, _HBR,\n 0,\n [_B, _EBO],\n [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var HeadObjectOutput$ = [3, n0, _HOO,\n 0,\n [_DM, _AR, _E, _Re, _ASr, _LM, _CLo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _ETa, _MM, _VI, _CC, _CDo, _CEo, _CL, _CTo, _CR, _Ex, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC, _RS, _PC, _TC, _OLM, _OLRUD, _OLLHS],\n [[2, { [_hH]: _xadm }], [0, { [_hH]: _ar }], [0, { [_hH]: _xae }], [0, { [_hH]: _xar }], [0, { [_hH]: _xaas }], [4, { [_hH]: _LM_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [0, { [_hH]: _ETa }], [1, { [_hH]: _xamm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _CR_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _ES }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xars }], [1, { [_hH]: _xampc }], [1, { [_hH]: _xatc }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }]]\n];\nexport var HeadObjectRequest$ = [3, n0, _HOR,\n 0,\n [_B, _K, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh],\n [[0, 1], [0, 1], [0, { [_hH]: _IM_ }], [4, { [_hH]: _IMS_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _Ra }], [0, { [_hQ]: _rcc }], [0, { [_hQ]: _rcd }], [0, { [_hQ]: _rce }], [0, { [_hQ]: _rcl }], [0, { [_hQ]: _rct }], [6, { [_hQ]: _re }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [1, { [_hQ]: _pN }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xacm }]], 2\n];\nexport var IndexDocument$ = [3, n0, _IDn,\n 0,\n [_Su],\n [0], 1\n];\nexport var Initiator$ = [3, n0, _In,\n 0,\n [_ID, _DN],\n [0, 0]\n];\nexport var InputSerialization$ = [3, n0, _IS,\n 0,\n [_CSV, _CTom, _JSON, _Parq],\n [() => CSVInput$, 0, () => JSONInput$, () => ParquetInput$]\n];\nexport var IntelligentTieringAndOperator$ = [3, n0, _ITAO,\n 0,\n [_P, _T],\n [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var IntelligentTieringConfiguration$ = [3, n0, _ITC,\n 0,\n [_I, _S, _Tie, _F],\n [0, 0, [() => TieringList, { [_xF]: 1, [_xN]: _Tier }], [() => IntelligentTieringFilter$, 0]], 3\n];\nexport var IntelligentTieringFilter$ = [3, n0, _ITF,\n 0,\n [_P, _Ta, _An],\n [0, () => Tag$, [() => IntelligentTieringAndOperator$, 0]]\n];\nexport var InventoryConfiguration$ = [3, n0, _IC,\n 0,\n [_Des, _IE, _I, _IOV, _Sc, _F, _OF],\n [[() => InventoryDestination$, 0], 2, 0, 0, () => InventorySchedule$, () => InventoryFilter$, [() => InventoryOptionalFields, 0]], 5\n];\nexport var InventoryDestination$ = [3, n0, _IDnv,\n 0,\n [_SBD],\n [[() => InventoryS3BucketDestination$, 0]], 1\n];\nexport var InventoryEncryption$ = [3, n0, _IEn,\n 0,\n [_SSES, _SSEKMS],\n [[() => SSES3$, { [_xN]: _SS }], [() => SSEKMS$, { [_xN]: _SK }]]\n];\nexport var InventoryFilter$ = [3, n0, _IF,\n 0,\n [_P],\n [0], 1\n];\nexport var InventoryS3BucketDestination$ = [3, n0, _ISBD,\n 0,\n [_B, _Fo, _AI, _P, _En],\n [0, 0, 0, 0, [() => InventoryEncryption$, 0]], 2\n];\nexport var InventorySchedule$ = [3, n0, _ISn,\n 0,\n [_Fr],\n [0], 1\n];\nexport var InventoryTableConfiguration$ = [3, n0, _ITCn,\n 0,\n [_CSo, _EC],\n [0, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var InventoryTableConfigurationResult$ = [3, n0, _ITCR,\n 0,\n [_CSo, _TSa, _Err, _TNa, _TA],\n [0, 0, () => ErrorDetails$, 0, 0], 1\n];\nexport var InventoryTableConfigurationUpdates$ = [3, n0, _ITCU,\n 0,\n [_CSo, _EC],\n [0, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var JournalTableConfiguration$ = [3, n0, _JTC,\n 0,\n [_REe, _EC],\n [() => RecordExpiration$, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var JournalTableConfigurationResult$ = [3, n0, _JTCR,\n 0,\n [_TSa, _TNa, _REe, _Err, _TA],\n [0, 0, () => RecordExpiration$, () => ErrorDetails$, 0], 3\n];\nexport var JournalTableConfigurationUpdates$ = [3, n0, _JTCU,\n 0,\n [_REe],\n [() => RecordExpiration$], 1\n];\nexport var JSONInput$ = [3, n0, _JSONI,\n 0,\n [_Ty],\n [0]\n];\nexport var JSONOutput$ = [3, n0, _JSONO,\n 0,\n [_RD],\n [0]\n];\nexport var LambdaFunctionConfiguration$ = [3, n0, _LFC,\n 0,\n [_LFA, _Ev, _I, _F],\n [[0, { [_xN]: _CF }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var LifecycleExpiration$ = [3, n0, _LEi,\n 0,\n [_Da, _D, _EODM],\n [5, 1, 2]\n];\nexport var LifecycleRule$ = [3, n0, _LR,\n 0,\n [_S, _E, _ID, _P, _F, _Tr, _NVT, _NVE, _AIMU],\n [0, () => LifecycleExpiration$, 0, 0, [() => LifecycleRuleFilter$, 0], [() => TransitionList, { [_xF]: 1, [_xN]: _Tra }], [() => NoncurrentVersionTransitionList, { [_xF]: 1, [_xN]: _NVTo }], () => NoncurrentVersionExpiration$, () => AbortIncompleteMultipartUpload$], 1\n];\nexport var LifecycleRuleAndOperator$ = [3, n0, _LRAO,\n 0,\n [_P, _T, _OSGT, _OSLT],\n [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }], 1, 1]\n];\nexport var LifecycleRuleFilter$ = [3, n0, _LRF,\n 0,\n [_P, _Ta, _OSGT, _OSLT, _An],\n [0, () => Tag$, 1, 1, [() => LifecycleRuleAndOperator$, 0]]\n];\nexport var ListBucketAnalyticsConfigurationsOutput$ = [3, n0, _LBACO,\n { [_xN]: _LBACR },\n [_IT, _CTon, _NCT, _ACLn],\n [2, 0, 0, [() => AnalyticsConfigurationList, { [_xF]: 1, [_xN]: _ACn }]]\n];\nexport var ListBucketAnalyticsConfigurationsRequest$ = [3, n0, _LBACRi,\n 0,\n [_B, _CTon, _EBO],\n [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketIntelligentTieringConfigurationsOutput$ = [3, n0, _LBITCO,\n 0,\n [_IT, _CTon, _NCT, _ITCL],\n [2, 0, 0, [() => IntelligentTieringConfigurationList, { [_xF]: 1, [_xN]: _ITC }]]\n];\nexport var ListBucketIntelligentTieringConfigurationsRequest$ = [3, n0, _LBITCR,\n 0,\n [_B, _CTon, _EBO],\n [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketInventoryConfigurationsOutput$ = [3, n0, _LBICO,\n { [_xN]: _LICR },\n [_CTon, _ICL, _IT, _NCT],\n [0, [() => InventoryConfigurationList, { [_xF]: 1, [_xN]: _IC }], 2, 0]\n];\nexport var ListBucketInventoryConfigurationsRequest$ = [3, n0, _LBICR,\n 0,\n [_B, _CTon, _EBO],\n [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketMetricsConfigurationsOutput$ = [3, n0, _LBMCO,\n { [_xN]: _LMCR },\n [_IT, _CTon, _NCT, _MCL],\n [2, 0, 0, [() => MetricsConfigurationList, { [_xF]: 1, [_xN]: _MCe }]]\n];\nexport var ListBucketMetricsConfigurationsRequest$ = [3, n0, _LBMCR,\n 0,\n [_B, _CTon, _EBO],\n [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketsOutput$ = [3, n0, _LBO,\n { [_xN]: _LAMBR },\n [_Bu, _O, _CTon, _P],\n [[() => Buckets, 0], () => Owner$, 0, 0]\n];\nexport var ListBucketsRequest$ = [3, n0, _LBR,\n 0,\n [_MB, _CTon, _P, _BR],\n [[1, { [_hQ]: _mb }], [0, { [_hQ]: _ct }], [0, { [_hQ]: _p }], [0, { [_hQ]: _br }]]\n];\nexport var ListDirectoryBucketsOutput$ = [3, n0, _LDBO,\n { [_xN]: _LAMDBR },\n [_Bu, _CTon],\n [[() => Buckets, 0], 0]\n];\nexport var ListDirectoryBucketsRequest$ = [3, n0, _LDBR,\n 0,\n [_CTon, _MDB],\n [[0, { [_hQ]: _ct }], [1, { [_hQ]: _mdb }]]\n];\nexport var ListMultipartUploadsOutput$ = [3, n0, _LMUO,\n { [_xN]: _LMUR },\n [_B, _KM, _UIM, _NKM, _P, _Deli, _NUIM, _MUa, _IT, _U, _CPom, _ETn, _RC],\n [0, 0, 0, 0, 0, 0, 0, 1, 2, [() => MultipartUploadList, { [_xF]: 1, [_xN]: _Up }], [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListMultipartUploadsRequest$ = [3, n0, _LMURi,\n 0,\n [_B, _Deli, _ETn, _KM, _MUa, _P, _UIM, _EBO, _RP],\n [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _km }], [1, { [_hQ]: _mu }], [0, { [_hQ]: _p }], [0, { [_hQ]: _uim }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 1\n];\nexport var ListObjectsOutput$ = [3, n0, _LOO,\n { [_xN]: _LBRi },\n [_IT, _Ma, _NM, _Con, _N, _P, _Deli, _MK, _CPom, _ETn, _RC],\n [2, 0, 0, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectsRequest$ = [3, n0, _LOR,\n 0,\n [_B, _Deli, _ETn, _Ma, _MK, _P, _RP, _EBO, _OOA],\n [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _m }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListObjectsV2Output$ = [3, n0, _LOVO,\n { [_xN]: _LBRi },\n [_IT, _Con, _N, _P, _Deli, _MK, _CPom, _ETn, _KC, _CTon, _NCT, _SA, _RC],\n [2, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, 1, 0, 0, 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectsV2Request$ = [3, n0, _LOVR,\n 0,\n [_B, _Deli, _ETn, _MK, _P, _CTon, _FO, _SA, _RP, _EBO, _OOA],\n [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hQ]: _ct }], [2, { [_hQ]: _fo }], [0, { [_hQ]: _sa }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListObjectVersionsOutput$ = [3, n0, _LOVOi,\n { [_xN]: _LVR },\n [_IT, _KM, _VIM, _NKM, _NVIM, _Ve, _DMe, _N, _P, _Deli, _MK, _CPom, _ETn, _RC],\n [2, 0, 0, 0, 0, [() => ObjectVersionList, { [_xF]: 1, [_xN]: _Ver }], [() => DeleteMarkers, { [_xF]: 1, [_xN]: _DM }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectVersionsRequest$ = [3, n0, _LOVRi,\n 0,\n [_B, _Deli, _ETn, _KM, _MK, _P, _VIM, _EBO, _RP, _OOA],\n [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _km }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hQ]: _vim }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListPartsOutput$ = [3, n0, _LPO,\n { [_xN]: _LPR },\n [_ADb, _ARI, _B, _K, _UI, _PNM, _NPNM, _MP, _IT, _Pa, _In, _O, _SC, _RC, _CA, _CT],\n [[4, { [_hH]: _xaad }], [0, { [_hH]: _xaari }], 0, 0, 0, 0, 0, 1, 2, [() => Parts, { [_xF]: 1, [_xN]: _Par }], () => Initiator$, () => Owner$, 0, [0, { [_hH]: _xarc }], 0, 0]\n];\nexport var ListPartsRequest$ = [3, n0, _LPRi,\n 0,\n [_B, _K, _UI, _MP, _PNM, _RP, _EBO, _SSECA, _SSECK, _SSECKMD],\n [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [1, { [_hQ]: _mp }], [0, { [_hQ]: _pnm }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }]], 3\n];\nexport var LocationInfo$ = [3, n0, _LI,\n 0,\n [_Ty, _N],\n [0, 0]\n];\nexport var LoggingEnabled$ = [3, n0, _LE,\n 0,\n [_TB, _TP, _TG, _TOKF],\n [0, 0, [() => TargetGrants, 0], [() => TargetObjectKeyFormat$, 0]], 2\n];\nexport var MetadataConfiguration$ = [3, n0, _MC,\n 0,\n [_JTC, _ITCn],\n [() => JournalTableConfiguration$, () => InventoryTableConfiguration$], 1\n];\nexport var MetadataConfigurationResult$ = [3, n0, _MCR,\n 0,\n [_DRes, _JTCR, _ITCR],\n [() => DestinationResult$, () => JournalTableConfigurationResult$, () => InventoryTableConfigurationResult$], 1\n];\nexport var MetadataEntry$ = [3, n0, _ME,\n 0,\n [_N, _V],\n [0, 0]\n];\nexport var MetadataTableConfiguration$ = [3, n0, _MTC,\n 0,\n [_STD],\n [() => S3TablesDestination$], 1\n];\nexport var MetadataTableConfigurationResult$ = [3, n0, _MTCR,\n 0,\n [_STDR],\n [() => S3TablesDestinationResult$], 1\n];\nexport var MetadataTableEncryptionConfiguration$ = [3, n0, _MTEC,\n 0,\n [_SAs, _KKA],\n [0, 0], 1\n];\nexport var Metrics$ = [3, n0, _Me,\n 0,\n [_S, _ETv],\n [0, () => ReplicationTimeValue$], 1\n];\nexport var MetricsAndOperator$ = [3, n0, _MAO,\n 0,\n [_P, _T, _APAc],\n [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }], 0]\n];\nexport var MetricsConfiguration$ = [3, n0, _MCe,\n 0,\n [_I, _F],\n [0, [() => MetricsFilter$, 0]], 1\n];\nexport var MultipartUpload$ = [3, n0, _MU,\n 0,\n [_UI, _K, _Ini, _SC, _O, _In, _CA, _CT],\n [0, 0, 4, 0, () => Owner$, () => Initiator$, 0, 0]\n];\nexport var NoncurrentVersionExpiration$ = [3, n0, _NVE,\n 0,\n [_ND, _NNV],\n [1, 1]\n];\nexport var NoncurrentVersionTransition$ = [3, n0, _NVTo,\n 0,\n [_ND, _SC, _NNV],\n [1, 0, 1]\n];\nexport var NotificationConfiguration$ = [3, n0, _NC,\n 0,\n [_TCo, _QCu, _LFCa, _EBC],\n [[() => TopicConfigurationList, { [_xF]: 1, [_xN]: _TCop }], [() => QueueConfigurationList, { [_xF]: 1, [_xN]: _QCue }], [() => LambdaFunctionConfigurationList, { [_xF]: 1, [_xN]: _CFC }], () => EventBridgeConfiguration$]\n];\nexport var NotificationConfigurationFilter$ = [3, n0, _NCF,\n 0,\n [_K],\n [[() => S3KeyFilter$, { [_xN]: _SKe }]]\n];\nexport var _Object$ = [3, n0, _Obj,\n 0,\n [_K, _LM, _ETa, _CA, _CT, _Si, _SC, _O, _RSe],\n [0, 4, 0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, () => Owner$, () => RestoreStatus$]\n];\nexport var ObjectIdentifier$ = [3, n0, _OI,\n 0,\n [_K, _VI, _ETa, _LMT, _Si],\n [0, 0, 0, 6, 1], 1\n];\nexport var ObjectLockConfiguration$ = [3, n0, _OLC,\n 0,\n [_OLE, _Ru],\n [0, () => ObjectLockRule$]\n];\nexport var ObjectLockLegalHold$ = [3, n0, _OLLH,\n 0,\n [_S],\n [0]\n];\nexport var ObjectLockRetention$ = [3, n0, _OLR,\n 0,\n [_Mo, _RUD],\n [0, 5]\n];\nexport var ObjectLockRule$ = [3, n0, _OLRb,\n 0,\n [_DRe],\n [() => DefaultRetention$]\n];\nexport var ObjectPart$ = [3, n0, _OPb,\n 0,\n [_PN, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n [1, 1, 0, 0, 0, 0, 0]\n];\nexport var ObjectVersion$ = [3, n0, _OV,\n 0,\n [_ETa, _CA, _CT, _Si, _SC, _K, _VI, _IL, _LM, _O, _RSe],\n [0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, 0, 0, 2, 4, () => Owner$, () => RestoreStatus$]\n];\nexport var OutputLocation$ = [3, n0, _OL,\n 0,\n [_S_],\n [[() => S3Location$, 0]]\n];\nexport var OutputSerialization$ = [3, n0, _OSu,\n 0,\n [_CSV, _JSON],\n [() => CSVOutput$, () => JSONOutput$]\n];\nexport var Owner$ = [3, n0, _O,\n 0,\n [_DN, _ID],\n [0, 0]\n];\nexport var OwnershipControls$ = [3, n0, _OC,\n 0,\n [_R],\n [[() => OwnershipControlsRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var OwnershipControlsRule$ = [3, n0, _OCR,\n 0,\n [_OO],\n [0], 1\n];\nexport var ParquetInput$ = [3, n0, _PI,\n 0,\n [],\n []\n];\nexport var Part$ = [3, n0, _Par,\n 0,\n [_PN, _LM, _ETa, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n [1, 4, 0, 1, 0, 0, 0, 0, 0]\n];\nexport var PartitionedPrefix$ = [3, n0, _PP,\n { [_xN]: _PP },\n [_PDS],\n [0]\n];\nexport var PolicyStatus$ = [3, n0, _PS,\n 0,\n [_IP],\n [[2, { [_xN]: _IP }]]\n];\nexport var Progress$ = [3, n0, _Pr,\n 0,\n [_BS, _BP, _BRy],\n [1, 1, 1]\n];\nexport var ProgressEvent$ = [3, n0, _PE,\n 0,\n [_Det],\n [[() => Progress$, { [_eP]: 1 }]]\n];\nexport var PublicAccessBlockConfiguration$ = [3, n0, _PABC,\n 0,\n [_BPA, _IPA, _BPP, _RPB],\n [[2, { [_xN]: _BPA }], [2, { [_xN]: _IPA }], [2, { [_xN]: _BPP }], [2, { [_xN]: _RPB }]]\n];\nexport var PutBucketAbacRequest$ = [3, n0, _PBAR,\n 0,\n [_B, _AS, _CMD, _CA, _EBO],\n [[0, 1], [() => AbacStatus$, { [_hP]: 1, [_xN]: _AS }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketAccelerateConfigurationRequest$ = [3, n0, _PBACR,\n 0,\n [_B, _AC, _EBO, _CA],\n [[0, 1], [() => AccelerateConfiguration$, { [_hP]: 1, [_xN]: _AC }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var PutBucketAclRequest$ = [3, n0, _PBARu,\n 0,\n [_B, _ACL_, _ACP, _CMD, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _EBO],\n [[0, 1], [0, { [_hH]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var PutBucketAnalyticsConfigurationRequest$ = [3, n0, _PBACRu,\n 0,\n [_B, _I, _ACn, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [() => AnalyticsConfiguration$, { [_hP]: 1, [_xN]: _ACn }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketCorsRequest$ = [3, n0, _PBCR,\n 0,\n [_B, _CORSC, _CMD, _CA, _EBO],\n [[0, 1], [() => CORSConfiguration$, { [_hP]: 1, [_xN]: _CORSC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketEncryptionRequest$ = [3, n0, _PBER,\n 0,\n [_B, _SSEC, _CMD, _CA, _EBO],\n [[0, 1], [() => ServerSideEncryptionConfiguration$, { [_hP]: 1, [_xN]: _SSEC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketIntelligentTieringConfigurationRequest$ = [3, n0, _PBITCR,\n 0,\n [_B, _I, _ITC, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [() => IntelligentTieringConfiguration$, { [_hP]: 1, [_xN]: _ITC }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketInventoryConfigurationRequest$ = [3, n0, _PBICR,\n 0,\n [_B, _I, _IC, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [() => InventoryConfiguration$, { [_hP]: 1, [_xN]: _IC }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketLifecycleConfigurationOutput$ = [3, n0, _PBLCO,\n 0,\n [_TDMOS],\n [[0, { [_hH]: _xatdmos }]]\n];\nexport var PutBucketLifecycleConfigurationRequest$ = [3, n0, _PBLCR,\n 0,\n [_B, _CA, _LCi, _EBO, _TDMOS],\n [[0, 1], [0, { [_hH]: _xasca }], [() => BucketLifecycleConfiguration$, { [_hP]: 1, [_xN]: _LCi }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xatdmos }]], 1\n];\nexport var PutBucketLoggingRequest$ = [3, n0, _PBLR,\n 0,\n [_B, _BLS, _CMD, _CA, _EBO],\n [[0, 1], [() => BucketLoggingStatus$, { [_hP]: 1, [_xN]: _BLS }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketMetricsConfigurationRequest$ = [3, n0, _PBMCR,\n 0,\n [_B, _I, _MCe, _EBO],\n [[0, 1], [0, { [_hQ]: _i }], [() => MetricsConfiguration$, { [_hP]: 1, [_xN]: _MCe }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketNotificationConfigurationRequest$ = [3, n0, _PBNCR,\n 0,\n [_B, _NC, _EBO, _SDV],\n [[0, 1], [() => NotificationConfiguration$, { [_hP]: 1, [_xN]: _NC }], [0, { [_hH]: _xaebo }], [2, { [_hH]: _xasdv }]], 2\n];\nexport var PutBucketOwnershipControlsRequest$ = [3, n0, _PBOCR,\n 0,\n [_B, _OC, _CMD, _EBO, _CA],\n [[0, 1], [() => OwnershipControls$, { [_hP]: 1, [_xN]: _OC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var PutBucketPolicyRequest$ = [3, n0, _PBPR,\n 0,\n [_B, _Po, _CMD, _CA, _CRSBA, _EBO],\n [[0, 1], [0, 16], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [2, { [_hH]: _xacrsba }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketReplicationRequest$ = [3, n0, _PBRR,\n 0,\n [_B, _RCe, _CMD, _CA, _To, _EBO],\n [[0, 1], [() => ReplicationConfiguration$, { [_hP]: 1, [_xN]: _RCe }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xabolt }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketRequestPaymentRequest$ = [3, n0, _PBRPR,\n 0,\n [_B, _RPC, _CMD, _CA, _EBO],\n [[0, 1], [() => RequestPaymentConfiguration$, { [_hP]: 1, [_xN]: _RPC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketTaggingRequest$ = [3, n0, _PBTR,\n 0,\n [_B, _Tag, _CMD, _CA, _EBO],\n [[0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketVersioningRequest$ = [3, n0, _PBVR,\n 0,\n [_B, _VC, _CMD, _CA, _MFA, _EBO],\n [[0, 1], [() => VersioningConfiguration$, { [_hP]: 1, [_xN]: _VC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xam_ }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketWebsiteRequest$ = [3, n0, _PBWR,\n 0,\n [_B, _WC, _CMD, _CA, _EBO],\n [[0, 1], [() => WebsiteConfiguration$, { [_hP]: 1, [_xN]: _WC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectAclOutput$ = [3, n0, _POAO,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectAclRequest$ = [3, n0, _POAR,\n 0,\n [_B, _K, _ACL_, _ACP, _CMD, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _RP, _VI, _EBO],\n [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectLegalHoldOutput$ = [3, n0, _POLHO,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectLegalHoldRequest$ = [3, n0, _POLHR,\n 0,\n [_B, _K, _LH, _RP, _VI, _CMD, _CA, _EBO],\n [[0, 1], [0, 1], [() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectLockConfigurationOutput$ = [3, n0, _POLCO,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectLockConfigurationRequest$ = [3, n0, _POLCR,\n 0,\n [_B, _OLC, _RP, _To, _CMD, _CA, _EBO],\n [[0, 1], [() => ObjectLockConfiguration$, { [_hP]: 1, [_xN]: _OLC }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xabolt }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var PutObjectOutput$ = [3, n0, _POO,\n 0,\n [_E, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _SSE, _VI, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _Si, _RC],\n [[0, { [_hH]: _xae }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [1, { [_hH]: _xaos }], [0, { [_hH]: _xarc }]]\n];\nexport var PutObjectRequest$ = [3, n0, _POR,\n 0,\n [_B, _K, _ACL_, _Bo, _CC, _CDo, _CEo, _CL, _CLo, _CMD, _CTo, _CA, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _Ex, _IM, _INM, _GFC, _GR, _GRACP, _GWACP, _WOB, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO],\n [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [() => StreamingBlob, 16], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _CM }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [1, { [_hH]: _xawob }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectRetentionOutput$ = [3, n0, _PORO,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectRetentionRequest$ = [3, n0, _PORR,\n 0,\n [_B, _K, _Ret, _RP, _VI, _BGR, _CMD, _CA, _EBO],\n [[0, 1], [0, 1], [() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectTaggingOutput$ = [3, n0, _POTO,\n 0,\n [_VI],\n [[0, { [_hH]: _xavi }]]\n];\nexport var PutObjectTaggingRequest$ = [3, n0, _POTR,\n 0,\n [_B, _K, _Tag, _VI, _CMD, _CA, _EBO, _RP],\n [[0, 1], [0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hQ]: _vI }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 3\n];\nexport var PutPublicAccessBlockRequest$ = [3, n0, _PPABR,\n 0,\n [_B, _PABC, _CMD, _CA, _EBO],\n [[0, 1], [() => PublicAccessBlockConfiguration$, { [_hP]: 1, [_xN]: _PABC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var QueueConfiguration$ = [3, n0, _QCue,\n 0,\n [_QA, _Ev, _I, _F],\n [[0, { [_xN]: _Qu }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var RecordExpiration$ = [3, n0, _REe,\n 0,\n [_E, _D],\n [0, 1], 1\n];\nexport var RecordsEvent$ = [3, n0, _REec,\n 0,\n [_Payl],\n [[21, { [_eP]: 1 }]]\n];\nexport var Redirect$ = [3, n0, _Red,\n 0,\n [_HN, _HRC, _Pro, _RKPW, _RKW],\n [0, 0, 0, 0, 0]\n];\nexport var RedirectAllRequestsTo$ = [3, n0, _RART,\n 0,\n [_HN, _Pro],\n [0, 0], 1\n];\nexport var RenameObjectOutput$ = [3, n0, _ROO,\n 0,\n [],\n []\n];\nexport var RenameObjectRequest$ = [3, n0, _ROR,\n 0,\n [_B, _K, _RSen, _DIM, _DINM, _DIMS, _DIUS, _SIM, _SINM, _SIMS, _SIUS, _CTl],\n [[0, 1], [0, 1], [0, { [_hH]: _xars_ }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IMS_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _xarsim }], [0, { [_hH]: _xarsinm }], [6, { [_hH]: _xarsims }], [6, { [_hH]: _xarsius }], [0, { [_hH]: _xact_, [_iT]: 1 }]], 3\n];\nexport var ReplicaModifications$ = [3, n0, _RM,\n 0,\n [_S],\n [0], 1\n];\nexport var ReplicationConfiguration$ = [3, n0, _RCe,\n 0,\n [_Ro, _R],\n [0, [() => ReplicationRules, { [_xF]: 1, [_xN]: _Ru }]], 2\n];\nexport var ReplicationRule$ = [3, n0, _RRe,\n 0,\n [_S, _Des, _ID, _Pri, _P, _F, _SSC, _EOR, _DMR],\n [0, () => Destination$, 0, 1, 0, [() => ReplicationRuleFilter$, 0], () => SourceSelectionCriteria$, () => ExistingObjectReplication$, () => DeleteMarkerReplication$], 2\n];\nexport var ReplicationRuleAndOperator$ = [3, n0, _RRAO,\n 0,\n [_P, _T],\n [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var ReplicationRuleFilter$ = [3, n0, _RRF,\n 0,\n [_P, _Ta, _An],\n [0, () => Tag$, [() => ReplicationRuleAndOperator$, 0]]\n];\nexport var ReplicationTime$ = [3, n0, _RT,\n 0,\n [_S, _Tim],\n [0, () => ReplicationTimeValue$], 2\n];\nexport var ReplicationTimeValue$ = [3, n0, _RTV,\n 0,\n [_Mi],\n [1]\n];\nexport var RequestPaymentConfiguration$ = [3, n0, _RPC,\n 0,\n [_Pay],\n [0], 1\n];\nexport var RequestProgress$ = [3, n0, _RPe,\n 0,\n [_Ena],\n [2]\n];\nexport var RestoreObjectOutput$ = [3, n0, _ROOe,\n 0,\n [_RC, _ROP],\n [[0, { [_hH]: _xarc }], [0, { [_hH]: _xarop }]]\n];\nexport var RestoreObjectRequest$ = [3, n0, _RORe,\n 0,\n [_B, _K, _VI, _RRes, _RP, _CA, _EBO],\n [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [() => RestoreRequest$, { [_hP]: 1, [_xN]: _RRes }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var RestoreRequest$ = [3, n0, _RRes,\n 0,\n [_D, _GJP, _Ty, _Ti, _Desc, _SP, _OL],\n [1, () => GlacierJobParameters$, 0, 0, 0, () => SelectParameters$, [() => OutputLocation$, 0]]\n];\nexport var RestoreStatus$ = [3, n0, _RSe,\n 0,\n [_IRIP, _RED],\n [2, 4]\n];\nexport var RoutingRule$ = [3, n0, _RRo,\n 0,\n [_Red, _Co],\n [() => Redirect$, () => Condition$], 1\n];\nexport var S3KeyFilter$ = [3, n0, _SKF,\n 0,\n [_FRi],\n [[() => FilterRuleList, { [_xF]: 1, [_xN]: _FR }]]\n];\nexport var S3Location$ = [3, n0, _SL,\n 0,\n [_BNu, _P, _En, _CACL, _ACL, _Tag, _UM, _SC],\n [0, 0, [() => Encryption$, 0], 0, [() => Grants, 0], [() => Tagging$, 0], [() => UserMetadata, 0], 0], 2\n];\nexport var S3TablesDestination$ = [3, n0, _STD,\n 0,\n [_TBA, _TNa],\n [0, 0], 2\n];\nexport var S3TablesDestinationResult$ = [3, n0, _STDR,\n 0,\n [_TBA, _TNa, _TA, _TN],\n [0, 0, 0, 0], 4\n];\nexport var ScanRange$ = [3, n0, _SR,\n 0,\n [_St, _End],\n [1, 1]\n];\nexport var SelectObjectContentOutput$ = [3, n0, _SOCO,\n 0,\n [_Payl],\n [[() => SelectObjectContentEventStream$, 16]]\n];\nexport var SelectObjectContentRequest$ = [3, n0, _SOCR,\n 0,\n [_B, _K, _Exp, _ETx, _IS, _OSu, _SSECA, _SSECK, _SSECKMD, _RPe, _SR, _EBO],\n [[0, 1], [0, 1], 0, 0, () => InputSerialization$, () => OutputSerialization$, [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], () => RequestProgress$, () => ScanRange$, [0, { [_hH]: _xaebo }]], 6\n];\nexport var SelectParameters$ = [3, n0, _SP,\n 0,\n [_IS, _ETx, _Exp, _OSu],\n [() => InputSerialization$, 0, 0, () => OutputSerialization$], 4\n];\nexport var ServerSideEncryptionByDefault$ = [3, n0, _SSEBD,\n 0,\n [_SSEA, _KMSMKID],\n [0, [() => SSEKMSKeyId, 0]], 1\n];\nexport var ServerSideEncryptionConfiguration$ = [3, n0, _SSEC,\n 0,\n [_R],\n [[() => ServerSideEncryptionRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var ServerSideEncryptionRule$ = [3, n0, _SSER,\n 0,\n [_ASSEBD, _BKE, _BET],\n [[() => ServerSideEncryptionByDefault$, 0], 2, [() => BlockedEncryptionTypes$, 0]]\n];\nexport var SessionCredentials$ = [3, n0, _SCe,\n 0,\n [_AKI, _SAK, _ST, _E],\n [[0, { [_xN]: _AKI }], [() => SessionCredentialValue, { [_xN]: _SAK }], [() => SessionCredentialValue, { [_xN]: _ST }], [4, { [_xN]: _E }]], 4\n];\nexport var SimplePrefix$ = [3, n0, _SPi,\n { [_xN]: _SPi },\n [],\n []\n];\nexport var SourceSelectionCriteria$ = [3, n0, _SSC,\n 0,\n [_SKEO, _RM],\n [() => SseKmsEncryptedObjects$, () => ReplicaModifications$]\n];\nexport var SSEKMS$ = [3, n0, _SSEKMS,\n { [_xN]: _SK },\n [_KI],\n [[() => SSEKMSKeyId, 0]], 1\n];\nexport var SseKmsEncryptedObjects$ = [3, n0, _SKEO,\n 0,\n [_S],\n [0], 1\n];\nexport var SSEKMSEncryption$ = [3, n0, _SSEKMSE,\n { [_xN]: _SK },\n [_KMSKA, _BKE],\n [[() => NonEmptyKmsKeyArnString, 0], 2], 1\n];\nexport var SSES3$ = [3, n0, _SSES,\n { [_xN]: _SS },\n [],\n []\n];\nexport var Stats$ = [3, n0, _Sta,\n 0,\n [_BS, _BP, _BRy],\n [1, 1, 1]\n];\nexport var StatsEvent$ = [3, n0, _SE,\n 0,\n [_Det],\n [[() => Stats$, { [_eP]: 1 }]]\n];\nexport var StorageClassAnalysis$ = [3, n0, _SCA,\n 0,\n [_DE],\n [() => StorageClassAnalysisDataExport$]\n];\nexport var StorageClassAnalysisDataExport$ = [3, n0, _SCADE,\n 0,\n [_OSV, _Des],\n [0, () => AnalyticsExportDestination$], 2\n];\nexport var Tag$ = [3, n0, _Ta,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexport var Tagging$ = [3, n0, _Tag,\n 0,\n [_TS],\n [[() => TagSet, 0]], 1\n];\nexport var TargetGrant$ = [3, n0, _TGa,\n 0,\n [_Gra, _Pe],\n [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0]\n];\nexport var TargetObjectKeyFormat$ = [3, n0, _TOKF,\n 0,\n [_SPi, _PP],\n [[() => SimplePrefix$, { [_xN]: _SPi }], [() => PartitionedPrefix$, { [_xN]: _PP }]]\n];\nexport var Tiering$ = [3, n0, _Tier,\n 0,\n [_D, _AT],\n [1, 0], 2\n];\nexport var TopicConfiguration$ = [3, n0, _TCop,\n 0,\n [_TAo, _Ev, _I, _F],\n [[0, { [_xN]: _Top }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var Transition$ = [3, n0, _Tra,\n 0,\n [_Da, _D, _SC],\n [5, 1, 0]\n];\nexport var UpdateBucketMetadataInventoryTableConfigurationRequest$ = [3, n0, _UBMITCR,\n 0,\n [_B, _ITCn, _CMD, _CA, _EBO],\n [[0, 1], [() => InventoryTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _ITCn }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var UpdateBucketMetadataJournalTableConfigurationRequest$ = [3, n0, _UBMJTCR,\n 0,\n [_B, _JTC, _CMD, _CA, _EBO],\n [[0, 1], [() => JournalTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _JTC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var UpdateObjectEncryptionRequest$ = [3, n0, _UOER,\n 0,\n [_B, _K, _OE, _VI, _RP, _EBO, _CMD, _CA],\n [[0, 1], [0, 1], [() => ObjectEncryption$, 16], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }]], 3\n];\nexport var UpdateObjectEncryptionResponse$ = [3, n0, _UOERp,\n 0,\n [_RC],\n [[0, { [_hH]: _xarc }]]\n];\nexport var UploadPartCopyOutput$ = [3, n0, _UPCO,\n 0,\n [_CSVI, _CPR, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC],\n [[0, { [_hH]: _xacsvi }], [() => CopyPartResult$, 16], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var UploadPartCopyRequest$ = [3, n0, _UPCR,\n 0,\n [_B, _CS, _K, _PN, _UI, _CSIM, _CSIMS, _CSINM, _CSIUS, _CSRo, _SSECA, _SSECK, _SSECKMD, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _EBO, _ESBO],\n [[0, 1], [0, { [_hH]: _xacs__ }], [0, 1], [1, { [_hQ]: _pN }], [0, { [_hQ]: _uI }], [0, { [_hH]: _xacsim }], [4, { [_hH]: _xacsims }], [0, { [_hH]: _xacsinm }], [4, { [_hH]: _xacsius }], [0, { [_hH]: _xacsr }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH]: _xacssseck }], [0, { [_hH]: _xacssseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasebo }]], 5\n];\nexport var UploadPartOutput$ = [3, n0, _UPO,\n 0,\n [_SSE, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC],\n [[0, { [_hH]: _xasse }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var UploadPartRequest$ = [3, n0, _UPR,\n 0,\n [_B, _K, _PN, _UI, _Bo, _CLo, _CMD, _CA, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _SSECA, _SSECK, _SSECKMD, _RP, _EBO],\n [[0, 1], [0, 1], [1, { [_hQ]: _pN }], [0, { [_hQ]: _uI }], [() => StreamingBlob, 16], [1, { [_hH]: _CL__ }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 4\n];\nexport var VersioningConfiguration$ = [3, n0, _VC,\n 0,\n [_MFAD, _S],\n [[0, { [_xN]: _MDf }], 0]\n];\nexport var WebsiteConfiguration$ = [3, n0, _WC,\n 0,\n [_EDr, _IDn, _RART, _RR],\n [() => ErrorDocument$, () => IndexDocument$, () => RedirectAllRequestsTo$, [() => RoutingRules, 0]]\n];\nexport var WriteGetObjectResponseRequest$ = [3, n0, _WGORR,\n 0,\n [_RReq, _RTe, _Bo, _SCt, _ECr, _EM, _AR, _CC, _CDo, _CEo, _CL, _CLo, _CR, _CTo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _DM, _ETa, _Ex, _E, _LM, _MM, _M, _OLM, _OLLHS, _OLRUD, _PC, _RS, _RC, _Re, _SSE, _SSECA, _SSEKMSKI, _SSECKMD, _SC, _TC, _VI, _BKE],\n [[0, { [_hL]: 1, [_hH]: _xarr }], [0, { [_hH]: _xart }], [() => StreamingBlob, 16], [1, { [_hH]: _xafs }], [0, { [_hH]: _xafec }], [0, { [_hH]: _xafem }], [0, { [_hH]: _xafhar }], [0, { [_hH]: _xafhCC }], [0, { [_hH]: _xafhCD }], [0, { [_hH]: _xafhCE }], [0, { [_hH]: _xafhCL }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _xafhCR }], [0, { [_hH]: _xafhCT }], [0, { [_hH]: _xafhxacc }], [0, { [_hH]: _xafhxacc_ }], [0, { [_hH]: _xafhxacc__ }], [0, { [_hH]: _xafhxacs }], [0, { [_hH]: _xafhxacs_ }], [2, { [_hH]: _xafhxadm }], [0, { [_hH]: _xafhE }], [4, { [_hH]: _xafhE_ }], [0, { [_hH]: _xafhxae }], [4, { [_hH]: _xafhLM }], [1, { [_hH]: _xafhxamm }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xafhxaolm }], [0, { [_hH]: _xafhxaollh }], [5, { [_hH]: _xafhxaolrud }], [1, { [_hH]: _xafhxampc }], [0, { [_hH]: _xafhxars }], [0, { [_hH]: _xafhxarc }], [0, { [_hH]: _xafhxar }], [0, { [_hH]: _xafhxasse }], [0, { [_hH]: _xafhxasseca }], [() => SSEKMSKeyId, { [_hH]: _xafhxasseakki }], [0, { [_hH]: _xafhxasseckM }], [0, { [_hH]: _xafhxasc }], [1, { [_hH]: _xafhxatc }], [0, { [_hH]: _xafhxavi }], [2, { [_hH]: _xafhxassebke }]], 2\n];\nvar __Unit = \"unit\";\nvar AllowedHeaders = 64 | 0;\nvar AllowedMethods = 64 | 0;\nvar AllowedOrigins = 64 | 0;\nvar AnalyticsConfigurationList = [1, n0, _ACLn,\n 0, [() => AnalyticsConfiguration$,\n 0]\n];\nvar Buckets = [1, n0, _Bu,\n 0, [() => Bucket$,\n { [_xN]: _B }]\n];\nvar ChecksumAlgorithmList = 64 | 0;\nvar CommonPrefixList = [1, n0, _CPL,\n 0, () => CommonPrefix$\n];\nvar CompletedPartList = [1, n0, _CPLo,\n 0, () => CompletedPart$\n];\nvar CORSRules = [1, n0, _CORSR,\n 0, [() => CORSRule$,\n 0]\n];\nvar DeletedObjects = [1, n0, _DOe,\n 0, () => DeletedObject$\n];\nvar DeleteMarkers = [1, n0, _DMe,\n 0, () => DeleteMarkerEntry$\n];\nvar EncryptionTypeList = [1, n0, _ETL,\n 0, [0,\n { [_xN]: _ET }]\n];\nvar Errors = [1, n0, _Er,\n 0, () => _Error$\n];\nvar EventList = 64 | 0;\nvar ExposeHeaders = 64 | 0;\nvar FilterRuleList = [1, n0, _FRL,\n 0, () => FilterRule$\n];\nvar Grants = [1, n0, _G,\n 0, [() => Grant$,\n { [_xN]: _Gr }]\n];\nvar IntelligentTieringConfigurationList = [1, n0, _ITCL,\n 0, [() => IntelligentTieringConfiguration$,\n 0]\n];\nvar InventoryConfigurationList = [1, n0, _ICL,\n 0, [() => InventoryConfiguration$,\n 0]\n];\nvar InventoryOptionalFields = [1, n0, _IOF,\n 0, [0,\n { [_xN]: _Fi }]\n];\nvar LambdaFunctionConfigurationList = [1, n0, _LFCL,\n 0, [() => LambdaFunctionConfiguration$,\n 0]\n];\nvar LifecycleRules = [1, n0, _LRi,\n 0, [() => LifecycleRule$,\n 0]\n];\nvar MetricsConfigurationList = [1, n0, _MCL,\n 0, [() => MetricsConfiguration$,\n 0]\n];\nvar MultipartUploadList = [1, n0, _MUL,\n 0, () => MultipartUpload$\n];\nvar NoncurrentVersionTransitionList = [1, n0, _NVTL,\n 0, () => NoncurrentVersionTransition$\n];\nvar ObjectAttributesList = 64 | 0;\nvar ObjectIdentifierList = [1, n0, _OIL,\n 0, () => ObjectIdentifier$\n];\nvar ObjectList = [1, n0, _OLb,\n 0, [() => _Object$,\n 0]\n];\nvar ObjectVersionList = [1, n0, _OVL,\n 0, [() => ObjectVersion$,\n 0]\n];\nvar OptionalObjectAttributesList = 64 | 0;\nvar OwnershipControlsRules = [1, n0, _OCRw,\n 0, () => OwnershipControlsRule$\n];\nvar Parts = [1, n0, _Pa,\n 0, () => Part$\n];\nvar PartsList = [1, n0, _PL,\n 0, () => ObjectPart$\n];\nvar QueueConfigurationList = [1, n0, _QCL,\n 0, [() => QueueConfiguration$,\n 0]\n];\nvar ReplicationRules = [1, n0, _RRep,\n 0, [() => ReplicationRule$,\n 0]\n];\nvar RoutingRules = [1, n0, _RR,\n 0, [() => RoutingRule$,\n { [_xN]: _RRo }]\n];\nvar ServerSideEncryptionRules = [1, n0, _SSERe,\n 0, [() => ServerSideEncryptionRule$,\n 0]\n];\nvar TagSet = [1, n0, _TS,\n 0, [() => Tag$,\n { [_xN]: _Ta }]\n];\nvar TargetGrants = [1, n0, _TG,\n 0, [() => TargetGrant$,\n { [_xN]: _Gr }]\n];\nvar TieringList = [1, n0, _TL,\n 0, () => Tiering$\n];\nvar TopicConfigurationList = [1, n0, _TCL,\n 0, [() => TopicConfiguration$,\n 0]\n];\nvar TransitionList = [1, n0, _TLr,\n 0, () => Transition$\n];\nvar UserMetadata = [1, n0, _UM,\n 0, [() => MetadataEntry$,\n { [_xN]: _ME }]\n];\nvar Metadata = 128 | 0;\nexport var AnalyticsFilter$ = [4, n0, _AF,\n 0,\n [_P, _Ta, _An],\n [0, () => Tag$, [() => AnalyticsAndOperator$, 0]]\n];\nexport var MetricsFilter$ = [4, n0, _MF,\n 0,\n [_P, _Ta, _APAc, _An],\n [0, () => Tag$, 0, [() => MetricsAndOperator$, 0]]\n];\nexport var ObjectEncryption$ = [4, n0, _OE,\n 0,\n [_SSEKMS],\n [[() => SSEKMSEncryption$, { [_xN]: _SK }]]\n];\nexport var SelectObjectContentEventStream$ = [4, n0, _SOCES,\n { [_st]: 1 },\n [_Rec, _Sta, _Pr, _Cont, _End],\n [[() => RecordsEvent$, 0], [() => StatsEvent$, 0], [() => ProgressEvent$, 0], () => ContinuationEvent$, () => EndEvent$]\n];\nexport var AbortMultipartUpload$ = [9, n0, _AMU,\n { [_h]: [\"DELETE\", \"/{Key+}?x-id=AbortMultipartUpload\", 204] }, () => AbortMultipartUploadRequest$, () => AbortMultipartUploadOutput$\n];\nexport var CompleteMultipartUpload$ = [9, n0, _CMUo,\n { [_h]: [\"POST\", \"/{Key+}\", 200] }, () => CompleteMultipartUploadRequest$, () => CompleteMultipartUploadOutput$\n];\nexport var CopyObject$ = [9, n0, _CO,\n { [_h]: [\"PUT\", \"/{Key+}?x-id=CopyObject\", 200] }, () => CopyObjectRequest$, () => CopyObjectOutput$\n];\nexport var CreateBucket$ = [9, n0, _CB,\n { [_h]: [\"PUT\", \"/\", 200] }, () => CreateBucketRequest$, () => CreateBucketOutput$\n];\nexport var CreateBucketMetadataConfiguration$ = [9, n0, _CBMC,\n { [_hC]: \"-\", [_h]: [\"POST\", \"/?metadataConfiguration\", 200] }, () => CreateBucketMetadataConfigurationRequest$, () => __Unit\n];\nexport var CreateBucketMetadataTableConfiguration$ = [9, n0, _CBMTC,\n { [_hC]: \"-\", [_h]: [\"POST\", \"/?metadataTable\", 200] }, () => CreateBucketMetadataTableConfigurationRequest$, () => __Unit\n];\nexport var CreateMultipartUpload$ = [9, n0, _CMUr,\n { [_h]: [\"POST\", \"/{Key+}?uploads\", 200] }, () => CreateMultipartUploadRequest$, () => CreateMultipartUploadOutput$\n];\nexport var CreateSession$ = [9, n0, _CSr,\n { [_h]: [\"GET\", \"/?session\", 200] }, () => CreateSessionRequest$, () => CreateSessionOutput$\n];\nexport var DeleteBucket$ = [9, n0, _DB,\n { [_h]: [\"DELETE\", \"/\", 204] }, () => DeleteBucketRequest$, () => __Unit\n];\nexport var DeleteBucketAnalyticsConfiguration$ = [9, n0, _DBAC,\n { [_h]: [\"DELETE\", \"/?analytics\", 204] }, () => DeleteBucketAnalyticsConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketCors$ = [9, n0, _DBC,\n { [_h]: [\"DELETE\", \"/?cors\", 204] }, () => DeleteBucketCorsRequest$, () => __Unit\n];\nexport var DeleteBucketEncryption$ = [9, n0, _DBE,\n { [_h]: [\"DELETE\", \"/?encryption\", 204] }, () => DeleteBucketEncryptionRequest$, () => __Unit\n];\nexport var DeleteBucketIntelligentTieringConfiguration$ = [9, n0, _DBITC,\n { [_h]: [\"DELETE\", \"/?intelligent-tiering\", 204] }, () => DeleteBucketIntelligentTieringConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketInventoryConfiguration$ = [9, n0, _DBIC,\n { [_h]: [\"DELETE\", \"/?inventory\", 204] }, () => DeleteBucketInventoryConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketLifecycle$ = [9, n0, _DBL,\n { [_h]: [\"DELETE\", \"/?lifecycle\", 204] }, () => DeleteBucketLifecycleRequest$, () => __Unit\n];\nexport var DeleteBucketMetadataConfiguration$ = [9, n0, _DBMC,\n { [_h]: [\"DELETE\", \"/?metadataConfiguration\", 204] }, () => DeleteBucketMetadataConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketMetadataTableConfiguration$ = [9, n0, _DBMTC,\n { [_h]: [\"DELETE\", \"/?metadataTable\", 204] }, () => DeleteBucketMetadataTableConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketMetricsConfiguration$ = [9, n0, _DBMCe,\n { [_h]: [\"DELETE\", \"/?metrics\", 204] }, () => DeleteBucketMetricsConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketOwnershipControls$ = [9, n0, _DBOC,\n { [_h]: [\"DELETE\", \"/?ownershipControls\", 204] }, () => DeleteBucketOwnershipControlsRequest$, () => __Unit\n];\nexport var DeleteBucketPolicy$ = [9, n0, _DBP,\n { [_h]: [\"DELETE\", \"/?policy\", 204] }, () => DeleteBucketPolicyRequest$, () => __Unit\n];\nexport var DeleteBucketReplication$ = [9, n0, _DBRe,\n { [_h]: [\"DELETE\", \"/?replication\", 204] }, () => DeleteBucketReplicationRequest$, () => __Unit\n];\nexport var DeleteBucketTagging$ = [9, n0, _DBT,\n { [_h]: [\"DELETE\", \"/?tagging\", 204] }, () => DeleteBucketTaggingRequest$, () => __Unit\n];\nexport var DeleteBucketWebsite$ = [9, n0, _DBW,\n { [_h]: [\"DELETE\", \"/?website\", 204] }, () => DeleteBucketWebsiteRequest$, () => __Unit\n];\nexport var DeleteObject$ = [9, n0, _DOel,\n { [_h]: [\"DELETE\", \"/{Key+}?x-id=DeleteObject\", 204] }, () => DeleteObjectRequest$, () => DeleteObjectOutput$\n];\nexport var DeleteObjects$ = [9, n0, _DOele,\n { [_hC]: \"-\", [_h]: [\"POST\", \"/?delete\", 200] }, () => DeleteObjectsRequest$, () => DeleteObjectsOutput$\n];\nexport var DeleteObjectTagging$ = [9, n0, _DOT,\n { [_h]: [\"DELETE\", \"/{Key+}?tagging\", 204] }, () => DeleteObjectTaggingRequest$, () => DeleteObjectTaggingOutput$\n];\nexport var DeletePublicAccessBlock$ = [9, n0, _DPAB,\n { [_h]: [\"DELETE\", \"/?publicAccessBlock\", 204] }, () => DeletePublicAccessBlockRequest$, () => __Unit\n];\nexport var GetBucketAbac$ = [9, n0, _GBA,\n { [_h]: [\"GET\", \"/?abac\", 200] }, () => GetBucketAbacRequest$, () => GetBucketAbacOutput$\n];\nexport var GetBucketAccelerateConfiguration$ = [9, n0, _GBAC,\n { [_h]: [\"GET\", \"/?accelerate\", 200] }, () => GetBucketAccelerateConfigurationRequest$, () => GetBucketAccelerateConfigurationOutput$\n];\nexport var GetBucketAcl$ = [9, n0, _GBAe,\n { [_h]: [\"GET\", \"/?acl\", 200] }, () => GetBucketAclRequest$, () => GetBucketAclOutput$\n];\nexport var GetBucketAnalyticsConfiguration$ = [9, n0, _GBACe,\n { [_h]: [\"GET\", \"/?analytics&x-id=GetBucketAnalyticsConfiguration\", 200] }, () => GetBucketAnalyticsConfigurationRequest$, () => GetBucketAnalyticsConfigurationOutput$\n];\nexport var GetBucketCors$ = [9, n0, _GBC,\n { [_h]: [\"GET\", \"/?cors\", 200] }, () => GetBucketCorsRequest$, () => GetBucketCorsOutput$\n];\nexport var GetBucketEncryption$ = [9, n0, _GBE,\n { [_h]: [\"GET\", \"/?encryption\", 200] }, () => GetBucketEncryptionRequest$, () => GetBucketEncryptionOutput$\n];\nexport var GetBucketIntelligentTieringConfiguration$ = [9, n0, _GBITC,\n { [_h]: [\"GET\", \"/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration\", 200] }, () => GetBucketIntelligentTieringConfigurationRequest$, () => GetBucketIntelligentTieringConfigurationOutput$\n];\nexport var GetBucketInventoryConfiguration$ = [9, n0, _GBIC,\n { [_h]: [\"GET\", \"/?inventory&x-id=GetBucketInventoryConfiguration\", 200] }, () => GetBucketInventoryConfigurationRequest$, () => GetBucketInventoryConfigurationOutput$\n];\nexport var GetBucketLifecycleConfiguration$ = [9, n0, _GBLC,\n { [_h]: [\"GET\", \"/?lifecycle\", 200] }, () => GetBucketLifecycleConfigurationRequest$, () => GetBucketLifecycleConfigurationOutput$\n];\nexport var GetBucketLocation$ = [9, n0, _GBL,\n { [_h]: [\"GET\", \"/?location\", 200] }, () => GetBucketLocationRequest$, () => GetBucketLocationOutput$\n];\nexport var GetBucketLogging$ = [9, n0, _GBLe,\n { [_h]: [\"GET\", \"/?logging\", 200] }, () => GetBucketLoggingRequest$, () => GetBucketLoggingOutput$\n];\nexport var GetBucketMetadataConfiguration$ = [9, n0, _GBMC,\n { [_h]: [\"GET\", \"/?metadataConfiguration\", 200] }, () => GetBucketMetadataConfigurationRequest$, () => GetBucketMetadataConfigurationOutput$\n];\nexport var GetBucketMetadataTableConfiguration$ = [9, n0, _GBMTC,\n { [_h]: [\"GET\", \"/?metadataTable\", 200] }, () => GetBucketMetadataTableConfigurationRequest$, () => GetBucketMetadataTableConfigurationOutput$\n];\nexport var GetBucketMetricsConfiguration$ = [9, n0, _GBMCe,\n { [_h]: [\"GET\", \"/?metrics&x-id=GetBucketMetricsConfiguration\", 200] }, () => GetBucketMetricsConfigurationRequest$, () => GetBucketMetricsConfigurationOutput$\n];\nexport var GetBucketNotificationConfiguration$ = [9, n0, _GBNC,\n { [_h]: [\"GET\", \"/?notification\", 200] }, () => GetBucketNotificationConfigurationRequest$, () => NotificationConfiguration$\n];\nexport var GetBucketOwnershipControls$ = [9, n0, _GBOC,\n { [_h]: [\"GET\", \"/?ownershipControls\", 200] }, () => GetBucketOwnershipControlsRequest$, () => GetBucketOwnershipControlsOutput$\n];\nexport var GetBucketPolicy$ = [9, n0, _GBP,\n { [_h]: [\"GET\", \"/?policy\", 200] }, () => GetBucketPolicyRequest$, () => GetBucketPolicyOutput$\n];\nexport var GetBucketPolicyStatus$ = [9, n0, _GBPS,\n { [_h]: [\"GET\", \"/?policyStatus\", 200] }, () => GetBucketPolicyStatusRequest$, () => GetBucketPolicyStatusOutput$\n];\nexport var GetBucketReplication$ = [9, n0, _GBR,\n { [_h]: [\"GET\", \"/?replication\", 200] }, () => GetBucketReplicationRequest$, () => GetBucketReplicationOutput$\n];\nexport var GetBucketRequestPayment$ = [9, n0, _GBRP,\n { [_h]: [\"GET\", \"/?requestPayment\", 200] }, () => GetBucketRequestPaymentRequest$, () => GetBucketRequestPaymentOutput$\n];\nexport var GetBucketTagging$ = [9, n0, _GBT,\n { [_h]: [\"GET\", \"/?tagging\", 200] }, () => GetBucketTaggingRequest$, () => GetBucketTaggingOutput$\n];\nexport var GetBucketVersioning$ = [9, n0, _GBV,\n { [_h]: [\"GET\", \"/?versioning\", 200] }, () => GetBucketVersioningRequest$, () => GetBucketVersioningOutput$\n];\nexport var GetBucketWebsite$ = [9, n0, _GBW,\n { [_h]: [\"GET\", \"/?website\", 200] }, () => GetBucketWebsiteRequest$, () => GetBucketWebsiteOutput$\n];\nexport var GetObject$ = [9, n0, _GO,\n { [_hC]: \"-\", [_h]: [\"GET\", \"/{Key+}?x-id=GetObject\", 200] }, () => GetObjectRequest$, () => GetObjectOutput$\n];\nexport var GetObjectAcl$ = [9, n0, _GOA,\n { [_h]: [\"GET\", \"/{Key+}?acl\", 200] }, () => GetObjectAclRequest$, () => GetObjectAclOutput$\n];\nexport var GetObjectAttributes$ = [9, n0, _GOAe,\n { [_h]: [\"GET\", \"/{Key+}?attributes\", 200] }, () => GetObjectAttributesRequest$, () => GetObjectAttributesOutput$\n];\nexport var GetObjectLegalHold$ = [9, n0, _GOLH,\n { [_h]: [\"GET\", \"/{Key+}?legal-hold\", 200] }, () => GetObjectLegalHoldRequest$, () => GetObjectLegalHoldOutput$\n];\nexport var GetObjectLockConfiguration$ = [9, n0, _GOLC,\n { [_h]: [\"GET\", \"/?object-lock\", 200] }, () => GetObjectLockConfigurationRequest$, () => GetObjectLockConfigurationOutput$\n];\nexport var GetObjectRetention$ = [9, n0, _GORe,\n { [_h]: [\"GET\", \"/{Key+}?retention\", 200] }, () => GetObjectRetentionRequest$, () => GetObjectRetentionOutput$\n];\nexport var GetObjectTagging$ = [9, n0, _GOT,\n { [_h]: [\"GET\", \"/{Key+}?tagging\", 200] }, () => GetObjectTaggingRequest$, () => GetObjectTaggingOutput$\n];\nexport var GetObjectTorrent$ = [9, n0, _GOTe,\n { [_h]: [\"GET\", \"/{Key+}?torrent\", 200] }, () => GetObjectTorrentRequest$, () => GetObjectTorrentOutput$\n];\nexport var GetPublicAccessBlock$ = [9, n0, _GPAB,\n { [_h]: [\"GET\", \"/?publicAccessBlock\", 200] }, () => GetPublicAccessBlockRequest$, () => GetPublicAccessBlockOutput$\n];\nexport var HeadBucket$ = [9, n0, _HB,\n { [_h]: [\"HEAD\", \"/\", 200] }, () => HeadBucketRequest$, () => HeadBucketOutput$\n];\nexport var HeadObject$ = [9, n0, _HO,\n { [_h]: [\"HEAD\", \"/{Key+}\", 200] }, () => HeadObjectRequest$, () => HeadObjectOutput$\n];\nexport var ListBucketAnalyticsConfigurations$ = [9, n0, _LBAC,\n { [_h]: [\"GET\", \"/?analytics&x-id=ListBucketAnalyticsConfigurations\", 200] }, () => ListBucketAnalyticsConfigurationsRequest$, () => ListBucketAnalyticsConfigurationsOutput$\n];\nexport var ListBucketIntelligentTieringConfigurations$ = [9, n0, _LBITC,\n { [_h]: [\"GET\", \"/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations\", 200] }, () => ListBucketIntelligentTieringConfigurationsRequest$, () => ListBucketIntelligentTieringConfigurationsOutput$\n];\nexport var ListBucketInventoryConfigurations$ = [9, n0, _LBIC,\n { [_h]: [\"GET\", \"/?inventory&x-id=ListBucketInventoryConfigurations\", 200] }, () => ListBucketInventoryConfigurationsRequest$, () => ListBucketInventoryConfigurationsOutput$\n];\nexport var ListBucketMetricsConfigurations$ = [9, n0, _LBMC,\n { [_h]: [\"GET\", \"/?metrics&x-id=ListBucketMetricsConfigurations\", 200] }, () => ListBucketMetricsConfigurationsRequest$, () => ListBucketMetricsConfigurationsOutput$\n];\nexport var ListBuckets$ = [9, n0, _LB,\n { [_h]: [\"GET\", \"/?x-id=ListBuckets\", 200] }, () => ListBucketsRequest$, () => ListBucketsOutput$\n];\nexport var ListDirectoryBuckets$ = [9, n0, _LDB,\n { [_h]: [\"GET\", \"/?x-id=ListDirectoryBuckets\", 200] }, () => ListDirectoryBucketsRequest$, () => ListDirectoryBucketsOutput$\n];\nexport var ListMultipartUploads$ = [9, n0, _LMU,\n { [_h]: [\"GET\", \"/?uploads\", 200] }, () => ListMultipartUploadsRequest$, () => ListMultipartUploadsOutput$\n];\nexport var ListObjects$ = [9, n0, _LO,\n { [_h]: [\"GET\", \"/\", 200] }, () => ListObjectsRequest$, () => ListObjectsOutput$\n];\nexport var ListObjectsV2$ = [9, n0, _LOV,\n { [_h]: [\"GET\", \"/?list-type=2\", 200] }, () => ListObjectsV2Request$, () => ListObjectsV2Output$\n];\nexport var ListObjectVersions$ = [9, n0, _LOVi,\n { [_h]: [\"GET\", \"/?versions\", 200] }, () => ListObjectVersionsRequest$, () => ListObjectVersionsOutput$\n];\nexport var ListParts$ = [9, n0, _LP,\n { [_h]: [\"GET\", \"/{Key+}?x-id=ListParts\", 200] }, () => ListPartsRequest$, () => ListPartsOutput$\n];\nexport var PutBucketAbac$ = [9, n0, _PBA,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?abac\", 200] }, () => PutBucketAbacRequest$, () => __Unit\n];\nexport var PutBucketAccelerateConfiguration$ = [9, n0, _PBAC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?accelerate\", 200] }, () => PutBucketAccelerateConfigurationRequest$, () => __Unit\n];\nexport var PutBucketAcl$ = [9, n0, _PBAu,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?acl\", 200] }, () => PutBucketAclRequest$, () => __Unit\n];\nexport var PutBucketAnalyticsConfiguration$ = [9, n0, _PBACu,\n { [_h]: [\"PUT\", \"/?analytics\", 200] }, () => PutBucketAnalyticsConfigurationRequest$, () => __Unit\n];\nexport var PutBucketCors$ = [9, n0, _PBC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?cors\", 200] }, () => PutBucketCorsRequest$, () => __Unit\n];\nexport var PutBucketEncryption$ = [9, n0, _PBE,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?encryption\", 200] }, () => PutBucketEncryptionRequest$, () => __Unit\n];\nexport var PutBucketIntelligentTieringConfiguration$ = [9, n0, _PBITC,\n { [_h]: [\"PUT\", \"/?intelligent-tiering\", 200] }, () => PutBucketIntelligentTieringConfigurationRequest$, () => __Unit\n];\nexport var PutBucketInventoryConfiguration$ = [9, n0, _PBIC,\n { [_h]: [\"PUT\", \"/?inventory\", 200] }, () => PutBucketInventoryConfigurationRequest$, () => __Unit\n];\nexport var PutBucketLifecycleConfiguration$ = [9, n0, _PBLC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?lifecycle\", 200] }, () => PutBucketLifecycleConfigurationRequest$, () => PutBucketLifecycleConfigurationOutput$\n];\nexport var PutBucketLogging$ = [9, n0, _PBL,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?logging\", 200] }, () => PutBucketLoggingRequest$, () => __Unit\n];\nexport var PutBucketMetricsConfiguration$ = [9, n0, _PBMC,\n { [_h]: [\"PUT\", \"/?metrics\", 200] }, () => PutBucketMetricsConfigurationRequest$, () => __Unit\n];\nexport var PutBucketNotificationConfiguration$ = [9, n0, _PBNC,\n { [_h]: [\"PUT\", \"/?notification\", 200] }, () => PutBucketNotificationConfigurationRequest$, () => __Unit\n];\nexport var PutBucketOwnershipControls$ = [9, n0, _PBOC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?ownershipControls\", 200] }, () => PutBucketOwnershipControlsRequest$, () => __Unit\n];\nexport var PutBucketPolicy$ = [9, n0, _PBP,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?policy\", 200] }, () => PutBucketPolicyRequest$, () => __Unit\n];\nexport var PutBucketReplication$ = [9, n0, _PBR,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?replication\", 200] }, () => PutBucketReplicationRequest$, () => __Unit\n];\nexport var PutBucketRequestPayment$ = [9, n0, _PBRP,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?requestPayment\", 200] }, () => PutBucketRequestPaymentRequest$, () => __Unit\n];\nexport var PutBucketTagging$ = [9, n0, _PBT,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?tagging\", 200] }, () => PutBucketTaggingRequest$, () => __Unit\n];\nexport var PutBucketVersioning$ = [9, n0, _PBV,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?versioning\", 200] }, () => PutBucketVersioningRequest$, () => __Unit\n];\nexport var PutBucketWebsite$ = [9, n0, _PBW,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?website\", 200] }, () => PutBucketWebsiteRequest$, () => __Unit\n];\nexport var PutObject$ = [9, n0, _PO,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?x-id=PutObject\", 200] }, () => PutObjectRequest$, () => PutObjectOutput$\n];\nexport var PutObjectAcl$ = [9, n0, _POA,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?acl\", 200] }, () => PutObjectAclRequest$, () => PutObjectAclOutput$\n];\nexport var PutObjectLegalHold$ = [9, n0, _POLH,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?legal-hold\", 200] }, () => PutObjectLegalHoldRequest$, () => PutObjectLegalHoldOutput$\n];\nexport var PutObjectLockConfiguration$ = [9, n0, _POLC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?object-lock\", 200] }, () => PutObjectLockConfigurationRequest$, () => PutObjectLockConfigurationOutput$\n];\nexport var PutObjectRetention$ = [9, n0, _PORu,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?retention\", 200] }, () => PutObjectRetentionRequest$, () => PutObjectRetentionOutput$\n];\nexport var PutObjectTagging$ = [9, n0, _POT,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?tagging\", 200] }, () => PutObjectTaggingRequest$, () => PutObjectTaggingOutput$\n];\nexport var PutPublicAccessBlock$ = [9, n0, _PPAB,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?publicAccessBlock\", 200] }, () => PutPublicAccessBlockRequest$, () => __Unit\n];\nexport var RenameObject$ = [9, n0, _RO,\n { [_h]: [\"PUT\", \"/{Key+}?renameObject\", 200] }, () => RenameObjectRequest$, () => RenameObjectOutput$\n];\nexport var RestoreObject$ = [9, n0, _ROe,\n { [_hC]: \"-\", [_h]: [\"POST\", \"/{Key+}?restore\", 200] }, () => RestoreObjectRequest$, () => RestoreObjectOutput$\n];\nexport var SelectObjectContent$ = [9, n0, _SOC,\n { [_h]: [\"POST\", \"/{Key+}?select&select-type=2\", 200] }, () => SelectObjectContentRequest$, () => SelectObjectContentOutput$\n];\nexport var UpdateBucketMetadataInventoryTableConfiguration$ = [9, n0, _UBMITC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?metadataInventoryTable\", 200] }, () => UpdateBucketMetadataInventoryTableConfigurationRequest$, () => __Unit\n];\nexport var UpdateBucketMetadataJournalTableConfiguration$ = [9, n0, _UBMJTC,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/?metadataJournalTable\", 200] }, () => UpdateBucketMetadataJournalTableConfigurationRequest$, () => __Unit\n];\nexport var UpdateObjectEncryption$ = [9, n0, _UOE,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?encryption\", 200] }, () => UpdateObjectEncryptionRequest$, () => UpdateObjectEncryptionResponse$\n];\nexport var UploadPart$ = [9, n0, _UP,\n { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?x-id=UploadPart\", 200] }, () => UploadPartRequest$, () => UploadPartOutput$\n];\nexport var UploadPartCopy$ = [9, n0, _UPC,\n { [_h]: [\"PUT\", \"/{Key+}?x-id=UploadPartCopy\", 200] }, () => UploadPartCopyRequest$, () => UploadPartCopyOutput$\n];\nexport var WriteGetObjectResponse$ = [9, n0, _WGOR,\n { [_en]: [\"{RequestRoute}.\"], [_h]: [\"POST\", \"/WriteGetObjectResponse\", 200] }, () => WriteGetObjectResponseRequest$, () => __Unit\n];\n",
|
|
68
|
+
"import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class S3ServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, S3ServiceException.prototype);\n }\n}\n",
|
|
69
|
+
"import { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport class NoSuchUpload extends __BaseException {\n name = \"NoSuchUpload\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NoSuchUpload.prototype);\n }\n}\nexport class AccessDenied extends __BaseException {\n name = \"AccessDenied\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"AccessDenied\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDenied.prototype);\n }\n}\nexport class ObjectNotInActiveTierError extends __BaseException {\n name = \"ObjectNotInActiveTierError\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n }\n}\nexport class BucketAlreadyExists extends __BaseException {\n name = \"BucketAlreadyExists\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n }\n}\nexport class BucketAlreadyOwnedByYou extends __BaseException {\n name = \"BucketAlreadyOwnedByYou\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n }\n}\nexport class NoSuchBucket extends __BaseException {\n name = \"NoSuchBucket\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NoSuchBucket.prototype);\n }\n}\nexport class InvalidObjectState extends __BaseException {\n name = \"InvalidObjectState\";\n $fault = \"client\";\n StorageClass;\n AccessTier;\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n}\nexport class NoSuchKey extends __BaseException {\n name = \"NoSuchKey\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NoSuchKey.prototype);\n }\n}\nexport class NotFound extends __BaseException {\n name = \"NotFound\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NotFound.prototype);\n }\n}\nexport class EncryptionTypeMismatch extends __BaseException {\n name = \"EncryptionTypeMismatch\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"EncryptionTypeMismatch\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, EncryptionTypeMismatch.prototype);\n }\n}\nexport class InvalidRequest extends __BaseException {\n name = \"InvalidRequest\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidRequest\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRequest.prototype);\n }\n}\nexport class InvalidWriteOffset extends __BaseException {\n name = \"InvalidWriteOffset\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidWriteOffset\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidWriteOffset.prototype);\n }\n}\nexport class TooManyParts extends __BaseException {\n name = \"TooManyParts\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TooManyParts\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyParts.prototype);\n }\n}\nexport class IdempotencyParameterMismatch extends __BaseException {\n name = \"IdempotencyParameterMismatch\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"IdempotencyParameterMismatch\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, IdempotencyParameterMismatch.prototype);\n }\n}\nexport class ObjectAlreadyInActiveTierError extends __BaseException {\n name = \"ObjectAlreadyInActiveTierError\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n }\n}\n",
|
|
70
|
+
"import packageInfo from \"../package.json\";\nimport { emitWarningIfUnsupportedVersion as awsCheckVersion, NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, NODE_SIGV4A_CONFIG_OPTIONS, } from \"@aws-sdk/core\";\nimport { defaultProvider as credentialDefaultProvider } from \"@aws-sdk/credential-provider-node\";\nimport { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS, NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS, } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS } from \"@aws-sdk/middleware-sdk-s3\";\nimport { createDefaultUserAgentProvider, NODE_APP_ID_CONFIG_OPTIONS } from \"@aws-sdk/util-user-agent-node\";\nimport { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, } from \"@smithy/config-resolver\";\nimport { eventStreamSerdeProvider } from \"@smithy/eventstream-serde-node\";\nimport { Hash } from \"@smithy/hash-node\";\nimport { readableStreamHasher as streamHasher } from \"@smithy/hash-stream-node\";\nimport { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from \"@smithy/middleware-retry\";\nimport { loadConfig as loadNodeConfig } from \"@smithy/node-config-provider\";\nimport { NodeHttpHandler as RequestHandler, streamCollector } from \"@smithy/node-http-handler\";\nimport { emitWarningIfUnsupportedVersion, loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-node\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-node\";\nimport { DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nexport const getRuntimeConfig = (config) => {\n emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n awsCheckVersion(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? loadNodeConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n disableS3ExpressSessionAuth: config?.disableS3ExpressSessionAuth ?? loadNodeConfig(NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS, loaderConfig),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n md5: config?.md5 ?? Hash.bind(null, \"md5\"),\n region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestChecksumCalculation: config?.requestChecksumCalculation ?? loadNodeConfig(NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS, loaderConfig),\n requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),\n responseChecksumValidation: config?.responseChecksumValidation ?? loadNodeConfig(NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS, loaderConfig),\n retryMode: config?.retryMode ??\n loadNodeConfig({\n ...NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE,\n }, config),\n sha1: config?.sha1 ?? Hash.bind(null, \"sha1\"),\n sha256: config?.sha256 ?? Hash.bind(null, \"sha256\"),\n sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? loadNodeConfig(NODE_SIGV4A_CONFIG_OPTIONS, loaderConfig),\n streamCollector: config?.streamCollector ?? streamCollector,\n streamHasher: config?.streamHasher ?? streamHasher,\n useArnRegion: config?.useArnRegion ?? loadNodeConfig(NODE_USE_ARN_REGION_CONFIG_OPTIONS, loaderConfig),\n useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n",
|
|
71
|
+
"import { ENV_KEY, ENV_SECRET, fromEnv } from \"@aws-sdk/credential-provider-env\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { ENV_PROFILE } from \"@smithy/shared-ini-file-loader\";\nimport { remoteProvider } from \"./remoteProvider\";\nimport { memoizeChain } from \"./runtime/memoize-chain\";\nlet multipleCredentialSourceWarningEmitted = false;\nexport const defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import(\"@aws-sdk/credential-provider-ini\");\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import(\"@aws-sdk/credential-provider-process\");\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import(\"@aws-sdk/credential-provider-web-identity\");\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nexport const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nexport const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n",
|
|
72
|
+
"import { chain, CredentialsProviderError } from \"@smithy/property-provider\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n return chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n",
|
|
73
|
+
"export function memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nexport const internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n",
|
|
74
|
+
"import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexport const NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\nexport const NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, NODE_USE_ARN_REGION_ENV_NAME, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, NODE_USE_ARN_REGION_INI_NAME, SelectorType.CONFIG),\n default: undefined,\n};\n",
|
|
75
|
+
"import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n toUtf8;\n fromUtf8;\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n",
|
|
76
|
+
"import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9_223_372_036_854_775_808) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n",
|
|
77
|
+
"import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n",
|
|
78
|
+
"import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n headerMarshaller;\n messageBuffer;\n isEndOfStream;\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n",
|
|
79
|
+
"export class MessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n",
|
|
80
|
+
"export class MessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n",
|
|
81
|
+
"export class SmithyMessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n",
|
|
82
|
+
"export class SmithyMessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n",
|
|
83
|
+
"export function getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n",
|
|
84
|
+
"export function getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n",
|
|
85
|
+
"import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@smithy/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n eventStreamCodec;\n utfEncoder;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n}\n",
|
|
86
|
+
"import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@smithy/eventstream-serde-universal\";\nimport { Readable } from \"stream\";\nimport { readabletoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n universalMarshaller;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : readabletoIterable(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n}\n",
|
|
87
|
+
"export async function* readabletoIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\n",
|
|
88
|
+
"import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n",
|
|
89
|
+
"import { toUint8Array } from \"@smithy/util-utf8\";\nimport { Writable } from \"stream\";\nexport class HashCalculator extends Writable {\n hash;\n constructor(hash, options) {\n super(options);\n this.hash = hash;\n }\n _write(chunk, encoding, callback) {\n try {\n this.hash.update(toUint8Array(chunk));\n }\n catch (err) {\n return callback(err);\n }\n callback();\n }\n}\n",
|
|
90
|
+
"import { HashCalculator } from \"./HashCalculator\";\nexport const readableStreamHasher = (hashCtor, readableStream) => {\n if (readableStream.readableFlowing !== null) {\n throw new Error(\"Unable to calculate hash for flowing readable stream\");\n }\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator(hash);\n readableStream.pipe(hashCalculator);\n return new Promise((resolve, reject) => {\n readableStream.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", () => {\n hash.digest().then(resolve).catch(reject);\n });\n });\n};\n",
|
|
91
|
+
"import { AwsSdkSigV4ASigner, AwsSdkSigV4Signer } from \"@aws-sdk/core\";\nimport { AwsRestXmlProtocol } from \"@aws-sdk/core/protocols\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { getAwsChunkedEncodingStream, sdkStreamMixin } from \"@smithy/util-stream\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultS3HttpAuthSchemeProvider } from \"./auth/httpAuthSchemeProvider\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nimport { errorTypeRegistries } from \"./schemas/schemas_0\";\nexport const getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream,\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultS3HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"aws.auth#sigv4a\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n signer: new AwsSdkSigV4ASigner(),\n },\n ],\n logger: config?.logger ?? new NoOpLogger(),\n protocol: config?.protocol ?? AwsRestXmlProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.s3\",\n errorTypeRegistries,\n xmlNamespace: \"http://s3.amazonaws.com/doc/2006-03-01/\",\n version: \"2006-03-01\",\n serviceTarget: \"AmazonS3\",\n },\n sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin,\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? parseUrl,\n useArnRegion: config?.useArnRegion ?? undefined,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n };\n};\n",
|
|
92
|
+
"import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nimport { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from \"./auth/httpAuthExtensionConfiguration\";\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n",
|
|
93
|
+
"export const getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexport const resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n",
|
|
94
|
+
"export function ssecMiddleware(options) {\n return (next) => async (args) => {\n const input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n let valueForHash;\n if (typeof value === \"string\") {\n if (isValidBase64EncodedSSECustomerKey(value, options)) {\n valueForHash = options.base64Decoder(value);\n }\n else {\n valueForHash = options.utf8Decoder(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n }\n else {\n valueForHash = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : new Uint8Array(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n const hash = new options.md5();\n hash.update(valueForHash);\n input[prop.hash] = options.base64Encoder(await hash.digest());\n }\n }\n return next({\n ...args,\n input,\n });\n };\n}\nexport const ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport const getSsecPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n});\nexport function isValidBase64EncodedSSECustomerKey(str, options) {\n const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n if (!base64Regex.test(str))\n return false;\n try {\n const decodedBytes = options.base64Decoder(str);\n return decodedBytes.length === 32;\n }\n catch {\n return false;\n }\n}\n",
|
|
95
|
+
"import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getS3ExpiresMiddlewarePlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { GetObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class GetObjectCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" },\n})\n .m(function (Command, cs, config, o) {\n return [\n getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n getFlexibleChecksumsPlugin(config, {\n requestChecksumRequired: false,\n requestValidationModeMember: 'ChecksumMode',\n 'responseAlgorithms': ['CRC64NVME', 'CRC32', 'CRC32C', 'SHA256', 'SHA1'],\n }),\n getSsecPlugin(config),\n getS3ExpiresMiddlewarePlugin(config),\n ];\n})\n .s(\"AmazonS3\", \"GetObject\", {})\n .n(\"S3Client\", \"GetObjectCommand\")\n .sc(GetObject$)\n .build() {\n}\n",
|
|
96
|
+
"import { getS3ExpiresMiddlewarePlugin, getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { HeadObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class HeadObjectCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" },\n})\n .m(function (Command, cs, config, o) {\n return [\n getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n getThrow200ExceptionsPlugin(config),\n getSsecPlugin(config),\n getS3ExpiresMiddlewarePlugin(config),\n ];\n})\n .s(\"AmazonS3\", \"HeadObject\", {})\n .n(\"S3Client\", \"HeadObjectCommand\")\n .sc(HeadObject$)\n .build() {\n}\n",
|
|
97
|
+
"import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { ListObjectsV2$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class ListObjectsV2Command extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" },\n})\n .m(function (Command, cs, config, o) {\n return [\n getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n getThrow200ExceptionsPlugin(config),\n ];\n})\n .s(\"AmazonS3\", \"ListObjectsV2\", {})\n .n(\"S3Client\", \"ListObjectsV2Command\")\n .sc(ListObjectsV2$)\n .build() {\n}\n",
|
|
98
|
+
"import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getCheckContentLengthHeaderPlugin, getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { PutObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class PutObjectCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" },\n})\n .m(function (Command, cs, config, o) {\n return [\n getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n getFlexibleChecksumsPlugin(config, {\n requestAlgorithmMember: { 'httpHeader': 'x-amz-sdk-checksum-algorithm', 'name': 'ChecksumAlgorithm' },\n requestChecksumRequired: false,\n }),\n getCheckContentLengthHeaderPlugin(config),\n getThrow200ExceptionsPlugin(config),\n getSsecPlugin(config),\n ];\n})\n .s(\"AmazonS3\", \"PutObject\", {})\n .n(\"S3Client\", \"PutObjectCommand\")\n .sc(PutObject$)\n .build() {\n}\n",
|
|
99
|
+
"import type { PutFileParams, ReadFileParams, ReadResult } from \"./types\";\n\nimport {\n GetObjectCommand,\n HeadObjectCommand,\n ListObjectsV2Command,\n PutObjectCommand,\n S3Client,\n} from \"@aws-sdk/client-s3\";\n\nimport { Buffer } from \"node:buffer\";\nimport { FileStorageDriver } from \"./FileStorageDriver\";\nimport { parseContentRange, toRangeHeaderValue } from \"../../../http/range\";\nimport {\n FileNotFoundError,\n RangeNotSatisfiableError,\n} from \"../../../http/errors\";\n\nexport class S3Driver extends FileStorageDriver {\n private client: S3Client;\n\n constructor(...config: ConstructorParameters<typeof S3Client>) {\n super();\n this.client = new S3Client(...config);\n }\n\n async put(params: PutFileParams | Blob) {\n let body: Blob | File | Buffer;\n let contentType: string | undefined;\n let name: string;\n let bucket = process.env.BUCKET_NAME;\n\n if (params instanceof Blob) {\n body = params;\n name = `${Bun.randomUUIDv7()}.${params.type.split(\"/\")[1].split(\";\")[0]}`;\n contentType = params.type;\n } else {\n body = params.body;\n name = params.name;\n bucket = params.bucket ?? bucket;\n // An explicitly passed contentType wins; otherwise fall back to the\n // blob's own type. A Buffer carries no type, so it has nothing to fall\n // back to and relies on the caller's value.\n contentType =\n params.contentType ||\n (body instanceof Blob || body instanceof File ? body.type : undefined);\n }\n\n // A typeless Blob reports \"\". Send nothing rather than an empty header, so\n // S3 applies its own default instead of storing a blank content type.\n contentType = contentType || undefined;\n\n const buffer =\n body instanceof Buffer\n ? body\n : body instanceof Blob || body instanceof File\n ? Buffer.from(await body.arrayBuffer())\n : \"\";\n\n await this.client.send(\n new PutObjectCommand({\n Bucket: bucket,\n Key: name,\n Body: buffer,\n ContentType: contentType,\n }),\n );\n\n return name;\n }\n\n async list(folder: string) {\n const result = await this.client.send(\n new ListObjectsV2Command({\n Bucket: process.env.BUCKET_NAME,\n Prefix: folder,\n }),\n );\n\n return result;\n }\n\n async fetch(params: ReadFileParams | string) {\n let bucket = process.env.BUCKET_NAME;\n let name: string | undefined;\n\n if (typeof params === \"string\") {\n name = params;\n } else {\n bucket = params.bucket ?? bucket;\n name = params.name;\n }\n\n if (!name) {\n throw new Error(\"Object name has to be specified\");\n }\n\n const result = await this.client.send(\n new GetObjectCommand({\n Bucket: bucket,\n Key: name,\n }),\n );\n\n return new Response(result.Body.transformToWebStream(), {\n headers: {\n \"Content-Type\": result.ContentType,\n \"Content-Length\": result.ContentLength.toString(),\n \"Cache-Control\": \"private, max-age=12000, must-revalidate\",\n \"Last-Modified\": result.LastModified?.toUTCString() || \"\",\n ETag: result.ETag || \"\",\n },\n });\n }\n\n async read(input: ReadFileParams | string): Promise<ReadResult> {\n const params = typeof input === \"string\" ? { name: input } : input;\n const bucket = params.bucket ?? process.env.BUCKET_NAME;\n const { name, range = null } = params;\n\n if (!name) {\n throw new Error(\"Object name has to be specified\");\n }\n\n let result: Awaited<ReturnType<S3Client[\"send\"]>> & Record<string, any>;\n try {\n result = (await this.client.send(\n new GetObjectCommand({\n Bucket: bucket,\n Key: name,\n Range: range ? toRangeHeaderValue(range) : undefined,\n }),\n )) as any;\n } catch (err: any) {\n if (err?.name === \"InvalidRange\" || err?.$metadata?.httpStatusCode === 416) {\n throw new RangeNotSatisfiableError(await this.size({ name, bucket }));\n }\n if (err?.name === \"NoSuchKey\" || err?.$metadata?.httpStatusCode === 404) {\n throw new FileNotFoundError(name);\n }\n throw err;\n }\n\n // S3 reports the authoritative total in its own Content-Range on any\n // successful ranged GET. Reading it here is what keeps `bytes=S-E` and\n // `bytes=-N` down to a single round trip, with no HEAD for the size.\n const contentRange = parseContentRange(result.ContentRange);\n const partial =\n Boolean(contentRange) && result.$metadata?.httpStatusCode === 206;\n const total = contentRange?.total ?? result.ContentLength ?? 0;\n\n return {\n body: result.Body.transformToWebStream(),\n start: contentRange?.start ?? 0,\n end: contentRange?.end ?? total - 1,\n total,\n partial,\n type: result.ContentType ?? \"application/octet-stream\",\n etag: result.ETag || undefined,\n lastModified: result.LastModified,\n name,\n };\n }\n\n async size(params: ReadFileParams | string) {\n const name = typeof params === \"string\" ? params : params.name;\n const bucket =\n (typeof params === \"string\" ? undefined : params.bucket) ??\n process.env.BUCKET_NAME;\n\n try {\n const result = await this.client.send(\n new HeadObjectCommand({ Bucket: bucket, Key: name }),\n );\n return result.ContentLength ?? 0;\n } catch (err: any) {\n if (err?.name === \"NotFound\" || err?.$metadata?.httpStatusCode === 404) {\n throw new FileNotFoundError(name);\n }\n throw err;\n }\n }\n}\n",
|
|
100
|
+
"import { Buffer } from \"node:buffer\";\nimport { Readable } from \"node:stream\";\n\nimport {\n FileNotFoundError,\n RangeNotSatisfiableError,\n} from \"../../../http/errors\";\nimport { parseContentRange, resolveRange } from \"../../../http/range\";\nimport { FileStorageDriver } from \"./FileStorageDriver\";\nimport type { PutFileParams, ReadFileParams, ReadResult } from \"./types\";\n\n/**\n * The slice of `@azure/storage-blob` this driver uses. Declared structurally so\n * the package stays an optional peer dependency: nothing here imports its types.\n */\ninterface BlobClientLike {\n download(\n offset?: number,\n count?: number,\n ): Promise<{\n readableStreamBody?: NodeJS.ReadableStream;\n blobBody?: Promise<Blob>;\n contentLength?: number;\n contentType?: string;\n contentRange?: string;\n etag?: string;\n lastModified?: Date;\n }>;\n getProperties(): Promise<{\n contentLength?: number;\n contentType?: string;\n etag?: string;\n lastModified?: Date;\n }>;\n uploadData(\n data: Buffer | Blob,\n options?: { blobHTTPHeaders?: { blobContentType?: string } },\n ): Promise<unknown>;\n delete(): Promise<unknown>;\n}\n\ninterface ContainerClientLike {\n getBlockBlobClient(name: string): BlobClientLike;\n listBlobsFlat(options?: { prefix?: string }): AsyncIterable<{ name: string }>;\n}\n\ninterface BlobServiceClientLike {\n getContainerClient(name: string): ContainerClientLike;\n}\n\nexport interface AzureBlobDriverConfig {\n /** Defaults to `process.env.AZURE_STORAGE_CONNECTION_STRING`. */\n connectionString?: string;\n /** Account URL, e.g. `https://acct.blob.core.windows.net`, optionally carrying a SAS token. */\n url?: string;\n /** A `StorageSharedKeyCredential` or any `TokenCredential`, used with `url`. */\n credential?: unknown;\n /** Default container. Falls back to `process.env.BUCKET_NAME`. */\n container?: string;\n /**\n * A pre-built `BlobServiceClient`. Supply this to configure retries, proxies\n * or a custom credential chain yourself — the driver then never imports the\n * SDK.\n */\n serviceClient?: BlobServiceClientLike;\n}\n\nfunction isNotFound(err: any) {\n return (\n err?.statusCode === 404 ||\n err?.details?.errorCode === \"BlobNotFound\" ||\n err?.code === \"BlobNotFound\"\n );\n}\n\nfunction isInvalidRange(err: any) {\n return (\n err?.statusCode === 416 ||\n err?.details?.errorCode === \"InvalidRange\" ||\n err?.code === \"InvalidRange\"\n );\n}\n\n/**\n * Azure Blob Storage.\n *\n * `@azure/storage-blob` is an optional peer dependency, loaded on first use, so\n * apps that do not use Azure never install it.\n */\nexport class AzureBlobDriver extends FileStorageDriver {\n private serviceClientPromise: Promise<BlobServiceClientLike> | null = null;\n\n constructor(private config: AzureBlobDriverConfig = {}) {\n super();\n }\n\n private async serviceClient(): Promise<BlobServiceClientLike> {\n if (this.config.serviceClient) {\n return this.config.serviceClient;\n }\n\n // Memoized so concurrent requests share one client, and one import.\n this.serviceClientPromise ??= (async () => {\n let sdk: any;\n try {\n // @ts-ignore - optional peer dependency, absent unless the app installs it\n sdk = await import(\"@azure/storage-blob\");\n } catch {\n throw new Error(\n \"AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.\",\n );\n }\n\n const connectionString =\n this.config.connectionString ??\n process.env.AZURE_STORAGE_CONNECTION_STRING;\n\n if (this.config.url) {\n return new sdk.BlobServiceClient(this.config.url, this.config.credential);\n }\n if (connectionString) {\n return sdk.BlobServiceClient.fromConnectionString(connectionString);\n }\n throw new Error(\n \"AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.\",\n );\n })();\n\n return this.serviceClientPromise;\n }\n\n private async blob(name: string, container?: string) {\n if (!name) {\n throw new Error(\"Object name has to be specified\");\n }\n const containerName =\n container ?? this.config.container ?? process.env.BUCKET_NAME;\n if (!containerName) {\n throw new Error(\n \"AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.\",\n );\n }\n const service = await this.serviceClient();\n return service.getContainerClient(containerName).getBlockBlobClient(name);\n }\n\n async put(params: PutFileParams | Blob) {\n let body: Blob | File | Buffer;\n let contentType: string | undefined;\n let name: string;\n let container: string | undefined;\n\n if (params instanceof Blob) {\n body = params;\n name = `${Bun.randomUUIDv7()}.${params.type.split(\"/\")[1].split(\";\")[0]}`;\n contentType = params.type;\n } else {\n body = params.body;\n name = params.name;\n container = params.bucket;\n // An explicit contentType wins; otherwise fall back to the blob's own.\n contentType =\n params.contentType ??\n (body instanceof Blob || body instanceof File ? body.type : undefined);\n }\n\n const data =\n body instanceof Buffer\n ? body\n : Buffer.from(await (body as Blob).arrayBuffer());\n\n const blob = await this.blob(name, container);\n await blob.uploadData(data, {\n blobHTTPHeaders: contentType ? { blobContentType: contentType } : undefined,\n });\n\n return name;\n }\n\n async list(folder: string) {\n const containerName = this.config.container ?? process.env.BUCKET_NAME;\n const service = await this.serviceClient();\n const container = service.getContainerClient(containerName!);\n\n const names: string[] = [];\n for await (const blob of container.listBlobsFlat({ prefix: folder })) {\n names.push(blob.name);\n }\n return names;\n }\n\n async fetch(params: ReadFileParams | string) {\n const result = await this.read(\n typeof params === \"string\"\n ? { name: params }\n : { name: params.name, bucket: params.bucket },\n );\n\n return new Response(result.body as BodyInit, {\n headers: {\n \"Content-Type\": result.type,\n \"Content-Length\": String(result.total),\n \"Cache-Control\": \"private, max-age=12000, must-revalidate\",\n \"Last-Modified\": result.lastModified?.toUTCString() ?? \"\",\n ETag: result.etag ?? \"\",\n },\n });\n }\n\n async read(input: ReadFileParams | string): Promise<ReadResult> {\n const params = typeof input === \"string\" ? { name: input } : input;\n const { name, bucket, range = null } = params;\n\n const blob = await this.blob(name, bucket);\n\n // Azure's `download()` takes an absolute offset rather than a Range header,\n // and only emits one when the offset is non-zero or a count is given. Two\n // shapes therefore have to be resolved against the size first, at the cost\n // of a second round trip:\n //\n // - `bytes=-N`, which Azure cannot express at all; and\n // - `bytes=0-`, because `download(0, undefined)` is byte-identical to an\n // unranged read, so Azure answers 200 with no Content-Range and the\n // result comes back non-partial. That is the *first* range a <video>\n // sends, so getting it wrong silently breaks seeking.\n //\n // `bytes=S-` and `bytes=S-E` go straight to the download and read the total\n // back off its Content-Range.\n let offset: number | undefined;\n let count: number | undefined;\n\n const needsResolvedLength =\n range?.kind === \"suffix\" ||\n (range?.kind === \"offset\" && range.end === null && range.start === 0);\n\n if (range && needsResolvedLength) {\n const total = await this.size({ name, bucket });\n const resolved = resolveRange(range, total);\n if (!resolved) {\n throw new RangeNotSatisfiableError(total);\n }\n offset = resolved.start;\n count = resolved.length;\n } else if (range?.kind === \"offset\") {\n offset = range.start;\n count = range.end === null ? undefined : range.end - range.start + 1;\n }\n\n let result: Awaited<ReturnType<BlobClientLike[\"download\"]>>;\n try {\n result = await blob.download(offset, count);\n } catch (err: any) {\n if (isInvalidRange(err)) {\n throw new RangeNotSatisfiableError(await this.size({ name, bucket }));\n }\n if (isNotFound(err)) {\n throw new FileNotFoundError(name);\n }\n throw err;\n }\n\n // Azure reports the authoritative total in Content-Range on a ranged read.\n const contentRange = parseContentRange(result.contentRange);\n const partial = Boolean(contentRange);\n const total = contentRange?.total ?? result.contentLength ?? 0;\n\n return {\n body: await toBody(result),\n start: contentRange?.start ?? 0,\n end: contentRange?.end ?? total - 1,\n total,\n partial,\n type: result.contentType ?? \"application/octet-stream\",\n etag: result.etag || undefined,\n lastModified: result.lastModified,\n name,\n };\n }\n\n async size(params: ReadFileParams | string) {\n const name = typeof params === \"string\" ? params : params.name;\n const bucket = typeof params === \"string\" ? undefined : params.bucket;\n\n const blob = await this.blob(name, bucket);\n try {\n const properties = await blob.getProperties();\n return properties.contentLength ?? 0;\n } catch (err: any) {\n if (isNotFound(err)) {\n throw new FileNotFoundError(name);\n }\n throw err;\n }\n }\n\n async delete(params: ReadFileParams | string) {\n const name = typeof params === \"string\" ? params : params.name;\n const bucket = typeof params === \"string\" ? undefined : params.bucket;\n\n const blob = await this.blob(name, bucket);\n try {\n await blob.delete();\n } catch (err: any) {\n if (isNotFound(err)) {\n throw new FileNotFoundError(name);\n }\n throw err;\n }\n }\n}\n\n/**\n * Azure hands back a Node stream under Bun and a `Blob` in the browser bundle.\n * A Blob is returned as-is rather than as a stream: Bun keeps an explicit\n * Content-Length for a sized body but falls back to chunked for a stream.\n */\nasync function toBody(result: {\n readableStreamBody?: NodeJS.ReadableStream;\n blobBody?: Promise<Blob>;\n}): Promise<ReadResult[\"body\"]> {\n if (result.blobBody) {\n return await result.blobBody;\n }\n if (result.readableStreamBody) {\n return Readable.toWeb(\n result.readableStreamBody as Readable,\n ) as unknown as ReadableStream<Uint8Array>;\n }\n return null;\n}\n",
|
|
101
|
+
"import type { ServiceToken } from \"../../../container/Container\";\nimport { app } from \"../../../foundation/app\";\nimport { buildResult, windowStartFor } from \"../slidingWindow\";\nimport type { ConsumeParams, RateLimitResult } from \"../types\";\nimport { RateLimiterDriver } from \"./RateLimiterDriver\";\n\n/**\n * The slice of Bun's `RedisClient` this driver needs. Narrow on purpose: any\n * client exposing `send(command, args)` works, which keeps the driver testable\n * without a live server.\n */\nexport interface RateLimiterRedisClient {\n send(command: string, args: string[]): Promise<any>;\n}\n\n/**\n * Stands in for `RedisManager` — same token string, so the container hands back\n * the very same singleton — without importing the class. See `client` below for\n * why the import has to be avoided.\n */\nconst REDIS_TOKEN = { token: \"redis\" } as unknown as ServiceToken<{\n client: RateLimiterRedisClient;\n}>;\n\nexport interface RedisRateLimiterOptions {\n /**\n * Client to run against. Defaults to the app's shared client from\n * `RedisServiceProvider`, resolved lazily so constructing the driver never\n * requires a kernel or a connection.\n */\n client?: RateLimiterRedisClient;\n /** Key namespace. Defaults to `gemi:rl`. */\n prefix?: string;\n /**\n * What to do when Redis is unreachable. `true` (the default) admits the\n * request — a limiter outage should not take the site down with it. Set\n * `false` for endpoints where an unmetered request is worse than a rejected\n * one (payments, sign-up, anything that costs money per call).\n */\n failOpen?: boolean;\n /** Called with every Redis failure. Defaults to `console.error`. */\n onError?: (error: unknown) => void;\n}\n\n/**\n * The counters and the decision have to move together — a GET, a check, then an\n * INCR from the app would let concurrent requests read the same count and all\n * conclude they fit. This script does the whole sliding-window step inside\n * Redis, which is single-threaded, so the read-decide-write is atomic.\n *\n * Only integers cross the boundary: Lua converts numbers to integers on the way\n * out, so the weighted (fractional) usage stays inside the script and the JS\n * side rebuilds the result from the raw counts.\n */\nconst CONSUME_SCRIPT = `\nlocal currentKey = KEYS[1]\nlocal previousKey = KEYS[2]\nlocal limit = tonumber(ARGV[1])\nlocal window = tonumber(ARGV[2])\nlocal elapsed = tonumber(ARGV[3])\nlocal cost = tonumber(ARGV[4])\n\nlocal current = tonumber(redis.call(\"GET\", currentKey)) or 0\nlocal previous = tonumber(redis.call(\"GET\", previousKey)) or 0\n\nlocal weight = (window - elapsed) / window\nif weight < 0 then weight = 0 end\nif weight > 1 then weight = 1 end\n\nlocal usage = previous * weight + current\n\nif usage + cost > limit then\n return {0, current, previous}\nend\n\ncurrent = redis.call(\"INCRBY\", currentKey, cost)\n-- Two windows of lifetime: the key still has to be readable as \"previous\"\n-- while the next window is running.\nredis.call(\"PEXPIRE\", currentKey, window * 2)\n\nreturn {1, current, previous}\n`;\n\n/**\n * Rate limiter backed by Redis, so every instance of the app counts against the\n * same budget. Use it as soon as you run more than one process.\n *\n * ```ts\n * // app/config/ratelimiter.ts\n * import { defineRateLimiterConfig, RedisRateLimiter } from \"gemi/services\";\n *\n * export default defineRateLimiterConfig({\n * driver: new RedisRateLimiter(),\n * });\n * ```\n *\n * Window boundaries come from the app server's clock, not Redis's, so keep\n * instances on NTP. A few seconds of skew only shifts where a window starts; it\n * cannot double a budget the way an unsynchronised fixed window would.\n */\nexport class RedisRateLimiter extends RateLimiterDriver {\n private injectedClient?: RateLimiterRedisClient;\n private prefix: string;\n private failOpen: boolean;\n private onError: (error: unknown) => void;\n\n /** Cached `SCRIPT LOAD` result, so the script body is sent at most once. */\n private scriptSha: Promise<string> | null = null;\n\n constructor(options: RedisRateLimiterOptions = {}) {\n super();\n this.injectedClient = options.client;\n this.prefix = options.prefix ?? \"gemi:rl\";\n this.failOpen = options.failOpen ?? true;\n this.onError = options.onError ?? ((error) => console.error(error));\n }\n\n async consume(params: ConsumeParams): Promise<RateLimitResult> {\n const { key, limit, window } = params;\n const cost = params.cost ?? 1;\n const now = Date.now();\n const windowStart = windowStartFor(now, window);\n const elapsed = now - windowStart;\n const bucket = windowStart / window;\n\n try {\n const reply = await this.run(\n [\n `${this.prefix}:${key}:${bucket}`,\n `${this.prefix}:${key}:${bucket - 1}`,\n ],\n [String(limit), String(window), String(elapsed), String(cost)],\n );\n\n const [allowed, current, previous] = (\n Array.isArray(reply) ? reply : []\n ).map(Number);\n\n return buildResult({\n allowed: allowed === 1,\n current: Number.isFinite(current) ? current : 0,\n previous: Number.isFinite(previous) ? previous : 0,\n now,\n elapsed,\n window,\n limit,\n cost,\n });\n } catch (error) {\n this.onError(error);\n\n if (!this.failOpen) {\n return {\n allowed: false,\n limit,\n remaining: 0,\n // Nothing was counted, so there is no decay to wait for — retrying is\n // worth it as soon as Redis is back.\n resetAt: now + window,\n retryAfter: window,\n };\n }\n\n return {\n allowed: true,\n limit,\n remaining: Math.max(0, Math.floor(limit - cost)),\n resetAt: windowStart + window,\n retryAfter: 0,\n };\n }\n }\n\n private get client(): RateLimiterRedisClient {\n if (this.injectedClient) return this.injectedClient;\n\n // Resolved through a locally declared token rather than by importing\n // `RedisManager`: that module imports Bun's `RedisClient` as a value, and\n // importing it here would make this driver — and anything that re-exports\n // it — unloadable outside the Bun runtime. The container keys bindings off\n // the token string, so this resolves the same singleton the real class does.\n const container = app();\n const client = container.bound(REDIS_TOKEN)\n ? container.make(REDIS_TOKEN).client\n : undefined;\n\n if (!client) {\n throw new Error(\n \"RedisRateLimiter could not reach the Redis client. Register RedisServiceProvider on your application, or pass a client: new RedisRateLimiter({ client }).\",\n );\n }\n return client;\n }\n\n /** Runs the script by digest, loading it on first use and after a flush. */\n private async run(keys: string[], args: string[]): Promise<any> {\n const client = this.client;\n const argv = [String(keys.length), ...keys, ...args];\n\n try {\n return await client.send(\"EVALSHA\", [await this.load(client), ...argv]);\n } catch (error) {\n // The server restarted or someone ran SCRIPT FLUSH between our load and\n // this call. Re-load once and retry; a second failure is a real error.\n if (!isNoScriptError(error)) throw error;\n this.scriptSha = null;\n return await client.send(\"EVALSHA\", [await this.load(client), ...argv]);\n }\n }\n\n private load(client: RateLimiterRedisClient) {\n if (!this.scriptSha) {\n this.scriptSha = Promise.resolve(\n client.send(\"SCRIPT\", [\"LOAD\", CONSUME_SCRIPT]),\n )\n .then(String)\n .catch((error) => {\n // Never cache a rejection — the next request must be free to retry.\n this.scriptSha = null;\n throw error;\n });\n }\n return this.scriptSha;\n }\n}\n\nfunction isNoScriptError(error: unknown) {\n return String((error as Error)?.message ?? error).includes(\"NOSCRIPT\");\n}\n",
|
|
102
|
+
"import { app } from \"../../foundation/app\";\nimport { QueueManager } from \"./QueueManager\";\n\nexport class Job {\n static name = \"unset\";\n worker = false;\n maxAttempts = 3;\n\n run(..._args: any[]): Promise<any> | any {}\n\n onFail(_error: Error, ..._args: any[]): void {}\n onSuccess(_result: any, ..._args: any[]): void {}\n onDeadletter(_error: Error, ..._args: any[]): void {}\n\n static dispatch<T extends Job>(\n this: new () => T,\n ...args: Parameters<T[\"run\"]>\n ): void {\n if (this.name === \"unset\") {\n throw new Error(\"Cannot dispatch a job with no name\");\n }\n\n app(QueueManager).push(this, JSON.stringify(args));\n }\n}\n",
|
|
103
|
+
"import { HttpRequest } from \"../../http/HttpRequest\";\n\nexport abstract class OAuthProvider {\n abstract getRedirectUrl(req: HttpRequest): string | Promise<string>;\n abstract onCallback(\n req: HttpRequest,\n ): Promise<{\n email?: string;\n name?: string;\n username?: string;\n providerId?: string;\n }>;\n}\n",
|
|
104
|
+
"import type { HttpRequest } from \"../../http/HttpRequest\";\nimport { OAuthProvider } from \"./OAuthProvider\";\n\ntype Config = {\n clientId: string;\n scope: string;\n clientSecret: string;\n redirectPath: string;\n};\n\nconst defaultConfig: Config = {\n clientId: process.env.GOOGLE_CLIENT_ID!,\n clientSecret: process.env.GOOGLE_CLIENT_SECRET!,\n redirectPath: \"/auth/oauth/google/callback\",\n scope:\n \"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email\",\n};\n\nexport class GoogleOAuthProvider extends OAuthProvider {\n config: {\n clientId: string;\n clientSecret: string;\n redirectPath: string;\n scope: string;\n };\n constructor(config: Partial<Config> = {}) {\n super();\n this.config = { ...defaultConfig, ...config };\n }\n\n getRedirectUrl() {\n const scope = this.config.scope;\n const clientId = this.config.clientId;\n\n const url = new URL(\"https://accounts.google.com/o/oauth2/v2/auth\");\n const params = {\n scope,\n include_granted_scopes: \"true\",\n response_type: \"code\",\n state: \"state_parameter_passthrough_value\",\n redirect_uri: `${process.env.HOST_NAME}/auth/oauth/google/callback`,\n client_id: clientId,\n };\n\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.append(key, value);\n }\n\n const str = url.toString();\n\n return str;\n }\n\n async onCallback(req: HttpRequest) {\n const url = new URL(\"https://oauth2.googleapis.com/token\");\n url.searchParams.append(\"code\", req.search.get(\"code\"));\n url.searchParams.append(\"client_id\", this.config.clientId);\n url.searchParams.append(\"client_secret\", this.config.clientSecret);\n url.searchParams.append(\"grant_type\", \"authorization_code\");\n url.searchParams.append(\n \"redirect_uri\",\n `${process.env.HOST_NAME}${this.config.redirectPath}`,\n );\n const res = await fetch(url.toString(), {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n });\n\n const { access_token } = await res.json();\n\n const userresponse = await fetch(\n `https://www.googleapis.com/oauth2/v3/userinfo?access_token=${access_token}`,\n );\n\n const user = await userresponse.json();\n\n if (!user.email) {\n console.error(\n \"Google OAuth error: email not found in user info response\",\n user,\n );\n }\n\n return { name: user.name, email: user.email };\n }\n}\n",
|
|
105
|
+
"export const API_V2_PREFIX = 'https://api.x.com/2/';\nexport const API_V2_LABS_PREFIX = 'https://api.x.com/labs/2/';\nexport const API_V1_1_PREFIX = 'https://api.x.com/1.1/';\nexport const API_V1_1_UPLOAD_PREFIX = 'https://upload.x.com/1.1/';\nexport const API_V1_1_STREAM_PREFIX = 'https://stream.x.com/1.1/';\nexport const API_ADS_PREFIX = 'https://ads-api.x.com/12/';\nexport const API_ADS_SANDBOX_PREFIX = 'https://ads-api-sandbox.twitter.com/12/';\n",
|
|
106
|
+
"/** TwitterPaginator: able to get consume data from initial request, then fetch next data sequentially. */\nexport class TwitterPaginator {\n // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected\n constructor({ realData, rateLimit, instance, queryParams, sharedParams }) {\n this._maxResultsWhenFetchLast = 100;\n this._realData = realData;\n this._rateLimit = rateLimit;\n this._instance = instance;\n this._queryParams = queryParams;\n this._sharedParams = sharedParams;\n }\n get _isRateLimitOk() {\n if (!this._rateLimit) {\n return true;\n }\n const resetDate = this._rateLimit.reset * 1000;\n if (resetDate < Date.now()) {\n return true;\n }\n return this._rateLimit.remaining > 0;\n }\n makeRequest(queryParams) {\n return this._instance.get(this.getEndpoint(), queryParams, { fullResponse: true, params: this._sharedParams });\n }\n makeNewInstanceFromResult(result, queryParams) {\n // Construct a subclass\n return new this.constructor({\n realData: result.data,\n rateLimit: result.rateLimit,\n instance: this._instance,\n queryParams,\n sharedParams: this._sharedParams,\n });\n }\n getEndpoint() {\n return this._endpoint;\n }\n injectQueryParams(maxResults) {\n return {\n ...(maxResults ? { max_results: maxResults } : {}),\n ...this._queryParams,\n };\n }\n /* ---------------------- */\n /* Real paginator methods */\n /* ---------------------- */\n /**\n * Next page.\n */\n async next(maxResults) {\n const queryParams = this.getNextQueryParams(maxResults);\n const result = await this.makeRequest(queryParams);\n return this.makeNewInstanceFromResult(result, queryParams);\n }\n /**\n * Next page, but store it in current instance.\n */\n async fetchNext(maxResults) {\n const queryParams = this.getNextQueryParams(maxResults);\n const result = await this.makeRequest(queryParams);\n // Await in case of async sub-methods\n await this.refreshInstanceFromResult(result, true);\n return this;\n }\n /**\n * Fetch up to {count} items after current page,\n * as long as rate limit is not hit and Twitter has some results\n */\n async fetchLast(count = Infinity) {\n let queryParams = this.getNextQueryParams(this._maxResultsWhenFetchLast);\n let resultCount = 0;\n // Break at rate limit limit\n while (resultCount < count && this._isRateLimitOk) {\n const response = await this.makeRequest(queryParams);\n await this.refreshInstanceFromResult(response, true);\n resultCount += this.getPageLengthFromRequest(response);\n if (this.isFetchLastOver(response)) {\n break;\n }\n queryParams = this.getNextQueryParams(this._maxResultsWhenFetchLast);\n }\n return this;\n }\n get rateLimit() {\n var _a;\n return { ...(_a = this._rateLimit) !== null && _a !== void 0 ? _a : {} };\n }\n /** Get raw data returned by Twitter API. */\n get data() {\n return this._realData;\n }\n get done() {\n return !this.canFetchNextPage(this._realData);\n }\n /**\n * Iterate over currently fetched items.\n */\n *[Symbol.iterator]() {\n yield* this.getItemArray();\n }\n /**\n * Iterate over items \"indefinitely\" (until rate limit is hit / they're no more items available)\n * This will **mutate the current instance** and fill data, metas, etc. inside this instance.\n *\n * If you need to handle concurrent requests, or you need to rely on immutability, please use `.fetchAndIterate()` instead.\n */\n async *[Symbol.asyncIterator]() {\n yield* this.getItemArray();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let paginator = this;\n let canFetchNextPage = this.canFetchNextPage(this._realData);\n while (canFetchNextPage && this._isRateLimitOk && paginator.getItemArray().length > 0) {\n const next = await paginator.next(this._maxResultsWhenFetchLast);\n // Store data into current instance [needed to access includes and meta]\n this.refreshInstanceFromResult({ data: next._realData, headers: {}, rateLimit: next._rateLimit }, true);\n canFetchNextPage = this.canFetchNextPage(next._realData);\n const items = next.getItemArray();\n yield* items;\n paginator = next;\n }\n }\n /**\n * Iterate over items \"indefinitely\" without modifying the current instance (until rate limit is hit / they're no more items available)\n *\n * This will **NOT** mutate the current instance, meaning that current instance will not inherit from `includes` and `meta` (v2 API only).\n * Use `Symbol.asyncIterator` (`for-await of`) to directly access items with current instance mutation.\n */\n async *fetchAndIterate() {\n for (const item of this.getItemArray()) {\n yield [item, this];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let paginator = this;\n let canFetchNextPage = this.canFetchNextPage(this._realData);\n while (canFetchNextPage && this._isRateLimitOk && paginator.getItemArray().length > 0) {\n const next = await paginator.next(this._maxResultsWhenFetchLast);\n // Store data into current instance [needed to access includes and meta]\n this.refreshInstanceFromResult({ data: next._realData, headers: {}, rateLimit: next._rateLimit }, true);\n canFetchNextPage = this.canFetchNextPage(next._realData);\n for (const item of next.getItemArray()) {\n yield [item, next];\n }\n this._rateLimit = next._rateLimit;\n paginator = next;\n }\n }\n}\n/** PreviousableTwitterPaginator: a TwitterPaginator able to get consume data from both side, next and previous. */\nexport class PreviousableTwitterPaginator extends TwitterPaginator {\n /**\n * Previous page (new tweets)\n */\n async previous(maxResults) {\n const queryParams = this.getPreviousQueryParams(maxResults);\n const result = await this.makeRequest(queryParams);\n return this.makeNewInstanceFromResult(result, queryParams);\n }\n /**\n * Previous page, but in current instance.\n */\n async fetchPrevious(maxResults) {\n const queryParams = this.getPreviousQueryParams(maxResults);\n const result = await this.makeRequest(queryParams);\n await this.refreshInstanceFromResult(result, false);\n return this;\n }\n}\nexport default TwitterPaginator;\n",
|
|
107
|
+
"import TwitterPaginator from './TwitterPaginator';\nexport class CursoredV1Paginator extends TwitterPaginator {\n getNextQueryParams(maxResults) {\n var _a;\n return {\n ...this._queryParams,\n cursor: (_a = this._realData.next_cursor_str) !== null && _a !== void 0 ? _a : this._realData.next_cursor,\n ...(maxResults ? { count: maxResults } : {}),\n };\n }\n isFetchLastOver(result) {\n // If we cant fetch next page\n return !this.canFetchNextPage(result.data);\n }\n canFetchNextPage(result) {\n // If one of cursor is valid\n return !this.isNextCursorInvalid(result.next_cursor) || !this.isNextCursorInvalid(result.next_cursor_str);\n }\n isNextCursorInvalid(value) {\n return value === undefined\n || value === 0\n || value === -1\n || value === '0'\n || value === '-1';\n }\n}\n",
|
|
108
|
+
"import { CursoredV1Paginator } from './paginator.v1';\nexport class DmEventsV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'direct_messages/events/list.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.events.push(...result.events);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.events.length;\n }\n getItemArray() {\n return this.events;\n }\n /**\n * Events returned by paginator.\n */\n get events() {\n return this._realData.events;\n }\n}\nexport class WelcomeDmV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'direct_messages/welcome_messages/list.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.welcome_messages.push(...result.welcome_messages);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.welcome_messages.length;\n }\n getItemArray() {\n return this.welcomeMessages;\n }\n get welcomeMessages() {\n return this._realData.welcome_messages;\n }\n}\n",
|
|
109
|
+
"export var EUploadMimeType;\n(function (EUploadMimeType) {\n EUploadMimeType[\"Jpeg\"] = \"image/jpeg\";\n EUploadMimeType[\"Mp4\"] = \"video/mp4\";\n EUploadMimeType[\"Mov\"] = \"video/quicktime\";\n EUploadMimeType[\"Gif\"] = \"image/gif\";\n EUploadMimeType[\"Png\"] = \"image/png\";\n EUploadMimeType[\"Srt\"] = \"text/plain\";\n EUploadMimeType[\"Webp\"] = \"image/webp\";\n})(EUploadMimeType || (EUploadMimeType = {}));\n",
|
|
110
|
+
"// Creation of DMs\nexport var EDirectMessageEventTypeV1;\n(function (EDirectMessageEventTypeV1) {\n EDirectMessageEventTypeV1[\"Create\"] = \"message_create\";\n EDirectMessageEventTypeV1[\"WelcomeCreate\"] = \"welcome_message\";\n})(EDirectMessageEventTypeV1 || (EDirectMessageEventTypeV1 = {}));\n",
|
|
111
|
+
"export var ETwitterApiError;\n(function (ETwitterApiError) {\n ETwitterApiError[\"Request\"] = \"request\";\n ETwitterApiError[\"PartialResponse\"] = \"partial-response\";\n ETwitterApiError[\"Response\"] = \"response\";\n})(ETwitterApiError || (ETwitterApiError = {}));\n/* ERRORS INSTANCES */\nclass ApiError extends Error {\n constructor() {\n super(...arguments);\n this.error = true;\n }\n}\nexport class ApiRequestError extends ApiError {\n constructor(message, options) {\n super(message);\n this.type = ETwitterApiError.Request;\n Error.captureStackTrace(this, this.constructor);\n // Do not show on Node stack trace\n Object.defineProperty(this, '_options', { value: options });\n }\n get request() {\n return this._options.request;\n }\n get requestError() {\n return this._options.requestError;\n }\n toJSON() {\n return {\n type: this.type,\n error: this.requestError,\n };\n }\n}\nexport class ApiPartialResponseError extends ApiError {\n constructor(message, options) {\n super(message);\n this.type = ETwitterApiError.PartialResponse;\n Error.captureStackTrace(this, this.constructor);\n // Do not show on Node stack trace\n Object.defineProperty(this, '_options', { value: options });\n }\n get request() {\n return this._options.request;\n }\n get response() {\n return this._options.response;\n }\n get responseError() {\n return this._options.responseError;\n }\n get rawContent() {\n return this._options.rawContent;\n }\n toJSON() {\n return {\n type: this.type,\n error: this.responseError,\n };\n }\n}\nexport class ApiResponseError extends ApiError {\n constructor(message, options) {\n super(message);\n this.type = ETwitterApiError.Response;\n Error.captureStackTrace(this, this.constructor);\n // Do not show on Node stack trace\n Object.defineProperty(this, '_options', { value: options });\n this.code = options.code;\n this.headers = options.headers;\n this.rateLimit = options.rateLimit;\n // Fix bad error data payload on some v1 endpoints (see https://github.com/PLhery/node-twitter-api-v2/issues/342)\n if (options.data && typeof options.data === 'object' && 'error' in options.data && !options.data.errors) {\n const data = { ...options.data };\n data.errors = [{\n code: EApiV1ErrorCode.InternalError,\n message: data.error,\n }];\n this.data = data;\n }\n else {\n this.data = options.data;\n }\n }\n get request() {\n return this._options.request;\n }\n get response() {\n return this._options.response;\n }\n /** Check for presence of one of given v1/v2 error codes. */\n hasErrorCode(...codes) {\n const errors = this.errors;\n // No errors\n if (!(errors === null || errors === void 0 ? void 0 : errors.length)) {\n return false;\n }\n // v1 errors\n if ('code' in errors[0]) {\n const v1errors = errors;\n return v1errors.some(error => codes.includes(error.code));\n }\n // v2 error\n const v2error = this.data;\n return codes.includes(v2error.type);\n }\n get errors() {\n var _a;\n return (_a = this.data) === null || _a === void 0 ? void 0 : _a.errors;\n }\n get rateLimitError() {\n return this.code === 420 || this.code === 429;\n }\n get isAuthError() {\n if (this.code === 401) {\n return true;\n }\n return this.hasErrorCode(EApiV1ErrorCode.AuthTimestampInvalid, EApiV1ErrorCode.AuthenticationFail, EApiV1ErrorCode.BadAuthenticationData, EApiV1ErrorCode.InvalidOrExpiredToken);\n }\n toJSON() {\n return {\n type: this.type,\n code: this.code,\n error: this.data,\n rateLimit: this.rateLimit,\n headers: this.headers,\n };\n }\n}\nexport var EApiV1ErrorCode;\n(function (EApiV1ErrorCode) {\n // Location errors\n EApiV1ErrorCode[EApiV1ErrorCode[\"InvalidCoordinates\"] = 3] = \"InvalidCoordinates\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoLocationFound\"] = 13] = \"NoLocationFound\";\n // Authentication failures\n EApiV1ErrorCode[EApiV1ErrorCode[\"AuthenticationFail\"] = 32] = \"AuthenticationFail\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"InvalidOrExpiredToken\"] = 89] = \"InvalidOrExpiredToken\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"UnableToVerifyCredentials\"] = 99] = \"UnableToVerifyCredentials\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"AuthTimestampInvalid\"] = 135] = \"AuthTimestampInvalid\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"BadAuthenticationData\"] = 215] = \"BadAuthenticationData\";\n // Resources not found or visible\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoUserMatch\"] = 17] = \"NoUserMatch\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"UserNotFound\"] = 50] = \"UserNotFound\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"ResourceNotFound\"] = 34] = \"ResourceNotFound\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetNotFound\"] = 144] = \"TweetNotFound\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetNotVisible\"] = 179] = \"TweetNotVisible\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NotAllowedResource\"] = 220] = \"NotAllowedResource\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"MediaIdNotFound\"] = 325] = \"MediaIdNotFound\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetNoLongerAvailable\"] = 421] = \"TweetNoLongerAvailable\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetViolatedRules\"] = 422] = \"TweetViolatedRules\";\n // Account errors\n EApiV1ErrorCode[EApiV1ErrorCode[\"TargetUserSuspended\"] = 63] = \"TargetUserSuspended\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"YouAreSuspended\"] = 64] = \"YouAreSuspended\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"AccountUpdateFailed\"] = 120] = \"AccountUpdateFailed\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoSelfSpamReport\"] = 36] = \"NoSelfSpamReport\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoSelfMute\"] = 271] = \"NoSelfMute\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"AccountLocked\"] = 326] = \"AccountLocked\";\n // Application live errors / Twitter errors\n EApiV1ErrorCode[EApiV1ErrorCode[\"RateLimitExceeded\"] = 88] = \"RateLimitExceeded\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoDMRightForApp\"] = 93] = \"NoDMRightForApp\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"OverCapacity\"] = 130] = \"OverCapacity\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"InternalError\"] = 131] = \"InternalError\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TooManyFollowings\"] = 161] = \"TooManyFollowings\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetLimitExceeded\"] = 185] = \"TweetLimitExceeded\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"DuplicatedTweet\"] = 187] = \"DuplicatedTweet\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TooManySpamReports\"] = 205] = \"TooManySpamReports\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"RequestLooksLikeSpam\"] = 226] = \"RequestLooksLikeSpam\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoWriteRightForApp\"] = 261] = \"NoWriteRightForApp\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetActionsDisabled\"] = 425] = \"TweetActionsDisabled\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetRepliesRestricted\"] = 433] = \"TweetRepliesRestricted\";\n // Invalid request parameters\n EApiV1ErrorCode[EApiV1ErrorCode[\"NamedParameterMissing\"] = 38] = \"NamedParameterMissing\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"InvalidAttachmentUrl\"] = 44] = \"InvalidAttachmentUrl\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetTextTooLong\"] = 186] = \"TweetTextTooLong\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"MissingUrlParameter\"] = 195] = \"MissingUrlParameter\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"NoMultipleGifs\"] = 323] = \"NoMultipleGifs\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"InvalidMediaIds\"] = 324] = \"InvalidMediaIds\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"InvalidUrl\"] = 407] = \"InvalidUrl\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TooManyTweetAttachments\"] = 386] = \"TooManyTweetAttachments\";\n // Already sent/deleted item\n EApiV1ErrorCode[EApiV1ErrorCode[\"StatusAlreadyFavorited\"] = 139] = \"StatusAlreadyFavorited\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"FollowRequestAlreadySent\"] = 160] = \"FollowRequestAlreadySent\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"CannotUnmuteANonMutedAccount\"] = 272] = \"CannotUnmuteANonMutedAccount\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"TweetAlreadyRetweeted\"] = 327] = \"TweetAlreadyRetweeted\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"ReplyToDeletedTweet\"] = 385] = \"ReplyToDeletedTweet\";\n // DM Errors\n EApiV1ErrorCode[EApiV1ErrorCode[\"DMReceiverNotFollowingYou\"] = 150] = \"DMReceiverNotFollowingYou\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"UnableToSendDM\"] = 151] = \"UnableToSendDM\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"MustAllowDMFromAnyone\"] = 214] = \"MustAllowDMFromAnyone\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"CannotSendDMToThisUser\"] = 349] = \"CannotSendDMToThisUser\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"DMTextTooLong\"] = 354] = \"DMTextTooLong\";\n // Application misconfiguration\n EApiV1ErrorCode[EApiV1ErrorCode[\"SubscriptionAlreadyExists\"] = 355] = \"SubscriptionAlreadyExists\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"CallbackUrlNotApproved\"] = 415] = \"CallbackUrlNotApproved\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"SuspendedApplication\"] = 416] = \"SuspendedApplication\";\n EApiV1ErrorCode[EApiV1ErrorCode[\"OobOauthIsNotAllowed\"] = 417] = \"OobOauthIsNotAllowed\";\n})(EApiV1ErrorCode || (EApiV1ErrorCode = {}));\nexport var EApiV2ErrorCode;\n(function (EApiV2ErrorCode) {\n // Request errors\n EApiV2ErrorCode[\"InvalidRequest\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#invalid-request\";\n EApiV2ErrorCode[\"ClientForbidden\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#client-forbidden\";\n EApiV2ErrorCode[\"UnsupportedAuthentication\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#unsupported-authentication\";\n // Stream rules errors\n EApiV2ErrorCode[\"InvalidRules\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#invalid-rules\";\n EApiV2ErrorCode[\"TooManyRules\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#rule-cap\";\n EApiV2ErrorCode[\"DuplicatedRules\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#duplicate-rules\";\n // Twitter errors\n EApiV2ErrorCode[\"RateLimitExceeded\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#usage-capped\";\n EApiV2ErrorCode[\"ConnectionError\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#streaming-connection\";\n EApiV2ErrorCode[\"ClientDisconnected\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#client-disconnected\";\n EApiV2ErrorCode[\"TwitterDisconnectedYou\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#operational-disconnect\";\n // Resource errors\n EApiV2ErrorCode[\"ResourceNotFound\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#resource-not-found\";\n EApiV2ErrorCode[\"ResourceUnauthorized\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#not-authorized-for-resource\";\n EApiV2ErrorCode[\"DisallowedResource\"] = \"https://developer.x.com/en/support/x-api/error-troubleshooting#disallowed-resource\";\n})(EApiV2ErrorCode || (EApiV2ErrorCode = {}));\n",
|
|
112
|
+
"export var ETwitterStreamEvent;\n(function (ETwitterStreamEvent) {\n ETwitterStreamEvent[\"Connected\"] = \"connected\";\n ETwitterStreamEvent[\"ConnectError\"] = \"connect error\";\n ETwitterStreamEvent[\"ConnectionError\"] = \"connection error\";\n ETwitterStreamEvent[\"ConnectionClosed\"] = \"connection closed\";\n ETwitterStreamEvent[\"ConnectionLost\"] = \"connection lost\";\n ETwitterStreamEvent[\"ReconnectAttempt\"] = \"reconnect attempt\";\n ETwitterStreamEvent[\"Reconnected\"] = \"reconnected\";\n ETwitterStreamEvent[\"ReconnectError\"] = \"reconnect error\";\n ETwitterStreamEvent[\"ReconnectLimitExceeded\"] = \"reconnect limit exceeded\";\n ETwitterStreamEvent[\"DataKeepAlive\"] = \"data keep-alive\";\n ETwitterStreamEvent[\"Data\"] = \"data event content\";\n ETwitterStreamEvent[\"DataError\"] = \"data twitter error\";\n ETwitterStreamEvent[\"TweetParseError\"] = \"data tweet parse error\";\n ETwitterStreamEvent[\"Error\"] = \"stream error\";\n})(ETwitterStreamEvent || (ETwitterStreamEvent = {}));\n",
|
|
113
|
+
"export class TwitterApiPluginResponseOverride {\n constructor(value) {\n this.value = value;\n }\n}\n",
|
|
114
|
+
"import * as fs from 'fs';\nimport { API_V1_1_PREFIX, API_V1_1_UPLOAD_PREFIX } from '../globals';\nimport { hasMultipleItems } from '../helpers';\nimport { EUploadMimeType, } from '../types';\nimport TwitterApiv1ReadOnly from './client.v1.read';\nimport { getFileHandle, getFileSizeFromFileHandle, getMediaCategoryByMime, getMimeType, readFileIntoBuffer, readNextPartOf, sleepSecs } from './media-helpers.v1';\nconst UPLOAD_ENDPOINT = 'media/upload.json';\n/**\n * Base Twitter v1 client with read/write rights.\n */\nexport default class TwitterApiv1ReadWrite extends TwitterApiv1ReadOnly {\n constructor() {\n super(...arguments);\n this._prefix = API_V1_1_PREFIX;\n }\n /**\n * Get a client with only read rights.\n */\n get readOnly() {\n return this;\n }\n /* Tweet API */\n /**\n * Post a new tweet.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update\n */\n tweet(status, payload = {}) {\n const queryParams = {\n status,\n tweet_mode: 'extended',\n ...payload,\n };\n return this.post('statuses/update.json', queryParams);\n }\n /**\n * Quote an existing tweet.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update\n */\n async quote(status, quotingStatusId, payload = {}) {\n const url = 'https://x.com/i/statuses/' + quotingStatusId;\n return this.tweet(status, { ...payload, attachment_url: url });\n }\n /**\n * Post a series of tweets.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update\n */\n async tweetThread(tweets) {\n const postedTweets = [];\n for (const tweet of tweets) {\n // Retrieve the last sent tweet\n const lastTweet = postedTweets.length ? postedTweets[postedTweets.length - 1] : null;\n // Build the tweet query params\n const queryParams = { ...(typeof tweet === 'string' ? ({ status: tweet }) : tweet) };\n // Reply to an existing tweet if needed\n const inReplyToId = lastTweet ? lastTweet.id_str : queryParams.in_reply_to_status_id;\n const status = queryParams.status;\n if (inReplyToId) {\n postedTweets.push(await this.reply(status, inReplyToId, queryParams));\n }\n else {\n postedTweets.push(await this.tweet(status, queryParams));\n }\n }\n return postedTweets;\n }\n /**\n * Reply to an existing tweet. Shortcut to `.tweet` with tweaked parameters.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update\n */\n reply(status, in_reply_to_status_id, payload = {}) {\n return this.tweet(status, {\n auto_populate_reply_metadata: true,\n in_reply_to_status_id,\n ...payload,\n });\n }\n /**\n * Delete an existing tweet belonging to you.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-destroy-id\n */\n deleteTweet(tweetId) {\n return this.post('statuses/destroy/:id.json', { tweet_mode: 'extended' }, { params: { id: tweetId } });\n }\n /* User API */\n /**\n * Report the specified user as a spam account to Twitter.\n * Additionally, optionally performs the equivalent of POST blocks/create on behalf of the authenticated user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam\n */\n reportUserAsSpam(options) {\n return this.post('users/report_spam.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Turn on/off Retweets and device notifications from the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-update\n */\n updateFriendship(options) {\n return this.post('friendships/update.json', options);\n }\n /**\n * Follow the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create\n */\n createFriendship(options) {\n return this.post('friendships/create.json', options);\n }\n /**\n * Unfollow the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-destroy\n */\n destroyFriendship(options) {\n return this.post('friendships/destroy.json', options);\n }\n /* Account API */\n /**\n * Update current account settings for authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-settings\n */\n updateAccountSettings(options) {\n return this.post('account/settings.json', options);\n }\n /**\n * Sets some values that users are able to set under the \"Account\" tab of their settings page.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile\n */\n updateAccountProfile(options) {\n return this.post('account/update_profile.json', options);\n }\n /**\n * Uploads a profile banner on behalf of the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_banner\n */\n async updateAccountProfileBanner(file, options = {}) {\n const queryParams = {\n banner: await readFileIntoBuffer(file),\n ...options,\n };\n return this.post('account/update_profile_banner.json', queryParams, { forceBodyMode: 'form-data' });\n }\n /**\n * Updates the authenticating user's profile image.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_image\n */\n async updateAccountProfileImage(file, options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n image: await readFileIntoBuffer(file),\n ...options,\n };\n return this.post('account/update_profile_image.json', queryParams, { forceBodyMode: 'form-data' });\n }\n /**\n * Removes the uploaded profile banner for the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-remove_profile_banner\n */\n removeAccountProfileBanner() {\n return this.post('account/remove_profile_banner.json');\n }\n /* Lists */\n /**\n * Creates a new list for the authenticated user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-create\n */\n createList(options) {\n return this.post('lists/create.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Updates the specified list. The authenticated user must own the list to be able to update it.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-update\n */\n updateList(options) {\n return this.post('lists/update.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Deletes the specified list. The authenticated user must own the list to be able to destroy it.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-destroy\n */\n removeList(options) {\n return this.post('lists/destroy.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Adds multiple members to a list, by specifying a comma-separated list of member ids or screen names.\n * If you add a single `user_id` or `screen_name`, it will target `lists/members/create.json`, otherwise\n * it will target `lists/members/create_all.json`.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-members-create_all\n */\n addListMembers(options) {\n const hasMultiple = (options.user_id && hasMultipleItems(options.user_id)) || (options.screen_name && hasMultipleItems(options.screen_name));\n const endpoint = hasMultiple ? 'lists/members/create_all.json' : 'lists/members/create.json';\n return this.post(endpoint, options);\n }\n /**\n * Removes one or more members from a list, by specifying a comma-separated list of member ids or screen names.\n * If you add a single `user_id` or `screen_name`, it will target `lists/members/destroy.json`, otherwise\n * it will target `lists/members/destroy_all.json`.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-members-destroy_all\n */\n removeListMembers(options) {\n const hasMultiple = (options.user_id && hasMultipleItems(options.user_id)) || (options.screen_name && hasMultipleItems(options.screen_name));\n const endpoint = hasMultiple ? 'lists/members/destroy_all.json' : 'lists/members/destroy.json';\n return this.post(endpoint, options);\n }\n /**\n * Subscribes the authenticated user to the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-create\n */\n subscribeToList(options) {\n return this.post('lists/subscribers/create.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Unsubscribes the authenticated user of the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-destroy\n */\n unsubscribeOfList(options) {\n return this.post('lists/subscribers/destroy.json', { tweet_mode: 'extended', ...options });\n }\n /* Media upload API */\n /**\n * This endpoint can be used to provide additional information about the uploaded media_id.\n * This feature is currently only supported for images and GIFs.\n * https://developer.x.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-metadata-create\n */\n createMediaMetadata(mediaId, metadata) {\n return this.post('media/metadata/create.json', { media_id: mediaId, ...metadata }, { prefix: API_V1_1_UPLOAD_PREFIX, forceBodyMode: 'json' });\n }\n /**\n * Use this endpoint to associate uploaded subtitles to an uploaded video. You can associate subtitles to video before or after Tweeting.\n * **To obtain subtitle media ID, you must upload each subtitle file separately using `.uploadMedia()` method.**\n *\n * https://developer.x.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-subtitles-create\n */\n createMediaSubtitles(mediaId, subtitles) {\n return this.post('media/subtitles/create.json', { media_id: mediaId, media_category: 'TweetVideo', subtitle_info: { subtitles } }, { prefix: API_V1_1_UPLOAD_PREFIX, forceBodyMode: 'json' });\n }\n /**\n * Use this endpoint to dissociate subtitles from a video and delete the subtitles. You can dissociate subtitles from a video before or after Tweeting.\n * https://developer.x.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-subtitles-delete\n */\n deleteMediaSubtitles(mediaId, ...languages) {\n return this.post('media/subtitles/delete.json', {\n media_id: mediaId,\n media_category: 'TweetVideo',\n subtitle_info: { subtitles: languages.map(lang => ({ language_code: lang })) },\n }, { prefix: API_V1_1_UPLOAD_PREFIX, forceBodyMode: 'json' });\n }\n async uploadMedia(file, options = {}, returnFullMediaData = false) {\n var _a;\n const chunkLength = (_a = options.chunkLength) !== null && _a !== void 0 ? _a : (1024 * 1024);\n const { fileHandle, mediaCategory, fileSize, mimeType } = await this.getUploadMediaRequirements(file, options);\n // Get the file handle (if not buffer)\n try {\n // Finally! We can send INIT message.\n const mediaData = await this.post(UPLOAD_ENDPOINT, {\n command: 'INIT',\n total_bytes: fileSize,\n media_type: mimeType,\n media_category: mediaCategory,\n additional_owners: options.additionalOwners,\n shared: options.shared ? true : undefined,\n }, { prefix: API_V1_1_UPLOAD_PREFIX });\n // Upload the media chunk by chunk\n await this.mediaChunkedUpload(fileHandle, chunkLength, mediaData.media_id_string, options.maxConcurrentUploads);\n // Finalize media\n const fullMediaData = await this.post(UPLOAD_ENDPOINT, {\n command: 'FINALIZE',\n media_id: mediaData.media_id_string,\n }, { prefix: API_V1_1_UPLOAD_PREFIX });\n if (fullMediaData.processing_info && fullMediaData.processing_info.state !== 'succeeded') {\n // Must wait if video is still computed\n await this.awaitForMediaProcessingCompletion(fullMediaData);\n }\n // Video is ready, return media_id\n if (returnFullMediaData) {\n return fullMediaData;\n }\n else {\n return fullMediaData.media_id_string;\n }\n }\n finally {\n // Close file if any\n if (typeof file === 'number') {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n fs.close(file, () => { });\n }\n else if (typeof fileHandle === 'object' && !(fileHandle instanceof Buffer)) {\n fileHandle.close();\n }\n }\n }\n async awaitForMediaProcessingCompletion(fullMediaData) {\n var _a;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n fullMediaData = await this.mediaInfo(fullMediaData.media_id_string);\n const { processing_info } = fullMediaData;\n if (!processing_info || processing_info.state === 'succeeded') {\n // Ok, completed!\n return;\n }\n if ((_a = processing_info.error) === null || _a === void 0 ? void 0 : _a.code) {\n const { name, message } = processing_info.error;\n throw new Error(`Failed to process media: ${name} - ${message}.`);\n }\n if (processing_info.state === 'failed') {\n // No error data\n throw new Error('Failed to process the media.');\n }\n if (processing_info.check_after_secs) {\n // Await for given seconds\n await sleepSecs(processing_info.check_after_secs);\n }\n else {\n // No info; Await for 5 seconds\n await sleepSecs(5);\n }\n }\n }\n async getUploadMediaRequirements(file, { mimeType, type, target, longVideo } = {}) {\n // Get the file handle (if not buffer)\n let fileHandle;\n try {\n fileHandle = await getFileHandle(file);\n // Get the mimetype\n const realMimeType = getMimeType(file, type, mimeType);\n // Get the media category\n let mediaCategory;\n // If explicit longmp4 OR explicit MIME type and not DM target\n if (realMimeType === EUploadMimeType.Mp4 && ((!mimeType && !type && target !== 'dm') || longVideo)) {\n mediaCategory = 'amplify_video';\n }\n else {\n mediaCategory = getMediaCategoryByMime(realMimeType, target !== null && target !== void 0 ? target : 'tweet');\n }\n return {\n fileHandle,\n mediaCategory,\n fileSize: await getFileSizeFromFileHandle(fileHandle),\n mimeType: realMimeType,\n };\n }\n catch (e) {\n // Close file if any\n if (typeof file === 'number') {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n fs.close(file, () => { });\n }\n else if (typeof fileHandle === 'object' && !(fileHandle instanceof Buffer)) {\n fileHandle.close();\n }\n throw e;\n }\n }\n async mediaChunkedUpload(fileHandle, chunkLength, mediaId, maxConcurrentUploads = 3) {\n // Send chunk by chunk\n let chunkIndex = 0;\n if (maxConcurrentUploads < 1) {\n throw new RangeError('Bad maxConcurrentUploads parameter.');\n }\n // Creating a buffer for doing file stuff (if we don't have one)\n const buffer = fileHandle instanceof Buffer ? undefined : Buffer.alloc(chunkLength);\n // Sliced/filled buffer returned for each part\n let readBuffer;\n // Needed to know when we should stop reading the file\n let nread;\n // Needed to use the buffer object (file handles always \"remembers\" file position)\n let offset = 0;\n [readBuffer, nread] = await readNextPartOf(fileHandle, chunkLength, offset, buffer);\n offset += nread;\n // Handle max concurrent uploads\n const currentUploads = new Set();\n // Read buffer until file is completely read\n while (nread) {\n const mediaBufferPart = readBuffer.slice(0, nread);\n // Sent part if part has something inside\n if (mediaBufferPart.length) {\n const request = this.post(UPLOAD_ENDPOINT, {\n command: 'APPEND',\n media_id: mediaId,\n segment_index: chunkIndex,\n media: mediaBufferPart,\n }, { prefix: API_V1_1_UPLOAD_PREFIX });\n currentUploads.add(request);\n request.then(() => {\n currentUploads.delete(request);\n });\n chunkIndex++;\n }\n if (currentUploads.size >= maxConcurrentUploads) {\n // Await for first promise to be finished\n await Promise.race(currentUploads);\n }\n [readBuffer, nread] = await readNextPartOf(fileHandle, chunkLength, offset, buffer);\n offset += nread;\n }\n await Promise.all([...currentUploads]);\n }\n}\n",
|
|
115
|
+
"export const TwitterApiV2Settings = {\n debug: false,\n deprecationWarnings: true,\n logger: { log: console.log.bind(console) },\n};\n",
|
|
116
|
+
"import { TwitterApiV2Settings } from './settings';\nexport function sharedPromise(getter) {\n const sharedPromise = {\n value: undefined,\n promise: getter().then(val => {\n sharedPromise.value = val;\n return val;\n }),\n };\n return sharedPromise;\n}\nexport function arrayWrap(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return [value];\n}\nexport function trimUndefinedProperties(object) {\n // Delete undefined parameters\n for (const parameter of Object.keys(object)) {\n if (object[parameter] === undefined) {\n delete object[parameter];\n }\n }\n}\nexport function isTweetStreamV2ErrorPayload(payload) {\n // Is error only if 'errors' is present and 'data' does not exists\n return typeof payload === 'object'\n && 'errors' in payload\n && !('data' in payload);\n}\nexport function hasMultipleItems(item) {\n if (Array.isArray(item) && item.length > 1) {\n return true;\n }\n return item.toString().includes(',');\n}\nconst deprecationWarningsCache = new Set();\nexport function safeDeprecationWarning(message) {\n if (typeof console === 'undefined' || !console.warn || !TwitterApiV2Settings.deprecationWarnings) {\n return;\n }\n const hash = `${message.instance}-${message.method}-${message.problem}`;\n if (deprecationWarningsCache.has(hash)) {\n return;\n }\n const formattedMsg = `[twitter-api-v2] Deprecation warning: In ${message.instance}.${message.method}() call` +\n `, ${message.problem}.\\n${message.resolution}.`;\n console.warn(formattedMsg);\n console.warn('To disable this message, import variable TwitterApiV2Settings from twitter-api-v2 and set TwitterApiV2Settings.deprecationWarnings to false.');\n deprecationWarningsCache.add(hash);\n}\n",
|
|
117
|
+
"import { EventEmitter } from 'events';\nimport RequestHandlerHelper from '../client-mixins/request-handler.helper';\nimport { ETwitterStreamEvent } from '../types';\nimport TweetStreamEventCombiner from './TweetStreamEventCombiner';\nimport TweetStreamParser, { EStreamParserEvent } from './TweetStreamParser';\n// In seconds\nconst basicRetriesAttempt = [5, 15, 30, 60, 90, 120, 180, 300, 600, 900];\n// Default retry function\nconst basicReconnectRetry = tryOccurrence => tryOccurrence > basicRetriesAttempt.length\n ? 901000\n : basicRetriesAttempt[tryOccurrence - 1] * 1000;\nexport class TweetStream extends EventEmitter {\n constructor(requestData, connection) {\n super();\n this.requestData = requestData;\n this.autoReconnect = false;\n this.autoReconnectRetries = 5;\n // 2 minutes without any Twitter signal\n this.keepAliveTimeoutMs = 1000 * 120;\n this.nextRetryTimeout = basicReconnectRetry;\n this.parser = new TweetStreamParser();\n this.connectionProcessRunning = false;\n this.onKeepAliveTimeout = this.onKeepAliveTimeout.bind(this);\n this.initEventsFromParser();\n if (connection) {\n this.req = connection.req;\n this.res = connection.res;\n this.originalResponse = connection.originalResponse;\n this.initEventsFromRequest();\n }\n }\n on(event, handler) {\n return super.on(event, handler);\n }\n initEventsFromRequest() {\n if (!this.req || !this.res) {\n throw new Error('TweetStream error: You cannot init TweetStream without a request and response object.');\n }\n const errorHandler = (err) => {\n this.emit(ETwitterStreamEvent.ConnectionError, err);\n this.emit(ETwitterStreamEvent.Error, {\n type: ETwitterStreamEvent.ConnectionError,\n error: err,\n message: 'Connection lost or closed by Twitter.',\n });\n this.onConnectionError();\n };\n this.req.on('error', errorHandler);\n this.res.on('error', errorHandler);\n // Usually, connection should not be closed by Twitter!\n this.res.on('close', () => errorHandler(new Error('Connection closed by Twitter.')));\n this.res.on('data', (chunk) => {\n this.resetKeepAliveTimeout();\n if (chunk.toString() === '\\r\\n') {\n return this.emit(ETwitterStreamEvent.DataKeepAlive);\n }\n this.parser.push(chunk.toString());\n });\n // Starts the keep alive timeout\n this.resetKeepAliveTimeout();\n }\n initEventsFromParser() {\n const payloadIsError = this.requestData.payloadIsError;\n this.parser.on(EStreamParserEvent.ParsedData, (eventData) => {\n if (payloadIsError && payloadIsError(eventData)) {\n this.emit(ETwitterStreamEvent.DataError, eventData);\n this.emit(ETwitterStreamEvent.Error, {\n type: ETwitterStreamEvent.DataError,\n error: eventData,\n message: 'Twitter sent a payload that is detected as an error payload.',\n });\n }\n else {\n this.emit(ETwitterStreamEvent.Data, eventData);\n }\n });\n this.parser.on(EStreamParserEvent.ParseError, (error) => {\n this.emit(ETwitterStreamEvent.TweetParseError, error);\n this.emit(ETwitterStreamEvent.Error, {\n type: ETwitterStreamEvent.TweetParseError,\n error,\n message: 'Failed to parse stream data.',\n });\n });\n }\n resetKeepAliveTimeout() {\n this.unbindKeepAliveTimeout();\n if (this.keepAliveTimeoutMs !== Infinity) {\n this.keepAliveTimeout = setTimeout(this.onKeepAliveTimeout, this.keepAliveTimeoutMs);\n }\n }\n onKeepAliveTimeout() {\n this.emit(ETwitterStreamEvent.ConnectionLost);\n this.onConnectionError();\n }\n unbindTimeouts() {\n this.unbindRetryTimeout();\n this.unbindKeepAliveTimeout();\n }\n unbindKeepAliveTimeout() {\n if (this.keepAliveTimeout) {\n clearTimeout(this.keepAliveTimeout);\n this.keepAliveTimeout = undefined;\n }\n }\n unbindRetryTimeout() {\n if (this.retryTimeout) {\n clearTimeout(this.retryTimeout);\n this.retryTimeout = undefined;\n }\n }\n closeWithoutEmit() {\n this.unbindTimeouts();\n if (this.res) {\n this.res.removeAllListeners();\n // Close response silently\n this.res.destroy();\n }\n if (this.req) {\n this.req.removeAllListeners();\n // Close connection silently\n this.req.destroy();\n }\n }\n /** Terminate connection to Twitter. */\n close() {\n this.emit(ETwitterStreamEvent.ConnectionClosed);\n this.closeWithoutEmit();\n }\n /** Unbind all listeners, and close connection. */\n destroy() {\n this.removeAllListeners();\n this.close();\n }\n /**\n * Make a new request that creates a new `TweetStream` instance with\n * the same parameters, and bind current listeners to new stream.\n */\n async clone() {\n const newRequest = new RequestHandlerHelper(this.requestData);\n const newStream = await newRequest.makeRequestAsStream();\n // Clone attached listeners\n const listenerNames = this.eventNames();\n for (const listener of listenerNames) {\n const callbacks = this.listeners(listener);\n for (const callback of callbacks) {\n newStream.on(listener, callback);\n }\n }\n return newStream;\n }\n /** Start initial stream connection, setup options on current instance and returns itself. */\n async connect(options = {}) {\n if (typeof options.autoReconnect !== 'undefined') {\n this.autoReconnect = options.autoReconnect;\n }\n if (typeof options.autoReconnectRetries !== 'undefined') {\n this.autoReconnectRetries = options.autoReconnectRetries === 'unlimited'\n ? Infinity\n : options.autoReconnectRetries;\n }\n if (typeof options.keepAliveTimeout !== 'undefined') {\n this.keepAliveTimeoutMs = options.keepAliveTimeout === 'disable'\n ? Infinity\n : options.keepAliveTimeout;\n }\n if (typeof options.nextRetryTimeout !== 'undefined') {\n this.nextRetryTimeout = options.nextRetryTimeout;\n }\n // Make the connection\n this.unbindTimeouts();\n try {\n await this.reconnect();\n }\n catch (e) {\n this.emit(ETwitterStreamEvent.ConnectError, 0);\n this.emit(ETwitterStreamEvent.Error, {\n type: ETwitterStreamEvent.ConnectError,\n error: e,\n message: 'Connect error - Initial connection just failed.',\n });\n // Only make a reconnection attempt if autoReconnect is true!\n // Otherwise, let error be propagated\n if (this.autoReconnect) {\n this.makeAutoReconnectRetry(0, e);\n }\n else {\n throw e;\n }\n }\n return this;\n }\n /** Make a new request to (re)connect to Twitter. */\n async reconnect() {\n if (this.connectionProcessRunning) {\n throw new Error('Connection process is already running.');\n }\n this.connectionProcessRunning = true;\n try {\n let initialConnection = true;\n if (this.req) {\n initialConnection = false;\n this.closeWithoutEmit();\n }\n const { req, res, originalResponse } = await new RequestHandlerHelper(this.requestData).makeRequestAndResolveWhenReady();\n this.req = req;\n this.res = res;\n this.originalResponse = originalResponse;\n this.emit(initialConnection ? ETwitterStreamEvent.Connected : ETwitterStreamEvent.Reconnected);\n this.parser.reset();\n this.initEventsFromRequest();\n }\n finally {\n this.connectionProcessRunning = false;\n }\n }\n async onConnectionError(retryOccurrence = 0) {\n this.unbindTimeouts();\n // Close the request if necessary\n this.closeWithoutEmit();\n // Terminate stream by events if necessary (no auto-reconnect or retries exceeded)\n if (!this.autoReconnect) {\n this.emit(ETwitterStreamEvent.ConnectionClosed);\n return;\n }\n if (retryOccurrence >= this.autoReconnectRetries) {\n this.emit(ETwitterStreamEvent.ReconnectLimitExceeded);\n this.emit(ETwitterStreamEvent.ConnectionClosed);\n return;\n }\n // If all other conditions fails, do a reconnect attempt\n try {\n this.emit(ETwitterStreamEvent.ReconnectAttempt, retryOccurrence);\n await this.reconnect();\n }\n catch (e) {\n this.emit(ETwitterStreamEvent.ReconnectError, retryOccurrence);\n this.emit(ETwitterStreamEvent.Error, {\n type: ETwitterStreamEvent.ReconnectError,\n error: e,\n message: `Reconnect error - ${retryOccurrence + 1} attempts made yet.`,\n });\n this.makeAutoReconnectRetry(retryOccurrence, e);\n }\n }\n makeAutoReconnectRetry(retryOccurrence, error) {\n const nextRetry = this.nextRetryTimeout(retryOccurrence + 1, error);\n this.retryTimeout = setTimeout(() => {\n this.onConnectionError(retryOccurrence + 1);\n }, nextRetry);\n }\n async *[Symbol.asyncIterator]() {\n const eventCombiner = new TweetStreamEventCombiner(this);\n try {\n while (true) {\n if (!this.req || this.req.aborted) {\n throw new Error('Connection closed');\n }\n if (eventCombiner.hasStack()) {\n yield* eventCombiner.popStack();\n }\n const { type, payload } = await eventCombiner.nextEvent();\n if (type === 'error') {\n throw payload;\n }\n }\n }\n finally {\n eventCombiner.destroy();\n }\n }\n}\nexport default TweetStream;\n",
|
|
118
|
+
"import { request } from 'https';\nimport { TwitterApiV2Settings } from '../settings';\nimport TweetStream from '../stream/TweetStream';\nimport { ApiPartialResponseError, ApiRequestError, ApiResponseError } from '../types';\nimport * as zlib from 'zlib';\nimport { EventEmitter } from 'events';\nexport class RequestHandlerHelper {\n constructor(requestData) {\n this.requestData = requestData;\n this.requestErrorHandled = false;\n this.responseData = [];\n }\n /* Request helpers */\n get hrefPathname() {\n const url = this.requestData.url;\n return url.hostname + url.pathname;\n }\n isCompressionDisabled() {\n return !this.requestData.compression || this.requestData.compression === 'identity';\n }\n isFormEncodedEndpoint() {\n return this.requestData.url.href.startsWith('https://api.x.com/oauth/');\n }\n /* Error helpers */\n createRequestError(error) {\n if (TwitterApiV2Settings.debug) {\n TwitterApiV2Settings.logger.log('Request error:', error);\n }\n return new ApiRequestError('Request failed.', {\n request: this.req,\n error,\n });\n }\n createPartialResponseError(error, abortClose) {\n const res = this.res;\n let message = `Request failed with partial response with HTTP code ${res.statusCode}`;\n if (abortClose) {\n message += ' (connection abruptly closed)';\n }\n else {\n message += ' (parse error)';\n }\n return new ApiPartialResponseError(message, {\n request: this.req,\n response: this.res,\n responseError: error,\n rawContent: Buffer.concat(this.responseData).toString(),\n });\n }\n formatV1Errors(errors) {\n return errors\n .map(({ code, message }) => `${message} (Twitter code ${code})`)\n .join(', ');\n }\n formatV2Error(error) {\n return `${error.title}: ${error.detail} (see ${error.type})`;\n }\n createResponseError({ res, data, rateLimit, code }) {\n var _a;\n if (TwitterApiV2Settings.debug) {\n TwitterApiV2Settings.logger.log(`Request failed with code ${code}, data:`, data);\n TwitterApiV2Settings.logger.log('Response headers:', res.headers);\n }\n // Errors formatting.\n let errorString = `Request failed with code ${code}`;\n if ((_a = data === null || data === void 0 ? void 0 : data.errors) === null || _a === void 0 ? void 0 : _a.length) {\n const errors = data.errors;\n if (typeof errors[0] === 'object' && 'code' in errors[0]) {\n errorString += ' - ' + this.formatV1Errors(errors);\n }\n else {\n errorString += ' - ' + this.formatV2Error(data);\n }\n }\n return new ApiResponseError(errorString, {\n code,\n data,\n headers: res.headers,\n request: this.req,\n response: res,\n rateLimit,\n });\n }\n /* Response helpers */\n getResponseDataStream(res) {\n if (this.isCompressionDisabled()) {\n return res;\n }\n const contentEncoding = (res.headers['content-encoding'] || 'identity').trim().toLowerCase();\n if (contentEncoding === 'br') {\n const brotli = zlib.createBrotliDecompress({\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH,\n });\n res.pipe(brotli);\n return brotli;\n }\n if (contentEncoding === 'gzip') {\n const gunzip = zlib.createGunzip({\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH,\n });\n res.pipe(gunzip);\n return gunzip;\n }\n if (contentEncoding === 'deflate') {\n const inflate = zlib.createInflate({\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH,\n });\n res.pipe(inflate);\n return inflate;\n }\n return res;\n }\n detectResponseType(res) {\n var _a, _b;\n // Auto parse if server responds with JSON body\n if (((_a = res.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('application/json')) || ((_b = res.headers['content-type']) === null || _b === void 0 ? void 0 : _b.includes('application/problem+json'))) {\n return 'json';\n }\n // f-e oauth token endpoints\n else if (this.isFormEncodedEndpoint()) {\n return 'url';\n }\n return 'text';\n }\n getParsedResponse(res) {\n const data = this.responseData;\n const mode = this.requestData.forceParseMode || this.detectResponseType(res);\n if (mode === 'buffer') {\n return Buffer.concat(data);\n }\n else if (mode === 'text') {\n return Buffer.concat(data).toString();\n }\n else if (mode === 'json') {\n const asText = Buffer.concat(data).toString();\n return asText.length ? JSON.parse(asText) : undefined;\n }\n else if (mode === 'url') {\n const asText = Buffer.concat(data).toString();\n const formEntries = {};\n for (const [item, value] of new URLSearchParams(asText)) {\n formEntries[item] = value;\n }\n return formEntries;\n }\n else {\n // mode === 'none'\n return undefined;\n }\n }\n getRateLimitFromResponse(res) {\n let rateLimit = undefined;\n if (res.headers['x-rate-limit-limit']) {\n rateLimit = {\n limit: Number(res.headers['x-rate-limit-limit']),\n remaining: Number(res.headers['x-rate-limit-remaining']),\n reset: Number(res.headers['x-rate-limit-reset']),\n };\n if (res.headers['x-app-limit-24hour-limit']) {\n rateLimit.day = {\n limit: Number(res.headers['x-app-limit-24hour-limit']),\n remaining: Number(res.headers['x-app-limit-24hour-remaining']),\n reset: Number(res.headers['x-app-limit-24hour-reset']),\n };\n }\n if (res.headers['x-user-limit-24hour-limit']) {\n rateLimit.userDay = {\n limit: Number(res.headers['x-user-limit-24hour-limit']),\n remaining: Number(res.headers['x-user-limit-24hour-remaining']),\n reset: Number(res.headers['x-user-limit-24hour-reset']),\n };\n }\n if (this.requestData.rateLimitSaver) {\n this.requestData.rateLimitSaver(rateLimit);\n }\n }\n return rateLimit;\n }\n /* Request event handlers */\n onSocketEventHandler(reject, cleanupListener, socket) {\n const onClose = this.onSocketCloseHandler.bind(this, reject);\n socket.on('close', onClose);\n cleanupListener.on('complete', () => socket.off('close', onClose));\n }\n onSocketCloseHandler(reject) {\n this.req.removeAllListeners('timeout');\n const res = this.res;\n if (res) {\n // Response ok, res.close/res.end can handle request ending\n return;\n }\n if (!this.requestErrorHandled) {\n return reject(this.createRequestError(new Error('Socket closed without any information.')));\n }\n // else: other situation\n }\n requestErrorHandler(reject, requestError) {\n var _a, _b;\n (_b = (_a = this.requestData).requestEventDebugHandler) === null || _b === void 0 ? void 0 : _b.call(_a, 'request-error', { requestError });\n this.requestErrorHandled = true;\n reject(this.createRequestError(requestError));\n }\n timeoutErrorHandler() {\n this.requestErrorHandled = true;\n this.req.destroy(new Error('Request timeout.'));\n }\n /* Response event handlers */\n classicResponseHandler(resolve, reject, res) {\n this.res = res;\n const dataStream = this.getResponseDataStream(res);\n // Register the response data\n dataStream.on('data', chunk => this.responseData.push(chunk));\n dataStream.on('end', this.onResponseEndHandler.bind(this, resolve, reject));\n dataStream.on('close', this.onResponseCloseHandler.bind(this, resolve, reject));\n // Debug handlers\n if (this.requestData.requestEventDebugHandler) {\n this.requestData.requestEventDebugHandler('response', { res });\n res.on('aborted', error => this.requestData.requestEventDebugHandler('response-aborted', { error }));\n res.on('error', error => this.requestData.requestEventDebugHandler('response-error', { error }));\n res.on('close', () => this.requestData.requestEventDebugHandler('response-close', { data: this.responseData }));\n res.on('end', () => this.requestData.requestEventDebugHandler('response-end'));\n }\n }\n onResponseEndHandler(resolve, reject) {\n const rateLimit = this.getRateLimitFromResponse(this.res);\n let data;\n try {\n data = this.getParsedResponse(this.res);\n }\n catch (e) {\n reject(this.createPartialResponseError(e, false));\n return;\n }\n // Handle bad error codes\n const code = this.res.statusCode;\n if (code >= 400) {\n reject(this.createResponseError({ data, res: this.res, rateLimit, code }));\n return;\n }\n if (TwitterApiV2Settings.debug) {\n TwitterApiV2Settings.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]: Request succeeds with code ${this.res.statusCode}`);\n TwitterApiV2Settings.logger.log('Response body:', data);\n }\n resolve({\n data,\n headers: this.res.headers,\n rateLimit,\n });\n }\n onResponseCloseHandler(resolve, reject) {\n const res = this.res;\n if (res.aborted) {\n // Try to parse the request (?)\n try {\n this.getParsedResponse(this.res);\n // Ok, try to resolve normally the request\n return this.onResponseEndHandler(resolve, reject);\n }\n catch (e) {\n // Parse error, just drop with content\n return reject(this.createPartialResponseError(e, true));\n }\n }\n if (!res.complete) {\n return reject(this.createPartialResponseError(new Error('Response has been interrupted before response could be parsed.'), true));\n }\n // else: end has been called\n }\n streamResponseHandler(resolve, reject, res) {\n const code = res.statusCode;\n if (code < 400) {\n if (TwitterApiV2Settings.debug) {\n TwitterApiV2Settings.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]: Request succeeds with code ${res.statusCode} (starting stream)`);\n }\n const dataStream = this.getResponseDataStream(res);\n // HTTP code ok, consume stream\n resolve({ req: this.req, res: dataStream, originalResponse: res, requestData: this.requestData });\n }\n else {\n // Handle response normally, can only rejects\n this.classicResponseHandler(() => undefined, reject, res);\n }\n }\n /* Wrappers for request lifecycle */\n debugRequest() {\n const url = this.requestData.url;\n TwitterApiV2Settings.logger.log(`[${this.requestData.options.method} ${this.hrefPathname}]`, this.requestData.options);\n if (url.search) {\n TwitterApiV2Settings.logger.log('Request parameters:', [...url.searchParams.entries()].map(([key, value]) => `${key}: ${value}`));\n }\n if (this.requestData.body) {\n TwitterApiV2Settings.logger.log('Request body:', this.requestData.body);\n }\n }\n buildRequest() {\n var _a;\n const url = this.requestData.url;\n const auth = url.username ? `${url.username}:${url.password}` : undefined;\n const headers = (_a = this.requestData.options.headers) !== null && _a !== void 0 ? _a : {};\n if (this.requestData.compression === true || this.requestData.compression === 'brotli') {\n headers['accept-encoding'] = 'br;q=1.0, gzip;q=0.8, deflate;q=0.5, *;q=0.1';\n }\n else if (this.requestData.compression === 'gzip') {\n headers['accept-encoding'] = 'gzip;q=1, deflate;q=0.5, *;q=0.1';\n }\n else if (this.requestData.compression === 'deflate') {\n headers['accept-encoding'] = 'deflate;q=1, *;q=0.1';\n }\n if (TwitterApiV2Settings.debug) {\n this.debugRequest();\n }\n this.req = request({\n ...this.requestData.options,\n // Define URL params manually, addresses dependencies error https://github.com/PLhery/node-twitter-api-v2/issues/94\n host: url.hostname,\n port: url.port || undefined,\n path: url.pathname + url.search,\n protocol: url.protocol,\n auth,\n headers,\n });\n }\n registerRequestEventDebugHandlers(req) {\n req.on('close', () => this.requestData.requestEventDebugHandler('close'));\n req.on('abort', () => this.requestData.requestEventDebugHandler('abort'));\n req.on('socket', socket => {\n this.requestData.requestEventDebugHandler('socket', { socket });\n socket.on('error', error => this.requestData.requestEventDebugHandler('socket-error', { socket, error }));\n socket.on('connect', () => this.requestData.requestEventDebugHandler('socket-connect', { socket }));\n socket.on('close', withError => this.requestData.requestEventDebugHandler('socket-close', { socket, withError }));\n socket.on('end', () => this.requestData.requestEventDebugHandler('socket-end', { socket }));\n socket.on('lookup', (...data) => this.requestData.requestEventDebugHandler('socket-lookup', { socket, data }));\n socket.on('timeout', () => this.requestData.requestEventDebugHandler('socket-timeout', { socket }));\n });\n }\n makeRequest() {\n this.buildRequest();\n return new Promise((_resolve, _reject) => {\n // Hooks to call when promise is fulfulled to cleanup the socket (shared between requests)\n const resolve = value => {\n cleanupListener.emit('complete');\n _resolve(value);\n };\n const reject = value => {\n cleanupListener.emit('complete');\n _reject(value);\n };\n const cleanupListener = new EventEmitter();\n const req = this.req;\n // Handle request errors\n req.on('error', this.requestErrorHandler.bind(this, reject));\n req.on('socket', this.onSocketEventHandler.bind(this, reject, cleanupListener));\n req.on('response', this.classicResponseHandler.bind(this, resolve, reject));\n if (this.requestData.options.timeout) {\n req.on('timeout', this.timeoutErrorHandler.bind(this));\n }\n // Debug handlers\n if (this.requestData.requestEventDebugHandler) {\n this.registerRequestEventDebugHandlers(req);\n }\n if (this.requestData.body) {\n req.write(this.requestData.body);\n }\n req.end();\n });\n }\n async makeRequestAsStream() {\n const { req, res, requestData, originalResponse } = await this.makeRequestAndResolveWhenReady();\n return new TweetStream(requestData, { req, res, originalResponse });\n }\n makeRequestAndResolveWhenReady() {\n this.buildRequest();\n return new Promise((resolve, reject) => {\n const req = this.req;\n // Handle request errors\n req.on('error', this.requestErrorHandler.bind(this, reject));\n req.on('response', this.streamResponseHandler.bind(this, resolve, reject));\n if (this.requestData.body) {\n req.write(this.requestData.body);\n }\n req.end();\n });\n }\n}\nexport default RequestHandlerHelper;\n",
|
|
119
|
+
"import { EventEmitter } from 'events';\nimport { ETwitterStreamEvent } from '../types';\nexport class TweetStreamEventCombiner extends EventEmitter {\n constructor(stream) {\n super();\n this.stream = stream;\n this.stack = [];\n this.onStreamData = this.onStreamData.bind(this);\n this.onStreamError = this.onStreamError.bind(this);\n this.onceNewEvent = this.once.bind(this, 'event');\n // Init events from stream\n stream.on(ETwitterStreamEvent.Data, this.onStreamData);\n // Ignore reconnect errors: Don't close event combiner until connection error/closed\n stream.on(ETwitterStreamEvent.ConnectionError, this.onStreamError);\n stream.on(ETwitterStreamEvent.TweetParseError, this.onStreamError);\n stream.on(ETwitterStreamEvent.ConnectionClosed, this.onStreamError);\n }\n /** Returns a new `Promise` that will `resolve` on next event (`data` or any sort of error). */\n nextEvent() {\n return new Promise(this.onceNewEvent);\n }\n /** Returns `true` if there's something in the stack. */\n hasStack() {\n return this.stack.length > 0;\n }\n /** Returns stacked data events, and clean the stack. */\n popStack() {\n const stack = this.stack;\n this.stack = [];\n return stack;\n }\n /** Cleanup all the listeners attached on stream. */\n destroy() {\n this.removeAllListeners();\n this.stream.off(ETwitterStreamEvent.Data, this.onStreamData);\n this.stream.off(ETwitterStreamEvent.ConnectionError, this.onStreamError);\n this.stream.off(ETwitterStreamEvent.TweetParseError, this.onStreamError);\n this.stream.off(ETwitterStreamEvent.ConnectionClosed, this.onStreamError);\n }\n emitEvent(type, payload) {\n this.emit('event', { type, payload });\n }\n onStreamError(payload) {\n this.emitEvent('error', payload);\n }\n onStreamData(payload) {\n this.stack.push(payload);\n this.emitEvent('data', payload);\n }\n}\nexport default TweetStreamEventCombiner;\n",
|
|
120
|
+
"import { EventEmitter } from 'events';\nexport default class TweetStreamParser extends EventEmitter {\n constructor() {\n super(...arguments);\n this.currentMessage = '';\n }\n // Code partially belongs to twitter-stream-api for this\n // https://github.com/trygve-lie/twitter-stream-api/blob/master/lib/parser.js\n push(chunk) {\n this.currentMessage += chunk;\n chunk = this.currentMessage;\n const size = chunk.length;\n let start = 0;\n let offset = 0;\n while (offset < size) {\n // Take [offset, offset+1] inside a new string\n if (chunk.slice(offset, offset + 2) === '\\r\\n') {\n // If chunk contains \\r\\n after current offset,\n // parse [start, ..., offset] as a tweet\n const piece = chunk.slice(start, offset);\n start = offset += 2;\n // If empty object\n if (!piece.length) {\n continue;\n }\n try {\n const payload = JSON.parse(piece);\n if (payload) {\n this.emit(EStreamParserEvent.ParsedData, payload);\n continue;\n }\n }\n catch (error) {\n this.emit(EStreamParserEvent.ParseError, error);\n }\n }\n offset++;\n }\n this.currentMessage = chunk.slice(start, size);\n }\n /** Reset the currently stored message (f.e. on connection reset) */\n reset() {\n this.currentMessage = '';\n }\n}\nexport var EStreamParserEvent;\n(function (EStreamParserEvent) {\n EStreamParserEvent[\"ParsedData\"] = \"parsed data\";\n EStreamParserEvent[\"ParseError\"] = \"parse error\";\n})(EStreamParserEvent || (EStreamParserEvent = {}));\n",
|
|
121
|
+
"import { ApiPartialResponseError, ApiRequestError, ApiResponseError, TwitterApiPluginResponseOverride } from '../types';\n/* Plugin helpers */\nexport function hasRequestErrorPlugins(client) {\n var _a;\n if (!((_a = client.clientSettings.plugins) === null || _a === void 0 ? void 0 : _a.length)) {\n return false;\n }\n for (const plugin of client.clientSettings.plugins) {\n if (plugin.onRequestError || plugin.onResponseError) {\n return true;\n }\n }\n return false;\n}\nexport async function applyResponseHooks(requestParams, computedParams, requestOptions, error) {\n let override;\n if (error instanceof ApiRequestError || error instanceof ApiPartialResponseError) {\n override = await this.applyPluginMethod('onRequestError', {\n client: this,\n url: this.getUrlObjectFromUrlString(requestParams.url),\n params: requestParams,\n computedParams,\n requestOptions,\n error,\n });\n }\n else if (error instanceof ApiResponseError) {\n override = await this.applyPluginMethod('onResponseError', {\n client: this,\n url: this.getUrlObjectFromUrlString(requestParams.url),\n params: requestParams,\n computedParams,\n requestOptions,\n error,\n });\n }\n if (override && override instanceof TwitterApiPluginResponseOverride) {\n return override.value;\n }\n return Promise.reject(error);\n}\n",
|
|
122
|
+
"import * as crypto from 'crypto';\nexport class OAuth1Helper {\n constructor(options) {\n this.nonceLength = 32;\n this.consumerKeys = options.consumerKeys;\n }\n static percentEncode(str) {\n return encodeURIComponent(str)\n .replace(/!/g, '%21')\n .replace(/\\*/g, '%2A')\n .replace(/'/g, '%27')\n .replace(/\\(/g, '%28')\n .replace(/\\)/g, '%29');\n }\n hash(base, key) {\n return crypto\n .createHmac('sha1', key)\n .update(base)\n .digest('base64');\n }\n authorize(request, accessTokens = {}) {\n const oauthInfo = {\n oauth_consumer_key: this.consumerKeys.key,\n oauth_nonce: this.getNonce(),\n oauth_signature_method: 'HMAC-SHA1',\n oauth_timestamp: this.getTimestamp(),\n oauth_version: '1.0',\n };\n if (accessTokens.key !== undefined) {\n oauthInfo.oauth_token = accessTokens.key;\n }\n if (!request.data) {\n request.data = {};\n }\n oauthInfo.oauth_signature = this.getSignature(request, accessTokens.secret, oauthInfo);\n return oauthInfo;\n }\n toHeader(oauthInfo) {\n const sorted = sortObject(oauthInfo);\n let header_value = 'OAuth ';\n for (const element of sorted) {\n if (element.key.indexOf('oauth_') !== 0) {\n continue;\n }\n header_value += OAuth1Helper.percentEncode(element.key) + '=\"' + OAuth1Helper.percentEncode(element.value) + '\",';\n }\n return {\n // Remove the last ,\n Authorization: header_value.slice(0, header_value.length - 1),\n };\n }\n getNonce() {\n const wordCharacters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n let result = '';\n for (let i = 0; i < this.nonceLength; i++) {\n result += wordCharacters[Math.trunc(Math.random() * wordCharacters.length)];\n }\n return result;\n }\n getTimestamp() {\n return Math.trunc(new Date().getTime() / 1000);\n }\n getSignature(request, tokenSecret, oauthInfo) {\n return this.hash(this.getBaseString(request, oauthInfo), this.getSigningKey(tokenSecret));\n }\n getSigningKey(tokenSecret) {\n return OAuth1Helper.percentEncode(this.consumerKeys.secret) + '&' + OAuth1Helper.percentEncode(tokenSecret || '');\n }\n getBaseString(request, oauthInfo) {\n return request.method.toUpperCase() + '&'\n + OAuth1Helper.percentEncode(this.getBaseUrl(request.url)) + '&'\n + OAuth1Helper.percentEncode(this.getParameterString(request, oauthInfo));\n }\n getParameterString(request, oauthInfo) {\n const baseStringData = sortObject(percentEncodeData(mergeObject(oauthInfo, mergeObject(request.data, deParamUrl(request.url)))));\n let dataStr = '';\n for (const { key, value } of baseStringData) {\n // check if the value is an array\n // this means that this key has multiple values\n if (value && Array.isArray(value)) {\n // sort the array first\n value.sort();\n let valString = '';\n // serialize all values for this key: e.g. formkey=formvalue1&formkey=formvalue2\n value.forEach((item, i) => {\n valString += key + '=' + item;\n if (i < value.length) {\n valString += '&';\n }\n });\n dataStr += valString;\n }\n else {\n dataStr += key + '=' + value + '&';\n }\n }\n // Remove the last character\n return dataStr.slice(0, dataStr.length - 1);\n }\n getBaseUrl(url) {\n return url.split('?')[0];\n }\n}\nexport default OAuth1Helper;\n// Helper functions //\nfunction mergeObject(obj1, obj2) {\n return {\n ...obj1 || {},\n ...obj2 || {},\n };\n}\nfunction sortObject(data) {\n return Object.keys(data)\n .sort()\n .map(key => ({ key, value: data[key] }));\n}\nfunction deParam(string) {\n const split = string.split('&');\n const data = {};\n for (const coupleKeyValue of split) {\n const [key, value = ''] = coupleKeyValue.split('=');\n // check if the key already exists\n // this can occur if the QS part of the url contains duplicate keys like this: ?formkey=formvalue1&formkey=formvalue2\n if (data[key]) {\n // the key exists already\n if (!Array.isArray(data[key])) {\n // replace the value with an array containing the already present value\n data[key] = [data[key]];\n }\n // and add the new found value to it\n data[key].push(decodeURIComponent(value));\n }\n else {\n // it doesn't exist, just put the found value in the data object\n data[key] = decodeURIComponent(value);\n }\n }\n return data;\n}\nfunction deParamUrl(url) {\n const tmp = url.split('?');\n if (tmp.length === 1)\n return {};\n return deParam(tmp[1]);\n}\nfunction percentEncodeData(data) {\n const result = {};\n for (const key in data) {\n let value = data[key];\n // check if the value is an array\n if (value && Array.isArray(value)) {\n value = value.map(v => OAuth1Helper.percentEncode(v));\n }\n else {\n value = OAuth1Helper.percentEncode(value);\n }\n result[OAuth1Helper.percentEncode(key)] = value;\n }\n return result;\n}\n",
|
|
123
|
+
"import { arrayWrap } from '../helpers';\n// This class is partially inspired by https://github.com/form-data/form-data/blob/master/lib/form_data.js\n// All credits to their authors.\nexport class FormDataHelper {\n constructor() {\n this._boundary = '';\n this._chunks = [];\n }\n bodyAppend(...values) {\n const allAsBuffer = values.map(val => val instanceof Buffer ? val : Buffer.from(val));\n this._chunks.push(...allAsBuffer);\n }\n append(field, value, contentType) {\n const convertedValue = value instanceof Buffer ? value : value.toString();\n const header = this.getMultipartHeader(field, convertedValue, contentType);\n this.bodyAppend(header, convertedValue, FormDataHelper.LINE_BREAK);\n }\n getHeaders() {\n return {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary(),\n };\n }\n /** Length of form-data (including footer length). */\n getLength() {\n return this._chunks.reduce((acc, cur) => acc + cur.length, this.getMultipartFooter().length);\n }\n getBuffer() {\n const allChunks = [...this._chunks, this.getMultipartFooter()];\n const totalBuffer = Buffer.alloc(this.getLength());\n let i = 0;\n for (const chunk of allChunks) {\n for (let j = 0; j < chunk.length; i++, j++) {\n totalBuffer[i] = chunk[j];\n }\n }\n return totalBuffer;\n }\n getBoundary() {\n if (!this._boundary) {\n this.generateBoundary();\n }\n return this._boundary;\n }\n generateBoundary() {\n // This generates a 50 character boundary similar to those used by Firefox.\n let boundary = '--------------------------';\n for (let i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n this._boundary = boundary;\n }\n getMultipartHeader(field, value, contentType) {\n // In this lib no need to guess more the content type, octet stream is ok of buffers\n if (!contentType) {\n contentType = value instanceof Buffer ? FormDataHelper.DEFAULT_CONTENT_TYPE : '';\n }\n const headers = {\n 'Content-Disposition': ['form-data', `name=\"${field}\"`],\n 'Content-Type': contentType,\n };\n let contents = '';\n for (const [prop, header] of Object.entries(headers)) {\n // skip nullish headers.\n if (!header.length) {\n continue;\n }\n contents += prop + ': ' + arrayWrap(header).join('; ') + FormDataHelper.LINE_BREAK;\n }\n return '--' + this.getBoundary() + FormDataHelper.LINE_BREAK + contents + FormDataHelper.LINE_BREAK;\n }\n getMultipartFooter() {\n if (this._footerChunk) {\n return this._footerChunk;\n }\n return this._footerChunk = Buffer.from('--' + this.getBoundary() + '--' + FormDataHelper.LINE_BREAK);\n }\n}\nFormDataHelper.LINE_BREAK = '\\r\\n';\nFormDataHelper.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n",
|
|
124
|
+
"import { FormDataHelper } from './form-data.helper';\nimport OAuth1Helper from './oauth1.helper';\n/* Helpers functions that are specific to this class but do not depends on instance */\nexport class RequestParamHelpers {\n static formatQueryToString(query) {\n const formattedQuery = {};\n for (const prop in query) {\n if (typeof query[prop] === 'string') {\n formattedQuery[prop] = query[prop];\n }\n else if (typeof query[prop] !== 'undefined') {\n formattedQuery[prop] = String(query[prop]);\n }\n }\n return formattedQuery;\n }\n static autoDetectBodyType(url) {\n if (url.pathname.startsWith('/2/') || url.pathname.startsWith('/labs/2/')) {\n // oauth2 takes url encoded\n if (url.password.startsWith('/2/oauth2')) {\n return 'url';\n }\n // Twitter API v2 has JSON-encoded requests for everything else\n return 'json';\n }\n if (url.hostname === 'upload.x.com') {\n if (url.pathname === '/1.1/media/upload.json') {\n return 'form-data';\n }\n // json except for media/upload command, that is form-data.\n return 'json';\n }\n const endpoint = url.pathname.split('/1.1/', 2)[1];\n if (this.JSON_1_1_ENDPOINTS.has(endpoint)) {\n return 'json';\n }\n return 'url';\n }\n static addQueryParamsToUrl(url, query) {\n const queryEntries = Object.entries(query);\n if (queryEntries.length) {\n let search = '';\n for (const [key, value] of queryEntries) {\n search += (search.length ? '&' : '?') + `${OAuth1Helper.percentEncode(key)}=${OAuth1Helper.percentEncode(value)}`;\n }\n url.search = search;\n }\n }\n static constructBodyParams(body, headers, mode) {\n if (body instanceof Buffer) {\n return body;\n }\n if (mode === 'json') {\n if (!headers['content-type']) {\n headers['content-type'] = 'application/json;charset=UTF-8';\n }\n return JSON.stringify(body);\n }\n else if (mode === 'url') {\n if (!headers['content-type']) {\n headers['content-type'] = 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n if (Object.keys(body).length) {\n return new URLSearchParams(body)\n .toString()\n .replace(/\\*/g, '%2A'); // URLSearchParams doesnt encode '*', but Twitter wants it encoded.\n }\n return '';\n }\n else if (mode === 'raw') {\n throw new Error('You can only use raw body mode with Buffers. To give a string, use Buffer.from(str).');\n }\n else {\n const form = new FormDataHelper();\n for (const parameter in body) {\n form.append(parameter, body[parameter]);\n }\n if (!headers['content-type']) {\n const formHeaders = form.getHeaders();\n headers['content-type'] = formHeaders['content-type'];\n }\n return form.getBuffer();\n }\n }\n static setBodyLengthHeader(options, body) {\n var _a;\n options.headers = (_a = options.headers) !== null && _a !== void 0 ? _a : {};\n if (typeof body === 'string') {\n options.headers['content-length'] = Buffer.byteLength(body);\n }\n else {\n options.headers['content-length'] = body.length;\n }\n }\n static isOAuthSerializable(item) {\n return !(item instanceof Buffer);\n }\n static mergeQueryAndBodyForOAuth(query, body) {\n const parameters = {};\n for (const prop in query) {\n parameters[prop] = query[prop];\n }\n if (this.isOAuthSerializable(body)) {\n for (const prop in body) {\n const bodyProp = body[prop];\n if (this.isOAuthSerializable(bodyProp)) {\n parameters[prop] = typeof bodyProp === 'object' && bodyProp !== null && 'toString' in bodyProp\n ? bodyProp.toString()\n : bodyProp;\n }\n }\n }\n return parameters;\n }\n static moveUrlQueryParamsIntoObject(url, query) {\n for (const [param, value] of url.searchParams) {\n query[param] = value;\n }\n // Remove the query string\n url.search = '';\n return url;\n }\n /**\n * Replace URL parameters available in pathname, like `:id`, with data given in `parameters`:\n * `https://x.com/:id.json` + `{ id: '20' }` => `https://x.com/20.json`\n */\n static applyRequestParametersToUrl(url, parameters) {\n url.pathname = url.pathname.replace(/:([A-Z_-]+)/ig, (fullMatch, paramName) => {\n if (parameters[paramName] !== undefined) {\n return String(parameters[paramName]);\n }\n return fullMatch;\n });\n return url;\n }\n}\nRequestParamHelpers.JSON_1_1_ENDPOINTS = new Set([\n 'direct_messages/events/new.json',\n 'direct_messages/welcome_messages/new.json',\n 'direct_messages/welcome_messages/rules/new.json',\n 'media/metadata/create.json',\n 'collections/entries/curate.json',\n]);\nexport default RequestParamHelpers;\n",
|
|
125
|
+
"import * as crypto from 'crypto';\nexport class OAuth2Helper {\n static getCodeVerifier() {\n return this.generateRandomString(128);\n }\n static getCodeChallengeFromVerifier(verifier) {\n return this.escapeBase64Url(crypto\n .createHash('sha256')\n .update(verifier)\n .digest('base64'));\n }\n static getAuthHeader(clientId, clientSecret) {\n const key = encodeURIComponent(clientId) + ':' + encodeURIComponent(clientSecret);\n return Buffer.from(key).toString('base64');\n }\n static generateRandomString(length) {\n let text = '';\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n for (let i = 0; i < length; i++) {\n text += possible[Math.floor(Math.random() * possible.length)];\n }\n return text;\n }\n static escapeBase64Url(string) {\n return string.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n}\n",
|
|
126
|
+
"import { TwitterApiPluginResponseOverride } from '../types';\nimport TweetStream from '../stream/TweetStream';\nimport { applyResponseHooks, hasRequestErrorPlugins } from '../plugins/helpers';\nimport { trimUndefinedProperties } from '../helpers';\nimport OAuth1Helper from './oauth1.helper';\nimport RequestHandlerHelper from './request-handler.helper';\nimport RequestParamHelpers from './request-param.helper';\nimport { OAuth2Helper } from './oauth2.helper';\nexport class ClientRequestMaker {\n constructor(settings) {\n this.rateLimits = {};\n this.clientSettings = {};\n if (settings) {\n this.clientSettings = settings;\n }\n }\n /** @deprecated - Switch to `@twitter-api-v2/plugin-rate-limit` */\n getRateLimits() {\n return this.rateLimits;\n }\n saveRateLimit(originalUrl, rateLimit) {\n this.rateLimits[originalUrl] = rateLimit;\n }\n /** Send a new request and returns a wrapped `Promise<TwitterResponse<T>`. */\n async send(requestParams) {\n var _a, _b, _c, _d, _e;\n // Pre-request config hooks\n if ((_a = this.clientSettings.plugins) === null || _a === void 0 ? void 0 : _a.length) {\n const possibleResponse = await this.applyPreRequestConfigHooks(requestParams);\n if (possibleResponse) {\n return possibleResponse;\n }\n }\n const args = this.getHttpRequestArgs(requestParams);\n const options = {\n method: args.method,\n headers: args.headers,\n timeout: requestParams.timeout,\n agent: this.clientSettings.httpAgent,\n };\n const enableRateLimitSave = requestParams.enableRateLimitSave !== false;\n if (args.body) {\n RequestParamHelpers.setBodyLengthHeader(options, args.body);\n }\n // Pre-request hooks\n if ((_b = this.clientSettings.plugins) === null || _b === void 0 ? void 0 : _b.length) {\n await this.applyPreRequestHooks(requestParams, args, options);\n }\n let request = new RequestHandlerHelper({\n url: args.url,\n options,\n body: args.body,\n rateLimitSaver: enableRateLimitSave ? this.saveRateLimit.bind(this, args.rawUrl) : undefined,\n requestEventDebugHandler: requestParams.requestEventDebugHandler,\n compression: (_d = (_c = requestParams.compression) !== null && _c !== void 0 ? _c : this.clientSettings.compression) !== null && _d !== void 0 ? _d : true,\n forceParseMode: requestParams.forceParseMode,\n })\n .makeRequest();\n if (hasRequestErrorPlugins(this)) {\n request = this.applyResponseErrorHooks(requestParams, args, options, request);\n }\n const response = await request;\n // Post-request hooks\n if ((_e = this.clientSettings.plugins) === null || _e === void 0 ? void 0 : _e.length) {\n const responseOverride = await this.applyPostRequestHooks(requestParams, args, options, response);\n if (responseOverride) {\n return responseOverride.value;\n }\n }\n return response;\n }\n sendStream(requestParams) {\n var _a, _b;\n // Pre-request hooks\n if (this.clientSettings.plugins) {\n this.applyPreStreamRequestConfigHooks(requestParams);\n }\n const args = this.getHttpRequestArgs(requestParams);\n const options = {\n method: args.method,\n headers: args.headers,\n agent: this.clientSettings.httpAgent,\n };\n const enableRateLimitSave = requestParams.enableRateLimitSave !== false;\n const enableAutoConnect = requestParams.autoConnect !== false;\n if (args.body) {\n RequestParamHelpers.setBodyLengthHeader(options, args.body);\n }\n const requestData = {\n url: args.url,\n options,\n body: args.body,\n rateLimitSaver: enableRateLimitSave ? this.saveRateLimit.bind(this, args.rawUrl) : undefined,\n payloadIsError: requestParams.payloadIsError,\n compression: (_b = (_a = requestParams.compression) !== null && _a !== void 0 ? _a : this.clientSettings.compression) !== null && _b !== void 0 ? _b : true,\n };\n const stream = new TweetStream(requestData);\n if (!enableAutoConnect) {\n return stream;\n }\n return stream.connect();\n }\n /* Token helpers */\n initializeToken(token) {\n if (typeof token === 'string') {\n this.bearerToken = token;\n }\n else if (typeof token === 'object' && 'appKey' in token) {\n this.consumerToken = token.appKey;\n this.consumerSecret = token.appSecret;\n if (token.accessToken && token.accessSecret) {\n this.accessToken = token.accessToken;\n this.accessSecret = token.accessSecret;\n }\n this._oauth = this.buildOAuth();\n }\n else if (typeof token === 'object' && 'username' in token) {\n const key = encodeURIComponent(token.username) + ':' + encodeURIComponent(token.password);\n this.basicToken = Buffer.from(key).toString('base64');\n }\n else if (typeof token === 'object' && 'clientId' in token) {\n this.clientId = token.clientId;\n this.clientSecret = token.clientSecret;\n }\n }\n getActiveTokens() {\n if (this.bearerToken) {\n return {\n type: 'oauth2',\n bearerToken: this.bearerToken,\n };\n }\n else if (this.basicToken) {\n return {\n type: 'basic',\n token: this.basicToken,\n };\n }\n else if (this.consumerSecret && this._oauth) {\n return {\n type: 'oauth-1.0a',\n appKey: this.consumerToken,\n appSecret: this.consumerSecret,\n accessToken: this.accessToken,\n accessSecret: this.accessSecret,\n };\n }\n else if (this.clientId) {\n return {\n type: 'oauth2-user',\n clientId: this.clientId,\n };\n }\n return { type: 'none' };\n }\n buildOAuth() {\n if (!this.consumerSecret || !this.consumerToken)\n throw new Error('Invalid consumer tokens');\n return new OAuth1Helper({\n consumerKeys: { key: this.consumerToken, secret: this.consumerSecret },\n });\n }\n getOAuthAccessTokens() {\n if (!this.accessSecret || !this.accessToken)\n return;\n return {\n key: this.accessToken,\n secret: this.accessSecret,\n };\n }\n /* Plugin helpers */\n getPlugins() {\n var _a;\n return (_a = this.clientSettings.plugins) !== null && _a !== void 0 ? _a : [];\n }\n hasPlugins() {\n var _a;\n return !!((_a = this.clientSettings.plugins) === null || _a === void 0 ? void 0 : _a.length);\n }\n async applyPluginMethod(method, args) {\n var _a;\n let returnValue;\n for (const plugin of this.getPlugins()) {\n const value = await ((_a = plugin[method]) === null || _a === void 0 ? void 0 : _a.call(plugin, args));\n if (value && value instanceof TwitterApiPluginResponseOverride) {\n returnValue = value;\n }\n }\n return returnValue;\n }\n /* Request helpers */\n writeAuthHeaders({ headers, bodyInSignature, url, method, query, body }) {\n headers = { ...headers };\n if (this.bearerToken) {\n headers.Authorization = 'Bearer ' + this.bearerToken;\n }\n else if (this.basicToken) {\n // Basic auth, to request a bearer token\n headers.Authorization = 'Basic ' + this.basicToken;\n }\n else if (this.clientId && this.clientSecret) {\n // Basic auth with clientId + clientSecret\n headers.Authorization = 'Basic ' + OAuth2Helper.getAuthHeader(this.clientId, this.clientSecret);\n }\n else if (this.consumerSecret && this._oauth) {\n // Merge query and body\n const data = bodyInSignature ? RequestParamHelpers.mergeQueryAndBodyForOAuth(query, body) : query;\n const auth = this._oauth.authorize({\n url: url.toString(),\n method,\n data,\n }, this.getOAuthAccessTokens());\n headers = { ...headers, ...this._oauth.toHeader(auth) };\n }\n return headers;\n }\n getUrlObjectFromUrlString(url) {\n // Add protocol to URL if needed\n if (!url.startsWith('http')) {\n url = 'https://' + url;\n }\n // Convert URL to object that will receive all URL modifications\n return new URL(url);\n }\n getHttpRequestArgs({ url: stringUrl, method, query: rawQuery = {}, body: rawBody = {}, headers, forceBodyMode, enableAuth, params, }) {\n let body = undefined;\n method = method.toUpperCase();\n headers = headers !== null && headers !== void 0 ? headers : {};\n // Add user agent header (Twitter recommends it)\n if (!headers['x-user-agent']) {\n headers['x-user-agent'] = 'Node.twitter-api-v2';\n }\n const url = this.getUrlObjectFromUrlString(stringUrl);\n // URL without query string to save as endpoint name\n const rawUrl = url.origin + url.pathname;\n // Apply URL parameters\n if (params) {\n RequestParamHelpers.applyRequestParametersToUrl(url, params);\n }\n // Build a URL without anything in QS, and QSP in query\n const query = RequestParamHelpers.formatQueryToString(rawQuery);\n RequestParamHelpers.moveUrlQueryParamsIntoObject(url, query);\n // Delete undefined parameters\n if (!(rawBody instanceof Buffer)) {\n trimUndefinedProperties(rawBody);\n }\n // OAuth signature should not include parameters when using multipart.\n const bodyType = forceBodyMode !== null && forceBodyMode !== void 0 ? forceBodyMode : RequestParamHelpers.autoDetectBodyType(url);\n // If undefined or true, enable auth by headers\n if (enableAuth !== false) {\n // OAuth needs body signature only if body is URL encoded.\n const bodyInSignature = ClientRequestMaker.BODY_METHODS.has(method) && bodyType === 'url';\n headers = this.writeAuthHeaders({ headers, bodyInSignature, method, query, url, body: rawBody });\n }\n if (ClientRequestMaker.BODY_METHODS.has(method)) {\n body = RequestParamHelpers.constructBodyParams(rawBody, headers, bodyType) || undefined;\n }\n RequestParamHelpers.addQueryParamsToUrl(url, query);\n return {\n rawUrl,\n url,\n method,\n headers,\n body,\n };\n }\n /* Plugin helpers */\n async applyPreRequestConfigHooks(requestParams) {\n var _a;\n const url = this.getUrlObjectFromUrlString(requestParams.url);\n for (const plugin of this.getPlugins()) {\n const result = await ((_a = plugin.onBeforeRequestConfig) === null || _a === void 0 ? void 0 : _a.call(plugin, {\n client: this,\n url,\n params: requestParams,\n }));\n if (result) {\n return result;\n }\n }\n }\n applyPreStreamRequestConfigHooks(requestParams) {\n var _a;\n const url = this.getUrlObjectFromUrlString(requestParams.url);\n for (const plugin of this.getPlugins()) {\n (_a = plugin.onBeforeStreamRequestConfig) === null || _a === void 0 ? void 0 : _a.call(plugin, {\n client: this,\n url,\n params: requestParams,\n });\n }\n }\n async applyPreRequestHooks(requestParams, computedParams, requestOptions) {\n await this.applyPluginMethod('onBeforeRequest', {\n client: this,\n url: this.getUrlObjectFromUrlString(requestParams.url),\n params: requestParams,\n computedParams,\n requestOptions,\n });\n }\n async applyPostRequestHooks(requestParams, computedParams, requestOptions, response) {\n return await this.applyPluginMethod('onAfterRequest', {\n client: this,\n url: this.getUrlObjectFromUrlString(requestParams.url),\n params: requestParams,\n computedParams,\n requestOptions,\n response,\n });\n }\n applyResponseErrorHooks(requestParams, computedParams, requestOptions, promise) {\n return promise.catch(applyResponseHooks.bind(this, requestParams, computedParams, requestOptions));\n }\n}\nClientRequestMaker.BODY_METHODS = new Set(['POST', 'PUT', 'PATCH']);\n",
|
|
127
|
+
"import { ClientRequestMaker } from './client-mixins/request-maker.mixin';\nimport { sharedPromise } from './helpers';\nimport { API_V1_1_PREFIX, API_V2_PREFIX } from './globals';\n/**\n * Base class for Twitter instances\n */\nexport default class TwitterApiBase {\n constructor(token, settings = {}) {\n this._currentUser = null;\n this._currentUserV2 = null;\n if (token instanceof TwitterApiBase) {\n this._requestMaker = token._requestMaker;\n }\n else {\n this._requestMaker = new ClientRequestMaker(settings);\n this._requestMaker.initializeToken(token);\n }\n }\n /* Prefix/Token handling */\n setPrefix(prefix) {\n this._prefix = prefix;\n }\n cloneWithPrefix(prefix) {\n const clone = this.constructor(this);\n clone.setPrefix(prefix);\n return clone;\n }\n getActiveTokens() {\n return this._requestMaker.getActiveTokens();\n }\n /* Rate limit cache / Plugins */\n getPlugins() {\n return this._requestMaker.getPlugins();\n }\n getPluginOfType(type) {\n return this.getPlugins().find(plugin => plugin instanceof type);\n }\n /**\n * @deprecated - Migrate to plugin `@twitter-api-v2/plugin-rate-limit`\n *\n * Tells if you hit the Twitter rate limit for {endpoint}.\n * (local data only, this should not ask anything to Twitter)\n */\n hasHitRateLimit(endpoint) {\n var _a;\n if (this.isRateLimitStatusObsolete(endpoint)) {\n return false;\n }\n return ((_a = this.getLastRateLimitStatus(endpoint)) === null || _a === void 0 ? void 0 : _a.remaining) === 0;\n }\n /**\n * @deprecated - Migrate to plugin `@twitter-api-v2/plugin-rate-limit`\n *\n * Tells if you hit the returned Twitter rate limit for {endpoint} has expired.\n * If client has no saved rate limit data for {endpoint}, this will gives you `true`.\n */\n isRateLimitStatusObsolete(endpoint) {\n const rateLimit = this.getLastRateLimitStatus(endpoint);\n if (rateLimit === undefined) {\n return true;\n }\n // Timestamps are exprimed in seconds, JS works with ms\n return (rateLimit.reset * 1000) < Date.now();\n }\n /**\n * @deprecated - Migrate to plugin `@twitter-api-v2/plugin-rate-limit`\n *\n * Get the last obtained Twitter rate limit information for {endpoint}.\n * (local data only, this should not ask anything to Twitter)\n */\n getLastRateLimitStatus(endpoint) {\n const endpointWithPrefix = endpoint.match(/^https?:\\/\\//) ? endpoint : (this._prefix + endpoint);\n return this._requestMaker.getRateLimits()[endpointWithPrefix];\n }\n /* Current user cache */\n /** Get cached current user. */\n getCurrentUserObject(forceFetch = false) {\n if (!forceFetch && this._currentUser) {\n if (this._currentUser.value) {\n return Promise.resolve(this._currentUser.value);\n }\n return this._currentUser.promise;\n }\n this._currentUser = sharedPromise(() => this.get('account/verify_credentials.json', { tweet_mode: 'extended' }, { prefix: API_V1_1_PREFIX }));\n return this._currentUser.promise;\n }\n /**\n * Get cached current user from v2 API.\n * This can only be the slimest available `UserV2` object, with only `id`, `name` and `username` properties defined.\n *\n * To get a customized `UserV2Result`, use `.v2.me()`\n *\n * OAuth2 scopes: `tweet.read` & `users.read`\n */\n getCurrentUserV2Object(forceFetch = false) {\n if (!forceFetch && this._currentUserV2) {\n if (this._currentUserV2.value) {\n return Promise.resolve(this._currentUserV2.value);\n }\n return this._currentUserV2.promise;\n }\n this._currentUserV2 = sharedPromise(() => this.get('users/me', undefined, { prefix: API_V2_PREFIX }));\n return this._currentUserV2.promise;\n }\n async get(url, query = {}, { fullResponse, prefix = this._prefix, ...rest } = {}) {\n if (prefix)\n url = prefix + url;\n const resp = await this._requestMaker.send({\n url,\n method: 'GET',\n query,\n ...rest,\n });\n return fullResponse ? resp : resp.data;\n }\n async delete(url, query = {}, { fullResponse, prefix = this._prefix, ...rest } = {}) {\n if (prefix)\n url = prefix + url;\n const resp = await this._requestMaker.send({\n url,\n method: 'DELETE',\n query,\n ...rest,\n });\n return fullResponse ? resp : resp.data;\n }\n async post(url, body, { fullResponse, prefix = this._prefix, ...rest } = {}) {\n if (prefix)\n url = prefix + url;\n const resp = await this._requestMaker.send({\n url,\n method: 'POST',\n body,\n ...rest,\n });\n return fullResponse ? resp : resp.data;\n }\n async put(url, body, { fullResponse, prefix = this._prefix, ...rest } = {}) {\n if (prefix)\n url = prefix + url;\n const resp = await this._requestMaker.send({\n url,\n method: 'PUT',\n body,\n ...rest,\n });\n return fullResponse ? resp : resp.data;\n }\n async patch(url, body, { fullResponse, prefix = this._prefix, ...rest } = {}) {\n if (prefix)\n url = prefix + url;\n const resp = await this._requestMaker.send({\n url,\n method: 'PATCH',\n body,\n ...rest,\n });\n return fullResponse ? resp : resp.data;\n }\n getStream(url, query, { prefix = this._prefix, ...rest } = {}) {\n return this._requestMaker.sendStream({\n url: prefix ? prefix + url : url,\n method: 'GET',\n query,\n ...rest,\n });\n }\n postStream(url, body, { prefix = this._prefix, ...rest } = {}) {\n return this._requestMaker.sendStream({\n url: prefix ? prefix + url : url,\n method: 'POST',\n body,\n ...rest,\n });\n }\n}\n",
|
|
128
|
+
"import TwitterApiBase from './client.base';\n/**\n * Base subclient for every v1 and v2 client.\n */\nexport default class TwitterApiSubClient extends TwitterApiBase {\n constructor(instance) {\n if (!(instance instanceof TwitterApiBase)) {\n throw new Error('You must instance SubTwitterApi instance from existing TwitterApi instance.');\n }\n super(instance);\n }\n}\n",
|
|
129
|
+
"import TwitterPaginator from './TwitterPaginator';\n/** A generic TwitterPaginator able to consume TweetV1 timelines. */\nclass TweetTimelineV1Paginator extends TwitterPaginator {\n constructor() {\n super(...arguments);\n this.hasFinishedFetch = false;\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.push(...result);\n // HINT: This is an approximation, as \"end\" of pagination cannot be safely determined without cursors.\n this.hasFinishedFetch = result.length === 0;\n }\n }\n getNextQueryParams(maxResults) {\n const latestId = BigInt(this._realData[this._realData.length - 1].id_str);\n return {\n ...this.injectQueryParams(maxResults),\n max_id: (latestId - BigInt(1)).toString(),\n };\n }\n getPageLengthFromRequest(result) {\n return result.data.length;\n }\n isFetchLastOver(result) {\n return !result.data.length;\n }\n canFetchNextPage(result) {\n return result.length > 0;\n }\n getItemArray() {\n return this.tweets;\n }\n /**\n * Tweets returned by paginator.\n */\n get tweets() {\n return this._realData;\n }\n get done() {\n return super.done || this.hasFinishedFetch;\n }\n}\n// Timelines\n// Home\nexport class HomeTimelineV1Paginator extends TweetTimelineV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'statuses/home_timeline.json';\n }\n}\n// Mention\nexport class MentionTimelineV1Paginator extends TweetTimelineV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'statuses/mentions_timeline.json';\n }\n}\n// User\nexport class UserTimelineV1Paginator extends TweetTimelineV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'statuses/user_timeline.json';\n }\n}\n// Lists\nexport class ListTimelineV1Paginator extends TweetTimelineV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/statuses.json';\n }\n}\n// Favorites\nexport class UserFavoritesV1Paginator extends TweetTimelineV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'favorites/list.json';\n }\n}\n",
|
|
130
|
+
"import { CursoredV1Paginator } from './paginator.v1';\nexport class MuteUserListV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'mutes/users/list.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.users.push(...result.users);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.users.length;\n }\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n return this._realData.users;\n }\n}\nexport class MuteUserIdsV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'mutes/users/ids.json';\n this._maxResultsWhenFetchLast = 5000;\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.ids.push(...result.ids);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.ids.length;\n }\n getItemArray() {\n return this.ids;\n }\n /**\n * Users IDs returned by paginator.\n */\n get ids() {\n return this._realData.ids;\n }\n}\n",
|
|
131
|
+
"import { CursoredV1Paginator } from './paginator.v1';\nexport class UserFollowerListV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'followers/list.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.users.push(...result.users);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.users.length;\n }\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n return this._realData.users;\n }\n}\nexport class UserFollowerIdsV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'followers/ids.json';\n this._maxResultsWhenFetchLast = 5000;\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.ids.push(...result.ids);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.ids.length;\n }\n getItemArray() {\n return this.ids;\n }\n /**\n * Users IDs returned by paginator.\n */\n get ids() {\n return this._realData.ids;\n }\n}\n",
|
|
132
|
+
"import { CursoredV1Paginator } from './paginator.v1';\nexport class UserFriendListV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'friends/list.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.users.push(...result.users);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.users.length;\n }\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n return this._realData.users;\n }\n}\nexport class UserFollowersIdsV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'friends/ids.json';\n this._maxResultsWhenFetchLast = 5000;\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.ids.push(...result.ids);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.ids.length;\n }\n getItemArray() {\n return this.ids;\n }\n /**\n * Users IDs returned by paginator.\n */\n get ids() {\n return this._realData.ids;\n }\n}\n",
|
|
133
|
+
"import TwitterPaginator from './TwitterPaginator';\nimport { CursoredV1Paginator } from './paginator.v1';\n/** A generic TwitterPaginator able to consume TweetV1 timelines. */\nexport class UserSearchV1Paginator extends TwitterPaginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/search.json';\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.push(...result);\n }\n }\n getNextQueryParams(maxResults) {\n var _a;\n const previousPage = Number((_a = this._queryParams.page) !== null && _a !== void 0 ? _a : '1');\n return {\n ...this._queryParams,\n page: previousPage + 1,\n ...maxResults ? { count: maxResults } : {},\n };\n }\n getPageLengthFromRequest(result) {\n return result.data.length;\n }\n isFetchLastOver(result) {\n return !result.data.length;\n }\n canFetchNextPage(result) {\n return result.length > 0;\n }\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n return this._realData;\n }\n}\nexport class FriendshipsIncomingV1Paginator extends CursoredV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'friendships/incoming.json';\n this._maxResultsWhenFetchLast = 5000;\n }\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.ids.push(...result.ids);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.ids.length;\n }\n getItemArray() {\n return this.ids;\n }\n /**\n * Users IDs returned by paginator.\n */\n get ids() {\n return this._realData.ids;\n }\n}\nexport class FriendshipsOutgoingV1Paginator extends FriendshipsIncomingV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'friendships/outgoing.json';\n }\n}\n",
|
|
134
|
+
"import { CursoredV1Paginator } from './paginator.v1';\nclass ListListsV1Paginator extends CursoredV1Paginator {\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.lists.push(...result.lists);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.lists.length;\n }\n getItemArray() {\n return this.lists;\n }\n /**\n * Lists returned by paginator.\n */\n get lists() {\n return this._realData.lists;\n }\n}\nexport class ListMembershipsV1Paginator extends ListListsV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/memberships.json';\n }\n}\nexport class ListOwnershipsV1Paginator extends ListListsV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/ownerships.json';\n }\n}\nexport class ListSubscriptionsV1Paginator extends ListListsV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/subscriptions.json';\n }\n}\nclass ListUsersV1Paginator extends CursoredV1Paginator {\n refreshInstanceFromResult(response, isNextPage) {\n const result = response.data;\n this._rateLimit = response.rateLimit;\n if (isNextPage) {\n this._realData.users.push(...result.users);\n this._realData.next_cursor = result.next_cursor;\n }\n }\n getPageLengthFromRequest(result) {\n return result.data.users.length;\n }\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n return this._realData.users;\n }\n}\nexport class ListMembersV1Paginator extends ListUsersV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/members.json';\n }\n}\nexport class ListSubscribersV1Paginator extends ListUsersV1Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/subscribers.json';\n }\n}\n",
|
|
135
|
+
"import TwitterApiSubClient from '../client.subclient';\nimport { API_V1_1_PREFIX, API_V1_1_STREAM_PREFIX, API_V1_1_UPLOAD_PREFIX } from '../globals';\nimport { arrayWrap } from '../helpers';\nimport TwitterApiv1 from '../v1/client.v1';\nimport { HomeTimelineV1Paginator, ListTimelineV1Paginator, MentionTimelineV1Paginator, UserFavoritesV1Paginator, UserTimelineV1Paginator } from '../paginators/tweet.paginator.v1';\nimport { MuteUserIdsV1Paginator, MuteUserListV1Paginator } from '../paginators/mutes.paginator.v1';\nimport { UserFollowerIdsV1Paginator, UserFollowerListV1Paginator } from '../paginators/followers.paginator.v1';\nimport { UserFollowersIdsV1Paginator, UserFriendListV1Paginator } from '../paginators/friends.paginator.v1';\nimport { FriendshipsIncomingV1Paginator, FriendshipsOutgoingV1Paginator, UserSearchV1Paginator } from '../paginators/user.paginator.v1';\nimport { ListMembershipsV1Paginator, ListMembersV1Paginator, ListOwnershipsV1Paginator, ListSubscribersV1Paginator, ListSubscriptionsV1Paginator } from '../paginators/list.paginator.v1';\n/**\n * Base Twitter v1 client with only read right.\n */\nexport default class TwitterApiv1ReadOnly extends TwitterApiSubClient {\n constructor() {\n super(...arguments);\n this._prefix = API_V1_1_PREFIX;\n }\n /* Tweets */\n /**\n * Returns a single Tweet, specified by the id parameter. The Tweet's author will also be embedded within the Tweet.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-statuses-show-id\n */\n singleTweet(tweetId, options = {}) {\n return this.get('statuses/show.json', { tweet_mode: 'extended', id: tweetId, ...options });\n }\n tweets(ids, options = {}) {\n return this.post('statuses/lookup.json', { tweet_mode: 'extended', id: ids, ...options });\n }\n /**\n * Returns a single Tweet, specified by either a Tweet web URL or the Tweet ID, in an oEmbed-compatible format.\n * The returned HTML snippet will be automatically recognized as an Embedded Tweet when Twitter's widget JavaScript is included on the page.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-statuses-oembed\n */\n oembedTweet(tweetId, options = {}) {\n return this.get('oembed', {\n url: `https://x.com/i/statuses/${tweetId}`,\n ...options,\n }, { prefix: 'https://publish.x.com/' });\n }\n /* Tweets timelines */\n /**\n * Returns a collection of the most recent Tweets and Retweets posted by the authenticating user and the users they follow.\n * The home timeline is central to how most users interact with the Twitter service.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-home_timeline\n */\n async homeTimeline(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('statuses/home_timeline.json', queryParams, { fullResponse: true });\n return new HomeTimelineV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns the 20 most recent mentions (Tweets containing a users's @screen_name) for the authenticating user.\n * The timeline returned is the equivalent of the one seen when you view your mentions on x.com.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-mentions_timeline\n */\n async mentionTimeline(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('statuses/mentions_timeline.json', queryParams, { fullResponse: true });\n return new MentionTimelineV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns a collection of the most recent Tweets posted by the user indicated by the user_id parameters.\n * User timelines belonging to protected users may only be requested when the authenticated user either \"owns\" the timeline or is an approved follower of the owner.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-user_timeline\n */\n async userTimeline(userId, options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n user_id: userId,\n ...options,\n };\n const initialRq = await this.get('statuses/user_timeline.json', queryParams, { fullResponse: true });\n return new UserTimelineV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns a collection of the most recent Tweets posted by the user indicated by the screen_name parameters.\n * User timelines belonging to protected users may only be requested when the authenticated user either \"owns\" the timeline or is an approved follower of the owner.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-user_timeline\n */\n async userTimelineByUsername(username, options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n screen_name: username,\n ...options,\n };\n const initialRq = await this.get('statuses/user_timeline.json', queryParams, { fullResponse: true });\n return new UserTimelineV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns the most recent Tweets liked by the authenticating or specified user, 20 tweets by default.\n * Note: favorites are now known as likes.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-favorites-list\n */\n async favoriteTimeline(userId, options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n user_id: userId,\n ...options,\n };\n const initialRq = await this.get('favorites/list.json', queryParams, { fullResponse: true });\n return new UserFavoritesV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns the most recent Tweets liked by the authenticating or specified user, 20 tweets by default.\n * Note: favorites are now known as likes.\n * https://developer.x.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-favorites-list\n */\n async favoriteTimelineByUsername(username, options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n screen_name: username,\n ...options,\n };\n const initialRq = await this.get('favorites/list.json', queryParams, { fullResponse: true });\n return new UserFavoritesV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /* Users */\n /**\n * Returns a variety of information about the user specified by the required user_id or screen_name parameter.\n * The author's most recent Tweet will be returned inline when possible.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-users-show\n */\n user(user) {\n return this.get('users/show.json', { tweet_mode: 'extended', ...user });\n }\n /**\n * Returns fully-hydrated user objects for up to 100 users per request,\n * as specified by comma-separated values passed to the user_id and/or screen_name parameters.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup\n */\n users(query) {\n return this.get('users/lookup.json', { tweet_mode: 'extended', ...query });\n }\n /**\n * Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful;\n * returns a 401 status code and an error message if not.\n * Use this method to test if supplied user credentials are valid.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials\n */\n verifyCredentials(options = {}) {\n return this.get('account/verify_credentials.json', options);\n }\n /**\n * Returns an array of user objects the authenticating user has muted.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-list\n */\n async listMutedUsers(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('mutes/users/list.json', queryParams, { fullResponse: true });\n return new MuteUserListV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns an array of numeric user ids the authenticating user has muted.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-ids\n */\n async listMutedUserIds(options = {}) {\n const queryParams = {\n stringify_ids: true,\n ...options,\n };\n const initialRq = await this.get('mutes/users/ids.json', queryParams, { fullResponse: true });\n return new MuteUserIdsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns an array of user objects of friends of the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friends-list\n */\n async userFriendList(options = {}) {\n const queryParams = {\n ...options,\n };\n const initialRq = await this.get('friends/list.json', queryParams, { fullResponse: true });\n return new UserFriendListV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns an array of user objects of followers of the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-followers-list\n */\n async userFollowerList(options = {}) {\n const queryParams = {\n ...options,\n };\n const initialRq = await this.get('followers/list.json', queryParams, { fullResponse: true });\n return new UserFollowerListV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns an array of numeric user ids of followers of the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-followers-ids\n */\n async userFollowerIds(options = {}) {\n const queryParams = {\n stringify_ids: true,\n ...options,\n };\n const initialRq = await this.get('followers/ids.json', queryParams, { fullResponse: true });\n return new UserFollowerIdsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns an array of numeric user ids of friends of the specified user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friends-ids\n */\n async userFollowingIds(options = {}) {\n const queryParams = {\n stringify_ids: true,\n ...options,\n };\n const initialRq = await this.get('friends/ids.json', queryParams, { fullResponse: true });\n return new UserFollowersIdsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Provides a simple, relevance-based search interface to public user accounts on Twitter.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-users-search\n */\n async searchUsers(query, options = {}) {\n const queryParams = {\n q: query,\n tweet_mode: 'extended',\n page: 1,\n ...options,\n };\n const initialRq = await this.get('users/search.json', queryParams, { fullResponse: true });\n return new UserSearchV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /* Friendship API */\n /**\n * Returns detailed information about the relationship between two arbitrary users.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friendships-show\n */\n friendship(sources) {\n return this.get('friendships/show.json', sources);\n }\n /**\n * Returns the relationships of the authenticating user to the comma-separated list of up to 100 screen_names or user_ids provided.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friendships-lookup\n */\n friendships(friendships) {\n return this.get('friendships/lookup.json', friendships);\n }\n /**\n * Returns a collection of user_ids that the currently authenticated user does not want to receive retweets from.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friendships-no_retweets-ids\n */\n friendshipsNoRetweets() {\n return this.get('friendships/no_retweets/ids.json', { stringify_ids: true });\n }\n /**\n * Returns a collection of numeric IDs for every user who has a pending request to follow the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friendships-incoming\n */\n async friendshipsIncoming(options = {}) {\n const queryParams = {\n stringify_ids: true,\n ...options,\n };\n const initialRq = await this.get('friendships/incoming.json', queryParams, { fullResponse: true });\n return new FriendshipsIncomingV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns a collection of numeric IDs for every protected user for whom the authenticating user has a pending follow request.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-friendships-outgoing\n */\n async friendshipsOutgoing(options = {}) {\n const queryParams = {\n stringify_ids: true,\n ...options,\n };\n const initialRq = await this.get('friendships/outgoing.json', queryParams, { fullResponse: true });\n return new FriendshipsOutgoingV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /* Account/user API */\n /**\n * Get current account settings for authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-settings\n */\n accountSettings() {\n return this.get('account/settings.json');\n }\n /**\n * Returns a map of the available size variations of the specified user's profile banner.\n * If the user has not uploaded a profile banner, a HTTP 404 will be served instead.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-users-profile_banner\n */\n userProfileBannerSizes(params) {\n return this.get('users/profile_banner.json', params);\n }\n /* Lists */\n /**\n * Returns the specified list. Private lists will only be shown if the authenticated user owns the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-show\n */\n list(options) {\n return this.get('lists/show.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Returns all lists the authenticating or specified user subscribes to, including their own.\n * If no user is given, the authenticating user is used.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-list\n */\n lists(options = {}) {\n return this.get('lists/list.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Returns the members of the specified list. Private list members will only be shown if the authenticated user owns the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-members\n */\n async listMembers(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/members.json', queryParams, { fullResponse: true });\n return new ListMembersV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Check if the specified user is a member of the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-members-show\n */\n listGetMember(options) {\n return this.get('lists/members/show.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Returns the lists the specified user has been added to.\n * If user_id or screen_name are not provided, the memberships for the authenticating user are returned.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-memberships\n */\n async listMemberships(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/memberships.json', queryParams, { fullResponse: true });\n return new ListMembershipsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns the lists owned by the specified Twitter user. Private lists will only be shown if the authenticated user is also the owner of the lists.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-ownerships\n */\n async listOwnerships(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/ownerships.json', queryParams, { fullResponse: true });\n return new ListOwnershipsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns a timeline of tweets authored by members of the specified list. Retweets are included by default.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-statuses\n */\n async listStatuses(options) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/statuses.json', queryParams, { fullResponse: true });\n return new ListTimelineV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns the subscribers of the specified list. Private list subscribers will only be shown if the authenticated user owns the specified list.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers\n */\n async listSubscribers(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/subscribers.json', queryParams, { fullResponse: true });\n return new ListSubscribersV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Check if the specified user is a subscriber of the specified list. Returns the user if they are a subscriber.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers-show\n */\n listGetSubscriber(options) {\n return this.get('lists/subscribers/show.json', { tweet_mode: 'extended', ...options });\n }\n /**\n * Obtain a collection of the lists the specified user is subscribed to, 20 lists per page by default.\n * Does not include the user's own lists.\n * https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-subscriptions\n */\n async listSubscriptions(options = {}) {\n const queryParams = {\n tweet_mode: 'extended',\n ...options,\n };\n const initialRq = await this.get('lists/subscriptions.json', queryParams, { fullResponse: true });\n return new ListSubscriptionsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /* Media upload API */\n /**\n * The STATUS command (this method) is used to periodically poll for updates of media processing operation.\n * After the STATUS command response returns succeeded, you can move on to the next step which is usually create Tweet with media_id.\n * https://developer.x.com/en/docs/twitter-api/v1/media/upload-media/api-reference/get-media-upload-status\n */\n mediaInfo(mediaId) {\n return this.get('media/upload.json', {\n command: 'STATUS',\n media_id: mediaId,\n }, { prefix: API_V1_1_UPLOAD_PREFIX });\n }\n filterStream({ autoConnect, ...params } = {}) {\n const parameters = {};\n for (const [key, value] of Object.entries(params)) {\n if (key === 'follow' || key === 'track') {\n parameters[key] = value.toString();\n }\n else if (key === 'locations') {\n const locations = value;\n parameters.locations = arrayWrap(locations).map(loc => `${loc.lng},${loc.lat}`).join(',');\n }\n else {\n parameters[key] = value;\n }\n }\n const streamClient = this.stream;\n return streamClient.postStream('statuses/filter.json', parameters, { autoConnect });\n }\n sampleStream({ autoConnect, ...params } = {}) {\n const streamClient = this.stream;\n return streamClient.getStream('statuses/sample.json', params, { autoConnect });\n }\n /**\n * Create a client that is prefixed with `https//stream.x.com` instead of classic API URL.\n */\n get stream() {\n const copiedClient = new TwitterApiv1(this);\n copiedClient.setPrefix(API_V1_1_STREAM_PREFIX);\n return copiedClient;\n }\n /* Trends API */\n /**\n * Returns the top 50 trending topics for a specific id, if trending information is available for it.\n * Note: The id parameter for this endpoint is the \"where on earth identifier\" or WOEID, which is a legacy identifier created by Yahoo and has been deprecated.\n * https://developer.x.com/en/docs/twitter-api/v1/trends/trends-for-location/api-reference/get-trends-place\n */\n trendsByPlace(woeId, options = {}) {\n return this.get('trends/place.json', { id: woeId, ...options });\n }\n /**\n * Returns the locations that Twitter has trending topic information for.\n * The response is an array of \"locations\" that encode the location's WOEID\n * and some other human-readable information such as a canonical name and country the location belongs in.\n * https://developer.x.com/en/docs/twitter-api/v1/trends/locations-with-trending-topics/api-reference/get-trends-available\n */\n trendsAvailable() {\n return this.get('trends/available.json');\n }\n /**\n * Returns the locations that Twitter has trending topic information for, closest to a specified location.\n * https://developer.x.com/en/docs/twitter-api/v1/trends/locations-with-trending-topics/api-reference/get-trends-closest\n */\n trendsClosest(lat, long) {\n return this.get('trends/closest.json', { lat, long });\n }\n /* Geo API */\n /**\n * Returns all the information about a known place.\n * https://developer.x.com/en/docs/twitter-api/v1/geo/place-information/api-reference/get-geo-id-place_id\n */\n geoPlace(placeId) {\n return this.get('geo/id/:place_id.json', undefined, { params: { place_id: placeId } });\n }\n /**\n * Search for places that can be attached to a Tweet via POST statuses/update.\n * This request will return a list of all the valid places that can be used as the place_id when updating a status.\n * https://developer.x.com/en/docs/twitter-api/v1/geo/places-near-location/api-reference/get-geo-search\n */\n geoSearch(options) {\n return this.get('geo/search.json', options);\n }\n /**\n * Given a latitude and a longitude, searches for up to 20 places that can be used as a place_id when updating a status.\n * This request is an informative call and will deliver generalized results about geography.\n * https://developer.x.com/en/docs/twitter-api/v1/geo/places-near-location/api-reference/get-geo-reverse_geocode\n */\n geoReverseGeoCode(options) {\n return this.get('geo/reverse_geocode.json', options);\n }\n /* Developer utilities */\n /**\n * Returns the current rate limits for methods belonging to the specified resource families.\n * Each API resource belongs to a \"resource family\" which is indicated in its method documentation.\n * The method's resource family can be determined from the first component of the path after the resource version.\n * https://developer.x.com/en/docs/twitter-api/v1/developer-utilities/rate-limit-status/api-reference/get-application-rate_limit_status\n */\n rateLimitStatuses(...resources) {\n return this.get('application/rate_limit_status.json', { resources });\n }\n /**\n * Returns the list of languages supported by Twitter along with the language code supported by Twitter.\n * https://developer.x.com/en/docs/twitter-api/v1/developer-utilities/supported-languages/api-reference/get-help-languages\n */\n supportedLanguages() {\n return this.get('help/languages.json');\n }\n}\n",
|
|
136
|
+
"import * as fs from 'fs';\nimport { safeDeprecationWarning } from '../helpers';\nimport { EUploadMimeType } from '../types';\nexport async function readFileIntoBuffer(file) {\n const handle = await getFileHandle(file);\n if (typeof handle === 'number') {\n return new Promise((resolve, reject) => {\n fs.readFile(handle, (err, data) => {\n if (err) {\n return reject(err);\n }\n resolve(data);\n });\n });\n }\n else if (handle instanceof Buffer) {\n return handle;\n }\n else {\n return handle.readFile();\n }\n}\nexport function getFileHandle(file) {\n if (typeof file === 'string') {\n return fs.promises.open(file, 'r');\n }\n else if (typeof file === 'number') {\n return file;\n }\n else if (typeof file === 'object' && !(file instanceof Buffer)) {\n return file;\n }\n else if (!(file instanceof Buffer)) {\n throw new Error('Given file is not valid, please check its type.');\n }\n else {\n return file;\n }\n}\nexport async function getFileSizeFromFileHandle(fileHandle) {\n // Get the file size\n if (typeof fileHandle === 'number') {\n const stats = await new Promise((resolve, reject) => {\n fs.fstat(fileHandle, (err, stats) => {\n if (err)\n reject(err);\n resolve(stats);\n });\n });\n return stats.size;\n }\n else if (fileHandle instanceof Buffer) {\n return fileHandle.length;\n }\n else {\n return (await fileHandle.stat()).size;\n }\n}\nexport function getMimeType(file, type, mimeType) {\n if (typeof mimeType === 'string') {\n return mimeType;\n }\n else if (typeof file === 'string' && !type) {\n return getMimeByName(file);\n }\n else if (typeof type === 'string') {\n return getMimeByType(type);\n }\n throw new Error('You must specify type if file is a file handle or Buffer.');\n}\nfunction getMimeByName(name) {\n if (name.endsWith('.jpeg') || name.endsWith('.jpg'))\n return EUploadMimeType.Jpeg;\n if (name.endsWith('.png'))\n return EUploadMimeType.Png;\n if (name.endsWith('.webp'))\n return EUploadMimeType.Webp;\n if (name.endsWith('.gif'))\n return EUploadMimeType.Gif;\n if (name.endsWith('.mpeg4') || name.endsWith('.mp4'))\n return EUploadMimeType.Mp4;\n if (name.endsWith('.mov') || name.endsWith('.mov'))\n return EUploadMimeType.Mov;\n if (name.endsWith('.srt'))\n return EUploadMimeType.Srt;\n safeDeprecationWarning({\n instance: 'TwitterApiv1ReadWrite',\n method: 'uploadMedia',\n problem: 'options.mimeType is missing and filename couldn\\'t help to resolve MIME type, so it will fallback to image/jpeg',\n resolution: 'If you except to give filenames without extensions, please specify explicitlty the MIME type using options.mimeType',\n });\n return EUploadMimeType.Jpeg;\n}\nfunction getMimeByType(type) {\n safeDeprecationWarning({\n instance: 'TwitterApiv1ReadWrite',\n method: 'uploadMedia',\n problem: 'you\\'re using options.type',\n resolution: 'Remove options.type argument and migrate to options.mimeType which takes the real MIME type. ' +\n 'If you\\'re using type=longmp4, add options.longVideo alongside of mimeType=EUploadMimeType.Mp4',\n });\n if (type === 'gif')\n return EUploadMimeType.Gif;\n if (type === 'jpg')\n return EUploadMimeType.Jpeg;\n if (type === 'png')\n return EUploadMimeType.Png;\n if (type === 'webp')\n return EUploadMimeType.Webp;\n if (type === 'srt')\n return EUploadMimeType.Srt;\n if (type === 'mp4' || type === 'longmp4')\n return EUploadMimeType.Mp4;\n if (type === 'mov')\n return EUploadMimeType.Mov;\n return type;\n}\nexport function getMediaCategoryByMime(name, target) {\n if (name === EUploadMimeType.Mp4 || name === EUploadMimeType.Mov)\n return target === 'tweet' ? 'TweetVideo' : 'DmVideo';\n if (name === EUploadMimeType.Gif)\n return target === 'tweet' ? 'TweetGif' : 'DmGif';\n if (name === EUploadMimeType.Srt)\n return 'Subtitles';\n else\n return target === 'tweet' ? 'TweetImage' : 'DmImage';\n}\nexport function sleepSecs(seconds) {\n return new Promise(resolve => setTimeout(resolve, seconds * 1000));\n}\nexport async function readNextPartOf(file, chunkLength, bufferOffset = 0, buffer) {\n if (file instanceof Buffer) {\n const rt = file.slice(bufferOffset, bufferOffset + chunkLength);\n return [rt, rt.length];\n }\n if (!buffer) {\n throw new Error('Well, we will need a buffer to store file content.');\n }\n let bytesRead;\n if (typeof file === 'number') {\n bytesRead = await new Promise((resolve, reject) => {\n fs.read(file, buffer, 0, chunkLength, bufferOffset, (err, nread) => {\n if (err)\n reject(err);\n resolve(nread);\n });\n });\n }\n else {\n const res = await file.read(buffer, 0, chunkLength, bufferOffset);\n bytesRead = res.bytesRead;\n }\n return [buffer, bytesRead];\n}\n",
|
|
137
|
+
"import { API_V1_1_PREFIX } from '../globals';\nimport { DmEventsV1Paginator, WelcomeDmV1Paginator } from '../paginators/dm.paginator.v1';\nimport { EDirectMessageEventTypeV1, } from '../types';\nimport TwitterApiv1ReadWrite from './client.v1.write';\n/**\n * Twitter v1.1 API client with read/write/DMs rights.\n */\nexport class TwitterApiv1 extends TwitterApiv1ReadWrite {\n constructor() {\n super(...arguments);\n this._prefix = API_V1_1_PREFIX;\n }\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n /* Direct messages */\n // Part: Sending and receiving events\n /**\n * Publishes a new message_create event resulting in a Direct Message sent to a specified user from the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/sending-and-receiving/api-reference/new-event\n */\n sendDm({ recipient_id, custom_profile_id, ...params }) {\n const args = {\n event: {\n type: EDirectMessageEventTypeV1.Create,\n [EDirectMessageEventTypeV1.Create]: {\n target: { recipient_id },\n message_data: params,\n },\n },\n };\n if (custom_profile_id) {\n args.event[EDirectMessageEventTypeV1.Create].custom_profile_id = custom_profile_id;\n }\n return this.post('direct_messages/events/new.json', args, {\n forceBodyMode: 'json',\n });\n }\n /**\n * Returns a single Direct Message event by the given id.\n *\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/sending-and-receiving/api-reference/get-event\n */\n getDmEvent(id) {\n return this.get('direct_messages/events/show.json', { id });\n }\n /**\n * Deletes the direct message specified in the required ID parameter.\n * The authenticating user must be the recipient of the specified direct message.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/sending-and-receiving/api-reference/delete-message-event\n */\n deleteDm(id) {\n return this.delete('direct_messages/events/destroy.json', { id });\n }\n /**\n * Returns all Direct Message events (both sent and received) within the last 30 days.\n * Sorted in reverse-chronological order.\n *\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/sending-and-receiving/api-reference/list-events\n */\n async listDmEvents(args = {}) {\n const queryParams = { ...args };\n const initialRq = await this.get('direct_messages/events/list.json', queryParams, { fullResponse: true });\n return new DmEventsV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n // Part: Welcome messages (events)\n /**\n * Creates a new Welcome Message that will be stored and sent in the future from the authenticating user in defined circumstances.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/new-welcome-message\n */\n newWelcomeDm(name, data) {\n const args = {\n [EDirectMessageEventTypeV1.WelcomeCreate]: {\n name,\n message_data: data,\n },\n };\n return this.post('direct_messages/welcome_messages/new.json', args, {\n forceBodyMode: 'json',\n });\n }\n /**\n * Returns a Welcome Message by the given id.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/get-welcome-message\n */\n getWelcomeDm(id) {\n return this.get('direct_messages/welcome_messages/show.json', { id });\n }\n /**\n * Deletes a Welcome Message by the given id.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/delete-welcome-message\n */\n deleteWelcomeDm(id) {\n return this.delete('direct_messages/welcome_messages/destroy.json', { id });\n }\n /**\n * Updates a Welcome Message by the given ID.\n * Updates to the welcome_message object are atomic.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/update-welcome-message\n */\n updateWelcomeDm(id, data) {\n const args = { message_data: data };\n return this.put('direct_messages/welcome_messages/update.json', args, {\n forceBodyMode: 'json',\n query: { id },\n });\n }\n /**\n * Returns all Direct Message events (both sent and received) within the last 30 days.\n * Sorted in reverse-chronological order.\n *\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/sending-and-receiving/api-reference/list-events\n */\n async listWelcomeDms(args = {}) {\n const queryParams = { ...args };\n const initialRq = await this.get('direct_messages/welcome_messages/list.json', queryParams, { fullResponse: true });\n return new WelcomeDmV1Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n // Part: Welcome message (rules)\n /**\n * Creates a new Welcome Message Rule that determines which Welcome Message will be shown in a given conversation.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/new-welcome-message-rule\n */\n newWelcomeDmRule(welcomeMessageId) {\n return this.post('direct_messages/welcome_messages/rules/new.json', {\n welcome_message_rule: { welcome_message_id: welcomeMessageId },\n }, {\n forceBodyMode: 'json',\n });\n }\n /**\n * Returns a Welcome Message Rule by the given id.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/get-welcome-message-rule\n */\n getWelcomeDmRule(id) {\n return this.get('direct_messages/welcome_messages/rules/show.json', { id });\n }\n /**\n * Deletes a Welcome Message Rule by the given id.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/delete-welcome-message-rule\n */\n deleteWelcomeDmRule(id) {\n return this.delete('direct_messages/welcome_messages/rules/destroy.json', { id });\n }\n /**\n * Retrieves all welcome DM rules for this account.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/welcome-messages/api-reference/list-welcome-message-rules\n */\n async listWelcomeDmRules(args = {}) {\n const queryParams = { ...args };\n return this.get('direct_messages/welcome_messages/rules/list.json', queryParams);\n }\n /**\n * Set the current showed welcome message for logged account ; wrapper for Welcome DM rules.\n * Test if a rule already exists, delete if any, then create a rule for current message ID.\n *\n * If you don't have already a welcome message, create it with `.newWelcomeMessage`.\n */\n async setWelcomeDm(welcomeMessageId, deleteAssociatedWelcomeDmWhenDeletingRule = true) {\n var _a;\n const existingRules = await this.listWelcomeDmRules();\n if ((_a = existingRules.welcome_message_rules) === null || _a === void 0 ? void 0 : _a.length) {\n for (const rule of existingRules.welcome_message_rules) {\n await this.deleteWelcomeDmRule(rule.id);\n if (deleteAssociatedWelcomeDmWhenDeletingRule) {\n await this.deleteWelcomeDm(rule.welcome_message_id);\n }\n }\n }\n return this.newWelcomeDmRule(welcomeMessageId);\n }\n // Part: Read indicator\n /**\n * Marks a message as read in the recipient’s Direct Message conversation view with the sender.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/typing-indicator-and-read-receipts/api-reference/new-read-receipt\n */\n markDmAsRead(lastEventId, recipientId) {\n return this.post('direct_messages/mark_read.json', {\n last_read_event_id: lastEventId,\n recipient_id: recipientId,\n }, { forceBodyMode: 'url' });\n }\n /**\n * Displays a visual typing indicator in the recipient’s Direct Message conversation view with the sender.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/typing-indicator-and-read-receipts/api-reference/new-typing-indicator\n */\n indicateDmTyping(recipientId) {\n return this.post('direct_messages/indicate_typing.json', {\n recipient_id: recipientId,\n }, { forceBodyMode: 'url' });\n }\n // Part: Images\n /**\n * Get a single image attached to a direct message. TwitterApi client must be logged with OAuth 1.0a.\n * https://developer.x.com/en/docs/twitter-api/v1/direct-messages/message-attachments/guides/retrieving-media\n */\n async downloadDmImage(urlOrDm) {\n if (typeof urlOrDm !== 'string') {\n const attachment = urlOrDm[EDirectMessageEventTypeV1.Create].message_data.attachment;\n if (!attachment) {\n throw new Error('The given direct message doesn\\'t contain any attachment');\n }\n urlOrDm = attachment.media.media_url_https;\n }\n const data = await this.get(urlOrDm, undefined, { forceParseMode: 'buffer', prefix: '' });\n if (!data.length) {\n throw new Error('Image not found. Make sure you are logged with credentials able to access direct messages, and check the URL.');\n }\n return data;\n }\n}\nexport default TwitterApiv1;\n",
|
|
138
|
+
"/**\n * Provide helpers for `.includes` of a v2 API result.\n * Needed expansions for a method to work are specified (*`like this`*).\n */\nexport class TwitterV2IncludesHelper {\n constructor(result) {\n this.result = result;\n }\n /* Tweets */\n get tweets() {\n return TwitterV2IncludesHelper.tweets(this.result);\n }\n static tweets(result) {\n var _a, _b;\n return (_b = (_a = result.includes) === null || _a === void 0 ? void 0 : _a.tweets) !== null && _b !== void 0 ? _b : [];\n }\n tweetById(id) {\n return TwitterV2IncludesHelper.tweetById(this.result, id);\n }\n static tweetById(result, id) {\n return this.tweets(result).find(tweet => tweet.id === id);\n }\n /** Retweet associated with the given tweet (*`referenced_tweets.id`*) */\n retweet(tweet) {\n return TwitterV2IncludesHelper.retweet(this.result, tweet);\n }\n /** Retweet associated with the given tweet (*`referenced_tweets.id`*) */\n static retweet(result, tweet) {\n var _a;\n const retweetIds = ((_a = tweet.referenced_tweets) !== null && _a !== void 0 ? _a : [])\n .filter(ref => ref.type === 'retweeted')\n .map(ref => ref.id);\n return this.tweets(result).find(t => retweetIds.includes(t.id));\n }\n /** Quoted tweet associated with the given tweet (*`referenced_tweets.id`*) */\n quote(tweet) {\n return TwitterV2IncludesHelper.quote(this.result, tweet);\n }\n /** Quoted tweet associated with the given tweet (*`referenced_tweets.id`*) */\n static quote(result, tweet) {\n var _a;\n const quoteIds = ((_a = tweet.referenced_tweets) !== null && _a !== void 0 ? _a : [])\n .filter(ref => ref.type === 'quoted')\n .map(ref => ref.id);\n return this.tweets(result).find(t => quoteIds.includes(t.id));\n }\n /** Tweet whose has been answered by the given tweet (*`referenced_tweets.id`*) */\n repliedTo(tweet) {\n return TwitterV2IncludesHelper.repliedTo(this.result, tweet);\n }\n /** Tweet whose has been answered by the given tweet (*`referenced_tweets.id`*) */\n static repliedTo(result, tweet) {\n var _a;\n const repliesIds = ((_a = tweet.referenced_tweets) !== null && _a !== void 0 ? _a : [])\n .filter(ref => ref.type === 'replied_to')\n .map(ref => ref.id);\n return this.tweets(result).find(t => repliesIds.includes(t.id));\n }\n /** Tweet author user object of the given tweet (*`author_id`* or *`referenced_tweets.id.author_id`*) */\n author(tweet) {\n return TwitterV2IncludesHelper.author(this.result, tweet);\n }\n /** Tweet author user object of the given tweet (*`author_id`* or *`referenced_tweets.id.author_id`*) */\n static author(result, tweet) {\n const authorId = tweet.author_id;\n return authorId ? this.users(result).find(u => u.id === authorId) : undefined;\n }\n /** Tweet author user object of the tweet answered by the given tweet (*`in_reply_to_user_id`*) */\n repliedToAuthor(tweet) {\n return TwitterV2IncludesHelper.repliedToAuthor(this.result, tweet);\n }\n /** Tweet author user object of the tweet answered by the given tweet (*`in_reply_to_user_id`*) */\n static repliedToAuthor(result, tweet) {\n const inReplyUserId = tweet.in_reply_to_user_id;\n return inReplyUserId ? this.users(result).find(u => u.id === inReplyUserId) : undefined;\n }\n /* Users */\n get users() {\n return TwitterV2IncludesHelper.users(this.result);\n }\n static users(result) {\n var _a, _b;\n return (_b = (_a = result.includes) === null || _a === void 0 ? void 0 : _a.users) !== null && _b !== void 0 ? _b : [];\n }\n userById(id) {\n return TwitterV2IncludesHelper.userById(this.result, id);\n }\n static userById(result, id) {\n return this.users(result).find(u => u.id === id);\n }\n /** Pinned tweet of the given user (*`pinned_tweet_id`*) */\n pinnedTweet(user) {\n return TwitterV2IncludesHelper.pinnedTweet(this.result, user);\n }\n /** Pinned tweet of the given user (*`pinned_tweet_id`*) */\n static pinnedTweet(result, user) {\n return user.pinned_tweet_id ? this.tweets(result).find(t => t.id === user.pinned_tweet_id) : undefined;\n }\n /* Medias */\n get media() {\n return TwitterV2IncludesHelper.media(this.result);\n }\n static media(result) {\n var _a, _b;\n return (_b = (_a = result.includes) === null || _a === void 0 ? void 0 : _a.media) !== null && _b !== void 0 ? _b : [];\n }\n /** Medias associated with the given tweet (*`attachments.media_keys`*) */\n medias(tweet) {\n return TwitterV2IncludesHelper.medias(this.result, tweet);\n }\n /** Medias associated with the given tweet (*`attachments.media_keys`*) */\n static medias(result, tweet) {\n var _a, _b;\n const keys = (_b = (_a = tweet.attachments) === null || _a === void 0 ? void 0 : _a.media_keys) !== null && _b !== void 0 ? _b : [];\n return this.media(result).filter(m => keys.includes(m.media_key));\n }\n /* Polls */\n get polls() {\n return TwitterV2IncludesHelper.polls(this.result);\n }\n static polls(result) {\n var _a, _b;\n return (_b = (_a = result.includes) === null || _a === void 0 ? void 0 : _a.polls) !== null && _b !== void 0 ? _b : [];\n }\n /** Poll associated with the given tweet (*`attachments.poll_ids`*) */\n poll(tweet) {\n return TwitterV2IncludesHelper.poll(this.result, tweet);\n }\n /** Poll associated with the given tweet (*`attachments.poll_ids`*) */\n static poll(result, tweet) {\n var _a, _b;\n const pollIds = (_b = (_a = tweet.attachments) === null || _a === void 0 ? void 0 : _a.poll_ids) !== null && _b !== void 0 ? _b : [];\n if (pollIds.length) {\n const pollId = pollIds[0];\n return this.polls(result).find(p => p.id === pollId);\n }\n return undefined;\n }\n /* Places */\n get places() {\n return TwitterV2IncludesHelper.places(this.result);\n }\n static places(result) {\n var _a, _b;\n return (_b = (_a = result.includes) === null || _a === void 0 ? void 0 : _a.places) !== null && _b !== void 0 ? _b : [];\n }\n /** Place associated with the given tweet (*`geo.place_id`*) */\n place(tweet) {\n return TwitterV2IncludesHelper.place(this.result, tweet);\n }\n /** Place associated with the given tweet (*`geo.place_id`*) */\n static place(result, tweet) {\n var _a;\n const placeId = (_a = tweet.geo) === null || _a === void 0 ? void 0 : _a.place_id;\n return placeId ? this.places(result).find(p => p.id === placeId) : undefined;\n }\n /* Lists */\n /** List owner of the given list (*`owner_id`*) */\n listOwner(list) {\n return TwitterV2IncludesHelper.listOwner(this.result, list);\n }\n /** List owner of the given list (*`owner_id`*) */\n static listOwner(result, list) {\n const creatorId = list.owner_id;\n return creatorId ? this.users(result).find(p => p.id === creatorId) : undefined;\n }\n /* Spaces */\n /** Creator of the given space (*`creator_id`*) */\n spaceCreator(space) {\n return TwitterV2IncludesHelper.spaceCreator(this.result, space);\n }\n /** Creator of the given space (*`creator_id`*) */\n static spaceCreator(result, space) {\n const creatorId = space.creator_id;\n return creatorId ? this.users(result).find(p => p.id === creatorId) : undefined;\n }\n /** Current hosts of the given space (*`host_ids`*) */\n spaceHosts(space) {\n return TwitterV2IncludesHelper.spaceHosts(this.result, space);\n }\n /** Current hosts of the given space (*`host_ids`*) */\n static spaceHosts(result, space) {\n var _a;\n const hostIds = (_a = space.host_ids) !== null && _a !== void 0 ? _a : [];\n return this.users(result).filter(u => hostIds.includes(u.id));\n }\n /** Current speakers of the given space (*`speaker_ids`*) */\n spaceSpeakers(space) {\n return TwitterV2IncludesHelper.spaceSpeakers(this.result, space);\n }\n /** Current speakers of the given space (*`speaker_ids`*) */\n static spaceSpeakers(result, space) {\n var _a;\n const speakerIds = (_a = space.speaker_ids) !== null && _a !== void 0 ? _a : [];\n return this.users(result).filter(u => speakerIds.includes(u.id));\n }\n /** Current invited users of the given space (*`invited_user_ids`*) */\n spaceInvitedUsers(space) {\n return TwitterV2IncludesHelper.spaceInvitedUsers(this.result, space);\n }\n /** Current invited users of the given space (*`invited_user_ids`*) */\n static spaceInvitedUsers(result, space) {\n var _a;\n const invitedUserIds = (_a = space.invited_user_ids) !== null && _a !== void 0 ? _a : [];\n return this.users(result).filter(u => invitedUserIds.includes(u.id));\n }\n}\n",
|
|
139
|
+
"import { TwitterV2IncludesHelper } from '../v2/includes.v2.helper';\nimport { PreviousableTwitterPaginator } from './TwitterPaginator';\n/** A generic PreviousableTwitterPaginator with common v2 helper methods. */\nexport class TwitterV2Paginator extends PreviousableTwitterPaginator {\n updateIncludes(data) {\n // Update errors\n if (data.errors) {\n if (!this._realData.errors) {\n this._realData.errors = [];\n }\n this._realData.errors = [...this._realData.errors, ...data.errors];\n }\n // Update includes\n if (!data.includes) {\n return;\n }\n if (!this._realData.includes) {\n this._realData.includes = {};\n }\n const includesRealData = this._realData.includes;\n for (const [includeKey, includeArray] of Object.entries(data.includes)) {\n if (!includesRealData[includeKey]) {\n includesRealData[includeKey] = [];\n }\n includesRealData[includeKey] = [\n ...includesRealData[includeKey],\n ...includeArray,\n ];\n }\n }\n /** Throw if the current paginator is not usable. */\n assertUsable() {\n if (this.unusable) {\n throw new Error('Unable to use this paginator to fetch more data, as it does not contain any metadata.' +\n ' Check .errors property for more details.');\n }\n }\n get meta() {\n return this._realData.meta;\n }\n get includes() {\n var _a;\n if (!((_a = this._realData) === null || _a === void 0 ? void 0 : _a.includes)) {\n return new TwitterV2IncludesHelper(this._realData);\n }\n if (this._includesInstance) {\n return this._includesInstance;\n }\n return this._includesInstance = new TwitterV2IncludesHelper(this._realData);\n }\n get errors() {\n var _a;\n return (_a = this._realData.errors) !== null && _a !== void 0 ? _a : [];\n }\n /** `true` if this paginator only contains error payload and no metadata found to consume data. */\n get unusable() {\n return this.errors.length > 0 && !this._realData.meta && !this._realData.data;\n }\n}\n/** A generic TwitterV2Paginator able to consume v2 timelines that use max_results and pagination tokens. */\nexport class TimelineV2Paginator extends TwitterV2Paginator {\n refreshInstanceFromResult(response, isNextPage) {\n var _a;\n const result = response.data;\n const resultData = (_a = result.data) !== null && _a !== void 0 ? _a : [];\n this._rateLimit = response.rateLimit;\n if (!this._realData.data) {\n this._realData.data = [];\n }\n if (isNextPage) {\n this._realData.meta.result_count += result.meta.result_count;\n this._realData.meta.next_token = result.meta.next_token;\n this._realData.data.push(...resultData);\n }\n else {\n this._realData.meta.result_count += result.meta.result_count;\n this._realData.meta.previous_token = result.meta.previous_token;\n this._realData.data.unshift(...resultData);\n }\n this.updateIncludes(result);\n }\n getNextQueryParams(maxResults) {\n this.assertUsable();\n return {\n ...this.injectQueryParams(maxResults),\n pagination_token: this._realData.meta.next_token,\n };\n }\n getPreviousQueryParams(maxResults) {\n this.assertUsable();\n return {\n ...this.injectQueryParams(maxResults),\n pagination_token: this._realData.meta.previous_token,\n };\n }\n getPageLengthFromRequest(result) {\n var _a, _b;\n return (_b = (_a = result.data.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n }\n isFetchLastOver(result) {\n var _a;\n return !((_a = result.data.data) === null || _a === void 0 ? void 0 : _a.length) || !this.canFetchNextPage(result.data);\n }\n canFetchNextPage(result) {\n var _a;\n return !!((_a = result.meta) === null || _a === void 0 ? void 0 : _a.next_token);\n }\n}\n",
|
|
140
|
+
"import { TimelineV2Paginator, TwitterV2Paginator } from './v2.paginator';\n/** A generic PreviousableTwitterPaginator able to consume TweetV2 timelines with since_id, until_id and next_token (when available). */\nclass TweetTimelineV2Paginator extends TwitterV2Paginator {\n refreshInstanceFromResult(response, isNextPage) {\n var _a;\n const result = response.data;\n const resultData = (_a = result.data) !== null && _a !== void 0 ? _a : [];\n this._rateLimit = response.rateLimit;\n if (!this._realData.data) {\n this._realData.data = [];\n }\n if (isNextPage) {\n this._realData.meta.oldest_id = result.meta.oldest_id;\n this._realData.meta.result_count += result.meta.result_count;\n this._realData.meta.next_token = result.meta.next_token;\n this._realData.data.push(...resultData);\n }\n else {\n this._realData.meta.newest_id = result.meta.newest_id;\n this._realData.meta.result_count += result.meta.result_count;\n this._realData.data.unshift(...resultData);\n }\n this.updateIncludes(result);\n }\n getNextQueryParams(maxResults) {\n this.assertUsable();\n const params = { ...this.injectQueryParams(maxResults) };\n if (this._realData.meta.next_token) {\n params.next_token = this._realData.meta.next_token;\n }\n else {\n if (params.start_time) {\n // until_id and start_time are forbidden together for some reason, so convert start_time to a since_id.\n params.since_id = this.dateStringToSnowflakeId(params.start_time);\n delete params.start_time;\n }\n if (params.end_time) {\n // until_id overrides end_time, so delete it\n delete params.end_time;\n }\n params.until_id = this._realData.meta.oldest_id;\n }\n return params;\n }\n getPreviousQueryParams(maxResults) {\n this.assertUsable();\n return {\n ...this.injectQueryParams(maxResults),\n since_id: this._realData.meta.newest_id,\n };\n }\n getPageLengthFromRequest(result) {\n var _a, _b;\n return (_b = (_a = result.data.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n }\n isFetchLastOver(result) {\n var _a;\n return !((_a = result.data.data) === null || _a === void 0 ? void 0 : _a.length) || !this.canFetchNextPage(result.data);\n }\n canFetchNextPage(result) {\n return !!result.meta.next_token;\n }\n getItemArray() {\n return this.tweets;\n }\n dateStringToSnowflakeId(dateStr) {\n const TWITTER_START_EPOCH = BigInt('1288834974657');\n const date = new Date(dateStr);\n if (isNaN(date.valueOf())) {\n throw new Error('Unable to convert start_time/end_time to a valid date. A ISO 8601 DateTime is excepted, please check your input.');\n }\n const dateTimestamp = BigInt(date.valueOf());\n return ((dateTimestamp - TWITTER_START_EPOCH) << BigInt('22')).toString();\n }\n /**\n * Tweets returned by paginator.\n */\n get tweets() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n}\n/** A generic PreviousableTwitterPaginator able to consume TweetV2 timelines with pagination_tokens. */\nclass TweetPaginableTimelineV2Paginator extends TimelineV2Paginator {\n refreshInstanceFromResult(response, isNextPage) {\n super.refreshInstanceFromResult(response, isNextPage);\n const result = response.data;\n if (isNextPage) {\n this._realData.meta.oldest_id = result.meta.oldest_id;\n }\n else {\n this._realData.meta.newest_id = result.meta.newest_id;\n }\n }\n getItemArray() {\n return this.tweets;\n }\n /**\n * Tweets returned by paginator.\n */\n get tweets() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n}\n// ----------------\n// - Tweet search -\n// ----------------\nexport class TweetSearchRecentV2Paginator extends TweetTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'tweets/search/recent';\n }\n}\nexport class TweetSearchAllV2Paginator extends TweetTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'tweets/search/all';\n }\n}\nexport class QuotedTweetsTimelineV2Paginator extends TweetPaginableTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'tweets/:id/quote_tweets';\n }\n}\n// -----------------\n// - Home timeline -\n// -----------------\nexport class TweetHomeTimelineV2Paginator extends TweetPaginableTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/timelines/reverse_chronological';\n }\n}\nexport class TweetUserTimelineV2Paginator extends TweetPaginableTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/tweets';\n }\n}\nexport class TweetUserMentionTimelineV2Paginator extends TweetPaginableTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/mentions';\n }\n}\n// -------------\n// - Bookmarks -\n// -------------\nexport class TweetBookmarksTimelineV2Paginator extends TweetPaginableTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/bookmarks';\n }\n}\n// ---------------------------------------------------------------------------------\n// - Tweet lists (consume tweets with pagination tokens instead of since/until id) -\n// ---------------------------------------------------------------------------------\n/** A generic TwitterPaginator able to consume TweetV2 timelines. */\nclass TweetListV2Paginator extends TimelineV2Paginator {\n /**\n * Tweets returned by paginator.\n */\n get tweets() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n getItemArray() {\n return this.tweets;\n }\n}\nexport class TweetV2UserLikedTweetsPaginator extends TweetListV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/liked_tweets';\n }\n}\nexport class TweetV2ListTweetsPaginator extends TweetListV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/:id/tweets';\n }\n}\n",
|
|
141
|
+
"import { TimelineV2Paginator } from './v2.paginator';\n/** A generic PreviousableTwitterPaginator able to consume UserV2 timelines. */\nclass UserTimelineV2Paginator extends TimelineV2Paginator {\n getItemArray() {\n return this.users;\n }\n /**\n * Users returned by paginator.\n */\n get users() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n}\nexport class UserBlockingUsersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/blocking';\n }\n}\nexport class UserMutingUsersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/muting';\n }\n}\nexport class UserFollowersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/followers';\n }\n}\nexport class UserFollowingV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/following';\n }\n}\nexport class UserListMembersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/:id/members';\n }\n}\nexport class UserListFollowersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'lists/:id/followers';\n }\n}\nexport class TweetLikingUsersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'tweets/:id/liking_users';\n }\n}\nexport class TweetRetweetersUsersV2Paginator extends UserTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'tweets/:id/retweeted_by';\n }\n}\n",
|
|
142
|
+
"import { TimelineV2Paginator } from './v2.paginator';\nclass ListTimelineV2Paginator extends TimelineV2Paginator {\n getItemArray() {\n return this.lists;\n }\n /**\n * Lists returned by paginator.\n */\n get lists() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n}\nexport class UserOwnedListsV2Paginator extends ListTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/owned_lists';\n }\n}\nexport class UserListMembershipsV2Paginator extends ListTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/list_memberships';\n }\n}\nexport class UserListFollowedV2Paginator extends ListTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'users/:id/followed_lists';\n }\n}\n",
|
|
143
|
+
"import TwitterApiSubClient from '../client.subclient';\nimport { API_V2_LABS_PREFIX } from '../globals';\n/**\n * Base Twitter v2 labs client with only read right.\n */\nexport default class TwitterApiv2LabsReadOnly extends TwitterApiSubClient {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_LABS_PREFIX;\n }\n}\n",
|
|
144
|
+
"import { TimelineV2Paginator } from './v2.paginator';\nexport class DMTimelineV2Paginator extends TimelineV2Paginator {\n getItemArray() {\n return this.events;\n }\n /**\n * Events returned by paginator.\n */\n get events() {\n var _a;\n return (_a = this._realData.data) !== null && _a !== void 0 ? _a : [];\n }\n get meta() {\n return super.meta;\n }\n}\nexport class FullDMTimelineV2Paginator extends DMTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'dm_events';\n }\n}\nexport class OneToOneDMTimelineV2Paginator extends DMTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'dm_conversations/with/:participant_id/dm_events';\n }\n}\nexport class ConversationDMTimelineV2Paginator extends DMTimelineV2Paginator {\n constructor() {\n super(...arguments);\n this._endpoint = 'dm_conversations/:dm_conversation_id/dm_events';\n }\n}\n",
|
|
145
|
+
"import TwitterApiSubClient from '../client.subclient';\nimport { API_V2_PREFIX } from '../globals';\nimport { TweetSearchAllV2Paginator, TweetSearchRecentV2Paginator, TweetUserMentionTimelineV2Paginator, TweetUserTimelineV2Paginator, TweetV2UserLikedTweetsPaginator, UserOwnedListsV2Paginator, UserListMembershipsV2Paginator, UserListFollowedV2Paginator, TweetV2ListTweetsPaginator, TweetBookmarksTimelineV2Paginator, QuotedTweetsTimelineV2Paginator, TweetHomeTimelineV2Paginator, } from '../paginators';\nimport TwitterApiv2LabsReadOnly from '../v2-labs/client.v2.labs.read';\nimport { TweetLikingUsersV2Paginator, TweetRetweetersUsersV2Paginator, UserBlockingUsersV2Paginator, UserFollowersV2Paginator, UserFollowingV2Paginator, UserListFollowersV2Paginator, UserListMembersV2Paginator, UserMutingUsersV2Paginator } from '../paginators/user.paginator.v2';\nimport { isTweetStreamV2ErrorPayload } from '../helpers';\nimport { ConversationDMTimelineV2Paginator, FullDMTimelineV2Paginator, OneToOneDMTimelineV2Paginator } from '../paginators/dm.paginator.v2';\n/**\n * Base Twitter v2 client with only read right.\n */\nexport default class TwitterApiv2ReadOnly extends TwitterApiSubClient {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_PREFIX;\n }\n /* Sub-clients */\n /**\n * Get a client for v2 labs endpoints.\n */\n get labs() {\n if (this._labs)\n return this._labs;\n return this._labs = new TwitterApiv2LabsReadOnly(this);\n }\n async search(queryOrOptions, options = {}) {\n const queryParams = typeof queryOrOptions === 'string' ?\n { ...options, query: queryOrOptions } :\n { ...queryOrOptions };\n const initialRq = await this.get('tweets/search/recent', queryParams, { fullResponse: true });\n return new TweetSearchRecentV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * The full-archive search endpoint returns the complete history of public Tweets matching a search query;\n * since the first Tweet was created March 26, 2006.\n *\n * This endpoint is only available to those users who have been approved for the Academic Research product track.\n * https://developer.x.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all\n */\n async searchAll(query, options = {}) {\n const queryParams = { ...options, query };\n const initialRq = await this.get('tweets/search/all', queryParams, { fullResponse: true });\n return new TweetSearchAllV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams,\n });\n }\n /**\n * Returns a variety of information about a single Tweet specified by the requested ID.\n * https://developer.x.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id\n *\n * OAuth2 scope: `users.read`, `tweet.read`\n */\n singleTweet(tweetId, options = {}) {\n return this.get('tweets/:id', options, { params: { id: tweetId } });\n }\n /**\n * Returns a variety of information about tweets specified by list of IDs.\n * https://developer.x.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets\n *\n * OAuth2 scope: `users.read`, `tweet.read`\n */\n tweets(tweetIds, options = {}) {\n return this.get('tweets', { ids: tweetIds, ...options });\n }\n /**\n * The recent Tweet counts endpoint returns count of Tweets from the last seven days that match a search query.\n * OAuth2 Bearer auth only.\n * https://developer.x.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent\n */\n tweetCountRecent(query, options = {}) {\n return this.get('tweets/counts/recent', { query, ...options });\n }\n /**\n * This endpoint is only available to those users who have been approved for the Academic Research product track.\n * The full-archive search endpoint returns the complete history of public Tweets matching a search query;\n * since the first Tweet was created March 26, 2006.\n * OAuth2 Bearer auth only.\n * **This endpoint has pagination, yet it is not supported by bundled paginators. Use `next_token` to fetch next page.**\n * https://developer.x.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-all\n */\n tweetCountAll(query, options = {}) {\n return this.get('tweets/counts/all', { query, ...options });\n }\n async tweetRetweetedBy(tweetId, options = {}) {\n const { asPaginator, ...parameters } = options;\n const initialRq = await this.get('tweets/:id/retweeted_by', parameters, {\n fullResponse: true,\n params: { id: tweetId },\n });\n if (!asPaginator) {\n return initialRq.data;\n }\n return new TweetRetweetersUsersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: parameters,\n sharedParams: { id: tweetId },\n });\n }\n async tweetLikedBy(tweetId, options = {}) {\n const { asPaginator, ...parameters } = options;\n const initialRq = await this.get('tweets/:id/liking_users', parameters, {\n fullResponse: true,\n params: { id: tweetId },\n });\n if (!asPaginator) {\n return initialRq.data;\n }\n return new TweetLikingUsersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: parameters,\n sharedParams: { id: tweetId },\n });\n }\n /**\n * Allows you to retrieve a collection of the most recent Tweets and Retweets posted by you and users you follow, also known as home timeline.\n * This endpoint returns up to the last 3200 Tweets.\n * https://developer.x.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological\n *\n * OAuth 2 scopes: `tweet.read` `users.read`\n */\n async homeTimeline(options = {}) {\n const meUser = await this.getCurrentUserV2Object();\n const initialRq = await this.get('users/:id/timelines/reverse_chronological', options, {\n fullResponse: true,\n params: { id: meUser.data.id },\n });\n return new TweetHomeTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: options,\n sharedParams: { id: meUser.data.id },\n });\n }\n /**\n * Returns Tweets composed by a single user, specified by the requested user ID.\n * By default, the most recent ten Tweets are returned per request.\n * Using pagination, the most recent 3,200 Tweets can be retrieved.\n * https://developer.x.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets\n */\n async userTimeline(userId, options = {}) {\n const initialRq = await this.get('users/:id/tweets', options, {\n fullResponse: true,\n params: { id: userId },\n });\n return new TweetUserTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: options,\n sharedParams: { id: userId },\n });\n }\n /**\n * Returns Tweets mentioning a single user specified by the requested user ID.\n * By default, the most recent ten Tweets are returned per request.\n * Using pagination, up to the most recent 800 Tweets can be retrieved.\n * https://developer.x.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions\n */\n async userMentionTimeline(userId, options = {}) {\n const initialRq = await this.get('users/:id/mentions', options, {\n fullResponse: true,\n params: { id: userId },\n });\n return new TweetUserMentionTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: options,\n sharedParams: { id: userId },\n });\n }\n /**\n * Returns Quote Tweets for a Tweet specified by the requested Tweet ID.\n * https://developer.x.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets\n *\n * OAuth2 scopes: `users.read` `tweet.read`\n */\n async quotes(tweetId, options = {}) {\n const initialRq = await this.get('tweets/:id/quote_tweets', options, {\n fullResponse: true,\n params: { id: tweetId },\n });\n return new QuotedTweetsTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: options,\n sharedParams: { id: tweetId },\n });\n }\n /* Bookmarks */\n /**\n * Allows you to get information about a authenticated user’s 800 most recent bookmarked Tweets.\n * https://developer.x.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks\n *\n * OAuth2 scopes: `users.read` `tweet.read` `bookmark.read`\n */\n async bookmarks(options = {}) {\n const user = await this.getCurrentUserV2Object();\n const initialRq = await this.get('users/:id/bookmarks', options, {\n fullResponse: true,\n params: { id: user.data.id },\n });\n return new TweetBookmarksTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: options,\n sharedParams: { id: user.data.id },\n });\n }\n /* Users */\n /**\n * Returns information about an authorized user.\n * https://developer.x.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me\n *\n * OAuth2 scopes: `tweet.read` & `users.read`\n */\n me(options = {}) {\n return this.get('users/me', options);\n }\n /**\n * Returns a variety of information about a single user specified by the requested ID.\n * https://developer.x.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id\n */\n user(userId, options = {}) {\n return this.get('users/:id', options, { params: { id: userId } });\n }\n /**\n * Returns a variety of information about one or more users specified by the requested IDs.\n * https://developer.x.com/en/docs/twitter-api/users/lookup/api-reference/get-users\n */\n users(userIds, options = {}) {\n const ids = Array.isArray(userIds) ? userIds.join(',') : userIds;\n return this.get('users', { ...options, ids });\n }\n /**\n * Returns a variety of information about a single user specified by their username.\n * https://developer.x.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username\n */\n userByUsername(username, options = {}) {\n return this.get('users/by/username/:username', options, { params: { username } });\n }\n /**\n * Returns a variety of information about one or more users specified by their usernames.\n * https://developer.x.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by\n *\n * OAuth2 scope: `users.read`, `tweet.read`\n */\n usersByUsernames(usernames, options = {}) {\n usernames = Array.isArray(usernames) ? usernames.join(',') : usernames;\n return this.get('users/by', { ...options, usernames });\n }\n async followers(userId, options = {}) {\n const { asPaginator, ...parameters } = options;\n const params = { id: userId };\n if (!asPaginator) {\n return this.get('users/:id/followers', parameters, { params });\n }\n const initialRq = await this.get('users/:id/followers', parameters, { fullResponse: true, params });\n return new UserFollowersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: parameters,\n sharedParams: params,\n });\n }\n async following(userId, options = {}) {\n const { asPaginator, ...parameters } = options;\n const params = { id: userId };\n if (!asPaginator) {\n return this.get('users/:id/following', parameters, { params });\n }\n const initialRq = await this.get('users/:id/following', parameters, { fullResponse: true, params });\n return new UserFollowingV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: parameters,\n sharedParams: params,\n });\n }\n /**\n * Allows you to get information about a user’s liked Tweets.\n * https://developer.x.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets\n */\n async userLikedTweets(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/liked_tweets', options, { fullResponse: true, params });\n return new TweetV2UserLikedTweetsPaginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of users who are blocked by the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking\n */\n async userBlockingUsers(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/blocking', options, { fullResponse: true, params });\n return new UserBlockingUsersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of users who are muted by the authenticating user.\n * https://developer.x.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting\n */\n async userMutingUsers(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/muting', options, { fullResponse: true, params });\n return new UserMutingUsersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /* Lists */\n /**\n * Returns the details of a specified List.\n * https://developer.x.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id\n */\n list(id, options = {}) {\n return this.get('lists/:id', options, { params: { id } });\n }\n /**\n * Returns all Lists owned by the specified user.\n * https://developer.x.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists\n */\n async listsOwned(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/owned_lists', options, { fullResponse: true, params });\n return new UserOwnedListsV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns all Lists a specified user is a member of.\n * https://developer.x.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships\n */\n async listMemberships(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/list_memberships', options, { fullResponse: true, params });\n return new UserListMembershipsV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns all Lists a specified user follows.\n * https://developer.x.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists\n */\n async listFollowed(userId, options = {}) {\n const params = { id: userId };\n const initialRq = await this.get('users/:id/followed_lists', options, { fullResponse: true, params });\n return new UserListFollowedV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of Tweets from the specified List.\n * https://developer.x.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets\n */\n async listTweets(listId, options = {}) {\n const params = { id: listId };\n const initialRq = await this.get('lists/:id/tweets', options, { fullResponse: true, params });\n return new TweetV2ListTweetsPaginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of users who are members of the specified List.\n * https://developer.x.com/en/docs/twitter-api/lists/list-members/api-reference/get-lists-id-members\n */\n async listMembers(listId, options = {}) {\n const params = { id: listId };\n const initialRq = await this.get('lists/:id/members', options, { fullResponse: true, params });\n return new UserListMembersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of users who are followers of the specified List.\n * https://developer.x.com/en/docs/twitter-api/lists/list-follows/api-reference/get-lists-id-followers\n */\n async listFollowers(listId, options = {}) {\n const params = { id: listId };\n const initialRq = await this.get('lists/:id/followers', options, { fullResponse: true, params });\n return new UserListFollowersV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /* Direct messages */\n /**\n * Returns a list of Direct Messages for the authenticated user, both sent and received.\n * Direct Message events are returned in reverse chronological order.\n * Supports retrieving events from the previous 30 days.\n *\n * OAuth 2 scopes: `dm.read`, `tweet.read`, `user.read`\n *\n * https://developer.x.com/en/docs/twitter-api/direct-messages/lookup/api-reference/get-dm_events\n */\n async listDmEvents(options = {}) {\n const initialRq = await this.get('dm_events', options, { fullResponse: true });\n return new FullDMTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n });\n }\n /**\n * Returns a list of Direct Messages (DM) events within a 1-1 conversation with the user specified in the participant_id path parameter.\n * Messages are returned in reverse chronological order.\n *\n * OAuth 2 scopes: `dm.read`, `tweet.read`, `user.read`\n *\n * https://developer.x.com/en/docs/twitter-api/direct-messages/lookup/api-reference/get-dm_conversations-dm_conversation_id-dm_events\n */\n async listDmEventsWithParticipant(participantId, options = {}) {\n const params = { participant_id: participantId };\n const initialRq = await this.get('dm_conversations/with/:participant_id/dm_events', options, { fullResponse: true, params });\n return new OneToOneDMTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /**\n * Returns a list of Direct Messages within a conversation specified in the dm_conversation_id path parameter.\n * Messages are returned in reverse chronological order.\n *\n * OAuth 2 scopes: `dm.read`, `tweet.read`, `user.read`\n *\n * https://developer.x.com/en/docs/twitter-api/direct-messages/lookup/api-reference/get-dm_conversations-dm_conversation_id-dm_events\n */\n async listDmEventsOfConversation(dmConversationId, options = {}) {\n const params = { dm_conversation_id: dmConversationId };\n const initialRq = await this.get('dm_conversations/:dm_conversation_id/dm_events', options, { fullResponse: true, params });\n return new ConversationDMTimelineV2Paginator({\n realData: initialRq.data,\n rateLimit: initialRq.rateLimit,\n instance: this,\n queryParams: { ...options },\n sharedParams: params,\n });\n }\n /* Spaces */\n /**\n * Get a single space by ID.\n * https://developer.x.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id\n *\n * OAuth2 scopes: `tweet.read`, `users.read`, `space.read`.\n */\n space(spaceId, options = {}) {\n return this.get('spaces/:id', options, { params: { id: spaceId } });\n }\n /**\n * Get spaces using their IDs.\n * https://developer.x.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces\n *\n * OAuth2 scopes: `tweet.read`, `users.read`, `space.read`.\n */\n spaces(spaceIds, options = {}) {\n return this.get('spaces', { ids: spaceIds, ...options });\n }\n /**\n * Get spaces using their creator user ID(s). (no pagination available)\n * https://developer.x.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids\n *\n * OAuth2 scopes: `tweet.read`, `users.read`, `space.read`.\n */\n spacesByCreators(creatorIds, options = {}) {\n return this.get('spaces/by/creator_ids', { user_ids: creatorIds, ...options });\n }\n /**\n * Search through spaces using multiple params. (no pagination available)\n * https://developer.x.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search\n */\n searchSpaces(options) {\n return this.get('spaces/search', options);\n }\n /**\n * Returns a list of user who purchased a ticket to the requested Space.\n * You must authenticate the request using the Access Token of the creator of the requested Space.\n *\n * **OAuth 2.0 Access Token required**\n *\n * https://developer.x.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers\n *\n * OAuth2 scopes: `tweet.read`, `users.read`, `space.read`.\n */\n spaceBuyers(spaceId, options = {}) {\n return this.get('spaces/:id/buyers', options, { params: { id: spaceId } });\n }\n /**\n * Returns Tweets shared in the requested Spaces.\n * https://developer.x.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets\n *\n * OAuth2 scope: `users.read`, `tweet.read`, `space.read`\n */\n spaceTweets(spaceId, options = {}) {\n return this.get('spaces/:id/tweets', options, { params: { id: spaceId } });\n }\n searchStream({ autoConnect, ...options } = {}) {\n return this.getStream('tweets/search/stream', options, { payloadIsError: isTweetStreamV2ErrorPayload, autoConnect });\n }\n /**\n * Return a list of rules currently active on the streaming endpoint, either as a list or individually.\n * https://developer.x.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules\n */\n streamRules(options = {}) {\n return this.get('tweets/search/stream/rules', options);\n }\n updateStreamRules(options, query = {}) {\n return this.post('tweets/search/stream/rules', options, { query });\n }\n sampleStream({ autoConnect, ...options } = {}) {\n return this.getStream('tweets/sample/stream', options, { payloadIsError: isTweetStreamV2ErrorPayload, autoConnect });\n }\n sample10Stream({ autoConnect, ...options } = {}) {\n return this.getStream('tweets/sample10/stream', options, { payloadIsError: isTweetStreamV2ErrorPayload, autoConnect });\n }\n /* Batch compliance */\n /**\n * Returns a list of recent compliance jobs.\n * https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs\n */\n complianceJobs(options) {\n return this.get('compliance/jobs', options);\n }\n /**\n * Get a single compliance job with the specified ID.\n * https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id\n */\n complianceJob(jobId) {\n return this.get('compliance/jobs/:id', undefined, { params: { id: jobId } });\n }\n /**\n * Creates a new compliance job for Tweet IDs or user IDs, send your file, await result and parse it into an array.\n * You can run one batch job at a time. Returns the created job, but **not the job result!**.\n *\n * You can obtain the result (**after job is completed**) with `.complianceJobResult`.\n * https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs\n */\n async sendComplianceJob(jobParams) {\n const job = await this.post('compliance/jobs', { type: jobParams.type, name: jobParams.name });\n // Send the IDs\n const rawIdsBody = jobParams.ids instanceof Buffer ? jobParams.ids : Buffer.from(jobParams.ids.join('\\n'));\n // Upload the IDs\n await this.put(job.data.upload_url, rawIdsBody, {\n forceBodyMode: 'raw',\n enableAuth: false,\n headers: { 'Content-Type': 'text/plain' },\n prefix: '',\n });\n return job;\n }\n /**\n * Get the result of a running or completed job, obtained through `.complianceJob`, `.complianceJobs` or `.sendComplianceJob`.\n * If job is still running (`in_progress`), it will await until job is completed. **This could be quite long!**\n * https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs\n */\n async complianceJobResult(job) {\n let runningJob = job;\n while (runningJob.status !== 'complete') {\n if (runningJob.status === 'expired' || runningJob.status === 'failed') {\n throw new Error('Job failed to be completed.');\n }\n await new Promise(resolve => setTimeout(resolve, 3500));\n runningJob = (await this.complianceJob(job.id)).data;\n }\n // Download and parse result\n const result = await this.get(job.download_url, undefined, {\n enableAuth: false,\n prefix: '',\n });\n return result\n .trim()\n .split('\\n')\n .filter(line => line)\n .map(line => JSON.parse(line));\n }\n /* Usage */\n /**\n * Allows you to retrieve your project usage.\n *\n * https://developer.x.com/en/docs/x-api/usage/tweets/introduction\n */\n async usage(options = {}) {\n return this.get('usage/tweets', options);\n }\n /**\n * Returns a variety of information about a single Community specified by ID.\n * https://docs.x.com/x-api/communities/communities-lookup-by-community-id\n */\n community(communityId, options = {}) {\n return this.get('communities/:id', options, { params: { id: communityId } });\n }\n /**\n * Search for Communities based on keywords.\n * https://docs.x.com/x-api/communities/search-communities\n */\n searchCommunities(query, options = {}) {\n return this.get('communities/search', { query, ...options });\n }\n}\n",
|
|
146
|
+
"import { API_V2_LABS_PREFIX } from '../globals';\nimport TwitterApiv2LabsReadOnly from './client.v2.labs.read';\n/**\n * Base Twitter v2 labs client with read/write rights.\n */\nexport default class TwitterApiv2LabsReadWrite extends TwitterApiv2LabsReadOnly {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_LABS_PREFIX;\n }\n /**\n * Get a client with only read rights.\n */\n get readOnly() {\n return this;\n }\n}\n",
|
|
147
|
+
"import { API_V2_PREFIX } from '../globals';\nimport TwitterApiv2ReadOnly from './client.v2.read';\nimport TwitterApiv2LabsReadWrite from '../v2-labs/client.v2.labs.write';\n/**\n * Base Twitter v2 client with read/write rights.\n */\nexport default class TwitterApiv2ReadWrite extends TwitterApiv2ReadOnly {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_PREFIX;\n }\n /* Sub-clients */\n /**\n * Get a client with only read rights.\n */\n get readOnly() {\n return this;\n }\n /**\n * Get a client for v2 labs endpoints.\n */\n get labs() {\n if (this._labs)\n return this._labs;\n return this._labs = new TwitterApiv2LabsReadWrite(this);\n }\n /* Tweets */\n /**\n * Hides or unhides a reply to a Tweet.\n * https://developer.x.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden\n */\n hideReply(tweetId, makeHidden) {\n return this.put('tweets/:id/hidden', { hidden: makeHidden }, { params: { id: tweetId } });\n }\n /**\n * Causes the user ID identified in the path parameter to Like the target Tweet.\n * https://developer.x.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-user_id-likes\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n like(loggedUserId, targetTweetId) {\n return this.post('users/:id/likes', { tweet_id: targetTweetId }, { params: { id: loggedUserId } });\n }\n /**\n * Allows a user or authenticated user ID to unlike a Tweet.\n * The request succeeds with no action when the user sends a request to a user they're not liking the Tweet or have already unliked the Tweet.\n * https://developer.x.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n unlike(loggedUserId, targetTweetId) {\n return this.delete('users/:id/likes/:tweet_id', undefined, {\n params: { id: loggedUserId, tweet_id: targetTweetId },\n });\n }\n /**\n * Causes the user ID identified in the path parameter to Retweet the target Tweet.\n * https://developer.x.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n retweet(loggedUserId, targetTweetId) {\n return this.post('users/:id/retweets', { tweet_id: targetTweetId }, { params: { id: loggedUserId } });\n }\n /**\n * Allows a user or authenticated user ID to remove the Retweet of a Tweet.\n * The request succeeds with no action when the user sends a request to a user they're not Retweeting the Tweet or have already removed the Retweet of.\n * https://developer.x.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n unretweet(loggedUserId, targetTweetId) {\n return this.delete('users/:id/retweets/:tweet_id', undefined, {\n params: { id: loggedUserId, tweet_id: targetTweetId },\n });\n }\n tweet(status, payload = {}) {\n if (typeof status === 'object') {\n payload = status;\n }\n else {\n payload = { text: status, ...payload };\n }\n return this.post('tweets', payload);\n }\n /**\n * Uploads media to Twitter using chunked upload.\n * https://docs.x.com/x-api/media/media-upload\n *\n * @param media The media buffer to upload\n * @param options Upload options including media type and category, and additional owners\n * @param chunkSize Size of each chunk in bytes (default: 1MB)\n * @returns The media ID of the uploaded media\n */\n async uploadMedia(media, options, chunkSize = 1024 * 1024) {\n let media_category = options.media_category;\n // If no media category is provided, try to infer it from the media type\n if (!options.media_category) {\n if (options.media_type.includes('gif')) {\n media_category = 'tweet_gif';\n }\n else if (options.media_type.includes('image')) {\n media_category = 'tweet_image';\n }\n else if (options.media_type.includes('video')) {\n media_category = 'tweet_video';\n }\n }\n const initArguments = {\n additional_owners: options.additional_owners,\n media_type: options.media_type,\n total_bytes: media.length,\n media_category,\n };\n const initResponse = await this.post('media/upload/initialize', initArguments);\n const mediaId = initResponse.data.id;\n const chunksCount = Math.ceil(media.length / chunkSize);\n const mediaArray = new Uint8Array(media);\n for (let i = 0; i < chunksCount; i++) {\n const start = i * chunkSize;\n const end = Math.min(start + chunkSize, media.length);\n const mediaChunk = mediaArray.slice(start, end);\n const chunkedBuffer = Buffer.from(mediaChunk);\n const appendArguments = {\n segment_index: i,\n media: chunkedBuffer,\n };\n await this.post(`media/upload/${mediaId}/append`, appendArguments, { forceBodyMode: 'form-data' });\n }\n const finalizeResponse = await this.post(`media/upload/${mediaId}/finalize`);\n if (finalizeResponse.data.processing_info) {\n await this.waitForMediaProcessing(mediaId);\n }\n return mediaId;\n }\n async waitForMediaProcessing(mediaId) {\n var _a;\n const response = await this.get('media/upload', {\n command: 'STATUS',\n media_id: mediaId,\n });\n const info = response.data.processing_info;\n if (!info)\n return;\n switch (info.state) {\n case 'succeeded':\n return;\n case 'failed':\n throw new Error(`Media processing failed: ${(_a = info.error) === null || _a === void 0 ? void 0 : _a.message}`);\n case 'pending':\n case 'in_progress': {\n const waitTime = info === null || info === void 0 ? void 0 : info.check_after_secs;\n if (waitTime && waitTime > 0) {\n await new Promise(resolve => setTimeout(resolve, waitTime * 1000));\n await this.waitForMediaProcessing(mediaId);\n }\n }\n }\n }\n /**\n * Creates the metadata for media to be uploaded.\n * This feature is currently only supported for images and GIFs.\n * https://docs.x.com/x-api/media/metadata-create\n */\n createMediaMetadata(mediaId, metadata) {\n return this.post('media/metadata', { id: mediaId, metadata });\n }\n /**\n * Reply to a Tweet on behalf of an authenticated user.\n * https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets\n */\n reply(status, toTweetId, payload = {}) {\n var _a;\n const reply = { in_reply_to_tweet_id: toTweetId, ...(_a = payload.reply) !== null && _a !== void 0 ? _a : {} };\n return this.post('tweets', { text: status, ...payload, reply });\n }\n /**\n * Quote an existing Tweet on behalf of an authenticated user.\n * https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets\n */\n quote(status, quotedTweetId, payload = {}) {\n return this.tweet(status, { ...payload, quote_tweet_id: quotedTweetId });\n }\n /**\n * Post a series of tweets.\n * https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets\n */\n async tweetThread(tweets) {\n var _a, _b;\n const postedTweets = [];\n for (const tweet of tweets) {\n // Retrieve the last sent tweet\n const lastTweet = postedTweets.length ? postedTweets[postedTweets.length - 1] : null;\n // Build the tweet query params\n const queryParams = { ...(typeof tweet === 'string' ? ({ text: tweet }) : tweet) };\n // Reply to an existing tweet if needed\n const inReplyToId = lastTweet ? lastTweet.data.id : (_a = queryParams.reply) === null || _a === void 0 ? void 0 : _a.in_reply_to_tweet_id;\n const status = (_b = queryParams.text) !== null && _b !== void 0 ? _b : '';\n if (inReplyToId) {\n postedTweets.push(await this.reply(status, inReplyToId, queryParams));\n }\n else {\n postedTweets.push(await this.tweet(status, queryParams));\n }\n }\n return postedTweets;\n }\n /**\n * Allows a user or authenticated user ID to delete a Tweet\n * https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id\n */\n deleteTweet(tweetId) {\n return this.delete('tweets/:id', undefined, {\n params: {\n id: tweetId,\n },\n });\n }\n /* Bookmarks */\n /**\n * Causes the user ID of an authenticated user identified in the path parameter to Bookmark the target Tweet provided in the request body.\n * https://developer.x.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks\n *\n * OAuth2 scopes: `users.read` `tweet.read` `bookmark.write`\n */\n async bookmark(tweetId) {\n const user = await this.getCurrentUserV2Object();\n return this.post('users/:id/bookmarks', { tweet_id: tweetId }, { params: { id: user.data.id } });\n }\n /**\n * Allows a user or authenticated user ID to remove a Bookmark of a Tweet.\n * https://developer.x.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id\n *\n * OAuth2 scopes: `users.read` `tweet.read` `bookmark.write`\n */\n async deleteBookmark(tweetId) {\n const user = await this.getCurrentUserV2Object();\n return this.delete('users/:id/bookmarks/:tweet_id', undefined, { params: { id: user.data.id, tweet_id: tweetId } });\n }\n /* Users */\n /**\n * Allows a user ID to follow another user.\n * If the target user does not have public Tweets, this endpoint will send a follow request.\n * https://developer.x.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following\n *\n * OAuth2 scope: `follows.write`\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n follow(loggedUserId, targetUserId) {\n return this.post('users/:id/following', { target_user_id: targetUserId }, { params: { id: loggedUserId } });\n }\n /**\n * Allows a user ID to unfollow another user.\n * https://developer.x.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following\n *\n * OAuth2 scope: `follows.write`\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n unfollow(loggedUserId, targetUserId) {\n return this.delete('users/:source_user_id/following/:target_user_id', undefined, {\n params: { source_user_id: loggedUserId, target_user_id: targetUserId },\n });\n }\n /**\n * Causes the user (in the path) to block the target user.\n * The user (in the path) must match the user context authorizing the request.\n * https://developer.x.com/en/docs/twitter-api/users/blocks/api-reference/post-users-user_id-blocking\n *\n * **Note**: You must specify the currently logged user ID; you can obtain it through v1.1 API.\n */\n block(loggedUserId, targetUserId) {\n return this.post('users/:id/blocking', { target_user_id: targetUserId }, { params: { id: loggedUserId } });\n }\n /**\n * Allows a user or authenticated user ID to unblock another user.\n * https://developer.x.com/en/docs/twitter-api/users/blocks/api-reference/delete-users-user_id-blocking\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n unblock(loggedUserId, targetUserId) {\n return this.delete('users/:source_user_id/blocking/:target_user_id', undefined, {\n params: { source_user_id: loggedUserId, target_user_id: targetUserId },\n });\n }\n /**\n * Allows an authenticated user ID to mute the target user.\n * https://developer.x.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n mute(loggedUserId, targetUserId) {\n return this.post('users/:id/muting', { target_user_id: targetUserId }, { params: { id: loggedUserId } });\n }\n /**\n * Allows an authenticated user ID to unmute the target user.\n * The request succeeds with no action when the user sends a request to a user they're not muting or have already unmuted.\n * https://developer.x.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting\n *\n * **Note**: You must specify the currently logged user ID ; you can obtain it through v1.1 API.\n */\n unmute(loggedUserId, targetUserId) {\n return this.delete('users/:source_user_id/muting/:target_user_id', undefined, {\n params: { source_user_id: loggedUserId, target_user_id: targetUserId },\n });\n }\n /* Lists */\n /**\n * Creates a new list for the authenticated user.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists\n */\n createList(options) {\n return this.post('lists', options);\n }\n /**\n * Updates the specified list. The authenticated user must own the list to be able to update it.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id\n */\n updateList(listId, options = {}) {\n return this.put('lists/:id', options, { params: { id: listId } });\n }\n /**\n * Deletes the specified list. The authenticated user must own the list to be able to destroy it.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id\n */\n removeList(listId) {\n return this.delete('lists/:id', undefined, { params: { id: listId } });\n }\n /**\n * Adds a member to a list.\n * https://developer.x.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members\n */\n addListMember(listId, userId) {\n return this.post('lists/:id/members', { user_id: userId }, { params: { id: listId } });\n }\n /**\n * Remember a member to a list.\n * https://developer.x.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id\n */\n removeListMember(listId, userId) {\n return this.delete('lists/:id/members/:user_id', undefined, { params: { id: listId, user_id: userId } });\n }\n /**\n * Subscribes the authenticated user to the specified list.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-users-id-followed-lists\n */\n subscribeToList(loggedUserId, listId) {\n return this.post('users/:id/followed_lists', { list_id: listId }, { params: { id: loggedUserId } });\n }\n /**\n * Unsubscribes the authenticated user to the specified list.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-users-id-followed-lists-list_id\n */\n unsubscribeOfList(loggedUserId, listId) {\n return this.delete('users/:id/followed_lists/:list_id', undefined, { params: { id: loggedUserId, list_id: listId } });\n }\n /**\n * Enables the authenticated user to pin a List.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-users-id-pinned-lists\n */\n pinList(loggedUserId, listId) {\n return this.post('users/:id/pinned_lists', { list_id: listId }, { params: { id: loggedUserId } });\n }\n /**\n * Enables the authenticated user to unpin a List.\n * https://developer.x.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-users-id-pinned-lists-list_id\n */\n unpinList(loggedUserId, listId) {\n return this.delete('users/:id/pinned_lists/:list_id', undefined, { params: { id: loggedUserId, list_id: listId } });\n }\n /* Direct messages */\n /**\n * Creates a Direct Message on behalf of an authenticated user, and adds it to the specified conversation.\n * https://developer.x.com/en/docs/twitter-api/direct-messages/manage/api-reference/post-dm_conversations-dm_conversation_id-messages\n */\n sendDmInConversation(conversationId, message) {\n return this.post('dm_conversations/:dm_conversation_id/messages', message, { params: { dm_conversation_id: conversationId } });\n }\n /**\n * Creates a one-to-one Direct Message and adds it to the one-to-one conversation.\n * This method either creates a new one-to-one conversation or retrieves the current conversation and adds the Direct Message to it.\n * https://developer.x.com/en/docs/twitter-api/direct-messages/manage/api-reference/post-dm_conversations-with-participant_id-messages\n */\n sendDmToParticipant(participantId, message) {\n return this.post('dm_conversations/with/:participant_id/messages', message, { params: { participant_id: participantId } });\n }\n /**\n * Creates a new group conversation and adds a Direct Message to it on behalf of an authenticated user.\n * https://developer.x.com/en/docs/twitter-api/direct-messages/manage/api-reference/post-dm_conversations\n */\n createDmConversation(options) {\n return this.post('dm_conversations', options);\n }\n}\n",
|
|
148
|
+
"import { API_V2_LABS_PREFIX } from '../globals';\nimport TwitterApiv2LabsReadWrite from './client.v2.labs.write';\n/**\n * Twitter v2 labs client with all rights (read/write/DMs)\n */\nexport class TwitterApiv2Labs extends TwitterApiv2LabsReadWrite {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_LABS_PREFIX;\n }\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n}\nexport default TwitterApiv2Labs;\n",
|
|
149
|
+
"import { API_V2_PREFIX } from '../globals';\nimport TwitterApiv2ReadWrite from './client.v2.write';\nimport TwitterApiv2Labs from '../v2-labs/client.v2.labs';\n/**\n * Twitter v2 client with all rights (read/write/DMs)\n */\nexport class TwitterApiv2 extends TwitterApiv2ReadWrite {\n constructor() {\n super(...arguments);\n this._prefix = API_V2_PREFIX;\n /** API endpoints */\n }\n /* Sub-clients */\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n /**\n * Get a client for v2 labs endpoints.\n */\n get labs() {\n if (this._labs)\n return this._labs;\n return this._labs = new TwitterApiv2Labs(this);\n }\n}\nexport default TwitterApiv2;\n",
|
|
150
|
+
"import TwitterApiBase from '../client.base';\nimport TwitterApiv1ReadOnly from '../v1/client.v1.read';\nimport TwitterApiv2ReadOnly from '../v2/client.v2.read';\nimport { OAuth2Helper } from '../client-mixins/oauth2.helper';\nimport RequestParamHelpers from '../client-mixins/request-param.helper';\n/**\n * Twitter v1.1 and v2 API client.\n */\nexport default class TwitterApiReadOnly extends TwitterApiBase {\n /* Direct access to subclients */\n get v1() {\n if (this._v1)\n return this._v1;\n return this._v1 = new TwitterApiv1ReadOnly(this);\n }\n get v2() {\n if (this._v2)\n return this._v2;\n return this._v2 = new TwitterApiv2ReadOnly(this);\n }\n /**\n * Fetch and cache current user.\n * This method can only be called with a OAuth 1.0a user authentication.\n *\n * You can use this method to test if authentication was successful.\n * Next calls to this methods will use the cached user, unless `forceFetch: true` is given.\n */\n async currentUser(forceFetch = false) {\n return await this.getCurrentUserObject(forceFetch);\n }\n /**\n * Fetch and cache current user.\n * This method can only be called with a OAuth 1.0a or OAuth2 user authentication.\n *\n * This can only be the slimest available `UserV2` object, with only id, name and username properties defined.\n * To get a customized `UserV2Result`, use `.v2.me()`\n *\n * You can use this method to test if authentication was successful.\n * Next calls to this methods will use the cached user, unless `forceFetch: true` is given.\n *\n * OAuth2 scopes: `tweet.read` & `users.read`\n */\n async currentUserV2(forceFetch = false) {\n return await this.getCurrentUserV2Object(forceFetch);\n }\n /* Shortcuts to endpoints */\n search(what, options) {\n return this.v2.search(what, options);\n }\n /* Authentication */\n /**\n * Generate the OAuth request token link for user-based OAuth 1.0 auth.\n *\n * ```ts\n * // Instantiate TwitterApi with consumer keys\n * const client = new TwitterApi({ appKey: 'consumer_key', appSecret: 'consumer_secret' });\n *\n * const tokenRequest = await client.generateAuthLink('oob-or-your-callback-url');\n * // redirect end-user to tokenRequest.url\n *\n * // Save tokenRequest.oauth_token_secret somewhere, it will be needed for next auth step.\n * ```\n */\n async generateAuthLink(oauth_callback = 'oob', { authAccessType, linkMode = 'authenticate', forceLogin, screenName, } = {}) {\n const oauthResult = await this.post('https://api.x.com/oauth/request_token', { oauth_callback, x_auth_access_type: authAccessType });\n let url = `https://api.x.com/oauth/${linkMode}?oauth_token=${encodeURIComponent(oauthResult.oauth_token)}`;\n if (forceLogin !== undefined) {\n url += `&force_login=${encodeURIComponent(forceLogin)}`;\n }\n if (screenName !== undefined) {\n url += `&screen_name=${encodeURIComponent(screenName)}`;\n }\n if (this._requestMaker.hasPlugins()) {\n this._requestMaker.applyPluginMethod('onOAuth1RequestToken', {\n client: this._requestMaker,\n url,\n oauthResult,\n });\n }\n return {\n url,\n ...oauthResult,\n };\n }\n /**\n * Obtain access to user-based OAuth 1.0 auth.\n *\n * After user is redirect from your callback, use obtained oauth_token and oauth_verifier to\n * instantiate the new TwitterApi instance.\n *\n * ```ts\n * // Use the saved oauth_token_secret associated to oauth_token returned by callback\n * const requestClient = new TwitterApi({\n * appKey: 'consumer_key',\n * appSecret: 'consumer_secret',\n * accessToken: 'oauth_token',\n * accessSecret: 'oauth_token_secret'\n * });\n *\n * // Use oauth_verifier obtained from callback request\n * const { client: userClient } = await requestClient.login('oauth_verifier');\n *\n * // {userClient} is a valid {TwitterApi} object you can use for future requests\n * ```\n */\n async login(oauth_verifier) {\n const tokens = this.getActiveTokens();\n if (tokens.type !== 'oauth-1.0a')\n throw new Error('You must setup TwitterApi instance with consumer keys to accept OAuth 1.0 login');\n const oauth_result = await this.post('https://api.x.com/oauth/access_token', { oauth_token: tokens.accessToken, oauth_verifier });\n const client = new this.constructor({\n appKey: tokens.appKey,\n appSecret: tokens.appSecret,\n accessToken: oauth_result.oauth_token,\n accessSecret: oauth_result.oauth_token_secret,\n }, this._requestMaker.clientSettings);\n return {\n accessToken: oauth_result.oauth_token,\n accessSecret: oauth_result.oauth_token_secret,\n userId: oauth_result.user_id,\n screenName: oauth_result.screen_name,\n client,\n };\n }\n /**\n * Enable application-only authentication.\n *\n * To make the request, instantiate TwitterApi with consumer and secret.\n *\n * ```ts\n * const requestClient = new TwitterApi({ appKey: 'consumer', appSecret: 'secret' });\n * const appClient = await requestClient.appLogin();\n *\n * // Use {appClient} to make requests\n * ```\n */\n async appLogin() {\n const tokens = this.getActiveTokens();\n if (tokens.type !== 'oauth-1.0a')\n throw new Error('You must setup TwitterApi instance with consumer keys to accept app-only login');\n // Create a client with Basic authentication\n const basicClient = new this.constructor({ username: tokens.appKey, password: tokens.appSecret }, this._requestMaker.clientSettings);\n const res = await basicClient.post('https://api.x.com/oauth2/token', { grant_type: 'client_credentials' });\n // New object with Bearer token\n return new this.constructor(res.access_token, this._requestMaker.clientSettings);\n }\n /* OAuth 2 user authentication */\n /**\n * Generate the OAuth request token link for user-based OAuth 2.0 auth.\n *\n * - **You can only use v2 API endpoints with this authentication method.**\n * - **You need to specify which scope you want to have when you create your auth link. Make sure it matches your needs.**\n *\n * See https://developer.x.com/en/docs/authentication/oauth-2-0/user-access-token for details.\n *\n * ```ts\n * // Instantiate TwitterApi with client ID\n * const client = new TwitterApi({ clientId: 'yourClientId' });\n *\n * // Generate a link to callback URL that will gives a token with tweet+user read access\n * const link = client.generateOAuth2AuthLink('your-callback-url', { scope: ['tweet.read', 'users.read'] });\n *\n * // Extract props from generate link\n * const { url, state, codeVerifier } = link;\n *\n * // redirect end-user to url\n * // Save `state` and `codeVerifier` somewhere, it will be needed for next auth step.\n * ```\n */\n generateOAuth2AuthLink(redirectUri, options = {}) {\n var _a, _b;\n if (!this._requestMaker.clientId) {\n throw new Error('Twitter API instance is not initialized with client ID. You can find your client ID in Twitter Developer Portal. ' +\n 'Please build an instance with: new TwitterApi({ clientId: \\'<yourClientId>\\' })');\n }\n const state = (_a = options.state) !== null && _a !== void 0 ? _a : OAuth2Helper.generateRandomString(32);\n const codeVerifier = OAuth2Helper.getCodeVerifier();\n const codeChallenge = OAuth2Helper.getCodeChallengeFromVerifier(codeVerifier);\n const rawScope = (_b = options.scope) !== null && _b !== void 0 ? _b : '';\n const scope = Array.isArray(rawScope) ? rawScope.join(' ') : rawScope;\n const url = new URL('https://x.com/i/oauth2/authorize');\n const query = {\n response_type: 'code',\n client_id: this._requestMaker.clientId,\n redirect_uri: redirectUri,\n state,\n code_challenge: codeChallenge,\n code_challenge_method: 's256',\n scope,\n };\n RequestParamHelpers.addQueryParamsToUrl(url, query);\n const result = {\n url: url.toString(),\n state,\n codeVerifier,\n codeChallenge,\n };\n if (this._requestMaker.hasPlugins()) {\n this._requestMaker.applyPluginMethod('onOAuth2RequestToken', {\n client: this._requestMaker,\n result,\n redirectUri,\n });\n }\n return result;\n }\n /**\n * Obtain access to user-based OAuth 2.0 auth.\n *\n * After user is redirect from your callback, use obtained code to\n * instantiate the new TwitterApi instance.\n *\n * You need to obtain `codeVerifier` from a call to `.generateOAuth2AuthLink`.\n *\n * ```ts\n * // Use the saved codeVerifier associated to state (present in query string of callback)\n * const requestClient = new TwitterApi({ clientId: 'yourClientId' });\n *\n * const { client: userClient, refreshToken } = await requestClient.loginWithOAuth2({\n * code: 'codeFromQueryString',\n * // the same URL given to generateOAuth2AuthLink\n * redirectUri,\n * // the verifier returned by generateOAuth2AuthLink\n * codeVerifier,\n * });\n *\n * // {userClient} is a valid {TwitterApi} object you can use for future requests\n * // {refreshToken} is defined if 'offline.access' is in scope.\n * ```\n */\n async loginWithOAuth2({ code, codeVerifier, redirectUri }) {\n if (!this._requestMaker.clientId) {\n throw new Error('Twitter API instance is not initialized with client ID. ' +\n 'Please build an instance with: new TwitterApi({ clientId: \\'<yourClientId>\\' })');\n }\n const accessTokenResult = await this.post('https://api.x.com/2/oauth2/token', {\n code,\n code_verifier: codeVerifier,\n redirect_uri: redirectUri,\n grant_type: 'authorization_code',\n client_id: this._requestMaker.clientId,\n client_secret: this._requestMaker.clientSecret,\n });\n return this.parseOAuth2AccessTokenResult(accessTokenResult);\n }\n /**\n * Obtain a new access token to user-based OAuth 2.0 auth from a refresh token.\n *\n * ```ts\n * const requestClient = new TwitterApi({ clientId: 'yourClientId' });\n *\n * const { client: userClient } = await requestClient.refreshOAuth2Token('refreshToken');\n * // {userClient} is a valid {TwitterApi} object you can use for future requests\n * ```\n */\n async refreshOAuth2Token(refreshToken) {\n if (!this._requestMaker.clientId) {\n throw new Error('Twitter API instance is not initialized with client ID. ' +\n 'Please build an instance with: new TwitterApi({ clientId: \\'<yourClientId>\\' })');\n }\n const accessTokenResult = await this.post('https://api.x.com/2/oauth2/token', {\n refresh_token: refreshToken,\n grant_type: 'refresh_token',\n client_id: this._requestMaker.clientId,\n client_secret: this._requestMaker.clientSecret,\n });\n return this.parseOAuth2AccessTokenResult(accessTokenResult);\n }\n /**\n * Revoke a single user-based OAuth 2.0 token.\n *\n * You must specify its source, access token (directly after login)\n * or refresh token (if you've called `.refreshOAuth2Token` before).\n */\n async revokeOAuth2Token(token, tokenType = 'access_token') {\n if (!this._requestMaker.clientId) {\n throw new Error('Twitter API instance is not initialized with client ID. ' +\n 'Please build an instance with: new TwitterApi({ clientId: \\'<yourClientId>\\' })');\n }\n return await this.post('https://api.x.com/2/oauth2/revoke', {\n client_id: this._requestMaker.clientId,\n client_secret: this._requestMaker.clientSecret,\n token,\n token_type_hint: tokenType,\n });\n }\n parseOAuth2AccessTokenResult(result) {\n const client = new this.constructor(result.access_token, this._requestMaker.clientSettings);\n const scope = result.scope.split(' ').filter(e => e);\n return {\n client,\n expiresIn: result.expires_in,\n accessToken: result.access_token,\n scope,\n refreshToken: result.refresh_token,\n };\n }\n}\n",
|
|
151
|
+
"import TwitterApiv1ReadWrite from '../v1/client.v1.write';\nimport TwitterApiv2ReadWrite from '../v2/client.v2.write';\nimport TwitterApiReadOnly from './readonly';\n/**\n * Twitter v1.1 and v2 API client.\n */\nexport default class TwitterApiReadWrite extends TwitterApiReadOnly {\n /* Direct access to subclients */\n get v1() {\n if (this._v1)\n return this._v1;\n return this._v1 = new TwitterApiv1ReadWrite(this);\n }\n get v2() {\n if (this._v2)\n return this._v2;\n return this._v2 = new TwitterApiv2ReadWrite(this);\n }\n /**\n * Get a client with read only rights.\n */\n get readOnly() {\n return this;\n }\n}\n",
|
|
152
|
+
"import TwitterApiSubClient from '../client.subclient';\nimport { API_ADS_PREFIX } from '../globals';\n/**\n * Base Twitter ads client with only read rights.\n */\nexport default class TwitterAdsReadOnly extends TwitterApiSubClient {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_PREFIX;\n }\n}\n",
|
|
153
|
+
"import { API_ADS_PREFIX } from '../globals';\nimport TwitterAdsReadOnly from './client.ads.read';\n/**\n * Base Twitter ads client with read/write rights.\n */\nexport default class TwitterAdsReadWrite extends TwitterAdsReadOnly {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_PREFIX;\n }\n /**\n * Get a client with only read rights.\n */\n get readOnly() {\n return this;\n }\n}\n",
|
|
154
|
+
"import TwitterApiSubClient from '../client.subclient';\nimport { API_ADS_SANDBOX_PREFIX } from '../globals';\n/**\n * Base Twitter ads sandbox client with only read rights.\n */\nexport default class TwitterAdsSandboxReadOnly extends TwitterApiSubClient {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_SANDBOX_PREFIX;\n }\n}\n",
|
|
155
|
+
"import { API_ADS_SANDBOX_PREFIX } from '../globals';\nimport TwitterAdsSandboxReadOnly from './client.ads-sandbox.read';\n/**\n * Base Twitter ads sandbox client with read/write rights.\n */\nexport default class TwitterAdsSandboxReadWrite extends TwitterAdsSandboxReadOnly {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_SANDBOX_PREFIX;\n }\n /**\n * Get a client with only read rights.\n */\n get readOnly() {\n return this;\n }\n}\n",
|
|
156
|
+
"import { API_ADS_SANDBOX_PREFIX } from '../globals';\nimport TwitterAdsSandboxReadWrite from './client.ads-sandbox.write';\n/**\n * Twitter ads sandbox client with all rights (read/write)\n */\nexport class TwitterAdsSandbox extends TwitterAdsSandboxReadWrite {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_SANDBOX_PREFIX;\n }\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n}\nexport default TwitterAdsSandbox;\n",
|
|
157
|
+
"import { API_ADS_PREFIX } from '../globals';\nimport TwitterAdsReadWrite from './client.ads.write';\nimport TwitterAdsSandbox from '../ads-sandbox/client.ads-sandbox';\n/**\n * Twitter ads client with all rights (read/write)\n */\nexport class TwitterAds extends TwitterAdsReadWrite {\n constructor() {\n super(...arguments);\n this._prefix = API_ADS_PREFIX;\n }\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n /**\n * Get Twitter Ads Sandbox API client\n */\n get sandbox() {\n if (this._sandbox)\n return this._sandbox;\n return this._sandbox = new TwitterAdsSandbox(this);\n }\n}\nexport default TwitterAds;\n",
|
|
158
|
+
"import TwitterApiv1 from '../v1/client.v1';\nimport TwitterApiv2 from '../v2/client.v2';\nimport TwitterApiReadWrite from './readwrite';\nimport TwitterAds from '../ads/client.ads';\n// \"Real\" exported client for usage of TwitterApi.\n/**\n * Twitter v1.1 and v2 API client.\n */\nexport class TwitterApi extends TwitterApiReadWrite {\n /* Direct access to subclients */\n get v1() {\n if (this._v1)\n return this._v1;\n return this._v1 = new TwitterApiv1(this);\n }\n get v2() {\n if (this._v2)\n return this._v2;\n return this._v2 = new TwitterApiv2(this);\n }\n /**\n * Get a client with read/write rights.\n */\n get readWrite() {\n return this;\n }\n /**\n * Get Twitter Ads API client\n */\n get ads() {\n if (this._ads)\n return this._ads;\n return this._ads = new TwitterAds(this);\n }\n /* Static helpers */\n static getErrors(error) {\n var _a;\n if (typeof error !== 'object')\n return [];\n if (!('data' in error))\n return [];\n return (_a = error.data.errors) !== null && _a !== void 0 ? _a : [];\n }\n /** Extract another image size than obtained in a `profile_image_url` or `profile_image_url_https` field of a user object. */\n static getProfileImageInSize(profileImageUrl, size) {\n const lastPart = profileImageUrl.split('/').pop();\n const sizes = ['normal', 'bigger', 'mini'];\n let originalUrl = profileImageUrl;\n for (const availableSize of sizes) {\n if (lastPart.includes(`_${availableSize}`)) {\n originalUrl = profileImageUrl.replace(`_${availableSize}`, '');\n break;\n }\n }\n if (size === 'original') {\n return originalUrl;\n }\n const extPos = originalUrl.lastIndexOf('.');\n if (extPos !== -1) {\n const ext = originalUrl.slice(extPos + 1);\n return originalUrl.slice(0, extPos) + '_' + size + '.' + ext;\n }\n else {\n return originalUrl + '_' + size;\n }\n }\n}\nexport { default as TwitterApiReadWrite } from './readwrite';\nexport { default as TwitterApiReadOnly } from './readonly';\nexport default TwitterApi;\n",
|
|
159
|
+
"import { type TOAuth2Scope, TwitterApi } from \"twitter-api-v2\";\nimport { Redirect } from \"../../facades/Redirect\";\nimport { HttpRequest } from \"../../http/HttpRequest\";\nimport { OAuthProvider } from \"./OAuthProvider\";\n\ntype Config = {\n clientId: string;\n scope: TOAuth2Scope[];\n clientSecret: string;\n redirectPath: string;\n};\n\ntype OAuthState = {\n state: string;\n codeVerifier: string;\n};\n\nconst defaultConfig: Config = {\n clientId: process.env.X_CLIENT_ID!,\n clientSecret: process.env.X_SECRET!,\n redirectPath: \"/auth/oauth/x/callback\",\n scope: [\"tweet.read\", \"users.read\", \"offline.access\"],\n};\n\nexport class XOAuthProvider extends OAuthProvider {\n config: Config;\n client: TwitterApi;\n // Using a Map to store state and codeVerifier for different OAuth flows\n private oauthStates: Map<string, OAuthState> = new Map();\n\n constructor(config: Partial<Config> = {}) {\n super();\n this.config = { ...defaultConfig, ...config };\n this.client = new TwitterApi({\n clientId: this.config.clientId,\n clientSecret: this.config.clientSecret,\n });\n }\n\n getRedirectUrl() {\n const { url, codeVerifier, state } = this.client.generateOAuth2AuthLink(\n `${process.env.HOST_NAME}${this.config.redirectPath}`,\n { scope: this.config.scope },\n );\n\n // Store state and codeVerifier in a map with state as the key\n this.oauthStates.set(state, { state, codeVerifier });\n\n Redirect.to(url as never);\n return url;\n }\n\n async onCallback(req: HttpRequest) {\n const code = req.search.get(\"code\")!;\n const state = req.search.get(\"state\")!;\n\n // Retrieve the stored codeVerifier using the state from the callback\n const oauthState = this.oauthStates.get(state);\n\n if (!oauthState) {\n throw new Error(\"Invalid or expired OAuth state\");\n }\n\n const result = await this.client.loginWithOAuth2({\n code,\n codeVerifier: oauthState.codeVerifier,\n redirectUri: `${process.env.HOST_NAME}${this.config.redirectPath}`,\n });\n\n // Clean up the stored state after use\n this.oauthStates.delete(state);\n\n const { data } = await result.client.v2.me({\n \"user.fields\": [\"name\", \"username\", \"entities\"],\n });\n\n const { name, email, id = \"\", username } = data ?? ({} as any);\n return { name, email, username, providerId: id };\n }\n}\n",
|
|
160
|
+
"// A cron expression accepted by `Bun.cron`: a 5-field expression\n// (`minute hour day-of-month month day-of-week`, interpreted in UTC) or one of\n// the nicknames below. The `string & {}` member keeps arbitrary expressions\n// assignable while still surfacing the nicknames in editor autocomplete.\nexport type CronExpression =\n | \"@yearly\"\n | \"@annually\"\n | \"@monthly\"\n | \"@weekly\"\n | \"@daily\"\n | \"@midnight\"\n | \"@hourly\"\n | (string & {});\n\nexport class CronJob {\n name: string;\n cron: CronExpression;\n\n callback(): Promise<void> | void {}\n onTick(): Promise<void> | void {}\n onComplete(): Promise<void> | void {}\n\n static exp(expression: CronExpression) {\n return expression;\n }\n}\n"
|
|
5
161
|
],
|
|
6
|
-
"mappings": "",
|
|
7
|
-
"debugId": "
|
|
162
|
+
"mappings": "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WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAA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",
|
|
163
|
+
"debugId": "78C731A01E88650F64756E2164756E21",
|
|
8
164
|
"names": []
|
|
9
165
|
}
|