fastapi-startkit 0.60.0__tar.gz → 0.61.0__tar.gz

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 (342) hide show
  1. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/PKG-INFO +1 -1
  2. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/pyproject.toml +1 -1
  3. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/inertia.py +55 -0
  4. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/provider.py +11 -2
  5. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/README.md +0 -0
  6. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/.DS_Store +0 -0
  7. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/__init__.py +0 -0
  8. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/__init__.py +0 -0
  9. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/agent.py +0 -0
  10. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/ai.py +0 -0
  11. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/audio.py +0 -0
  12. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/audio_factory.py +0 -0
  13. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/config/ai.py +0 -0
  14. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/config/config.py +0 -0
  15. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/decorators.py +0 -0
  16. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/document.py +0 -0
  17. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/image.py +0 -0
  18. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/image_factory.py +0 -0
  19. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/judge.py +0 -0
  20. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/lab.py +0 -0
  21. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/pipeline.py +0 -0
  22. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/providers/__init__.py +0 -0
  23. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/providers/ai_provider.py +0 -0
  24. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/recording.py +0 -0
  25. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/runner.py +0 -0
  26. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/state.py +0 -0
  27. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/testing.py +0 -0
  28. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/tinker.py +0 -0
  29. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/ai/types.py +0 -0
  30. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/application.py +0 -0
  31. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/__init__.py +0 -0
  32. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/auth.py +0 -0
  33. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/channels.py +0 -0
  34. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/config.py +0 -0
  35. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/drivers/__init__.py +0 -0
  36. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/drivers/log_driver.py +0 -0
  37. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/drivers/reverb_driver.py +0 -0
  38. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/event.py +0 -0
  39. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/helpers.py +0 -0
  40. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/manager.py +0 -0
  41. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/provider.py +0 -0
  42. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/reverb/__init__.py +0 -0
  43. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/reverb/channel_manager.py +0 -0
  44. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/reverb/connection.py +0 -0
  45. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/reverb/server.py +0 -0
  46. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/stubs/__init__.py +0 -0
  47. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/broadcasting/stubs/channels.py +0 -0
  48. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
  49. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
  50. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/config/__init__.py +0 -0
  51. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/config/app.py +0 -0
  52. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
  53. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
  54. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/config.py +0 -0
  55. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
  56. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
  57. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
  58. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/__init__.py +0 -0
  59. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/application.py +0 -0
  60. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/can_override_config.py +0 -0
  61. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/can_override_default_options.py +0 -0
  62. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/command.py +0 -0
  63. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/console/publish_command.py +0 -0
  64. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/container/__init__.py +0 -0
  65. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/container/container.py +0 -0
  66. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/environment/__init__.py +0 -0
  67. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/environment/environment.py +0 -0
  68. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/__init__.py +0 -0
  69. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/dispatcher.py +0 -0
  70. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/fake.py +0 -0
  71. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/helpers.py +0 -0
  72. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/listener.py +0 -0
  73. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/events/provider.py +0 -0
  74. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/exceptions/__init__.py +0 -0
  75. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/exceptions/exceptions.py +0 -0
  76. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
  77. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/AI.py +0 -0
  78. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/AI.pyi +0 -0
  79. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Cache.py +0 -0
  80. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Config.py +0 -0
  81. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
  82. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Dump.py +0 -0
  83. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
  84. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Event.py +0 -0
  85. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Event.pyi +0 -0
  86. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Facade.py +0 -0
  87. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Gate.py +0 -0
  88. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
  89. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Hash.py +0 -0
  90. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
  91. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Loader.py +0 -0
  92. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
  93. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Mail.py +0 -0
  94. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
  95. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Notification.py +0 -0
  96. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
  97. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Queue.py +0 -0
  98. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
  99. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
  100. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
  101. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Request.py +0 -0
  102. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
  103. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Response.py +0 -0
  104. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
  105. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Session.py +0 -0
  106. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
  107. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Url.py +0 -0
  108. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
  109. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/View.py +0 -0
  110. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/View.pyi +0 -0
  111. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Vite.py +0 -0
  112. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
  113. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/facades/__init__.py +0 -0
  114. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/__init__.py +0 -0
  115. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
  116. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +0 -0
  117. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/config/__init__.py +0 -0
  118. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/config/fastapi.py +0 -0
  119. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/events.py +0 -0
  120. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/exceptions.py +0 -0
  121. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/middleware.py +0 -0
  122. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +0 -0
  123. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/requests/model.py +0 -0
  124. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
  125. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
  126. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/testing/assertable_json.py +0 -0
  127. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
  128. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/fastapi/testing/test_response.py +0 -0
  129. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/foundation/app_provider.py +0 -0
  130. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
  131. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/constant.py +0 -0
  132. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/context.py +0 -0
  133. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/middleware.py +0 -0
  134. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
  135. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/jsonapi/__init__.py +0 -0
  136. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/jsonapi/response.py +0 -0
  137. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/loader/Loader.py +0 -0
  138. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/loader/__init__.py +0 -0
  139. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
  140. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/__init__.py +0 -0
  141. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
  142. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +0 -0
  143. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
  144. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +0 -0
  145. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
  146. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
  147. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +0 -0
  148. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
  149. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
  150. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
  151. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
  152. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
  153. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
  154. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
  155. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
  156. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
  157. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +0 -0
  158. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
  159. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/factory.py +0 -0
  160. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/file.py +0 -0
  161. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/handler.py +0 -0
  162. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/listeners.py +0 -0
  163. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/logger.py +0 -0
  164. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
  165. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
  166. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
  167. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
  168. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/__init__.py +0 -0
  169. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +0 -0
  170. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
  171. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +0 -0
  172. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +0 -0
  173. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +0 -0
  174. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +0 -0
  175. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +0 -0
  176. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +0 -0
  177. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +0 -0
  178. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +0 -0
  179. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +0 -0
  180. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +0 -0
  181. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +0 -0
  182. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +0 -0
  183. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
  184. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +0 -0
  185. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
  186. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
  187. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
  188. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +0 -0
  189. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/config/__init__.py +0 -0
  190. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
  191. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/config/database.py +0 -0
  192. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/connection.py +0 -0
  193. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
  194. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +0 -0
  195. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
  196. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +0 -0
  197. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
  198. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/exceptions.py +0 -0
  199. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
  200. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
  201. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +0 -0
  202. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
  203. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
  204. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
  205. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
  206. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
  207. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
  208. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/migrations/Migration.py +0 -0
  209. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +0 -0
  210. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -0
  211. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +0 -0
  212. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
  213. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +0 -0
  214. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/builder.py +0 -0
  215. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/caster.py +0 -0
  216. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/fields.py +0 -0
  217. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/model.py +0 -0
  218. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
  219. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
  220. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
  221. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
  222. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
  223. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
  224. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
  225. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
  226. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
  227. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
  228. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +0 -0
  229. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
  230. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
  231. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
  232. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
  233. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +0 -0
  234. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
  235. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
  236. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +0 -0
  237. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
  238. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
  239. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
  240. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
  241. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
  242. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
  243. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
  244. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
  245. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
  246. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
  247. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
  248. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
  249. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
  250. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
  251. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
  252. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
  253. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
  254. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
  255. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
  256. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
  257. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +0 -0
  258. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
  259. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
  260. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
  261. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
  262. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
  263. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
  264. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
  265. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
  266. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
  267. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +0 -0
  268. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
  269. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +0 -0
  270. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +0 -0
  271. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
  272. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +0 -0
  273. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/seeders/Seeder.py +0 -0
  274. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/seeders/__init__.py +0 -0
  275. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
  276. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
  277. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
  278. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +0 -0
  279. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/__init__.py +0 -0
  280. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/argument.py +0 -0
  281. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/prompt.py +0 -0
  282. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/protocol.py +0 -0
  283. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/providers/__init__.py +0 -0
  284. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/providers/mcp_provider.py +0 -0
  285. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/request.py +0 -0
  286. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/resource.py +0 -0
  287. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/response.py +0 -0
  288. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/server.py +0 -0
  289. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/mcp/tool.py +0 -0
  290. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/process/__init__.py +0 -0
  291. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/process/exception.py +0 -0
  292. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/process/fake.py +0 -0
  293. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/process/process.py +0 -0
  294. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/process/result.py +0 -0
  295. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/py.typed +0 -0
  296. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/__init__.py +0 -0
  297. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/adapters/__init__.py +0 -0
  298. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/adapters/base.py +0 -0
  299. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/adapters/claude.py +0 -0
  300. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/adapters/gemini.py +0 -0
  301. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/commands/__init__.py +0 -0
  302. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/commands/skills.py +0 -0
  303. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/parser.py +0 -0
  304. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/provider.py +0 -0
  305. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/registry.py +0 -0
  306. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/database/SKILL.md +0 -0
  307. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/fastapi/SKILL.md +0 -0
  308. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/inertia/SKILL.md +0 -0
  309. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/__init__.py +0 -0
  310. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/config/__init__.py +0 -0
  311. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/config/storage.py +0 -0
  312. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/data/mime.types +0 -0
  313. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/drivers/__init__.py +0 -0
  314. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/drivers/fake.py +0 -0
  315. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/drivers/local.py +0 -0
  316. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/drivers/s3.py +0 -0
  317. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/file.py +0 -0
  318. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/filestream.py +0 -0
  319. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/helper.py +0 -0
  320. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/providers/provider.py +0 -0
  321. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/storage/storage.py +0 -0
  322. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/__init__.py +0 -0
  323. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/collection.py +0 -0
  324. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/dataclass.py +0 -0
  325. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/providers/__init__.py +0 -0
  326. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/providers/provider.py +0 -0
  327. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/string.py +0 -0
  328. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/structures.py +0 -0
  329. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/support/uri.py +0 -0
  330. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/testing/__init__.py +0 -0
  331. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/testing/test_case.py +0 -0
  332. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/__init__.py +0 -0
  333. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
  334. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
  335. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
  336. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
  337. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
  338. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
  339. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/resources/templates/index.html +0 -0
  340. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
  341. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
  342. {fastapi_startkit-0.60.0 → fastapi_startkit-0.61.0}/src/fastapi_startkit/vite/vite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fastapi-startkit
3
- Version: 0.60.0
3
+ Version: 0.61.0
4
4
  Summary: A modular, provider-driven framework for building async Python web applications with FastAPI — bundling a service container, configuration system, an async-first ORM, facades, and a Cleo-powered console.
5
5
  Keywords: fastapi,framework,async,web,asgi,orm,sqlalchemy,pydantic,ioc-container,dependency-injection,service-provider,cli,console,configuration,microservices,starter-kit,boilerplate
6
6
  Author: Bedram Tamang
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fastapi-startkit"
3
- version = "0.60.0"
3
+ version = "0.61.0"
4
4
  description = "A modular, provider-driven framework for building async Python web applications with FastAPI — bundling a service container, configuration system, an async-first ORM, facades, and a Cleo-powered console."
5
5
  readme = "README.md"
6
6
  keywords = [
@@ -1,4 +1,7 @@
1
1
  import inspect
2
+ import asyncio
3
+ import json
4
+ import urllib.request
2
5
  from typing import Any, Dict, Optional, Union
3
6
  from urllib.parse import urlparse
4
7
 
@@ -19,6 +22,8 @@ class ResponseFactory:
19
22
  self.root_view: str = "index.html"
20
23
  self.shared_props: dict = {}
21
24
  self.version = None
25
+ self.ssr_url: Optional[str] = None
26
+ self.ssr_timeout: float = 1.0
22
27
 
23
28
  def set_root_view(self, view: str):
24
29
  self.root_view = view
@@ -36,6 +41,11 @@ class ResponseFactory:
36
41
  v = self.version() if callable(self.version) else self.version
37
42
  return str(v) if v is not None else None
38
43
 
44
+ def set_ssr(self, url: Optional[str], timeout: float = 1.0):
45
+ """Configure the Inertia SSR server endpoint. Pass None to disable SSR."""
46
+ self.ssr_url = url.rstrip("/") if url else None
47
+ self.ssr_timeout = timeout
48
+
39
49
  def render(self, component: str, props: dict) -> "InertiaResponse":
40
50
  return InertiaResponse(
41
51
  component=component,
@@ -43,6 +53,8 @@ class ResponseFactory:
43
53
  props=props,
44
54
  root_view=self.root_view,
45
55
  version=self.get_version() or "",
56
+ ssr_url=self.ssr_url,
57
+ ssr_timeout=self.ssr_timeout,
46
58
  )
47
59
 
48
60
 
@@ -54,6 +66,8 @@ class InertiaResponse(Response):
54
66
  props: dict,
55
67
  root_view: str = "index.html",
56
68
  version: str = "",
69
+ ssr_url: Optional[str] = None,
70
+ ssr_timeout: float = 1.0,
57
71
  ):
58
72
  # Do not call supper().__init__() — body is built lazily in __call__
59
73
  self.background = None # required by FastAPI's response handling
@@ -62,6 +76,8 @@ class InertiaResponse(Response):
62
76
  self.props = props
63
77
  self.root_view = root_view
64
78
  self.version = version
79
+ self.ssr_url = ssr_url
80
+ self.ssr_timeout = ssr_timeout
65
81
 
66
82
  def with_(self, key: Union[str, Dict[str, Any]], value: Any = None) -> "InertiaResponse":
67
83
  if isinstance(key, dict):
@@ -114,6 +130,13 @@ class InertiaResponse(Response):
114
130
  "version": self.version,
115
131
  }
116
132
 
133
+ # SSR is used only for the initial HTML response. Inertia XHR requests
134
+ # continue returning the regular page JSON and never contact Node.
135
+ if not request.headers.get(Header.INERTIA) and self.ssr_url:
136
+ rendered = await self._render_ssr(page)
137
+ if rendered:
138
+ page["ssr"] = rendered
139
+
117
140
  if request.headers.get(Header.INERTIA):
118
141
  return JSONResponse(
119
142
  content=page,
@@ -135,6 +158,33 @@ class InertiaResponse(Response):
135
158
  )
136
159
  )
137
160
 
161
+ async def _render_ssr(self, page: dict) -> Optional[dict]:
162
+ """Ask the configured Inertia Node server to render this page."""
163
+ ssr_url = self.ssr_url
164
+ if ssr_url is None:
165
+ return None
166
+
167
+ def request_ssr():
168
+ body = json.dumps(page).encode("utf-8")
169
+ req = urllib.request.Request(
170
+ ssr_url.rstrip("/") + "/render",
171
+ data=body,
172
+ headers={"Content-Type": "application/json"},
173
+ method="POST",
174
+ )
175
+ with urllib.request.urlopen(req, timeout=self.ssr_timeout) as response:
176
+ result = json.loads(response.read().decode("utf-8"))
177
+ if not isinstance(result, dict) or not isinstance(result.get("body"), str):
178
+ raise ValueError("Invalid Inertia SSR response")
179
+ return {"body": result["body"], "head": result.get("head", [])}
180
+
181
+ try:
182
+ return await asyncio.to_thread(request_ssr)
183
+ except Exception:
184
+ # SSR is an enhancement: if its process is unavailable, send the
185
+ # normal page shell so the client can still hydrate it.
186
+ return None
187
+
138
188
  def _get_url(self, request: Request) -> str:
139
189
  parsed = urlparse(str(request.url))
140
190
  url = parsed.path
@@ -174,6 +224,11 @@ class Inertia:
174
224
  def version(version):
175
225
  Inertia.instance().set_version(version)
176
226
 
227
+ @staticmethod
228
+ def ssr(url: Optional[str] = "http://127.0.0.1:13714", timeout: float = 1.0):
229
+ """Enable SSR through the standard Inertia SSR server endpoint."""
230
+ Inertia.instance().set_ssr(url, timeout)
231
+
177
232
  @staticmethod
178
233
  def get_version() -> Optional[str]:
179
234
  return Inertia.instance().get_version()
@@ -18,10 +18,19 @@ class InertiaProvider(Provider):
18
18
  templates = self.app.make("templates")
19
19
 
20
20
  def inertia_helper(page):
21
- encoded_page = json.dumps(page)
21
+ client_page = {key: value for key, value in page.items() if key != "ssr"}
22
+ encoded_page = json.dumps(client_page).replace("<", "\\u003c")
23
+ ssr_body = page.get("ssr", {}).get("body", "")
22
24
  return Markup(
23
- f'<script data-page="app" type="application/json">{encoded_page}</script><div id="app"></div>'
25
+ f'<script data-page="app" type="application/json">{encoded_page}</script><div id="app">{ssr_body}</div>'
24
26
  )
25
27
 
28
+ def inertia_head(page):
29
+ head = page.get("ssr", {}).get("head", [])
30
+ if isinstance(head, str):
31
+ head = [head]
32
+ return Markup("".join(str(item) for item in head))
33
+
26
34
  templates.env.globals["inertia"] = inertia_helper
35
+ templates.env.globals["inertia_head"] = inertia_head
27
36
  templates.env.globals["Inertia"] = self.app.make("inertia")