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.
- coregen.py +1585 -0
- coregen_cli-3.1.6.dist-info/METADATA +1211 -0
- coregen_cli-3.1.6.dist-info/RECORD +172 -0
- coregen_cli-3.1.6.dist-info/WHEEL +5 -0
- coregen_cli-3.1.6.dist-info/entry_points.txt +2 -0
- coregen_cli-3.1.6.dist-info/top_level.txt +2 -0
- generators/__init__.py +1 -0
- generators/assets/__init__.py +1 -0
- generators/assets/assets.py +30 -0
- generators/assets/main.py +4 -0
- generators/config/__init__.py +1 -0
- generators/config/analisy_options.py +42 -0
- generators/config/main.py +11 -0
- generators/config/pubspec.py +139 -0
- generators/cursor/__init__.py +3 -0
- generators/cursor/setup.py +87 -0
- generators/helpers/__init__.py +56 -0
- generators/helpers/component.py +1030 -0
- generators/helpers/config.py +255 -0
- generators/helpers/data_source.py +180 -0
- generators/helpers/domain.py +469 -0
- generators/helpers/feature.py +654 -0
- generators/helpers/navigation.py +274 -0
- generators/helpers/page.py +63 -0
- generators/helpers/project.py +33 -0
- generators/helpers/utils.py +338 -0
- generators/helpers/validation.py +364 -0
- generators/initializator.py +68 -0
- generators/main.py +81 -0
- generators/static/assets/logo.png +0 -0
- generators/static/assets/mock/auth_user.json +5 -0
- generators/static/assets/svgs/apple.svg +4 -0
- generators/static/assets/svgs/google.svg +2 -0
- generators/static/cursor/AGENTS.md.jinja +37 -0
- generators/static/cursor/agents/doc-writer.md +20 -0
- generators/static/cursor/agents/epic-orchestrator.md +28 -0
- generators/static/cursor/agents/feature-implementer.md +29 -0
- generators/static/cursor/agents/integration-wiring.md +30 -0
- generators/static/cursor/agents/layer-application.md +21 -0
- generators/static/cursor/agents/layer-guardian.md +21 -0
- generators/static/cursor/agents/layer-infrastructure.md +31 -0
- generators/static/cursor/agents/layer-model.md +24 -0
- generators/static/cursor/agents/layer-presentation.md +33 -0
- generators/static/cursor/docs/architecture/APIS_AND_INTEGRATION.md.jinja +42 -0
- generators/static/cursor/docs/architecture/CARAVAGGIO_COMPONENTS.md.jinja +317 -0
- generators/static/cursor/docs/architecture/DDD_LAYERS.md.jinja +32 -0
- generators/static/cursor/docs/architecture/FILE_TEMPLATES.md.jinja +76 -0
- generators/static/cursor/docs/architecture/MOCK_AND_REMOTE_DATA.md.jinja +87 -0
- generators/static/cursor/docs/architecture/REFERENCE_IMPLEMENTATIONS.md.jinja +48 -0
- generators/static/cursor/docs/architecture/WIDGETS_AND_CARAVAGGIO.md.jinja +76 -0
- generators/static/cursor/docs/epics/README.md +17 -0
- generators/static/cursor/lib/domain/AGENTS.md +23 -0
- generators/static/cursor/lib/features/AGENTS.md +23 -0
- generators/static/cursor/lib/widgets/AGENTS.md +21 -0
- generators/static/cursor/rules/apis-layer.mdc.jinja +21 -0
- generators/static/cursor/rules/application-layer.mdc.jinja +12 -0
- generators/static/cursor/rules/architecture-core.mdc.jinja +43 -0
- generators/static/cursor/rules/dart-conventions.mdc.jinja +14 -0
- generators/static/cursor/rules/domain-layer.mdc.jinja +24 -0
- generators/static/cursor/rules/login-context.mdc.jinja +16 -0
- generators/static/cursor/rules/presentation-layer.mdc.jinja +15 -0
- generators/static/cursor/rules/quality-gate.mdc.jinja +14 -0
- generators/static/cursor/rules/ui-caravaggio.mdc.jinja +22 -0
- generators/static/cursor/skills/caravaggio-ui/SKILL.md +138 -0
- generators/static/cursor/skills/epic-delivery/SKILL.md +74 -0
- generators/static/cursor/skills/epic-delivery/templates/epic-status.md +14 -0
- generators/static/cursor/skills/epic-delivery/templates/epic.md +36 -0
- generators/static/templates/apis/common/constants_template.jinja +48 -0
- generators/static/templates/apis/common/data_source_config_template.jinja +47 -0
- generators/static/templates/apis/core/api_injectable_module_template.jinja +14 -0
- generators/static/templates/apis/interceptors/api_logger_template.jinja +135 -0
- generators/static/templates/apis/interceptors/auth_interceptor_template.jinja +207 -0
- generators/static/templates/auth/application/auth_bloc_template.jinja +36 -0
- generators/static/templates/auth/application/auth_event_template.jinja +7 -0
- generators/static/templates/auth/application/auth_state_template.jinja +8 -0
- generators/static/templates/auth/infrastructure/auth_facade_module_template.jinja +16 -0
- generators/static/templates/auth/infrastructure/auth_facade_template.jinja +288 -0
- generators/static/templates/auth/infrastructure/mock_auth_facade_template.jinja +106 -0
- generators/static/templates/auth/model/auth_failure_template.jinja +11 -0
- generators/static/templates/auth/model/i_auth_facade_template.jinja +24 -0
- generators/static/templates/auth/model/user_template.jinja +34 -0
- generators/static/templates/auth/model/value_objects_template.jinja +54 -0
- generators/static/templates/auth/presentation/login_screen_template.jinja +24 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_bloc_template.jinja +139 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_event_template.jinja +15 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_state_template.jinja +26 -0
- generators/static/templates/auth/sign_in_form/presentation/apple_form_template.jinja +16 -0
- generators/static/templates/auth/sign_in_form/presentation/email_password_form_template_INACTIVE.jinja +94 -0
- generators/static/templates/auth/sign_in_form/presentation/google_form_template.jinja +15 -0
- generators/static/templates/auth/sign_in_form/presentation/sign_in_form_template.jinja +381 -0
- generators/static/templates/component/component_bloc_template.jinja +49 -0
- generators/static/templates/component/component_event_template.jinja +7 -0
- generators/static/templates/component/component_form_bloc_template.jinja +56 -0
- generators/static/templates/component/component_form_event_template.jinja +7 -0
- generators/static/templates/component/component_form_state_template.jinja +18 -0
- generators/static/templates/component/component_form_widget_template.jinja +130 -0
- generators/static/templates/component/component_list_widget_template.jinja +95 -0
- generators/static/templates/component/component_state_template.jinja +9 -0
- generators/static/templates/component/component_widget_template.jinja +113 -0
- generators/static/templates/core/bloc/base_form_bloc_template.jinja +32 -0
- generators/static/templates/core/errors/error_localizer_template.jinja +61 -0
- generators/static/templates/core/infrastructure/base_mapper_template.jinja +21 -0
- generators/static/templates/core/infrastructure/base_repository_mixin_template.jinja +78 -0
- generators/static/templates/core/infrastructure/firebase_injectable_module_template.jinja +11 -0
- generators/static/templates/core/infrastructure/firestore_helpers_template.jinja +22 -0
- generators/static/templates/core/infrastructure/repository_error_handler_template.jinja +44 -0
- generators/static/templates/core/model/common_interfaces_template.jinja +3 -0
- generators/static/templates/core/model/entity_template.jinja +5 -0
- generators/static/templates/core/model/errors_template.jinja +15 -0
- generators/static/templates/core/model/failures_template.jinja +97 -0
- generators/static/templates/core/model/value_objects_template.jinja +135 -0
- generators/static/templates/core/model/value_validators_template.jinja +105 -0
- generators/static/templates/core/presentation/app_drawer_template.jinja +52 -0
- generators/static/templates/core/presentation/app_widget_template.jinja +41 -0
- generators/static/templates/core/presentation/bottom_nav_bar_template.jinja +32 -0
- generators/static/templates/domain/domain_mapper_template.jinja +39 -0
- generators/static/templates/domain/domain_remote_service_template.jinja +46 -0
- generators/static/templates/domain/domain_repository_template.jinja +90 -0
- generators/static/templates/domain/domain_service_module_template.jinja +23 -0
- generators/static/templates/domain/enum_template.jinja +3 -0
- generators/static/templates/domain/i_domain_service_template.jinja +18 -0
- generators/static/templates/domain/mock_domain_service_template.jinja +73 -0
- generators/static/templates/feature/feature_bloc_template.jinja +104 -0
- generators/static/templates/feature/feature_dto_template.jinja +26 -0
- generators/static/templates/feature/feature_entity_template.jinja +23 -0
- generators/static/templates/feature/feature_event_template.jinja +20 -0
- generators/static/templates/feature/feature_extensions_template.jinja +25 -0
- generators/static/templates/feature/feature_failure_template.jinja +11 -0
- generators/static/templates/feature/feature_page_template.jinja +113 -0
- generators/static/templates/feature/feature_repository_template.jinja +112 -0
- generators/static/templates/feature/feature_state_template.jinja +20 -0
- generators/static/templates/feature/i_feature_repository_template.jinja +21 -0
- generators/static/templates/feature/value_object_field_template.jinja +0 -0
- generators/static/templates/feature/value_object_template.jinja +0 -0
- generators/static/templates/feature/value_validators_template.jinja +57 -0
- generators/static/templates/home/home_screen_template.jinja +68 -0
- generators/static/templates/home/presentation/home_screen_template.jinja +52 -0
- generators/static/templates/home/screen_template.jinja +12 -0
- generators/static/templates/injection_template.jinja +8 -0
- generators/static/templates/logging/analytics_logging_template.jinja +42 -0
- generators/static/templates/logging/console_template.jinja +50 -0
- generators/static/templates/logging/logger_injectable_module_template.jinja +24 -0
- generators/static/templates/logging/logger_template.jinja +118 -0
- generators/static/templates/main_template.jinja +43 -0
- generators/static/templates/page_template.jinja +29 -0
- generators/static/templates/router_template.jinja +26 -0
- generators/static/templates/splash/presentation/splash_screen_auth_template.jinja +97 -0
- generators/static/templates/splash/presentation/splash_screen_template.jinja +51 -0
- generators/static/templates/storage/storage_repository_template.jinja +80 -0
- generators/static/templates/user_profile/infrastructure/user_profile_dto_template.jinja +27 -0
- generators/static/templates/user_profile/infrastructure/user_profile_mapper_template.jinja +43 -0
- generators/static/templates/user_profile/infrastructure/user_profile_repository_template.jinja +82 -0
- generators/static/templates/user_profile/infrastructure/user_profile_service_template.jinja +27 -0
- generators/static/templates/user_profile/model/i_user_profile_repository_template.jinja +34 -0
- generators/static/templates/user_profile/model/user_profile_failure_template.jinja +11 -0
- generators/static/templates/user_profile/model/user_profile_template.jinja +31 -0
- generators/static/templates/widgets/common/custom_scaffold_template.jinja +52 -0
- generators/static/templates/widgets/common/error_widget_template.jinja +22 -0
- generators/static/templates/widgets/common/loading_widget_template.jinja +14 -0
- generators/static/templates/widgets/common/unknown_state_widget_template.jinja +23 -0
- generators/templates/__init__.py +1 -0
- generators/templates/_core/core_generator.py +121 -0
- generators/templates/apis/apis_generator.py +50 -0
- generators/templates/auth/auth_generator.py +40 -0
- generators/templates/auth/sign_in_form_generator.py +22 -0
- generators/templates/copier.py +51 -0
- generators/templates/home/home_generator.py +26 -0
- generators/templates/lib/lib_generator.py +40 -0
- generators/templates/logging/logging_generator.py +28 -0
- generators/templates/main.py +75 -0
- generators/templates/splash/splash_generator.py +20 -0
- 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
|