supabase-rails 0.1.0 → 1.0.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/supabase/rails/base_controller.rb +17 -0
  3. data/app/controllers/supabase/rails/oauth_controller.rb +53 -0
  4. data/app/controllers/supabase/rails/otp_controller.rb +55 -0
  5. data/app/controllers/supabase/rails/passwords_controller.rb +47 -0
  6. data/app/controllers/supabase/rails/registrations_controller.rb +46 -0
  7. data/app/controllers/supabase/rails/sessions_controller.rb +32 -0
  8. data/app/views/supabase/rails/oauth/_buttons.html.erb +8 -0
  9. data/app/views/supabase/rails/otp/new.html.erb +11 -0
  10. data/app/views/supabase/rails/otp/verify.html.erb +14 -0
  11. data/app/views/supabase/rails/passwords/edit.html.erb +9 -0
  12. data/app/views/supabase/rails/passwords/new.html.erb +11 -0
  13. data/app/views/supabase/rails/registrations/new.html.erb +12 -0
  14. data/app/views/supabase/rails/sessions/new.html.erb +15 -0
  15. data/app/views/supabase/rails/shared/_flash.html.erb +5 -0
  16. data/config/locales/en.yml +19 -0
  17. data/lib/generators/supabase/install/install_generator.rb +84 -0
  18. data/lib/generators/supabase/install/templates/app/controllers/concerns/authentication.rb.tt +9 -0
  19. data/lib/generators/supabase/install/templates/app/controllers/oauth_controller.rb.tt +4 -0
  20. data/lib/generators/supabase/install/templates/app/controllers/otp_controller.rb.tt +4 -0
  21. data/lib/generators/supabase/install/templates/app/controllers/passwords_controller.rb.tt +4 -0
  22. data/lib/generators/supabase/install/templates/app/controllers/registrations_controller.rb.tt +4 -0
  23. data/lib/generators/supabase/install/templates/app/controllers/sessions_controller.rb.tt +4 -0
  24. data/lib/generators/supabase/install/templates/app/models/current.rb.tt +5 -0
  25. data/lib/generators/supabase/install/templates/config/initializers/supabase.rb.tt +21 -0
  26. data/lib/generators/supabase/user_model/templates/app/models/user.rb.tt +11 -0
  27. data/lib/generators/supabase/user_model/templates/db/migrate/create_supabase_users.rb.tt +11 -0
  28. data/lib/generators/supabase/user_model/user_model_generator.rb +64 -0
  29. data/lib/generators/supabase/views/views_generator.rb +33 -0
  30. data/lib/supabase/rails/authentication.rb +744 -0
  31. data/lib/supabase/rails/context.rb +22 -5
  32. data/lib/supabase/rails/controller.rb +24 -2
  33. data/lib/supabase/rails/core.rb +9 -0
  34. data/lib/supabase/rails/engine.rb +35 -0
  35. data/lib/supabase/rails/errors.rb +68 -0
  36. data/lib/supabase/rails/middleware.rb +30 -7
  37. data/lib/supabase/rails/railtie.rb +28 -2
  38. data/lib/supabase/rails/routes.rb +89 -0
  39. data/lib/supabase/rails/session_store.rb +127 -0
  40. data/lib/supabase/rails/user.rb +38 -0
  41. data/lib/supabase/rails/version.rb +1 -1
  42. data/lib/supabase/rails/web/auth_client_factory.rb +101 -0
  43. data/lib/supabase/rails/web/auth_error_mapper.rb +65 -0
  44. data/lib/supabase/rails/web/cookie_credential_strategy.rb +200 -0
  45. data/lib/supabase/rails/web/redirect_validator.rb +92 -0
  46. data/lib/supabase/rails/web/refresh_coordinator.rb +78 -0
  47. data/lib/supabase/rails/web/request_scoped_storage.rb +132 -0
  48. data/lib/supabase/rails.rb +10 -0
  49. metadata +54 -1
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/base"
4
+
5
+ module Supabase
6
+ module Generators
7
+ # `rails g supabase:views` (FR-W13 / US-021).
8
+ #
9
+ # Copies the gem's default view templates into the host app so they can
10
+ # be customised. Standard Rails view resolution makes the host copies
11
+ # override the gem's defaults because Rails resolves the host's
12
+ # `app/views/` ahead of any engine-added view paths.
13
+ #
14
+ # Files are copied byte-verbatim (no ERB processing) and routed through
15
+ # Thor's `directory` action, which honours the standard overwrite prompt
16
+ # on re-run.
17
+ class ViewsGenerator < ::Rails::Generators::Base
18
+ source_root File.expand_path("../../../../app/views/supabase/rails", __dir__)
19
+
20
+ desc <<~DESC
21
+ Copies the gem's Supabase auth view templates into the host app so
22
+ they can be customised.
23
+
24
+ Files are copied verbatim into app/views/supabase/rails/. Re-running
25
+ triggers Thor's standard overwrite prompt for user-modified files.
26
+ DESC
27
+
28
+ def copy_views
29
+ directory ".", "app/views/supabase/rails"
30
+ end
31
+ end
32
+ end
33
+ end