jets 5.0.17 → 6.0.0.beta1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -19
- data/Gemfile +4 -0
- data/README.md +19 -165
- data/Rakefile +3 -3
- data/exe/jets +2 -1
- data/jets.gemspec +15 -22
- data/lib/jets/api/agree.rb +62 -0
- data/lib/jets/api/base.rb +8 -0
- data/lib/jets/api/client.rb +246 -0
- data/lib/jets/api/config.rb +73 -0
- data/lib/jets/api/error.rb +70 -0
- data/lib/jets/api/ping.rb +9 -0
- data/lib/jets/api/project.rb +9 -0
- data/lib/jets/api/release.rb +17 -0
- data/lib/jets/api/response.rb +27 -0
- data/lib/jets/api/sig.rb +13 -0
- data/lib/jets/api/stack.rb +14 -0
- data/lib/jets/api.rb +17 -0
- data/lib/jets/autoloaders/gem.rb +47 -58
- data/lib/jets/autoloaders/main.rb +64 -0
- data/lib/jets/autoloaders.rb +14 -43
- data/lib/jets/aws_services/aws_helpers.rb +17 -0
- data/lib/jets/{aws_info.rb → aws_services/aws_info.rb} +24 -17
- data/lib/jets/aws_services/global_memoist.rb +9 -4
- data/lib/jets/aws_services/s3_bucket.rb +8 -10
- data/lib/jets/aws_services/stack_status.rb +5 -31
- data/lib/jets/aws_services.rb +36 -17
- data/lib/jets/bundle.rb +9 -7
- data/lib/jets/cfn/base.rb +16 -5
- data/lib/jets/cfn/bootstrap.rb +13 -0
- data/lib/jets/cfn/builder/interface.rb +22 -31
- data/lib/jets/cfn/builder/parent/genesis.rb +84 -0
- data/lib/jets/cfn/builder/post_process.rb +3 -3
- data/lib/jets/cfn/delete.rb +17 -0
- data/lib/jets/cfn/deploy.rb +151 -0
- data/lib/jets/cfn/iam/managed_policy.rb +21 -0
- data/lib/jets/cfn/iam/policy.rb +121 -0
- data/lib/jets/cfn/resource/associated.rb +1 -1
- data/lib/jets/cfn/resource/codebuild/fleet.rb +48 -0
- data/lib/jets/cfn/resource/codebuild/iam_role.rb +63 -0
- data/lib/jets/cfn/resource/codebuild/project/base.rb +4 -0
- data/lib/jets/cfn/resource/codebuild/project/ec2.rb +125 -0
- data/lib/jets/cfn/resource/codebuild/project/env.rb +55 -0
- data/lib/jets/cfn/resource/codebuild/project/format_env.rb +35 -0
- data/lib/jets/cfn/resource/codebuild/project/lambda.rb +15 -0
- data/lib/jets/cfn/resource/replacer.rb +5 -5
- data/lib/jets/cfn/resource/s3/bucket.rb +3 -3
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +9 -18
- data/lib/jets/cfn/resource/standardizer.rb +11 -9
- data/lib/jets/cfn/rollback.rb +8 -0
- data/lib/jets/cfn/stack/deployable.rb +16 -0
- data/lib/jets/cfn/stack/rollback.rb +59 -0
- data/lib/jets/cfn/stack/template.rb +47 -0
- data/lib/jets/cfn/stack/yamler.rb +53 -0
- data/lib/jets/cfn/stack.rb +24 -0
- data/lib/jets/cfn/status.rb +41 -6
- data/lib/jets/cfn/teardown/bucket.rb +79 -0
- data/lib/jets/cfn/teardown.rb +20 -0
- data/lib/jets/cli/base.rb +46 -0
- data/lib/jets/cli/bootstrap.rb +17 -0
- data/lib/jets/cli/build.rb +8 -0
- data/lib/jets/cli/call.rb +133 -0
- data/lib/jets/cli/ci/base.rb +54 -0
- data/lib/jets/cli/ci/build.rb +8 -0
- data/lib/jets/cli/ci/delete.rb +25 -0
- data/lib/jets/cli/ci/deploy.rb +17 -0
- data/lib/jets/cli/ci/info.rb +40 -0
- data/lib/jets/cli/ci/init.rb +97 -0
- data/lib/jets/cli/ci/logs.rb +10 -0
- data/lib/jets/cli/ci/start.rb +121 -0
- data/lib/jets/cli/ci/status.rb +29 -0
- data/lib/jets/cli/ci/stop.rb +24 -0
- data/lib/jets/cli/ci/tailer.rb +17 -0
- data/lib/jets/cli/ci/templates/ci.rb.tt +19 -0
- data/lib/jets/cli/ci.rb +55 -0
- data/lib/jets/cli/clean.rb +10 -0
- data/lib/jets/cli/concurrency/base.rb +17 -0
- data/lib/jets/cli/concurrency/get.rb +37 -0
- data/lib/jets/cli/concurrency/info.rb +86 -0
- data/lib/jets/cli/concurrency/set.rb +31 -0
- data/lib/jets/cli/concurrency/unset.rb +21 -0
- data/lib/jets/cli/concurrency.rb +33 -0
- data/lib/jets/cli/curl/adapter/base.rb +8 -0
- data/lib/jets/cli/curl/adapter/cookies/jar.rb +28 -0
- data/lib/jets/cli/curl/adapter/cookies/parser.rb +48 -0
- data/lib/jets/cli/curl/adapter/lambda.rb +142 -0
- data/lib/jets/cli/curl/request.rb +62 -0
- data/lib/jets/cli/curl.rb +9 -0
- data/lib/jets/cli/delete.rb +23 -0
- data/lib/jets/cli/deploy.rb +18 -0
- data/lib/jets/cli/dotenv/base.rb +4 -0
- data/lib/jets/cli/dotenv/get.rb +14 -0
- data/lib/jets/cli/dotenv/list.rb +32 -0
- data/lib/jets/cli/dotenv/set.rb +50 -0
- data/lib/jets/cli/dotenv/ssm.rb +60 -0
- data/lib/jets/cli/dotenv/unset.rb +11 -0
- data/lib/jets/cli/dotenv.rb +28 -0
- data/lib/jets/cli/env/base.rb +13 -0
- data/lib/jets/cli/env/get.rb +13 -0
- data/lib/jets/cli/env/list.rb +19 -0
- data/lib/jets/cli/env/parse.rb +11 -0
- data/lib/jets/cli/env/set.rb +25 -0
- data/lib/jets/cli/env/unset.rb +17 -0
- data/lib/jets/cli/env.rb +29 -0
- data/lib/jets/cli/exec/command.rb +61 -0
- data/lib/jets/cli/exec/repl/history.rb +42 -0
- data/lib/jets/cli/exec/repl.rb +122 -0
- data/lib/jets/cli/exec.rb +14 -0
- data/lib/jets/cli/functions.rb +39 -0
- data/lib/jets/cli/generate/event.rb +29 -0
- data/lib/jets/cli/generate/templates/application_event.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/application_event.rb +4 -0
- data/lib/jets/cli/generate/templates/event_types/dynamodb.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/iot.rb.tt +6 -0
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/kinesis.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/log.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/rule.rb.tt +2 -4
- data/lib/jets/cli/generate/templates/event_types/s3.rb.tt +13 -0
- data/lib/jets/cli/generate/templates/event_types/scheduled.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/sns.rb.tt +8 -0
- data/lib/jets/cli/generate/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/cli/generate.rb +6 -0
- data/lib/jets/cli/group/actions.rb +57 -0
- data/lib/jets/cli/group/base.rb +12 -0
- data/lib/jets/cli/group/helpers.rb +26 -0
- data/lib/jets/cli/help/build.md +1 -0
- data/lib/jets/cli/help/call.md +28 -0
- data/lib/jets/cli/help/curl.md +82 -0
- data/lib/jets/{command → cli}/help/delete.md +4 -4
- data/lib/jets/cli/help/deploy.md +5 -0
- data/lib/jets/cli/help/dotenv/get.md +4 -0
- data/lib/jets/cli/help/dotenv/list.md +5 -0
- data/lib/jets/cli/help/dotenv/set.md +25 -0
- data/lib/jets/cli/help/dotenv/unset.md +12 -0
- data/lib/jets/cli/help/exec.md +53 -0
- data/lib/jets/cli/help/generate/event.md +11 -0
- data/lib/jets/{command → cli}/help/logs.md +2 -2
- data/lib/jets/{command/help/releases.md → cli/help/release/history.md} +3 -3
- data/lib/jets/cli/help/rollback.md +5 -0
- data/lib/jets/cli/help/schedule/validate.md +1 -0
- data/lib/jets/{command → cli}/help/status.md +1 -1
- data/lib/jets/cli/help.rb +16 -0
- data/lib/jets/cli/init/detect.rb +30 -0
- data/lib/jets/cli/init/templates/config/jets/bootstrap.rb.tt +16 -0
- data/lib/jets/cli/init/templates/config/jets/deploy.rb.tt +43 -0
- data/lib/jets/cli/init/templates/config/jets/project.rb.tt +3 -0
- data/lib/jets/cli/init/templates/env/.env.tt +18 -0
- data/lib/jets/cli/init.rb +66 -0
- data/lib/jets/cli/lambda/checks.rb +22 -0
- data/lib/jets/cli/lambda/function.rb +104 -0
- data/lib/jets/cli/lambda/functions.rb +10 -0
- data/lib/jets/cli/lambda/lookup.rb +68 -0
- data/lib/jets/cli/login.rb +7 -0
- data/lib/jets/cli/logout.rb +7 -0
- data/lib/jets/cli/logs.rb +40 -0
- data/lib/jets/cli/maintenance/base.rb +15 -0
- data/lib/jets/cli/maintenance/mode.rb +44 -0
- data/lib/jets/cli/maintenance/web.rb +31 -0
- data/lib/jets/cli/maintenance/worker/base.rb +22 -0
- data/lib/jets/cli/maintenance/worker/restorer.rb +19 -0
- data/lib/jets/cli/maintenance/worker/saver.rb +15 -0
- data/lib/jets/cli/maintenance/worker/zeroer.rb +19 -0
- data/lib/jets/cli/maintenance/worker.rb +31 -0
- data/lib/jets/cli/maintenance.rb +32 -0
- data/lib/jets/cli/package/dockerfile.rb +9 -0
- data/lib/jets/cli/package.rb +8 -0
- data/lib/jets/cli/ping.rb +10 -0
- data/lib/jets/cli/projects.rb +22 -0
- data/lib/jets/cli/release/base.rb +4 -0
- data/lib/jets/cli/release/history.rb +68 -0
- data/lib/jets/cli/release/info.rb +59 -0
- data/lib/jets/cli/release/rollback.rb +15 -0
- data/lib/jets/cli/release.rb +23 -0
- data/lib/jets/cli/schedule/base.rb +5 -0
- data/lib/jets/cli/schedule/translate.rb +168 -0
- data/lib/jets/cli/schedule/validate.rb +95 -0
- data/lib/jets/cli/schedule.rb +15 -0
- data/lib/jets/cli/stacks.rb +33 -0
- data/lib/jets/cli/stop.rb +31 -0
- data/lib/jets/cli/teardown.rb +8 -0
- data/lib/jets/cli/tip.rb +86 -0
- data/lib/jets/cli/url.rb +41 -0
- data/lib/jets/cli/waf/base.rb +7 -0
- data/lib/jets/cli/waf/build.rb +8 -0
- data/lib/jets/cli/waf/delete.rb +17 -0
- data/lib/jets/cli/waf/deploy.rb +17 -0
- data/lib/jets/cli/waf/info.rb +128 -0
- data/lib/jets/cli/waf/init.rb +40 -0
- data/lib/jets/cli/waf/templates/waf.rb.tt +26 -0
- data/lib/jets/cli/waf.rb +38 -0
- data/lib/jets/cli.rb +180 -28
- data/lib/jets/code/copy/base.rb +84 -0
- data/lib/jets/code/copy/full.rb +9 -0
- data/lib/jets/code/copy/git_copy.rb +26 -0
- data/lib/jets/code/copy/git_inline.rb +13 -0
- data/lib/jets/code/copy/rsync.rb +19 -0
- data/lib/jets/code/dummy.rb +11 -0
- data/lib/jets/code/stager.rb +124 -0
- data/lib/jets/code/user.rb +24 -0
- data/lib/jets/code.rb +80 -0
- data/lib/jets/core/booter.rb +58 -0
- data/lib/jets/core/config/base.rb +17 -0
- data/lib/jets/core/config/bootstrap/cfn.rb +12 -0
- data/lib/jets/core/config/bootstrap/code.rb +16 -0
- data/lib/jets/core/config/bootstrap/codebuild.rb +97 -0
- data/lib/jets/core/config/bootstrap/s3_bucket.rb +19 -0
- data/lib/jets/core/config/bootstrap.rb +24 -0
- data/lib/jets/core/config/helpers/ssm.rb +9 -0
- data/lib/jets/core/config/helpers.rb +5 -0
- data/lib/jets/core/config/info.rb +27 -0
- data/lib/jets/core/config/project.rb +103 -0
- data/lib/jets/core.rb +26 -202
- data/lib/jets/core_ext/bundler.rb +6 -4
- data/lib/jets/core_ext.rb +0 -1
- data/lib/jets/dotenv/convention.rb +86 -0
- data/lib/jets/dotenv/ssm.rb +61 -38
- data/lib/jets/dotenv/var.rb +60 -0
- data/lib/jets/dotenv.rb +55 -50
- data/lib/jets/event/base.rb +55 -0
- data/lib/jets/event/dsl/dynamodb_event.rb +8 -0
- data/lib/jets/event/dsl/iot_event.rb +17 -0
- data/lib/jets/event/dsl/kinesis_event.rb +8 -0
- data/lib/jets/event/dsl/log_event.rb +8 -0
- data/lib/jets/event/dsl/rate_expression.rb +27 -0
- data/lib/jets/event/dsl/s3_event.rb +7 -0
- data/lib/jets/event/dsl/scheduled_event.rb +53 -0
- data/lib/jets/event/dsl/sns_event.rb +8 -0
- data/lib/jets/event/dsl/sqs_event.rb +8 -0
- data/lib/jets/{job → event}/dsl.rb +7 -12
- data/lib/jets/{job → event}/helpers/kinesis_event.rb +2 -2
- data/lib/jets/{job → event}/helpers/log_event.rb +5 -5
- data/lib/jets/event/helpers/s3_event.rb +76 -0
- data/lib/jets/event/helpers/sns_event.rb +16 -0
- data/lib/jets/event/helpers/sqs_event.rb +23 -0
- data/lib/jets/event/s3.rb +21 -0
- data/lib/jets/git/azure.rb +64 -0
- data/lib/jets/git/base.rb +26 -0
- data/lib/jets/git/bitbucket.rb +30 -0
- data/lib/jets/git/circleci.rb +23 -0
- data/lib/jets/git/codebuild.rb +49 -0
- data/lib/jets/git/custom.rb +32 -0
- data/lib/jets/git/git_cli.rb +28 -0
- data/lib/jets/git/github.rb +48 -0
- data/lib/jets/git/gitlab.rb +30 -0
- data/lib/jets/git/info.rb +39 -0
- data/lib/jets/git/local.rb +69 -0
- data/lib/jets/git/saved.rb +16 -0
- data/lib/jets/git/user.rb +33 -0
- data/lib/jets/git.rb +5 -0
- data/lib/jets/lambda/definition.rb +22 -16
- data/lib/jets/lambda/dsl.rb +394 -394
- data/lib/jets/lambda/function_constructor.rb +1 -2
- data/lib/jets/lambda/functions.rb +10 -25
- data/lib/jets/names.rb +5 -17
- data/lib/jets/prewarm.rb +27 -0
- data/lib/jets/rdoc.rb +2 -2
- data/lib/jets/remote/base.rb +11 -0
- data/lib/jets/remote/download.rb +65 -0
- data/lib/jets/remote/runner.rb +101 -0
- data/lib/jets/remote/tailer.rb +272 -0
- data/lib/jets/shim/adapter/alb.rb +16 -0
- data/lib/jets/shim/adapter/apigw.rb +37 -0
- data/lib/jets/shim/adapter/base.rb +16 -0
- data/lib/jets/shim/adapter/command.rb +21 -0
- data/lib/jets/shim/adapter/event.rb +27 -0
- data/lib/jets/shim/adapter/fallback.rb +64 -0
- data/lib/jets/shim/adapter/lambda.rb +35 -0
- data/lib/jets/shim/adapter/prewarm.rb +27 -0
- data/lib/jets/shim/adapter/web.rb +145 -0
- data/lib/jets/shim/config.rb +71 -0
- data/lib/jets/shim/handler.rb +60 -0
- data/lib/jets/shim/maintenance/maintenance.html +45 -0
- data/lib/jets/shim/maintenance.rb +37 -0
- data/lib/jets/shim/response/alb.rb +10 -0
- data/lib/jets/shim/response/apigw.rb +4 -0
- data/lib/jets/shim/response/base.rb +124 -0
- data/lib/jets/shim/response/lambda.rb +4 -0
- data/lib/jets/shim/response/web.rb +4 -0
- data/lib/jets/shim.rb +46 -0
- data/lib/jets/stack/{main/dsl → dsl/main}/base.rb +2 -23
- data/lib/jets/stack/dsl/main/cloudwatch.rb +6 -0
- data/lib/jets/stack/dsl/main/iam.rb +6 -0
- data/lib/jets/stack/dsl/main/kinesis.rb +6 -0
- data/lib/jets/stack/dsl/main/lambda.rb +39 -0
- data/lib/jets/stack/dsl/main/s3.rb +9 -0
- data/lib/jets/stack/dsl/main/sns.rb +12 -0
- data/lib/jets/stack/dsl/main/sqs.rb +6 -0
- data/lib/jets/stack/dsl/main.rb +15 -0
- data/lib/jets/stack/dsl/output.rb +11 -0
- data/lib/jets/stack/dsl/parameter.rb +11 -0
- data/lib/jets/stack/dsl/resource.rb +11 -0
- data/lib/jets/stack/dsl.rb +10 -0
- data/lib/jets/stack/{output/lookup.rb → outputs.rb} +7 -6
- data/lib/jets/stack.rb +11 -58
- data/lib/jets/thor/auth.rb +96 -0
- data/lib/jets/thor/base.rb +155 -0
- data/lib/jets/thor/help.rb +129 -0
- data/lib/jets/thor/project_check.rb +50 -0
- data/lib/jets/thor/shared_options.rb +31 -0
- data/lib/jets/thor/version_check.rb +51 -0
- data/lib/jets/util/call_line.rb +9 -0
- data/lib/jets/util/camelize.rb +1 -1
- data/lib/jets/util/git.rb +11 -0
- data/lib/jets/util/logging.rb +16 -0
- data/lib/jets/util/pretty.rb +23 -0
- data/lib/jets/util/sh.rb +38 -0
- data/lib/jets/util/sure.rb +25 -0
- data/lib/jets/util/truthy.rb +9 -0
- data/lib/jets/util/yamler.rb +3 -5
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +4 -8
- metadata +339 -604
- data/.circleci/config.yml +0 -92
- data/.cody/README.md +0 -13
- data/.cody/docs/bin/build.sh +0 -7
- data/.cody/docs/bin/bundler_setup.sh +0 -8
- data/.cody/docs/bin/cli_docs.sh +0 -6
- data/.cody/docs/bin/git_commit.sh +0 -27
- data/.cody/docs/bin/git_setup.sh +0 -12
- data/.cody/docs/bin/subnav.sh +0 -14
- data/.cody/docs/buildspec.yml +0 -10
- data/.cody/docs/project.rb +0 -10
- data/Dockerfile +0 -16
- data/Dockerfile.base +0 -53
- data/Guardfile +0 -22
- data/Procfile +0 -2
- data/engines/internal/app/controllers/jets/application_controller.rb +0 -28
- data/engines/internal/app/controllers/jets/bare_controller.rb +0 -6
- data/engines/internal/app/controllers/jets/health_controller.rb +0 -55
- data/engines/internal/app/controllers/jets/info_controller.rb +0 -45
- data/engines/internal/app/controllers/jets/mailers_controller.rb +0 -95
- data/engines/internal/app/controllers/jets/mount_controller.rb +0 -59
- data/engines/internal/app/controllers/jets/public_controller.rb +0 -35
- data/engines/internal/app/controllers/jets/welcome_controller.rb +0 -9
- data/engines/internal/app/functions/jets/base_path.rb +0 -109
- data/engines/internal/app/functions/jets/base_path_mapping.rb +0 -191
- data/engines/internal/app/jobs/jets/preheat_job.rb +0 -64
- data/engines/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -33
- data/engines/internal/app/views/jets/info/properties.html.erb +0 -1
- data/engines/internal/app/views/jets/info/routes.html.erb +0 -10
- data/engines/internal/app/views/jets/mailers/email.html.erb +0 -165
- data/engines/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/engines/internal/app/views/jets/welcome/index.html.erb +0 -95
- data/engines/internal/app/views/layouts/application.html.erb +0 -51
- data/engines/internal/lib/internal/actiondispatch.rb +0 -39
- data/engines/internal/lib/internal/actionmailer.rb +0 -51
- data/engines/internal/lib/internal/actionview.rb +0 -152
- data/engines/internal/lib/internal/activerecord.rb +0 -37
- data/engines/internal/lib/internal/activesupport.rb +0 -47
- data/engines/internal/lib/internal/engine.rb +0 -13
- data/engines/internal/lib/internal/i18n_engine.rb +0 -19
- data/engines/internal/lib/internal/jets_controller.rb +0 -46
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +0 -40
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +0 -62
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +0 -9
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +0 -70
- data/engines/internal/lib/internal/turbines/helpers.rb +0 -18
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +0 -42
- data/lib/jets/app_loader.rb +0 -77
- data/lib/jets/application/bootstrap.rb +0 -100
- data/lib/jets/application/configuration/defaults.rb +0 -256
- data/lib/jets/application/configuration.rb +0 -494
- data/lib/jets/application/default_middleware_stack.rb +0 -140
- data/lib/jets/application/dummy_erb_compiler.rb +0 -18
- data/lib/jets/application/finisher.rb +0 -266
- data/lib/jets/application/routes_reloader.rb +0 -80
- data/lib/jets/application.rb +0 -556
- data/lib/jets/authorizer/base.rb +0 -37
- data/lib/jets/authorizer/dsl.rb +0 -73
- data/lib/jets/authorizer/helpers/iam_helper.rb +0 -49
- data/lib/jets/autoloaders/inflector.rb +0 -21
- data/lib/jets/backtrace_cleaner.rb +0 -27
- data/lib/jets/booter.rb +0 -78
- data/lib/jets/builders/code_builder.rb +0 -359
- data/lib/jets/builders/code_size.rb +0 -58
- data/lib/jets/builders/gem_replacer.rb +0 -83
- data/lib/jets/builders/handler_generator.rb +0 -214
- data/lib/jets/builders/lambda_layer.rb +0 -63
- data/lib/jets/builders/md5.rb +0 -60
- data/lib/jets/builders/md5_zip.rb +0 -61
- data/lib/jets/builders/purger.rb +0 -35
- data/lib/jets/builders/rack_packager.rb +0 -51
- data/lib/jets/builders/rackup_wrappers/rackup +0 -19
- data/lib/jets/builders/rackup_wrappers/rackup.rb +0 -7
- data/lib/jets/builders/ruby_packager.rb +0 -288
- data/lib/jets/builders/shim_vars/app.rb +0 -82
- data/lib/jets/builders/shim_vars/base.rb +0 -25
- data/lib/jets/builders/shim_vars/shared.rb +0 -37
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +0 -33
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +0 -20
- data/lib/jets/builders/templates/handlers/one_lambda_per_method.rb +0 -18
- data/lib/jets/builders/tidy.rb +0 -107
- data/lib/jets/builders/util.rb +0 -31
- data/lib/jets/cfn/builder/api/base.rb +0 -12
- data/lib/jets/cfn/builder/api/deployment.rb +0 -46
- data/lib/jets/cfn/builder/api/gateway.rb +0 -106
- data/lib/jets/cfn/builder/api/mapping.rb +0 -54
- data/lib/jets/cfn/builder/api/methods.rb +0 -72
- data/lib/jets/cfn/builder/api/paged.rb +0 -30
- data/lib/jets/cfn/builder/api/pages/base.rb +0 -105
- data/lib/jets/cfn/builder/api/pages/methods.rb +0 -17
- data/lib/jets/cfn/builder/api/pages/page.rb +0 -19
- data/lib/jets/cfn/builder/api/pages/resources.rb +0 -21
- data/lib/jets/cfn/builder/api/resources.rb +0 -40
- data/lib/jets/cfn/builder/authorizer.rb +0 -64
- data/lib/jets/cfn/builder/controller.rb +0 -28
- data/lib/jets/cfn/builder/function.rb +0 -9
- data/lib/jets/cfn/builder/job.rb +0 -10
- data/lib/jets/cfn/builder/nested.rb +0 -130
- data/lib/jets/cfn/builder/one_controller.rb +0 -53
- data/lib/jets/cfn/builder/parent/stagger.rb +0 -34
- data/lib/jets/cfn/builder/parent.rb +0 -149
- data/lib/jets/cfn/builder/rule.rb +0 -20
- data/lib/jets/cfn/builder/shared.rb +0 -15
- data/lib/jets/cfn/builder/util/source.rb +0 -21
- data/lib/jets/cfn/builder.rb +0 -230
- data/lib/jets/cfn/deployment.rb +0 -85
- data/lib/jets/cfn/download.rb +0 -39
- data/lib/jets/cfn/params/api/base.rb +0 -39
- data/lib/jets/cfn/params/api/cors.rb +0 -10
- data/lib/jets/cfn/params/api/methods.rb +0 -69
- data/lib/jets/cfn/params/api/resources.rb +0 -28
- data/lib/jets/cfn/params/common.rb +0 -14
- data/lib/jets/cfn/resource/api_gateway/authorizer.rb +0 -82
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +0 -57
- data/lib/jets/cfn/resource/api_gateway/base_path/mapping.rb +0 -45
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +0 -70
- data/lib/jets/cfn/resource/api_gateway/deployment.rb +0 -73
- data/lib/jets/cfn/resource/api_gateway/domain_name.rb +0 -65
- data/lib/jets/cfn/resource/api_gateway/method/authorization.rb +0 -41
- data/lib/jets/cfn/resource/api_gateway/method.rb +0 -92
- data/lib/jets/cfn/resource/api_gateway/resource.rb +0 -86
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +0 -25
- data/lib/jets/cfn/resource/api_gateway/rest_api/change_detection.rb +0 -10
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id/message.rb +0 -59
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id.rb +0 -98
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/base.rb +0 -110
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/media_types.rb +0 -36
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/page.rb +0 -93
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/to.rb +0 -30
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/variable.rb +0 -35
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +0 -27
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision/variable_exception.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision.rb +0 -121
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api.rb +0 -74
- data/lib/jets/cfn/resource/config/config_rule.rb +0 -74
- data/lib/jets/cfn/resource/config/managed_rule.rb +0 -15
- data/lib/jets/cfn/resource/events/rule.rb +0 -31
- data/lib/jets/cfn/resource/iam/application_role.rb +0 -27
- data/lib/jets/cfn/resource/iam/base_role_definition.rb +0 -56
- data/lib/jets/cfn/resource/iam/class_role.rb +0 -74
- data/lib/jets/cfn/resource/iam/function_role.rb +0 -54
- data/lib/jets/cfn/resource/iam/managed_policy.rb +0 -22
- data/lib/jets/cfn/resource/iam/policy.rb +0 -31
- data/lib/jets/cfn/resource/iam/policy_document.rb +0 -42
- data/lib/jets/cfn/resource/iot/topic_rule.rb +0 -34
- data/lib/jets/cfn/resource/lambda/event_source_mapping.rb +0 -31
- data/lib/jets/cfn/resource/lambda/function/controller.rb +0 -21
- data/lib/jets/cfn/resource/lambda/function/environment.rb +0 -64
- data/lib/jets/cfn/resource/lambda/function.rb +0 -266
- data/lib/jets/cfn/resource/lambda/gem_layer.rb +0 -17
- data/lib/jets/cfn/resource/lambda/layer_version.rb +0 -44
- data/lib/jets/cfn/resource/lambda/permission.rb +0 -51
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/cfn/resource/nested/api/base.rb +0 -4
- data/lib/jets/cfn/resource/nested/api/deployment.rb +0 -53
- data/lib/jets/cfn/resource/nested/api/gateway.rb +0 -15
- data/lib/jets/cfn/resource/nested/api/mapping.rb +0 -33
- data/lib/jets/cfn/resource/nested/api/methods.rb +0 -30
- data/lib/jets/cfn/resource/nested/api/page.rb +0 -8
- data/lib/jets/cfn/resource/nested/api/resources.rb +0 -22
- data/lib/jets/cfn/resource/nested/app_class.rb +0 -116
- data/lib/jets/cfn/resource/nested/authorizer.rb +0 -34
- data/lib/jets/cfn/resource/nested/base.rb +0 -38
- data/lib/jets/cfn/resource/nested/one_controller.rb +0 -48
- data/lib/jets/cfn/resource/nested/shared.rb +0 -79
- data/lib/jets/cfn/resource/one/function.rb +0 -66
- data/lib/jets/cfn/resource/one/permission.rb +0 -17
- data/lib/jets/cfn/resource/route53/record_set.rb +0 -98
- data/lib/jets/cfn/resource/sns/subscription.rb +0 -29
- data/lib/jets/cfn/resource/sns/topic.rb +0 -35
- data/lib/jets/cfn/resource/sns/topic_policy.rb +0 -40
- data/lib/jets/cfn/resource/sqs/queue.rb +0 -21
- data/lib/jets/cfn/ship.rb +0 -192
- data/lib/jets/cfn/template.rb +0 -93
- data/lib/jets/cfn/upload.rb +0 -163
- data/lib/jets/command/actions.rb +0 -49
- data/lib/jets/command/api_helpers.rb +0 -42
- data/lib/jets/command/aws_helpers.rb +0 -26
- data/lib/jets/command/base.rb +0 -209
- data/lib/jets/command/behavior.rb +0 -83
- data/lib/jets/command/environment_argument.rb +0 -42
- data/lib/jets/command/help/build.md +0 -6
- data/lib/jets/command/help/call.md +0 -48
- data/lib/jets/command/help/clean/build.md +0 -5
- data/lib/jets/command/help/clean/log.md +0 -5
- data/lib/jets/command/help/console.md +0 -18
- data/lib/jets/command/help/db/generate.md +0 -8
- data/lib/jets/command/help/dbconsole.md +0 -9
- data/lib/jets/command/help/degenerate.md +0 -16
- data/lib/jets/command/help/deploy.md +0 -32
- data/lib/jets/command/help/gems/check.md +0 -1
- data/lib/jets/command/help/generate.md +0 -28
- data/lib/jets/command/help/import/rack.md +0 -13
- data/lib/jets/command/help/import/rails.md +0 -11
- data/lib/jets/command/help/new.md +0 -41
- data/lib/jets/command/help/rollback.md +0 -5
- data/lib/jets/command/help/routes.md +0 -15
- data/lib/jets/command/help/runner.md +0 -40
- data/lib/jets/command/help/server.md +0 -15
- data/lib/jets/command/help/upgrade.md +0 -7
- data/lib/jets/command/help.rb +0 -17
- data/lib/jets/command/helpers/editor.rb +0 -35
- data/lib/jets/command/rake_decorate.rb +0 -38
- data/lib/jets/command.rb +0 -142
- data/lib/jets/commands/application/application_command.rb +0 -46
- data/lib/jets/commands/build/build_command.rb +0 -33
- data/lib/jets/commands/call/anonymous_guesser.rb +0 -96
- data/lib/jets/commands/call/autoload_guesser.rb +0 -136
- data/lib/jets/commands/call/base_guesser.rb +0 -62
- data/lib/jets/commands/call/call_command.rb +0 -27
- data/lib/jets/commands/call/caller.rb +0 -184
- data/lib/jets/commands/call/guesser.rb +0 -48
- data/lib/jets/commands/clean/base.rb +0 -24
- data/lib/jets/commands/clean/build.rb +0 -13
- data/lib/jets/commands/clean/clean_command.rb +0 -15
- data/lib/jets/commands/clean/log.rb +0 -111
- data/lib/jets/commands/configure/configure_command.rb +0 -9
- data/lib/jets/commands/console/console_command.rb +0 -38
- data/lib/jets/commands/credentials/USAGE +0 -103
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +0 -51
- data/lib/jets/commands/credentials/credentials_command.rb +0 -139
- data/lib/jets/commands/db/system/change/change_command.rb +0 -24
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +0 -184
- data/lib/jets/commands/degenerate/degenerate_command.rb +0 -21
- data/lib/jets/commands/delete/delete_command.rb +0 -154
- data/lib/jets/commands/deploy/deploy_command.rb +0 -118
- data/lib/jets/commands/dev/dev_command.rb +0 -19
- data/lib/jets/commands/dotenv/dotenv_command.rb +0 -9
- data/lib/jets/commands/encrypted/USAGE +0 -46
- data/lib/jets/commands/encrypted/encrypted_command.rb +0 -87
- data/lib/jets/commands/gems/gems_command.rb +0 -14
- data/lib/jets/commands/generate/generate_command.rb +0 -95
- data/lib/jets/commands/help/USAGE +0 -20
- data/lib/jets/commands/help/help_command.rb +0 -15
- data/lib/jets/commands/initializers/initializers_command.rb +0 -19
- data/lib/jets/commands/logs/logs_command.rb +0 -45
- data/lib/jets/commands/new/new_command.rb +0 -19
- data/lib/jets/commands/notes/notes_command.rb +0 -30
- data/lib/jets/commands/plugin/plugin_command.rb +0 -45
- data/lib/jets/commands/projects/projects_command.rb +0 -30
- data/lib/jets/commands/rake/rake_command.rb +0 -59
- data/lib/jets/commands/releases/releases_command.rb +0 -124
- data/lib/jets/commands/rollback/rollback_command.rb +0 -33
- data/lib/jets/commands/routes/routes_command.rb +0 -19
- data/lib/jets/commands/runner/runner_command.rb +0 -60
- data/lib/jets/commands/server/server_command.rb +0 -291
- data/lib/jets/commands/stacks/stacks_command.rb +0 -39
- data/lib/jets/commands/status/status_command.rb +0 -16
- data/lib/jets/commands/url/url_command.rb +0 -92
- data/lib/jets/commands/version/version_command.rb +0 -11
- data/lib/jets/commands.rb +0 -17
- data/lib/jets/configuration.rb +0 -166
- data/lib/jets/controller/base.rb +0 -117
- data/lib/jets/controller/compat/abstract_controller/base.rb +0 -126
- data/lib/jets/controller/compat/action_controller/metal.rb +0 -99
- data/lib/jets/controller/compat/caching.rb +0 -13
- data/lib/jets/controller/compat/future.rb +0 -13
- data/lib/jets/controller/compat/route_set.rb +0 -47
- data/lib/jets/controller/decorate/apigw_stage.rb +0 -39
- data/lib/jets/controller/decorate/authorization.rb +0 -91
- data/lib/jets/controller/decorate/logging.rb +0 -90
- data/lib/jets/controller/decorate/redirecting.rb +0 -16
- data/lib/jets/controller/decorate/url_for.rb +0 -10
- data/lib/jets/controller/handler/apigw.rb +0 -93
- data/lib/jets/controller/handler.rb +0 -41
- data/lib/jets/controller/middleware/main.rb +0 -61
- data/lib/jets/controller/middleware/mimic/apigw.rb +0 -140
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +0 -44
- data/lib/jets/controller/middleware/mimic.rb +0 -105
- data/lib/jets/controller/middleware/webpacker_setup.rb +0 -6
- data/lib/jets/controller/rack_adapter/action.rb +0 -35
- data/lib/jets/controller/rack_adapter/env.rb +0 -145
- data/lib/jets/controller/request/compat/params.rb +0 -144
- data/lib/jets/controller/request/compat/request.rb +0 -125
- data/lib/jets/controller/request.rb +0 -46
- data/lib/jets/controller/response/compat/response.rb +0 -67
- data/lib/jets/controller/response.rb +0 -144
- data/lib/jets/core_ext/kernel.rb +0 -13
- data/lib/jets/dev_caching.rb +0 -44
- data/lib/jets/dotenv/show.rb +0 -11
- data/lib/jets/engine/configuration.rb +0 -96
- data/lib/jets/engine/turbines.rb +0 -23
- data/lib/jets/engine.rb +0 -380
- data/lib/jets/erb.rb +0 -51
- data/lib/jets/generators/job/job_generator.rb +0 -41
- data/lib/jets/generators/job/templates/application_job.rb.tt +0 -6
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +0 -11
- data/lib/jets/generators/overrides/app/USAGE +0 -38
- data/lib/jets/generators/overrides/app/app_generator.rb +0 -148
- data/lib/jets/generators/overrides/app/helpers.rb +0 -139
- data/lib/jets/generators/overrides/app/templates/.env +0 -10
- data/lib/jets/generators/overrides/app/templates/.gitignore.tt +0 -13
- data/lib/jets/generators/overrides/app/templates/.jetsignore +0 -6
- data/lib/jets/generators/overrides/app/templates/.rspec +0 -3
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +0 -28
- data/lib/jets/generators/overrides/app/templates/README.md +0 -11
- data/lib/jets/generators/overrides/app/templates/Rakefile +0 -2
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +0 -3
- data/lib/jets/generators/overrides/app/templates/app/assets/images/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/javascripts/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +0 -15
- data/lib/jets/generators/overrides/app/templates/app/controllers/application_controller.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/helpers/application_helper.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +0 -5
- data/lib/jets/generators/overrides/app/templates/app/jobs/application_job.rb +0 -4
- data/lib/jets/generators/overrides/app/templates/app/models/application_record.rb +0 -3
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +0 -30
- data/lib/jets/generators/overrides/app/templates/bin/jets +0 -3
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +0 -15
- data/lib/jets/generators/overrides/app/templates/config/database.yml.tt +0 -27
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +0 -29
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +0 -21
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +0 -23
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +0 -31
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +0 -8
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +0 -11
- data/lib/jets/generators/overrides/app/templates/config/routes.rb +0 -13
- data/lib/jets/generators/overrides/app/templates/config.ru +0 -5
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/generators/overrides/app/templates/public/404.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/422.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/500.html +0 -66
- data/lib/jets/generators/overrides/app/templates/public/favicon.ico +0 -0
- data/lib/jets/generators/overrides/app/templates/spec/controllers/posts_controller_spec.rb +0 -15
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-index.json +0 -51
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-show.json +0 -53
- data/lib/jets/generators/overrides/app/templates/spec/spec_helper.rb.tt +0 -30
- data/lib/jets/generators/overrides/templates/erb/scaffold/_form.html.erb +0 -34
- data/lib/jets/generators/overrides/templates/erb/scaffold/edit.html.erb +0 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +0 -22
- data/lib/jets/generators/overrides/templates/erb/scaffold/new.html.erb +0 -5
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +0 -8
- data/lib/jets/generators/overrides/templates/erb/scaffold/show.html.erb +0 -9
- data/lib/jets/generators/overrides/templates/rails/assets/javascript.js +0 -2
- data/lib/jets/generators/overrides/templates/rails/assets/stylesheet.css +0 -4
- data/lib/jets/generators/overrides/templates/rails/scaffold/scaffold.css +0 -80
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt +0 -58
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +0 -67
- data/lib/jets/generators.rb +0 -112
- data/lib/jets/inflections.rb +0 -32
- data/lib/jets/info.rb +0 -116
- data/lib/jets/initializable.rb +0 -95
- data/lib/jets/job/base.rb +0 -52
- data/lib/jets/job/dsl/dynamodb_event.rb +0 -78
- data/lib/jets/job/dsl/event_source_mapping.rb +0 -11
- data/lib/jets/job/dsl/iot_event.rb +0 -24
- data/lib/jets/job/dsl/kinesis_event.rb +0 -47
- data/lib/jets/job/dsl/log_event.rb +0 -15
- data/lib/jets/job/dsl/rule_event.rb +0 -78
- data/lib/jets/job/dsl/s3_event.rb +0 -77
- data/lib/jets/job/dsl/sns_event.rb +0 -54
- data/lib/jets/job/dsl/sqs_event.rb +0 -97
- data/lib/jets/job/helpers/s3_event.rb +0 -50
- data/lib/jets/job/helpers/sns_event.rb +0 -26
- data/lib/jets/job/helpers/sqs_event.rb +0 -26
- data/lib/jets/klass.rb +0 -108
- data/lib/jets/lambda/dsl/warnings.rb +0 -57
- data/lib/jets/mega/hash_converter.rb +0 -25
- data/lib/jets/mega/request/source.rb +0 -20
- data/lib/jets/mega/request.rb +0 -163
- data/lib/jets/overrides/dummy/rails.rb +0 -11
- data/lib/jets/overrides/lambda/marshaller.rb +0 -31
- data/lib/jets/overrides/lambda.rb +0 -1
- data/lib/jets/overrides/puma.rb +0 -10
- data/lib/jets/paths.rb +0 -243
- data/lib/jets/poly/base_executor.rb +0 -125
- data/lib/jets/poly/lambda_executor.rb +0 -16
- data/lib/jets/poly/node_error.rb +0 -8
- data/lib/jets/poly/node_executor.rb +0 -54
- data/lib/jets/poly/python_error.rb +0 -8
- data/lib/jets/poly/python_executor.rb +0 -23
- data/lib/jets/poly.rb +0 -73
- data/lib/jets/preheat.rb +0 -110
- data/lib/jets/processors/deducer.rb +0 -65
- data/lib/jets/processors/main_processor.rb +0 -54
- data/lib/jets/rack/logger.rb +0 -77
- data/lib/jets/router/compat/route_set.rb +0 -177
- data/lib/jets/router/dsl/mount.rb +0 -47
- data/lib/jets/router/dsl.rb +0 -164
- data/lib/jets/router/engine_mount.rb +0 -36
- data/lib/jets/router/help.rb +0 -130
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +0 -13
- data/lib/jets/router/helpers/named_routes/generated.rb +0 -197
- data/lib/jets/router/helpers/named_routes/proxy.rb +0 -66
- data/lib/jets/router/matcher.rb +0 -204
- data/lib/jets/router/resources/base.rb +0 -7
- data/lib/jets/router/resources/filter.rb +0 -15
- data/lib/jets/router/resources/options.rb +0 -15
- data/lib/jets/router/route/after_initialize.rb +0 -64
- data/lib/jets/router/route/as.rb +0 -93
- data/lib/jets/router/route/authorizer.rb +0 -58
- data/lib/jets/router/route/compat.rb +0 -45
- data/lib/jets/router/route/info.rb +0 -74
- data/lib/jets/router/route/node.rb +0 -137
- data/lib/jets/router/route/path.rb +0 -93
- data/lib/jets/router/route.rb +0 -249
- data/lib/jets/router/route_set.rb +0 -214
- data/lib/jets/router/scope.rb +0 -230
- data/lib/jets/router/state.rb +0 -67
- data/lib/jets/router/util.rb +0 -8
- data/lib/jets/router.rb +0 -94
- data/lib/jets/ruby_version_check.rb +0 -15
- data/lib/jets/rule/base.rb +0 -20
- data/lib/jets/rule/dsl.rb +0 -109
- data/lib/jets/secrets.rb +0 -110
- data/lib/jets/spec_helpers/controllers/params.rb +0 -8
- data/lib/jets/spec_helpers/controllers/request.rb +0 -107
- data/lib/jets/spec_helpers/controllers/response.rb +0 -10
- data/lib/jets/spec_helpers/controllers.rb +0 -54
- data/lib/jets/spec_helpers/fixtures.rb +0 -11
- data/lib/jets/spec_helpers.rb +0 -15
- data/lib/jets/stack/builder.rb +0 -44
- data/lib/jets/stack/definition.rb +0 -47
- data/lib/jets/stack/depends/item.rb +0 -26
- data/lib/jets/stack/depends.rb +0 -34
- data/lib/jets/stack/function.rb +0 -71
- data/lib/jets/stack/main/dsl/cloudwatch.rb +0 -19
- data/lib/jets/stack/main/dsl/iam.rb +0 -8
- data/lib/jets/stack/main/dsl/kinesis.rb +0 -15
- data/lib/jets/stack/main/dsl/lambda.rb +0 -90
- data/lib/jets/stack/main/dsl/s3.rb +0 -12
- data/lib/jets/stack/main/dsl/sns.rb +0 -16
- data/lib/jets/stack/main/dsl/sqs.rb +0 -10
- data/lib/jets/stack/main/dsl.rb +0 -17
- data/lib/jets/stack/main.rb +0 -4
- data/lib/jets/stack/output/dsl.rb +0 -19
- data/lib/jets/stack/output.rb +0 -35
- data/lib/jets/stack/parameter/dsl.rb +0 -42
- data/lib/jets/stack/parameter.rb +0 -37
- data/lib/jets/stack/resource/dsl.rb +0 -19
- data/lib/jets/stack/resource.rb +0 -31
- data/lib/jets/stack/s3_event.rb +0 -101
- data/lib/jets/tasks/engine.rake +0 -85
- data/lib/jets/tasks/framework.rake +0 -66
- data/lib/jets/tasks/log.rake +0 -41
- data/lib/jets/tasks/middleware.rake +0 -9
- data/lib/jets/tasks/misc.rake +0 -81
- data/lib/jets/tasks/statistics.rake +0 -37
- data/lib/jets/tasks/tmp.rake +0 -51
- data/lib/jets/tasks/yarn.rake +0 -29
- data/lib/jets/tasks/zeitwerk.rake +0 -61
- data/lib/jets/tasks.rb +0 -18
- data/lib/jets/tmp_loader.rb +0 -53
- data/lib/jets/turbine/configurable.rb +0 -36
- data/lib/jets/turbine/configuration.rb +0 -101
- data/lib/jets/turbine.rb +0 -185
- data/lib/jets/util.rb +0 -40
- /data/lib/jets/{command → cli}/help/projects.md +0 -0
- /data/lib/jets/{command → cli}/help/stacks.md +0 -0
- /data/lib/jets/{command → cli}/help/url.md +0 -0
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
require 'kramdown'
|
|
2
|
-
|
|
3
|
-
# Handles mimicing of API Gateway to Lambda function call locally
|
|
4
|
-
# Logic in the opposite direction: Jets::Controller::Handler::Apigw#rack_vars
|
|
5
|
-
module Jets::Controller::Middleware
|
|
6
|
-
class Mimic
|
|
7
|
-
extend Memoist
|
|
8
|
-
|
|
9
|
-
def initialize(app)
|
|
10
|
-
@app = app
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def call(env)
|
|
14
|
-
matcher = Jets::Router::Matcher.new
|
|
15
|
-
route = matcher.find_by_env(env) # simpler version does not check constraints
|
|
16
|
-
return not_found(env) unless route
|
|
17
|
-
|
|
18
|
-
# Make instance available so we dont not have to pass it around.
|
|
19
|
-
# Also important to assign to instance variables so values are memoized in variables
|
|
20
|
-
# So the mimic logic work because @env.merge! does not happened
|
|
21
|
-
# until end. We do not want apigw.controller to create a new controller instance
|
|
22
|
-
# with a different object_id
|
|
23
|
-
apigw = Apigw.new(route, env) # takes rack env and converts to API Gateway event structure
|
|
24
|
-
@controller = apigw.controller
|
|
25
|
-
@meth = apigw.meth
|
|
26
|
-
@event = apigw.event
|
|
27
|
-
@context = apigw.context
|
|
28
|
-
|
|
29
|
-
route = matcher.find_by_request(@controller.request) # need request object to check constraints
|
|
30
|
-
return not_found(env) unless route
|
|
31
|
-
|
|
32
|
-
if route.to == 'jets/rack#process' # megamode
|
|
33
|
-
# Bypass the Jets middlewares since it could interfere with the Rack
|
|
34
|
-
# application's middleware stack.
|
|
35
|
-
#
|
|
36
|
-
# Jets sends back a transfer-encoding=chunked. Curling Jets directly works,
|
|
37
|
-
# but passing the Jets response back through this middleware results in errors.
|
|
38
|
-
# Disable chunking responses by deleting the transfer-encoding response header.
|
|
39
|
-
# Would like to understand why this happens this better, if someone can explain please let me know.
|
|
40
|
-
status, headers, body = @controller.dispatch! # jets/rack_controller
|
|
41
|
-
headers.delete "transfer-encoding"
|
|
42
|
-
[status, headers, body]
|
|
43
|
-
elsif route.to == 'jets/mount#call' # mount route
|
|
44
|
-
status, headers, body = @controller.dispatch! # jets/mount_controller
|
|
45
|
-
[status, headers, body]
|
|
46
|
-
elsif polymorphic_function?
|
|
47
|
-
run_polymophic_function
|
|
48
|
-
else # Normal Jets request
|
|
49
|
-
unless on_aws?(env)
|
|
50
|
-
# Only set these variables when running locally and not on AWS.
|
|
51
|
-
# On AWS, these are set by the Jets::Controller::Handler::Apigw#rack_vars
|
|
52
|
-
env.merge!(
|
|
53
|
-
'jets.controller' => @controller, # mimic controller instance
|
|
54
|
-
'jets.context' => @context, # mimic context
|
|
55
|
-
'jets.event' => @event, # mimic event
|
|
56
|
-
'jets.meth' => @meth,
|
|
57
|
-
)
|
|
58
|
-
end
|
|
59
|
-
@app.call(env) # goes to all middleware all the way to Jets::Controller::Middleware::Main
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# Never hit when calling polymorphic function on AWS Lambda. Can only get called with the local server.
|
|
64
|
-
def polymorphic_function?
|
|
65
|
-
return false if ENV['_HANDLER'] # slight speed improvement on Lambda
|
|
66
|
-
polymorphic_function.definition.lang != :ruby
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def polymorphic_function
|
|
70
|
-
# Abusing Poly to run polymorphic code, should call LambdaExecutor directly
|
|
71
|
-
# after reworking LambdaExecutor so it has a better interface.
|
|
72
|
-
Jets::Poly.new(@controller.class, @meth)
|
|
73
|
-
end
|
|
74
|
-
memoize :polymorphic_function
|
|
75
|
-
|
|
76
|
-
def run_polymophic_function
|
|
77
|
-
resp = polymorphic_function.run(@event, @meth) # polymorphic code
|
|
78
|
-
status = resp['statusCode']
|
|
79
|
-
headers = resp['headers']
|
|
80
|
-
body = StringIO.new(resp['body'])
|
|
81
|
-
[status, headers, body] # triplet
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def on_aws?(env)
|
|
85
|
-
return true if ENV['ON_AWS']
|
|
86
|
-
return false if Jets.env.test? # usually with test we're passing in full API Gateway fixtures with the HTTP_X_AMZN_TRACE_ID
|
|
87
|
-
return false if ENV['JETS_ELB'] # If we're using an ELB and Jets is inside a container running jets server, we don't want to pretend we're on AWS.
|
|
88
|
-
on_cloud9 = !!(env['HTTP_HOST'] =~ /cloud9\..*\.amazonaws\.com/)
|
|
89
|
-
!!env['HTTP_X_AMZN_TRACE_ID'] && !on_cloud9
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def routes_error_message(env)
|
|
93
|
-
message = "<h2>404 Error: Route #{env['PATH_INFO'].sub('/','')} not found</h2>"
|
|
94
|
-
if Jets.env != "production"
|
|
95
|
-
message << "<p>Here are the routes defined in your application:</p>"
|
|
96
|
-
message << "#{routes_table}"
|
|
97
|
-
end
|
|
98
|
-
message
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def not_found(env)
|
|
102
|
-
raise Jets::Controller::RoutingError, "No route matches #{env['PATH_INFO'].inspect}"
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::RackAdapter
|
|
2
|
-
module Action
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
class_methods do
|
|
6
|
-
def action(name)
|
|
7
|
-
lambda do |env|
|
|
8
|
-
route = find_first_route_for_action(name)
|
|
9
|
-
env['PATH_INFO'] = route_path(route)
|
|
10
|
-
controller = new({}, {}, name, env)
|
|
11
|
-
controller.dispatch! # does not go through middleware stack
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Find first route to be used for PATH_INFO.
|
|
16
|
-
# This allows engine_delegate to work properly.
|
|
17
|
-
def find_first_route_for_action(name)
|
|
18
|
-
Jets::Router.routes.find do |r|
|
|
19
|
-
route_controller_path, route_action_name = r.to.split('#')
|
|
20
|
-
route_controller_path == controller_path && route_action_name == name.to_s
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def route_path(route)
|
|
25
|
-
if route
|
|
26
|
-
path = route.path
|
|
27
|
-
path = "/#{path}" unless path.starts_with?('/')
|
|
28
|
-
else
|
|
29
|
-
path = "/#{controller_path}##{name} (action proc)"
|
|
30
|
-
end
|
|
31
|
-
path
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
require 'rack'
|
|
2
|
-
require 'base64'
|
|
3
|
-
|
|
4
|
-
# Only called by AWS Lambda
|
|
5
|
-
# Takes an ApiGateway event and converts it to an Rack env that can be used for rack middleware
|
|
6
|
-
module Jets::Controller::RackAdapter
|
|
7
|
-
class Env
|
|
8
|
-
def initialize(event, context, options={})
|
|
9
|
-
@event, @context, @options = event, context, options
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def convert
|
|
13
|
-
options = {}
|
|
14
|
-
options = add_top_level(options)
|
|
15
|
-
options = add_http_headers(options)
|
|
16
|
-
path = path_with_base_path || @event['path'] || '/' # always set by API Gateway but might not be when testing shim, so setting it to make testing easier
|
|
17
|
-
|
|
18
|
-
# In case of non-ascii characters, CGI.escape will escape them
|
|
19
|
-
# IE: get '/ほげ'
|
|
20
|
-
# This just because MockRequest.env_for uses URI.parse which does not
|
|
21
|
-
# escape non-ascii characters and throws an error
|
|
22
|
-
unescaped_path = path
|
|
23
|
-
path = path.chars.map { |char| char.ascii_only? ? char : CGI.escape(char) }.join
|
|
24
|
-
env = Rack::MockRequest.env_for(path, options)
|
|
25
|
-
env['PATH_INFO'] = unescaped_path
|
|
26
|
-
# env['QUERY_STRING'] = query_string
|
|
27
|
-
env
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
def path_with_base_path
|
|
32
|
-
resource = @event['resource']
|
|
33
|
-
pathParameters = @event['pathParameters']
|
|
34
|
-
|
|
35
|
-
if(!pathParameters.nil? and !resource.nil?)
|
|
36
|
-
resource = pathParameters.reduce(resource) {|resource, parameter|
|
|
37
|
-
key, value = parameter
|
|
38
|
-
resource = resource.gsub("{#{key}+}", value)
|
|
39
|
-
resource = resource.gsub("{#{key}}", value)
|
|
40
|
-
resource
|
|
41
|
-
}
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
resource
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def add_top_level(options)
|
|
48
|
-
map = {
|
|
49
|
-
'CONTENT_TYPE' => content_type,
|
|
50
|
-
'QUERY_STRING' => query_string,
|
|
51
|
-
'REMOTE_ADDR' => headers['X-Forwarded-For'],
|
|
52
|
-
'REMOTE_HOST' => headers_host,
|
|
53
|
-
'REQUEST_METHOD' => @event['httpMethod'] || 'GET', # useful to default to GET when testing with Lambda console
|
|
54
|
-
'REQUEST_PATH' => @event['path'],
|
|
55
|
-
'REQUEST_URI' => request_uri,
|
|
56
|
-
'SCRIPT_NAME' => "",
|
|
57
|
-
'SERVER_NAME' => headers_host,
|
|
58
|
-
'SERVER_PORT' => headers['X-Forwarded-Port'],
|
|
59
|
-
'SERVER_PROTOCOL' => "HTTP/1.1", # unsure if this should be set
|
|
60
|
-
'SERVER_SOFTWARE' => headers['User-Agent'],
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
map['CONTENT_LENGTH'] = content_length if content_length
|
|
64
|
-
# Even if not set, Rack always assigns an StringIO to "rack.input"
|
|
65
|
-
map['rack.input'] = StringIO.new(body) if body
|
|
66
|
-
|
|
67
|
-
options.merge(map)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# Generally should use content_type method instead of headers['Content-Type'] because
|
|
71
|
-
# headers['Content-Type'] is not normally available for Rails.
|
|
72
|
-
#
|
|
73
|
-
# Jets makes it available and normalizes the casing by grabbing it from APIGW event['headers']
|
|
74
|
-
# APIGW is inconsistent about the casing.
|
|
75
|
-
# In POST request it's content-type and in GET request it's Content-Type
|
|
76
|
-
#
|
|
77
|
-
# Rack (local) uses Content-Type and APIGW (remote) uses content-type
|
|
78
|
-
# Rack::MethodOverride relys on content-type to detect content type properly.
|
|
79
|
-
#
|
|
80
|
-
def content_type
|
|
81
|
-
headers['Content-Type'] || headers['content-type']
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def content_length
|
|
85
|
-
bytesize = body.bytesize.to_s if body
|
|
86
|
-
headers['Content-Length'] || bytesize
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Decoding base64 from API Gateaway if necessary
|
|
90
|
-
# Rack will be none the wiser
|
|
91
|
-
def body
|
|
92
|
-
if @event['isBase64Encoded']
|
|
93
|
-
Base64.decode64(@event['body'])
|
|
94
|
-
else
|
|
95
|
-
@event['body']
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def add_http_headers(options)
|
|
100
|
-
headers.each do |k,v|
|
|
101
|
-
# content-type => HTTP_CONTENT_TYPE
|
|
102
|
-
key = k.gsub('-','_').upcase
|
|
103
|
-
key = "HTTP_#{key}"
|
|
104
|
-
if k == "Host"
|
|
105
|
-
options[key] = headers_host
|
|
106
|
-
else
|
|
107
|
-
options[key] = v
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
options
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def headers_host
|
|
114
|
-
Jets.config.app.domain || headers['Host']
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def request_uri
|
|
118
|
-
# IE: "http://localhost:8888/posts/tung/edit?foo=bar"
|
|
119
|
-
proto = headers['X-Forwarded-Proto']
|
|
120
|
-
host = headers_host
|
|
121
|
-
port = headers['X-Forwarded-Port']
|
|
122
|
-
|
|
123
|
-
# Add port if needed
|
|
124
|
-
if proto == 'https' && port != '443' or
|
|
125
|
-
proto == 'http' && port != '80'
|
|
126
|
-
host = "#{host}:#{port}"
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
path = @event['path']
|
|
130
|
-
qs = "?#{query_string}" unless query_string.empty?
|
|
131
|
-
"#{proto}://#{host}#{path}#{qs}"
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def query_string
|
|
135
|
-
query = @event["queryStringParameters"] || @event["multiValueQueryStringParameters"] || {} # always set with API Gateway but when testing node shim might not be
|
|
136
|
-
Rack::Utils.build_nested_query(query)
|
|
137
|
-
# query.map { |k,v| "#{k}=#{v}" }.join('&')
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
# request headers
|
|
141
|
-
def headers
|
|
142
|
-
@event['headers'] || {}
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
end
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
require "action_dispatch/request/utils"
|
|
2
|
-
require "rack"
|
|
3
|
-
|
|
4
|
-
module Jets::Controller::Request::Compat
|
|
5
|
-
# Provides these 3 methods to make it Rails compatible:
|
|
6
|
-
#
|
|
7
|
-
# request_parameters
|
|
8
|
-
# query_parameters
|
|
9
|
-
# path_parameters
|
|
10
|
-
#
|
|
11
|
-
module Params
|
|
12
|
-
extend Memoist
|
|
13
|
-
|
|
14
|
-
delegate :normalize_encode_params, to: ActionDispatch::Request::Utils
|
|
15
|
-
def set_binary_encoding(params)
|
|
16
|
-
controller = path_parameters[:controller]
|
|
17
|
-
action = path_parameters[:action]
|
|
18
|
-
ActionDispatch::Request::Utils.set_binary_encoding(self, params, controller, action)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# Merge all the parameters together for convenience.
|
|
22
|
-
# Users still have access via events.
|
|
23
|
-
#
|
|
24
|
-
# Precedence:
|
|
25
|
-
# 1. path parameters have highest precdence
|
|
26
|
-
# 2. query string parameters
|
|
27
|
-
# 3. body parameters
|
|
28
|
-
def parameters(include_path_params: true, include_body_params: true)
|
|
29
|
-
params = {}
|
|
30
|
-
params = params.deep_merge(request_parameters) if include_body_params
|
|
31
|
-
params = params.deep_merge(unescape_recursively(query_parameters)) # always
|
|
32
|
-
params = params.deep_merge(path_parameters) if include_path_params
|
|
33
|
-
params = set_binary_encoding(params)
|
|
34
|
-
params = normalize_encode_params(params)
|
|
35
|
-
params
|
|
36
|
-
end
|
|
37
|
-
memoize :parameters
|
|
38
|
-
alias params parameters
|
|
39
|
-
|
|
40
|
-
def path_parameters
|
|
41
|
-
path_params = event["pathParameters"] || {}
|
|
42
|
-
path_params.merge!(path_parameters_defaults)
|
|
43
|
-
path_params = path_params.map { |k, path| [k, CGI.unescape(path.to_s)] }.to_h
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def path_parameters_defaults
|
|
47
|
-
route = Jets::Router::Matcher.new.find_by_request(self)
|
|
48
|
-
if route
|
|
49
|
-
controller = route.controller_name.delete_suffix("Controller").underscore
|
|
50
|
-
{
|
|
51
|
-
controller: controller,
|
|
52
|
-
action: route.action_name,
|
|
53
|
-
}.merge(route.resolved_defaults)
|
|
54
|
-
else
|
|
55
|
-
{}
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# Based on ActionDispatch::Request#GET https://bit.ly/48hvDwe
|
|
60
|
-
# Override Rack's GET method to support indifferent access.
|
|
61
|
-
def GET
|
|
62
|
-
fetch_header("action_dispatch.request.query_parameters") do |k|
|
|
63
|
-
params = event["queryStringParameters"] || {}
|
|
64
|
-
set_binary_encoding(params)
|
|
65
|
-
set_header k, normalize_encode_params(params)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
alias query_parameters GET
|
|
69
|
-
|
|
70
|
-
# Based on ActionDispatch::Request#POST https://bit.ly/48fxh1A
|
|
71
|
-
# Override Rack's POST method to support indifferent access.
|
|
72
|
-
def POST
|
|
73
|
-
fetch_header("action_dispatch.request.request_parameters") do
|
|
74
|
-
params = get_request_parameters
|
|
75
|
-
self.request_parameters = normalize_encode_params(params)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
alias request_parameters POST
|
|
79
|
-
|
|
80
|
-
def request_parameters=(params)
|
|
81
|
-
raise if params.nil?
|
|
82
|
-
set_header("action_dispatch.request.request_parameters", params)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def get_request_parameters
|
|
86
|
-
body = event['isBase64Encoded'] ? base64_decode(event["body"]) : event["body"]
|
|
87
|
-
return {} if body.nil?
|
|
88
|
-
|
|
89
|
-
parsed_json = parse_json(body)
|
|
90
|
-
return parsed_json if parsed_json
|
|
91
|
-
|
|
92
|
-
if content_type.to_s.include?("application/x-www-form-urlencoded")
|
|
93
|
-
return ::Rack::Utils.parse_nested_query(body)
|
|
94
|
-
elsif content_type.to_s.include?("multipart/form-data")
|
|
95
|
-
return parse_multipart(body)
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
{} # fallback to empty Hash
|
|
99
|
-
end
|
|
100
|
-
memoize :get_request_parameters
|
|
101
|
-
|
|
102
|
-
# jets specific
|
|
103
|
-
def request_method_from_hidden_method_field
|
|
104
|
-
get_request_parameters["_method"].to_s.upcase if get_request_parameters["_method"]
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
private
|
|
108
|
-
|
|
109
|
-
def parse_multipart(body)
|
|
110
|
-
boundary = ::Rack::Multipart::Parser.parse_boundary(content_type)
|
|
111
|
-
options = multipart_options(body, boundary)
|
|
112
|
-
env = ::Rack::MockRequest.env_for("/", options)
|
|
113
|
-
::Rack::Multipart.parse_multipart(env) # params Hash
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
def multipart_options(data, boundary = "AaB03x")
|
|
117
|
-
type = %(multipart/form-data; boundary=#{boundary})
|
|
118
|
-
length = data.bytesize
|
|
119
|
-
|
|
120
|
-
{ "CONTENT_TYPE" => type,
|
|
121
|
-
"CONTENT_LENGTH" => length.to_s,
|
|
122
|
-
:input => StringIO.new(data) }
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def parse_json(text)
|
|
126
|
-
JSON.parse(text)
|
|
127
|
-
rescue JSON::ParserError
|
|
128
|
-
nil
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def base64_decode(body)
|
|
132
|
-
return nil if body.nil?
|
|
133
|
-
Base64.decode64(body)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
def unescape_recursively(obj)
|
|
137
|
-
case obj
|
|
138
|
-
when Hash then obj.map { |k, v| [k, unescape_recursively(v)] }.to_h
|
|
139
|
-
when Array then obj.map { |v| unescape_recursively(v) }
|
|
140
|
-
else CGI.unescape(obj.to_s)
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::Request::Compat
|
|
2
|
-
# Based on ActionDispatch::Request class
|
|
3
|
-
module Request
|
|
4
|
-
extend Memoist
|
|
5
|
-
|
|
6
|
-
ENV_METHODS = %w[ AUTH_TYPE GATEWAY_INTERFACE
|
|
7
|
-
PATH_TRANSLATED REMOTE_HOST
|
|
8
|
-
REMOTE_IDENT REMOTE_USER REMOTE_ADDR
|
|
9
|
-
SERVER_NAME SERVER_PROTOCOL
|
|
10
|
-
ORIGINAL_SCRIPT_NAME
|
|
11
|
-
|
|
12
|
-
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
|
|
13
|
-
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM
|
|
14
|
-
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_CLIENT_IP
|
|
15
|
-
HTTP_X_FORWARDED_FOR HTTP_ORIGIN HTTP_VERSION
|
|
16
|
-
HTTP_X_CSRF_TOKEN HTTP_X_REQUEST_ID HTTP_X_FORWARDED_HOST
|
|
17
|
-
].freeze
|
|
18
|
-
|
|
19
|
-
ENV_METHODS.each do |env|
|
|
20
|
-
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
|
21
|
-
# frozen_string_literal: true
|
|
22
|
-
def #{env.delete_prefix("HTTP_").downcase} # def accept_charset
|
|
23
|
-
get_header "#{env}" # get_header "HTTP_ACCEPT_CHARSET"
|
|
24
|
-
end # end
|
|
25
|
-
METHOD
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
LOCALHOST = Regexp.union [/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/, /^::1$/, /^0:0:0:0:0:0:0:1(%.*)?$/]
|
|
29
|
-
|
|
30
|
-
def session
|
|
31
|
-
key = ActionDispatch::Request::Session::ENV_SESSION_KEY
|
|
32
|
-
session = env[key]
|
|
33
|
-
if session.nil? # controller dispatch! does not go through middleware
|
|
34
|
-
# mock session that is disabled
|
|
35
|
-
session = ActionDispatch::Request::Session.new(nil, self, enabled: false)
|
|
36
|
-
end
|
|
37
|
-
session
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def session=(session) # :nodoc:
|
|
41
|
-
ActionDispatch::Request::Session.set self, session
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def session_options=(options)
|
|
45
|
-
ActionDispatch::Request::Session::Options.set self, options
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def reset_session
|
|
49
|
-
session.destroy
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def headers
|
|
53
|
-
top_level_headers.merge(http_headers)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def http_headers
|
|
57
|
-
Hash[*env.select {|k,v| k.start_with? 'HTTP_'}
|
|
58
|
-
.collect {|k,v| [k.sub(/^HTTP_/, ''), v]}
|
|
59
|
-
.collect {|k,v| [k.split('_').collect(&:capitalize).join('-'), v]}
|
|
60
|
-
.sort
|
|
61
|
-
.flatten]
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# These are not part of a Rails headers but believe
|
|
65
|
-
# they make sense to add as it feel like expected behavior.
|
|
66
|
-
def top_level_headers
|
|
67
|
-
hash = {
|
|
68
|
-
"Host" => env["HTTP_HOST"],
|
|
69
|
-
"Content-Type" => env["CONTENT_TYPE"],
|
|
70
|
-
"Content-Length" => env["CONTENT_LENGTH"],
|
|
71
|
-
}
|
|
72
|
-
hash.delete_if { |k, v| v.nil? }
|
|
73
|
-
hash
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
# Returns the lowercase name of the HTTP server software.
|
|
77
|
-
def server_software
|
|
78
|
-
(get_header("SERVER_SOFTWARE") && /^([a-zA-Z]+)/ =~ get_header("SERVER_SOFTWARE")) ? $1.downcase : nil
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Returns the authorization header regardless of whether it was specified directly or through one of the
|
|
82
|
-
# proxy alternatives.
|
|
83
|
-
def authorization
|
|
84
|
-
get_header("HTTP_AUTHORIZATION") ||
|
|
85
|
-
get_header("X-HTTP_AUTHORIZATION") ||
|
|
86
|
-
get_header("X_HTTP_AUTHORIZATION") ||
|
|
87
|
-
get_header("REDIRECT_X_HTTP_AUTHORIZATION")
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
# True if the request came from localhost, 127.0.0.1, or ::1.
|
|
91
|
-
def local?
|
|
92
|
-
LOCALHOST.match?(remote_addr) && LOCALHOST.match?(remote_ip)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def controller_class_for(name)
|
|
96
|
-
controller_param = name.underscore
|
|
97
|
-
const_name = controller_param.camelize << "Controller"
|
|
98
|
-
const_name.constantize
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def request_method_symbol
|
|
102
|
-
request_method.downcase.to_sym
|
|
103
|
-
end
|
|
104
|
-
alias method_symbol request_method_symbol
|
|
105
|
-
|
|
106
|
-
# Returns the IP address of client as a +String+,
|
|
107
|
-
# usually set by the RemoteIp middleware.
|
|
108
|
-
def remote_ip
|
|
109
|
-
@remote_ip ||= (get_header("action_dispatch.remote_ip") || ip).to_s
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def remote_ip=(remote_ip)
|
|
113
|
-
@remote_ip = nil
|
|
114
|
-
set_header "action_dispatch.remote_ip", remote_ip
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
# Needed when action_view.preload_links_header = true
|
|
118
|
-
# Rails 6.1 defaults
|
|
119
|
-
def send_early_hints(links)
|
|
120
|
-
return unless env["rack.early_hints"]
|
|
121
|
-
|
|
122
|
-
env["rack.early_hints"].call(links)
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
require 'rack/request'
|
|
2
|
-
|
|
3
|
-
module Jets::Controller
|
|
4
|
-
class Request
|
|
5
|
-
include Rack::Request::Helpers
|
|
6
|
-
include Compat::Request
|
|
7
|
-
include Compat::Params
|
|
8
|
-
|
|
9
|
-
include ActionDispatch::Flash::RequestMethods
|
|
10
|
-
include ActionDispatch::Http::Cache::Request
|
|
11
|
-
include ActionDispatch::Http::MimeNegotiation
|
|
12
|
-
include ActionDispatch::Http::FilterParameters # parameter_filter and filtered_parameters
|
|
13
|
-
include ActionDispatch::Http::URL
|
|
14
|
-
include ActionDispatch::RequestCookieMethods
|
|
15
|
-
include ActionDispatch::ContentSecurityPolicy::Request
|
|
16
|
-
include ActionDispatch::PermissionsPolicy::Request
|
|
17
|
-
include Rack::Request::Env
|
|
18
|
-
|
|
19
|
-
# since jets delegates parameter_filter from controller to request
|
|
20
|
-
public :parameter_filter
|
|
21
|
-
|
|
22
|
-
attr_reader :event, :env
|
|
23
|
-
attr_accessor :routes
|
|
24
|
-
def initialize(rack_env: nil, event: nil)
|
|
25
|
-
@rack_env = rack_env
|
|
26
|
-
@event = event
|
|
27
|
-
@env = normalize_env
|
|
28
|
-
super(@env) # Rack::Env module => super()
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def normalize_env
|
|
32
|
-
if @rack_env # already rack env
|
|
33
|
-
@rack_env # rack_env is from Controller.action => lambda { |env| .. }
|
|
34
|
-
else
|
|
35
|
-
Jets::Controller::RackAdapter::Env.new(@event, {}).convert # convert to Rack env
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# When request hits the middleware Controller::RackAdapter::Middleware::Main endpoint
|
|
40
|
-
# We updated env since it could had been mutated down the middleware stack
|
|
41
|
-
# from Mimic to Main.
|
|
42
|
-
def set_env!(env)
|
|
43
|
-
@env = env
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::Response::Compat
|
|
2
|
-
module Response
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
included do
|
|
6
|
-
# Must come before include ActionDispatch::Http::Cache::Response
|
|
7
|
-
# Aliasing these off because AD::Http::Cache::Response defines them.
|
|
8
|
-
alias :_cache_control :cache_control
|
|
9
|
-
alias :_cache_control= :cache_control=
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class_methods do
|
|
13
|
-
cattr_accessor :default_charset, default: "utf-8"
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
ContentTypeHeader = Struct.new :mime_type, :charset
|
|
17
|
-
NullContentTypeHeader = ContentTypeHeader.new nil, nil
|
|
18
|
-
|
|
19
|
-
CONTENT_TYPE = "Content-Type"
|
|
20
|
-
CONTENT_TYPE_PARSER = /
|
|
21
|
-
\A
|
|
22
|
-
(?<mime_type>[^;\s]+\s*(?:;\s*(?:(?!charset)[^;\s])+)*)?
|
|
23
|
-
(?:;\s*charset=(?<quote>"?)(?<charset>[^;\s]+)\k<quote>)?
|
|
24
|
-
/x # :nodoc:
|
|
25
|
-
|
|
26
|
-
def parse_content_type(content_type)
|
|
27
|
-
if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
|
|
28
|
-
ContentTypeHeader.new(match[:mime_type], match[:charset])
|
|
29
|
-
else
|
|
30
|
-
NullContentTypeHeader
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Small internal convenience method to get the parsed version of the current
|
|
35
|
-
# content type header.
|
|
36
|
-
def parsed_content_type_header
|
|
37
|
-
parse_content_type(get_header("Content-Type"))
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def set_content_type(content_type, charset)
|
|
41
|
-
type = content_type || ""
|
|
42
|
-
type = "#{type}; charset=#{charset.to_s.downcase}" if charset
|
|
43
|
-
set_header CONTENT_TYPE, type
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# Sets the HTTP character set. In case of +nil+ parameter
|
|
47
|
-
# it sets the charset to +default_charset+.
|
|
48
|
-
#
|
|
49
|
-
# response.charset = 'utf-16' # => 'utf-16'
|
|
50
|
-
# response.charset = nil # => 'utf-8'
|
|
51
|
-
def charset=(charset)
|
|
52
|
-
content_type = parsed_content_type_header.mime_type
|
|
53
|
-
if false == charset
|
|
54
|
-
set_content_type content_type, nil
|
|
55
|
-
else
|
|
56
|
-
set_content_type content_type, charset || self.class.default_charset
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# The charset of the response. HTML wants to know the encoding of the
|
|
61
|
-
# content you're giving them, so we need to send that along.
|
|
62
|
-
def charset
|
|
63
|
-
header_info = parsed_content_type_header
|
|
64
|
-
header_info.charset || self.class.default_charset
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|