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,172 @@
|
|
|
1
|
+
coregen.py,sha256=p_FakK7Ehf0GNmlE6wGNHPVTnukVhGx2f6j8Qghoge8,61854
|
|
2
|
+
generators/__init__.py,sha256=maO1L-Otrc54J1IC4bkI_z46sjlkJkQSyE0xsv3wyl8,23
|
|
3
|
+
generators/initializator.py,sha256=JQgaYhFKkEDpIrfNntli8e-EIGSnNffd9XPZ-Xrpruk,2153
|
|
4
|
+
generators/main.py,sha256=j2ppW6YRRgmN9npY2kim7IqUcw76ihR51jSd_enMj8A,3066
|
|
5
|
+
generators/assets/__init__.py,sha256=QA4gxDscwNls5mBIZ5VQFQ44wRgkZpu3Cqtww-cn3rw,29
|
|
6
|
+
generators/assets/assets.py,sha256=2tsRgw1fT_AuCSVzCF-uo8ysviE8jtNS_Q2aujYpGUA,897
|
|
7
|
+
generators/assets/main.py,sha256=MlaVi38R23v8Mclh2ZU79bEt10dP0Oit1F8tMcCUeLU,108
|
|
8
|
+
generators/config/__init__.py,sha256=lczI0iWZM_Qo7epGuXJ01WKm7yikdJ6hQJo3YcuzMVU,39
|
|
9
|
+
generators/config/analisy_options.py,sha256=EwgXiiNu2eTJtlGa6FWQ_j_iUPmBT_SUK1Qw3N2hCPY,1105
|
|
10
|
+
generators/config/main.py,sha256=nI1DaPz7XZBCF4z6xrc2wxqoCIrdumVgw4tDAmRtPPY,316
|
|
11
|
+
generators/config/pubspec.py,sha256=g_YRVZdyi9k-WbYc9itS06Ei9FCUIo6hGKkLxqXpeAo,4195
|
|
12
|
+
generators/cursor/__init__.py,sha256=Wt6Og7EGdWdmTW92C5Eia7hzvWEQmNt6qN5G73cCKxY,78
|
|
13
|
+
generators/cursor/setup.py,sha256=3CC2rsfGXcX69FDfGnIyNS1-_kdJLppRZnU-bYXBpa8,3119
|
|
14
|
+
generators/helpers/__init__.py,sha256=z5PDw8BB3c8Dmv9XoZz0T0zowzCwcOr-OY1V61mf6B8,1665
|
|
15
|
+
generators/helpers/component.py,sha256=6FoN-QmzDxa--9FkCMosl_yqla7yzZ_JaEkxX-MhPP4,42758
|
|
16
|
+
generators/helpers/config.py,sha256=4kg97tweCsowmpOeUWBgS1AIzhl8HFA15uFrqOzP4iI,8789
|
|
17
|
+
generators/helpers/data_source.py,sha256=51ac3p4pXOEtTxOJCPVXFYqhS_Qg3nmVgZ3KtvwIXUE,5430
|
|
18
|
+
generators/helpers/domain.py,sha256=NMRsrBsvMppbyTljxDKiDyeD4_GvXWVPgi4KBKyzQXg,24939
|
|
19
|
+
generators/helpers/feature.py,sha256=3PsGh00S-wI9ojP7Ci75zVfXy3T0CXpY-FcZoIOu67c,26914
|
|
20
|
+
generators/helpers/navigation.py,sha256=AQAVGQMLZ_SGrejmf3YB0PfuBvkeCdAiil2yWpqNtCI,10011
|
|
21
|
+
generators/helpers/page.py,sha256=EQWYZ57kZMnmK43CzSMmlfsZkgo-5yvApUqQjoBQaqw,2348
|
|
22
|
+
generators/helpers/project.py,sha256=HzFVRzhqMqWP3G2cHStT9J8vxZ6ifwdLykk37mOhw1E,1085
|
|
23
|
+
generators/helpers/utils.py,sha256=dC-f2GYzirskfTB3jpSRq-PWcUkal4ELjbKAdj3wEeQ,11310
|
|
24
|
+
generators/helpers/validation.py,sha256=HZXeVEQflLhHs87cweOPNjDeVg-mdoypYfJSIyCp2Do,15032
|
|
25
|
+
generators/static/assets/logo.png,sha256=h_zpAFzEYuDEZQ7CchHG0tk70G-_Bxy3m-pkr8zU9e8,134345
|
|
26
|
+
generators/static/assets/mock/auth_user.json,sha256=QjAc6Lw4DeJqc55XQ8FoSPKr6HOI2XN4-APHGMqaLE8,87
|
|
27
|
+
generators/static/assets/svgs/apple.svg,sha256=lkMN1dJvPVixiEmS-4hfyXAFMTL5TkThk50CRs_JIkQ,809
|
|
28
|
+
generators/static/assets/svgs/google.svg,sha256=bTmcoH4gkdoV2Atl2kp-pLFpFZNL85FR_8GAKv9LL5I,1140
|
|
29
|
+
generators/static/cursor/AGENTS.md.jinja,sha256=orkVss774HgFMNPPTEV1IF88HeQX5lufJSicl9p-XwY,1330
|
|
30
|
+
generators/static/cursor/agents/doc-writer.md,sha256=YsKxOupH7uJERL9qd6L3sSqTSTs4v9RQzvBzIZcUnYg,698
|
|
31
|
+
generators/static/cursor/agents/epic-orchestrator.md,sha256=bGcmL2HARLEYEaXv_IL_ZIS5fHkBZWv7eotqBUfoBNc,1200
|
|
32
|
+
generators/static/cursor/agents/feature-implementer.md,sha256=QSCorjtMboQ4s5PRQSkLxhdlqvd-8VKRz9sRqZu9omw,988
|
|
33
|
+
generators/static/cursor/agents/integration-wiring.md,sha256=TyEOekyIQMLnx0_qo9su_Vt47cTBHMMDhNhHSeBalpE,1216
|
|
34
|
+
generators/static/cursor/agents/layer-application.md,sha256=jEsmEDUQPa2_RkFgonVdQsbJP4Pafb_DnyKcH3CRJhA,633
|
|
35
|
+
generators/static/cursor/agents/layer-guardian.md,sha256=3oGNjVRYxbNWvP0vE-aPjLZy29a6hWYpUlDOBBg3_nQ,827
|
|
36
|
+
generators/static/cursor/agents/layer-infrastructure.md,sha256=3RHIxRotVBXS5Y2YlTJ3CpfBoapN78n-N7MkUClagXQ,1380
|
|
37
|
+
generators/static/cursor/agents/layer-model.md,sha256=QX92oVrzBHETf8fje6drpQLrj7mYL5Qx0wQvaHqedD0,820
|
|
38
|
+
generators/static/cursor/agents/layer-presentation.md,sha256=x3q0s4fDsF5l2ciE19D3fSEOZlnJM7F1k6vz4cSDJJw,1269
|
|
39
|
+
generators/static/cursor/docs/architecture/APIS_AND_INTEGRATION.md.jinja,sha256=QSi80i4RoZb9c11E_j9ku-gJIGJtGcJOqLeSywitoOs,1906
|
|
40
|
+
generators/static/cursor/docs/architecture/CARAVAGGIO_COMPONENTS.md.jinja,sha256=xcWj27j7dPL22yZvsh2uo83EOE07swEqSkoG77bs7vs,6963
|
|
41
|
+
generators/static/cursor/docs/architecture/DDD_LAYERS.md.jinja,sha256=XpV9dRPBvQcuXujAbs6TeHgIA1xFVXqSuvjVkhcCYtg,1229
|
|
42
|
+
generators/static/cursor/docs/architecture/FILE_TEMPLATES.md.jinja,sha256=xvJPZHwirs7tdk3XNhhFn2Z4l_seADKLi6OuStcZTuU,2263
|
|
43
|
+
generators/static/cursor/docs/architecture/MOCK_AND_REMOTE_DATA.md.jinja,sha256=FAa4DXMxAyCVpEhYqmGKg0lPs8NX4JvwOuawmparZyc,3337
|
|
44
|
+
generators/static/cursor/docs/architecture/REFERENCE_IMPLEMENTATIONS.md.jinja,sha256=3OsxLXPCiuip5_ror1jo--Ava3-RP0xMZKhY7hAIyq8,1841
|
|
45
|
+
generators/static/cursor/docs/architecture/WIDGETS_AND_CARAVAGGIO.md.jinja,sha256=OgFc__2JDFhYH9zqBu4aC2eNm9BT2JCDt7pd9BIWw7U,3189
|
|
46
|
+
generators/static/cursor/docs/epics/README.md,sha256=ZeAKAMtSlbcgvMmMS_ZHlu-Ofr-pmuDeCw--O6okq_k,569
|
|
47
|
+
generators/static/cursor/lib/domain/AGENTS.md,sha256=0izK9XeNmapQrjK9qVKrwQUF9yKamf1VMqpNCwHTOIY,699
|
|
48
|
+
generators/static/cursor/lib/features/AGENTS.md,sha256=2buIsVgUXRtUXHxuIX4zeerpl2IGkfqGNteK9ASxPzo,860
|
|
49
|
+
generators/static/cursor/lib/widgets/AGENTS.md,sha256=Plz_TQv-JzYmhqdbc3GKdicbZEDIsQs-W46MTu49Ugs,655
|
|
50
|
+
generators/static/cursor/rules/apis-layer.mdc.jinja,sha256=U5RP-KHYGhRvHryVxYlw7We1bpn87zIr-XpODPMrxDQ,830
|
|
51
|
+
generators/static/cursor/rules/application-layer.mdc.jinja,sha256=lAGze_-YQdfB8WiwqISspKJBUAL5FmwGVSUl0vOtqLY,455
|
|
52
|
+
generators/static/cursor/rules/architecture-core.mdc.jinja,sha256=CKfTPQ6VW3hB1B8Kbwp4GQhFfK9kUKrH1wXY3c9zza8,1762
|
|
53
|
+
generators/static/cursor/rules/dart-conventions.mdc.jinja,sha256=VD9eoQcS9JrxFYek055M5W8juWNc1Y7VhkUmcjjwrUE,649
|
|
54
|
+
generators/static/cursor/rules/domain-layer.mdc.jinja,sha256=V1R2YwH3lW3L1XdCUGTQWhjbT5DvZoj2uszKrDWI6wk,1095
|
|
55
|
+
generators/static/cursor/rules/login-context.mdc.jinja,sha256=WXekKkEdZBFBVt-FTsaBKRRfSbtgEJoiBi39Mgtx6pM,586
|
|
56
|
+
generators/static/cursor/rules/presentation-layer.mdc.jinja,sha256=-MCWkYKCB6178FzWu7Bnc6eoTb2gZeF-gybkmOqOsRU,722
|
|
57
|
+
generators/static/cursor/rules/quality-gate.mdc.jinja,sha256=xxMNuEyZBR2QH3ccK30AS7fTA2-i15qeS4QfaYCjKtM,529
|
|
58
|
+
generators/static/cursor/rules/ui-caravaggio.mdc.jinja,sha256=eMG2PibNtSQ9qxyOFLXCEyMPYnOb5hcZ27ZYFlu44vk,1139
|
|
59
|
+
generators/static/cursor/skills/caravaggio-ui/SKILL.md,sha256=fvUpLl33V_yym2AwTRzX9mvzdDcaV09EJRMT9gD6ns8,3908
|
|
60
|
+
generators/static/cursor/skills/epic-delivery/SKILL.md,sha256=pHvKc3hhIRNXfAeFcAgAuv5OLj6XvgaVMLsTXWySnsY,2359
|
|
61
|
+
generators/static/cursor/skills/epic-delivery/templates/epic-status.md,sha256=CEGdTSh3eS4NX-_V2XnVXtlylsYkBGii5di19FxhdrU,292
|
|
62
|
+
generators/static/cursor/skills/epic-delivery/templates/epic.md,sha256=pGB5psUdNdylHHaGDsYSCkvP7jodHYcM7EKotEoGDI4,713
|
|
63
|
+
generators/static/templates/injection_template.jinja,sha256=eshGXiys5JOKAsSWon0inEZkOgu-6IQd8nLqSSNGkHQ,281
|
|
64
|
+
generators/static/templates/main_template.jinja,sha256=ren-sD65JcCtNTYgD2gbjGOTFHbQQKdUDFtQWtVDOQI,1579
|
|
65
|
+
generators/static/templates/page_template.jinja,sha256=T_Y772qAxXxlvHolSGwWoEWvXLbJKaSQ1-jqSCDmD3Y,894
|
|
66
|
+
generators/static/templates/router_template.jinja,sha256=YwDb88q0hcVV1PU78wnRF94vKaFqWdYDD7QB89uC97Y,827
|
|
67
|
+
generators/static/templates/apis/common/constants_template.jinja,sha256=o6liLoR6NgO0HgLiGAJktUtuXqfkUmIa6kO1z7_pIdc,1859
|
|
68
|
+
generators/static/templates/apis/common/data_source_config_template.jinja,sha256=jo573Ml2xEE0rmUZ_pUkD4-UypR2LGMD4SlvJwbXMP8,1469
|
|
69
|
+
generators/static/templates/apis/core/api_injectable_module_template.jinja,sha256=Jp41JNcmgI6UL3jR0SMtRb1B3GgoI9yeGj2XJEk3mfs,515
|
|
70
|
+
generators/static/templates/apis/interceptors/api_logger_template.jinja,sha256=0fpFfBoOgTgCVg7wjsmNGEaI1UkS4YmjvlefEwnf4FQ,4104
|
|
71
|
+
generators/static/templates/apis/interceptors/auth_interceptor_template.jinja,sha256=q_sEWWbyeCgsOx5eTC1vMwu-4Fh7rmtaXQhRQMbH6m8,6937
|
|
72
|
+
generators/static/templates/auth/application/auth_bloc_template.jinja,sha256=vLwfHLtzj5vXOMSsNf9QCl_WtRMKCo2uIb-Xe_bwlW0,1094
|
|
73
|
+
generators/static/templates/auth/application/auth_event_template.jinja,sha256=DtjI7FY9IT4S9dsJDdF8sI027LDv86Fz-pQ6jonefR4,202
|
|
74
|
+
generators/static/templates/auth/application/auth_state_template.jinja,sha256=-_23xNc1-B5mkouU-3_f-lRysbEsvOqnK_z7gOI6MoU,260
|
|
75
|
+
generators/static/templates/auth/infrastructure/auth_facade_module_template.jinja,sha256=itULN7sz9NP9egyRQk_D4qGfvElvKhR9uJPnR714bog,572
|
|
76
|
+
generators/static/templates/auth/infrastructure/auth_facade_template.jinja,sha256=X7chTCswOc_yaxYbnyyIdAL4Sq1mIYMlHxGpMcFr1EY,11536
|
|
77
|
+
generators/static/templates/auth/infrastructure/mock_auth_facade_template.jinja,sha256=gZFEUrT_EXuSOGSWAOlJu7PACLNgybe1DfFGTIzoIY0,3610
|
|
78
|
+
generators/static/templates/auth/model/auth_failure_template.jinja,sha256=EaJgEKgyKM7G9gNCMO-MumNYwtlrv04mgwF-t4BzWLw,450
|
|
79
|
+
generators/static/templates/auth/model/i_auth_facade_template.jinja,sha256=9OiNOUk-fC-dwu-81yzaJK6omBwRZZI1bMTDrzKLiFg,1034
|
|
80
|
+
generators/static/templates/auth/model/user_template.jinja,sha256=YKOiXeV_crgQeNLDtdxdjmbYntUXo7oU3ctT-VUrC_A,1154
|
|
81
|
+
generators/static/templates/auth/model/value_objects_template.jinja,sha256=mtnRJCwexOIBCfYbOuraHYI1hvu0NsaObWiDqUTLlgI,1305
|
|
82
|
+
generators/static/templates/auth/presentation/login_screen_template.jinja,sha256=k1H5xHhdZ29DKX2FsPeunLT0CimfwtLIf59iyw8R0c8,865
|
|
83
|
+
generators/static/templates/auth/sign_in_form/application/sign_in_form_bloc_template.jinja,sha256=OyF4p7TO5EOH_Q-QE2HqY1cApFv8XBimpBOHZUn0Ioc,5428
|
|
84
|
+
generators/static/templates/auth/sign_in_form/application/sign_in_form_event_template.jinja,sha256=f2S843MEmoCGIvrwxrAVNGncRB5r314gQDe4vy07_iA,1008
|
|
85
|
+
generators/static/templates/auth/sign_in_form/application/sign_in_form_state_template.jinja,sha256=kJmqv09UWBQ_BRyv5FR1cSoghtHqmb2A1J3OmQ9RP5Q,979
|
|
86
|
+
generators/static/templates/auth/sign_in_form/presentation/apple_form_template.jinja,sha256=M8GA7JNnSDe64GBZReUMdZrEFUTntK6sp11dSEuESaA,718
|
|
87
|
+
generators/static/templates/auth/sign_in_form/presentation/email_password_form_template_INACTIVE.jinja,sha256=YPGKPlT3brfe6cPbSYJ-b4jTOsiUQfRFZmXBi1gp_vY,4925
|
|
88
|
+
generators/static/templates/auth/sign_in_form/presentation/google_form_template.jinja,sha256=tfmMfoZn93T8rVSyM7Zef5oDG1vgszm-RipnUdaYrws,671
|
|
89
|
+
generators/static/templates/auth/sign_in_form/presentation/sign_in_form_template.jinja,sha256=QgKlx-YKpu_WkzlmcysJ4HNkZnmhexh6T72Tlf4wYQA,20847
|
|
90
|
+
generators/static/templates/component/component_bloc_template.jinja,sha256=qBfsqMzIjsH7aNVtdCnA5N-Ft0OL-4_-ZgXcufb0ZB4,1967
|
|
91
|
+
generators/static/templates/component/component_event_template.jinja,sha256=MbfMBNYBfgAcMFfWLWfoaR61iM2eOEj_ogKi_imDsUY,325
|
|
92
|
+
generators/static/templates/component/component_form_bloc_template.jinja,sha256=TqoR_tcPJtVxa-hXtzkGqw9SGVufsPytjLKJn533msk,1833
|
|
93
|
+
generators/static/templates/component/component_form_event_template.jinja,sha256=WTjaqtYDQ499TcTTsZ9gwiGLsECfo8Z-ReulsK3SlRo,208
|
|
94
|
+
generators/static/templates/component/component_form_state_template.jinja,sha256=SDubn5K-WiVeth53ZroAflwmuOaknQeqyQt5yYIraDM,572
|
|
95
|
+
generators/static/templates/component/component_form_widget_template.jinja,sha256=2fTLa7ZiTaNanMjjjN_YzcTIWTjUDx5eSYUk9mVRW5w,5479
|
|
96
|
+
generators/static/templates/component/component_list_widget_template.jinja,sha256=zBaNyx0XeX3gCxu9APz0vrePnLxbWAsEbHfUNFtIByg,3769
|
|
97
|
+
generators/static/templates/component/component_state_template.jinja,sha256=yPJ7YSnHMX3qzFoGRo9tFsLD5eCrI0btwUFMA7f3mC8,475
|
|
98
|
+
generators/static/templates/component/component_widget_template.jinja,sha256=fqXoQsh8A_MVXtGv9lVoFlPSpa_y5oY_-e0-ddKaJYM,4126
|
|
99
|
+
generators/static/templates/core/bloc/base_form_bloc_template.jinja,sha256=fjUdZUxeo54FLs61z9LWn7VJa-Zg618729JyThT3hyk,1195
|
|
100
|
+
generators/static/templates/core/errors/error_localizer_template.jinja,sha256=L0p8Vi4-qLomtk8o7YCpDgzMNH8gIDTdtL0rswCI9EQ,2313
|
|
101
|
+
generators/static/templates/core/infrastructure/base_mapper_template.jinja,sha256=q6D0aqeMe2gS19lt0qc3VlxVXo4XY_AS3ZhGoDSuOwI,866
|
|
102
|
+
generators/static/templates/core/infrastructure/base_repository_mixin_template.jinja,sha256=a_hb6B8z1idnoVZrLK3GglJoEqJy4A3E_ZTxkv0xlI4,2891
|
|
103
|
+
generators/static/templates/core/infrastructure/firebase_injectable_module_template.jinja,sha256=2Cp5xWjzGgMD9krrhQvuLKsE4E84v5cnnPThnjyniJc,299
|
|
104
|
+
generators/static/templates/core/infrastructure/firestore_helpers_template.jinja,sha256=CM1ojcIIEkAKuDTSS4mVV-viUOwG2rcEP4BWznewUUA,803
|
|
105
|
+
generators/static/templates/core/infrastructure/repository_error_handler_template.jinja,sha256=9Zth3aOy2M6MVKCkktJ9tS8qdJ0eryMsWnHkB9DqnRo,1416
|
|
106
|
+
generators/static/templates/core/model/common_interfaces_template.jinja,sha256=bZP4Xu_cIrI0G-BWV-csYbLaLeSrtHDuFaQef96cifY,50
|
|
107
|
+
generators/static/templates/core/model/entity_template.jinja,sha256=9TeOqzKWgALYSKF44Obzb5yMbZIgv58iMB4r7JHp1Fg,112
|
|
108
|
+
generators/static/templates/core/model/errors_template.jinja,sha256=fyeJ0jPadqIyBGtMm_xaYtrvOCk0MWxOu-cOPXx7JxU,460
|
|
109
|
+
generators/static/templates/core/model/failures_template.jinja,sha256=rafp0nPZIIh9_R_37zzNRKcDsJgaM0_Jb9rJVpjGcKY,4631
|
|
110
|
+
generators/static/templates/core/model/value_objects_template.jinja,sha256=QJrTAs8WrGC0OPqmGlWtWPxmsoZ-qQOLWMxEiSCVoLM,4351
|
|
111
|
+
generators/static/templates/core/model/value_validators_template.jinja,sha256=LrvLw7qn60v7RBpC0mQ9SAM3HhIuRiR_MpGrKxCmzE4,3608
|
|
112
|
+
generators/static/templates/core/presentation/app_drawer_template.jinja,sha256=r1zZdcDZFb9bN0tX7dUARf0d5u1H5s0MgmmkD8Z7_IQ,1489
|
|
113
|
+
generators/static/templates/core/presentation/app_widget_template.jinja,sha256=V97rA7Tl5AVOQ3ovTMawemihaPp9AX4Q10ZqZRs0gMA,1173
|
|
114
|
+
generators/static/templates/core/presentation/bottom_nav_bar_template.jinja,sha256=GrVzuoVJiVzyhWarCy_jl3h0c9BbbSNxr1nGbY5pm0c,712
|
|
115
|
+
generators/static/templates/domain/domain_mapper_template.jinja,sha256=w7RWS2oFjNT6MDu6TP3liufkNi5ZPMYhrw1KMbZ42qk,1200
|
|
116
|
+
generators/static/templates/domain/domain_remote_service_template.jinja,sha256=OqvOKWyiQ7Ni4U02CLiQc_1X5yRdjMFU82RyhBBflSg,1496
|
|
117
|
+
generators/static/templates/domain/domain_repository_template.jinja,sha256=gp8gTsaoqeZWEhWHrrZNuTKeUquJ8tEPhn-vwYY24Nw,3808
|
|
118
|
+
generators/static/templates/domain/domain_service_module_template.jinja,sha256=0luyQWn2wHwwRBPH3bERpvKq9b788eWhvXfC1tthcCw,826
|
|
119
|
+
generators/static/templates/domain/enum_template.jinja,sha256=uJJTLOUakIn49ASzyLmx0AkvQWLymMr14wAFoKM5_KM,37
|
|
120
|
+
generators/static/templates/domain/i_domain_service_template.jinja,sha256=JaUXX8y0ouX-eb13hSRsf8llYa7QRW4ydIaYpOU25ts,566
|
|
121
|
+
generators/static/templates/domain/mock_domain_service_template.jinja,sha256=HpN6r1mEJ5NWegfPm5FPlJX7Dgmbc6uns_lvuY83a-o,2516
|
|
122
|
+
generators/static/templates/feature/feature_bloc_template.jinja,sha256=yjYiSNHy84O9tijPysLMhz_n_Z73Bo8DLBSXYPCbyIs,4727
|
|
123
|
+
generators/static/templates/feature/feature_dto_template.jinja,sha256=VkakpDf61mQ-_lzuBWEkPMkTxPw3Zovv0_P-2bYcCCc,800
|
|
124
|
+
generators/static/templates/feature/feature_entity_template.jinja,sha256=eMeEwoh2TAOVAfSjTjDotQeTUx5QvRJDHJehC_yPjDc,670
|
|
125
|
+
generators/static/templates/feature/feature_event_template.jinja,sha256=gyHPaVkdxqfBIICCDu52hPt3VDUxZgQBus3Ktg9kqec,916
|
|
126
|
+
generators/static/templates/feature/feature_extensions_template.jinja,sha256=37e3Lhm2FUJtqoV353Djnraf-f0n8PMjjmrgnjRKWoY,946
|
|
127
|
+
generators/static/templates/feature/feature_failure_template.jinja,sha256=BMiiUObW9UGcR4PD3CY2YtC-JjvbihIPRxCCKnHaJvM,485
|
|
128
|
+
generators/static/templates/feature/feature_page_template.jinja,sha256=v6ITUtOmhA1JlVuer0Y7sH5ct6-aa2H-ovq-58j9BoA,4733
|
|
129
|
+
generators/static/templates/feature/feature_repository_template.jinja,sha256=v9Rf4AR2FrKA7lo6uaC-CzatTdnpdtHTebjFr4hocUo,4001
|
|
130
|
+
generators/static/templates/feature/feature_state_template.jinja,sha256=6IpoK-cN3BnGLpJlBEm9QB61GNyo_JFb_s9Ct2ImWI8,873
|
|
131
|
+
generators/static/templates/feature/i_feature_repository_template.jinja,sha256=v7W9HRGDmMVV5gUYyLz-mrEcjbrnM3XHvUAOyxqSFEM,909
|
|
132
|
+
generators/static/templates/feature/value_object_field_template.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
133
|
+
generators/static/templates/feature/value_object_template.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
134
|
+
generators/static/templates/feature/value_validators_template.jinja,sha256=rbc2-Nc3AO5BLYtc4pebmiIXFRU5H-iwdgfvx4WhYIA,1894
|
|
135
|
+
generators/static/templates/home/home_screen_template.jinja,sha256=fJzvx-y7TrBQOE5aqCM_nCmernd_opzFxM9bQzb0qyM,1856
|
|
136
|
+
generators/static/templates/home/screen_template.jinja,sha256=TFfhaoE6itEwOZXBzfTgqJSYxdN0vJowBo9QpaBgzP0,273
|
|
137
|
+
generators/static/templates/home/presentation/home_screen_template.jinja,sha256=wln-bope3P36rxEzmPZo1OB2uIv4_zTIzVLyyak8xVo,1581
|
|
138
|
+
generators/static/templates/logging/analytics_logging_template.jinja,sha256=CFL5aXKQFD8W3zP-k6leODKeuR69UTtgaE-X7hlZJak,1202
|
|
139
|
+
generators/static/templates/logging/console_template.jinja,sha256=qpKYQMmzBxibSMh0rVfVw_KCtp8h9MDcJgx9Nims7nc,1546
|
|
140
|
+
generators/static/templates/logging/logger_injectable_module_template.jinja,sha256=wSu4mQ7dDYF_xmKvrXzWh9oZn_TiHPLu5fgDwAu3nJc,766
|
|
141
|
+
generators/static/templates/logging/logger_template.jinja,sha256=2tj4bNEXIMijyWjghTZDaiDPbAL6yngH25P-jGoxUVI,2900
|
|
142
|
+
generators/static/templates/splash/presentation/splash_screen_auth_template.jinja,sha256=Yp1tSnc7j9meFjpl-1F5ApRcXOcr_Mm7gfZz-3j77Gc,2583
|
|
143
|
+
generators/static/templates/splash/presentation/splash_screen_template.jinja,sha256=_vg84dp1i-mzsRJIH74478y0FYoFxpDxBNFIk7v6NpU,1430
|
|
144
|
+
generators/static/templates/storage/storage_repository_template.jinja,sha256=qDlEHPt8-JPZs1klwZI_9jC8wkOOEyDUqxMkX7gZN54,2792
|
|
145
|
+
generators/static/templates/user_profile/infrastructure/user_profile_dto_template.jinja,sha256=9CCZG5Zt6G5P3WNPrKy0FW0ZTrt-vJpc8d8XLfnxVJM,857
|
|
146
|
+
generators/static/templates/user_profile/infrastructure/user_profile_mapper_template.jinja,sha256=JakqtVUgfY_msiWscy9Pwhbv9HHJESeeypktAZMq3ik,1567
|
|
147
|
+
generators/static/templates/user_profile/infrastructure/user_profile_repository_template.jinja,sha256=5hgZRB2PD-VWs3rl2NTnS1Kuyn5na_yGGor5uTL4jBw,2949
|
|
148
|
+
generators/static/templates/user_profile/infrastructure/user_profile_service_template.jinja,sha256=a2Tmyzj34tYhz06USP9_wqplO-gxi8KcDF8PxJrY8kE,844
|
|
149
|
+
generators/static/templates/user_profile/model/i_user_profile_repository_template.jinja,sha256=ge4zkn9nzKWS5fuvqm_SQojauu__hJov7wnwHCIsWXw,1377
|
|
150
|
+
generators/static/templates/user_profile/model/user_profile_failure_template.jinja,sha256=fGmWRIn-ByEwycw80fHZmIIIC2yiEo-fXa668tX2q1w,454
|
|
151
|
+
generators/static/templates/user_profile/model/user_profile_template.jinja,sha256=TNZEZIrUaRFdTBVT1Vp643ihntTux3H0gB-aH1NIy50,1108
|
|
152
|
+
generators/static/templates/widgets/common/custom_scaffold_template.jinja,sha256=Gdl2rGfLvAHCYyZehxjCXOeM18QBSXMxmCCvIGHlhv4,1488
|
|
153
|
+
generators/static/templates/widgets/common/error_widget_template.jinja,sha256=F_MOzP2E6Q6nz7JaWlpn3MESw3VqpOvo-uArC-tA3gw,550
|
|
154
|
+
generators/static/templates/widgets/common/loading_widget_template.jinja,sha256=p5BS5Luun47cy7PjfmeMwNuMYbKVw2APL8XmOs8RsNw,355
|
|
155
|
+
generators/static/templates/widgets/common/unknown_state_widget_template.jinja,sha256=hGuGc1c2LYHOfOpQS-Ic7mWz49MH8uoxfs1UKD8j8bs,591
|
|
156
|
+
generators/templates/__init__.py,sha256=MFkEVYwP56QLZFnHKIiFvQ3XSq-20Sj4b3IBFDNHyXI,32
|
|
157
|
+
generators/templates/copier.py,sha256=Sv2T6Y4pF9MOqW2oeZXT5xds_34xcLwxJp8qp1Hh2pc,1672
|
|
158
|
+
generators/templates/main.py,sha256=RK-GjZvHRT-M_408t5WgzWNb_lLTo0ShQVuMQ4J3LQk,2895
|
|
159
|
+
generators/templates/_core/core_generator.py,sha256=R1u5sjuJ-isGn2gV0ErgGB1knnBtBZ3hTQfFpNaaLLY,6185
|
|
160
|
+
generators/templates/apis/apis_generator.py,sha256=BaFjdMmtS8G-N9j9T9eMXWUn-zShh5WZsT86EnPWBVo,1862
|
|
161
|
+
generators/templates/auth/auth_generator.py,sha256=qnlrQY0zFz6LFWu4irMlod1BFA_p_jlXQuXHuIYu_ro,3384
|
|
162
|
+
generators/templates/auth/sign_in_form_generator.py,sha256=96sBgCbqDty6r-8kjV4nRs1z_soSvlWlm3Kwd0Y1Tmc,1261
|
|
163
|
+
generators/templates/home/home_generator.py,sha256=3dvHPBh4Eltk8oQO_iXHTWXSow3W4xVMMhzDtN35uAU,843
|
|
164
|
+
generators/templates/lib/lib_generator.py,sha256=d-oUna_JdsPIY6Ace0BWwKxsdUtveIFFc7NAy19DULw,1689
|
|
165
|
+
generators/templates/logging/logging_generator.py,sha256=4zNjTj9Uc2Hbuk5-db6gwYDfTZfBmPv4AlmCfv8nRy0,1137
|
|
166
|
+
generators/templates/splash/splash_generator.py,sha256=OMgu6H7xIRPcB6eCnCRlsfQjN0x8UiPyqRUOyHxq4uU,918
|
|
167
|
+
generators/templates/storage/storage_generator.py,sha256=rsqO3TboDV-LuTLXlGv3gunqCYVAVZvj1UjZc4YCu7w,238
|
|
168
|
+
coregen_cli-3.1.6.dist-info/METADATA,sha256=qXkCeQ6NDQnBvLP_2xJoJl8lxwiMqxTBL31ZPLgYqbU,37692
|
|
169
|
+
coregen_cli-3.1.6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
170
|
+
coregen_cli-3.1.6.dist-info/entry_points.txt,sha256=Z1o4tlMWryFUCB_q2oYBaaza36AGDHJYDY0g1hpyx-k,40
|
|
171
|
+
coregen_cli-3.1.6.dist-info/top_level.txt,sha256=WB4ZV2g9jVd0zfHubutxIqhvRu-YO-V7sa5MQ_tUkTY,19
|
|
172
|
+
coregen_cli-3.1.6.dist-info/RECORD,,
|
generators/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .main import init
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .main import copy_assets
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
# move assets folder with his contents to lib/assets
|
|
3
|
+
import os
|
|
4
|
+
import shutil
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
BASE_DIR = Path(__file__).parent
|
|
8
|
+
STATIC_DIR = BASE_DIR.parent / "static"
|
|
9
|
+
|
|
10
|
+
def move_assets_to_lib(project_name):
|
|
11
|
+
flutter_name = project_name.lower().replace(" ", "_")
|
|
12
|
+
project_path = Path(flutter_name)
|
|
13
|
+
assets_src = STATIC_DIR / "assets"
|
|
14
|
+
assets_dst = project_path / "assets"
|
|
15
|
+
|
|
16
|
+
if not assets_src.exists():
|
|
17
|
+
print(f"Source assets folder {assets_src} does not exist.")
|
|
18
|
+
return
|
|
19
|
+
|
|
20
|
+
# Create destination directory if it doesn't exist
|
|
21
|
+
assets_dst.mkdir(parents=True, exist_ok=True)
|
|
22
|
+
|
|
23
|
+
# Move all files from assets_src to assets_dst
|
|
24
|
+
for item in assets_src.iterdir():
|
|
25
|
+
dest = assets_dst / item.name
|
|
26
|
+
if item.is_dir():
|
|
27
|
+
shutil.copytree(item, dest, dirs_exist_ok=True)
|
|
28
|
+
else:
|
|
29
|
+
shutil.copy2(item, dest)
|
|
30
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .main import generate_config_files
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
def update_analysis_options(flutter_name):
|
|
4
|
+
# Project path
|
|
5
|
+
project_path = Path(flutter_name)
|
|
6
|
+
|
|
7
|
+
"""Updates analysis_options.yaml with common configurations"""
|
|
8
|
+
analysis_options_path = project_path / "analysis_options.yaml"
|
|
9
|
+
analysis_options_content = """include: package:flutter_lints/flutter.yaml
|
|
10
|
+
|
|
11
|
+
linter:
|
|
12
|
+
rules:
|
|
13
|
+
- always_use_package_imports
|
|
14
|
+
- avoid_relative_lib_imports
|
|
15
|
+
- prefer_const_constructors
|
|
16
|
+
- prefer_const_declarations
|
|
17
|
+
- always_declare_return_types
|
|
18
|
+
- always_specify_types
|
|
19
|
+
|
|
20
|
+
analyzer:
|
|
21
|
+
errors:
|
|
22
|
+
always_use_package_imports: warning
|
|
23
|
+
avoid_relative_lib_imports: warning
|
|
24
|
+
prefer_const_constructors: error
|
|
25
|
+
unused_import: error
|
|
26
|
+
prefer_const_declarations: error
|
|
27
|
+
unnecessary_null_comparison: error
|
|
28
|
+
always_declare_return_types: error
|
|
29
|
+
always_specify_types: warning
|
|
30
|
+
|
|
31
|
+
exclude:
|
|
32
|
+
- lib/infrastructure/openapi/generated/**
|
|
33
|
+
- lib/**.g.dart
|
|
34
|
+
- lib/**.freezed.dart
|
|
35
|
+
|
|
36
|
+
strong-mode:
|
|
37
|
+
implicit-casts: false
|
|
38
|
+
"""
|
|
39
|
+
with open(analysis_options_path, "w") as f:
|
|
40
|
+
f.write(analysis_options_content)
|
|
41
|
+
|
|
42
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# import click
|
|
2
|
+
|
|
3
|
+
from .pubspec import update_pubspec
|
|
4
|
+
from .analisy_options import update_analysis_options
|
|
5
|
+
|
|
6
|
+
def generate_config_files(lib_path, has_login, project_name):
|
|
7
|
+
# Create pubspec.yaml
|
|
8
|
+
update_pubspec(project_name, has_login)
|
|
9
|
+
|
|
10
|
+
# Create analysis_options.yaml
|
|
11
|
+
update_analysis_options(project_name)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
def update_pubspec(flutter_name, has_login):
|
|
6
|
+
"""Aggiunge dipendenze al pubspec.yaml usando flutter pub add"""
|
|
7
|
+
project_path = Path(flutter_name)
|
|
8
|
+
|
|
9
|
+
# Main dependencies required
|
|
10
|
+
main_dependencies = [
|
|
11
|
+
"dartz",
|
|
12
|
+
"freezed_annotation",
|
|
13
|
+
"flutter_bloc",
|
|
14
|
+
"provider",
|
|
15
|
+
"injectable",
|
|
16
|
+
"get_it",
|
|
17
|
+
"bloc",
|
|
18
|
+
"another_flushbar",
|
|
19
|
+
"flutter_lints",
|
|
20
|
+
"caravaggio_ui",
|
|
21
|
+
"font_awesome_flutter",
|
|
22
|
+
"uuid",
|
|
23
|
+
"collection",
|
|
24
|
+
"rxdart",
|
|
25
|
+
"flutter_svg",
|
|
26
|
+
"shared_preferences",
|
|
27
|
+
"dio",
|
|
28
|
+
"retrofit",
|
|
29
|
+
"go_router",
|
|
30
|
+
"json_annotation",
|
|
31
|
+
"intl",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
# Dipendenze di sviluppo
|
|
35
|
+
dev_dependencies = [
|
|
36
|
+
"build_runner",
|
|
37
|
+
"freezed",
|
|
38
|
+
"injectable_generator",
|
|
39
|
+
"json_serializable",
|
|
40
|
+
"retrofit_generator",
|
|
41
|
+
"flutter_launcher_icons",
|
|
42
|
+
"analyzer",
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
# Add all main dependencies in a single command
|
|
46
|
+
add_multiple_dependencies(project_path, main_dependencies)
|
|
47
|
+
add_multiple_dependencies(project_path, dev_dependencies, dev=True)
|
|
48
|
+
|
|
49
|
+
# Update Flutter configuration in pubspec.yaml
|
|
50
|
+
update_flutter_config(project_path)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def add_multiple_dependencies(project_path: Path, packages: list, dev: bool = False):
|
|
54
|
+
"""Adds multiple dependencies using flutter pub add"""
|
|
55
|
+
try:
|
|
56
|
+
cmd = ["flutter", "pub", "add"] + packages
|
|
57
|
+
|
|
58
|
+
if dev:
|
|
59
|
+
cmd.append("--dev")
|
|
60
|
+
|
|
61
|
+
result = subprocess.run(
|
|
62
|
+
cmd,
|
|
63
|
+
cwd=project_path,
|
|
64
|
+
capture_output=True,
|
|
65
|
+
text=True,
|
|
66
|
+
check=True
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
except subprocess.CalledProcessError as e:
|
|
70
|
+
print(f" ⚠️ Error adding dependencies: {e.stderr}")
|
|
71
|
+
except FileNotFoundError:
|
|
72
|
+
print("❌ Flutter not found in PATH")
|
|
73
|
+
sys.exit(1)
|
|
74
|
+
# def add_dependency(project_path: Path, package: str, dev: bool = False):
|
|
75
|
+
# """Adds a single dependency using flutter pub add"""
|
|
76
|
+
# try:
|
|
77
|
+
# cmd = ["flutter", "pub", "add"]
|
|
78
|
+
# cmd.append(package)
|
|
79
|
+
|
|
80
|
+
# if dev:
|
|
81
|
+
# cmd.append("--dev")
|
|
82
|
+
|
|
83
|
+
# result = subprocess.run(
|
|
84
|
+
# cmd,
|
|
85
|
+
# cwd=project_path,
|
|
86
|
+
# capture_output=True,
|
|
87
|
+
# text=True,
|
|
88
|
+
# check=True
|
|
89
|
+
# )
|
|
90
|
+
|
|
91
|
+
# except subprocess.CalledProcessError as e:
|
|
92
|
+
# print(f" ⚠️ Error adding {package}: {e.stderr}")
|
|
93
|
+
# except FileNotFoundError:
|
|
94
|
+
# print("❌ Flutter not found in PATH")
|
|
95
|
+
# sys.exit(1)
|
|
96
|
+
|
|
97
|
+
def update_flutter_config(project_path: Path):
|
|
98
|
+
"""Updates the Flutter configuration in pubspec.yaml"""
|
|
99
|
+
pubspec_path = project_path / "pubspec.yaml"
|
|
100
|
+
|
|
101
|
+
if not pubspec_path.exists():
|
|
102
|
+
return
|
|
103
|
+
|
|
104
|
+
try:
|
|
105
|
+
# Read the existing content
|
|
106
|
+
content = pubspec_path.read_text()
|
|
107
|
+
|
|
108
|
+
# Replace only the commented assets
|
|
109
|
+
lines = content.split('\n')
|
|
110
|
+
new_lines = []
|
|
111
|
+
|
|
112
|
+
for line in lines:
|
|
113
|
+
stripped = line.strip()
|
|
114
|
+
|
|
115
|
+
# Replace commented asset lines
|
|
116
|
+
if stripped.startswith("# assets:") or (stripped.startswith("#") and "assets:" in stripped):
|
|
117
|
+
# Find the correct indentation from the line
|
|
118
|
+
indent = line[:len(line) - len(line.lstrip())]
|
|
119
|
+
new_lines.extend([
|
|
120
|
+
f"{indent}assets:",
|
|
121
|
+
f"{indent} - assets/",
|
|
122
|
+
f"{indent} - assets/svgs/",
|
|
123
|
+
f"{indent} - assets/mock/"
|
|
124
|
+
])
|
|
125
|
+
elif stripped.startswith("uses-material-design:"):
|
|
126
|
+
new_lines.append(line)
|
|
127
|
+
# Add generate: true right after uses-material-design
|
|
128
|
+
indent = line[:len(line) - len(line.lstrip())]
|
|
129
|
+
new_lines.append(f"{indent}generate: true")
|
|
130
|
+
else:
|
|
131
|
+
new_lines.append(line)
|
|
132
|
+
|
|
133
|
+
content = '\n'.join(new_lines)
|
|
134
|
+
|
|
135
|
+
# Write the updated content
|
|
136
|
+
pubspec_path.write_text(content)
|
|
137
|
+
|
|
138
|
+
except Exception as e:
|
|
139
|
+
print(f"⚠️ Error updating Flutter configuration: {e}")
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"""Copy and render Cursor ecosystem files into a newly created Flutter project."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import shutil
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from jinja2 import Template
|
|
9
|
+
|
|
10
|
+
CURSOR_STATIC_DIR = Path(__file__).resolve().parent.parent / "static" / "cursor"
|
|
11
|
+
|
|
12
|
+
JINJA_KWARGS = {"variable_start_string": "[[", "variable_end_string": "]]"}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _render_template_text(content: str, context: dict) -> str:
|
|
16
|
+
template = Template(content, **JINJA_KWARGS)
|
|
17
|
+
return template.render(**context)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _render_file(src: Path, dest: Path, context: dict) -> None:
|
|
21
|
+
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
22
|
+
rendered = _render_template_text(src.read_text(encoding="utf-8"), context)
|
|
23
|
+
dest.write_text(rendered, encoding="utf-8")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _copy_static_file(src: Path, dest: Path) -> None:
|
|
27
|
+
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
28
|
+
shutil.copy2(src, dest)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _copy_skill(skill_src: Path, skill_dest: Path, context: dict) -> None:
|
|
32
|
+
"""Copy or render a single skill directory into the project."""
|
|
33
|
+
for src in skill_src.rglob("*"):
|
|
34
|
+
if src.is_dir():
|
|
35
|
+
continue
|
|
36
|
+
rel = src.relative_to(skill_src)
|
|
37
|
+
dest = skill_dest / rel
|
|
38
|
+
if src.suffix == ".jinja":
|
|
39
|
+
_render_file(src, dest.with_suffix(""), context)
|
|
40
|
+
else:
|
|
41
|
+
_copy_static_file(src, dest)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def copy_cursor_ecosystem(project_path: Path, login: bool, project_name: str) -> None:
|
|
45
|
+
"""Render Cursor rules, agents, skills, docs, and AGENTS.md into the project."""
|
|
46
|
+
if not CURSOR_STATIC_DIR.is_dir():
|
|
47
|
+
raise FileNotFoundError(f"Cursor templates not found: {CURSOR_STATIC_DIR}")
|
|
48
|
+
|
|
49
|
+
context = {
|
|
50
|
+
"project_name": project_name,
|
|
51
|
+
"login": login,
|
|
52
|
+
"has_login": login,
|
|
53
|
+
}
|
|
54
|
+
root = project_path.resolve()
|
|
55
|
+
|
|
56
|
+
rules_src = CURSOR_STATIC_DIR / "rules"
|
|
57
|
+
for src in sorted(rules_src.glob("*.mdc.jinja")):
|
|
58
|
+
if src.name == "login-context.mdc.jinja" and not login:
|
|
59
|
+
continue
|
|
60
|
+
dest_name = src.name.replace(".jinja", "")
|
|
61
|
+
_render_file(src, root / ".cursor" / "rules" / dest_name, context)
|
|
62
|
+
|
|
63
|
+
agents_src = CURSOR_STATIC_DIR / "agents"
|
|
64
|
+
for src in sorted(agents_src.glob("*.md")):
|
|
65
|
+
_copy_static_file(src, root / ".cursor" / "agents" / src.name)
|
|
66
|
+
|
|
67
|
+
skills_src = CURSOR_STATIC_DIR / "skills"
|
|
68
|
+
for skill_dir in sorted(skills_src.iterdir()):
|
|
69
|
+
if not skill_dir.is_dir():
|
|
70
|
+
continue
|
|
71
|
+
_copy_skill(skill_dir, root / ".cursor" / "skills" / skill_dir.name, context)
|
|
72
|
+
|
|
73
|
+
arch_src = CURSOR_STATIC_DIR / "docs" / "architecture"
|
|
74
|
+
for src in sorted(arch_src.glob("*.md.jinja")):
|
|
75
|
+
dest_name = src.name.replace(".jinja", "")
|
|
76
|
+
_render_file(src, root / "docs" / "architecture" / dest_name, context)
|
|
77
|
+
|
|
78
|
+
_render_file(
|
|
79
|
+
CURSOR_STATIC_DIR / "AGENTS.md.jinja",
|
|
80
|
+
root / "AGENTS.md",
|
|
81
|
+
context,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
for rel in ("lib/domain/AGENTS.md", "lib/features/AGENTS.md", "lib/widgets/AGENTS.md"):
|
|
85
|
+
_copy_static_file(CURSOR_STATIC_DIR / rel, root / rel)
|
|
86
|
+
|
|
87
|
+
_copy_static_file(CURSOR_STATIC_DIR / "docs" / "epics" / "README.md", root / "docs" / "epics" / "README.md")
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Helper modules for CoreGen
|
|
2
|
+
from .project import get_project_name, validate_flutter_project
|
|
3
|
+
from .utils import to_pascal_case, to_pascal_case_preserve, map_field_type, pascal_case_to_snake_case, pascal_case_to_kebab_case, pascal_case_to_camel_case
|
|
4
|
+
from .validation import (
|
|
5
|
+
validate_field_name,
|
|
6
|
+
validate_field_type,
|
|
7
|
+
validate_entity_name,
|
|
8
|
+
parse_fields_string,
|
|
9
|
+
parse_field_type,
|
|
10
|
+
)
|
|
11
|
+
from .feature import (
|
|
12
|
+
create_feature_layers,
|
|
13
|
+
create_presentation_feature_layers,
|
|
14
|
+
find_domain_models,
|
|
15
|
+
find_domain_models_with_class_names,
|
|
16
|
+
find_enums,
|
|
17
|
+
find_enums_with_info,
|
|
18
|
+
get_domain_model_class_name,
|
|
19
|
+
generate_value_objects_and_validators,
|
|
20
|
+
generate_consolidated_value_objects,
|
|
21
|
+
generate_value_validators,
|
|
22
|
+
generate_extensions,
|
|
23
|
+
)
|
|
24
|
+
from .domain import create_domain_entity_layers
|
|
25
|
+
from .component import (
|
|
26
|
+
create_component_layers,
|
|
27
|
+
create_component_form_layers,
|
|
28
|
+
create_component_list_layers,
|
|
29
|
+
ensure_base_form_bloc,
|
|
30
|
+
get_model_fields_from_domain,
|
|
31
|
+
get_repository_info,
|
|
32
|
+
generate_component_widget_from_template,
|
|
33
|
+
generate_form_event_from_template,
|
|
34
|
+
generate_form_state_from_template,
|
|
35
|
+
generate_form_bloc_from_template,
|
|
36
|
+
)
|
|
37
|
+
from .navigation import (
|
|
38
|
+
create_drawer_page,
|
|
39
|
+
update_home_page_with_drawer,
|
|
40
|
+
create_drawer_widget,
|
|
41
|
+
update_router_for_drawer_item,
|
|
42
|
+
create_bottom_nav_page,
|
|
43
|
+
update_home_page_with_bottom_nav,
|
|
44
|
+
create_bottom_nav_widget,
|
|
45
|
+
)
|
|
46
|
+
from .page import generate_page_file, update_router
|
|
47
|
+
from .config import (
|
|
48
|
+
CoreGenConfig,
|
|
49
|
+
load_config,
|
|
50
|
+
apply_cli_overrides,
|
|
51
|
+
create_default_config,
|
|
52
|
+
show_config,
|
|
53
|
+
PROJECT_CONFIG_FILE,
|
|
54
|
+
GLOBAL_CONFIG_FILE,
|
|
55
|
+
)
|
|
56
|
+
|