coregen-cli 3.1.6__py3-none-any.whl

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 (172) hide show
  1. coregen.py +1585 -0
  2. coregen_cli-3.1.6.dist-info/METADATA +1211 -0
  3. coregen_cli-3.1.6.dist-info/RECORD +172 -0
  4. coregen_cli-3.1.6.dist-info/WHEEL +5 -0
  5. coregen_cli-3.1.6.dist-info/entry_points.txt +2 -0
  6. coregen_cli-3.1.6.dist-info/top_level.txt +2 -0
  7. generators/__init__.py +1 -0
  8. generators/assets/__init__.py +1 -0
  9. generators/assets/assets.py +30 -0
  10. generators/assets/main.py +4 -0
  11. generators/config/__init__.py +1 -0
  12. generators/config/analisy_options.py +42 -0
  13. generators/config/main.py +11 -0
  14. generators/config/pubspec.py +139 -0
  15. generators/cursor/__init__.py +3 -0
  16. generators/cursor/setup.py +87 -0
  17. generators/helpers/__init__.py +56 -0
  18. generators/helpers/component.py +1030 -0
  19. generators/helpers/config.py +255 -0
  20. generators/helpers/data_source.py +180 -0
  21. generators/helpers/domain.py +469 -0
  22. generators/helpers/feature.py +654 -0
  23. generators/helpers/navigation.py +274 -0
  24. generators/helpers/page.py +63 -0
  25. generators/helpers/project.py +33 -0
  26. generators/helpers/utils.py +338 -0
  27. generators/helpers/validation.py +364 -0
  28. generators/initializator.py +68 -0
  29. generators/main.py +81 -0
  30. generators/static/assets/logo.png +0 -0
  31. generators/static/assets/mock/auth_user.json +5 -0
  32. generators/static/assets/svgs/apple.svg +4 -0
  33. generators/static/assets/svgs/google.svg +2 -0
  34. generators/static/cursor/AGENTS.md.jinja +37 -0
  35. generators/static/cursor/agents/doc-writer.md +20 -0
  36. generators/static/cursor/agents/epic-orchestrator.md +28 -0
  37. generators/static/cursor/agents/feature-implementer.md +29 -0
  38. generators/static/cursor/agents/integration-wiring.md +30 -0
  39. generators/static/cursor/agents/layer-application.md +21 -0
  40. generators/static/cursor/agents/layer-guardian.md +21 -0
  41. generators/static/cursor/agents/layer-infrastructure.md +31 -0
  42. generators/static/cursor/agents/layer-model.md +24 -0
  43. generators/static/cursor/agents/layer-presentation.md +33 -0
  44. generators/static/cursor/docs/architecture/APIS_AND_INTEGRATION.md.jinja +42 -0
  45. generators/static/cursor/docs/architecture/CARAVAGGIO_COMPONENTS.md.jinja +317 -0
  46. generators/static/cursor/docs/architecture/DDD_LAYERS.md.jinja +32 -0
  47. generators/static/cursor/docs/architecture/FILE_TEMPLATES.md.jinja +76 -0
  48. generators/static/cursor/docs/architecture/MOCK_AND_REMOTE_DATA.md.jinja +87 -0
  49. generators/static/cursor/docs/architecture/REFERENCE_IMPLEMENTATIONS.md.jinja +48 -0
  50. generators/static/cursor/docs/architecture/WIDGETS_AND_CARAVAGGIO.md.jinja +76 -0
  51. generators/static/cursor/docs/epics/README.md +17 -0
  52. generators/static/cursor/lib/domain/AGENTS.md +23 -0
  53. generators/static/cursor/lib/features/AGENTS.md +23 -0
  54. generators/static/cursor/lib/widgets/AGENTS.md +21 -0
  55. generators/static/cursor/rules/apis-layer.mdc.jinja +21 -0
  56. generators/static/cursor/rules/application-layer.mdc.jinja +12 -0
  57. generators/static/cursor/rules/architecture-core.mdc.jinja +43 -0
  58. generators/static/cursor/rules/dart-conventions.mdc.jinja +14 -0
  59. generators/static/cursor/rules/domain-layer.mdc.jinja +24 -0
  60. generators/static/cursor/rules/login-context.mdc.jinja +16 -0
  61. generators/static/cursor/rules/presentation-layer.mdc.jinja +15 -0
  62. generators/static/cursor/rules/quality-gate.mdc.jinja +14 -0
  63. generators/static/cursor/rules/ui-caravaggio.mdc.jinja +22 -0
  64. generators/static/cursor/skills/caravaggio-ui/SKILL.md +138 -0
  65. generators/static/cursor/skills/epic-delivery/SKILL.md +74 -0
  66. generators/static/cursor/skills/epic-delivery/templates/epic-status.md +14 -0
  67. generators/static/cursor/skills/epic-delivery/templates/epic.md +36 -0
  68. generators/static/templates/apis/common/constants_template.jinja +48 -0
  69. generators/static/templates/apis/common/data_source_config_template.jinja +47 -0
  70. generators/static/templates/apis/core/api_injectable_module_template.jinja +14 -0
  71. generators/static/templates/apis/interceptors/api_logger_template.jinja +135 -0
  72. generators/static/templates/apis/interceptors/auth_interceptor_template.jinja +207 -0
  73. generators/static/templates/auth/application/auth_bloc_template.jinja +36 -0
  74. generators/static/templates/auth/application/auth_event_template.jinja +7 -0
  75. generators/static/templates/auth/application/auth_state_template.jinja +8 -0
  76. generators/static/templates/auth/infrastructure/auth_facade_module_template.jinja +16 -0
  77. generators/static/templates/auth/infrastructure/auth_facade_template.jinja +288 -0
  78. generators/static/templates/auth/infrastructure/mock_auth_facade_template.jinja +106 -0
  79. generators/static/templates/auth/model/auth_failure_template.jinja +11 -0
  80. generators/static/templates/auth/model/i_auth_facade_template.jinja +24 -0
  81. generators/static/templates/auth/model/user_template.jinja +34 -0
  82. generators/static/templates/auth/model/value_objects_template.jinja +54 -0
  83. generators/static/templates/auth/presentation/login_screen_template.jinja +24 -0
  84. generators/static/templates/auth/sign_in_form/application/sign_in_form_bloc_template.jinja +139 -0
  85. generators/static/templates/auth/sign_in_form/application/sign_in_form_event_template.jinja +15 -0
  86. generators/static/templates/auth/sign_in_form/application/sign_in_form_state_template.jinja +26 -0
  87. generators/static/templates/auth/sign_in_form/presentation/apple_form_template.jinja +16 -0
  88. generators/static/templates/auth/sign_in_form/presentation/email_password_form_template_INACTIVE.jinja +94 -0
  89. generators/static/templates/auth/sign_in_form/presentation/google_form_template.jinja +15 -0
  90. generators/static/templates/auth/sign_in_form/presentation/sign_in_form_template.jinja +381 -0
  91. generators/static/templates/component/component_bloc_template.jinja +49 -0
  92. generators/static/templates/component/component_event_template.jinja +7 -0
  93. generators/static/templates/component/component_form_bloc_template.jinja +56 -0
  94. generators/static/templates/component/component_form_event_template.jinja +7 -0
  95. generators/static/templates/component/component_form_state_template.jinja +18 -0
  96. generators/static/templates/component/component_form_widget_template.jinja +130 -0
  97. generators/static/templates/component/component_list_widget_template.jinja +95 -0
  98. generators/static/templates/component/component_state_template.jinja +9 -0
  99. generators/static/templates/component/component_widget_template.jinja +113 -0
  100. generators/static/templates/core/bloc/base_form_bloc_template.jinja +32 -0
  101. generators/static/templates/core/errors/error_localizer_template.jinja +61 -0
  102. generators/static/templates/core/infrastructure/base_mapper_template.jinja +21 -0
  103. generators/static/templates/core/infrastructure/base_repository_mixin_template.jinja +78 -0
  104. generators/static/templates/core/infrastructure/firebase_injectable_module_template.jinja +11 -0
  105. generators/static/templates/core/infrastructure/firestore_helpers_template.jinja +22 -0
  106. generators/static/templates/core/infrastructure/repository_error_handler_template.jinja +44 -0
  107. generators/static/templates/core/model/common_interfaces_template.jinja +3 -0
  108. generators/static/templates/core/model/entity_template.jinja +5 -0
  109. generators/static/templates/core/model/errors_template.jinja +15 -0
  110. generators/static/templates/core/model/failures_template.jinja +97 -0
  111. generators/static/templates/core/model/value_objects_template.jinja +135 -0
  112. generators/static/templates/core/model/value_validators_template.jinja +105 -0
  113. generators/static/templates/core/presentation/app_drawer_template.jinja +52 -0
  114. generators/static/templates/core/presentation/app_widget_template.jinja +41 -0
  115. generators/static/templates/core/presentation/bottom_nav_bar_template.jinja +32 -0
  116. generators/static/templates/domain/domain_mapper_template.jinja +39 -0
  117. generators/static/templates/domain/domain_remote_service_template.jinja +46 -0
  118. generators/static/templates/domain/domain_repository_template.jinja +90 -0
  119. generators/static/templates/domain/domain_service_module_template.jinja +23 -0
  120. generators/static/templates/domain/enum_template.jinja +3 -0
  121. generators/static/templates/domain/i_domain_service_template.jinja +18 -0
  122. generators/static/templates/domain/mock_domain_service_template.jinja +73 -0
  123. generators/static/templates/feature/feature_bloc_template.jinja +104 -0
  124. generators/static/templates/feature/feature_dto_template.jinja +26 -0
  125. generators/static/templates/feature/feature_entity_template.jinja +23 -0
  126. generators/static/templates/feature/feature_event_template.jinja +20 -0
  127. generators/static/templates/feature/feature_extensions_template.jinja +25 -0
  128. generators/static/templates/feature/feature_failure_template.jinja +11 -0
  129. generators/static/templates/feature/feature_page_template.jinja +113 -0
  130. generators/static/templates/feature/feature_repository_template.jinja +112 -0
  131. generators/static/templates/feature/feature_state_template.jinja +20 -0
  132. generators/static/templates/feature/i_feature_repository_template.jinja +21 -0
  133. generators/static/templates/feature/value_object_field_template.jinja +0 -0
  134. generators/static/templates/feature/value_object_template.jinja +0 -0
  135. generators/static/templates/feature/value_validators_template.jinja +57 -0
  136. generators/static/templates/home/home_screen_template.jinja +68 -0
  137. generators/static/templates/home/presentation/home_screen_template.jinja +52 -0
  138. generators/static/templates/home/screen_template.jinja +12 -0
  139. generators/static/templates/injection_template.jinja +8 -0
  140. generators/static/templates/logging/analytics_logging_template.jinja +42 -0
  141. generators/static/templates/logging/console_template.jinja +50 -0
  142. generators/static/templates/logging/logger_injectable_module_template.jinja +24 -0
  143. generators/static/templates/logging/logger_template.jinja +118 -0
  144. generators/static/templates/main_template.jinja +43 -0
  145. generators/static/templates/page_template.jinja +29 -0
  146. generators/static/templates/router_template.jinja +26 -0
  147. generators/static/templates/splash/presentation/splash_screen_auth_template.jinja +97 -0
  148. generators/static/templates/splash/presentation/splash_screen_template.jinja +51 -0
  149. generators/static/templates/storage/storage_repository_template.jinja +80 -0
  150. generators/static/templates/user_profile/infrastructure/user_profile_dto_template.jinja +27 -0
  151. generators/static/templates/user_profile/infrastructure/user_profile_mapper_template.jinja +43 -0
  152. generators/static/templates/user_profile/infrastructure/user_profile_repository_template.jinja +82 -0
  153. generators/static/templates/user_profile/infrastructure/user_profile_service_template.jinja +27 -0
  154. generators/static/templates/user_profile/model/i_user_profile_repository_template.jinja +34 -0
  155. generators/static/templates/user_profile/model/user_profile_failure_template.jinja +11 -0
  156. generators/static/templates/user_profile/model/user_profile_template.jinja +31 -0
  157. generators/static/templates/widgets/common/custom_scaffold_template.jinja +52 -0
  158. generators/static/templates/widgets/common/error_widget_template.jinja +22 -0
  159. generators/static/templates/widgets/common/loading_widget_template.jinja +14 -0
  160. generators/static/templates/widgets/common/unknown_state_widget_template.jinja +23 -0
  161. generators/templates/__init__.py +1 -0
  162. generators/templates/_core/core_generator.py +121 -0
  163. generators/templates/apis/apis_generator.py +50 -0
  164. generators/templates/auth/auth_generator.py +40 -0
  165. generators/templates/auth/sign_in_form_generator.py +22 -0
  166. generators/templates/copier.py +51 -0
  167. generators/templates/home/home_generator.py +26 -0
  168. generators/templates/lib/lib_generator.py +40 -0
  169. generators/templates/logging/logging_generator.py +28 -0
  170. generators/templates/main.py +75 -0
  171. generators/templates/splash/splash_generator.py +20 -0
  172. generators/templates/storage/storage_generator.py +5 -0
@@ -0,0 +1,40 @@
1
+ from pathlib import Path
2
+ from ..copier import generate_file, hex_to_dart_color
3
+
4
+
5
+ def generate_files(project_name: str, lib_path: Path, has_login: bool, primary_color: str = None, secondary_color: str = None):
6
+ """Generate main lib files using Jinja templates"""
7
+ generate_main(project_name, lib_path, primary_color, secondary_color)
8
+ generate_injection(project_name, lib_path)
9
+ generate_router(project_name, lib_path, has_login)
10
+
11
+
12
+ def generate_main(project_name: str, lib_path: Path, primary_color: str = None, secondary_color: str = None):
13
+ """Generate main.dart file using Jinja template"""
14
+ # Convert hex colors to Dart Color format, fallback to default colors if not provided
15
+ if primary_color and primary_color.strip():
16
+ primary_dart_color = hex_to_dart_color(primary_color)
17
+ else:
18
+ primary_dart_color = "Colors.blue"
19
+
20
+ if secondary_color and secondary_color.strip():
21
+ secondary_dart_color = hex_to_dart_color(secondary_color)
22
+ else:
23
+ secondary_dart_color = "Colors.orange"
24
+
25
+ generate_file(project_name, lib_path, "main_template.jinja", "main.dart", {
26
+ "primary_color": primary_dart_color,
27
+ "secondary_color": secondary_dart_color,
28
+ })
29
+
30
+
31
+ def generate_injection(project_name: str, lib_path: Path):
32
+ """Generate injection.dart file using Jinja template"""
33
+ generate_file(project_name, lib_path, "injection_template.jinja", "injection.dart")
34
+
35
+
36
+ def generate_router(project_name: str, lib_path: Path, has_login: bool):
37
+ """Generate router.dart file using Jinja template"""
38
+ generate_file(project_name, lib_path, "router_template.jinja", "router.dart", {
39
+ "has_login": has_login
40
+ })
@@ -0,0 +1,28 @@
1
+ from pathlib import Path
2
+ from ..copier import generate_file
3
+
4
+ def generate_files(project_name: str, lib_path: Path):
5
+ # logger.dart
6
+ generate_logger(project_name, lib_path)
7
+
8
+ # console.dart
9
+ generate_console(project_name, lib_path)
10
+
11
+ # analytics_logging.dart
12
+ generate_analytics_logging(project_name, lib_path)
13
+
14
+ # logger_injectable_module.dart
15
+ generate_logger_injectable_module(project_name, lib_path)
16
+
17
+
18
+ def generate_logger(project_name: str, lib_path: Path):
19
+ generate_file(project_name, lib_path, "logging/logger_template.jinja", "logging/logger.dart")
20
+
21
+ def generate_console(project_name: str, lib_path: Path):
22
+ generate_file(project_name, lib_path, "logging/console_template.jinja", "logging/console.dart")
23
+
24
+ def generate_analytics_logging(project_name: str, lib_path: Path):
25
+ generate_file(project_name, lib_path, "logging/analytics_logging_template.jinja", "logging/analytics_logging.dart")
26
+
27
+ def generate_logger_injectable_module(project_name: str, lib_path: Path):
28
+ generate_file(project_name, lib_path, "logging/logger_injectable_module_template.jinja", "logging/logger_injectable_module.dart")
@@ -0,0 +1,75 @@
1
+ import click
2
+
3
+ from .apis.apis_generator import generate_files as generate_apis_files
4
+ from .auth.auth_generator import generate_files as generate_auth_files
5
+ from .auth.sign_in_form_generator import generate_files as generate_sign_in_form_files
6
+ from .home.home_generator import generate_files as generate_home_files
7
+ from .lib.lib_generator import generate_files as generate_lib_files
8
+ from .logging.logging_generator import generate_files as generate_logging_files
9
+ from .splash.splash_generator import generate_files as generate_splash_files
10
+ from .storage.storage_generator import generate_files as generate_storage_files
11
+ from ._core.core_generator import generate_files as generate_core_files
12
+ from ._core.core_generator import generate_error_localizer
13
+
14
+ # from .core import generate_core_files
15
+ # from .model import generate_model
16
+ # from .presentation import generate_presentation
17
+ # from .application import generate_application
18
+ # from .infrastructure import generate_infrastructure
19
+ # from .api import generate_api
20
+
21
+ def generate_files(lib_path, login: bool, project_name: str, primary_color: str = None, secondary_color: str = None):
22
+ click.echo("\n📁 Generating files...")
23
+
24
+ # Generate lib files
25
+ generate_lib_files(project_name, lib_path, login, primary_color, secondary_color)
26
+
27
+ # Generate core files
28
+ generate_core_files(project_name, lib_path, login)
29
+
30
+ # Generate splash files
31
+ generate_splash_files(project_name, lib_path, login)
32
+
33
+
34
+ # Generate logging files
35
+ generate_logging_files(project_name, lib_path)
36
+
37
+ # Generate storage files
38
+ generate_storage_files(project_name, lib_path)
39
+
40
+ # Generate apis files (auth interceptor aligns with AuthBloc when login is enabled)
41
+ generate_apis_files(project_name, lib_path, has_login=login)
42
+
43
+
44
+ # Generate home files
45
+ generate_home_files(project_name, lib_path, has_login=login)
46
+
47
+ if login:
48
+ # Generate auth files
49
+ generate_auth_files(project_name, lib_path)
50
+
51
+ # Generate sign-in form files
52
+ generate_sign_in_form_files(project_name, lib_path)
53
+
54
+ # Regenerate error_localizer last so it discovers all domain failures
55
+ # (including user_profile created by auth_generator when login is enabled)
56
+ generate_error_localizer(project_name, lib_path, domain_folder="domain", has_login=login)
57
+
58
+ # # Create files in core
59
+ # generate_core_files(project_name, lib_path, login)
60
+
61
+ # # Create files in model
62
+ # generate_model(project_name, lib_path, login)
63
+
64
+ # # Create files in presentation
65
+ # generate_presentation(project_name, lib_path, login)
66
+
67
+ # if login:
68
+ # # Create files in application
69
+ # generate_application(project_name, lib_path)
70
+
71
+ # # Create files in infrastructure
72
+ # generate_infrastructure(project_name, lib_path)
73
+
74
+ # # Create files in infrastructure for storage
75
+ # generate_api(project_name, lib_path, login)
@@ -0,0 +1,20 @@
1
+ from pathlib import Path
2
+ from ..copier import generate_file
3
+
4
+ def generate_files(project_name: str, lib_path: Path, has_login: bool):
5
+ generate_presentation(project_name, lib_path, has_login)
6
+ generate_model(project_name, lib_path, has_login)
7
+ generate_application(project_name, lib_path, has_login)
8
+ generate_infrastructure(project_name, lib_path, has_login)
9
+
10
+ def generate_presentation(project_name: str, lib_path: Path, has_login: bool):
11
+ generate_file(project_name, lib_path, ("splash/presentation/splash_screen_auth_template.jinja" if has_login else "splash/presentation/splash_screen_template.jinja"), "features/splash/splash_page.dart")
12
+
13
+ def generate_model(project_name: str, lib_path: Path, has_login: bool):
14
+ pass
15
+
16
+ def generate_application(project_name: str, lib_path: Path, has_login: bool):
17
+ pass
18
+
19
+ def generate_infrastructure(project_name: str, lib_path: Path, has_login: bool):
20
+ pass
@@ -0,0 +1,5 @@
1
+ from pathlib import Path
2
+ from ..copier import generate_file
3
+
4
+ def generate_files(project_name: str, lib_path: Path):
5
+ generate_file(project_name, lib_path, "storage/storage_repository_template.jinja", "storage/storage_repository.dart")