@underpeaks/generator-flutter 1.0.19

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 (277) hide show
  1. package/dist/adapters/bloc/bloc.d.ts +3 -0
  2. package/dist/adapters/bloc/bloc.d.ts.map +1 -0
  3. package/dist/adapters/bloc/bloc.js +283 -0
  4. package/dist/adapters/bloc/bloc.js.map +1 -0
  5. package/dist/adapters/provider/provider.d.ts +3 -0
  6. package/dist/adapters/provider/provider.d.ts.map +1 -0
  7. package/dist/adapters/provider/provider.js +182 -0
  8. package/dist/adapters/provider/provider.js.map +1 -0
  9. package/dist/adapters/riverpod/provider.d.ts +3 -0
  10. package/dist/adapters/riverpod/provider.d.ts.map +1 -0
  11. package/dist/adapters/riverpod/provider.js +230 -0
  12. package/dist/adapters/riverpod/provider.js.map +1 -0
  13. package/dist/generator.d.ts +3 -0
  14. package/dist/generator.d.ts.map +1 -0
  15. package/dist/generator.js +199 -0
  16. package/dist/generator.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +6 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/integrations/algolia.d.ts +3 -0
  22. package/dist/integrations/algolia.d.ts.map +1 -0
  23. package/dist/integrations/algolia.js +51 -0
  24. package/dist/integrations/algolia.js.map +1 -0
  25. package/dist/integrations/anthropic.d.ts +3 -0
  26. package/dist/integrations/anthropic.d.ts.map +1 -0
  27. package/dist/integrations/anthropic.js +49 -0
  28. package/dist/integrations/anthropic.js.map +1 -0
  29. package/dist/integrations/aws-s3.d.ts +3 -0
  30. package/dist/integrations/aws-s3.d.ts.map +1 -0
  31. package/dist/integrations/aws-s3.js +67 -0
  32. package/dist/integrations/aws-s3.js.map +1 -0
  33. package/dist/integrations/clerk.d.ts +3 -0
  34. package/dist/integrations/clerk.d.ts.map +1 -0
  35. package/dist/integrations/clerk.js +68 -0
  36. package/dist/integrations/clerk.js.map +1 -0
  37. package/dist/integrations/cloudinary.d.ts +3 -0
  38. package/dist/integrations/cloudinary.d.ts.map +1 -0
  39. package/dist/integrations/cloudinary.js +64 -0
  40. package/dist/integrations/cloudinary.js.map +1 -0
  41. package/dist/integrations/crisp.d.ts +3 -0
  42. package/dist/integrations/crisp.d.ts.map +1 -0
  43. package/dist/integrations/crisp.js +42 -0
  44. package/dist/integrations/crisp.js.map +1 -0
  45. package/dist/integrations/firebase.d.ts +3 -0
  46. package/dist/integrations/firebase.d.ts.map +1 -0
  47. package/dist/integrations/firebase.js +78 -0
  48. package/dist/integrations/firebase.js.map +1 -0
  49. package/dist/integrations/flutterwave.d.ts +3 -0
  50. package/dist/integrations/flutterwave.d.ts.map +1 -0
  51. package/dist/integrations/flutterwave.js +58 -0
  52. package/dist/integrations/flutterwave.js.map +1 -0
  53. package/dist/integrations/gemini.d.ts +3 -0
  54. package/dist/integrations/gemini.d.ts.map +1 -0
  55. package/dist/integrations/gemini.js +49 -0
  56. package/dist/integrations/gemini.js.map +1 -0
  57. package/dist/integrations/github.d.ts +3 -0
  58. package/dist/integrations/github.d.ts.map +1 -0
  59. package/dist/integrations/github.js +58 -0
  60. package/dist/integrations/github.js.map +1 -0
  61. package/dist/integrations/hubspot.d.ts +3 -0
  62. package/dist/integrations/hubspot.d.ts.map +1 -0
  63. package/dist/integrations/hubspot.js +70 -0
  64. package/dist/integrations/hubspot.js.map +1 -0
  65. package/dist/integrations/index.d.ts +3 -0
  66. package/dist/integrations/index.d.ts.map +1 -0
  67. package/dist/integrations/index.js +63 -0
  68. package/dist/integrations/index.js.map +1 -0
  69. package/dist/integrations/lemonsqueezy.d.ts +3 -0
  70. package/dist/integrations/lemonsqueezy.d.ts.map +1 -0
  71. package/dist/integrations/lemonsqueezy.js +49 -0
  72. package/dist/integrations/lemonsqueezy.js.map +1 -0
  73. package/dist/integrations/mailchimp.d.ts +3 -0
  74. package/dist/integrations/mailchimp.d.ts.map +1 -0
  75. package/dist/integrations/mailchimp.js +49 -0
  76. package/dist/integrations/mailchimp.js.map +1 -0
  77. package/dist/integrations/openai.d.ts +3 -0
  78. package/dist/integrations/openai.d.ts.map +1 -0
  79. package/dist/integrations/openai.js +55 -0
  80. package/dist/integrations/openai.js.map +1 -0
  81. package/dist/integrations/payfast.d.ts +3 -0
  82. package/dist/integrations/payfast.d.ts.map +1 -0
  83. package/dist/integrations/payfast.js +55 -0
  84. package/dist/integrations/payfast.js.map +1 -0
  85. package/dist/integrations/pusher.d.ts +3 -0
  86. package/dist/integrations/pusher.d.ts.map +1 -0
  87. package/dist/integrations/pusher.js +64 -0
  88. package/dist/integrations/pusher.js.map +1 -0
  89. package/dist/integrations/resend.d.ts +3 -0
  90. package/dist/integrations/resend.d.ts.map +1 -0
  91. package/dist/integrations/resend.js +51 -0
  92. package/dist/integrations/resend.js.map +1 -0
  93. package/dist/integrations/sendgrid.d.ts +3 -0
  94. package/dist/integrations/sendgrid.d.ts.map +1 -0
  95. package/dist/integrations/sendgrid.js +49 -0
  96. package/dist/integrations/sendgrid.js.map +1 -0
  97. package/dist/integrations/sentry.d.ts +3 -0
  98. package/dist/integrations/sentry.d.ts.map +1 -0
  99. package/dist/integrations/sentry.js +62 -0
  100. package/dist/integrations/sentry.js.map +1 -0
  101. package/dist/integrations/slack.d.ts +3 -0
  102. package/dist/integrations/slack.d.ts.map +1 -0
  103. package/dist/integrations/slack.js +41 -0
  104. package/dist/integrations/slack.js.map +1 -0
  105. package/dist/integrations/storage.d.ts +3 -0
  106. package/dist/integrations/storage.d.ts.map +1 -0
  107. package/dist/integrations/storage.js +106 -0
  108. package/dist/integrations/storage.js.map +1 -0
  109. package/dist/integrations/stripe.d.ts +3 -0
  110. package/dist/integrations/stripe.d.ts.map +1 -0
  111. package/dist/integrations/stripe.js +78 -0
  112. package/dist/integrations/stripe.js.map +1 -0
  113. package/dist/integrations/twilio.d.ts +3 -0
  114. package/dist/integrations/twilio.d.ts.map +1 -0
  115. package/dist/integrations/twilio.js +54 -0
  116. package/dist/integrations/twilio.js.map +1 -0
  117. package/dist/integrations/uploadthing.d.ts +3 -0
  118. package/dist/integrations/uploadthing.d.ts.map +1 -0
  119. package/dist/integrations/uploadthing.js +57 -0
  120. package/dist/integrations/uploadthing.js.map +1 -0
  121. package/dist/templates/api-builder.d.ts +12 -0
  122. package/dist/templates/api-builder.d.ts.map +1 -0
  123. package/dist/templates/api-builder.js +104 -0
  124. package/dist/templates/api-builder.js.map +1 -0
  125. package/dist/templates/api-config.d.ts +3 -0
  126. package/dist/templates/api-config.d.ts.map +1 -0
  127. package/dist/templates/api-config.js +60 -0
  128. package/dist/templates/api-config.js.map +1 -0
  129. package/dist/templates/env.d.ts +3 -0
  130. package/dist/templates/env.d.ts.map +1 -0
  131. package/dist/templates/env.js +27 -0
  132. package/dist/templates/env.js.map +1 -0
  133. package/dist/templates/gitignore.d.ts +3 -0
  134. package/dist/templates/gitignore.d.ts.map +1 -0
  135. package/dist/templates/gitignore.js +61 -0
  136. package/dist/templates/gitignore.js.map +1 -0
  137. package/dist/templates/main.d.ts +3 -0
  138. package/dist/templates/main.d.ts.map +1 -0
  139. package/dist/templates/main.js +66 -0
  140. package/dist/templates/main.js.map +1 -0
  141. package/dist/templates/model.d.ts +3 -0
  142. package/dist/templates/model.d.ts.map +1 -0
  143. package/dist/templates/model.js +104 -0
  144. package/dist/templates/model.js.map +1 -0
  145. package/dist/templates/navigation.d.ts +3 -0
  146. package/dist/templates/navigation.d.ts.map +1 -0
  147. package/dist/templates/navigation.js +306 -0
  148. package/dist/templates/navigation.js.map +1 -0
  149. package/dist/templates/page-auth.d.ts +3 -0
  150. package/dist/templates/page-auth.d.ts.map +1 -0
  151. package/dist/templates/page-auth.js +523 -0
  152. package/dist/templates/page-auth.js.map +1 -0
  153. package/dist/templates/page-blog-post.d.ts +3 -0
  154. package/dist/templates/page-blog-post.d.ts.map +1 -0
  155. package/dist/templates/page-blog-post.js +118 -0
  156. package/dist/templates/page-blog-post.js.map +1 -0
  157. package/dist/templates/page-calendar.d.ts +3 -0
  158. package/dist/templates/page-calendar.d.ts.map +1 -0
  159. package/dist/templates/page-calendar.js +173 -0
  160. package/dist/templates/page-calendar.js.map +1 -0
  161. package/dist/templates/page-cart.d.ts +3 -0
  162. package/dist/templates/page-cart.d.ts.map +1 -0
  163. package/dist/templates/page-cart.js +151 -0
  164. package/dist/templates/page-cart.js.map +1 -0
  165. package/dist/templates/page-chat.d.ts +3 -0
  166. package/dist/templates/page-chat.d.ts.map +1 -0
  167. package/dist/templates/page-chat.js +158 -0
  168. package/dist/templates/page-chat.js.map +1 -0
  169. package/dist/templates/page-checkout.d.ts +3 -0
  170. package/dist/templates/page-checkout.d.ts.map +1 -0
  171. package/dist/templates/page-checkout.js +180 -0
  172. package/dist/templates/page-checkout.js.map +1 -0
  173. package/dist/templates/page-contact.d.ts +1 -0
  174. package/dist/templates/page-contact.d.ts.map +1 -0
  175. package/dist/templates/page-contact.js +143 -0
  176. package/dist/templates/page-contact.js.map +1 -0
  177. package/dist/templates/page-custom.d.ts +3 -0
  178. package/dist/templates/page-custom.d.ts.map +1 -0
  179. package/dist/templates/page-custom.js +45 -0
  180. package/dist/templates/page-custom.js.map +1 -0
  181. package/dist/templates/page-dashboard.d.ts +3 -0
  182. package/dist/templates/page-dashboard.d.ts.map +1 -0
  183. package/dist/templates/page-dashboard.js +157 -0
  184. package/dist/templates/page-dashboard.js.map +1 -0
  185. package/dist/templates/page-detail.d.ts +3 -0
  186. package/dist/templates/page-detail.d.ts.map +1 -0
  187. package/dist/templates/page-detail.js +165 -0
  188. package/dist/templates/page-detail.js.map +1 -0
  189. package/dist/templates/page-feed.d.ts +3 -0
  190. package/dist/templates/page-feed.d.ts.map +1 -0
  191. package/dist/templates/page-feed.js +168 -0
  192. package/dist/templates/page-feed.js.map +1 -0
  193. package/dist/templates/page-form.d.ts +3 -0
  194. package/dist/templates/page-form.d.ts.map +1 -0
  195. package/dist/templates/page-form.js +205 -0
  196. package/dist/templates/page-form.js.map +1 -0
  197. package/dist/templates/page-gallery.d.ts +3 -0
  198. package/dist/templates/page-gallery.d.ts.map +1 -0
  199. package/dist/templates/page-gallery.js +152 -0
  200. package/dist/templates/page-gallery.js.map +1 -0
  201. package/dist/templates/page-invoice.d.ts +3 -0
  202. package/dist/templates/page-invoice.d.ts.map +1 -0
  203. package/dist/templates/page-invoice.js +144 -0
  204. package/dist/templates/page-invoice.js.map +1 -0
  205. package/dist/templates/page-kanban.d.ts +3 -0
  206. package/dist/templates/page-kanban.d.ts.map +1 -0
  207. package/dist/templates/page-kanban.js +114 -0
  208. package/dist/templates/page-kanban.js.map +1 -0
  209. package/dist/templates/page-list.d.ts +3 -0
  210. package/dist/templates/page-list.d.ts.map +1 -0
  211. package/dist/templates/page-list.js +284 -0
  212. package/dist/templates/page-list.js.map +1 -0
  213. package/dist/templates/page-map.d.ts +3 -0
  214. package/dist/templates/page-map.d.ts.map +1 -0
  215. package/dist/templates/page-map.js +94 -0
  216. package/dist/templates/page-map.js.map +1 -0
  217. package/dist/templates/page-messages.d.ts +3 -0
  218. package/dist/templates/page-messages.d.ts.map +1 -0
  219. package/dist/templates/page-messages.js +48 -0
  220. package/dist/templates/page-messages.js.map +1 -0
  221. package/dist/templates/page-onboarding.d.ts +3 -0
  222. package/dist/templates/page-onboarding.d.ts.map +1 -0
  223. package/dist/templates/page-onboarding.js +164 -0
  224. package/dist/templates/page-onboarding.js.map +1 -0
  225. package/dist/templates/page-otp.d.ts +3 -0
  226. package/dist/templates/page-otp.d.ts.map +1 -0
  227. package/dist/templates/page-otp.js +216 -0
  228. package/dist/templates/page-otp.js.map +1 -0
  229. package/dist/templates/page-profile.d.ts +3 -0
  230. package/dist/templates/page-profile.d.ts.map +1 -0
  231. package/dist/templates/page-profile.js +159 -0
  232. package/dist/templates/page-profile.js.map +1 -0
  233. package/dist/templates/page-reset-password.d.ts +3 -0
  234. package/dist/templates/page-reset-password.d.ts.map +1 -0
  235. package/dist/templates/page-reset-password.js +168 -0
  236. package/dist/templates/page-reset-password.js.map +1 -0
  237. package/dist/templates/page-search.d.ts +3 -0
  238. package/dist/templates/page-search.d.ts.map +1 -0
  239. package/dist/templates/page-search.js +112 -0
  240. package/dist/templates/page-search.js.map +1 -0
  241. package/dist/templates/page-settings.d.ts +3 -0
  242. package/dist/templates/page-settings.d.ts.map +1 -0
  243. package/dist/templates/page-settings.js +123 -0
  244. package/dist/templates/page-settings.js.map +1 -0
  245. package/dist/templates/page-splash.d.ts +3 -0
  246. package/dist/templates/page-splash.d.ts.map +1 -0
  247. package/dist/templates/page-splash.js +93 -0
  248. package/dist/templates/page-splash.js.map +1 -0
  249. package/dist/templates/page-wallet.d.ts +3 -0
  250. package/dist/templates/page-wallet.d.ts.map +1 -0
  251. package/dist/templates/page-wallet.js +97 -0
  252. package/dist/templates/page-wallet.js.map +1 -0
  253. package/dist/templates/pubspec.d.ts +3 -0
  254. package/dist/templates/pubspec.d.ts.map +1 -0
  255. package/dist/templates/pubspec.js +72 -0
  256. package/dist/templates/pubspec.js.map +1 -0
  257. package/dist/templates/readme.d.ts +3 -0
  258. package/dist/templates/readme.d.ts.map +1 -0
  259. package/dist/templates/readme.js +111 -0
  260. package/dist/templates/readme.js.map +1 -0
  261. package/dist/templates/repository.d.ts +3 -0
  262. package/dist/templates/repository.d.ts.map +1 -0
  263. package/dist/templates/repository.js +224 -0
  264. package/dist/templates/repository.js.map +1 -0
  265. package/dist/templates/theme.d.ts +3 -0
  266. package/dist/templates/theme.d.ts.map +1 -0
  267. package/dist/templates/theme.js +163 -0
  268. package/dist/templates/theme.js.map +1 -0
  269. package/dist/templates/validators.d.ts +3 -0
  270. package/dist/templates/validators.d.ts.map +1 -0
  271. package/dist/templates/validators.js +38 -0
  272. package/dist/templates/validators.js.map +1 -0
  273. package/dist/templates/widget-card.d.ts +3 -0
  274. package/dist/templates/widget-card.d.ts.map +1 -0
  275. package/dist/templates/widget-card.js +91 -0
  276. package/dist/templates/widget-card.js.map +1 -0
  277. package/package.json +24 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/page-wallet.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateWalletPage = generateWalletPage;
5
+ function generateWalletPage(page, stateManager) {
6
+ const lines = [];
7
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
8
+ lines.push(`// Page: Wallet`);
9
+ lines.push(`// Presentation layer — generated once, you own this file.`);
10
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
11
+ lines.push(``);
12
+ lines.push(`import 'package:flutter/material.dart';`);
13
+ lines.push(`import '../../generated/theme/app_theme.g.dart';`);
14
+ lines.push(``);
15
+ lines.push(`class WalletView extends StatelessWidget {`);
16
+ lines.push(` const WalletView({super.key});`);
17
+ lines.push(``);
18
+ lines.push(` @override`);
19
+ lines.push(` Widget build(BuildContext context) {`);
20
+ lines.push(` return Scaffold(`);
21
+ lines.push(` appBar: AppBar(title: const Text('Wallet')),`);
22
+ lines.push(` body: SingleChildScrollView(`);
23
+ lines.push(` padding: const EdgeInsets.all(16),`);
24
+ lines.push(` child: Column(`);
25
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.stretch,`);
26
+ lines.push(` children: [`);
27
+ lines.push(``);
28
+ lines.push(` // ── Balance card ─────────────────────────────────────────────`);
29
+ lines.push(` Container(`);
30
+ lines.push(` padding: const EdgeInsets.all(24),`);
31
+ lines.push(` decoration: BoxDecoration(`);
32
+ lines.push(` gradient: LinearGradient(`);
33
+ lines.push(` colors: [AppTheme.primary, AppTheme.secondary],`);
34
+ lines.push(` begin: Alignment.topLeft,`);
35
+ lines.push(` end: Alignment.bottomRight,`);
36
+ lines.push(` ),`);
37
+ lines.push(` borderRadius: BorderRadius.circular(AppTheme.borderRadius),`);
38
+ lines.push(` ),`);
39
+ lines.push(` child: Column(`);
40
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.start,`);
41
+ lines.push(` children: [`);
42
+ lines.push(` const Text('Available Balance', style: TextStyle(color: Colors.white70, fontSize: 13)),`);
43
+ lines.push(` const SizedBox(height: 8),`);
44
+ lines.push(` const Text('\$0.00', style: TextStyle(color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold)),`);
45
+ lines.push(` const SizedBox(height: 16),`);
46
+ lines.push(` Row(`);
47
+ lines.push(` children: [`);
48
+ lines.push(` _WalletAction(icon: Icons.add, label: 'Add'),`);
49
+ lines.push(` const SizedBox(width: 12),`);
50
+ lines.push(` _WalletAction(icon: Icons.send, label: 'Send'),`);
51
+ lines.push(` const SizedBox(width: 12),`);
52
+ lines.push(` _WalletAction(icon: Icons.history, label: 'History'),`);
53
+ lines.push(` ],`);
54
+ lines.push(` ),`);
55
+ lines.push(` ],`);
56
+ lines.push(` ),`);
57
+ lines.push(` ),`);
58
+ lines.push(``);
59
+ lines.push(` const SizedBox(height: 24),`);
60
+ lines.push(``);
61
+ lines.push(` // ── Recent transactions ───────────────────────────────────────`);
62
+ lines.push(` Text('Recent Transactions', style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold)),`);
63
+ lines.push(` const SizedBox(height: 12),`);
64
+ lines.push(` const Center(child: Text('No transactions yet.', style: TextStyle(color: Colors.grey))),`);
65
+ lines.push(` ],`);
66
+ lines.push(` ),`);
67
+ lines.push(` ),`);
68
+ lines.push(` );`);
69
+ lines.push(` }`);
70
+ lines.push(`}`);
71
+ lines.push(``);
72
+ lines.push(`class _WalletAction extends StatelessWidget {`);
73
+ lines.push(` final IconData icon;`);
74
+ lines.push(` final String label;`);
75
+ lines.push(` const _WalletAction({required this.icon, required this.label});`);
76
+ lines.push(``);
77
+ lines.push(` @override`);
78
+ lines.push(` Widget build(BuildContext context) {`);
79
+ lines.push(` return Column(`);
80
+ lines.push(` children: [`);
81
+ lines.push(` CircleAvatar(`);
82
+ lines.push(` backgroundColor: Colors.white.withOpacity(0.2),`);
83
+ lines.push(` child: Icon(icon, color: Colors.white, size: 20),`);
84
+ lines.push(` ),`);
85
+ lines.push(` const SizedBox(height: 4),`);
86
+ lines.push(` Text(label, style: const TextStyle(color: Colors.white, fontSize: 12)),`);
87
+ lines.push(` ],`);
88
+ lines.push(` );`);
89
+ lines.push(` }`);
90
+ lines.push(`}`);
91
+ return {
92
+ path: 'lib/presentation/views/wallet_view.dart',
93
+ content: lines.join('\n'),
94
+ category: 'customizable',
95
+ };
96
+ }
97
+ //# sourceMappingURL=page-wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-wallet.js","sourceRoot":"","sources":["../../src/templates/page-wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generatePubspec(projectName: string, stateManager: string): GeneratedFile;
3
+ //# sourceMappingURL=pubspec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubspec.d.ts","sourceRoot":"","sources":["../../src/templates/pubspec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAmExF"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePubspec = generatePubspec;
4
+ function generatePubspec(projectName, stateManager) {
5
+ const name = projectName
6
+ .toLowerCase()
7
+ .replace(/\s+/g, '_')
8
+ .replace(/[^a-z0-9_]/g, '');
9
+ const lines = [];
10
+ lines.push(`# GENERATED FILE — DO NOT EDIT MANUALLY`);
11
+ lines.push(`# Generated by Underpeaks CodeGen v1.0.0`);
12
+ lines.push(``);
13
+ lines.push(`name: ${name}`);
14
+ lines.push(`description: Generated by Underpeaks CodeGen`);
15
+ lines.push(`version: 1.0.0+1`);
16
+ lines.push(`publish_to: none`);
17
+ lines.push(``);
18
+ lines.push(`environment:`);
19
+ lines.push(` sdk: '>=3.3.0 <4.0.0'`);
20
+ lines.push(``);
21
+ lines.push(`dependencies:`);
22
+ lines.push(` flutter:`);
23
+ lines.push(` sdk: flutter`);
24
+ lines.push(``);
25
+ lines.push(` # Networking`);
26
+ lines.push(` http: ^1.2.1`);
27
+ lines.push(``);
28
+ lines.push(` # Navigation`);
29
+ lines.push(` go_router: ^14.2.0`);
30
+ lines.push(``);
31
+ lines.push(` # State management`);
32
+ if (stateManager === 'riverpod') {
33
+ lines.push(` flutter_riverpod: ^2.5.1`);
34
+ }
35
+ else if (stateManager === 'bloc') {
36
+ lines.push(` flutter_bloc: ^8.1.5`);
37
+ lines.push(` bloc: ^8.1.4`);
38
+ }
39
+ else {
40
+ lines.push(` provider: ^6.1.2`);
41
+ }
42
+ lines.push(``);
43
+ lines.push(` # Fonts`);
44
+ lines.push(` google_fonts: ^6.2.1`);
45
+ lines.push(``);
46
+ lines.push(` # Local storage`);
47
+ lines.push(` shared_preferences: ^2.3.1`);
48
+ lines.push(``);
49
+ lines.push(` # Environment config`);
50
+ lines.push(` flutter_dotenv: ^5.1.0`);
51
+ lines.push(``);
52
+ lines.push(` # Utils`);
53
+ lines.push(` intl: ^0.19.0`);
54
+ lines.push(``);
55
+ lines.push(`dev_dependencies:`);
56
+ lines.push(` flutter_test:`);
57
+ lines.push(` sdk: flutter`);
58
+ lines.push(` flutter_lints: ^4.0.0`);
59
+ lines.push(``);
60
+ lines.push(`flutter:`);
61
+ lines.push(` uses-material-design: true`);
62
+ lines.push(``);
63
+ lines.push(` # Load .env at runtime via flutter_dotenv`);
64
+ lines.push(` assets:`);
65
+ lines.push(` - .env`);
66
+ return {
67
+ path: 'pubspec.yaml',
68
+ content: lines.join('\n'),
69
+ category: 'root',
70
+ };
71
+ }
72
+ //# sourceMappingURL=pubspec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubspec.js","sourceRoot":"","sources":["../../src/templates/pubspec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateReadme(projectName: string): GeneratedFile;
3
+ //# sourceMappingURL=readme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme.d.ts","sourceRoot":"","sources":["../../src/templates/readme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA2GjE"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/readme.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateReadme = generateReadme;
5
+ function generateReadme(projectName) {
6
+ const lines = [];
7
+ lines.push(`# ${projectName}`);
8
+ lines.push(``);
9
+ lines.push(`A Flutter app generated by [Underpeaks](https://underpeaks.com).`);
10
+ lines.push(``);
11
+ lines.push(`---`);
12
+ lines.push(``);
13
+ lines.push(`## ⚠️ Before you run: create your .env file`);
14
+ lines.push(``);
15
+ lines.push(`This app will NOT start until you create a \`.env\` file. It ships with`);
16
+ lines.push(`a \`.env.example\` template — copy it and fill in your credentials.`);
17
+ lines.push(``);
18
+ lines.push(`\`\`\`bash`);
19
+ lines.push(`cp .env.example .env`);
20
+ lines.push(`\`\`\``);
21
+ lines.push(``);
22
+ lines.push(`Then open \`.env\` and set:`);
23
+ lines.push(``);
24
+ lines.push(`\`\`\``);
25
+ lines.push(`NXF_BASE_URL=... # hosted or self-hosted backend URL`);
26
+ lines.push(`NXF_PROJECT_ID=... # your project ID`);
27
+ lines.push(`NXF_API_KEY=... # your project API key`);
28
+ lines.push(`\`\`\``);
29
+ lines.push(``);
30
+ lines.push(`### Where these values come from`);
31
+ lines.push(``);
32
+ lines.push(`- **NXF_BASE_URL** — the URL of your Underpeaks backend:`);
33
+ lines.push(` - Hosted: \`https://studio.underpeaks.com\``);
34
+ lines.push(` - Self-hosted: your own Core instance URL, e.g. \`https://api.yourapp.com\``);
35
+ lines.push(`- **NXF_PROJECT_ID** — found in Studio/Core under your project settings.`);
36
+ lines.push(`- **NXF_API_KEY** — found under Settings → API Keys. This is a public`);
37
+ lines.push(` project identifier; app users still sign in with email and password.`);
38
+ lines.push(``);
39
+ lines.push(`> The \`.env\` file is git-ignored. Never commit real keys — only`);
40
+ lines.push(`> \`.env.example\` is committed.`);
41
+ lines.push(``);
42
+ lines.push(`---`);
43
+ lines.push(``);
44
+ lines.push(`## Setup`);
45
+ lines.push(``);
46
+ lines.push(`### 1. Install Flutter`);
47
+ lines.push(``);
48
+ lines.push(`Follow the official guide: https://docs.flutter.dev/get-started/install`);
49
+ lines.push(`Confirm your setup with:`);
50
+ lines.push(``);
51
+ lines.push(`\`\`\`bash`);
52
+ lines.push(`flutter doctor`);
53
+ lines.push(`\`\`\``);
54
+ lines.push(``);
55
+ lines.push(`### 2. Install dependencies`);
56
+ lines.push(``);
57
+ lines.push(`\`\`\`bash`);
58
+ lines.push(`flutter pub get`);
59
+ lines.push(`\`\`\``);
60
+ lines.push(``);
61
+ lines.push(`### 3. Create your .env (see the section above)`);
62
+ lines.push(``);
63
+ lines.push(`\`\`\`bash`);
64
+ lines.push(`cp .env.example .env`);
65
+ lines.push(`# then edit .env with your values`);
66
+ lines.push(`\`\`\``);
67
+ lines.push(``);
68
+ lines.push(`### 4. Run`);
69
+ lines.push(``);
70
+ lines.push(`\`\`\`bash`);
71
+ lines.push(`flutter run`);
72
+ lines.push(`\`\`\``);
73
+ lines.push(``);
74
+ lines.push(`---`);
75
+ lines.push(``);
76
+ lines.push(`## Troubleshooting`);
77
+ lines.push(``);
78
+ lines.push(`**App crashes immediately on launch** — you probably haven't created`);
79
+ lines.push(`\`.env\`. Run \`cp .env.example .env\` and fill it in. The app loads \`.env\``);
80
+ lines.push(`at startup and cannot run without it.`);
81
+ lines.push(``);
82
+ lines.push(`**Sign-in returns 401** — check that \`NXF_API_KEY\` and \`NXF_PROJECT_ID\``);
83
+ lines.push(`in \`.env\` match the values in your Underpeaks project settings.`);
84
+ lines.push(``);
85
+ lines.push(`**Network errors** — confirm \`NXF_BASE_URL\` points at the right backend`);
86
+ lines.push(`(hosted vs self-hosted) and is reachable from your device.`);
87
+ lines.push(``);
88
+ lines.push(`---`);
89
+ lines.push(``);
90
+ lines.push(`## Project structure`);
91
+ lines.push(``);
92
+ lines.push(`\`\`\``);
93
+ lines.push(`lib/`);
94
+ lines.push(` config/ Your app config (api_config.dart)`);
95
+ lines.push(` generated/ Auto-generated — do not edit (overwritten on regenerate)`);
96
+ lines.push(` presentation/ Your screens — safe to customize`);
97
+ lines.push(`\`\`\``);
98
+ lines.push(``);
99
+ lines.push(`Files under \`generated/\` are overwritten each time you regenerate.`);
100
+ lines.push(`Files under \`presentation/\` and \`config/\` are yours to edit.`);
101
+ lines.push(``);
102
+ lines.push(`---`);
103
+ lines.push(``);
104
+ lines.push(`Generated by Underpeaks CodeGen v1.0.0`);
105
+ return {
106
+ path: 'README.md',
107
+ content: lines.join('\n'),
108
+ category: 'root',
109
+ };
110
+ }
111
+ //# sourceMappingURL=readme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme.js","sourceRoot":"","sources":["../../src/templates/readme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Model, GeneratedFile, ProjectData } from '@underpeaks/generator-core';
2
+ export declare function generateRepository(model: Model, stateManager: string, source?: ProjectData['source']): GeneratedFile;
3
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/templates/repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAYnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAE,WAAW,CAAC,QAAQ,CAAY,GAAG,aAAa,CAwN9H"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/repository.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateRepository = generateRepository;
5
+ const generator_core_1 = require("@underpeaks/generator-core");
6
+ // FIX: endpoint path and headers were hardcoded to hosted's /builder/{slug}
7
+ // shape with x-api-key + x-customer-token — Core's real gateway is
8
+ // /api-public/v1/{project}/{table} (no /builder/ segment) and only expects
9
+ // X-API-Key, no customer token concept at all on Core's gateway route.
10
+ // source now comes from ProjectData and both generation paths are covered.
11
+ function generateRepository(model, stateManager, source = 'hosted') {
12
+ const className = (0, generator_core_1.modelToClassName)(model.name);
13
+ const fileName = (0, generator_core_1.modelToFileName)(model.name);
14
+ const pk = (0, generator_core_1.getPrimaryKey)(model);
15
+ const pkName = pk?.name ?? 'id';
16
+ const modelSlug = model.name.replace('nxf_', '').replace(/_/g, '-');
17
+ // Core: table name IS the model name as created by Core's own adapter —
18
+ // no slug transformation, since Core's gateway does an exact m.name match
19
+ // against nxf_system_models. Hosted: shard-table slug as before.
20
+ const endpointPath = source === 'core'
21
+ ? `${model.name}`
22
+ : `builder/${modelSlug}`;
23
+ const headersBlock = source === 'core'
24
+ ? `Map<String, String> get _headers => {
25
+ 'Content-Type': 'application/json',
26
+ 'X-API-Key': ApiConfig.apiKey,
27
+ };`
28
+ : `// x-api-key identifies the app/project. x-customer-token is the signed-in
29
+ // user's session token. Both are required on data routes.
30
+ Map<String, String> get _headers => {
31
+ 'Content-Type': 'application/json',
32
+ 'x-api-key': ApiConfig.apiKey,
33
+ 'x-customer-token': ApiConfig.token,
34
+ };`;
35
+ const content = `// GENERATED FILE — DO NOT EDIT MANUALLY
36
+ // Generated by Underpeaks CodeGen v1.0.0
37
+ // Source model: ${model.name}
38
+ // Regenerate: nxf generate flutter --model=${className}
39
+ // ignore_for_file: lines_longer_than_80_chars
40
+
41
+ import 'dart:convert';
42
+ import 'package:http/http.dart' as http;
43
+ import '../models/${fileName}.g.dart';
44
+ import '../../config/api_config.dart';
45
+
46
+ // ── Abstract contract ─────────────────────────────────────────────────────
47
+
48
+ abstract class ${className}Repository {
49
+ Future<${className}ListResult> findAll({
50
+ Map<String, String>? filters,
51
+ int page,
52
+ int limit,
53
+ });
54
+
55
+ Future<${className}?> findById(String ${pkName});
56
+ Future<${className}> create(${className} item);
57
+ Future<${className}> update(String ${pkName}, ${className} item);
58
+ Future<void> delete(String ${pkName});
59
+ }
60
+
61
+ // ── Result wrapper ────────────────────────────────────────────────────────
62
+
63
+ class ${className}ListResult {
64
+ final List<${className}> items;
65
+ final bool hasMore;
66
+ final int total;
67
+
68
+ const ${className}ListResult({
69
+ required this.items,
70
+ required this.hasMore,
71
+ required this.total,
72
+ });
73
+ }
74
+
75
+ // ── Underpeaks implementation ─────────────────────────────────────────────
76
+
77
+ class Nxf${className}Repository implements ${className}Repository {
78
+ final String _baseUrl = ApiConfig.baseUrl;
79
+ final String _projectId = ApiConfig.projectId;
80
+
81
+ ${headersBlock}
82
+
83
+ String get _endpoint =>
84
+ '\$_baseUrl/api-public/v1/\$_projectId/${endpointPath}';
85
+
86
+ // ── Find All ─────────────────────────────────────────────────────────────
87
+
88
+ @override
89
+ Future<${className}ListResult> findAll({
90
+ Map<String, String>? filters,
91
+ int page = 1,
92
+ int limit = 20,
93
+ }) async {
94
+ final queryParams = {
95
+ 'page': page.toString(),
96
+ 'limit': limit.toString(),
97
+ ...?filters,
98
+ };
99
+
100
+ final uri = Uri.parse(_endpoint).replace(queryParameters: queryParams);
101
+ final response = await http.get(uri, headers: _headers);
102
+
103
+ _assertSuccess(response, 'findAll');
104
+
105
+ final json = jsonDecode(response.body) as Map<String, dynamic>;
106
+ final data = (json['data'] as List<dynamic>?) ?? [];
107
+ final total = (json['total'] as int?) ?? data.length;
108
+ final items = data.map((item) => ${className}.fromJson(item as Map<String, dynamic>)).toList();
109
+
110
+ return ${className}ListResult(
111
+ items: items,
112
+ hasMore: items.length >= limit,
113
+ total: total,
114
+ );
115
+ }
116
+
117
+ // ── Find By ID ────────────────────────────────────────────────────────────
118
+
119
+ @override
120
+ Future<${className}?> findById(String ${pkName}) async {
121
+ final uri = Uri.parse('\$_endpoint/\$${pkName}');
122
+ final response = await http.get(uri, headers: _headers);
123
+
124
+ if (response.statusCode == 404) return null;
125
+ _assertSuccess(response, 'findById');
126
+
127
+ final json = jsonDecode(response.body) as Map<String, dynamic>;
128
+ return ${className}.fromJson(json['data'] as Map<String, dynamic>);
129
+ }
130
+
131
+ // ── Create ────────────────────────────────────────────────────────────────
132
+
133
+ @override
134
+ Future<${className}> create(${className} item) async {
135
+ final uri = Uri.parse(_endpoint);
136
+ final response = await http.post(
137
+ uri,
138
+ headers: _headers,
139
+ body: jsonEncode(item.toJson()),
140
+ );
141
+
142
+ _assertSuccess(response, 'create', expectedStatus: 201);
143
+
144
+ final json = jsonDecode(response.body) as Map<String, dynamic>;
145
+ return ${className}.fromJson(json['data'] as Map<String, dynamic>);
146
+ }
147
+
148
+ // ── Update ────────────────────────────────────────────────────────────────
149
+
150
+ @override
151
+ Future<${className}> update(String ${pkName}, ${className} item) async {
152
+ final uri = Uri.parse('\$_endpoint/\$${pkName}');
153
+ final response = await http.put(
154
+ uri,
155
+ headers: _headers,
156
+ body: jsonEncode(item.toJson()),
157
+ );
158
+
159
+ _assertSuccess(response, 'update');
160
+
161
+ final json = jsonDecode(response.body) as Map<String, dynamic>;
162
+ return ${className}.fromJson(json['data'] as Map<String, dynamic>);
163
+ }
164
+
165
+ // ── Delete ────────────────────────────────────────────────────────────────
166
+
167
+ @override
168
+ Future<void> delete(String ${pkName}) async {
169
+ final uri = Uri.parse('\$_endpoint/\$${pkName}');
170
+ final response = await http.delete(uri, headers: _headers);
171
+ _assertSuccess(response, 'delete');
172
+ }
173
+
174
+ // ── Helpers ───────────────────────────────────────────────────────────────
175
+
176
+ void _assertSuccess(
177
+ http.Response response,
178
+ String operation, {
179
+ int expectedStatus = 200,
180
+ }) {
181
+ if (response.statusCode != expectedStatus) {
182
+ throw ${className}RepositoryException(
183
+ operation: operation,
184
+ statusCode: response.statusCode,
185
+ message: _parseErrorMessage(response.body),
186
+ );
187
+ }
188
+ }
189
+
190
+ String _parseErrorMessage(String body) {
191
+ try {
192
+ final json = jsonDecode(body) as Map<String, dynamic>;
193
+ return json['error']?.toString() ?? 'Unknown error';
194
+ } catch (_) {
195
+ return body;
196
+ }
197
+ }
198
+ }
199
+
200
+ // ── Exception ─────────────────────────────────────────────────────────────
201
+
202
+ class ${className}RepositoryException implements Exception {
203
+ final String operation;
204
+ final int statusCode;
205
+ final String message;
206
+
207
+ const ${className}RepositoryException({
208
+ required this.operation,
209
+ required this.statusCode,
210
+ required this.message,
211
+ });
212
+
213
+ @override
214
+ String toString() =>
215
+ '${className}RepositoryException(${'$'}{operation}): [${'$'}{statusCode}] ${'$'}{message}';
216
+ }
217
+ `;
218
+ return {
219
+ path: `lib/generated/repositories/${fileName}_repository.g.dart`,
220
+ content,
221
+ category: 'generated',
222
+ };
223
+ }
224
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/templates/repository.ts"],"names":[],"mappings":";AAAA,kFAAkF;;AAclF,gDAwNC;AAnOD,+DAImC;AAEnC,4EAA4E;AAC5E,mEAAmE;AACnE,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,SAAgB,kBAAkB,CAAC,KAAY,EAAE,YAAoB,EAAE,SAAgC,QAAQ;IAC7G,MAAM,SAAS,GAAG,IAAA,iCAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAI,IAAA,gCAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,EAAE,GAAU,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAA;IACtC,MAAM,MAAM,GAAM,EAAE,EAAE,IAAI,IAAI,IAAI,CAAA;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEnE,wEAAwE;IACxE,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM;QACpC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;QACjB,CAAC,CAAC,WAAW,SAAS,EAAE,CAAA;IAE1B,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM;QACpC,CAAC,CAAC;;;SAGG;QACL,CAAC,CAAC;;;;;;SAMG,CAAA;IAEP,MAAM,OAAO,GAAG;;mBAEC,KAAK,CAAC,IAAI;8CACiB,SAAS;;;;;oBAKnC,QAAQ;;;;;iBAKX,SAAS;WACf,SAAS;;;;;;WAMT,SAAS,sBAAsB,MAAM;WACrC,SAAS,YAAY,SAAS;WAC9B,SAAS,mBAAmB,MAAM,KAAK,SAAS;+BAC5B,MAAM;;;;;QAK7B,SAAS;eACF,SAAS;;;;UAId,SAAS;;;;;;;;;WASR,SAAS,yBAAyB,SAAS;;;;IAIlD,YAAY;;;+CAG+B,YAAY;;;;;WAKhD,SAAS;;;;;;;;;;;;;;;;;;;uCAmBmB,SAAS;;aAEnC,SAAS;;;;;;;;;;WAUX,SAAS,sBAAsB,MAAM;gDACA,MAAM;;;;;;;aAOzC,SAAS;;;;;;WAMX,SAAS,YAAY,SAAS;;;;;;;;;;;aAW5B,SAAS;;;;;;WAMX,SAAS,mBAAmB,MAAM,KAAK,SAAS;gDACX,MAAM;;;;;;;;;;aAUzC,SAAS;;;;;;+BAMS,MAAM;gDACW,MAAM;;;;;;;;;;;;;cAaxC,SAAS;;;;;;;;;;;;;;;;;;;;QAoBf,SAAS;;;;;UAKP,SAAS;;;;;;;;SAQV,SAAS,uBAAuB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG;;CAEpF,CAAA;IAEC,OAAO;QACL,IAAI,EAAM,8BAA8B,QAAQ,oBAAoB;QACpE,OAAO;QACP,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ThemeData, GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateTheme(theme: ThemeData): GeneratedFile;
3
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/templates/theme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAmC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAkI7D"}