@semacode/cli 3.13.1 → 4.0.0

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 (76) hide show
  1. package/dist/cliGrammar.js +17 -5
  2. package/dist/cliHelpTexto.js +4 -3
  3. package/dist/contextPack.d.ts +75 -0
  4. package/dist/contextPack.js +130 -0
  5. package/dist/driftPack.d.ts +65 -0
  6. package/dist/driftPack.js +96 -0
  7. package/dist/entrypointPack.d.ts +47 -0
  8. package/dist/entrypointPack.js +79 -0
  9. package/dist/index.part05.js +7 -1
  10. package/dist/index.part06.js +51 -0
  11. package/dist/index.part07.d.ts +1 -1
  12. package/dist/index.part07.js +16 -2
  13. package/dist/index.part08.js +1 -1
  14. package/dist/indexPack.d.ts +54 -0
  15. package/dist/indexPack.js +140 -0
  16. package/dist/init/templates.part01.js +393 -393
  17. package/dist/init/templates.part02.js +189 -189
  18. package/dist/initTemplatesBackend.js +73 -73
  19. package/dist/initTemplatesFlutter.js +137 -137
  20. package/dist/initTemplatesRuntime.js +350 -350
  21. package/dist/initTemplatesWeb.js +309 -309
  22. package/dist/sync/index.js +35 -35
  23. package/docs/auth.md +26 -26
  24. package/docs/database.md +15 -15
  25. package/docs/env.md +16 -16
  26. package/docs/frontend.md +41 -41
  27. package/docs/i18n.md +15 -15
  28. package/exemplos/agendamento.sema +1 -1
  29. package/exemplos/assinatura.sema +1 -1
  30. package/exemplos/auditoria.sema +1 -1
  31. package/exemplos/autenticacao.sema +1 -1
  32. package/exemplos/author_obra_comum.sema +1 -1
  33. package/exemplos/author_tema_sensivel.sema +1 -1
  34. package/exemplos/automacao.sema +1 -1
  35. package/exemplos/cadastro_usuario.sema +1 -1
  36. package/exemplos/calculadora.sema +1 -1
  37. package/exemplos/crud_simples.sema +1 -1
  38. package/exemplos/estoque.sema +1 -1
  39. package/exemplos/exportacao.sema +1 -1
  40. package/exemplos/fila.sema +1 -1
  41. package/exemplos/integracao_externa.sema +1 -1
  42. package/exemplos/multi_tenant.sema +1 -1
  43. package/exemplos/notificacao.sema +1 -1
  44. package/exemplos/operacao_estrategia.sema +132 -132
  45. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  46. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  47. package/exemplos/operacao_estrategia_gates.sema +106 -106
  48. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  49. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  50. package/exemplos/pagamento.sema +1 -1
  51. package/exemplos/pagamento_dominio.sema +1 -1
  52. package/exemplos/pedido.sema +1 -1
  53. package/exemplos/permissao.sema +1 -1
  54. package/exemplos/persistencia_vendor_first.sema +1 -1
  55. package/exemplos/php_crud.sema +170 -170
  56. package/exemplos/profile_conversas.sema +165 -165
  57. package/exemplos/profile_game.sema +1 -1
  58. package/exemplos/profile_legal.sema +1 -1
  59. package/exemplos/profile_ops.sema +1 -1
  60. package/exemplos/profile_research.sema +1 -1
  61. package/exemplos/profile_software.sema +1 -1
  62. package/exemplos/profile_workflow_n8n.sema +1 -1
  63. package/exemplos/relatorio.sema +1 -1
  64. package/exemplos/replica_analitica_erp.sema +1 -1
  65. package/exemplos/testes_embutidos.sema +1 -1
  66. package/exemplos/tratamento_erro.sema +1 -1
  67. package/exemplos/upload_arquivo.sema +1 -1
  68. package/exemplos/webhook.sema +1 -1
  69. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  70. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  71. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  72. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  73. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  74. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  75. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  76. package/package.json +1 -1
@@ -8,171 +8,171 @@ export function arquivosInitTemplatesFlutter(template, arquivosBase) {
8
8
  arquivos = [
9
9
  {
10
10
  caminhoRelativo: "sema.config.json",
11
- conteudo: `{
12
- "origens": ["./contratos"],
13
- "saida": "./generated",
14
- "alvos": ["dart"],
15
- "alvoPadrao": "dart",
16
- "estruturaSaida": "modulos",
17
- "framework": "base",
18
- "modoEstrito": true,
19
- "diretoriosCodigo": ["./lib"],
20
- "fontesLegado": ["flutter-consumer", "dart"],
21
- "diretoriosSaidaPorAlvo": {
22
- "dart": "./generated/dart"
23
- },
24
- "convencoesGeracaoPorProjeto": "base"
25
- }
11
+ conteudo: `{
12
+ "origens": ["./contratos"],
13
+ "saida": "./generated",
14
+ "alvos": ["dart"],
15
+ "alvoPadrao": "dart",
16
+ "estruturaSaida": "modulos",
17
+ "framework": "base",
18
+ "modoEstrito": true,
19
+ "diretoriosCodigo": ["./lib"],
20
+ "fontesLegado": ["flutter-consumer", "dart"],
21
+ "diretoriosSaidaPorAlvo": {
22
+ "dart": "./generated/dart"
23
+ },
24
+ "convencoesGeracaoPorProjeto": "base"
25
+ }
26
26
  `,
27
27
  },
28
28
  {
29
29
  caminhoRelativo: "pubspec.yaml",
30
- conteudo: `name: sema_flutter_consumer
31
- description: Starter Flutter consumer IA-first com Sema
32
- publish_to: "none"
33
-
34
- environment:
35
- sdk: ">=3.3.0 <4.0.0"
36
-
37
- dependencies:
38
- flutter:
39
- sdk: flutter
40
- go_router: ^14.0.0
30
+ conteudo: `name: sema_flutter_consumer
31
+ description: Starter Flutter consumer IA-first com Sema
32
+ publish_to: "none"
33
+
34
+ environment:
35
+ sdk: ">=3.3.0 <4.0.0"
36
+
37
+ dependencies:
38
+ flutter:
39
+ sdk: flutter
40
+ go_router: ^14.0.0
41
41
  `,
42
42
  },
43
43
  {
44
44
  caminhoRelativo: "contratos/showroom_consumer.sema",
45
- conteudo: `module showroom.consumer {
46
- task fetch_showroom_ranking {
47
- input {
48
- }
49
- output {
50
- resultado: Json
51
- }
52
- impl {
53
- dart: lib.sema_consumer_bridge.semaFetchShowroomRanking
54
- }
55
- vinculos {
56
- arquivo: "lib/sema_consumer_bridge.dart"
57
- simbolo: lib.sema_consumer_bridge.semaFetchShowroomRanking
58
- superficie: "/ranking"
59
- arquivo: "lib/router.dart"
60
- arquivo: "lib/screens/ranking_screen.dart"
61
- }
62
- guarantees {
63
- resultado existe
64
- }
65
- }
66
- }
45
+ conteudo: `module showroom.consumer {
46
+ task fetch_showroom_ranking {
47
+ input {
48
+ }
49
+ output {
50
+ resultado: Json
51
+ }
52
+ impl {
53
+ dart: lib.sema_consumer_bridge.semaFetchShowroomRanking
54
+ }
55
+ vinculos {
56
+ arquivo: "lib/sema_consumer_bridge.dart"
57
+ simbolo: lib.sema_consumer_bridge.semaFetchShowroomRanking
58
+ superficie: "/ranking"
59
+ arquivo: "lib/router.dart"
60
+ arquivo: "lib/screens/ranking_screen.dart"
61
+ }
62
+ guarantees {
63
+ resultado existe
64
+ }
65
+ }
66
+ }
67
67
  `,
68
68
  },
69
69
  {
70
70
  caminhoRelativo: "lib/sema_consumer_bridge.dart",
71
- conteudo: `Future<Map<String, dynamic>> semaFetchShowroomRanking() async {
72
- return {
73
- "ranking": [
74
- {"clube": "Tigres do Norte", "pontos": 33},
75
- {"clube": "Porto Azul", "pontos": 31},
76
- {"clube": "Galo de Ouro", "pontos": 28},
77
- ],
78
- };
79
- }
71
+ conteudo: `Future<Map<String, dynamic>> semaFetchShowroomRanking() async {
72
+ return {
73
+ "ranking": [
74
+ {"clube": "Tigres do Norte", "pontos": 33},
75
+ {"clube": "Porto Azul", "pontos": 31},
76
+ {"clube": "Galo de Ouro", "pontos": 28},
77
+ ],
78
+ };
79
+ }
80
80
  `,
81
81
  },
82
82
  {
83
83
  caminhoRelativo: "lib/router.dart",
84
- conteudo: `import "package:go_router/go_router.dart";
85
- import "package:flutter/widgets.dart";
86
- import "screens/ranking_screen.dart";
87
-
88
- final appRouter = GoRouter(
89
- routes: [
90
- GoRoute(
91
- path: "/ranking",
92
- builder: (BuildContext context, GoRouterState state) => const RankingScreen(),
93
- ),
94
- ],
95
- );
84
+ conteudo: `import "package:go_router/go_router.dart";
85
+ import "package:flutter/widgets.dart";
86
+ import "screens/ranking_screen.dart";
87
+
88
+ final appRouter = GoRouter(
89
+ routes: [
90
+ GoRoute(
91
+ path: "/ranking",
92
+ builder: (BuildContext context, GoRouterState state) => const RankingScreen(),
93
+ ),
94
+ ],
95
+ );
96
96
  `,
97
97
  },
98
98
  {
99
99
  caminhoRelativo: "lib/screens/ranking_screen.dart",
100
- conteudo: `import "package:flutter/widgets.dart";
101
- import "../sema_consumer_bridge.dart";
102
-
103
- class RankingScreen extends StatefulWidget {
104
- const RankingScreen({super.key});
105
-
106
- @override
107
- State<RankingScreen> createState() => _RankingScreenState();
108
- }
109
-
110
- class _RankingScreenState extends State<RankingScreen> {
111
- List<Map<String, dynamic>> ranking = const [];
112
-
113
- @override
114
- void initState() {
115
- super.initState();
116
- semaFetchShowroomRanking().then((payload) {
117
- final itens = (payload["ranking"] as List<dynamic>? ?? const [])
118
- .whereType<Map<String, dynamic>>()
119
- .toList();
120
- if (!mounted) return;
121
- setState(() {
122
- ranking = itens;
123
- });
124
- });
125
- }
126
-
127
- @override
128
- Widget build(BuildContext context) {
129
- return ListView(
130
- children: [
131
- const Padding(
132
- padding: EdgeInsets.all(16),
133
- child: Text("Ranking showroom"),
134
- ),
135
- ...ranking.map((item) => Padding(
136
- padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
137
- child: Text("\${item["clube"]} - \${item["pontos"]} pts"),
138
- )),
139
- ],
140
- );
141
- }
142
- }
100
+ conteudo: `import "package:flutter/widgets.dart";
101
+ import "../sema_consumer_bridge.dart";
102
+
103
+ class RankingScreen extends StatefulWidget {
104
+ const RankingScreen({super.key});
105
+
106
+ @override
107
+ State<RankingScreen> createState() => _RankingScreenState();
108
+ }
109
+
110
+ class _RankingScreenState extends State<RankingScreen> {
111
+ List<Map<String, dynamic>> ranking = const [];
112
+
113
+ @override
114
+ void initState() {
115
+ super.initState();
116
+ semaFetchShowroomRanking().then((payload) {
117
+ final itens = (payload["ranking"] as List<dynamic>? ?? const [])
118
+ .whereType<Map<String, dynamic>>()
119
+ .toList();
120
+ if (!mounted) return;
121
+ setState(() {
122
+ ranking = itens;
123
+ });
124
+ });
125
+ }
126
+
127
+ @override
128
+ Widget build(BuildContext context) {
129
+ return ListView(
130
+ children: [
131
+ const Padding(
132
+ padding: EdgeInsets.all(16),
133
+ child: Text("Ranking showroom"),
134
+ ),
135
+ ...ranking.map((item) => Padding(
136
+ padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
137
+ child: Text("\${item["clube"]} - \${item["pontos"]} pts"),
138
+ )),
139
+ ],
140
+ );
141
+ }
142
+ }
143
143
  `,
144
144
  },
145
145
  {
146
146
  caminhoRelativo: "lib/main.dart",
147
- conteudo: `import "package:flutter/material.dart";
148
- import "router.dart";
149
-
150
- void main() {
151
- runApp(const ShowroomApp());
152
- }
153
-
154
- class ShowroomApp extends StatelessWidget {
155
- const ShowroomApp({super.key});
156
-
157
- @override
158
- Widget build(BuildContext context) {
159
- return MaterialApp.router(
160
- routerConfig: appRouter,
161
- );
162
- }
163
- }
147
+ conteudo: `import "package:flutter/material.dart";
148
+ import "router.dart";
149
+
150
+ void main() {
151
+ runApp(const ShowroomApp());
152
+ }
153
+
154
+ class ShowroomApp extends StatelessWidget {
155
+ const ShowroomApp({super.key});
156
+
157
+ @override
158
+ Widget build(BuildContext context) {
159
+ return MaterialApp.router(
160
+ routerConfig: appRouter,
161
+ );
162
+ }
163
+ }
164
164
  `,
165
165
  },
166
166
  {
167
167
  caminhoRelativo: "README.md",
168
- conteudo: `# Starter Flutter Consumer + Sema
169
-
170
- - Contratos em \`contratos/\`
171
- - Bridge consumer canonico em \`lib/sema_consumer_bridge.dart\`
172
- - Rotas consumer em \`lib/router.dart\`
173
- - Superficies consumer em \`lib/screens/\`
174
- - O slice oficial desta fase e \`consumer bridge + router/screen surfaces\`
175
- - \`drift\` valida \`impl\`, \`vinculos\`, bridge e superficies, sem prometer visual diff
168
+ conteudo: `# Starter Flutter Consumer + Sema
169
+
170
+ - Contratos em \`contratos/\`
171
+ - Bridge consumer canonico em \`lib/sema_consumer_bridge.dart\`
172
+ - Rotas consumer em \`lib/router.dart\`
173
+ - Superficies consumer em \`lib/screens/\`
174
+ - O slice oficial desta fase e \`consumer bridge + router/screen surfaces\`
175
+ - \`drift\` valida \`impl\`, \`vinculos\`, bridge e superficies, sem prometer visual diff
176
176
  `,
177
177
  },
178
178
  ];