orionis 0.546.0__tar.gz → 0.548.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 (595) hide show
  1. orionis-0.548.0/MANIFEST.in +20 -0
  2. {orionis-0.546.0/orionis.egg-info → orionis-0.548.0}/PKG-INFO +1 -1
  3. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/base/scheduler_event_listener.py +0 -17
  4. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/schedule_event_listener.py +0 -18
  5. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/app/entities/app.py +3 -2
  6. orionis-0.548.0/orionis/foundation/config/app/enums/ciphers.py +20 -0
  7. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/entities/session.py +2 -2
  8. {orionis-0.546.0 → orionis-0.548.0}/orionis/metadata/framework.py +1 -1
  9. orionis-0.548.0/orionis/services/encrypter/encrypter.py +115 -0
  10. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/dynamic/caster.py +35 -27
  11. orionis-0.548.0/orionis/services/environment/key/key_generator.py +47 -0
  12. {orionis-0.546.0 → orionis-0.548.0/orionis.egg-info}/PKG-INFO +1 -1
  13. {orionis-0.546.0 → orionis-0.548.0}/orionis.egg-info/SOURCES.txt +3 -147
  14. {orionis-0.546.0 → orionis-0.548.0}/orionis.egg-info/top_level.txt +0 -1
  15. {orionis-0.546.0 → orionis-0.548.0}/setup.py +8 -8
  16. orionis-0.546.0/MANIFEST.in +0 -3
  17. orionis-0.546.0/orionis/foundation/config/app/enums/ciphers.py +0 -34
  18. orionis-0.546.0/orionis/services/environment/key/key_generator.py +0 -26
  19. orionis-0.546.0/tests/container/__init__.py +0 -0
  20. orionis-0.546.0/tests/container/context/__init__.py +0 -0
  21. orionis-0.546.0/tests/container/context/test_manager.py +0 -38
  22. orionis-0.546.0/tests/container/context/test_scope.py +0 -32
  23. orionis-0.546.0/tests/container/core/__init__.py +0 -0
  24. orionis-0.546.0/tests/container/core/test_advanced_async.py +0 -234
  25. orionis-0.546.0/tests/container/core/test_async_optimizations.py +0 -268
  26. orionis-0.546.0/tests/container/core/test_container.py +0 -453
  27. orionis-0.546.0/tests/container/core/test_singleton.py +0 -122
  28. orionis-0.546.0/tests/container/core/test_thread_safety.py +0 -90
  29. orionis-0.546.0/tests/container/entities/__init__.py +0 -0
  30. orionis-0.546.0/tests/container/entities/test_binding.py +0 -242
  31. orionis-0.546.0/tests/container/enums/__init__.py +0 -0
  32. orionis-0.546.0/tests/container/enums/test_lifetimes.py +0 -97
  33. orionis-0.546.0/tests/container/facades/__init__.py +0 -0
  34. orionis-0.546.0/tests/container/facades/test_facade.py +0 -78
  35. orionis-0.546.0/tests/container/mocks/__init__.py +0 -0
  36. orionis-0.546.0/tests/container/mocks/mock_advanced_async.py +0 -332
  37. orionis-0.546.0/tests/container/mocks/mock_async_optimizations.py +0 -407
  38. orionis-0.546.0/tests/container/mocks/mock_auto_resolution.py +0 -192
  39. orionis-0.546.0/tests/container/mocks/mock_complex_classes.py +0 -792
  40. orionis-0.546.0/tests/container/mocks/mock_simple_classes.py +0 -98
  41. orionis-0.546.0/tests/container/providers/__init__.py +0 -0
  42. orionis-0.546.0/tests/container/providers/test_providers.py +0 -55
  43. orionis-0.546.0/tests/container/validators/__init__.py +0 -0
  44. orionis-0.546.0/tests/container/validators/test_implements.py +0 -186
  45. orionis-0.546.0/tests/container/validators/test_is_abstract_class.py +0 -147
  46. orionis-0.546.0/tests/container/validators/test_is_callable.py +0 -102
  47. orionis-0.546.0/tests/container/validators/test_is_concrete_class.py +0 -160
  48. orionis-0.546.0/tests/container/validators/test_is_instance.py +0 -150
  49. orionis-0.546.0/tests/container/validators/test_is_not_subclass.py +0 -49
  50. orionis-0.546.0/tests/container/validators/test_is_subclass.py +0 -178
  51. orionis-0.546.0/tests/container/validators/test_is_valid_alias.py +0 -147
  52. orionis-0.546.0/tests/container/validators/test_lifetime.py +0 -106
  53. orionis-0.546.0/tests/example/__init__.py +0 -0
  54. orionis-0.546.0/tests/example/test_example.py +0 -725
  55. orionis-0.546.0/tests/foundation/__init__.py +0 -0
  56. orionis-0.546.0/tests/foundation/config/__init__.py +0 -0
  57. orionis-0.546.0/tests/foundation/config/app/__init__.py +0 -0
  58. orionis-0.546.0/tests/foundation/config/app/test_foundation_config_app.py +0 -262
  59. orionis-0.546.0/tests/foundation/config/auth/__init__.py +0 -0
  60. orionis-0.546.0/tests/foundation/config/auth/test_foundation_config_auth.py +0 -29
  61. orionis-0.546.0/tests/foundation/config/cache/__init__.py +0 -0
  62. orionis-0.546.0/tests/foundation/config/cache/test_foundation_config_cache.py +0 -143
  63. orionis-0.546.0/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -126
  64. orionis-0.546.0/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -156
  65. orionis-0.546.0/tests/foundation/config/cors/__init__.py +0 -0
  66. orionis-0.546.0/tests/foundation/config/cors/test_foundation_config_cors.py +0 -190
  67. orionis-0.546.0/tests/foundation/config/database/__init__.py +0 -0
  68. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database.py +0 -158
  69. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -203
  70. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -354
  71. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -288
  72. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -257
  73. orionis-0.546.0/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -207
  74. orionis-0.546.0/tests/foundation/config/filesystems/__init__.py +0 -0
  75. orionis-0.546.0/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -160
  76. orionis-0.546.0/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -189
  77. orionis-0.546.0/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -184
  78. orionis-0.546.0/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -143
  79. orionis-0.546.0/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -184
  80. orionis-0.546.0/tests/foundation/config/logging/__init__.py +0 -0
  81. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging.py +0 -112
  82. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -246
  83. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -217
  84. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -220
  85. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -196
  86. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -214
  87. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -178
  88. orionis-0.546.0/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -224
  89. orionis-0.546.0/tests/foundation/config/mail/__init__.py +0 -0
  90. orionis-0.546.0/tests/foundation/config/mail/test_foundation_config_mail.py +0 -145
  91. orionis-0.546.0/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -97
  92. orionis-0.546.0/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -106
  93. orionis-0.546.0/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -146
  94. orionis-0.546.0/tests/foundation/config/queue/__init__.py +0 -0
  95. orionis-0.546.0/tests/foundation/config/queue/test_foundation_config_queue.py +0 -88
  96. orionis-0.546.0/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -72
  97. orionis-0.546.0/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -134
  98. orionis-0.546.0/tests/foundation/config/root/__init__.py +0 -0
  99. orionis-0.546.0/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -112
  100. orionis-0.546.0/tests/foundation/config/session/__init__.py +0 -0
  101. orionis-0.546.0/tests/foundation/config/session/test_foundation_config_session.py +0 -213
  102. orionis-0.546.0/tests/foundation/config/startup/__init__.py +0 -0
  103. orionis-0.546.0/tests/foundation/config/startup/test_foundation_config_startup.py +0 -202
  104. orionis-0.546.0/tests/foundation/config/testing/__init__.py +0 -0
  105. orionis-0.546.0/tests/foundation/config/testing/test_foundation_config_testing.py +0 -235
  106. orionis-0.546.0/tests/metadata/__init__.py +0 -0
  107. orionis-0.546.0/tests/metadata/test_metadata_framework.py +0 -140
  108. orionis-0.546.0/tests/metadata/test_metadata_package.py +0 -139
  109. orionis-0.546.0/tests/services/__init__.py +0 -0
  110. orionis-0.546.0/tests/services/asynchrony/__init__.py +0 -0
  111. orionis-0.546.0/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -85
  112. orionis-0.546.0/tests/services/environment/__init__.py +0 -0
  113. orionis-0.546.0/tests/services/environment/test_services_environment.py +0 -226
  114. orionis-0.546.0/tests/services/introspection/__init__.py +0 -0
  115. orionis-0.546.0/tests/services/introspection/dependencies/__init__.py +0 -0
  116. orionis-0.546.0/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
  117. orionis-0.546.0/tests/services/introspection/dependencies/mocks/mock_user.py +0 -30
  118. orionis-0.546.0/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -27
  119. orionis-0.546.0/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -41
  120. orionis-0.546.0/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -261
  121. orionis-0.546.0/tests/services/introspection/reflection/__init__.py +0 -0
  122. orionis-0.546.0/tests/services/introspection/reflection/mock/__init__.py +0 -0
  123. orionis-0.546.0/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -1115
  124. orionis-0.546.0/tests/services/introspection/reflection/test_reflection_abstract.py +0 -1011
  125. orionis-0.546.0/tests/services/introspection/reflection/test_reflection_callable.py +0 -206
  126. orionis-0.546.0/tests/services/introspection/reflection/test_reflection_concrete.py +0 -952
  127. orionis-0.546.0/tests/services/introspection/reflection/test_reflection_instance.py +0 -1233
  128. orionis-0.546.0/tests/services/introspection/reflection/test_reflection_module.py +0 -567
  129. orionis-0.546.0/tests/services/introspection/test_reflection.py +0 -462
  130. orionis-0.546.0/tests/services/log/__init__.py +0 -0
  131. orionis-0.546.0/tests/services/log/test_log.py +0 -97
  132. orionis-0.546.0/tests/services/system/__init__.py +0 -0
  133. orionis-0.546.0/tests/services/system/test_services_system_imports.py +0 -204
  134. orionis-0.546.0/tests/services/system/test_services_system_workers.py +0 -131
  135. orionis-0.546.0/tests/support/__init__.py +0 -0
  136. orionis-0.546.0/tests/support/entities/__init__.py +0 -0
  137. orionis-0.546.0/tests/support/entities/mock_dataclass.py +0 -40
  138. orionis-0.546.0/tests/support/entities/test_base.py +0 -64
  139. orionis-0.546.0/tests/support/patterns/__init__.py +0 -0
  140. orionis-0.546.0/tests/support/patterns/singleton/__init__.py +0 -0
  141. orionis-0.546.0/tests/support/patterns/singleton/test_patterns_singleton.py +0 -39
  142. orionis-0.546.0/tests/support/standard/__init__.py +0 -0
  143. orionis-0.546.0/tests/support/standard/test_services_std.py +0 -226
  144. orionis-0.546.0/tests/support/wrapper/__init__.py +0 -0
  145. orionis-0.546.0/tests/support/wrapper/test_services_wrapper_docdict.py +0 -202
  146. orionis-0.546.0/tests/testing/__init__.py +0 -0
  147. orionis-0.546.0/tests/testing/cases/__init__.py +0 -0
  148. orionis-0.546.0/tests/testing/cases/test_testing_asynchronous.py +0 -63
  149. orionis-0.546.0/tests/testing/cases/test_testing_synchronous.py +0 -57
  150. orionis-0.546.0/tests/testing/entities/__init__.py +0 -0
  151. orionis-0.546.0/tests/testing/entities/test_testing_result.py +0 -146
  152. orionis-0.546.0/tests/testing/enums/__init__.py +0 -0
  153. orionis-0.546.0/tests/testing/enums/test_testing_status.py +0 -63
  154. orionis-0.546.0/tests/testing/output/__init__.py +0 -0
  155. orionis-0.546.0/tests/testing/output/test_testing_dumper.py +0 -29
  156. orionis-0.546.0/tests/testing/output/test_testing_printer.py +0 -42
  157. orionis-0.546.0/tests/testing/records/__init__.py +0 -0
  158. orionis-0.546.0/tests/testing/records/test_testing_records.py +0 -171
  159. orionis-0.546.0/tests/testing/test_testing_unit.py +0 -164
  160. orionis-0.546.0/tests/testing/validators/__init__.py +0 -0
  161. orionis-0.546.0/tests/testing/validators/test_testing_validators.py +0 -392
  162. orionis-0.546.0/tests/testing/view/__init__.py +0 -0
  163. orionis-0.546.0/tests/testing/view/test_render.py +0 -30
  164. {orionis-0.546.0 → orionis-0.548.0}/LICENCE +0 -0
  165. {orionis-0.546.0 → orionis-0.548.0}/README.md +0 -0
  166. {orionis-0.546.0 → orionis-0.548.0}/orionis/__init__.py +0 -0
  167. {orionis-0.546.0 → orionis-0.548.0}/orionis/app.py +0 -0
  168. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/__init__.py +0 -0
  169. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/args/__init__.py +0 -0
  170. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/args/argument.py +0 -0
  171. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/base/__init__.py +0 -0
  172. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/base/command.py +0 -0
  173. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/base/scheduler.py +0 -0
  174. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/__init__.py +0 -0
  175. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/cache.py +0 -0
  176. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/help.py +0 -0
  177. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/make_listener.py +0 -0
  178. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/publisher.py +0 -0
  179. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/scheduler_list.py +0 -0
  180. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/scheduler_work.py +0 -0
  181. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/test.py +0 -0
  182. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/version.py +0 -0
  183. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/commands/workflow.py +0 -0
  184. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/__init__.py +0 -0
  185. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/base_command.py +0 -0
  186. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/base_scheduler.py +0 -0
  187. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/cli_request.py +0 -0
  188. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/command.py +0 -0
  189. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/console.py +0 -0
  190. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/dump.py +0 -0
  191. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/event.py +0 -0
  192. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/executor.py +0 -0
  193. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/kernel.py +0 -0
  194. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/progress_bar.py +0 -0
  195. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/reactor.py +0 -0
  196. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/contracts/schedule.py +0 -0
  197. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/core/__init__.py +0 -0
  198. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/core/reactor.py +0 -0
  199. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/dumper/__init__.py +0 -0
  200. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/dumper/dump.py +0 -0
  201. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/dynamic/__init__.py +0 -0
  202. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/dynamic/progress_bar.py +0 -0
  203. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/__init__.py +0 -0
  204. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/all_jobs_removed.py +0 -0
  205. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/command.py +0 -0
  206. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/event.py +0 -0
  207. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/event_job.py +0 -0
  208. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/executor_added.py +0 -0
  209. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/executor_removed.py +0 -0
  210. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_added.py +0 -0
  211. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_error.py +0 -0
  212. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_event_data.py +0 -0
  213. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_executed.py +0 -0
  214. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_max_instances.py +0 -0
  215. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_missed.py +0 -0
  216. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_modified.py +0 -0
  217. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_pause.py +0 -0
  218. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_removed.py +0 -0
  219. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_resume.py +0 -0
  220. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_store_added.py +0 -0
  221. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_store_removed.py +0 -0
  222. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/job_submitted.py +0 -0
  223. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_error.py +0 -0
  224. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  225. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_paused.py +0 -0
  226. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  227. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  228. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/entities/scheduler_started.py +0 -0
  229. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/enums/__init__.py +0 -0
  230. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/enums/actions.py +0 -0
  231. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/enums/listener.py +0 -0
  232. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/enums/styles.py +0 -0
  233. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/exceptions/__init__.py +0 -0
  234. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/exceptions/cli_exception.py +0 -0
  235. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
  236. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  237. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  238. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/fluent/__init__.py +0 -0
  239. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/fluent/command.py +0 -0
  240. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/fluent/event.py +0 -0
  241. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/kernel.py +0 -0
  242. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/output/__init__.py +0 -0
  243. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/output/console.py +0 -0
  244. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/output/executor.py +0 -0
  245. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/request/__init__.py +0 -0
  246. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/request/cli_request.py +0 -0
  247. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/tasks/__init__.py +0 -0
  248. {orionis-0.546.0 → orionis-0.548.0}/orionis/console/tasks/schedule.py +0 -0
  249. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/__init__.py +0 -0
  250. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/container.py +0 -0
  251. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/context/__init__.py +0 -0
  252. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/context/manager.py +0 -0
  253. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/context/scope.py +0 -0
  254. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/contracts/__init__.py +0 -0
  255. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/contracts/container.py +0 -0
  256. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/contracts/service_provider.py +0 -0
  257. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/entities/__init__.py +0 -0
  258. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/entities/binding.py +0 -0
  259. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/enums/__init__.py +0 -0
  260. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/enums/lifetimes.py +0 -0
  261. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/exceptions/__init__.py +0 -0
  262. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/exceptions/attribute.py +0 -0
  263. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/exceptions/exception.py +0 -0
  264. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/exceptions/type.py +0 -0
  265. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/exceptions/value.py +0 -0
  266. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/facades/__init__.py +0 -0
  267. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/facades/facade.py +0 -0
  268. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/providers/__init__.py +0 -0
  269. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/providers/service_provider.py +0 -0
  270. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/__init__.py +0 -0
  271. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/implements.py +0 -0
  272. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_abstract_class.py +0 -0
  273. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_callable.py +0 -0
  274. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_concrete_class.py +0 -0
  275. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_instance.py +0 -0
  276. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_not_subclass.py +0 -0
  277. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_subclass.py +0 -0
  278. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/is_valid_alias.py +0 -0
  279. {orionis-0.546.0 → orionis-0.548.0}/orionis/container/validators/lifetime.py +0 -0
  280. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/__init__.py +0 -0
  281. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/base/__init__.py +0 -0
  282. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/base/handler.py +0 -0
  283. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/catch.py +0 -0
  284. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/contracts/__init__.py +0 -0
  285. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/contracts/catch.py +0 -0
  286. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/contracts/handler.py +0 -0
  287. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/entities/__init__.py +0 -0
  288. {orionis-0.546.0 → orionis-0.548.0}/orionis/failure/entities/throwable.py +0 -0
  289. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/__init__.py +0 -0
  290. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/application.py +0 -0
  291. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/__init__.py +0 -0
  292. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/app/__init__.py +0 -0
  293. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  294. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  295. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  296. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/auth/__init__.py +0 -0
  297. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  298. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  299. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/__init__.py +0 -0
  300. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  301. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  302. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  303. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  304. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  305. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  306. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cors/__init__.py +0 -0
  307. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  308. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  309. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/__init__.py +0 -0
  310. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  311. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  312. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/database.py +0 -0
  313. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  314. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  315. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  316. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  317. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  318. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  319. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  320. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  321. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  322. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  323. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  324. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  325. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  326. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  327. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  328. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  329. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  330. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  331. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  332. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  333. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  334. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  335. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  336. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/__init__.py +0 -0
  337. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  338. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  339. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  340. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  341. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  342. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  343. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  344. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  345. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  346. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  347. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  348. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  349. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  350. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  351. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/__init__.py +0 -0
  352. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  353. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  354. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  355. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  356. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  357. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/__init__.py +0 -0
  358. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  359. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  360. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  361. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  362. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  363. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  364. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/roots/__init__.py +0 -0
  365. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/roots/paths.py +0 -0
  366. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/__init__.py +0 -0
  367. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  368. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  369. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  370. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  371. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  372. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/startup.py +0 -0
  373. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/__init__.py +0 -0
  374. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  375. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  376. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  377. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  378. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  379. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  380. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/contracts/__init__.py +0 -0
  381. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/contracts/application.py +0 -0
  382. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/contracts/config.py +0 -0
  383. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/exceptions/__init__.py +0 -0
  384. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/exceptions/integrity.py +0 -0
  385. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/exceptions/runtime.py +0 -0
  386. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/exceptions/type.py +0 -0
  387. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/exceptions/value.py +0 -0
  388. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/__init__.py +0 -0
  389. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/catch_provider.py +0 -0
  390. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
  391. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/console_provider.py +0 -0
  392. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/directory_provider.py +0 -0
  393. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  394. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/executor_provider.py +0 -0
  395. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  396. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/logger_provider.py +0 -0
  397. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
  398. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  399. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  400. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
  401. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/testing_provider.py +0 -0
  402. {orionis-0.546.0 → orionis-0.548.0}/orionis/foundation/providers/workers_provider.py +0 -0
  403. {orionis-0.546.0 → orionis-0.548.0}/orionis/metadata/__init__.py +0 -0
  404. {orionis-0.546.0 → orionis-0.548.0}/orionis/metadata/package.py +0 -0
  405. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/__init__.py +0 -0
  406. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/__init__.py +0 -0
  407. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  408. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  409. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/coroutines.py +0 -0
  410. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  411. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
  412. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/__init__.py +0 -0
  413. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/contracts/__init__.py +0 -0
  414. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/contracts/caster.py +0 -0
  415. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/contracts/env.py +0 -0
  416. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/core/__init__.py +0 -0
  417. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/core/dot_env.py +0 -0
  418. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  419. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/enums/__init__.py +0 -0
  420. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/enums/value_type.py +0 -0
  421. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/env.py +0 -0
  422. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  423. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/exceptions/exception.py +0 -0
  424. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/exceptions/value.py +0 -0
  425. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/helpers/__init__.py +0 -0
  426. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/helpers/functions.py +0 -0
  427. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/key/__init__.py +0 -0
  428. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/validators/__init__.py +0 -0
  429. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/validators/key_name.py +0 -0
  430. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/environment/validators/types.py +0 -0
  431. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/file/__init__.py +0 -0
  432. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/file/contracts/__init__.py +0 -0
  433. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/file/contracts/directory.py +0 -0
  434. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/file/directory.py +0 -0
  435. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/inspirational/__init__.py +0 -0
  436. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  437. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  438. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/inspirational/inspire.py +0 -0
  439. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/inspirational/quotes.py +0 -0
  440. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/__init__.py +0 -0
  441. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  442. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  443. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  444. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  445. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/callables/__init__.py +0 -0
  446. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  447. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  448. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/callables/reflection.py +0 -0
  449. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  450. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  451. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  452. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  453. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dataclass/__init__.py +0 -0
  454. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dataclass/attributes.py +0 -0
  455. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  456. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  457. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  458. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  459. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  460. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  461. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  462. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  463. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
  464. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/exceptions/type.py +0 -0
  465. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/exceptions/value.py +0 -0
  466. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/instances/__init__.py +0 -0
  467. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  468. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  469. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/instances/reflection.py +0 -0
  470. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/modules/__init__.py +0 -0
  471. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  472. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  473. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/modules/reflection.py +0 -0
  474. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/objects/__init__.py +0 -0
  475. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/objects/types.py +0 -0
  476. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/introspection/reflection.py +0 -0
  477. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/__init__.py +0 -0
  478. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/contracts/__init__.py +0 -0
  479. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/contracts/log_service.py +0 -0
  480. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/exceptions/__init__.py +0 -0
  481. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/exceptions/runtime.py +0 -0
  482. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/handlers/__init__.py +0 -0
  483. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/handlers/filename.py +0 -0
  484. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  485. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  486. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/log/log_service.py +0 -0
  487. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/__init__.py +0 -0
  488. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/contracts/__init__.py +0 -0
  489. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/contracts/imports.py +0 -0
  490. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/contracts/workers.py +0 -0
  491. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/imports.py +0 -0
  492. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/runtime/__init__.py +0 -0
  493. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/runtime/imports.py +0 -0
  494. {orionis-0.546.0 → orionis-0.548.0}/orionis/services/system/workers.py +0 -0
  495. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/__init__.py +0 -0
  496. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/entities/__init__.py +0 -0
  497. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/entities/base.py +0 -0
  498. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/__init__.py +0 -0
  499. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/application.py +0 -0
  500. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/application.pyi +0 -0
  501. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/console.py +0 -0
  502. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/console.pyi +0 -0
  503. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/directory.py +0 -0
  504. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/directory.pyi +0 -0
  505. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/dumper.py +0 -0
  506. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/dumper.pyi +0 -0
  507. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/executor.py +0 -0
  508. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/executor.pyi +0 -0
  509. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/inspire.py +0 -0
  510. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/inspire.pyi +0 -0
  511. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/logger.py +0 -0
  512. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/logger.pyi +0 -0
  513. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/performance_counter.py +0 -0
  514. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/performance_counter.pyi +0 -0
  515. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/progress_bar.py +0 -0
  516. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/progress_bar.pyi +0 -0
  517. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/reactor.py +0 -0
  518. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/reactor.pyi +0 -0
  519. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/testing.py +0 -0
  520. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/testing.pyi +0 -0
  521. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/workers.py +0 -0
  522. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/facades/workers.pyi +0 -0
  523. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/__init__.py +0 -0
  524. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  525. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  526. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  527. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  528. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/formatter/serializer.py +0 -0
  529. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/patterns/__init__.py +0 -0
  530. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  531. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/patterns/singleton/meta.py +0 -0
  532. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/performance/__init__.py +0 -0
  533. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/performance/contracts/__init__.py +0 -0
  534. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/performance/contracts/counter.py +0 -0
  535. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/performance/counter.py +0 -0
  536. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/__init__.py +0 -0
  537. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/contracts/__init__.py +0 -0
  538. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/contracts/std.py +0 -0
  539. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  540. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/exceptions/value.py +0 -0
  541. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/standard/std.py +0 -0
  542. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/wrapper/__init__.py +0 -0
  543. {orionis-0.546.0 → orionis-0.548.0}/orionis/support/wrapper/dot_dict.py +0 -0
  544. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/__init__.py +0 -0
  545. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/cases/__init__.py +0 -0
  546. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/cases/asynchronous.py +0 -0
  547. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/cases/synchronous.py +0 -0
  548. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/__init__.py +0 -0
  549. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/dumper.py +0 -0
  550. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/kernel.py +0 -0
  551. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/logs.py +0 -0
  552. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/printer.py +0 -0
  553. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/render.py +0 -0
  554. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/test_result.py +0 -0
  555. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/contracts/unit_test.py +0 -0
  556. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/core/__init__.py +0 -0
  557. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/core/unit_test.py +0 -0
  558. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/entities/__init__.py +0 -0
  559. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/entities/result.py +0 -0
  560. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/enums/__init__.py +0 -0
  561. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/enums/status.py +0 -0
  562. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/__init__.py +0 -0
  563. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/config.py +0 -0
  564. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/failure.py +0 -0
  565. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/persistence.py +0 -0
  566. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/runtime.py +0 -0
  567. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/exceptions/value.py +0 -0
  568. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/kernel.py +0 -0
  569. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/output/__init__.py +0 -0
  570. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/output/dumper.py +0 -0
  571. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/output/printer.py +0 -0
  572. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/records/__init__.py +0 -0
  573. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/records/logs.py +0 -0
  574. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/__init__.py +0 -0
  575. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/base_path.py +0 -0
  576. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/execution_mode.py +0 -0
  577. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/fail_fast.py +0 -0
  578. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/folder_path.py +0 -0
  579. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/module_name.py +0 -0
  580. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/name_pattern.py +0 -0
  581. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/pattern.py +0 -0
  582. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/persistent.py +0 -0
  583. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/persistent_driver.py +0 -0
  584. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/print_result.py +0 -0
  585. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/tags.py +0 -0
  586. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/throw_exception.py +0 -0
  587. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/verbosity.py +0 -0
  588. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/web_report.py +0 -0
  589. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/validators/workers.py +0 -0
  590. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/view/__init__.py +0 -0
  591. {orionis-0.546.0 → orionis-0.548.0}/orionis/test/view/render.py +0 -0
  592. {orionis-0.546.0 → orionis-0.548.0}/orionis.egg-info/dependency_links.txt +0 -0
  593. /orionis-0.546.0/orionis.egg-info/zip-safe → /orionis-0.548.0/orionis.egg-info/not-zip-safe +0 -0
  594. {orionis-0.546.0 → orionis-0.548.0}/orionis.egg-info/requires.txt +0 -0
  595. {orionis-0.546.0 → orionis-0.548.0}/setup.cfg +0 -0
@@ -0,0 +1,20 @@
1
+ include README.md
2
+ include LICENSE
3
+
4
+ recursive-include orionis *.py *.html
5
+
6
+ exclude app/*
7
+ exclude bootstrap/*
8
+ exclude config/*
9
+ exclude database/*
10
+ exclude routes/*
11
+ exclude storage/*
12
+ exclude tests/*
13
+
14
+ recursive-exclude app *
15
+ recursive-exclude bootstrap *
16
+ recursive-exclude config *
17
+ recursive-exclude database *
18
+ recursive-exclude routes *
19
+ recursive-exclude storage *
20
+ recursive-exclude tests *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.546.0
3
+ Version: 0.548.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -44,23 +44,6 @@ class BaseScheduleEventListener(IScheduleEventListener):
44
44
  """
45
45
  pass # Placeholder for post-job execution logic
46
46
 
47
- async def onSuccess(self, event: EventJob, schedule):
48
- """
49
- Called when a job is successfully executed.
50
-
51
- Parameters
52
- ----------
53
- event : EventJob
54
- The successful job execution event containing details about the job.
55
- schedule : ISchedule
56
- The associated schedule instance managing the job.
57
-
58
- Returns
59
- -------
60
- None
61
- """
62
- pass # Placeholder for logic to handle successful job execution
63
-
64
47
  async def onFailure(self, event: EventJob, schedule):
65
48
  """
66
49
  Called when a job execution fails.
@@ -43,24 +43,6 @@ class IScheduleEventListener(ABC):
43
43
  """
44
44
  pass
45
45
 
46
- @abstractmethod
47
- async def onSuccess(self, event: EventJob, schedule):
48
- """
49
- Called when a job is successfully executed.
50
-
51
- Parameters
52
- ----------
53
- event : EventJob
54
- The successful job execution event containing details about the job.
55
- schedule : ISchedule
56
- The associated schedule instance managing the job.
57
-
58
- Returns
59
- -------
60
- None
61
- """
62
- pass
63
-
64
46
  @abstractmethod
65
47
  async def onFailure(self, event: EventJob, schedule):
66
48
  """
@@ -237,8 +237,9 @@ class App(BaseEntity):
237
237
  # Validate `key` attribute
238
238
  if self.key is None:
239
239
  self.key = SecureKeyGenerator.generate()
240
- if not isinstance(self.key, str):
241
- raise OrionisIntegrityException("The 'key' attribute must be a string.")
240
+ Env.set('APP_KEY', self.key)
241
+ if not isinstance(self.key, (bytes, str)) or not self.key.strip():
242
+ raise OrionisIntegrityException("The 'key' attribute must be a non-empty string.")
242
243
 
243
244
  # Validate `maintenance` attribute
244
245
  if not isinstance(self.maintenance, str) or not self.name.strip() or not self.maintenance.startswith('/'):
@@ -0,0 +1,20 @@
1
+ from enum import Enum
2
+
3
+ class Cipher(Enum):
4
+ """
5
+ Enumeration of supported AES cipher modes.
6
+
7
+ This enum defines various Advanced Encryption Standard (AES) cipher modes and key sizes
8
+ commonly used for encryption and decryption operations.
9
+
10
+ Members:
11
+ - AES_128_CBC: AES with a 128-bit key in Cipher Block Chaining (CBC) mode.
12
+ - AES_256_CBC: AES with a 256-bit key in Cipher Block Chaining (CBC) mode.
13
+ - AES_128_GCM: AES with a 128-bit key in Galois/Counter Mode (GCM).
14
+ - AES_256_GCM: AES with a 256-bit key in Galois/Counter Mode (GCM).
15
+ """
16
+
17
+ AES_128_CBC = "AES-128-CBC"
18
+ AES_256_CBC = "AES-256-CBC"
19
+ AES_128_GCM = "AES-128-GCM"
20
+ AES_256_GCM = "AES-256-GCM"
@@ -94,8 +94,8 @@ class Session(BaseEntity):
94
94
  # Validate secret_key
95
95
  if self.secret_key is None:
96
96
  self.secret_key = SecretKey.random()
97
- if not isinstance(self.secret_key, str) or not self.secret_key.strip():
98
- raise OrionisIntegrityException("Session secret_key must be a non-empty string")
97
+ if not isinstance(self.secret_key, (bytes, str)) or not self.secret_key.strip():
98
+ raise OrionisIntegrityException("secret_key must be a non-empty string")
99
99
 
100
100
  # Validate session_cookie
101
101
  if not isinstance(self.session_cookie, str) or not self.session_cookie.strip():
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.546.0"
8
+ VERSION = "0.548.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -0,0 +1,115 @@
1
+ import base64
2
+ import json
3
+ import os
4
+ from typing import Optional
5
+ from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
6
+ from cryptography.hazmat.backends import default_backend
7
+ from cryptography.hazmat.primitives.ciphers.aead import AESGCM
8
+
9
+
10
+ class Encrypter:
11
+
12
+ SUPPORTED_CIPHERS = ["AES-128-CBC", "AES-256-CBC", "AES-128-GCM", "AES-256-GCM"]
13
+
14
+ def __init__(self, app_key: str, cipher: str = "AES-256-CBC"):
15
+ # Decodificar APP_KEY de Laravel
16
+ if app_key.startswith("base64:"):
17
+ key_bytes = base64.b64decode(app_key[7:])
18
+ else:
19
+ key_bytes = app_key.encode()
20
+
21
+ self.key = key_bytes
22
+ self.cipher = cipher
23
+
24
+ # Validar cipher
25
+ if cipher not in self.SUPPORTED_CIPHERS:
26
+ raise ValueError(f"Cipher '{cipher}' no soportado. Usa uno de: {self.SUPPORTED_CIPHERS}")
27
+
28
+ # Validar longitud de clave según el cipher
29
+ key_len = len(self.key)
30
+ if cipher.startswith("AES-128") and key_len != 16:
31
+ raise ValueError("La clave debe ser de 16 bytes para AES-128")
32
+ if cipher.startswith("AES-256") and key_len != 32:
33
+ raise ValueError("La clave debe ser de 32 bytes para AES-256")
34
+
35
+ def encrypt(self, plaintext: str) -> str:
36
+ data = plaintext.encode()
37
+
38
+ if "GCM" in self.cipher:
39
+ return self._encrypt_gcm(data)
40
+ else:
41
+ return self._encrypt_cbc(data)
42
+
43
+ def decrypt(self, payload: str) -> str:
44
+ # Decodificar base64 -> JSON
45
+ decoded = base64.b64decode(payload).decode()
46
+ data = json.loads(decoded)
47
+
48
+ cipher = data.get("cipher")
49
+ iv = base64.b64decode(data["iv"])
50
+ value = base64.b64decode(data["value"])
51
+ tag = base64.b64decode(data["tag"]) if data.get("tag") else None
52
+
53
+ if cipher != self.cipher:
54
+ raise ValueError(f"El cipher del payload '{cipher}' no coincide con el configurado '{self.cipher}'")
55
+
56
+ if "GCM" in cipher:
57
+ return self._decrypt_gcm(value, iv, tag).decode()
58
+ else:
59
+ return self._decrypt_cbc(value, iv).decode()
60
+
61
+ # -------------------
62
+ # Métodos privados CBC
63
+ # -------------------
64
+ def _encrypt_cbc(self, data: bytes) -> str:
65
+ iv = os.urandom(16)
66
+ cipher = Cipher(algorithms.AES(self.key), modes.CBC(iv), backend=default_backend())
67
+ encryptor = cipher.encryptor()
68
+
69
+ # PKCS7 padding
70
+ pad_len = 16 - (len(data) % 16)
71
+ data += bytes([pad_len]) * pad_len
72
+
73
+ ct = encryptor.update(data) + encryptor.finalize()
74
+
75
+ payload = {
76
+ "iv": base64.b64encode(iv).decode(),
77
+ "value": base64.b64encode(ct).decode(),
78
+ "tag": None,
79
+ "cipher": self.cipher,
80
+ }
81
+
82
+ return base64.b64encode(json.dumps(payload).encode()).decode()
83
+
84
+ def _decrypt_cbc(self, ct: bytes, iv: bytes) -> bytes:
85
+ cipher = Cipher(algorithms.AES(self.key), modes.CBC(iv), backend=default_backend())
86
+ decryptor = cipher.decryptor()
87
+ data = decryptor.update(ct) + decryptor.finalize()
88
+
89
+ # Unpad PKCS7
90
+ pad_len = data[-1]
91
+ return data[:-pad_len]
92
+
93
+ # -------------------
94
+ # Métodos privados GCM
95
+ # -------------------
96
+ def _encrypt_gcm(self, data: bytes) -> str:
97
+ iv = os.urandom(12)
98
+ aesgcm = AESGCM(self.key)
99
+ ct = aesgcm.encrypt(iv, data, None)
100
+
101
+ # separar ciphertext y tag (últimos 16 bytes)
102
+ value, tag = ct[:-16], ct[-16:]
103
+
104
+ payload = {
105
+ "iv": base64.b64encode(iv).decode(),
106
+ "value": base64.b64encode(value).decode(),
107
+ "tag": base64.b64encode(tag).decode(),
108
+ "cipher": self.cipher,
109
+ }
110
+
111
+ return base64.b64encode(json.dumps(payload).encode()).decode()
112
+
113
+ def _decrypt_gcm(self, value: bytes, iv: bytes, tag: Optional[bytes]) -> bytes:
114
+ aesgcm = AESGCM(self.key)
115
+ return aesgcm.decrypt(iv, value + tag, None)
@@ -255,64 +255,72 @@ class EnvironmentCaster(IEnvironmentCaster):
255
255
  """
256
256
  Convert the internal value to a Base64 encoded string with the type hint prefix.
257
257
 
258
+ - If the value is already valid base64, leave it as-is.
259
+ - Otherwise, encode it to base64.
260
+
258
261
  Returns
259
262
  -------
260
263
  str
261
- A string in the format "<type_hint>:<base64_value>", where <base64_value> is the Base64
262
- encoded representation of the internal value.
263
-
264
- Raises
265
- ------
266
- OrionisEnvironmentValueError
267
- If the internal value is not a string or bytes.
264
+ A string in the format "<type_hint>:<base64_value>".
268
265
  """
269
-
270
- # Import the base64 module for encoding
271
266
  import base64
272
267
 
273
- # Ensure the internal value is a string or bytes before encoding
274
268
  if not isinstance(self.__value_raw, (str, bytes)):
275
269
  raise OrionisEnvironmentValueError(
276
270
  f"Value must be a string or bytes to convert to Base64, got {type(self.__value_raw).__name__} instead."
277
271
  )
278
272
 
279
- # Encode the value in Base64
280
- encoded_value = base64.b64encode(str(self.__value_raw).encode()).decode()
273
+ # Normalizar a str
274
+ if isinstance(self.__value_raw, bytes):
275
+ candidate = self.__value_raw.decode("utf-8", errors="ignore")
276
+ else:
277
+ candidate = self.__value_raw
278
+
279
+ try:
280
+ # Validar si ya es base64 válido
281
+ base64.b64decode(candidate, validate=True)
282
+ encoded_value = candidate
283
+ except Exception:
284
+ # No era base64, entonces convertirlo
285
+ raw_bytes = (
286
+ self.__value_raw.encode() if isinstance(self.__value_raw, str) else self.__value_raw
287
+ )
288
+ encoded_value = base64.b64encode(raw_bytes).decode("utf-8")
281
289
 
282
- # Return the formatted string with type hint and Base64 encoded value
283
290
  return f"{self.__type_hint}:{encoded_value}"
284
291
 
285
- def __parseBase64(self) -> str:
292
+ def __parseBase64(self) -> bytes:
286
293
  """
287
294
  Decode the internal raw value from Base64 encoding.
288
295
 
289
- Decodes the Base64-encoded string stored in the internal raw value and returns the decoded result as a string.
290
- If decoding fails, raises an OrionisEnvironmentValueException.
291
-
292
296
  Returns
293
297
  -------
294
- str
295
- The decoded string from the Base64-encoded internal value.
298
+ bytes
299
+ The decoded raw bytes from the Base64-encoded internal value.
296
300
 
297
301
  Raises
298
302
  ------
299
303
  OrionisEnvironmentValueException
300
304
  If the internal value cannot be decoded from Base64.
301
305
  """
302
-
303
- # Import the base64 module for decoding
304
306
  import base64
305
307
 
306
308
  try:
309
+ raw_value = self.__value_raw
310
+ if isinstance(raw_value, bytes):
311
+ raw_value = raw_value.decode("utf-8", errors="ignore")
307
312
 
308
- # Decode the Base64 encoded value and return as string
309
- decoded_value = base64.b64decode(self.__value_raw).decode()
310
- return decoded_value
313
+ decoded = base64.b64decode(raw_value, validate=True)
311
314
 
312
- except Exception as e:
315
+ try:
316
+ return decoded.decode("utf-8")
317
+ except UnicodeDecodeError:
318
+ return decoded
313
319
 
314
- # Raise a custom exception if decoding fails
315
- raise OrionisEnvironmentValueException(f"Cannot decode Base64 value '{self.__value_raw}': {str(e)}")
320
+ except Exception as e:
321
+ raise OrionisEnvironmentValueException(
322
+ f"Cannot decode Base64 value '{self.__value_raw}': {str(e)}"
323
+ )
316
324
 
317
325
  def __parsePath(self):
318
326
  """
@@ -0,0 +1,47 @@
1
+ import os
2
+ import base64
3
+
4
+ class SecureKeyGenerator:
5
+ """
6
+ Utility class for generating Laravel-compatible APP_KEY values.
7
+
8
+ Laravel expects keys in Base64 format, prefixed with 'base64:'.
9
+ Supported ciphers: AES-128-CBC, AES-256-CBC, AES-128-GCM, AES-256-GCM.
10
+ """
11
+
12
+ KEY_SIZES = {
13
+ "AES-128-CBC": 16,
14
+ "AES-256-CBC": 32,
15
+ "AES-128-GCM": 16,
16
+ "AES-256-GCM": 32,
17
+ }
18
+
19
+ @staticmethod
20
+ def generate(cipher: str = "AES-256-CBC") -> str:
21
+ """
22
+ Generate a Laravel-compatible APP_KEY.
23
+
24
+ Parameters
25
+ ----------
26
+ cipher : str
27
+ The cipher algorithm. Options: AES-128-CBC, AES-256-CBC,
28
+ AES-128-GCM, AES-256-GCM. Default is AES-256-CBC.
29
+
30
+ Returns
31
+ -------
32
+ str
33
+ A string formatted like Laravel's APP_KEY (e.g., base64:xxxx).
34
+ """
35
+ if cipher not in SecureKeyGenerator.KEY_SIZES:
36
+ raise ValueError(
37
+ f"Cipher '{cipher}' no soportado. "
38
+ f"Opciones: {', '.join(SecureKeyGenerator.KEY_SIZES.keys())}"
39
+ )
40
+
41
+ key_length = SecureKeyGenerator.KEY_SIZES[cipher]
42
+
43
+ # Generate secure random bytes
44
+ key = os.urandom(key_length)
45
+
46
+ # Encode in Base64 and prepend 'base64:'
47
+ return "base64:" + base64.b64encode(key).decode("utf-8")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.546.0
3
+ Version: 0.548.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -7,9 +7,9 @@ orionis/app.py
7
7
  orionis.egg-info/PKG-INFO
8
8
  orionis.egg-info/SOURCES.txt
9
9
  orionis.egg-info/dependency_links.txt
10
+ orionis.egg-info/not-zip-safe
10
11
  orionis.egg-info/requires.txt
11
12
  orionis.egg-info/top_level.txt
12
- orionis.egg-info/zip-safe
13
13
  orionis/console/__init__.py
14
14
  orionis/console/kernel.py
15
15
  orionis/console/args/__init__.py
@@ -260,6 +260,7 @@ orionis/services/asynchrony/contracts/__init__.py
260
260
  orionis/services/asynchrony/contracts/coroutines.py
261
261
  orionis/services/asynchrony/exceptions/__init__.py
262
262
  orionis/services/asynchrony/exceptions/exception.py
263
+ orionis/services/encrypter/encrypter.py
263
264
  orionis/services/environment/__init__.py
264
265
  orionis/services/environment/env.py
265
266
  orionis/services/environment/contracts/__init__.py
@@ -441,149 +442,4 @@ orionis/test/validators/verbosity.py
441
442
  orionis/test/validators/web_report.py
442
443
  orionis/test/validators/workers.py
443
444
  orionis/test/view/__init__.py
444
- orionis/test/view/render.py
445
- tests/container/__init__.py
446
- tests/container/context/__init__.py
447
- tests/container/context/test_manager.py
448
- tests/container/context/test_scope.py
449
- tests/container/core/__init__.py
450
- tests/container/core/test_advanced_async.py
451
- tests/container/core/test_async_optimizations.py
452
- tests/container/core/test_container.py
453
- tests/container/core/test_singleton.py
454
- tests/container/core/test_thread_safety.py
455
- tests/container/entities/__init__.py
456
- tests/container/entities/test_binding.py
457
- tests/container/enums/__init__.py
458
- tests/container/enums/test_lifetimes.py
459
- tests/container/facades/__init__.py
460
- tests/container/facades/test_facade.py
461
- tests/container/mocks/__init__.py
462
- tests/container/mocks/mock_advanced_async.py
463
- tests/container/mocks/mock_async_optimizations.py
464
- tests/container/mocks/mock_auto_resolution.py
465
- tests/container/mocks/mock_complex_classes.py
466
- tests/container/mocks/mock_simple_classes.py
467
- tests/container/providers/__init__.py
468
- tests/container/providers/test_providers.py
469
- tests/container/validators/__init__.py
470
- tests/container/validators/test_implements.py
471
- tests/container/validators/test_is_abstract_class.py
472
- tests/container/validators/test_is_callable.py
473
- tests/container/validators/test_is_concrete_class.py
474
- tests/container/validators/test_is_instance.py
475
- tests/container/validators/test_is_not_subclass.py
476
- tests/container/validators/test_is_subclass.py
477
- tests/container/validators/test_is_valid_alias.py
478
- tests/container/validators/test_lifetime.py
479
- tests/example/__init__.py
480
- tests/example/test_example.py
481
- tests/foundation/__init__.py
482
- tests/foundation/config/__init__.py
483
- tests/foundation/config/app/__init__.py
484
- tests/foundation/config/app/test_foundation_config_app.py
485
- tests/foundation/config/auth/__init__.py
486
- tests/foundation/config/auth/test_foundation_config_auth.py
487
- tests/foundation/config/cache/__init__.py
488
- tests/foundation/config/cache/test_foundation_config_cache.py
489
- tests/foundation/config/cache/test_foundation_config_cache_file.py
490
- tests/foundation/config/cache/test_foundation_config_cache_stores.py
491
- tests/foundation/config/cors/__init__.py
492
- tests/foundation/config/cors/test_foundation_config_cors.py
493
- tests/foundation/config/database/__init__.py
494
- tests/foundation/config/database/test_foundation_config_database.py
495
- tests/foundation/config/database/test_foundation_config_database_connections.py
496
- tests/foundation/config/database/test_foundation_config_database_mysql.py
497
- tests/foundation/config/database/test_foundation_config_database_oracle.py
498
- tests/foundation/config/database/test_foundation_config_database_pgsql.py
499
- tests/foundation/config/database/test_foundation_config_database_sqlite.py
500
- tests/foundation/config/filesystems/__init__.py
501
- tests/foundation/config/filesystems/test_foundation_config_filesystems.py
502
- tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py
503
- tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py
504
- tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py
505
- tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py
506
- tests/foundation/config/logging/__init__.py
507
- tests/foundation/config/logging/test_foundation_config_logging.py
508
- tests/foundation/config/logging/test_foundation_config_logging_channels.py
509
- tests/foundation/config/logging/test_foundation_config_logging_chunked.py
510
- tests/foundation/config/logging/test_foundation_config_logging_daily.py
511
- tests/foundation/config/logging/test_foundation_config_logging_hourly.py
512
- tests/foundation/config/logging/test_foundation_config_logging_monthly.py
513
- tests/foundation/config/logging/test_foundation_config_logging_stack.py
514
- tests/foundation/config/logging/test_foundation_config_logging_weekly.py
515
- tests/foundation/config/mail/__init__.py
516
- tests/foundation/config/mail/test_foundation_config_mail.py
517
- tests/foundation/config/mail/test_foundation_config_mail_file.py
518
- tests/foundation/config/mail/test_foundation_config_mail_mailers.py
519
- tests/foundation/config/mail/test_foundation_config_mail_smtp.py
520
- tests/foundation/config/queue/__init__.py
521
- tests/foundation/config/queue/test_foundation_config_queue.py
522
- tests/foundation/config/queue/test_foundation_config_queue_brokers.py
523
- tests/foundation/config/queue/test_foundation_config_queue_database.py
524
- tests/foundation/config/root/__init__.py
525
- tests/foundation/config/root/test_foundation_config_root_paths.py
526
- tests/foundation/config/session/__init__.py
527
- tests/foundation/config/session/test_foundation_config_session.py
528
- tests/foundation/config/startup/__init__.py
529
- tests/foundation/config/startup/test_foundation_config_startup.py
530
- tests/foundation/config/testing/__init__.py
531
- tests/foundation/config/testing/test_foundation_config_testing.py
532
- tests/metadata/__init__.py
533
- tests/metadata/test_metadata_framework.py
534
- tests/metadata/test_metadata_package.py
535
- tests/services/__init__.py
536
- tests/services/asynchrony/__init__.py
537
- tests/services/asynchrony/test_services_asynchrony_coroutine.py
538
- tests/services/environment/__init__.py
539
- tests/services/environment/test_services_environment.py
540
- tests/services/introspection/__init__.py
541
- tests/services/introspection/test_reflection.py
542
- tests/services/introspection/dependencies/__init__.py
543
- tests/services/introspection/dependencies/test_reflect_dependencies.py
544
- tests/services/introspection/dependencies/mocks/__init__.py
545
- tests/services/introspection/dependencies/mocks/mock_user.py
546
- tests/services/introspection/dependencies/mocks/mock_user_controller.py
547
- tests/services/introspection/dependencies/mocks/mock_users_permissions.py
548
- tests/services/introspection/reflection/__init__.py
549
- tests/services/introspection/reflection/test_reflection_abstract.py
550
- tests/services/introspection/reflection/test_reflection_callable.py
551
- tests/services/introspection/reflection/test_reflection_concrete.py
552
- tests/services/introspection/reflection/test_reflection_instance.py
553
- tests/services/introspection/reflection/test_reflection_module.py
554
- tests/services/introspection/reflection/mock/__init__.py
555
- tests/services/introspection/reflection/mock/fake_reflect_instance.py
556
- tests/services/log/__init__.py
557
- tests/services/log/test_log.py
558
- tests/services/system/__init__.py
559
- tests/services/system/test_services_system_imports.py
560
- tests/services/system/test_services_system_workers.py
561
- tests/support/__init__.py
562
- tests/support/entities/__init__.py
563
- tests/support/entities/mock_dataclass.py
564
- tests/support/entities/test_base.py
565
- tests/support/patterns/__init__.py
566
- tests/support/patterns/singleton/__init__.py
567
- tests/support/patterns/singleton/test_patterns_singleton.py
568
- tests/support/standard/__init__.py
569
- tests/support/standard/test_services_std.py
570
- tests/support/wrapper/__init__.py
571
- tests/support/wrapper/test_services_wrapper_docdict.py
572
- tests/testing/__init__.py
573
- tests/testing/test_testing_unit.py
574
- tests/testing/cases/__init__.py
575
- tests/testing/cases/test_testing_asynchronous.py
576
- tests/testing/cases/test_testing_synchronous.py
577
- tests/testing/entities/__init__.py
578
- tests/testing/entities/test_testing_result.py
579
- tests/testing/enums/__init__.py
580
- tests/testing/enums/test_testing_status.py
581
- tests/testing/output/__init__.py
582
- tests/testing/output/test_testing_dumper.py
583
- tests/testing/output/test_testing_printer.py
584
- tests/testing/records/__init__.py
585
- tests/testing/records/test_testing_records.py
586
- tests/testing/validators/__init__.py
587
- tests/testing/validators/test_testing_validators.py
588
- tests/testing/view/__init__.py
589
- tests/testing/view/test_render.py
445
+ orionis/test/view/render.py
@@ -54,13 +54,13 @@ setup(
54
54
  license='MIT',
55
55
  packages=find_packages(
56
56
  exclude=[
57
- 'app',
58
- 'bootstrap',
59
- 'config',
60
- 'database'
61
- 'routes',
62
- 'storage',
63
- 'tests'
57
+ 'app', 'app.*',
58
+ 'bootstrap', 'bootstrap.*',
59
+ 'config', 'config.*',
60
+ 'database', 'database.*',
61
+ 'routes', 'routes.*',
62
+ 'storage', 'storage.*',
63
+ 'tests', 'tests.*'
64
64
  ]
65
65
  ),
66
66
  include_package_data=True,
@@ -68,5 +68,5 @@ setup(
68
68
  python_requires=PYTHON_REQUIRES,
69
69
  install_requires=REQUIRES,
70
70
  keywords=KEYWORDS,
71
- zip_safe=True
71
+ zip_safe=False
72
72
  )
@@ -1,3 +0,0 @@
1
- include README.md
2
- include LICENSE
3
- recursive-include orionis *.py *.html
@@ -1,34 +0,0 @@
1
- from enum import Enum
2
-
3
- class Cipher(Enum):
4
- """
5
- Enumeration of supported AES cipher modes.
6
-
7
- This enum defines various Advanced Encryption Standard (AES) cipher modes and key sizes
8
- commonly used for encryption and decryption operations.
9
-
10
- Members:
11
- AES_128_CBC: AES with 128-bit key in Cipher Block Chaining (CBC) mode.
12
- AES_192_CBC: AES with 192-bit key in CBC mode.
13
- AES_256_CBC: AES with 256-bit key in CBC mode.
14
- AES_128_GCM: AES with 128-bit key in Galois/Counter Mode (GCM).
15
- AES_256_GCM: AES with 256-bit key in GCM.
16
- AES_CTR: AES in Counter (CTR) mode.
17
- AES_CFB: AES in Cipher Feedback (CFB) mode.
18
- AES_CFB8: AES in CFB mode with 8-bit feedback.
19
- AES_CFB128: AES in CFB mode with 128-bit feedback.
20
- AES_OFB: AES in Output Feedback (OFB) mode.
21
- AES_ECB: AES in Electronic Codebook (ECB) mode.
22
- """
23
-
24
- AES_128_CBC = "AES-128-CBC"
25
- AES_192_CBC = "AES-192-CBC"
26
- AES_256_CBC = "AES-256-CBC"
27
- AES_128_GCM = "AES-128-GCM"
28
- AES_256_GCM = "AES-256-GCM"
29
- AES_CTR = "AES-CTR"
30
- AES_CFB = "AES-CFB"
31
- AES_CFB8 = "AES-CFB8"
32
- AES_CFB128 = "AES-CFB128"
33
- AES_OFB = "AES-OFB"
34
- AES_ECB = "AES-ECB"