@underpeaks/generator-flutter 1.0.56 → 1.0.58
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.
- package/dist/adapters/riverpod/provider.d.ts.map +1 -1
- package/dist/adapters/riverpod/provider.js +8 -6
- package/dist/adapters/riverpod/provider.js.map +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +13 -52
- package/dist/generator.js.map +1 -1
- package/dist/templates/api-config.d.ts.map +1 -1
- package/dist/templates/api-config.js +8 -3
- package/dist/templates/api-config.js.map +1 -1
- package/dist/templates/model.d.ts.map +1 -1
- package/dist/templates/model.js +10 -1
- package/dist/templates/model.js.map +1 -1
- package/dist/templates/navigation.d.ts +1 -0
- package/dist/templates/navigation.d.ts.map +1 -1
- package/dist/templates/navigation.js +1 -0
- package/dist/templates/navigation.js.map +1 -1
- package/dist/templates/page-auth.d.ts.map +1 -1
- package/dist/templates/page-auth.js +13 -0
- package/dist/templates/page-auth.js.map +1 -1
- package/dist/templates/page-cart.d.ts.map +1 -1
- package/dist/templates/page-cart.js +8 -4
- package/dist/templates/page-cart.js.map +1 -1
- package/dist/templates/page-detail.d.ts.map +1 -1
- package/dist/templates/page-detail.js +74 -20
- package/dist/templates/page-detail.js.map +1 -1
- package/dist/templates/page-landing-hero-cta.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-cta.js +111 -50
- package/dist/templates/page-landing-hero-cta.js.map +1 -1
- package/dist/templates/page-landing-hero-features.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-features.js +113 -48
- package/dist/templates/page-landing-hero-features.js.map +1 -1
- package/dist/templates/page-landing-hero-pricing.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-pricing.js +189 -56
- package/dist/templates/page-landing-hero-pricing.js.map +1 -1
- package/dist/templates/page-landing-minimal.d.ts.map +1 -1
- package/dist/templates/page-landing-minimal.js +67 -18
- package/dist/templates/page-landing-minimal.js.map +1 -1
- package/dist/templates/page-list.d.ts.map +1 -1
- package/dist/templates/page-list.js +151 -280
- package/dist/templates/page-list.js.map +1 -1
- package/dist/templates/page-map.d.ts.map +1 -1
- package/dist/templates/page-map.js +125 -42
- package/dist/templates/page-map.js.map +1 -1
- package/dist/templates/pubspec.d.ts.map +1 -1
- package/dist/templates/pubspec.js +10 -17
- package/dist/templates/pubspec.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,20 +2,31 @@
|
|
|
2
2
|
// File: underpeaks_codegen/packages/generator-flutter/src/templates/page-map.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.generateMapPage = generateMapPage;
|
|
5
|
+
// FIX: was a static grey placeholder telling the developer to add
|
|
6
|
+
// google_maps_flutter manually and replace this file themselves. Now
|
|
7
|
+
// that generator.ts auto-includes google_maps_flutter whenever any page
|
|
8
|
+
// has template_type 'map' (see generator.ts), this renders a real
|
|
9
|
+
// GoogleMap widget instead — search bar wired to the Places Autocomplete
|
|
10
|
+
// + Geocoding APIs, same pattern as the location-input form field in
|
|
11
|
+
// page-form.ts. Still requires GOOGLE_MAPS_API_KEY in .env AND native
|
|
12
|
+
// platform registration (AndroidManifest.xml / AppDelegate.swift) this
|
|
13
|
+
// generator does not set up — see README.md.
|
|
5
14
|
function generateMapPage(page, stateManager) {
|
|
6
|
-
const hasAppBar = page.nav_settings?.mobile?.header === 'app-bar';
|
|
7
15
|
const lines = [];
|
|
8
16
|
lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
|
|
9
17
|
lines.push(`// Page: Map`);
|
|
10
18
|
lines.push(`// Presentation layer — generated once, you own this file.`);
|
|
11
|
-
lines.push(`// NOTE:
|
|
19
|
+
lines.push(`// NOTE: requires GOOGLE_MAPS_API_KEY in .env AND native platform`);
|
|
20
|
+
lines.push(`// registration (AndroidManifest.xml / AppDelegate.swift) this generator`);
|
|
21
|
+
lines.push(`// does not set up for you — see README.md.`);
|
|
12
22
|
lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
|
|
13
23
|
lines.push(``);
|
|
24
|
+
lines.push(`import 'dart:convert';`);
|
|
14
25
|
lines.push(`import 'package:flutter/material.dart';`);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
26
|
+
lines.push(`import 'package:http/http.dart' as http;`);
|
|
27
|
+
lines.push(`import 'package:google_maps_flutter/google_maps_flutter.dart';`);
|
|
18
28
|
lines.push(`import '../../generated/theme/app_theme.g.dart';`);
|
|
29
|
+
lines.push(`import '../../config/api_config.dart';`);
|
|
19
30
|
lines.push(``);
|
|
20
31
|
lines.push(`class MapView extends StatefulWidget {`);
|
|
21
32
|
lines.push(` const MapView({super.key});`);
|
|
@@ -26,6 +37,11 @@ function generateMapPage(page, stateManager) {
|
|
|
26
37
|
lines.push(``);
|
|
27
38
|
lines.push(`class _MapViewState extends State<MapView> {`);
|
|
28
39
|
lines.push(` final _searchCtrl = TextEditingController();`);
|
|
40
|
+
lines.push(` GoogleMapController? _mapController;`);
|
|
41
|
+
lines.push(` LatLng _center = const LatLng(0, 0);`);
|
|
42
|
+
lines.push(` final Set<Marker> _markers = {};`);
|
|
43
|
+
lines.push(` List<Map<String, String>> _suggestions = [];`);
|
|
44
|
+
lines.push(` bool _searching = false;`);
|
|
29
45
|
lines.push(``);
|
|
30
46
|
lines.push(` @override`);
|
|
31
47
|
lines.push(` void dispose() {`);
|
|
@@ -33,53 +49,120 @@ function generateMapPage(page, stateManager) {
|
|
|
33
49
|
lines.push(` super.dispose();`);
|
|
34
50
|
lines.push(` }`);
|
|
35
51
|
lines.push(``);
|
|
52
|
+
lines.push(` Future<void> _search(String query) async {`);
|
|
53
|
+
lines.push(` if (query.trim().isEmpty) {`);
|
|
54
|
+
lines.push(` setState(() => _suggestions = []);`);
|
|
55
|
+
lines.push(` return;`);
|
|
56
|
+
lines.push(` }`);
|
|
57
|
+
lines.push(` setState(() => _searching = true);`);
|
|
58
|
+
lines.push(` try {`);
|
|
59
|
+
lines.push(` final uri = Uri.parse(`);
|
|
60
|
+
lines.push(` 'https://maps.googleapis.com/maps/api/place/autocomplete/json'`);
|
|
61
|
+
lines.push(` '?input=\${Uri.encodeComponent(query)}&key=\${ApiConfig.googleMapsApiKey}',`);
|
|
62
|
+
lines.push(` );`);
|
|
63
|
+
lines.push(` final res = await http.get(uri);`);
|
|
64
|
+
lines.push(` final json = jsonDecode(res.body) as Map<String, dynamic>;`);
|
|
65
|
+
lines.push(` final predictions = (json['predictions'] as List<dynamic>? ?? []);`);
|
|
66
|
+
lines.push(` setState(() {`);
|
|
67
|
+
lines.push(` _suggestions = predictions.map((p) => {`);
|
|
68
|
+
lines.push(` 'place_id': p['place_id'].toString(),`);
|
|
69
|
+
lines.push(` 'description': p['description'].toString(),`);
|
|
70
|
+
lines.push(` }).toList();`);
|
|
71
|
+
lines.push(` });`);
|
|
72
|
+
lines.push(` } catch (_) {`);
|
|
73
|
+
lines.push(` // Silently ignore — search is best-effort, map still usable manually.`);
|
|
74
|
+
lines.push(` } finally {`);
|
|
75
|
+
lines.push(` if (mounted) setState(() => _searching = false);`);
|
|
76
|
+
lines.push(` }`);
|
|
77
|
+
lines.push(` }`);
|
|
78
|
+
lines.push(``);
|
|
79
|
+
lines.push(` Future<void> _selectPrediction(String placeId, String description) async {`);
|
|
80
|
+
lines.push(` try {`);
|
|
81
|
+
lines.push(` final uri = Uri.parse(`);
|
|
82
|
+
lines.push(` 'https://maps.googleapis.com/maps/api/place/details/json'`);
|
|
83
|
+
lines.push(` '?place_id=\$placeId&key=\${ApiConfig.googleMapsApiKey}',`);
|
|
84
|
+
lines.push(` );`);
|
|
85
|
+
lines.push(` final res = await http.get(uri);`);
|
|
86
|
+
lines.push(` final json = jsonDecode(res.body) as Map<String, dynamic>;`);
|
|
87
|
+
lines.push(` final loc = json['result']?['geometry']?['location'] as Map<String, dynamic>?;`);
|
|
88
|
+
lines.push(` if (loc == null) return;`);
|
|
89
|
+
lines.push(` final lat = (loc['lat'] as num).toDouble();`);
|
|
90
|
+
lines.push(` final lng = (loc['lng'] as num).toDouble();`);
|
|
91
|
+
lines.push(` _setPin(LatLng(lat, lng), description);`);
|
|
92
|
+
lines.push(` _mapController?.animateCamera(CameraUpdate.newLatLngZoom(LatLng(lat, lng), 16));`);
|
|
93
|
+
lines.push(` } catch (_) {`);
|
|
94
|
+
lines.push(` // Ignore — user can still tap the map directly.`);
|
|
95
|
+
lines.push(` }`);
|
|
96
|
+
lines.push(` setState(() => _suggestions = []);`);
|
|
97
|
+
lines.push(` _searchCtrl.clear();`);
|
|
98
|
+
lines.push(` }`);
|
|
99
|
+
lines.push(``);
|
|
100
|
+
lines.push(` void _setPin(LatLng point, String? label) {`);
|
|
101
|
+
lines.push(` setState(() {`);
|
|
102
|
+
lines.push(` _center = point;`);
|
|
103
|
+
lines.push(` _markers`);
|
|
104
|
+
lines.push(` ..clear()`);
|
|
105
|
+
lines.push(` ..add(Marker(`);
|
|
106
|
+
lines.push(` markerId: const MarkerId('selected'),`);
|
|
107
|
+
lines.push(` position: point,`);
|
|
108
|
+
lines.push(` infoWindow: InfoWindow(title: label ?? 'Selected location'),`);
|
|
109
|
+
lines.push(` ));`);
|
|
110
|
+
lines.push(` });`);
|
|
111
|
+
lines.push(` }`);
|
|
112
|
+
lines.push(``);
|
|
36
113
|
lines.push(` @override`);
|
|
37
114
|
lines.push(` Widget build(BuildContext context) {`);
|
|
38
115
|
lines.push(` return Scaffold(`);
|
|
39
|
-
|
|
40
|
-
lines.push(` appBar: AppBar(`);
|
|
41
|
-
lines.push(` title: const Text('Map'),`);
|
|
42
|
-
lines.push(` leading: IconButton(`);
|
|
43
|
-
lines.push(` icon: const Icon(Icons.arrow_back),`);
|
|
44
|
-
lines.push(` onPressed: () => context.canPop() ? context.pop() : context.go('/'),`);
|
|
45
|
-
lines.push(` ),`);
|
|
46
|
-
lines.push(` ),`);
|
|
47
|
-
}
|
|
116
|
+
lines.push(` appBar: AppBar(title: const Text('Map')),`);
|
|
48
117
|
lines.push(` body: Stack(`);
|
|
49
118
|
lines.push(` children: [`);
|
|
50
|
-
lines.push(
|
|
51
|
-
lines.push(`
|
|
52
|
-
lines.push(`
|
|
53
|
-
lines.push(`
|
|
54
|
-
lines.push(`
|
|
55
|
-
lines.push(` child: const Center(`);
|
|
56
|
-
lines.push(` child: Column(`);
|
|
57
|
-
lines.push(` mainAxisAlignment: MainAxisAlignment.center,`);
|
|
58
|
-
lines.push(` children: [`);
|
|
59
|
-
lines.push(` Icon(Icons.map_outlined, size: 64, color: Colors.grey),`);
|
|
60
|
-
lines.push(` SizedBox(height: 12),`);
|
|
61
|
-
lines.push(` Text('Add google_maps_flutter to pubspec.yaml', style: TextStyle(color: Colors.grey)),`);
|
|
62
|
-
lines.push(` Text('then replace this with GoogleMap widget.', style: TextStyle(color: Colors.grey, fontSize: 12)),`);
|
|
63
|
-
lines.push(` ],`);
|
|
64
|
-
lines.push(` ),`);
|
|
65
|
-
lines.push(` ),`);
|
|
119
|
+
lines.push(` GoogleMap(`);
|
|
120
|
+
lines.push(` initialCameraPosition: CameraPosition(target: _center, zoom: 2),`);
|
|
121
|
+
lines.push(` onMapCreated: (c) => _mapController = c,`);
|
|
122
|
+
lines.push(` onTap: (point) => _setPin(point, null),`);
|
|
123
|
+
lines.push(` markers: _markers,`);
|
|
66
124
|
lines.push(` ),`);
|
|
67
125
|
lines.push(``);
|
|
68
126
|
lines.push(` // ── Search bar overlay ─────────────────────────────────────────`);
|
|
69
127
|
lines.push(` Positioned(`);
|
|
70
128
|
lines.push(` top: 16, left: 16, right: 16,`);
|
|
71
|
-
lines.push(` child:
|
|
72
|
-
lines.push(`
|
|
73
|
-
lines.push(`
|
|
74
|
-
lines.push(`
|
|
75
|
-
lines.push(`
|
|
76
|
-
lines.push(`
|
|
77
|
-
lines.push(`
|
|
78
|
-
lines.push(`
|
|
79
|
-
lines.push(`
|
|
80
|
-
lines.push(`
|
|
129
|
+
lines.push(` child: Column(`);
|
|
130
|
+
lines.push(` children: [`);
|
|
131
|
+
lines.push(` Material(`);
|
|
132
|
+
lines.push(` elevation: 4,`);
|
|
133
|
+
lines.push(` borderRadius: BorderRadius.circular(12),`);
|
|
134
|
+
lines.push(` child: TextField(`);
|
|
135
|
+
lines.push(` controller: _searchCtrl,`);
|
|
136
|
+
lines.push(` decoration: InputDecoration(`);
|
|
137
|
+
lines.push(` hintText: 'Search location...',`);
|
|
138
|
+
lines.push(` prefixIcon: const Icon(Icons.search),`);
|
|
139
|
+
lines.push(` suffixIcon: _searching`);
|
|
140
|
+
lines.push(` ? const Padding(`);
|
|
141
|
+
lines.push(` padding: EdgeInsets.all(12),`);
|
|
142
|
+
lines.push(` child: SizedBox(`);
|
|
143
|
+
lines.push(` height: 16, width: 16,`);
|
|
144
|
+
lines.push(` child: CircularProgressIndicator(strokeWidth: 2),`);
|
|
145
|
+
lines.push(` ),`);
|
|
146
|
+
lines.push(` )`);
|
|
147
|
+
lines.push(` : null,`);
|
|
148
|
+
lines.push(` border: InputBorder.none,`);
|
|
149
|
+
lines.push(` contentPadding: const EdgeInsets.symmetric(vertical: 14),`);
|
|
150
|
+
lines.push(` ),`);
|
|
151
|
+
lines.push(` onChanged: _search,`);
|
|
152
|
+
lines.push(` ),`);
|
|
81
153
|
lines.push(` ),`);
|
|
82
|
-
lines.push(`
|
|
154
|
+
lines.push(` if (_suggestions.isNotEmpty)`);
|
|
155
|
+
lines.push(` Material(`);
|
|
156
|
+
lines.push(` elevation: 4,`);
|
|
157
|
+
lines.push(` borderRadius: BorderRadius.circular(12),`);
|
|
158
|
+
lines.push(` child: Column(`);
|
|
159
|
+
lines.push(` children: _suggestions.map((s) => ListTile(`);
|
|
160
|
+
lines.push(` title: Text(s['description'] ?? ''),`);
|
|
161
|
+
lines.push(` onTap: () => _selectPrediction(s['place_id']!, s['description']!),`);
|
|
162
|
+
lines.push(` )).toList(),`);
|
|
163
|
+
lines.push(` ),`);
|
|
164
|
+
lines.push(` ),`);
|
|
165
|
+
lines.push(` ],`);
|
|
83
166
|
lines.push(` ),`);
|
|
84
167
|
lines.push(` ),`);
|
|
85
168
|
lines.push(``);
|
|
@@ -87,7 +170,7 @@ function generateMapPage(page, stateManager) {
|
|
|
87
170
|
lines.push(` Positioned(`);
|
|
88
171
|
lines.push(` bottom: 24, right: 16,`);
|
|
89
172
|
lines.push(` child: FloatingActionButton(`);
|
|
90
|
-
lines.push(` onPressed: ()
|
|
173
|
+
lines.push(` onPressed: () => _mapController?.animateCamera(CameraUpdate.newLatLngZoom(_center, 16)),`);
|
|
91
174
|
lines.push(` backgroundColor: AppTheme.primary,`);
|
|
92
175
|
lines.push(` child: const Icon(Icons.my_location, color: Colors.white),`);
|
|
93
176
|
lines.push(` ),`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-map.js","sourceRoot":"","sources":["../../src/templates/page-map.ts"],"names":[],"mappings":";AAAA,gFAAgF;;
|
|
1
|
+
{"version":3,"file":"page-map.js","sourceRoot":"","sources":["../../src/templates/page-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,CAC7B,WAAW,EAAG,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,OAAe,GAC7B,aAAa,
|
|
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,CAC7B,WAAW,EAAG,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,OAAe,GAC7B,aAAa,CAwFf"}
|
|
@@ -16,11 +16,6 @@ function generatePubspec(projectName, stateManager, needsLocation = false) {
|
|
|
16
16
|
lines.push(`publish_to: none`);
|
|
17
17
|
lines.push(``);
|
|
18
18
|
lines.push(`environment:`);
|
|
19
|
-
lines.push(` # FIX: bumped from '>=3.3.0 <4.0.0' — the newer json_serializable/`);
|
|
20
|
-
lines.push(` # build_runner versions (pulled in to fix the analyzer crash) require`);
|
|
21
|
-
lines.push(` # ^3.8.0. A too-low SDK constraint here doesn't hard-fail, but causes`);
|
|
22
|
-
lines.push(` # a language-version mismatch warning and unreliable build_runner`);
|
|
23
|
-
lines.push(` # behavior.`);
|
|
24
19
|
lines.push(` sdk: '>=3.8.0 <4.0.0'`);
|
|
25
20
|
lines.push(``);
|
|
26
21
|
lines.push(`dependencies:`);
|
|
@@ -31,11 +26,11 @@ function generatePubspec(projectName, stateManager, needsLocation = false) {
|
|
|
31
26
|
lines.push(` http: ^1.2.1`);
|
|
32
27
|
lines.push(``);
|
|
33
28
|
lines.push(` # Navigation`);
|
|
34
|
-
lines.push(` go_router: ^
|
|
29
|
+
lines.push(` go_router: ^18.0.1`);
|
|
35
30
|
lines.push(``);
|
|
36
31
|
lines.push(` # State management`);
|
|
37
32
|
if (stateManager === 'riverpod') {
|
|
38
|
-
lines.push(` flutter_riverpod: ^
|
|
33
|
+
lines.push(` flutter_riverpod: ^3.4.3`);
|
|
39
34
|
}
|
|
40
35
|
else if (stateManager === 'bloc') {
|
|
41
36
|
lines.push(` flutter_bloc: ^8.1.5`);
|
|
@@ -46,16 +41,16 @@ function generatePubspec(projectName, stateManager, needsLocation = false) {
|
|
|
46
41
|
}
|
|
47
42
|
lines.push(``);
|
|
48
43
|
lines.push(` # Fonts`);
|
|
49
|
-
lines.push(` google_fonts: ^
|
|
44
|
+
lines.push(` google_fonts: ^8.2.1`);
|
|
50
45
|
lines.push(``);
|
|
51
46
|
lines.push(` # Local storage`);
|
|
52
47
|
lines.push(` shared_preferences: ^2.5.5`);
|
|
53
48
|
lines.push(``);
|
|
54
49
|
lines.push(` # Environment config`);
|
|
55
|
-
lines.push(` flutter_dotenv: ^
|
|
50
|
+
lines.push(` flutter_dotenv: ^6.0.1`);
|
|
56
51
|
lines.push(``);
|
|
57
52
|
lines.push(` # Utils`);
|
|
58
|
-
lines.push(` intl: ^0.
|
|
53
|
+
lines.push(` intl: ^0.20.3`);
|
|
59
54
|
lines.push(``);
|
|
60
55
|
lines.push(` # Models — Freezed + json_serializable (build_runner runs`);
|
|
61
56
|
lines.push(` # automatically after \`nxf generate\`, see .g.dart/.freezed.dart`);
|
|
@@ -64,14 +59,15 @@ function generatePubspec(projectName, stateManager, needsLocation = false) {
|
|
|
64
59
|
lines.push(` json_annotation: ^4.12.0`);
|
|
65
60
|
lines.push(``);
|
|
66
61
|
lines.push(` # File/image picking for upload-type form fields`);
|
|
67
|
-
lines.push(` image_picker: ^1.2.
|
|
68
|
-
lines.push(` file_picker: ^
|
|
62
|
+
lines.push(` image_picker: ^1.2.3`);
|
|
63
|
+
lines.push(` file_picker: ^12.2.0`);
|
|
69
64
|
if (needsLocation) {
|
|
70
65
|
lines.push(``);
|
|
71
|
-
lines.push(` # Maps
|
|
66
|
+
lines.push(` # Maps — added automatically whenever the project has a location-input`);
|
|
67
|
+
lines.push(` # form field OR a standalone Map page. Also needs GOOGLE_MAPS_API_KEY in`);
|
|
72
68
|
lines.push(` # .env AND native platform registration this generator does not set`);
|
|
73
69
|
lines.push(` # up for you (AndroidManifest.xml / AppDelegate.swift) — see README.md.`);
|
|
74
|
-
lines.push(` google_maps_flutter: ^2.
|
|
70
|
+
lines.push(` google_maps_flutter: ^2.18.0`);
|
|
75
71
|
}
|
|
76
72
|
lines.push(``);
|
|
77
73
|
lines.push(`dev_dependencies:`);
|
|
@@ -85,9 +81,6 @@ function generatePubspec(projectName, stateManager, needsLocation = false) {
|
|
|
85
81
|
lines.push(`flutter:`);
|
|
86
82
|
lines.push(` uses-material-design: true`);
|
|
87
83
|
lines.push(``);
|
|
88
|
-
lines.push(` # Load .env at runtime via flutter_dotenv, and bundle the branding`);
|
|
89
|
-
lines.push(` # logo (downloaded at codegen time by generateLogoAsset() in`);
|
|
90
|
-
lines.push(` # branding.ts) as a real shipped asset.`);
|
|
91
84
|
lines.push(` assets:`);
|
|
92
85
|
lines.push(` - .env`);
|
|
93
86
|
lines.push(` - assets/branding/logo.png`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubspec.js","sourceRoot":"","sources":["../../src/templates/pubspec.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"pubspec.js","sourceRoot":"","sources":["../../src/templates/pubspec.ts"],"names":[],"mappings":"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"}
|