@underpeaks/generator-flutter 1.0.33 → 1.0.35

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 (141) hide show
  1. package/dist/adapters/bloc/bloc.js +1 -1
  2. package/dist/adapters/provider/provider.js +1 -1
  3. package/dist/adapters/riverpod/provider.js +1 -1
  4. package/dist/generator.d.ts +0 -10
  5. package/dist/generator.d.ts.map +1 -1
  6. package/dist/generator.js +75 -45
  7. package/dist/generator.js.map +1 -1
  8. package/dist/templates/env.d.ts.map +1 -1
  9. package/dist/templates/env.js +7 -0
  10. package/dist/templates/env.js.map +1 -1
  11. package/dist/templates/main.d.ts.map +1 -1
  12. package/dist/templates/main.js +3 -4
  13. package/dist/templates/main.js.map +1 -1
  14. package/dist/templates/model.d.ts.map +1 -1
  15. package/dist/templates/model.js +36 -73
  16. package/dist/templates/model.js.map +1 -1
  17. package/dist/templates/navigation.d.ts +1 -0
  18. package/dist/templates/navigation.d.ts.map +1 -1
  19. package/dist/templates/navigation.js +27 -26
  20. package/dist/templates/navigation.js.map +1 -1
  21. package/dist/templates/page-blog-post.d.ts +2 -2
  22. package/dist/templates/page-blog-post.d.ts.map +1 -1
  23. package/dist/templates/page-blog-post.js +49 -2
  24. package/dist/templates/page-blog-post.js.map +1 -1
  25. package/dist/templates/page-calendar.d.ts +2 -2
  26. package/dist/templates/page-calendar.d.ts.map +1 -1
  27. package/dist/templates/page-calendar.js +50 -2
  28. package/dist/templates/page-calendar.js.map +1 -1
  29. package/dist/templates/page-cart.d.ts +2 -2
  30. package/dist/templates/page-cart.d.ts.map +1 -1
  31. package/dist/templates/page-cart.js +32 -4
  32. package/dist/templates/page-cart.js.map +1 -1
  33. package/dist/templates/page-checkout.d.ts +2 -2
  34. package/dist/templates/page-checkout.d.ts.map +1 -1
  35. package/dist/templates/page-checkout.js +22 -2
  36. package/dist/templates/page-checkout.js.map +1 -1
  37. package/dist/templates/page-contact.d.ts +1 -0
  38. package/dist/templates/page-contact.js +1 -0
  39. package/dist/templates/page-contact.js.map +1 -1
  40. package/dist/templates/page-custom.d.ts +2 -2
  41. package/dist/templates/page-custom.d.ts.map +1 -1
  42. package/dist/templates/page-custom.js +50 -2
  43. package/dist/templates/page-custom.js.map +1 -1
  44. package/dist/templates/page-dashboard.d.ts +2 -2
  45. package/dist/templates/page-dashboard.d.ts.map +1 -1
  46. package/dist/templates/page-dashboard.js +102 -60
  47. package/dist/templates/page-dashboard.js.map +1 -1
  48. package/dist/templates/page-detail.d.ts +2 -2
  49. package/dist/templates/page-detail.d.ts.map +1 -1
  50. package/dist/templates/page-detail.js +188 -18
  51. package/dist/templates/page-detail.js.map +1 -1
  52. package/dist/templates/page-feed.d.ts +2 -2
  53. package/dist/templates/page-feed.d.ts.map +1 -1
  54. package/dist/templates/page-feed.js +40 -3
  55. package/dist/templates/page-feed.js.map +1 -1
  56. package/dist/templates/page-form.d.ts.map +1 -1
  57. package/dist/templates/page-form.js +779 -72
  58. package/dist/templates/page-form.js.map +1 -1
  59. package/dist/templates/page-gallery.d.ts +2 -2
  60. package/dist/templates/page-gallery.d.ts.map +1 -1
  61. package/dist/templates/page-gallery.js +61 -4
  62. package/dist/templates/page-gallery.js.map +1 -1
  63. package/dist/templates/page-invoice.d.ts +2 -2
  64. package/dist/templates/page-invoice.d.ts.map +1 -1
  65. package/dist/templates/page-invoice.js +45 -2
  66. package/dist/templates/page-invoice.js.map +1 -1
  67. package/dist/templates/page-kanban.d.ts +2 -2
  68. package/dist/templates/page-kanban.d.ts.map +1 -1
  69. package/dist/templates/page-kanban.js +112 -55
  70. package/dist/templates/page-kanban.js.map +1 -1
  71. package/dist/templates/page-landing-hero-cta.d.ts +2 -2
  72. package/dist/templates/page-landing-hero-cta.d.ts.map +1 -1
  73. package/dist/templates/page-landing-hero-cta.js +55 -4
  74. package/dist/templates/page-landing-hero-cta.js.map +1 -1
  75. package/dist/templates/page-landing-hero-features.d.ts +2 -2
  76. package/dist/templates/page-landing-hero-features.d.ts.map +1 -1
  77. package/dist/templates/page-landing-hero-features.js +32 -2
  78. package/dist/templates/page-landing-hero-features.js.map +1 -1
  79. package/dist/templates/page-landing-hero-pricing.d.ts +2 -2
  80. package/dist/templates/page-landing-hero-pricing.d.ts.map +1 -1
  81. package/dist/templates/page-landing-hero-pricing.js +32 -2
  82. package/dist/templates/page-landing-hero-pricing.js.map +1 -1
  83. package/dist/templates/page-landing-minimal.d.ts +2 -2
  84. package/dist/templates/page-landing-minimal.d.ts.map +1 -1
  85. package/dist/templates/page-landing-minimal.js +32 -2
  86. package/dist/templates/page-landing-minimal.js.map +1 -1
  87. package/dist/templates/page-list.d.ts +2 -2
  88. package/dist/templates/page-list.d.ts.map +1 -1
  89. package/dist/templates/page-list.js +72 -6
  90. package/dist/templates/page-list.js.map +1 -1
  91. package/dist/templates/page-messages.d.ts +2 -2
  92. package/dist/templates/page-messages.d.ts.map +1 -1
  93. package/dist/templates/page-messages.js +27 -2
  94. package/dist/templates/page-messages.js.map +1 -1
  95. package/dist/templates/page-onboarding.d.ts +2 -2
  96. package/dist/templates/page-onboarding.d.ts.map +1 -1
  97. package/dist/templates/page-onboarding.js +48 -3
  98. package/dist/templates/page-onboarding.js.map +1 -1
  99. package/dist/templates/page-otp.d.ts +2 -2
  100. package/dist/templates/page-otp.d.ts.map +1 -1
  101. package/dist/templates/page-otp.js +31 -3
  102. package/dist/templates/page-otp.js.map +1 -1
  103. package/dist/templates/page-profile.d.ts +2 -2
  104. package/dist/templates/page-profile.d.ts.map +1 -1
  105. package/dist/templates/page-profile.js +42 -2
  106. package/dist/templates/page-profile.js.map +1 -1
  107. package/dist/templates/page-reset-password.d.ts +2 -2
  108. package/dist/templates/page-reset-password.d.ts.map +1 -1
  109. package/dist/templates/page-reset-password.js +18 -2
  110. package/dist/templates/page-reset-password.js.map +1 -1
  111. package/dist/templates/page-search.d.ts +2 -2
  112. package/dist/templates/page-search.d.ts.map +1 -1
  113. package/dist/templates/page-search.js +63 -21
  114. package/dist/templates/page-search.js.map +1 -1
  115. package/dist/templates/page-settings.d.ts +2 -2
  116. package/dist/templates/page-settings.d.ts.map +1 -1
  117. package/dist/templates/page-settings.js +43 -5
  118. package/dist/templates/page-settings.js.map +1 -1
  119. package/dist/templates/page-splash.d.ts +2 -2
  120. package/dist/templates/page-splash.d.ts.map +1 -1
  121. package/dist/templates/page-splash.js +27 -7
  122. package/dist/templates/page-splash.js.map +1 -1
  123. package/dist/templates/page-wallet.d.ts +2 -2
  124. package/dist/templates/page-wallet.d.ts.map +1 -1
  125. package/dist/templates/page-wallet.js +50 -16
  126. package/dist/templates/page-wallet.js.map +1 -1
  127. package/dist/templates/pubspec.d.ts +1 -1
  128. package/dist/templates/pubspec.d.ts.map +1 -1
  129. package/dist/templates/pubspec.js +26 -1
  130. package/dist/templates/pubspec.js.map +1 -1
  131. package/dist/templates/repository.d.ts.map +1 -1
  132. package/dist/templates/repository.js +1 -1
  133. package/dist/templates/repository.js.map +1 -1
  134. package/dist/templates/widget-card.d.ts +1 -1
  135. package/dist/templates/widget-card.d.ts.map +1 -1
  136. package/dist/templates/widget-card.js +84 -39
  137. package/dist/templates/widget-card.js.map +1 -1
  138. package/dist/widgets/registry-display.d.ts.map +1 -1
  139. package/dist/widgets/registry-display.js +6 -5
  140. package/dist/widgets/registry-display.js.map +1 -1
  141. package/package.json +1 -1
@@ -123,7 +123,7 @@ class ${className}State {
123
123
  // ignore_for_file: lines_longer_than_80_chars
124
124
 
125
125
  import 'package:flutter_bloc/flutter_bloc.dart';
126
- import '../models/${fileName}.g.dart';
126
+ import '../models/${fileName}.dart';
127
127
  import '../repositories/${fileName}_repository.g.dart';
128
128
 
129
129
  part '${fileName}_event.g.dart';
@@ -13,7 +13,7 @@ function generateProviderNotifier(model) {
13
13
  // ignore_for_file: lines_longer_than_80_chars
14
14
 
15
15
  import 'package:flutter/foundation.dart';
16
- import '../models/${fileName}.g.dart';
16
+ import '../models/${fileName}.dart';
17
17
  import '../repositories/${fileName}_repository.g.dart';
18
18
 
19
19
  class ${className}Notifier extends ChangeNotifier {
@@ -15,7 +15,7 @@ function generateRiverpodProvider(model) {
15
15
  // ignore_for_file: lines_longer_than_80_chars
16
16
 
17
17
  import 'package:flutter_riverpod/flutter_riverpod.dart';
18
- import '../models/${fileName}.g.dart';
18
+ import '../models/${fileName}.dart';
19
19
  import '../repositories/${fileName}_repository.g.dart';
20
20
 
21
21
  // ── Repository Provider ───────────────────────────────────────────────────
@@ -1,14 +1,4 @@
1
1
  import type { ProjectData, GeneratedFile } from '@underpeaks/generator-core';
2
- /**
3
- * NOTE on widget dedup: this only decides WHICH unique ui_type widgets
4
- * the project needs (via scanUsedUiTypes) — it always generates all of
5
- * them fresh, every run. It does NOT know or care whether a developer
6
- * has hand-edited a widget file on their own machine; the server has no
7
- * visibility into the local filesystem to know that. That check —
8
- * "is this file already customized on disk, so don't overwrite it" —
9
- * lives in the CLI's extraction step instead (generate.ts), which is the
10
- * only place that can actually see what's on disk.
11
- */
12
2
  export declare function generateFlutter(data: ProjectData): Promise<{
13
3
  files: GeneratedFile[];
14
4
  widgetWarnings: {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAoD5E;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC,CAmKnI"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAoD5E,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC,CAyMnI"}
package/dist/generator.js CHANGED
@@ -52,28 +52,15 @@ const provider_1 = require("./adapters/riverpod/provider");
52
52
  const bloc_1 = require("./adapters/bloc/bloc");
53
53
  const provider_2 = require("./adapters/provider/provider");
54
54
  const validators_1 = require("./templates/validators");
55
- /**
56
- * NOTE on widget dedup: this only decides WHICH unique ui_type widgets
57
- * the project needs (via scanUsedUiTypes) — it always generates all of
58
- * them fresh, every run. It does NOT know or care whether a developer
59
- * has hand-edited a widget file on their own machine; the server has no
60
- * visibility into the local filesystem to know that. That check —
61
- * "is this file already customized on disk, so don't overwrite it" —
62
- * lives in the CLI's extraction step instead (generate.ts), which is the
63
- * only place that can actually see what's on disk.
64
- */
65
55
  async function generateFlutter(data) {
66
56
  const filtered = (0, generator_core_1.filterProjectData)(data);
67
57
  const files = [];
68
- // ── Widget library (scanned + deduplicated by ui_type — one file per
69
- // unique type actually used project-wide, never one per field) ────────
70
58
  const usage = (0, generator_core_1.scanUsedUiTypes)(filtered.models, filtered.pages);
71
59
  const resolved = (0, generator_core_1.resolveRequiredWidgets)(usage, { editRegistry: registry_edit_1.flutterEditRegistry, displayRegistry: registry_display_1.flutterDisplayRegistry });
72
60
  files.push(...resolved.files);
73
61
  if (resolved.missing.length > 0) {
74
62
  console.warn(`[nxf] No widget registered for ui_type(s): ${resolved.missing.join(', ')} — these fields will not render.`);
75
63
  }
76
- // ── Generated layer (always regenerated) ──────────────────────────────────
77
64
  for (const model of filtered.models) {
78
65
  files.push((0, model_1.generateModel)(model, data.state_manager));
79
66
  files.push((0, repository_1.generateRepository)(model, data.state_manager, data.source));
@@ -92,25 +79,40 @@ async function generateFlutter(data) {
92
79
  files.push((0, navigation_1.generateNavigation)(filtered.pages, filtered.routes, filtered.models, data.state_manager));
93
80
  if (data.theme)
94
81
  files.push((0, theme_1.generateTheme)(data.theme));
95
- files.push((0, api_builder_1.generateApiBuilderFlutter)(data.endpoints ?? []));
96
- if (data.integrations && data.integrations.length > 0) {
97
- files.push(...(0, index_1.generateFlutterIntegrations)(data.integrations));
82
+ // FIX: generateApiBuilderFlutter now returns null when there are no
83
+ // registered API Builder endpoints (previously always generated an
84
+ // empty custom_endpoints.g.dart shell file) — only push it if it
85
+ // actually produced something.
86
+ // CORE PARITY: API Builder and third-party Integrations are not a Core
87
+ // feature — explicitly gated on source !== 'core' rather than relying
88
+ // on data.endpoints/data.integrations happening to be empty for Core
89
+ // projects. If Core's own ProjectData assembly ever changes, this stays
90
+ // safe regardless.
91
+ if (data.source !== 'core') {
92
+ const apiBuilderFile = (0, api_builder_1.generateApiBuilderFlutter)(data.endpoints ?? []);
93
+ if (apiBuilderFile)
94
+ files.push(apiBuilderFile);
95
+ if (data.integrations && data.integrations.length > 0) {
96
+ files.push(...(0, index_1.generateFlutterIntegrations)(data.integrations));
97
+ }
98
98
  }
99
99
  files.push((0, storage_1.generateStorageFlutter)({}));
100
- // ── Presentation layer (generated once, user owns) ────────────────────────
101
100
  for (const page of filtered.pages) {
102
101
  const model = filtered.models.find((m) => m.sm_id === page.model_id);
103
102
  switch (page.template_type) {
104
103
  case 'list':
105
104
  case 'grid':
106
105
  if (model) {
107
- files.push((0, page_list_1.generateListPage)(page, model, data.state_manager));
108
- files.push((0, widget_card_1.generateCardWidget)(model));
106
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
107
+ files.push((0, page_list_1.generateListPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
108
+ files.push((0, widget_card_1.generateCardWidget)(model, data.project_type));
109
109
  }
110
110
  break;
111
111
  case 'detail':
112
+ // NAVIGATOR: routes + pages now passed through so back/button
113
+ // triggers on this page can be wired to real generated links.
112
114
  if (model)
113
- files.push((0, page_detail_1.generateDetailPage)(page, model, data.state_manager));
115
+ files.push((0, page_detail_1.generateDetailPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
114
116
  break;
115
117
  case 'form':
116
118
  case 'contact':
@@ -118,83 +120,106 @@ async function generateFlutter(data) {
118
120
  files.push((0, page_form_1.generateFormPage)(page, model, data.state_manager));
119
121
  break;
120
122
  case 'gallery':
123
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
121
124
  if (model)
122
- files.push((0, page_gallery_1.generateGalleryPage)(page, model, data.state_manager));
125
+ files.push((0, page_gallery_1.generateGalleryPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
123
126
  break;
124
127
  case 'dashboard':
128
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
125
129
  if (model)
126
- files.push((0, page_dashboard_1.generateDashboardPage)(page, model, data.state_manager));
130
+ files.push((0, page_dashboard_1.generateDashboardPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
127
131
  break;
128
132
  case 'profile':
133
+ // NAVIGATOR: routes + pages passed through for back/button triggers.
129
134
  if (model)
130
- files.push((0, page_profile_1.generateProfilePage)(page, model, data.state_manager));
135
+ files.push((0, page_profile_1.generateProfilePage)(page, model, data.state_manager, filtered.routes, filtered.pages));
131
136
  break;
132
137
  case 'blog-post':
138
+ // NAVIGATOR: routes + pages passed through for back/button triggers.
133
139
  if (model)
134
- files.push((0, page_blog_post_1.generateBlogPostPage)(page, model, data.state_manager));
140
+ files.push((0, page_blog_post_1.generateBlogPostPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
135
141
  break;
136
142
  case 'cart':
143
+ // NAVIGATOR: routes passed through for back/button trigger overrides.
137
144
  if (model)
138
- files.push((0, page_cart_1.generateCartPage)(page, model, data.state_manager, filtered.pages));
145
+ files.push((0, page_cart_1.generateCartPage)(page, model, data.state_manager, filtered.pages, filtered.routes));
139
146
  break;
140
147
  case 'invoice':
148
+ // NAVIGATOR: routes + pages passed through for back/button triggers.
141
149
  if (model)
142
- files.push((0, page_invoice_1.generateInvoicePage)(page, model, data.state_manager));
150
+ files.push((0, page_invoice_1.generateInvoicePage)(page, model, data.state_manager, filtered.routes, filtered.pages));
143
151
  break;
144
152
  case 'feed':
153
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
145
154
  if (model)
146
- files.push((0, page_feed_1.generateFeedPage)(page, model, data.state_manager));
155
+ files.push((0, page_feed_1.generateFeedPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
147
156
  break;
148
157
  case 'search':
158
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
149
159
  if (model)
150
- files.push((0, page_search_1.generateSearchPage)(page, model, data.state_manager));
160
+ files.push((0, page_search_1.generateSearchPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
151
161
  break;
152
162
  case 'kanban':
163
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
153
164
  if (model)
154
- files.push((0, page_kanban_1.generateKanbanPage)(page, model, data.state_manager));
165
+ files.push((0, page_kanban_1.generateKanbanPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
155
166
  break;
156
167
  case 'calendar':
168
+ // NAVIGATOR: routes + pages passed through for card-tap/button triggers.
157
169
  if (model)
158
- files.push((0, page_calendar_1.generateCalendarPage)(page, model, data.state_manager));
170
+ files.push((0, page_calendar_1.generateCalendarPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
159
171
  break;
160
172
  case 'checkout':
161
- files.push((0, page_checkout_1.generateCheckoutPage)(page, data.state_manager));
173
+ // NAVIGATOR: routes + pages passed through to override the
174
+ // post-order redirect (was a hardcoded '/orders' guess).
175
+ files.push((0, page_checkout_1.generateCheckoutPage)(page, data.state_manager, filtered.routes, filtered.pages));
162
176
  break;
163
177
  case 'wallet':
164
- files.push((0, page_wallet_1.generateWalletPage)(page, data.state_manager));
178
+ // NAVIGATOR: routes + pages passed through for label-matched button routes.
179
+ files.push((0, page_wallet_1.generateWalletPage)(page, data.state_manager, filtered.routes, filtered.pages));
165
180
  break;
166
181
  case 'chat':
167
182
  files.push((0, page_chat_1.generateChatPage)(page, data.state_manager));
168
183
  break;
169
184
  case 'messages':
170
- files.push((0, page_messages_1.generateMessagesPage)(page, data.state_manager));
185
+ // NAVIGATOR: routes + pages passed through for label-matched button route.
186
+ files.push((0, page_messages_1.generateMessagesPage)(page, data.state_manager, filtered.routes, filtered.pages));
171
187
  break;
172
188
  case 'map':
173
189
  files.push((0, page_map_1.generateMapPage)(page, data.state_manager));
174
190
  break;
175
191
  case 'settings':
176
- files.push((0, page_settings_1.generateSettingsPage)(page, data.state_manager));
192
+ // NAVIGATOR: routes + pages passed through for label-matched button routes.
193
+ files.push((0, page_settings_1.generateSettingsPage)(page, data.state_manager, filtered.routes, filtered.pages));
177
194
  break;
178
195
  case 'splash':
179
- files.push((0, page_splash_1.generateSplashPage)(page, data.state_manager));
196
+ // NAVIGATOR: routes + pages passed through for post-auth-check overrides.
197
+ files.push((0, page_splash_1.generateSplashPage)(page, data.state_manager, filtered.pages, filtered.routes));
180
198
  break;
181
199
  case 'onboarding':
182
- files.push((0, page_onboarding_1.generateOnboardingPage)(page, data.state_manager));
200
+ // NAVIGATOR: routes + pages passed through for button-trigger override.
201
+ files.push((0, page_onboarding_1.generateOnboardingPage)(page, data.state_manager, filtered.pages, filtered.routes));
183
202
  break;
184
203
  case 'custom':
185
- files.push((0, page_custom_1.generateCustomPage)(page, data.state_manager));
204
+ // NAVIGATOR: routes + pages passed through for optional back/button.
205
+ files.push((0, page_custom_1.generateCustomPage)(page, data.state_manager, filtered.routes, filtered.pages));
186
206
  break;
187
207
  case 'landing-hero-cta':
188
- files.push((0, page_landing_hero_cta_1.generateLandingHeroCta)(page, data.state_manager));
208
+ // NAVIGATOR: routes + pages passed through — fixes the previously
209
+ // no-op "Get Started" button when a button-trigger route exists.
210
+ files.push((0, page_landing_hero_cta_1.generateLandingHeroCta)(page, data.state_manager, filtered.routes, filtered.pages));
189
211
  break;
190
212
  case 'landing-hero-features':
191
- files.push((0, page_landing_hero_features_1.generateLandingHeroFeatures)(page, data.state_manager));
213
+ // NAVIGATOR: routes + pages passed through for swipe trigger.
214
+ files.push((0, page_landing_hero_features_1.generateLandingHeroFeatures)(page, data.state_manager, filtered.routes, filtered.pages));
192
215
  break;
193
216
  case 'landing-hero-pricing':
194
- files.push((0, page_landing_hero_pricing_1.generateLandingHeroPricing)(page, data.state_manager));
217
+ // NAVIGATOR: routes + pages passed through for swipe trigger.
218
+ files.push((0, page_landing_hero_pricing_1.generateLandingHeroPricing)(page, data.state_manager, filtered.routes, filtered.pages));
195
219
  break;
196
220
  case 'landing-minimal':
197
- files.push((0, page_landing_minimal_1.generateLandingMinimal)(page, data.state_manager));
221
+ // NAVIGATOR: routes + pages passed through for swipe trigger.
222
+ files.push((0, page_landing_minimal_1.generateLandingMinimal)(page, data.state_manager, filtered.routes, filtered.pages));
198
223
  break;
199
224
  case 'sign_in':
200
225
  case 'sign_up':
@@ -202,22 +227,27 @@ async function generateFlutter(data) {
202
227
  files.push(...(0, page_auth_1.generateAuthPages)(page, data.state_manager, filtered.pages));
203
228
  break;
204
229
  case 'reset_password':
205
- files.push((0, page_reset_password_1.generateResetPasswordPage)(page, data.state_manager));
230
+ // NAVIGATOR: routes + pages passed through for button-trigger override.
231
+ files.push((0, page_reset_password_1.generateResetPasswordPage)(page, data.state_manager, filtered.pages, filtered.routes));
206
232
  break;
207
233
  case 'otp_request':
208
234
  case 'otp_entry':
209
- files.push(...(0, page_otp_1.generateOtpPages)(page, data.state_manager));
235
+ // NAVIGATOR: routes + pages passed through for button-trigger overrides.
236
+ files.push(...(0, page_otp_1.generateOtpPages)(page, data.state_manager, filtered.pages, filtered.routes));
210
237
  break;
211
238
  }
212
239
  }
213
- // ── Config + root ─────────────────────────────────────────────────────────
214
240
  files.push((0, api_config_1.generateApiConfig)());
215
241
  files.push((0, env_1.generateEnvTemplate)(data.project_id));
216
242
  files.push((0, gitignore_1.generateGitignore)());
217
243
  files.push((0, readme_1.generateReadme)(data.project_name));
218
- files.push((0, pubspec_1.generatePubspec)(data.project_name, data.state_manager));
244
+ // MAPS: compute project-wide whether any model has a location-input
245
+ // field, so pubspec only pulls in google_maps_flutter when actually needed.
246
+ const needsLocationAnywhere = filtered.models.some((m) => m.schema.columns.some((c) => c.ui_type === 'location-input'));
247
+ files.push((0, pubspec_1.generatePubspec)(data.project_name, data.state_manager, needsLocationAnywhere));
219
248
  files.push((0, main_1.generateMain)(data.project_name, filtered.pages, data.state_manager));
220
249
  files.push((0, validators_1.generateValidators)());
250
+ files.push((0, generator_core_1.buildManifestFile)(data.project_id, files));
221
251
  return {
222
252
  files,
223
253
  widgetWarnings: { missing: resolved.missing },
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAuBpE"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CA8BpE"}
@@ -18,6 +18,13 @@ function generateEnvTemplate(projectId) {
18
18
  lines.push(`# Your project API key (Studio/Core → Settings → API Keys)`);
19
19
  lines.push(`# Public project identifier — calls still require user sign-in.`);
20
20
  lines.push(`NXF_API_KEY=`);
21
+ lines.push(``);
22
+ lines.push(`# Google Maps API key — only required if your project uses a`);
23
+ lines.push(`# location-input field. Get one from https://console.cloud.google.com`);
24
+ lines.push(`# with the Maps SDK, Places API, and Geocoding API enabled.`);
25
+ lines.push(`# NOTE: this key also needs native platform registration that this`);
26
+ lines.push(`# generator does NOT set up for you — see README.md.`);
27
+ lines.push(`GOOGLE_MAPS_API_KEY=`);
21
28
  return {
22
29
  path: '.env.example',
23
30
  content: lines.join('\n'),
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":";;AAGA,kDAuBC;AAvBD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACpE,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;IACjF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,KAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAE1B,OAAO;QACL,IAAI,EAAM,cAAc;QACxB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":";;AAGA,kDA8BC;AA9BD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACpE,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;IACjF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,KAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;IACnF,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;IAChF,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAClE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAElC,OAAO;QACL,IAAI,EAAM,cAAc;QACxB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,YAAY,CAC1B,WAAW,EAAG,MAAM,EACpB,KAAK,EAAS,OAAO,EAAE,EACvB,YAAY,EAAE,MAAM,GACnB,aAAa,CAmEf"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,YAAY,CAC1B,WAAW,EAAG,MAAM,EACpB,KAAK,EAAS,OAAO,EAAE,EACvB,YAAY,EAAE,MAAM,GACnB,aAAa,CA8Df"}
@@ -3,10 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.generateMain = generateMain;
5
5
  function generateMain(projectName, pages, stateManager) {
6
- const firstPage = pages.find((p) => ['bottom-nav', 'drawer-nav', 'sidebar-nav'].includes(p.nav_type ?? '')) ?? pages[0];
7
- const firstRoute = firstPage
8
- ? `'/${firstPage.slug.replace(/^\//, '')}'`
9
- : `'/'`;
10
6
  const lines = [];
11
7
  lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
12
8
  lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
@@ -47,6 +43,9 @@ function generateMain(projectName, pages, stateManager) {
47
43
  lines.push(``);
48
44
  lines.push(` @override`);
49
45
  lines.push(` Widget build(BuildContext context) {`);
46
+ lines.push(` // NOTE: the start route is controlled by appRouter's own`);
47
+ lines.push(` // initialLocation (see generated/navigation/router.g.dart), which is`);
48
+ lines.push(` // built from real nav_settings — not decided here.`);
50
49
  lines.push(` return MaterialApp.router(`);
51
50
  lines.push(` title: '${projectName}',`);
52
51
  lines.push(` theme: AppTheme.light,`);
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":";AAAA,4EAA4E;;AAI5E,oCAuEC;AAvED,SAAgB,YAAY,CAC1B,WAAoB,EACpB,KAAuB,EACvB,YAAoB;IAEpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CACvE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IAEb,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG;QAC3C,CAAC,CAAC,KAAK,CAAA;IAET,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAElE,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACxE,CAAC;SAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAChE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IAC/E,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAE5C,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,2BAA2B,WAAW,IAAI,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,eAAe;QACzB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":";AAAA,4EAA4E;;AAI5E,oCAkEC;AAlED,SAAgB,YAAY,CAC1B,WAAoB,EACpB,KAAuB,EACvB,YAAoB;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAElE,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACxE,CAAC;SAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAChE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IAC/E,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAE5C,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAA;IACvF,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,2BAA2B,WAAW,IAAI,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,eAAe;QACzB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAStE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CA2G/E"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAyBtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAgD/E"}
@@ -3,100 +3,63 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.generateModel = generateModel;
5
5
  const generator_core_1 = require("@underpeaks/generator-core");
6
+ // NOTE: the model source file can no longer be named `${fileName}.g.dart` —
7
+ // build_runner (freezed + json_serializable) generates its own
8
+ // `${fileName}.freezed.dart` and `${fileName}.g.dart` companion files
9
+ // alongside a plain `.dart` source, and a source file literally named
10
+ // `.g.dart` would collide with — and be silently overwritten or rejected
11
+ // by — build_runner's own output. The model now lives at
12
+ // `${fileName}.dart`; every template that imports the model file needs
13
+ // this path updated (see the accompanying find/fix sweep).
14
+ //
15
+ // FIX: was built from getVisibleColumns(), which excludes any field with
16
+ // hidden: true — meaning a hidden foreign key like order_id or tenant_id
17
+ // never existed on the model class at all, breaking create/update. Models
18
+ // must always include every real column; "hidden" only controls whether
19
+ // a widget renders for that field in forms/detail views, not whether the
20
+ // model itself carries the value.
6
21
  function generateModel(model, stateManager) {
7
22
  const className = (0, generator_core_1.modelToClassName)(model.name);
8
23
  const fileName = (0, generator_core_1.modelToFileName)(model.name);
9
- const columns = (0, generator_core_1.getVisibleColumns)(model);
24
+ const columns = (0, generator_core_1.getAllNonPrimaryColumns)(model);
10
25
  const pk = (0, generator_core_1.getPrimaryKey)(model);
11
- const pkName = pk?.name ?? 'id';
12
26
  const allColumns = pk ? [pk, ...columns] : columns;
13
- const fields = allColumns.map((col) => {
14
- const { dartType } = (0, generator_core_1.parseColumnType)(col);
15
- return ` final ${dartType} ${col.name};`;
16
- }).join('\n');
17
27
  const constructorParams = allColumns.map((col) => {
18
- const { nullable } = (0, generator_core_1.parseColumnType)(col);
19
- return nullable
20
- ? ` this.${col.name},`
21
- : ` required this.${col.name},`;
22
- }).join('\n');
23
- const fromJsonFields = allColumns.map((col) => {
24
- const { fromJson } = (0, generator_core_1.parseColumnType)(col);
25
- return ` ${col.name}: ${fromJson},`;
26
- }).join('\n');
27
- const toJsonFields = allColumns.map((col) => {
28
- const { toJson } = (0, generator_core_1.parseColumnType)(col);
29
- return ` ${toJson},`;
30
- }).join('\n');
31
- const copyWithParams = allColumns.map((col) => {
32
- const { dartType } = (0, generator_core_1.parseColumnType)(col);
28
+ const { dartType, nullable } = (0, generator_core_1.parseColumnType)(col);
33
29
  const baseType = dartType.replace('?', '');
34
- return ` ${baseType}? ${col.name},`;
35
- }).join('\n');
36
- const copyWithFields = allColumns.map((col) => {
37
- return ` ${col.name}: ${col.name} ?? this.${col.name},`;
30
+ return nullable
31
+ ? ` ${baseType}? ${col.name},`
32
+ : ` required ${baseType} ${col.name},`;
38
33
  }).join('\n');
39
- const equalsFields = allColumns
40
- .map((col) => ` other.${col.name} == ${col.name}`)
41
- .join(' &&\n');
42
- const hashFields = allColumns.map((col) => col.name).join(', ');
43
34
  const content = `// GENERATED FILE — DO NOT EDIT MANUALLY
44
35
  // Generated by Underpeaks CodeGen v1.0.0
45
36
  // Source model: ${model.name}
46
37
  // Regenerate: nxf generate flutter --model=${className}
38
+ //
39
+ // This model uses Freezed + json_serializable. copyWith/==/hashCode/
40
+ // toString/fromJson/toJson are all generated by build_runner into
41
+ // ${fileName}.freezed.dart and ${fileName}.g.dart — the CLI runs
42
+ // build_runner automatically after generation, so those companion files
43
+ // will already exist by the time you open this project.
47
44
  // ignore_for_file: lines_longer_than_80_chars
48
45
 
49
- // ── Model ─────────────────────────────────────────────────────────────────
46
+ import 'package:freezed_annotation/freezed_annotation.dart';
50
47
 
51
- class ${className} {
52
- ${fields}
48
+ part '${fileName}.freezed.dart';
49
+ part '${fileName}.g.dart';
53
50
 
54
- const ${className}({
51
+ @freezed
52
+ class ${className} with _$${className} {
53
+ const factory ${className}({
55
54
  ${constructorParams}
56
- });
57
-
58
- // ── Serialisation ────────────────────────────────────────────────────────
59
-
60
- factory ${className}.fromJson(Map<String, dynamic> json) {
61
- return ${className}(
62
- ${fromJsonFields}
63
- );
64
- }
65
-
66
- Map<String, dynamic> toJson() {
67
- return {
68
- ${toJsonFields}
69
- };
70
- }
71
-
72
- // ── CopyWith ─────────────────────────────────────────────────────────────
73
-
74
- ${className} copyWith({
75
- ${copyWithParams}
76
- }) {
77
- return ${className}(
78
- ${copyWithFields}
79
- );
80
- }
81
-
82
- // ── Equality ─────────────────────────────────────────────────────────────
83
-
84
- @override
85
- bool operator ==(Object other) {
86
- if (identical(this, other)) return true;
87
- return other is ${className} &&
88
- ${equalsFields};
89
- }
90
-
91
- @override
92
- int get hashCode => Object.hash(${hashFields});
55
+ }) = _${className};
93
56
 
94
- @override
95
- String toString() => '${className}(${pkName}: \$${pkName})';
57
+ factory ${className}.fromJson(Map<String, dynamic> json) =>
58
+ _$${className}FromJson(json);
96
59
  }
97
60
  `;
98
61
  return {
99
- path: `lib/generated/models/${fileName}.g.dart`,
62
+ path: `lib/generated/models/${fileName}.dart`,
100
63
  content,
101
64
  category: 'generated',
102
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":";AAAA,6EAA6E;;AA2B7E,sCAgDC;AAxED,+DAOmC;AAEnC,4EAA4E;AAC5E,+DAA+D;AAC/D,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,yDAAyD;AACzD,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,kCAAkC;AAClC,SAAgB,aAAa,CAAC,KAAY,EAAE,YAAoB;IAC9D,MAAM,SAAS,GAAI,IAAA,iCAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAK,IAAA,gCAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAM,IAAA,wCAAuB,EAAC,KAAK,CAAC,CAAA;IACjD,MAAM,EAAE,GAAW,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAElD,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,gCAAe,EAAC,GAAG,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC1C,OAAO,QAAQ;YACb,CAAC,CAAC,OAAO,QAAQ,KAAK,GAAG,CAAC,IAAI,GAAG;YACjC,CAAC,CAAC,gBAAgB,QAAQ,IAAI,GAAG,CAAC,IAAI,GAAG,CAAA;IAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,OAAO,GAAG;;mBAEC,KAAK,CAAC,IAAI;8CACiB,SAAS;;;;KAIlD,QAAQ,qBAAqB,QAAQ;;;;;;;QAOlC,QAAQ;QACR,QAAQ;;;QAGR,SAAS,WAAW,SAAS;kBACnB,SAAS;EACzB,iBAAiB;UACT,SAAS;;YAEP,SAAS;UACX,SAAS;;CAElB,CAAA;IAEC,OAAO;QACL,IAAI,EAAM,wBAAwB,QAAQ,OAAO;QACjD,OAAO;QACP,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import type { Model, PageDef, PageRoute, GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function effectiveMobileBottom(page: PageDef): 'bottom-nav' | 'drawer-nav' | 'none';
2
3
  export declare function generateNavigation(pages: PageDef[], routes: PageRoute[], models: Model[], stateManager: string): GeneratedFile;
3
4
  //# sourceMappingURL=navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AA0H1F,wBAAgB,kBAAkB,CAChC,KAAK,EAAS,OAAO,EAAE,EACvB,MAAM,EAAQ,SAAS,EAAE,EACzB,MAAM,EAAQ,KAAK,EAAE,EACrB,YAAY,EAAE,MAAM,GACnB,aAAa,CA6Mf"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAiD1F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAQzF;AA6ED,wBAAgB,kBAAkB,CAChC,KAAK,EAAS,OAAO,EAAE,EACvB,MAAM,EAAQ,SAAS,EAAE,EACzB,MAAM,EAAQ,KAAK,EAAE,EACrB,YAAY,EAAE,MAAM,GACnB,aAAa,CAgMf"}