seams 0.1.0 → 0.2.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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +212 -12
  3. data/README.md +235 -82
  4. data/lib/generators/seams/accounts/accounts_generator.rb +31 -3
  5. data/lib/generators/seams/accounts/templates/app/controllers/memberships_controller.rb.tt +100 -0
  6. data/lib/generators/seams/accounts/templates/app/views/memberships/index.html.erb.tt +52 -0
  7. data/lib/generators/seams/accounts/templates/config/routes.rb.tt +10 -4
  8. data/lib/generators/seams/accounts/templates/lib/concerns/authorization.rb.tt +35 -2
  9. data/lib/generators/seams/accounts/templates/lib/engine.rb.tt +13 -0
  10. data/lib/generators/seams/accounts/templates/spec/runtime/authorization_spec.rb.tt +102 -0
  11. data/lib/generators/seams/accounts/templates/spec/runtime/memberships_flow_spec.rb.tt +145 -0
  12. data/lib/generators/seams/admin/admin_generator.rb +51 -4
  13. data/lib/generators/seams/admin/templates/README.md.tt +33 -3
  14. data/lib/generators/seams/admin/templates/app/controllers/admin/application_controller.rb.tt +156 -8
  15. data/lib/generators/seams/admin/templates/app/dashboards/admin/account_dashboard.rb.tt +9 -1
  16. data/lib/generators/seams/admin/templates/app/dashboards/admin/accounts_membership_dashboard.rb.tt +9 -1
  17. data/lib/generators/seams/admin/templates/app/dashboards/admin/identity_dashboard.rb.tt +6 -0
  18. data/lib/generators/seams/admin/templates/app/dashboards/admin/invitation_dashboard.rb.tt +7 -1
  19. data/lib/generators/seams/admin/templates/app/dashboards/admin/invoice_dashboard.rb.tt +6 -0
  20. data/lib/generators/seams/admin/templates/app/dashboards/admin/lifetime_pass_dashboard.rb.tt +6 -0
  21. data/lib/generators/seams/admin/templates/app/dashboards/admin/notification_dashboard.rb.tt +6 -0
  22. data/lib/generators/seams/admin/templates/app/dashboards/admin/notification_preference_dashboard.rb.tt +6 -0
  23. data/lib/generators/seams/admin/templates/app/dashboards/admin/plan_dashboard.rb.tt +6 -0
  24. data/lib/generators/seams/admin/templates/app/dashboards/admin/subscription_dashboard.rb.tt +6 -0
  25. data/lib/generators/seams/admin/templates/app/dashboards/admin/team_dashboard.rb.tt +12 -2
  26. data/lib/generators/seams/admin/templates/app/dashboards/admin/teams_membership_dashboard.rb.tt +7 -1
  27. data/lib/generators/seams/admin/templates/app/fields/admin/fields/belongs_to.rb.tt +12 -0
  28. data/lib/generators/seams/admin/templates/app/fields/admin/fields/dashboard_option.rb.tt +22 -0
  29. data/lib/generators/seams/admin/templates/app/fields/admin/fields/has_many.rb.tt +12 -0
  30. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/account_policy.rb.tt +4 -0
  31. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/accounts_membership_policy.rb.tt +6 -0
  32. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/application_policy.rb.tt +51 -10
  33. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/identity_policy.rb.tt +4 -0
  34. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/invitation_policy.rb.tt +6 -0
  35. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/invoice_policy.rb.tt +6 -0
  36. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/lifetime_pass_policy.rb.tt +6 -0
  37. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_policy.rb.tt +6 -0
  38. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_preference_policy.rb.tt +6 -0
  39. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/plan_policy.rb.tt +7 -0
  40. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/subscription_policy.rb.tt +6 -0
  41. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/team_policy.rb.tt +6 -0
  42. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/teams_membership_policy.rb.tt +6 -0
  43. data/lib/generators/seams/admin/templates/app/views/seams/admin/application/_index_header.html.erb.tt +57 -0
  44. data/lib/generators/seams/admin/templates/app/views/seams/admin/application/_navigation.html.erb.tt +14 -0
  45. data/lib/generators/seams/admin/templates/config/routes.rb.tt +24 -14
  46. data/lib/generators/seams/admin/templates/lib/concerns/authenticator.rb.tt +3 -0
  47. data/lib/generators/seams/admin/templates/lib/configuration.rb.tt +3 -1
  48. data/lib/generators/seams/admin/templates/spec/runtime/admin_boot_spec.rb.tt +4 -2
  49. data/lib/generators/seams/auth/add_oauth_provider/add_oauth_provider_generator.rb +1 -2
  50. data/lib/generators/seams/auth/auth_generator.rb +1 -2
  51. data/lib/generators/seams/auth/templates/app/controllers/oauth/callbacks_controller.rb.tt +3 -0
  52. data/lib/generators/seams/auth/templates/app/controllers/password_resets_controller.rb.tt +4 -0
  53. data/lib/generators/seams/auth/templates/app/controllers/registrations_controller.rb.tt +5 -0
  54. data/lib/generators/seams/auth/templates/app/controllers/sessions_controller.rb.tt +5 -0
  55. data/lib/generators/seams/auth/templates/db/migrate/create_auth_oauth_providers.rb.tt +5 -1
  56. data/lib/generators/seams/auth/templates/lib/concerns/authentication.rb.tt +12 -1
  57. data/lib/generators/seams/auth/templates/lib/engine.rb.tt +27 -0
  58. data/lib/generators/seams/billing/billing_generator.rb +4 -3
  59. data/lib/generators/seams/billing/templates/README.md.tt +26 -0
  60. data/lib/generators/seams/billing/templates/app/controllers/invoices_controller.rb.tt +2 -0
  61. data/lib/generators/seams/billing/templates/app/controllers/subscriptions_controller.rb.tt +2 -0
  62. data/lib/generators/seams/billing/templates/app/services/invoices/sync_service.rb.tt +8 -7
  63. data/lib/generators/seams/billing/templates/app/services/stripe_service.rb.tt +9 -7
  64. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_handler_base.rb.tt +18 -3
  65. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_handler_base.rb.tt +7 -21
  66. data/lib/generators/seams/billing/templates/lib/engine.rb.tt +15 -0
  67. data/lib/generators/seams/billing/templates/lib/gateways/stripe.rb.tt +10 -10
  68. data/lib/generators/seams/billing/templates/lib/stripe/client.rb.tt +40 -14
  69. data/lib/generators/seams/billing/templates/lib/stripe/payload.rb.tt +90 -0
  70. data/lib/generators/seams/billing/templates/lib/stripe/webhook_signature.rb.tt +11 -1
  71. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/charge_refunded.json.tt +1 -0
  72. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/checkout_session_completed.json.tt +1 -0
  73. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_created.json.tt +15 -4
  74. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_deleted.json.tt +7 -1
  75. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_trial_will_end.json.tt +18 -1
  76. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_updated.json.tt +26 -5
  77. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_created.json.tt +16 -2
  78. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_finalized.json.tt +16 -2
  79. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_paid.json.tt +17 -2
  80. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_payment_failed.json.tt +16 -2
  81. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_voided.json.tt +16 -2
  82. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_payment_failed.json.tt +1 -0
  83. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_succeeded.json.tt +1 -0
  84. data/lib/generators/seams/billing/templates/spec/gateways/stripe_spec.rb.tt +47 -1
  85. data/lib/generators/seams/billing/templates/spec/runtime/webhook_handlers_spec.rb.tt +39 -1
  86. data/lib/generators/seams/design/design_generator.rb +647 -0
  87. data/lib/generators/seams/design/templates/README.md.tt +129 -0
  88. data/lib/generators/seams/design/templates/app/assets/tailwind/_tokens.css +322 -0
  89. data/lib/generators/seams/design/templates/app/assets/tailwind/themes/_quire.css +42 -0
  90. data/lib/generators/seams/design/templates/app/controllers/design/dashboard_controller.rb.tt +30 -0
  91. data/lib/generators/seams/design/templates/app/controllers/design/guide_controller.rb.tt +28 -0
  92. data/lib/generators/seams/design/templates/app/form_builders/design/form_builder.rb.tt +90 -0
  93. data/lib/generators/seams/design/templates/app/helpers/design/ui_helper.rb.tt +37 -0
  94. data/lib/generators/seams/design/templates/app/views/design/dashboard/index.html.erb.tt +38 -0
  95. data/lib/generators/seams/design/templates/app/views/design/guide/index.html.erb.tt +19 -0
  96. data/lib/generators/seams/design/templates/app/views/layouts/application.html.erb.tt +61 -0
  97. data/lib/generators/seams/design/templates/app/views/layouts/design/guide.html.erb.tt +21 -0
  98. data/lib/generators/seams/design/templates/app/views/ui/_banner.html.erb.tt +10 -0
  99. data/lib/generators/seams/design/templates/app/views/ui/_breadcrumb.html.erb.tt +8 -0
  100. data/lib/generators/seams/design/templates/app/views/ui/_build_row.html.erb.tt +14 -0
  101. data/lib/generators/seams/design/templates/app/views/ui/_button.html.erb.tt +4 -0
  102. data/lib/generators/seams/design/templates/app/views/ui/_card.html.erb.tt +2 -0
  103. data/lib/generators/seams/design/templates/app/views/ui/_chapter_row.html.erb.tt +11 -0
  104. data/lib/generators/seams/design/templates/app/views/ui/_checkbox.html.erb.tt +12 -0
  105. data/lib/generators/seams/design/templates/app/views/ui/_counter.html.erb.tt +2 -0
  106. data/lib/generators/seams/design/templates/app/views/ui/_data_table.html.erb.tt +25 -0
  107. data/lib/generators/seams/design/templates/app/views/ui/_dialog.html.erb.tt +14 -0
  108. data/lib/generators/seams/design/templates/app/views/ui/_diff.html.erb.tt +12 -0
  109. data/lib/generators/seams/design/templates/app/views/ui/_drawer.html.erb.tt +7 -0
  110. data/lib/generators/seams/design/templates/app/views/ui/_empty.html.erb.tt +5 -0
  111. data/lib/generators/seams/design/templates/app/views/ui/_field.html.erb.tt +14 -0
  112. data/lib/generators/seams/design/templates/app/views/ui/_icon.html.erb.tt +2 -0
  113. data/lib/generators/seams/design/templates/app/views/ui/_icon_sprite.html.erb.tt +22 -0
  114. data/lib/generators/seams/design/templates/app/views/ui/_input_group.html.erb.tt +11 -0
  115. data/lib/generators/seams/design/templates/app/views/ui/_kbd.html.erb.tt +4 -0
  116. data/lib/generators/seams/design/templates/app/views/ui/_menu.html.erb.tt +18 -0
  117. data/lib/generators/seams/design/templates/app/views/ui/_meter.html.erb.tt +15 -0
  118. data/lib/generators/seams/design/templates/app/views/ui/_note.html.erb.tt +2 -0
  119. data/lib/generators/seams/design/templates/app/views/ui/_outline.html.erb.tt +9 -0
  120. data/lib/generators/seams/design/templates/app/views/ui/_pagination.html.erb.tt +12 -0
  121. data/lib/generators/seams/design/templates/app/views/ui/_panel.html.erb.tt +2 -0
  122. data/lib/generators/seams/design/templates/app/views/ui/_popover.html.erb.tt +2 -0
  123. data/lib/generators/seams/design/templates/app/views/ui/_radio.html.erb.tt +5 -0
  124. data/lib/generators/seams/design/templates/app/views/ui/_savestate.html.erb.tt +5 -0
  125. data/lib/generators/seams/design/templates/app/views/ui/_segmented.html.erb.tt +7 -0
  126. data/lib/generators/seams/design/templates/app/views/ui/_stepper.html.erb.tt +12 -0
  127. data/lib/generators/seams/design/templates/app/views/ui/_switch.html.erb.tt +6 -0
  128. data/lib/generators/seams/design/templates/app/views/ui/_tag.html.erb.tt +2 -0
  129. data/lib/generators/seams/design/templates/app/views/ui/_toast.html.erb.tt +12 -0
  130. data/lib/generators/seams/design/templates/app/views/ui/_toolbar.html.erb.tt +15 -0
  131. data/lib/generators/seams/design/templates/app/views/ui/previews/_banner.html.erb.tt +8 -0
  132. data/lib/generators/seams/design/templates/app/views/ui/previews/_breadcrumb.html.erb.tt +5 -0
  133. data/lib/generators/seams/design/templates/app/views/ui/previews/_build_row.html.erb.tt +6 -0
  134. data/lib/generators/seams/design/templates/app/views/ui/previews/_button.html.erb.tt +9 -0
  135. data/lib/generators/seams/design/templates/app/views/ui/previews/_card.html.erb.tt +12 -0
  136. data/lib/generators/seams/design/templates/app/views/ui/previews/_chapter_row.html.erb.tt +6 -0
  137. data/lib/generators/seams/design/templates/app/views/ui/previews/_checkbox.html.erb.tt +6 -0
  138. data/lib/generators/seams/design/templates/app/views/ui/previews/_counter.html.erb.tt +6 -0
  139. data/lib/generators/seams/design/templates/app/views/ui/previews/_data_table.html.erb.tt +14 -0
  140. data/lib/generators/seams/design/templates/app/views/ui/previews/_dialog.html.erb.tt +8 -0
  141. data/lib/generators/seams/design/templates/app/views/ui/previews/_diff.html.erb.tt +10 -0
  142. data/lib/generators/seams/design/templates/app/views/ui/previews/_drawer.html.erb.tt +5 -0
  143. data/lib/generators/seams/design/templates/app/views/ui/previews/_empty.html.erb.tt +5 -0
  144. data/lib/generators/seams/design/templates/app/views/ui/previews/_field.html.erb.tt +5 -0
  145. data/lib/generators/seams/design/templates/app/views/ui/previews/_input_group.html.erb.tt +5 -0
  146. data/lib/generators/seams/design/templates/app/views/ui/previews/_kbd.html.erb.tt +5 -0
  147. data/lib/generators/seams/design/templates/app/views/ui/previews/_menu.html.erb.tt +9 -0
  148. data/lib/generators/seams/design/templates/app/views/ui/previews/_meter.html.erb.tt +6 -0
  149. data/lib/generators/seams/design/templates/app/views/ui/previews/_note.html.erb.tt +2 -0
  150. data/lib/generators/seams/design/templates/app/views/ui/previews/_outline.html.erb.tt +8 -0
  151. data/lib/generators/seams/design/templates/app/views/ui/previews/_pagination.html.erb.tt +5 -0
  152. data/lib/generators/seams/design/templates/app/views/ui/previews/_panel.html.erb.tt +5 -0
  153. data/lib/generators/seams/design/templates/app/views/ui/previews/_popover.html.erb.tt +2 -0
  154. data/lib/generators/seams/design/templates/app/views/ui/previews/_radio.html.erb.tt +6 -0
  155. data/lib/generators/seams/design/templates/app/views/ui/previews/_savestate.html.erb.tt +4 -0
  156. data/lib/generators/seams/design/templates/app/views/ui/previews/_segmented.html.erb.tt +15 -0
  157. data/lib/generators/seams/design/templates/app/views/ui/previews/_stepper.html.erb.tt +6 -0
  158. data/lib/generators/seams/design/templates/app/views/ui/previews/_switch.html.erb.tt +5 -0
  159. data/lib/generators/seams/design/templates/app/views/ui/previews/_tag.html.erb.tt +8 -0
  160. data/lib/generators/seams/design/templates/app/views/ui/previews/_toast.html.erb.tt +6 -0
  161. data/lib/generators/seams/design/templates/app/views/ui/previews/_toolbar.html.erb.tt +11 -0
  162. data/lib/generators/seams/design/templates/lib/design/components.rb.tt +22 -0
  163. data/lib/generators/seams/design/templates/lib/design.rb.tt +18 -0
  164. data/lib/generators/seams/design/templates/lib/engine.rb.tt +38 -0
  165. data/lib/generators/seams/design/templates/lib/generators/design/component/component_generator.rb.tt +52 -0
  166. data/lib/generators/seams/design/templates/lib/generators/design/component/templates/component.html.erb.tt +5 -0
  167. data/lib/generators/seams/design/templates/lib/generators/design/component/templates/preview.html.erb.tt +3 -0
  168. data/lib/generators/seams/design/templates/spec/runtime/design_boot_spec.rb.tt +79 -0
  169. data/lib/generators/seams/design/templates/spec/runtime/form_builder_spec.rb.tt +97 -0
  170. data/lib/generators/seams/design/templates/spec/runtime/guide_spec.rb.tt +40 -0
  171. data/lib/generators/seams/design/templates/spec/runtime/ui_components_spec.rb.tt +70 -0
  172. data/lib/generators/seams/engine/engine_generator.rb +6 -0
  173. data/lib/generators/seams/engine/templates/Gemfile.tt +1 -1
  174. data/lib/generators/seams/engine/templates/app/application_controller.rb.tt +6 -0
  175. data/lib/generators/seams/engine/templates/rubocop.yml.tt +9 -0
  176. data/lib/generators/seams/install/install_generator.rb +72 -6
  177. data/lib/generators/seams/install/templates/Dockerfile.tt +2 -2
  178. data/lib/generators/seams/install/templates/bin_seams.tt +7 -4
  179. data/lib/generators/seams/install/templates/ci.yml.tt +18 -8
  180. data/lib/generators/seams/install/templates/deploy.yml.tt +4 -2
  181. data/lib/generators/seams/install/templates/doc/ARCHITECTURE.md.tt +1 -1
  182. data/lib/generators/seams/install/templates/docker-entrypoint.tt +4 -2
  183. data/lib/generators/seams/install/templates/herb.yml.tt +10 -0
  184. data/lib/generators/seams/install/templates/lefthook.yml.tt +25 -0
  185. data/lib/generators/seams/install/templates/ruby-version.tt +1 -1
  186. data/lib/generators/seams/install/templates/seams.rake.tt +13 -1
  187. data/lib/generators/seams/install/templates/strong_migrations.rb.tt +26 -0
  188. data/lib/generators/seams/notifications/notifications_generator.rb +3 -2
  189. data/lib/generators/seams/notifications/templates/app/controllers/preferences_controller.rb.tt +5 -13
  190. data/lib/generators/seams/notifications/templates/lib/engine.rb.tt +12 -0
  191. data/lib/generators/seams/notifications/templates/lib/notifications.rb.tt +1 -0
  192. data/lib/generators/seams/notifications/templates/lib/preferences.rb.tt +36 -0
  193. data/lib/generators/seams/permissions/permissions_generator.rb +97 -0
  194. data/lib/generators/seams/permissions/templates/config/initializers/seams_permissions.rb.tt +35 -0
  195. data/lib/generators/seams/teams/templates/app/controllers/invitations_controller.rb.tt +27 -11
  196. data/lib/generators/seams/teams/templates/app/controllers/teams_controller.rb.tt +5 -13
  197. data/lib/generators/seams/teams/templates/lib/concerns/authorization.rb.tt +2 -4
  198. data/lib/generators/seams/teams/templates/lib/engine.rb.tt +13 -0
  199. data/lib/seams/cli/list.rb +15 -0
  200. data/lib/seams/cli/quality.rb +46 -5
  201. data/lib/seams/cli/resolve.rb +9 -5
  202. data/lib/seams/cli/test_changed.rb +5 -1
  203. data/lib/seams/cli.rb +20 -0
  204. data/lib/seams/configuration.rb +24 -1
  205. data/lib/seams/cops/no_cross_engine_dependency.rb +39 -7
  206. data/lib/seams/cops/no_cross_engine_model_access.rb +79 -1
  207. data/lib/seams/event_registry.rb +19 -0
  208. data/lib/seams/events/adapter.rb +9 -0
  209. data/lib/seams/events/adapters/active_support.rb +4 -0
  210. data/lib/seams/events/publisher.rb +29 -0
  211. data/lib/seams/events.rb +1 -0
  212. data/lib/seams/generators/dummy_app_writer.rb +21 -0
  213. data/lib/seams/generators/follow_up_generator.rb +1 -2
  214. data/lib/seams/generators/host_injector.rb +9 -2
  215. data/lib/seams/generators/splicer.rb +2 -2
  216. data/lib/seams/observability/adapter.rb +22 -0
  217. data/lib/seams/observability.rb +6 -0
  218. data/lib/seams/permission_registry.rb +66 -0
  219. data/lib/seams/permissions.rb +120 -0
  220. data/lib/seams/version.rb +1 -1
  221. data/lib/seams.rb +7 -0
  222. metadata +107 -3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Silva
@@ -57,10 +57,12 @@ files:
57
57
  - README.md
58
58
  - lib/generators/seams/accounts/accounts_generator.rb
59
59
  - lib/generators/seams/accounts/templates/README.md.tt
60
+ - lib/generators/seams/accounts/templates/app/controllers/memberships_controller.rb.tt
60
61
  - lib/generators/seams/accounts/templates/app/models/account.rb.tt
61
62
  - lib/generators/seams/accounts/templates/app/models/application_record.rb.tt
62
63
  - lib/generators/seams/accounts/templates/app/models/current.rb.tt
63
64
  - lib/generators/seams/accounts/templates/app/models/membership.rb.tt
65
+ - lib/generators/seams/accounts/templates/app/views/memberships/index.html.erb.tt
64
66
  - lib/generators/seams/accounts/templates/config/routes.rb.tt
65
67
  - lib/generators/seams/accounts/templates/db/migrate/create_accounts.rb.tt
66
68
  - lib/generators/seams/accounts/templates/db/migrate/create_accounts_memberships.rb.tt
@@ -73,6 +75,8 @@ files:
73
75
  - lib/generators/seams/accounts/templates/spec/models/accounts/account_spec.rb.tt
74
76
  - lib/generators/seams/accounts/templates/spec/models/accounts/membership_spec.rb.tt
75
77
  - lib/generators/seams/accounts/templates/spec/runtime/accounts_boot_spec.rb.tt
78
+ - lib/generators/seams/accounts/templates/spec/runtime/authorization_spec.rb.tt
79
+ - lib/generators/seams/accounts/templates/spec/runtime/memberships_flow_spec.rb.tt
76
80
  - lib/generators/seams/admin/admin_generator.rb
77
81
  - lib/generators/seams/admin/templates/README.md.tt
78
82
  - lib/generators/seams/admin/templates/app/controllers/admin/accounts_controller.rb.tt
@@ -100,6 +104,9 @@ files:
100
104
  - lib/generators/seams/admin/templates/app/dashboards/admin/subscription_dashboard.rb.tt
101
105
  - lib/generators/seams/admin/templates/app/dashboards/admin/team_dashboard.rb.tt
102
106
  - lib/generators/seams/admin/templates/app/dashboards/admin/teams_membership_dashboard.rb.tt
107
+ - lib/generators/seams/admin/templates/app/fields/admin/fields/belongs_to.rb.tt
108
+ - lib/generators/seams/admin/templates/app/fields/admin/fields/dashboard_option.rb.tt
109
+ - lib/generators/seams/admin/templates/app/fields/admin/fields/has_many.rb.tt
103
110
  - lib/generators/seams/admin/templates/app/policies/admin/platform/account_policy.rb.tt
104
111
  - lib/generators/seams/admin/templates/app/policies/admin/platform/accounts_membership_policy.rb.tt
105
112
  - lib/generators/seams/admin/templates/app/policies/admin/platform/application_policy.rb.tt
@@ -126,6 +133,8 @@ files:
126
133
  - lib/generators/seams/admin/templates/app/policies/admin/tenant/subscription_policy.rb.tt
127
134
  - lib/generators/seams/admin/templates/app/policies/admin/tenant/team_policy.rb.tt
128
135
  - lib/generators/seams/admin/templates/app/policies/admin/tenant/teams_membership_policy.rb.tt
136
+ - lib/generators/seams/admin/templates/app/views/seams/admin/application/_index_header.html.erb.tt
137
+ - lib/generators/seams/admin/templates/app/views/seams/admin/application/_navigation.html.erb.tt
129
138
  - lib/generators/seams/admin/templates/config/routes.rb.tt
130
139
  - lib/generators/seams/admin/templates/lib/admin.rb.tt
131
140
  - lib/generators/seams/admin/templates/lib/concerns/authenticator.rb.tt
@@ -261,6 +270,7 @@ files:
261
270
  - lib/generators/seams/billing/templates/lib/gateways/paddle.rb.tt
262
271
  - lib/generators/seams/billing/templates/lib/gateways/stripe.rb.tt
263
272
  - lib/generators/seams/billing/templates/lib/stripe/client.rb.tt
273
+ - lib/generators/seams/billing/templates/lib/stripe/payload.rb.tt
264
274
  - lib/generators/seams/billing/templates/lib/stripe/webhook_signature.rb.tt
265
275
  - lib/generators/seams/billing/templates/lib/tasks/billing_check.rake.tt
266
276
  - lib/generators/seams/billing/templates/spec/factories/billing.rb.tt
@@ -305,6 +315,92 @@ files:
305
315
  - lib/generators/seams/core/templates/spec/models/audit_log_spec.rb.tt
306
316
  - lib/generators/seams/core/templates/spec/runtime/boot_spec.rb.tt
307
317
  - lib/generators/seams/core/templates/spec/validators/email_format_validator_spec.rb.tt
318
+ - lib/generators/seams/design/design_generator.rb
319
+ - lib/generators/seams/design/templates/README.md.tt
320
+ - lib/generators/seams/design/templates/app/assets/tailwind/_tokens.css
321
+ - lib/generators/seams/design/templates/app/assets/tailwind/themes/_quire.css
322
+ - lib/generators/seams/design/templates/app/controllers/design/dashboard_controller.rb.tt
323
+ - lib/generators/seams/design/templates/app/controllers/design/guide_controller.rb.tt
324
+ - lib/generators/seams/design/templates/app/form_builders/design/form_builder.rb.tt
325
+ - lib/generators/seams/design/templates/app/helpers/design/ui_helper.rb.tt
326
+ - lib/generators/seams/design/templates/app/views/design/dashboard/index.html.erb.tt
327
+ - lib/generators/seams/design/templates/app/views/design/guide/index.html.erb.tt
328
+ - lib/generators/seams/design/templates/app/views/layouts/application.html.erb.tt
329
+ - lib/generators/seams/design/templates/app/views/layouts/design/guide.html.erb.tt
330
+ - lib/generators/seams/design/templates/app/views/ui/_banner.html.erb.tt
331
+ - lib/generators/seams/design/templates/app/views/ui/_breadcrumb.html.erb.tt
332
+ - lib/generators/seams/design/templates/app/views/ui/_build_row.html.erb.tt
333
+ - lib/generators/seams/design/templates/app/views/ui/_button.html.erb.tt
334
+ - lib/generators/seams/design/templates/app/views/ui/_card.html.erb.tt
335
+ - lib/generators/seams/design/templates/app/views/ui/_chapter_row.html.erb.tt
336
+ - lib/generators/seams/design/templates/app/views/ui/_checkbox.html.erb.tt
337
+ - lib/generators/seams/design/templates/app/views/ui/_counter.html.erb.tt
338
+ - lib/generators/seams/design/templates/app/views/ui/_data_table.html.erb.tt
339
+ - lib/generators/seams/design/templates/app/views/ui/_dialog.html.erb.tt
340
+ - lib/generators/seams/design/templates/app/views/ui/_diff.html.erb.tt
341
+ - lib/generators/seams/design/templates/app/views/ui/_drawer.html.erb.tt
342
+ - lib/generators/seams/design/templates/app/views/ui/_empty.html.erb.tt
343
+ - lib/generators/seams/design/templates/app/views/ui/_field.html.erb.tt
344
+ - lib/generators/seams/design/templates/app/views/ui/_icon.html.erb.tt
345
+ - lib/generators/seams/design/templates/app/views/ui/_icon_sprite.html.erb.tt
346
+ - lib/generators/seams/design/templates/app/views/ui/_input_group.html.erb.tt
347
+ - lib/generators/seams/design/templates/app/views/ui/_kbd.html.erb.tt
348
+ - lib/generators/seams/design/templates/app/views/ui/_menu.html.erb.tt
349
+ - lib/generators/seams/design/templates/app/views/ui/_meter.html.erb.tt
350
+ - lib/generators/seams/design/templates/app/views/ui/_note.html.erb.tt
351
+ - lib/generators/seams/design/templates/app/views/ui/_outline.html.erb.tt
352
+ - lib/generators/seams/design/templates/app/views/ui/_pagination.html.erb.tt
353
+ - lib/generators/seams/design/templates/app/views/ui/_panel.html.erb.tt
354
+ - lib/generators/seams/design/templates/app/views/ui/_popover.html.erb.tt
355
+ - lib/generators/seams/design/templates/app/views/ui/_radio.html.erb.tt
356
+ - lib/generators/seams/design/templates/app/views/ui/_savestate.html.erb.tt
357
+ - lib/generators/seams/design/templates/app/views/ui/_segmented.html.erb.tt
358
+ - lib/generators/seams/design/templates/app/views/ui/_stepper.html.erb.tt
359
+ - lib/generators/seams/design/templates/app/views/ui/_switch.html.erb.tt
360
+ - lib/generators/seams/design/templates/app/views/ui/_tag.html.erb.tt
361
+ - lib/generators/seams/design/templates/app/views/ui/_toast.html.erb.tt
362
+ - lib/generators/seams/design/templates/app/views/ui/_toolbar.html.erb.tt
363
+ - lib/generators/seams/design/templates/app/views/ui/previews/_banner.html.erb.tt
364
+ - lib/generators/seams/design/templates/app/views/ui/previews/_breadcrumb.html.erb.tt
365
+ - lib/generators/seams/design/templates/app/views/ui/previews/_build_row.html.erb.tt
366
+ - lib/generators/seams/design/templates/app/views/ui/previews/_button.html.erb.tt
367
+ - lib/generators/seams/design/templates/app/views/ui/previews/_card.html.erb.tt
368
+ - lib/generators/seams/design/templates/app/views/ui/previews/_chapter_row.html.erb.tt
369
+ - lib/generators/seams/design/templates/app/views/ui/previews/_checkbox.html.erb.tt
370
+ - lib/generators/seams/design/templates/app/views/ui/previews/_counter.html.erb.tt
371
+ - lib/generators/seams/design/templates/app/views/ui/previews/_data_table.html.erb.tt
372
+ - lib/generators/seams/design/templates/app/views/ui/previews/_dialog.html.erb.tt
373
+ - lib/generators/seams/design/templates/app/views/ui/previews/_diff.html.erb.tt
374
+ - lib/generators/seams/design/templates/app/views/ui/previews/_drawer.html.erb.tt
375
+ - lib/generators/seams/design/templates/app/views/ui/previews/_empty.html.erb.tt
376
+ - lib/generators/seams/design/templates/app/views/ui/previews/_field.html.erb.tt
377
+ - lib/generators/seams/design/templates/app/views/ui/previews/_input_group.html.erb.tt
378
+ - lib/generators/seams/design/templates/app/views/ui/previews/_kbd.html.erb.tt
379
+ - lib/generators/seams/design/templates/app/views/ui/previews/_menu.html.erb.tt
380
+ - lib/generators/seams/design/templates/app/views/ui/previews/_meter.html.erb.tt
381
+ - lib/generators/seams/design/templates/app/views/ui/previews/_note.html.erb.tt
382
+ - lib/generators/seams/design/templates/app/views/ui/previews/_outline.html.erb.tt
383
+ - lib/generators/seams/design/templates/app/views/ui/previews/_pagination.html.erb.tt
384
+ - lib/generators/seams/design/templates/app/views/ui/previews/_panel.html.erb.tt
385
+ - lib/generators/seams/design/templates/app/views/ui/previews/_popover.html.erb.tt
386
+ - lib/generators/seams/design/templates/app/views/ui/previews/_radio.html.erb.tt
387
+ - lib/generators/seams/design/templates/app/views/ui/previews/_savestate.html.erb.tt
388
+ - lib/generators/seams/design/templates/app/views/ui/previews/_segmented.html.erb.tt
389
+ - lib/generators/seams/design/templates/app/views/ui/previews/_stepper.html.erb.tt
390
+ - lib/generators/seams/design/templates/app/views/ui/previews/_switch.html.erb.tt
391
+ - lib/generators/seams/design/templates/app/views/ui/previews/_tag.html.erb.tt
392
+ - lib/generators/seams/design/templates/app/views/ui/previews/_toast.html.erb.tt
393
+ - lib/generators/seams/design/templates/app/views/ui/previews/_toolbar.html.erb.tt
394
+ - lib/generators/seams/design/templates/lib/design.rb.tt
395
+ - lib/generators/seams/design/templates/lib/design/components.rb.tt
396
+ - lib/generators/seams/design/templates/lib/engine.rb.tt
397
+ - lib/generators/seams/design/templates/lib/generators/design/component/component_generator.rb.tt
398
+ - lib/generators/seams/design/templates/lib/generators/design/component/templates/component.html.erb.tt
399
+ - lib/generators/seams/design/templates/lib/generators/design/component/templates/preview.html.erb.tt
400
+ - lib/generators/seams/design/templates/spec/runtime/design_boot_spec.rb.tt
401
+ - lib/generators/seams/design/templates/spec/runtime/form_builder_spec.rb.tt
402
+ - lib/generators/seams/design/templates/spec/runtime/guide_spec.rb.tt
403
+ - lib/generators/seams/design/templates/spec/runtime/ui_components_spec.rb.tt
308
404
  - lib/generators/seams/engine/engine_generator.rb
309
405
  - lib/generators/seams/engine/templates/Gemfile.tt
310
406
  - lib/generators/seams/engine/templates/LICENSE.tt
@@ -330,6 +426,8 @@ files:
330
426
  - lib/generators/seams/install/templates/deploy.yml.tt
331
427
  - lib/generators/seams/install/templates/doc/ARCHITECTURE.md.tt
332
428
  - lib/generators/seams/install/templates/docker-entrypoint.tt
429
+ - lib/generators/seams/install/templates/herb.yml.tt
430
+ - lib/generators/seams/install/templates/lefthook.yml.tt
333
431
  - lib/generators/seams/install/templates/rubocop.yml.tt
334
432
  - lib/generators/seams/install/templates/ruby-version.tt
335
433
  - lib/generators/seams/install/templates/script/collate_coverage.rb.tt
@@ -337,6 +435,7 @@ files:
337
435
  - lib/generators/seams/install/templates/seams.rake.tt
338
436
  - lib/generators/seams/install/templates/seams.rb.tt
339
437
  - lib/generators/seams/install/templates/seams_engines.rb.tt
438
+ - lib/generators/seams/install/templates/strong_migrations.rb.tt
340
439
  - lib/generators/seams/notifications/notifications_generator.rb
341
440
  - lib/generators/seams/notifications/templates/README.md.tt
342
441
  - lib/generators/seams/notifications/templates/app/channels/notification_channel.rb.tt
@@ -392,6 +491,7 @@ files:
392
491
  - lib/generators/seams/notifications/templates/lib/configuration.rb.tt
393
492
  - lib/generators/seams/notifications/templates/lib/engine.rb.tt
394
493
  - lib/generators/seams/notifications/templates/lib/notifications.rb.tt
494
+ - lib/generators/seams/notifications/templates/lib/preferences.rb.tt
395
495
  - lib/generators/seams/notifications/templates/lib/type_registry.rb.tt
396
496
  - lib/generators/seams/notifications/templates/spec/factories/notifications.rb.tt
397
497
  - lib/generators/seams/notifications/templates/spec/models/delivery_spec.rb.tt
@@ -401,6 +501,8 @@ files:
401
501
  - lib/generators/seams/notifications/templates/spec/runtime/billing_subscriber_skip_spec.rb.tt
402
502
  - lib/generators/seams/notifications/templates/spec/runtime/boot_spec.rb.tt
403
503
  - lib/generators/seams/notifications/templates/spec/runtime/schedule_round_trip_spec.rb.tt
504
+ - lib/generators/seams/permissions/permissions_generator.rb
505
+ - lib/generators/seams/permissions/templates/config/initializers/seams_permissions.rb.tt
404
506
  - lib/generators/seams/remove/remove_generator.rb
405
507
  - lib/generators/seams/teams/teams_generator.rb
406
508
  - lib/generators/seams/teams/templates/README.md.tt
@@ -462,6 +564,8 @@ files:
462
564
  - lib/seams/observability.rb
463
565
  - lib/seams/observability/adapter.rb
464
566
  - lib/seams/observability/adapters/rails_logger.rb
567
+ - lib/seams/permission_registry.rb
568
+ - lib/seams/permissions.rb
465
569
  - lib/seams/runtime.rb
466
570
  - lib/seams/version.rb
467
571
  homepage: https://davidslv.uk/modular-rails/
@@ -480,14 +584,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
480
584
  requirements:
481
585
  - - ">="
482
586
  - !ruby/object:Gem::Version
483
- version: 4.0.0
587
+ version: 3.3.0
484
588
  required_rubygems_version: !ruby/object:Gem::Requirement
485
589
  requirements:
486
590
  - - ">="
487
591
  - !ruby/object:Gem::Version
488
592
  version: '0'
489
593
  requirements: []
490
- rubygems_version: 4.0.6
594
+ rubygems_version: 4.0.20
491
595
  specification_version: 4
492
596
  summary: CLI framework that generates modular Rails engines.
493
597
  test_files: []