seams 0.1.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 (414) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +335 -0
  3. data/LICENSE +21 -0
  4. data/README.md +104 -0
  5. data/lib/generators/seams/accounts/accounts_generator.rb +272 -0
  6. data/lib/generators/seams/accounts/templates/README.md.tt +219 -0
  7. data/lib/generators/seams/accounts/templates/app/models/account.rb.tt +124 -0
  8. data/lib/generators/seams/accounts/templates/app/models/application_record.rb.tt +7 -0
  9. data/lib/generators/seams/accounts/templates/app/models/current.rb.tt +38 -0
  10. data/lib/generators/seams/accounts/templates/app/models/membership.rb.tt +114 -0
  11. data/lib/generators/seams/accounts/templates/config/routes.rb.tt +8 -0
  12. data/lib/generators/seams/accounts/templates/db/migrate/create_accounts.rb.tt +29 -0
  13. data/lib/generators/seams/accounts/templates/db/migrate/create_accounts_memberships.rb.tt +49 -0
  14. data/lib/generators/seams/accounts/templates/lib/accounts.rb.tt +21 -0
  15. data/lib/generators/seams/accounts/templates/lib/concerns/account_scoped.rb.tt +97 -0
  16. data/lib/generators/seams/accounts/templates/lib/concerns/authorization.rb.tt +105 -0
  17. data/lib/generators/seams/accounts/templates/lib/configuration.rb.tt +26 -0
  18. data/lib/generators/seams/accounts/templates/lib/engine.rb.tt +55 -0
  19. data/lib/generators/seams/accounts/templates/spec/factories/accounts.rb.tt +49 -0
  20. data/lib/generators/seams/accounts/templates/spec/models/accounts/account_spec.rb.tt +64 -0
  21. data/lib/generators/seams/accounts/templates/spec/models/accounts/membership_spec.rb.tt +99 -0
  22. data/lib/generators/seams/accounts/templates/spec/runtime/accounts_boot_spec.rb.tt +181 -0
  23. data/lib/generators/seams/admin/admin_generator.rb +852 -0
  24. data/lib/generators/seams/admin/templates/README.md.tt +266 -0
  25. data/lib/generators/seams/admin/templates/app/controllers/admin/accounts_controller.rb.tt +16 -0
  26. data/lib/generators/seams/admin/templates/app/controllers/admin/accounts_memberships_controller.rb.tt +16 -0
  27. data/lib/generators/seams/admin/templates/app/controllers/admin/application_controller.rb.tt +282 -0
  28. data/lib/generators/seams/admin/templates/app/controllers/admin/identities_controller.rb.tt +26 -0
  29. data/lib/generators/seams/admin/templates/app/controllers/admin/invitations_controller.rb.tt +14 -0
  30. data/lib/generators/seams/admin/templates/app/controllers/admin/invoices_controller.rb.tt +14 -0
  31. data/lib/generators/seams/admin/templates/app/controllers/admin/lifetime_passes_controller.rb.tt +14 -0
  32. data/lib/generators/seams/admin/templates/app/controllers/admin/notification_preferences_controller.rb.tt +15 -0
  33. data/lib/generators/seams/admin/templates/app/controllers/admin/notifications_controller.rb.tt +18 -0
  34. data/lib/generators/seams/admin/templates/app/controllers/admin/plans_controller.rb.tt +14 -0
  35. data/lib/generators/seams/admin/templates/app/controllers/admin/subscriptions_controller.rb.tt +14 -0
  36. data/lib/generators/seams/admin/templates/app/controllers/admin/teams_controller.rb.tt +14 -0
  37. data/lib/generators/seams/admin/templates/app/controllers/admin/teams_memberships_controller.rb.tt +16 -0
  38. data/lib/generators/seams/admin/templates/app/dashboards/admin/account_dashboard.rb.tt +50 -0
  39. data/lib/generators/seams/admin/templates/app/dashboards/admin/accounts_membership_dashboard.rb.tt +58 -0
  40. data/lib/generators/seams/admin/templates/app/dashboards/admin/identity_dashboard.rb.tt +48 -0
  41. data/lib/generators/seams/admin/templates/app/dashboards/admin/invitation_dashboard.rb.tt +51 -0
  42. data/lib/generators/seams/admin/templates/app/dashboards/admin/invoice_dashboard.rb.tt +67 -0
  43. data/lib/generators/seams/admin/templates/app/dashboards/admin/lifetime_pass_dashboard.rb.tt +65 -0
  44. data/lib/generators/seams/admin/templates/app/dashboards/admin/notification_dashboard.rb.tt +58 -0
  45. data/lib/generators/seams/admin/templates/app/dashboards/admin/notification_preference_dashboard.rb.tt +43 -0
  46. data/lib/generators/seams/admin/templates/app/dashboards/admin/plan_dashboard.rb.tt +72 -0
  47. data/lib/generators/seams/admin/templates/app/dashboards/admin/subscription_dashboard.rb.tt +59 -0
  48. data/lib/generators/seams/admin/templates/app/dashboards/admin/team_dashboard.rb.tt +39 -0
  49. data/lib/generators/seams/admin/templates/app/dashboards/admin/teams_membership_dashboard.rb.tt +43 -0
  50. data/lib/generators/seams/admin/templates/app/policies/admin/platform/account_policy.rb.tt +10 -0
  51. data/lib/generators/seams/admin/templates/app/policies/admin/platform/accounts_membership_policy.rb.tt +10 -0
  52. data/lib/generators/seams/admin/templates/app/policies/admin/platform/application_policy.rb.tt +85 -0
  53. data/lib/generators/seams/admin/templates/app/policies/admin/platform/identity_policy.rb.tt +18 -0
  54. data/lib/generators/seams/admin/templates/app/policies/admin/platform/invitation_policy.rb.tt +9 -0
  55. data/lib/generators/seams/admin/templates/app/policies/admin/platform/invoice_policy.rb.tt +9 -0
  56. data/lib/generators/seams/admin/templates/app/policies/admin/platform/lifetime_pass_policy.rb.tt +9 -0
  57. data/lib/generators/seams/admin/templates/app/policies/admin/platform/notification_policy.rb.tt +9 -0
  58. data/lib/generators/seams/admin/templates/app/policies/admin/platform/notification_preference_policy.rb.tt +9 -0
  59. data/lib/generators/seams/admin/templates/app/policies/admin/platform/plan_policy.rb.tt +11 -0
  60. data/lib/generators/seams/admin/templates/app/policies/admin/platform/subscription_policy.rb.tt +9 -0
  61. data/lib/generators/seams/admin/templates/app/policies/admin/platform/team_policy.rb.tt +9 -0
  62. data/lib/generators/seams/admin/templates/app/policies/admin/platform/teams_membership_policy.rb.tt +9 -0
  63. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/account_policy.rb.tt +33 -0
  64. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/accounts_membership_policy.rb.tt +24 -0
  65. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/application_policy.rb.tt +169 -0
  66. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/identity_policy.rb.tt +67 -0
  67. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/invitation_policy.rb.tt +24 -0
  68. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/invoice_policy.rb.tt +21 -0
  69. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/lifetime_pass_policy.rb.tt +21 -0
  70. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_policy.rb.tt +25 -0
  71. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_preference_policy.rb.tt +23 -0
  72. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/plan_policy.rb.tt +47 -0
  73. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/subscription_policy.rb.tt +22 -0
  74. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/team_policy.rb.tt +28 -0
  75. data/lib/generators/seams/admin/templates/app/policies/admin/tenant/teams_membership_policy.rb.tt +24 -0
  76. data/lib/generators/seams/admin/templates/config/routes.rb.tt +38 -0
  77. data/lib/generators/seams/admin/templates/lib/admin.rb.tt +36 -0
  78. data/lib/generators/seams/admin/templates/lib/concerns/authenticator.rb.tt +66 -0
  79. data/lib/generators/seams/admin/templates/lib/configuration.rb.tt +90 -0
  80. data/lib/generators/seams/admin/templates/lib/context.rb.tt +44 -0
  81. data/lib/generators/seams/admin/templates/lib/engine.rb.tt +68 -0
  82. data/lib/generators/seams/admin/templates/spec/factories/admin.rb.tt +10 -0
  83. data/lib/generators/seams/admin/templates/spec/runtime/admin_boot_spec.rb.tt +604 -0
  84. data/lib/generators/seams/auth/add_oauth_provider/add_oauth_provider_generator.rb +157 -0
  85. data/lib/generators/seams/auth/add_oauth_provider/templates/adapter.rb.tt +95 -0
  86. data/lib/generators/seams/auth/add_oauth_provider/templates/adapter_spec.rb.tt +58 -0
  87. data/lib/generators/seams/auth/auth_generator.rb +311 -0
  88. data/lib/generators/seams/auth/templates/README.md.tt +289 -0
  89. data/lib/generators/seams/auth/templates/app/controllers/oauth/callbacks_controller.rb.tt +80 -0
  90. data/lib/generators/seams/auth/templates/app/controllers/password_resets_controller.rb.tt +44 -0
  91. data/lib/generators/seams/auth/templates/app/controllers/registrations_controller.rb.tt +34 -0
  92. data/lib/generators/seams/auth/templates/app/controllers/sessions_controller.rb.tt +49 -0
  93. data/lib/generators/seams/auth/templates/app/jobs/application_job.rb.tt +7 -0
  94. data/lib/generators/seams/auth/templates/app/jobs/cleanup_expired_sessions_job.rb.tt +30 -0
  95. data/lib/generators/seams/auth/templates/app/mailers/passwords_mailer.rb.tt +15 -0
  96. data/lib/generators/seams/auth/templates/app/models/api_token.rb.tt +62 -0
  97. data/lib/generators/seams/auth/templates/app/models/application_record.rb.tt +7 -0
  98. data/lib/generators/seams/auth/templates/app/models/current.rb.tt +15 -0
  99. data/lib/generators/seams/auth/templates/app/models/identity.rb.tt +74 -0
  100. data/lib/generators/seams/auth/templates/app/models/oauth/provider.rb.tt +48 -0
  101. data/lib/generators/seams/auth/templates/app/models/session.rb.tt +28 -0
  102. data/lib/generators/seams/auth/templates/app/services/authenticate_identity.rb.tt +31 -0
  103. data/lib/generators/seams/auth/templates/app/services/generate_api_token.rb.tt +35 -0
  104. data/lib/generators/seams/auth/templates/app/services/oauth/authenticator.rb.tt +94 -0
  105. data/lib/generators/seams/auth/templates/app/services/register_identity.rb.tt +57 -0
  106. data/lib/generators/seams/auth/templates/app/services/reset_password.rb.tt +41 -0
  107. data/lib/generators/seams/auth/templates/app/services/revoke_api_token.rb.tt +38 -0
  108. data/lib/generators/seams/auth/templates/app/views/password_resets/edit.html.erb.tt +12 -0
  109. data/lib/generators/seams/auth/templates/app/views/password_resets/new.html.erb.tt +11 -0
  110. data/lib/generators/seams/auth/templates/app/views/passwords_mailer/reset_email.html.erb.tt +7 -0
  111. data/lib/generators/seams/auth/templates/app/views/registrations/new.html.erb.tt +26 -0
  112. data/lib/generators/seams/auth/templates/app/views/sessions/_oauth_buttons.html.erb.tt +18 -0
  113. data/lib/generators/seams/auth/templates/app/views/sessions/new.html.erb.tt +17 -0
  114. data/lib/generators/seams/auth/templates/config/routes.rb.tt +21 -0
  115. data/lib/generators/seams/auth/templates/db/migrate/create_auth_api_tokens.rb.tt +26 -0
  116. data/lib/generators/seams/auth/templates/db/migrate/create_auth_identities.rb.tt +29 -0
  117. data/lib/generators/seams/auth/templates/db/migrate/create_auth_oauth_providers.rb.tt +35 -0
  118. data/lib/generators/seams/auth/templates/db/migrate/create_auth_sessions.rb.tt +19 -0
  119. data/lib/generators/seams/auth/templates/lib/auth.rb.tt +39 -0
  120. data/lib/generators/seams/auth/templates/lib/concerns/api_authenticatable.rb.tt +58 -0
  121. data/lib/generators/seams/auth/templates/lib/concerns/authenticatable.rb.tt +32 -0
  122. data/lib/generators/seams/auth/templates/lib/concerns/authentication.rb.tt +60 -0
  123. data/lib/generators/seams/auth/templates/lib/configuration.rb.tt +45 -0
  124. data/lib/generators/seams/auth/templates/lib/engine.rb.tt +46 -0
  125. data/lib/generators/seams/auth/templates/lib/oauth/abstract.rb.tt +87 -0
  126. data/lib/generators/seams/auth/templates/lib/oauth/github.rb.tt +112 -0
  127. data/lib/generators/seams/auth/templates/lib/oauth/google.rb.tt +78 -0
  128. data/lib/generators/seams/auth/templates/lib/tasks/auth_pii.rake.tt +68 -0
  129. data/lib/generators/seams/auth/templates/spec/factories/auth.rb.tt +38 -0
  130. data/lib/generators/seams/auth/templates/spec/mailers/passwords_mailer_spec.rb.tt +37 -0
  131. data/lib/generators/seams/auth/templates/spec/models/api_token_spec.rb.tt +84 -0
  132. data/lib/generators/seams/auth/templates/spec/models/identity_spec.rb.tt +56 -0
  133. data/lib/generators/seams/auth/templates/spec/models/oauth/provider_spec.rb.tt +64 -0
  134. data/lib/generators/seams/auth/templates/spec/models/session_spec.rb.tt +34 -0
  135. data/lib/generators/seams/auth/templates/spec/runtime/boot_spec.rb.tt +30 -0
  136. data/lib/generators/seams/auth/templates/spec/runtime/event_payload_spec.rb.tt +29 -0
  137. data/lib/generators/seams/auth/templates/spec/runtime/login_flow_spec.rb.tt +45 -0
  138. data/lib/generators/seams/billing/billing_generator.rb +476 -0
  139. data/lib/generators/seams/billing/templates/README.md.tt +355 -0
  140. data/lib/generators/seams/billing/templates/app/controllers/admin/lifetime_passes_controller.rb.tt +84 -0
  141. data/lib/generators/seams/billing/templates/app/controllers/checkout_controller.rb.tt +92 -0
  142. data/lib/generators/seams/billing/templates/app/controllers/invoices_controller.rb.tt +63 -0
  143. data/lib/generators/seams/billing/templates/app/controllers/plans_controller.rb.tt +14 -0
  144. data/lib/generators/seams/billing/templates/app/controllers/portal_controller.rb.tt +45 -0
  145. data/lib/generators/seams/billing/templates/app/controllers/subscriptions_controller.rb.tt +119 -0
  146. data/lib/generators/seams/billing/templates/app/controllers/webhooks_controller.rb.tt +98 -0
  147. data/lib/generators/seams/billing/templates/app/helpers/currency_helper.rb.tt +44 -0
  148. data/lib/generators/seams/billing/templates/app/jobs/application_job.rb.tt +6 -0
  149. data/lib/generators/seams/billing/templates/app/jobs/cancel_subscription_job.rb.tt +39 -0
  150. data/lib/generators/seams/billing/templates/app/jobs/start_subscription_job.rb.tt +32 -0
  151. data/lib/generators/seams/billing/templates/app/jobs/webhooks/process_event_job.rb.tt +37 -0
  152. data/lib/generators/seams/billing/templates/app/models/application_record.rb.tt +7 -0
  153. data/lib/generators/seams/billing/templates/app/models/invoice.rb.tt +35 -0
  154. data/lib/generators/seams/billing/templates/app/models/lifetime_pass.rb.tt +60 -0
  155. data/lib/generators/seams/billing/templates/app/models/plan.rb.tt +95 -0
  156. data/lib/generators/seams/billing/templates/app/models/subscription.rb.tt +31 -0
  157. data/lib/generators/seams/billing/templates/app/models/webhook_event.rb.tt +13 -0
  158. data/lib/generators/seams/billing/templates/app/services/checkout_session_service.rb.tt +25 -0
  159. data/lib/generators/seams/billing/templates/app/services/customers/find_or_create_service.rb.tt +73 -0
  160. data/lib/generators/seams/billing/templates/app/services/invoices/sync_service.rb.tt +50 -0
  161. data/lib/generators/seams/billing/templates/app/services/lifetime/create_lifetime_session_service.rb.tt +82 -0
  162. data/lib/generators/seams/billing/templates/app/services/lifetime/create_pass_from_checkout_service.rb.tt +88 -0
  163. data/lib/generators/seams/billing/templates/app/services/lifetime/grant_pass_service.rb.tt +80 -0
  164. data/lib/generators/seams/billing/templates/app/services/lifetime/revoke_pass_service.rb.tt +59 -0
  165. data/lib/generators/seams/billing/templates/app/services/portal_session_service.rb.tt +23 -0
  166. data/lib/generators/seams/billing/templates/app/services/service_result.rb.tt +38 -0
  167. data/lib/generators/seams/billing/templates/app/services/stripe_service.rb.tt +67 -0
  168. data/lib/generators/seams/billing/templates/app/services/subscriptions/cancel_service.rb.tt +42 -0
  169. data/lib/generators/seams/billing/templates/app/services/subscriptions/change_plan_service.rb.tt +48 -0
  170. data/lib/generators/seams/billing/templates/app/services/subscriptions/reactivate_service.rb.tt +28 -0
  171. data/lib/generators/seams/billing/templates/app/services/webhooks/event_router.rb.tt +54 -0
  172. data/lib/generators/seams/billing/templates/app/services/webhooks/handler.rb.tt +93 -0
  173. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/charge_refunded_handler.rb.tt +18 -0
  174. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/checkout_session_completed_handler.rb.tt +58 -0
  175. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_created_handler.rb.tt +16 -0
  176. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_finalized_handler.rb.tt +14 -0
  177. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_handler_base.rb.tt +80 -0
  178. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_paid_handler.rb.tt +12 -0
  179. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_payment_failed_handler.rb.tt +12 -0
  180. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_voided_handler.rb.tt +12 -0
  181. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/payment_failed_handler.rb.tt +15 -0
  182. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/payment_succeeded_handler.rb.tt +19 -0
  183. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_created_handler.rb.tt +11 -0
  184. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_deleted_handler.rb.tt +15 -0
  185. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_handler_base.rb.tt +92 -0
  186. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_trial_will_end_handler.rb.tt +15 -0
  187. data/lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_updated_handler.rb.tt +11 -0
  188. data/lib/generators/seams/billing/templates/app/views/admin/lifetime_passes/index.html.erb.tt +36 -0
  189. data/lib/generators/seams/billing/templates/app/views/admin/lifetime_passes/new.html.erb.tt +37 -0
  190. data/lib/generators/seams/billing/templates/app/views/checkout/success.html.erb.tt +5 -0
  191. data/lib/generators/seams/billing/templates/app/views/invoices/index.html.erb.tt +22 -0
  192. data/lib/generators/seams/billing/templates/app/views/invoices/show.html.erb.tt +14 -0
  193. data/lib/generators/seams/billing/templates/app/views/plans/index.html.erb.tt +51 -0
  194. data/lib/generators/seams/billing/templates/app/views/subscriptions/index.html.erb.tt +16 -0
  195. data/lib/generators/seams/billing/templates/app/views/subscriptions/show.html.erb.tt +25 -0
  196. data/lib/generators/seams/billing/templates/config/routes.rb.tt +39 -0
  197. data/lib/generators/seams/billing/templates/db/migrate/create_billing_invoices.rb.tt +32 -0
  198. data/lib/generators/seams/billing/templates/db/migrate/create_billing_lifetime_passes.rb.tt +43 -0
  199. data/lib/generators/seams/billing/templates/db/migrate/create_billing_plans.rb.tt +31 -0
  200. data/lib/generators/seams/billing/templates/db/migrate/create_billing_subscriptions.rb.tt +33 -0
  201. data/lib/generators/seams/billing/templates/db/migrate/create_billing_webhook_events.rb.tt +24 -0
  202. data/lib/generators/seams/billing/templates/lib/billing.rb.tt +34 -0
  203. data/lib/generators/seams/billing/templates/lib/concerns/billable.rb.tt +100 -0
  204. data/lib/generators/seams/billing/templates/lib/configuration.rb.tt +52 -0
  205. data/lib/generators/seams/billing/templates/lib/engine.rb.tt +72 -0
  206. data/lib/generators/seams/billing/templates/lib/gateways/abstract.rb.tt +65 -0
  207. data/lib/generators/seams/billing/templates/lib/gateways/adyen.rb.tt +16 -0
  208. data/lib/generators/seams/billing/templates/lib/gateways/paddle.rb.tt +22 -0
  209. data/lib/generators/seams/billing/templates/lib/gateways/stripe.rb.tt +155 -0
  210. data/lib/generators/seams/billing/templates/lib/stripe/client.rb.tt +101 -0
  211. data/lib/generators/seams/billing/templates/lib/stripe/webhook_signature.rb.tt +43 -0
  212. data/lib/generators/seams/billing/templates/lib/tasks/billing_check.rake.tt +34 -0
  213. data/lib/generators/seams/billing/templates/spec/factories/billing.rb.tt +65 -0
  214. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/charge_refunded.json.tt +19 -0
  215. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/checkout_session_completed.json.tt +17 -0
  216. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_created.json.tt +25 -0
  217. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_deleted.json.tt +17 -0
  218. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_trial_will_end.json.tt +17 -0
  219. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_updated.json.tt +28 -0
  220. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_created.json.tt +18 -0
  221. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_finalized.json.tt +18 -0
  222. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_paid.json.tt +19 -0
  223. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_payment_failed.json.tt +20 -0
  224. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_voided.json.tt +18 -0
  225. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_payment_failed.json.tt +21 -0
  226. data/lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_succeeded.json.tt +17 -0
  227. data/lib/generators/seams/billing/templates/spec/gateways/contract_spec.rb.tt +11 -0
  228. data/lib/generators/seams/billing/templates/spec/gateways/stripe_spec.rb.tt +53 -0
  229. data/lib/generators/seams/billing/templates/spec/models/plan_spec.rb.tt +81 -0
  230. data/lib/generators/seams/billing/templates/spec/models/subscription_spec.rb.tt +43 -0
  231. data/lib/generators/seams/billing/templates/spec/runtime/boot_spec.rb.tt +38 -0
  232. data/lib/generators/seams/billing/templates/spec/runtime/webhook_handlers_spec.rb.tt +382 -0
  233. data/lib/generators/seams/billing/templates/spec/support/shared_examples/a_billing_gateway.rb.tt +100 -0
  234. data/lib/generators/seams/billing/templates/spec/support/stripe_helpers.rb.tt +59 -0
  235. data/lib/generators/seams/core/core_generator.rb +191 -0
  236. data/lib/generators/seams/core/templates/README.md.tt +45 -0
  237. data/lib/generators/seams/core/templates/app/controllers/concerns/has_current_attributes.rb.tt +71 -0
  238. data/lib/generators/seams/core/templates/app/models/application_record.rb.tt +7 -0
  239. data/lib/generators/seams/core/templates/app/models/audit_log.rb.tt +19 -0
  240. data/lib/generators/seams/core/templates/app/models/concerns/auditable.rb.tt +64 -0
  241. data/lib/generators/seams/core/templates/app/models/concerns/sluggable.rb.tt +53 -0
  242. data/lib/generators/seams/core/templates/app/models/concerns/soft_deletable.rb.tt +37 -0
  243. data/lib/generators/seams/core/templates/app/models/concerns/tenant_scoped.rb.tt +39 -0
  244. data/lib/generators/seams/core/templates/app/models/current.rb.tt +16 -0
  245. data/lib/generators/seams/core/templates/app/services/event_publisher.rb.tt +23 -0
  246. data/lib/generators/seams/core/templates/app/validators/email_format_validator.rb.tt +21 -0
  247. data/lib/generators/seams/core/templates/db/migrate/create_core_audit_logs.rb.tt +29 -0
  248. data/lib/generators/seams/core/templates/lib/core.rb.tt +8 -0
  249. data/lib/generators/seams/core/templates/lib/engine.rb.tt +28 -0
  250. data/lib/generators/seams/core/templates/spec/concerns/auditable_spec.rb.tt +39 -0
  251. data/lib/generators/seams/core/templates/spec/concerns/sluggable_spec.rb.tt +29 -0
  252. data/lib/generators/seams/core/templates/spec/models/audit_log_spec.rb.tt +22 -0
  253. data/lib/generators/seams/core/templates/spec/runtime/boot_spec.rb.tt +25 -0
  254. data/lib/generators/seams/core/templates/spec/validators/email_format_validator_spec.rb.tt +29 -0
  255. data/lib/generators/seams/engine/engine_generator.rb +165 -0
  256. data/lib/generators/seams/engine/templates/Gemfile.tt +19 -0
  257. data/lib/generators/seams/engine/templates/LICENSE.tt +21 -0
  258. data/lib/generators/seams/engine/templates/README.md.tt +40 -0
  259. data/lib/generators/seams/engine/templates/Rakefile.tt +14 -0
  260. data/lib/generators/seams/engine/templates/app/application_controller.rb.tt +6 -0
  261. data/lib/generators/seams/engine/templates/app/application_record.rb.tt +16 -0
  262. data/lib/generators/seams/engine/templates/config/locales/en.yml.tt +14 -0
  263. data/lib/generators/seams/engine/templates/config/routes.rb.tt +4 -0
  264. data/lib/generators/seams/engine/templates/gemspec.tt +20 -0
  265. data/lib/generators/seams/engine/templates/host_initializer.rb.tt +13 -0
  266. data/lib/generators/seams/engine/templates/lib/engine.rb.tt +27 -0
  267. data/lib/generators/seams/engine/templates/lib/root.rb.tt +7 -0
  268. data/lib/generators/seams/engine/templates/lib/version.rb.tt +5 -0
  269. data/lib/generators/seams/engine/templates/rubocop.yml.tt +55 -0
  270. data/lib/generators/seams/engine/templates/spec/example_spec.rb.tt +16 -0
  271. data/lib/generators/seams/engine/templates/spec/spec_helper.rb.tt +23 -0
  272. data/lib/generators/seams/install/install_generator.rb +211 -0
  273. data/lib/generators/seams/install/templates/Dockerfile.tt +52 -0
  274. data/lib/generators/seams/install/templates/Procfile.tt +14 -0
  275. data/lib/generators/seams/install/templates/bin_seams.tt +107 -0
  276. data/lib/generators/seams/install/templates/ci.yml.tt +123 -0
  277. data/lib/generators/seams/install/templates/deploy.yml.tt +63 -0
  278. data/lib/generators/seams/install/templates/doc/ARCHITECTURE.md.tt +86 -0
  279. data/lib/generators/seams/install/templates/docker-entrypoint.tt +27 -0
  280. data/lib/generators/seams/install/templates/rubocop.yml.tt +33 -0
  281. data/lib/generators/seams/install/templates/ruby-version.tt +1 -0
  282. data/lib/generators/seams/install/templates/script/collate_coverage.rb.tt +33 -0
  283. data/lib/generators/seams/install/templates/script/run_affected_tests.sh.tt +64 -0
  284. data/lib/generators/seams/install/templates/seams.rake.tt +65 -0
  285. data/lib/generators/seams/install/templates/seams.rb.tt +9 -0
  286. data/lib/generators/seams/install/templates/seams_engines.rb.tt +15 -0
  287. data/lib/generators/seams/notifications/notifications_generator.rb +395 -0
  288. data/lib/generators/seams/notifications/templates/README.md.tt +269 -0
  289. data/lib/generators/seams/notifications/templates/app/channels/notification_channel.rb.tt +36 -0
  290. data/lib/generators/seams/notifications/templates/app/controllers/notifications_controller.rb.tt +58 -0
  291. data/lib/generators/seams/notifications/templates/app/controllers/preferences_controller.rb.tt +54 -0
  292. data/lib/generators/seams/notifications/templates/app/javascript/controllers/notification_bell_controller.js.tt +34 -0
  293. data/lib/generators/seams/notifications/templates/app/jobs/application_job.rb.tt +6 -0
  294. data/lib/generators/seams/notifications/templates/app/jobs/create_notification_job.rb.tt +31 -0
  295. data/lib/generators/seams/notifications/templates/app/jobs/send_due_notifications_job.rb.tt +22 -0
  296. data/lib/generators/seams/notifications/templates/app/jobs/send_notification_job.rb.tt +13 -0
  297. data/lib/generators/seams/notifications/templates/app/mailers/application_mailer.rb.tt +12 -0
  298. data/lib/generators/seams/notifications/templates/app/mailers/notification_mailer.rb.tt +23 -0
  299. data/lib/generators/seams/notifications/templates/app/models/application_record.rb.tt +7 -0
  300. data/lib/generators/seams/notifications/templates/app/models/delivery.rb.tt +13 -0
  301. data/lib/generators/seams/notifications/templates/app/models/notification.rb.tt +218 -0
  302. data/lib/generators/seams/notifications/templates/app/models/notification_preference.rb.tt +29 -0
  303. data/lib/generators/seams/notifications/templates/app/models/strategies/email.rb.tt +38 -0
  304. data/lib/generators/seams/notifications/templates/app/models/strategies/in_app.rb.tt +26 -0
  305. data/lib/generators/seams/notifications/templates/app/models/strategies/sms.rb.tt +33 -0
  306. data/lib/generators/seams/notifications/templates/app/subscribers/auth_subscriber.rb.tt +71 -0
  307. data/lib/generators/seams/notifications/templates/app/subscribers/billing_subscriber.rb.tt +127 -0
  308. data/lib/generators/seams/notifications/templates/app/views/layouts/notifications/mailer.html.erb.tt +22 -0
  309. data/lib/generators/seams/notifications/templates/app/views/layouts/notifications/mailer.text.erb.tt +4 -0
  310. data/lib/generators/seams/notifications/templates/app/views/notifications/_bell.html.erb.tt +15 -0
  311. data/lib/generators/seams/notifications/templates/app/views/notifications/index.html.erb.tt +15 -0
  312. data/lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_failed.html.erb.tt +4 -0
  313. data/lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_failed.text.erb.tt +4 -0
  314. data/lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_paid.html.erb.tt +3 -0
  315. data/lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_paid.text.erb.tt +3 -0
  316. data/lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_granted.html.erb.tt +5 -0
  317. data/lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_granted.text.erb.tt +5 -0
  318. data/lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_purchased.html.erb.tt +5 -0
  319. data/lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_purchased.text.erb.tt +5 -0
  320. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_canceled.html.erb.tt +4 -0
  321. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_canceled.text.erb.tt +4 -0
  322. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_started.html.erb.tt +4 -0
  323. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_started.text.erb.tt +5 -0
  324. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_updated.html.erb.tt +3 -0
  325. data/lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_updated.text.erb.tt +3 -0
  326. data/lib/generators/seams/notifications/templates/app/views/templates/default.html.erb.tt +10 -0
  327. data/lib/generators/seams/notifications/templates/app/views/templates/default.text.erb.tt +11 -0
  328. data/lib/generators/seams/notifications/templates/app/views/templates/welcome.html.erb.tt +6 -0
  329. data/lib/generators/seams/notifications/templates/app/views/templates/welcome.text.erb.tt +6 -0
  330. data/lib/generators/seams/notifications/templates/config/initializers/notifications.rb.tt +58 -0
  331. data/lib/generators/seams/notifications/templates/config/routes.rb.tt +17 -0
  332. data/lib/generators/seams/notifications/templates/db/migrate/create_notification_deliveries.rb.tt +16 -0
  333. data/lib/generators/seams/notifications/templates/db/migrate/create_notification_preferences.rb.tt +25 -0
  334. data/lib/generators/seams/notifications/templates/db/migrate/create_notifications.rb.tt +35 -0
  335. data/lib/generators/seams/notifications/templates/lib/adapters/abstract.rb.tt +20 -0
  336. data/lib/generators/seams/notifications/templates/lib/adapters/action_mailer.rb.tt +17 -0
  337. data/lib/generators/seams/notifications/templates/lib/adapters/null_sms.rb.tt +23 -0
  338. data/lib/generators/seams/notifications/templates/lib/concerns/notifiable.rb.tt +135 -0
  339. data/lib/generators/seams/notifications/templates/lib/configuration.rb.tt +24 -0
  340. data/lib/generators/seams/notifications/templates/lib/engine.rb.tt +35 -0
  341. data/lib/generators/seams/notifications/templates/lib/notifications.rb.tt +75 -0
  342. data/lib/generators/seams/notifications/templates/lib/type_registry.rb.tt +74 -0
  343. data/lib/generators/seams/notifications/templates/spec/factories/notifications.rb.tt +53 -0
  344. data/lib/generators/seams/notifications/templates/spec/models/delivery_spec.rb.tt +28 -0
  345. data/lib/generators/seams/notifications/templates/spec/models/notification_preference_spec.rb.tt +46 -0
  346. data/lib/generators/seams/notifications/templates/spec/models/notification_spec.rb.tt +60 -0
  347. data/lib/generators/seams/notifications/templates/spec/runtime/bell_broadcast_spec.rb.tt +59 -0
  348. data/lib/generators/seams/notifications/templates/spec/runtime/billing_subscriber_skip_spec.rb.tt +87 -0
  349. data/lib/generators/seams/notifications/templates/spec/runtime/boot_spec.rb.tt +39 -0
  350. data/lib/generators/seams/notifications/templates/spec/runtime/schedule_round_trip_spec.rb.tt +55 -0
  351. data/lib/generators/seams/remove/remove_generator.rb +259 -0
  352. data/lib/generators/seams/teams/teams_generator.rb +298 -0
  353. data/lib/generators/seams/teams/templates/README.md.tt +88 -0
  354. data/lib/generators/seams/teams/templates/app/controllers/invitations_controller.rb.tt +102 -0
  355. data/lib/generators/seams/teams/templates/app/controllers/memberships_controller.rb.tt +54 -0
  356. data/lib/generators/seams/teams/templates/app/controllers/teams_controller.rb.tt +68 -0
  357. data/lib/generators/seams/teams/templates/app/jobs/application_job.rb.tt +6 -0
  358. data/lib/generators/seams/teams/templates/app/mailers/invitation_mailer.rb.tt +34 -0
  359. data/lib/generators/seams/teams/templates/app/models/application_record.rb.tt +7 -0
  360. data/lib/generators/seams/teams/templates/app/models/current.rb.tt +30 -0
  361. data/lib/generators/seams/teams/templates/app/models/invitation.rb.tt +36 -0
  362. data/lib/generators/seams/teams/templates/app/models/membership.rb.tt +36 -0
  363. data/lib/generators/seams/teams/templates/app/models/team.rb.tt +32 -0
  364. data/lib/generators/seams/teams/templates/app/subscribers/invitation_subscriber.rb.tt +36 -0
  365. data/lib/generators/seams/teams/templates/app/views/invitation_mailer/invite.text.erb.tt +8 -0
  366. data/lib/generators/seams/teams/templates/app/views/invitations/index.html.erb.tt +44 -0
  367. data/lib/generators/seams/teams/templates/app/views/memberships/index.html.erb.tt +32 -0
  368. data/lib/generators/seams/teams/templates/app/views/teams/edit.html.erb.tt +28 -0
  369. data/lib/generators/seams/teams/templates/app/views/teams/index.html.erb.tt +15 -0
  370. data/lib/generators/seams/teams/templates/app/views/teams/new.html.erb.tt +24 -0
  371. data/lib/generators/seams/teams/templates/app/views/teams/show.html.erb.tt +17 -0
  372. data/lib/generators/seams/teams/templates/config/routes.rb.tt +19 -0
  373. data/lib/generators/seams/teams/templates/db/migrate/create_team_invitations.rb.tt +24 -0
  374. data/lib/generators/seams/teams/templates/db/migrate/create_team_memberships.rb.tt +25 -0
  375. data/lib/generators/seams/teams/templates/db/migrate/create_teams.rb.tt +18 -0
  376. data/lib/generators/seams/teams/templates/lib/concerns/account_scoped.rb.tt +79 -0
  377. data/lib/generators/seams/teams/templates/lib/concerns/authorization.rb.tt +55 -0
  378. data/lib/generators/seams/teams/templates/lib/configuration.rb.tt +45 -0
  379. data/lib/generators/seams/teams/templates/lib/engine.rb.tt +51 -0
  380. data/lib/generators/seams/teams/templates/lib/teams.rb.tt +22 -0
  381. data/lib/generators/seams/teams/templates/spec/factories/teams.rb.tt +47 -0
  382. data/lib/generators/seams/teams/templates/spec/models/invitation_spec.rb.tt +25 -0
  383. data/lib/generators/seams/teams/templates/spec/models/membership_spec.rb.tt +29 -0
  384. data/lib/generators/seams/teams/templates/spec/models/team_spec.rb.tt +23 -0
  385. data/lib/generators/seams/teams/templates/spec/runtime/boot_spec.rb.tt +32 -0
  386. data/lib/seams/cli/list.rb +111 -0
  387. data/lib/seams/cli/quality.rb +99 -0
  388. data/lib/seams/cli/resolve.rb +276 -0
  389. data/lib/seams/cli/test_changed.rb +116 -0
  390. data/lib/seams/cli.rb +48 -0
  391. data/lib/seams/configuration.rb +19 -0
  392. data/lib/seams/cops/known_queue_names.rb +42 -0
  393. data/lib/seams/cops/migration_comments.rb +68 -0
  394. data/lib/seams/cops/no_cross_engine_dependency.rb +58 -0
  395. data/lib/seams/cops/no_cross_engine_model_access.rb +153 -0
  396. data/lib/seams/cops.rb +18 -0
  397. data/lib/seams/event_registry.rb +49 -0
  398. data/lib/seams/events/adapter.rb +24 -0
  399. data/lib/seams/events/adapters/active_support.rb +31 -0
  400. data/lib/seams/events/publisher.rb +178 -0
  401. data/lib/seams/events.rb +39 -0
  402. data/lib/seams/generators/dummy_app_writer.rb +424 -0
  403. data/lib/seams/generators/eject_aware.rb +102 -0
  404. data/lib/seams/generators/follow_up_generator.rb +148 -0
  405. data/lib/seams/generators/host_injector.rb +124 -0
  406. data/lib/seams/generators/sibling_rubocop_writer.rb +77 -0
  407. data/lib/seams/generators/splicer.rb +217 -0
  408. data/lib/seams/observability/adapter.rb +33 -0
  409. data/lib/seams/observability/adapters/rails_logger.rb +59 -0
  410. data/lib/seams/observability.rb +34 -0
  411. data/lib/seams/runtime.rb +23 -0
  412. data/lib/seams/version.rb +5 -0
  413. data/lib/seams.rb +23 -0
  414. metadata +493 -0
metadata ADDED
@@ -0,0 +1,493 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: seams
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Silva
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: thor
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '1.0'
46
+ description: Seams is a CLI framework for building Rails applications as a modular
47
+ monolith. It generates isolated Rails engines with proper namespace isolation, contract
48
+ tests, dummy apps, and boundary enforcement — without the operational cost of microservices.
49
+ email:
50
+ - davidslv@users.noreply.github.com
51
+ executables: []
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - CHANGELOG.md
56
+ - LICENSE
57
+ - README.md
58
+ - lib/generators/seams/accounts/accounts_generator.rb
59
+ - lib/generators/seams/accounts/templates/README.md.tt
60
+ - lib/generators/seams/accounts/templates/app/models/account.rb.tt
61
+ - lib/generators/seams/accounts/templates/app/models/application_record.rb.tt
62
+ - lib/generators/seams/accounts/templates/app/models/current.rb.tt
63
+ - lib/generators/seams/accounts/templates/app/models/membership.rb.tt
64
+ - lib/generators/seams/accounts/templates/config/routes.rb.tt
65
+ - lib/generators/seams/accounts/templates/db/migrate/create_accounts.rb.tt
66
+ - lib/generators/seams/accounts/templates/db/migrate/create_accounts_memberships.rb.tt
67
+ - lib/generators/seams/accounts/templates/lib/accounts.rb.tt
68
+ - lib/generators/seams/accounts/templates/lib/concerns/account_scoped.rb.tt
69
+ - lib/generators/seams/accounts/templates/lib/concerns/authorization.rb.tt
70
+ - lib/generators/seams/accounts/templates/lib/configuration.rb.tt
71
+ - lib/generators/seams/accounts/templates/lib/engine.rb.tt
72
+ - lib/generators/seams/accounts/templates/spec/factories/accounts.rb.tt
73
+ - lib/generators/seams/accounts/templates/spec/models/accounts/account_spec.rb.tt
74
+ - lib/generators/seams/accounts/templates/spec/models/accounts/membership_spec.rb.tt
75
+ - lib/generators/seams/accounts/templates/spec/runtime/accounts_boot_spec.rb.tt
76
+ - lib/generators/seams/admin/admin_generator.rb
77
+ - lib/generators/seams/admin/templates/README.md.tt
78
+ - lib/generators/seams/admin/templates/app/controllers/admin/accounts_controller.rb.tt
79
+ - lib/generators/seams/admin/templates/app/controllers/admin/accounts_memberships_controller.rb.tt
80
+ - lib/generators/seams/admin/templates/app/controllers/admin/application_controller.rb.tt
81
+ - lib/generators/seams/admin/templates/app/controllers/admin/identities_controller.rb.tt
82
+ - lib/generators/seams/admin/templates/app/controllers/admin/invitations_controller.rb.tt
83
+ - lib/generators/seams/admin/templates/app/controllers/admin/invoices_controller.rb.tt
84
+ - lib/generators/seams/admin/templates/app/controllers/admin/lifetime_passes_controller.rb.tt
85
+ - lib/generators/seams/admin/templates/app/controllers/admin/notification_preferences_controller.rb.tt
86
+ - lib/generators/seams/admin/templates/app/controllers/admin/notifications_controller.rb.tt
87
+ - lib/generators/seams/admin/templates/app/controllers/admin/plans_controller.rb.tt
88
+ - lib/generators/seams/admin/templates/app/controllers/admin/subscriptions_controller.rb.tt
89
+ - lib/generators/seams/admin/templates/app/controllers/admin/teams_controller.rb.tt
90
+ - lib/generators/seams/admin/templates/app/controllers/admin/teams_memberships_controller.rb.tt
91
+ - lib/generators/seams/admin/templates/app/dashboards/admin/account_dashboard.rb.tt
92
+ - lib/generators/seams/admin/templates/app/dashboards/admin/accounts_membership_dashboard.rb.tt
93
+ - lib/generators/seams/admin/templates/app/dashboards/admin/identity_dashboard.rb.tt
94
+ - lib/generators/seams/admin/templates/app/dashboards/admin/invitation_dashboard.rb.tt
95
+ - lib/generators/seams/admin/templates/app/dashboards/admin/invoice_dashboard.rb.tt
96
+ - lib/generators/seams/admin/templates/app/dashboards/admin/lifetime_pass_dashboard.rb.tt
97
+ - lib/generators/seams/admin/templates/app/dashboards/admin/notification_dashboard.rb.tt
98
+ - lib/generators/seams/admin/templates/app/dashboards/admin/notification_preference_dashboard.rb.tt
99
+ - lib/generators/seams/admin/templates/app/dashboards/admin/plan_dashboard.rb.tt
100
+ - lib/generators/seams/admin/templates/app/dashboards/admin/subscription_dashboard.rb.tt
101
+ - lib/generators/seams/admin/templates/app/dashboards/admin/team_dashboard.rb.tt
102
+ - lib/generators/seams/admin/templates/app/dashboards/admin/teams_membership_dashboard.rb.tt
103
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/account_policy.rb.tt
104
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/accounts_membership_policy.rb.tt
105
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/application_policy.rb.tt
106
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/identity_policy.rb.tt
107
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/invitation_policy.rb.tt
108
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/invoice_policy.rb.tt
109
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/lifetime_pass_policy.rb.tt
110
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/notification_policy.rb.tt
111
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/notification_preference_policy.rb.tt
112
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/plan_policy.rb.tt
113
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/subscription_policy.rb.tt
114
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/team_policy.rb.tt
115
+ - lib/generators/seams/admin/templates/app/policies/admin/platform/teams_membership_policy.rb.tt
116
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/account_policy.rb.tt
117
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/accounts_membership_policy.rb.tt
118
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/application_policy.rb.tt
119
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/identity_policy.rb.tt
120
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/invitation_policy.rb.tt
121
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/invoice_policy.rb.tt
122
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/lifetime_pass_policy.rb.tt
123
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_policy.rb.tt
124
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/notification_preference_policy.rb.tt
125
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/plan_policy.rb.tt
126
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/subscription_policy.rb.tt
127
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/team_policy.rb.tt
128
+ - lib/generators/seams/admin/templates/app/policies/admin/tenant/teams_membership_policy.rb.tt
129
+ - lib/generators/seams/admin/templates/config/routes.rb.tt
130
+ - lib/generators/seams/admin/templates/lib/admin.rb.tt
131
+ - lib/generators/seams/admin/templates/lib/concerns/authenticator.rb.tt
132
+ - lib/generators/seams/admin/templates/lib/configuration.rb.tt
133
+ - lib/generators/seams/admin/templates/lib/context.rb.tt
134
+ - lib/generators/seams/admin/templates/lib/engine.rb.tt
135
+ - lib/generators/seams/admin/templates/spec/factories/admin.rb.tt
136
+ - lib/generators/seams/admin/templates/spec/runtime/admin_boot_spec.rb.tt
137
+ - lib/generators/seams/auth/add_oauth_provider/add_oauth_provider_generator.rb
138
+ - lib/generators/seams/auth/add_oauth_provider/templates/adapter.rb.tt
139
+ - lib/generators/seams/auth/add_oauth_provider/templates/adapter_spec.rb.tt
140
+ - lib/generators/seams/auth/auth_generator.rb
141
+ - lib/generators/seams/auth/templates/README.md.tt
142
+ - lib/generators/seams/auth/templates/app/controllers/oauth/callbacks_controller.rb.tt
143
+ - lib/generators/seams/auth/templates/app/controllers/password_resets_controller.rb.tt
144
+ - lib/generators/seams/auth/templates/app/controllers/registrations_controller.rb.tt
145
+ - lib/generators/seams/auth/templates/app/controllers/sessions_controller.rb.tt
146
+ - lib/generators/seams/auth/templates/app/jobs/application_job.rb.tt
147
+ - lib/generators/seams/auth/templates/app/jobs/cleanup_expired_sessions_job.rb.tt
148
+ - lib/generators/seams/auth/templates/app/mailers/passwords_mailer.rb.tt
149
+ - lib/generators/seams/auth/templates/app/models/api_token.rb.tt
150
+ - lib/generators/seams/auth/templates/app/models/application_record.rb.tt
151
+ - lib/generators/seams/auth/templates/app/models/current.rb.tt
152
+ - lib/generators/seams/auth/templates/app/models/identity.rb.tt
153
+ - lib/generators/seams/auth/templates/app/models/oauth/provider.rb.tt
154
+ - lib/generators/seams/auth/templates/app/models/session.rb.tt
155
+ - lib/generators/seams/auth/templates/app/services/authenticate_identity.rb.tt
156
+ - lib/generators/seams/auth/templates/app/services/generate_api_token.rb.tt
157
+ - lib/generators/seams/auth/templates/app/services/oauth/authenticator.rb.tt
158
+ - lib/generators/seams/auth/templates/app/services/register_identity.rb.tt
159
+ - lib/generators/seams/auth/templates/app/services/reset_password.rb.tt
160
+ - lib/generators/seams/auth/templates/app/services/revoke_api_token.rb.tt
161
+ - lib/generators/seams/auth/templates/app/views/password_resets/edit.html.erb.tt
162
+ - lib/generators/seams/auth/templates/app/views/password_resets/new.html.erb.tt
163
+ - lib/generators/seams/auth/templates/app/views/passwords_mailer/reset_email.html.erb.tt
164
+ - lib/generators/seams/auth/templates/app/views/registrations/new.html.erb.tt
165
+ - lib/generators/seams/auth/templates/app/views/sessions/_oauth_buttons.html.erb.tt
166
+ - lib/generators/seams/auth/templates/app/views/sessions/new.html.erb.tt
167
+ - lib/generators/seams/auth/templates/config/routes.rb.tt
168
+ - lib/generators/seams/auth/templates/db/migrate/create_auth_api_tokens.rb.tt
169
+ - lib/generators/seams/auth/templates/db/migrate/create_auth_identities.rb.tt
170
+ - lib/generators/seams/auth/templates/db/migrate/create_auth_oauth_providers.rb.tt
171
+ - lib/generators/seams/auth/templates/db/migrate/create_auth_sessions.rb.tt
172
+ - lib/generators/seams/auth/templates/lib/auth.rb.tt
173
+ - lib/generators/seams/auth/templates/lib/concerns/api_authenticatable.rb.tt
174
+ - lib/generators/seams/auth/templates/lib/concerns/authenticatable.rb.tt
175
+ - lib/generators/seams/auth/templates/lib/concerns/authentication.rb.tt
176
+ - lib/generators/seams/auth/templates/lib/configuration.rb.tt
177
+ - lib/generators/seams/auth/templates/lib/engine.rb.tt
178
+ - lib/generators/seams/auth/templates/lib/oauth/abstract.rb.tt
179
+ - lib/generators/seams/auth/templates/lib/oauth/github.rb.tt
180
+ - lib/generators/seams/auth/templates/lib/oauth/google.rb.tt
181
+ - lib/generators/seams/auth/templates/lib/tasks/auth_pii.rake.tt
182
+ - lib/generators/seams/auth/templates/spec/factories/auth.rb.tt
183
+ - lib/generators/seams/auth/templates/spec/mailers/passwords_mailer_spec.rb.tt
184
+ - lib/generators/seams/auth/templates/spec/models/api_token_spec.rb.tt
185
+ - lib/generators/seams/auth/templates/spec/models/identity_spec.rb.tt
186
+ - lib/generators/seams/auth/templates/spec/models/oauth/provider_spec.rb.tt
187
+ - lib/generators/seams/auth/templates/spec/models/session_spec.rb.tt
188
+ - lib/generators/seams/auth/templates/spec/runtime/boot_spec.rb.tt
189
+ - lib/generators/seams/auth/templates/spec/runtime/event_payload_spec.rb.tt
190
+ - lib/generators/seams/auth/templates/spec/runtime/login_flow_spec.rb.tt
191
+ - lib/generators/seams/billing/billing_generator.rb
192
+ - lib/generators/seams/billing/templates/README.md.tt
193
+ - lib/generators/seams/billing/templates/app/controllers/admin/lifetime_passes_controller.rb.tt
194
+ - lib/generators/seams/billing/templates/app/controllers/checkout_controller.rb.tt
195
+ - lib/generators/seams/billing/templates/app/controllers/invoices_controller.rb.tt
196
+ - lib/generators/seams/billing/templates/app/controllers/plans_controller.rb.tt
197
+ - lib/generators/seams/billing/templates/app/controllers/portal_controller.rb.tt
198
+ - lib/generators/seams/billing/templates/app/controllers/subscriptions_controller.rb.tt
199
+ - lib/generators/seams/billing/templates/app/controllers/webhooks_controller.rb.tt
200
+ - lib/generators/seams/billing/templates/app/helpers/currency_helper.rb.tt
201
+ - lib/generators/seams/billing/templates/app/jobs/application_job.rb.tt
202
+ - lib/generators/seams/billing/templates/app/jobs/cancel_subscription_job.rb.tt
203
+ - lib/generators/seams/billing/templates/app/jobs/start_subscription_job.rb.tt
204
+ - lib/generators/seams/billing/templates/app/jobs/webhooks/process_event_job.rb.tt
205
+ - lib/generators/seams/billing/templates/app/models/application_record.rb.tt
206
+ - lib/generators/seams/billing/templates/app/models/invoice.rb.tt
207
+ - lib/generators/seams/billing/templates/app/models/lifetime_pass.rb.tt
208
+ - lib/generators/seams/billing/templates/app/models/plan.rb.tt
209
+ - lib/generators/seams/billing/templates/app/models/subscription.rb.tt
210
+ - lib/generators/seams/billing/templates/app/models/webhook_event.rb.tt
211
+ - lib/generators/seams/billing/templates/app/services/checkout_session_service.rb.tt
212
+ - lib/generators/seams/billing/templates/app/services/customers/find_or_create_service.rb.tt
213
+ - lib/generators/seams/billing/templates/app/services/invoices/sync_service.rb.tt
214
+ - lib/generators/seams/billing/templates/app/services/lifetime/create_lifetime_session_service.rb.tt
215
+ - lib/generators/seams/billing/templates/app/services/lifetime/create_pass_from_checkout_service.rb.tt
216
+ - lib/generators/seams/billing/templates/app/services/lifetime/grant_pass_service.rb.tt
217
+ - lib/generators/seams/billing/templates/app/services/lifetime/revoke_pass_service.rb.tt
218
+ - lib/generators/seams/billing/templates/app/services/portal_session_service.rb.tt
219
+ - lib/generators/seams/billing/templates/app/services/service_result.rb.tt
220
+ - lib/generators/seams/billing/templates/app/services/stripe_service.rb.tt
221
+ - lib/generators/seams/billing/templates/app/services/subscriptions/cancel_service.rb.tt
222
+ - lib/generators/seams/billing/templates/app/services/subscriptions/change_plan_service.rb.tt
223
+ - lib/generators/seams/billing/templates/app/services/subscriptions/reactivate_service.rb.tt
224
+ - lib/generators/seams/billing/templates/app/services/webhooks/event_router.rb.tt
225
+ - lib/generators/seams/billing/templates/app/services/webhooks/handler.rb.tt
226
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/charge_refunded_handler.rb.tt
227
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/checkout_session_completed_handler.rb.tt
228
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_created_handler.rb.tt
229
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_finalized_handler.rb.tt
230
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_handler_base.rb.tt
231
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_paid_handler.rb.tt
232
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_payment_failed_handler.rb.tt
233
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/invoice_voided_handler.rb.tt
234
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/payment_failed_handler.rb.tt
235
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/payment_succeeded_handler.rb.tt
236
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_created_handler.rb.tt
237
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_deleted_handler.rb.tt
238
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_handler_base.rb.tt
239
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_trial_will_end_handler.rb.tt
240
+ - lib/generators/seams/billing/templates/app/services/webhooks/handlers/subscription_updated_handler.rb.tt
241
+ - lib/generators/seams/billing/templates/app/views/admin/lifetime_passes/index.html.erb.tt
242
+ - lib/generators/seams/billing/templates/app/views/admin/lifetime_passes/new.html.erb.tt
243
+ - lib/generators/seams/billing/templates/app/views/checkout/success.html.erb.tt
244
+ - lib/generators/seams/billing/templates/app/views/invoices/index.html.erb.tt
245
+ - lib/generators/seams/billing/templates/app/views/invoices/show.html.erb.tt
246
+ - lib/generators/seams/billing/templates/app/views/plans/index.html.erb.tt
247
+ - lib/generators/seams/billing/templates/app/views/subscriptions/index.html.erb.tt
248
+ - lib/generators/seams/billing/templates/app/views/subscriptions/show.html.erb.tt
249
+ - lib/generators/seams/billing/templates/config/routes.rb.tt
250
+ - lib/generators/seams/billing/templates/db/migrate/create_billing_invoices.rb.tt
251
+ - lib/generators/seams/billing/templates/db/migrate/create_billing_lifetime_passes.rb.tt
252
+ - lib/generators/seams/billing/templates/db/migrate/create_billing_plans.rb.tt
253
+ - lib/generators/seams/billing/templates/db/migrate/create_billing_subscriptions.rb.tt
254
+ - lib/generators/seams/billing/templates/db/migrate/create_billing_webhook_events.rb.tt
255
+ - lib/generators/seams/billing/templates/lib/billing.rb.tt
256
+ - lib/generators/seams/billing/templates/lib/concerns/billable.rb.tt
257
+ - lib/generators/seams/billing/templates/lib/configuration.rb.tt
258
+ - lib/generators/seams/billing/templates/lib/engine.rb.tt
259
+ - lib/generators/seams/billing/templates/lib/gateways/abstract.rb.tt
260
+ - lib/generators/seams/billing/templates/lib/gateways/adyen.rb.tt
261
+ - lib/generators/seams/billing/templates/lib/gateways/paddle.rb.tt
262
+ - lib/generators/seams/billing/templates/lib/gateways/stripe.rb.tt
263
+ - lib/generators/seams/billing/templates/lib/stripe/client.rb.tt
264
+ - lib/generators/seams/billing/templates/lib/stripe/webhook_signature.rb.tt
265
+ - lib/generators/seams/billing/templates/lib/tasks/billing_check.rake.tt
266
+ - lib/generators/seams/billing/templates/spec/factories/billing.rb.tt
267
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/charge_refunded.json.tt
268
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/checkout_session_completed.json.tt
269
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_created.json.tt
270
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_deleted.json.tt
271
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_trial_will_end.json.tt
272
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/customer_subscription_updated.json.tt
273
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_created.json.tt
274
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_finalized.json.tt
275
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_paid.json.tt
276
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_payment_failed.json.tt
277
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/invoice_voided.json.tt
278
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_payment_failed.json.tt
279
+ - lib/generators/seams/billing/templates/spec/fixtures/stripe/payment_intent_succeeded.json.tt
280
+ - lib/generators/seams/billing/templates/spec/gateways/contract_spec.rb.tt
281
+ - lib/generators/seams/billing/templates/spec/gateways/stripe_spec.rb.tt
282
+ - lib/generators/seams/billing/templates/spec/models/plan_spec.rb.tt
283
+ - lib/generators/seams/billing/templates/spec/models/subscription_spec.rb.tt
284
+ - lib/generators/seams/billing/templates/spec/runtime/boot_spec.rb.tt
285
+ - lib/generators/seams/billing/templates/spec/runtime/webhook_handlers_spec.rb.tt
286
+ - lib/generators/seams/billing/templates/spec/support/shared_examples/a_billing_gateway.rb.tt
287
+ - lib/generators/seams/billing/templates/spec/support/stripe_helpers.rb.tt
288
+ - lib/generators/seams/core/core_generator.rb
289
+ - lib/generators/seams/core/templates/README.md.tt
290
+ - lib/generators/seams/core/templates/app/controllers/concerns/has_current_attributes.rb.tt
291
+ - lib/generators/seams/core/templates/app/models/application_record.rb.tt
292
+ - lib/generators/seams/core/templates/app/models/audit_log.rb.tt
293
+ - lib/generators/seams/core/templates/app/models/concerns/auditable.rb.tt
294
+ - lib/generators/seams/core/templates/app/models/concerns/sluggable.rb.tt
295
+ - lib/generators/seams/core/templates/app/models/concerns/soft_deletable.rb.tt
296
+ - lib/generators/seams/core/templates/app/models/concerns/tenant_scoped.rb.tt
297
+ - lib/generators/seams/core/templates/app/models/current.rb.tt
298
+ - lib/generators/seams/core/templates/app/services/event_publisher.rb.tt
299
+ - lib/generators/seams/core/templates/app/validators/email_format_validator.rb.tt
300
+ - lib/generators/seams/core/templates/db/migrate/create_core_audit_logs.rb.tt
301
+ - lib/generators/seams/core/templates/lib/core.rb.tt
302
+ - lib/generators/seams/core/templates/lib/engine.rb.tt
303
+ - lib/generators/seams/core/templates/spec/concerns/auditable_spec.rb.tt
304
+ - lib/generators/seams/core/templates/spec/concerns/sluggable_spec.rb.tt
305
+ - lib/generators/seams/core/templates/spec/models/audit_log_spec.rb.tt
306
+ - lib/generators/seams/core/templates/spec/runtime/boot_spec.rb.tt
307
+ - lib/generators/seams/core/templates/spec/validators/email_format_validator_spec.rb.tt
308
+ - lib/generators/seams/engine/engine_generator.rb
309
+ - lib/generators/seams/engine/templates/Gemfile.tt
310
+ - lib/generators/seams/engine/templates/LICENSE.tt
311
+ - lib/generators/seams/engine/templates/README.md.tt
312
+ - lib/generators/seams/engine/templates/Rakefile.tt
313
+ - lib/generators/seams/engine/templates/app/application_controller.rb.tt
314
+ - lib/generators/seams/engine/templates/app/application_record.rb.tt
315
+ - lib/generators/seams/engine/templates/config/locales/en.yml.tt
316
+ - lib/generators/seams/engine/templates/config/routes.rb.tt
317
+ - lib/generators/seams/engine/templates/gemspec.tt
318
+ - lib/generators/seams/engine/templates/host_initializer.rb.tt
319
+ - lib/generators/seams/engine/templates/lib/engine.rb.tt
320
+ - lib/generators/seams/engine/templates/lib/root.rb.tt
321
+ - lib/generators/seams/engine/templates/lib/version.rb.tt
322
+ - lib/generators/seams/engine/templates/rubocop.yml.tt
323
+ - lib/generators/seams/engine/templates/spec/example_spec.rb.tt
324
+ - lib/generators/seams/engine/templates/spec/spec_helper.rb.tt
325
+ - lib/generators/seams/install/install_generator.rb
326
+ - lib/generators/seams/install/templates/Dockerfile.tt
327
+ - lib/generators/seams/install/templates/Procfile.tt
328
+ - lib/generators/seams/install/templates/bin_seams.tt
329
+ - lib/generators/seams/install/templates/ci.yml.tt
330
+ - lib/generators/seams/install/templates/deploy.yml.tt
331
+ - lib/generators/seams/install/templates/doc/ARCHITECTURE.md.tt
332
+ - lib/generators/seams/install/templates/docker-entrypoint.tt
333
+ - lib/generators/seams/install/templates/rubocop.yml.tt
334
+ - lib/generators/seams/install/templates/ruby-version.tt
335
+ - lib/generators/seams/install/templates/script/collate_coverage.rb.tt
336
+ - lib/generators/seams/install/templates/script/run_affected_tests.sh.tt
337
+ - lib/generators/seams/install/templates/seams.rake.tt
338
+ - lib/generators/seams/install/templates/seams.rb.tt
339
+ - lib/generators/seams/install/templates/seams_engines.rb.tt
340
+ - lib/generators/seams/notifications/notifications_generator.rb
341
+ - lib/generators/seams/notifications/templates/README.md.tt
342
+ - lib/generators/seams/notifications/templates/app/channels/notification_channel.rb.tt
343
+ - lib/generators/seams/notifications/templates/app/controllers/notifications_controller.rb.tt
344
+ - lib/generators/seams/notifications/templates/app/controllers/preferences_controller.rb.tt
345
+ - lib/generators/seams/notifications/templates/app/javascript/controllers/notification_bell_controller.js.tt
346
+ - lib/generators/seams/notifications/templates/app/jobs/application_job.rb.tt
347
+ - lib/generators/seams/notifications/templates/app/jobs/create_notification_job.rb.tt
348
+ - lib/generators/seams/notifications/templates/app/jobs/send_due_notifications_job.rb.tt
349
+ - lib/generators/seams/notifications/templates/app/jobs/send_notification_job.rb.tt
350
+ - lib/generators/seams/notifications/templates/app/mailers/application_mailer.rb.tt
351
+ - lib/generators/seams/notifications/templates/app/mailers/notification_mailer.rb.tt
352
+ - lib/generators/seams/notifications/templates/app/models/application_record.rb.tt
353
+ - lib/generators/seams/notifications/templates/app/models/delivery.rb.tt
354
+ - lib/generators/seams/notifications/templates/app/models/notification.rb.tt
355
+ - lib/generators/seams/notifications/templates/app/models/notification_preference.rb.tt
356
+ - lib/generators/seams/notifications/templates/app/models/strategies/email.rb.tt
357
+ - lib/generators/seams/notifications/templates/app/models/strategies/in_app.rb.tt
358
+ - lib/generators/seams/notifications/templates/app/models/strategies/sms.rb.tt
359
+ - lib/generators/seams/notifications/templates/app/subscribers/auth_subscriber.rb.tt
360
+ - lib/generators/seams/notifications/templates/app/subscribers/billing_subscriber.rb.tt
361
+ - lib/generators/seams/notifications/templates/app/views/layouts/notifications/mailer.html.erb.tt
362
+ - lib/generators/seams/notifications/templates/app/views/layouts/notifications/mailer.text.erb.tt
363
+ - lib/generators/seams/notifications/templates/app/views/notifications/_bell.html.erb.tt
364
+ - lib/generators/seams/notifications/templates/app/views/notifications/index.html.erb.tt
365
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_failed.html.erb.tt
366
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_failed.text.erb.tt
367
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_paid.html.erb.tt
368
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/invoice_paid.text.erb.tt
369
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_granted.html.erb.tt
370
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_granted.text.erb.tt
371
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_purchased.html.erb.tt
372
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/lifetime_purchased.text.erb.tt
373
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_canceled.html.erb.tt
374
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_canceled.text.erb.tt
375
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_started.html.erb.tt
376
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_started.text.erb.tt
377
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_updated.html.erb.tt
378
+ - lib/generators/seams/notifications/templates/app/views/templates/billing/subscription_updated.text.erb.tt
379
+ - lib/generators/seams/notifications/templates/app/views/templates/default.html.erb.tt
380
+ - lib/generators/seams/notifications/templates/app/views/templates/default.text.erb.tt
381
+ - lib/generators/seams/notifications/templates/app/views/templates/welcome.html.erb.tt
382
+ - lib/generators/seams/notifications/templates/app/views/templates/welcome.text.erb.tt
383
+ - lib/generators/seams/notifications/templates/config/initializers/notifications.rb.tt
384
+ - lib/generators/seams/notifications/templates/config/routes.rb.tt
385
+ - lib/generators/seams/notifications/templates/db/migrate/create_notification_deliveries.rb.tt
386
+ - lib/generators/seams/notifications/templates/db/migrate/create_notification_preferences.rb.tt
387
+ - lib/generators/seams/notifications/templates/db/migrate/create_notifications.rb.tt
388
+ - lib/generators/seams/notifications/templates/lib/adapters/abstract.rb.tt
389
+ - lib/generators/seams/notifications/templates/lib/adapters/action_mailer.rb.tt
390
+ - lib/generators/seams/notifications/templates/lib/adapters/null_sms.rb.tt
391
+ - lib/generators/seams/notifications/templates/lib/concerns/notifiable.rb.tt
392
+ - lib/generators/seams/notifications/templates/lib/configuration.rb.tt
393
+ - lib/generators/seams/notifications/templates/lib/engine.rb.tt
394
+ - lib/generators/seams/notifications/templates/lib/notifications.rb.tt
395
+ - lib/generators/seams/notifications/templates/lib/type_registry.rb.tt
396
+ - lib/generators/seams/notifications/templates/spec/factories/notifications.rb.tt
397
+ - lib/generators/seams/notifications/templates/spec/models/delivery_spec.rb.tt
398
+ - lib/generators/seams/notifications/templates/spec/models/notification_preference_spec.rb.tt
399
+ - lib/generators/seams/notifications/templates/spec/models/notification_spec.rb.tt
400
+ - lib/generators/seams/notifications/templates/spec/runtime/bell_broadcast_spec.rb.tt
401
+ - lib/generators/seams/notifications/templates/spec/runtime/billing_subscriber_skip_spec.rb.tt
402
+ - lib/generators/seams/notifications/templates/spec/runtime/boot_spec.rb.tt
403
+ - lib/generators/seams/notifications/templates/spec/runtime/schedule_round_trip_spec.rb.tt
404
+ - lib/generators/seams/remove/remove_generator.rb
405
+ - lib/generators/seams/teams/teams_generator.rb
406
+ - lib/generators/seams/teams/templates/README.md.tt
407
+ - lib/generators/seams/teams/templates/app/controllers/invitations_controller.rb.tt
408
+ - lib/generators/seams/teams/templates/app/controllers/memberships_controller.rb.tt
409
+ - lib/generators/seams/teams/templates/app/controllers/teams_controller.rb.tt
410
+ - lib/generators/seams/teams/templates/app/jobs/application_job.rb.tt
411
+ - lib/generators/seams/teams/templates/app/mailers/invitation_mailer.rb.tt
412
+ - lib/generators/seams/teams/templates/app/models/application_record.rb.tt
413
+ - lib/generators/seams/teams/templates/app/models/current.rb.tt
414
+ - lib/generators/seams/teams/templates/app/models/invitation.rb.tt
415
+ - lib/generators/seams/teams/templates/app/models/membership.rb.tt
416
+ - lib/generators/seams/teams/templates/app/models/team.rb.tt
417
+ - lib/generators/seams/teams/templates/app/subscribers/invitation_subscriber.rb.tt
418
+ - lib/generators/seams/teams/templates/app/views/invitation_mailer/invite.text.erb.tt
419
+ - lib/generators/seams/teams/templates/app/views/invitations/index.html.erb.tt
420
+ - lib/generators/seams/teams/templates/app/views/memberships/index.html.erb.tt
421
+ - lib/generators/seams/teams/templates/app/views/teams/edit.html.erb.tt
422
+ - lib/generators/seams/teams/templates/app/views/teams/index.html.erb.tt
423
+ - lib/generators/seams/teams/templates/app/views/teams/new.html.erb.tt
424
+ - lib/generators/seams/teams/templates/app/views/teams/show.html.erb.tt
425
+ - lib/generators/seams/teams/templates/config/routes.rb.tt
426
+ - lib/generators/seams/teams/templates/db/migrate/create_team_invitations.rb.tt
427
+ - lib/generators/seams/teams/templates/db/migrate/create_team_memberships.rb.tt
428
+ - lib/generators/seams/teams/templates/db/migrate/create_teams.rb.tt
429
+ - lib/generators/seams/teams/templates/lib/concerns/account_scoped.rb.tt
430
+ - lib/generators/seams/teams/templates/lib/concerns/authorization.rb.tt
431
+ - lib/generators/seams/teams/templates/lib/configuration.rb.tt
432
+ - lib/generators/seams/teams/templates/lib/engine.rb.tt
433
+ - lib/generators/seams/teams/templates/lib/teams.rb.tt
434
+ - lib/generators/seams/teams/templates/spec/factories/teams.rb.tt
435
+ - lib/generators/seams/teams/templates/spec/models/invitation_spec.rb.tt
436
+ - lib/generators/seams/teams/templates/spec/models/membership_spec.rb.tt
437
+ - lib/generators/seams/teams/templates/spec/models/team_spec.rb.tt
438
+ - lib/generators/seams/teams/templates/spec/runtime/boot_spec.rb.tt
439
+ - lib/seams.rb
440
+ - lib/seams/cli.rb
441
+ - lib/seams/cli/list.rb
442
+ - lib/seams/cli/quality.rb
443
+ - lib/seams/cli/resolve.rb
444
+ - lib/seams/cli/test_changed.rb
445
+ - lib/seams/configuration.rb
446
+ - lib/seams/cops.rb
447
+ - lib/seams/cops/known_queue_names.rb
448
+ - lib/seams/cops/migration_comments.rb
449
+ - lib/seams/cops/no_cross_engine_dependency.rb
450
+ - lib/seams/cops/no_cross_engine_model_access.rb
451
+ - lib/seams/event_registry.rb
452
+ - lib/seams/events.rb
453
+ - lib/seams/events/adapter.rb
454
+ - lib/seams/events/adapters/active_support.rb
455
+ - lib/seams/events/publisher.rb
456
+ - lib/seams/generators/dummy_app_writer.rb
457
+ - lib/seams/generators/eject_aware.rb
458
+ - lib/seams/generators/follow_up_generator.rb
459
+ - lib/seams/generators/host_injector.rb
460
+ - lib/seams/generators/sibling_rubocop_writer.rb
461
+ - lib/seams/generators/splicer.rb
462
+ - lib/seams/observability.rb
463
+ - lib/seams/observability/adapter.rb
464
+ - lib/seams/observability/adapters/rails_logger.rb
465
+ - lib/seams/runtime.rb
466
+ - lib/seams/version.rb
467
+ homepage: https://davidslv.uk/modular-rails/
468
+ licenses:
469
+ - MIT
470
+ metadata:
471
+ homepage_uri: https://davidslv.uk/modular-rails/
472
+ source_code_uri: https://github.com/Davidslv/seams
473
+ changelog_uri: https://github.com/Davidslv/seams/blob/main/CHANGELOG.md
474
+ bug_tracker_uri: https://github.com/Davidslv/seams/issues
475
+ rubygems_mfa_required: 'true'
476
+ rdoc_options: []
477
+ require_paths:
478
+ - lib
479
+ required_ruby_version: !ruby/object:Gem::Requirement
480
+ requirements:
481
+ - - ">="
482
+ - !ruby/object:Gem::Version
483
+ version: 4.0.0
484
+ required_rubygems_version: !ruby/object:Gem::Requirement
485
+ requirements:
486
+ - - ">="
487
+ - !ruby/object:Gem::Version
488
+ version: '0'
489
+ requirements: []
490
+ rubygems_version: 4.0.6
491
+ specification_version: 4
492
+ summary: CLI framework that generates modular Rails engines.
493
+ test_files: []