diff --git a/packages/nonstop_cli/CHANGELOG.md b/packages/nonstop_cli/CHANGELOG.md index c3e7ace..f64a7b9 100644 --- a/packages/nonstop_cli/CHANGELOG.md +++ b/packages/nonstop_cli/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.8+2 + + - **FIX**(nonstop_cli): boot apps before flutterfire configure. + ## 0.0.8+1 - Update a dependency to the latest release. diff --git a/packages/nonstop_cli/README.md b/packages/nonstop_cli/README.md index b66e0b6..78ab506 100644 --- a/packages/nonstop_cli/README.md +++ b/packages/nonstop_cli/README.md @@ -154,8 +154,9 @@ youtube/ The generated workspace is bootstrapped, formatted and passes its own `melos lint` and `melos test` before you touch it. If you picked any Firebase -module, run `flutterfire configure` in the app directory - the generated -`firebase_options.dart` throws until you do. +module, run `flutterfire configure` in the app directory when you want those +features live. Until then the app still runs; Firebase-backed modules are +skipped at startup. diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/README.md b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/README.md index 4c9021d..6fa588b 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/README.md +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/README.md @@ -45,8 +45,8 @@ melos bootstrap {{#firebase}} ### Firebase -This project uses Firebase, so configure it before the first run - the -generated `lib/firebase_options.dart` deliberately throws until you do: +This project uses Firebase, so run this before those features will work. +The rest of the app still boots without it: ```sh dart pub global activate flutterfire_cli diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/app.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/app.dart index 12b4796..2bd1519 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/app.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/app.dart @@ -24,6 +24,7 @@ class _AppState extends State { // sign-in once you would rather ask a user who has committed to the app. _lifecycleListener = AppLifecycleListener(onResume: _clearBadge); WidgetsBinding.instance.addPostFrameCallback((_) async { + if (!di.has()) return; final logger = di.get(); try { await di.get().init(); @@ -34,6 +35,7 @@ class _AppState extends State { {{/notifications}} } {{#notifications}} void _clearBadge() { + if (!di.has()) return; final logger = di.get(); try { di.get().clearBadge(); diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/bootstrap.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/bootstrap.dart index 1fe9563..f0aec4d 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/bootstrap.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/bootstrap.dart @@ -17,7 +17,8 @@ import 'package:core/core.dart' as core; /// /// Order matters: the logger is registered first so everything after it can /// report failures, and Firebase must be live before any Firebase-backed -/// module initialises. +/// module initialises. If `flutterfire configure` has not been run yet, those +/// modules are skipped so the rest of the app still boots. Future init() async { WidgetsFlutterBinding.ensureInitialized(); final stopwatch = Stopwatch()..start(); @@ -28,32 +29,47 @@ Future init() async { Bloc.observer = core.CoreBlocObserver(); {{#firebase}} - final options = DefaultFirebaseOptions.currentPlatform; - await Firebase.initializeApp(options: options); - - if (core.Environment.useEmulators) { - await emulators.init(); + var firebaseReady = false; + try { + final options = DefaultFirebaseOptions.currentPlatform; + await Firebase.initializeApp(options: options); + firebaseReady = true; + if (core.Environment.useEmulators) { + await emulators.init(); + } + } on UnsupportedError catch (error) { + logger.w('$error'); } + logger.i( + firebaseReady + ? 'Firebase ready' + : 'Firebase not configured yet; skipping Firebase modules', + ); {{/firebase}} -{{#crashlytics}} await crashlytics.init(); -{{/crashlytics}}{{#analytics}} await analytics.init(); -{{/analytics}}{{#feature_flags}} await feature_flags.init(); +{{#crashlytics}} if (firebaseReady) await crashlytics.init(); +{{/crashlytics}}{{#analytics}} if (firebaseReady) await analytics.init(); +{{/analytics}}{{#feature_flags}} if (firebaseReady) await feature_flags.init(); {{/feature_flags}}{{#auth}} - final clientId = options.iosClientId ?? options.androidClientId ?? ''; - await auth.init(auth.DefaultAuthConfig(clientId: clientId)); + if (firebaseReady) { + final options = DefaultFirebaseOptions.currentPlatform; + final clientId = options.iosClientId ?? options.androidClientId ?? ''; + await auth.init(auth.DefaultAuthConfig(clientId: clientId)); + } {{/auth}}{{#network}} await network.init( config: network.DefaultNetworkConfig(baseUrl: core.Environment.baseUrl), ); {{/network}}{{#notifications}} - await notifications.init(); + if (firebaseReady) await notifications.init(); {{/notifications}} // TODO: initialise your own feature modules here. stopwatch.stop(); logger.i('Bootstrap completed in ${stopwatch.elapsedMilliseconds} ms'); {{#analytics}} - await analytics.AnalyticsHelper.logAppOpen( - parameters: {'bootstrap_duration': stopwatch.elapsedMilliseconds}, - ); + if (firebaseReady) { + await analytics.AnalyticsHelper.logAppOpen( + parameters: {'bootstrap_duration': stopwatch.elapsedMilliseconds}, + ); + } {{/analytics}}} diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart index 69f3586..74ead4b 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart @@ -5,7 +5,8 @@ {{/dashboard}}import 'package:design_system/design_system.dart'; {{#developer}}import 'package:developer/developer.dart' as developer; {{/developer}}import 'package:di/di.dart'; -import 'package:flutter/foundation.dart'; +{{#analytics}}import 'package:firebase_core/firebase_core.dart'; +{{/analytics}}import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:localization/localization.dart'; @@ -36,7 +37,7 @@ class AppRouter { observers: [ NavigationHistoryObserver(), core.CoreRouteObserver(), -{{#analytics}} AnalyticsRouteObserver(), +{{#analytics}} if (Firebase.apps.isNotEmpty) AnalyticsRouteObserver(), {{/analytics}} ], errorBuilder: (context, state) => ErrorScreen( title: strings.errors.page_not_found, diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart index 11997e2..778d3b8 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart @@ -28,7 +28,8 @@ class _SplashScreenState extends State { Future _redirect() async { if (!mounted) return; {{#auth}} - if (!di.get().isSignedIn) { + if (di.has() && + !di.get().isSignedIn) { context.go(auth.AuthRoutes.signIn); return; } diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/firebase_options.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/{{firebase_options_file}} similarity index 77% rename from packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/firebase_options.dart rename to packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/{{firebase_options_file}} index 9a50531..f99cf2a 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/firebase_options.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/{{firebase_options_file}} @@ -1,9 +1,11 @@ -{{#firebase}}// This file is a placeholder. Generate the real one with: +// This file is a placeholder. Generate the real one with: // // cd apps/{{name.snakeCase()}} && flutterfire configure // // FlutterFire overwrites this file with your project's options and also drops // google-services.json / GoogleService-Info.plist into the native folders. +// Until then, bootstrap catches the throw and skips Firebase-backed modules +// so the rest of the app still runs. import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; class DefaultFirebaseOptions { @@ -14,4 +16,4 @@ class DefaultFirebaseOptions { 'Run `flutterfire configure` inside apps/{{name.snakeCase()}} ' 'to replace lib/firebase_options.dart.', ); -}{{/firebase}} +} diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{auth_dir}}/lib/router/router.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{auth_dir}}/lib/router/router.dart index 0b4c742..5de29c6 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{auth_dir}}/lib/router/router.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{auth_dir}}/lib/router/router.dart @@ -41,6 +41,8 @@ final class GoAuthRoute extends GoRoute { super.pageBuilder, }) : super( redirect: (context, state) async { + if (!di.has()) return null; + final authService = di.get(); if (!authService.isSignedIn) { diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{dashboard_dir}}/lib/ui/screens/profile_tab_screen.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{dashboard_dir}}/lib/ui/screens/profile_tab_screen.dart index 977abad..7b71eab 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{dashboard_dir}}/lib/ui/screens/profile_tab_screen.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/__brick__/{{ name.snakeCase() }}/features/{{dashboard_dir}}/lib/ui/screens/profile_tab_screen.dart @@ -60,6 +60,7 @@ class ProfileTabScreen extends StatelessWidget { ); if (confirmed != true || !context.mounted) return; + if (!di.has()) return; await di.get().signOut(); if (context.mounted) context.go(auth.AuthRoutes.signIn); diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/module_vars.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/module_vars.dart index b152038..3e044c6 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/module_vars.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/module_vars.dart @@ -46,9 +46,14 @@ void resolveModuleVars(HookContext context) { final usesFirebase = _firebaseBackedModules.any((module) => _flag(context, module)); context.vars['firebase'] = usesFirebase; + // Empty path segment → mason skips the file, so a project with no Firebase + // modules never ships a placeholder `firebase_options.dart`. + context.vars['firebase_options_file'] = + usesFirebase ? 'firebase_options.dart' : ''; - // The boot test runs the real bootstrap, which a Firebase project cannot do - // until `flutterfire configure` has been run. An empty file name makes mason - // skip the file, so those projects simply ship without it. + // The boot test runs the real bootstrap. Firebase projects can boot before + // `flutterfire configure` now (those modules are skipped), but after + // configure the splash may land on sign-in instead of the dashboard, so + // they still don't ship this file. context.vars['smoke_test_file'] = usesFirebase ? '' : 'smoke_test.dart'; } diff --git a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/next_steps_command.dart b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/next_steps_command.dart index 5fe5092..7bc8352 100644 --- a/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/next_steps_command.dart +++ b/packages/nonstop_cli/bricks/flutter_project_with_mono_repo/hooks/commands/next_steps_command.dart @@ -16,7 +16,7 @@ final class NextStepsCommand extends CliCommand { ..info(' dart pub global activate flutterfire_cli') ..info(' cd $appName/apps/$appName && flutterfire configure') ..info( - ' (until then lib/firebase_options.dart throws on purpose)', + ' (the app still runs; Firebase features stay off until then)', ); } diff --git a/packages/nonstop_cli/lib/commands/create/flutter_project_with_mono_repo_bundle.dart b/packages/nonstop_cli/lib/commands/create/flutter_project_with_mono_repo_bundle.dart index a9dbae1..5448b17 100644 --- a/packages/nonstop_cli/lib/commands/create/flutter_project_with_mono_repo_bundle.dart +++ b/packages/nonstop_cli/lib/commands/create/flutter_project_with_mono_repo_bundle.dart @@ -26,42 +26,42 @@ final flutterProjectWithMonoRepoBundle = MasonBundle.fromJson({ { "path": "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/app.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmNvcmUvY29yZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmRlc2lnbl9zeXN0ZW0vZGVzaWduX3N5c3RlbS5kYXJ0JzsKe3sjbm90aWZpY2F0aW9uc319aW1wb3J0ICdwYWNrYWdlOmRpL2RpLmRhcnQnOwp7ey9ub3RpZmljYXRpb25zfX1pbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmxvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uZGFydCc7Cnt7I25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTpub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuZGFydCc7Cnt7L25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9yb3V0ZXIvcm91dGVyLmRhcnQnOwoKY2xhc3MgQXBwIGV4dGVuZHMgU3RhdGVmdWxXaWRnZXQgewogIGNvbnN0IEFwcCh7c3VwZXIua2V5fSk7CgogIEBvdmVycmlkZQogIFN0YXRlPEFwcD4gY3JlYXRlU3RhdGUoKSA9PiBfQXBwU3RhdGUoKTsKfQoKY2xhc3MgX0FwcFN0YXRlIGV4dGVuZHMgU3RhdGU8QXBwPiB7Cnt7I25vdGlmaWNhdGlvbnN9fSAgbGF0ZSBmaW5hbCBBcHBMaWZlY3ljbGVMaXN0ZW5lciBfbGlmZWN5Y2xlTGlzdGVuZXI7Cgp7ey9ub3RpZmljYXRpb25zfX0gIEBvdmVycmlkZQogIHZvaWQgaW5pdFN0YXRlKCkgewogICAgc3VwZXIuaW5pdFN0YXRlKCk7Cnt7I25vdGlmaWNhdGlvbnN9fSAgICAvLyBBc2tpbmcgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIG5lZWRzIGEgZm9yZWdyb3VuZCBzdXJmYWNlLCBzbyB0aGlzCiAgICAvLyBydW5zIGZyb20gdGhlIGZpcnN0IGZyYW1lIHJhdGhlciB0aGFuIGZyb20gYm9vdHN0cmFwLiBNb3ZlIGl0IGJlaGluZAogICAgLy8gc2lnbi1pbiBvbmNlIHlvdSB3b3VsZCByYXRoZXIgYXNrIGEgdXNlciB3aG8gaGFzIGNvbW1pdHRlZCB0byB0aGUgYXBwLgogICAgX2xpZmVjeWNsZUxpc3RlbmVyID0gQXBwTGlmZWN5Y2xlTGlzdGVuZXIob25SZXN1bWU6IF9jbGVhckJhZGdlKTsKICAgIFdpZGdldHNCaW5kaW5nLmluc3RhbmNlLmFkZFBvc3RGcmFtZUNhbGxiYWNrKChfKSBhc3luYyB7CiAgICAgIGZpbmFsIGxvZ2dlciA9IGRpLmdldDxMb2dnZXI+KCk7CiAgICAgIHRyeSB7CiAgICAgICAgYXdhaXQgZGkuZ2V0PE5vdGlmaWNhdGlvbkNsaWVudD4oKS5pbml0KCk7CiAgICAgIH0gY2F0Y2ggKGUsIHMpIHsKICAgICAgICBsb2dnZXIuZSgnRmFpbGVkIHRvIGluaXRpYWxpemUgTm90aWZpY2F0aW9uQ2xpZW50JywgZSwgcyk7CiAgICAgIH0KICAgIH0pOwp7ey9ub3RpZmljYXRpb25zfX0gIH0Ke3sjbm90aWZpY2F0aW9uc319CiAgdm9pZCBfY2xlYXJCYWRnZSgpIHsKICAgIGZpbmFsIGxvZ2dlciA9IGRpLmdldDxMb2dnZXI+KCk7CiAgICB0cnkgewogICAgICBkaS5nZXQ8Tm90aWZpY2F0aW9uQ2xpZW50PigpLmNsZWFyQmFkZ2UoKTsKICAgIH0gY2F0Y2ggKGUsIHMpIHsKICAgICAgbG9nZ2VyLmUoJ0ZhaWxlZCB0byBjbGVhciBiYWRnZSBvbiBhcHAgcmVzdW1lJywgZSwgcyk7CiAgICB9CiAgfQoKICBAb3ZlcnJpZGUKICB2b2lkIGRpc3Bvc2UoKSB7CiAgICBfbGlmZWN5Y2xlTGlzdGVuZXIuZGlzcG9zZSgpOwogICAgc3VwZXIuZGlzcG9zZSgpOwogIH0Ke3svbm90aWZpY2F0aW9uc319CiAgQG92ZXJyaWRlCiAgV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgICByZXR1cm4gR2xvYmFsRXZlbnRDaGFubmVsUHJvdmlkZXIoCiAgICAgIGNoaWxkOiBEZXNpZ25TeXN0ZW1XcmFwcGVyKAogICAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCB0aGVtZSkgPT4gTWF0ZXJpYWxBcHAucm91dGVyKAogICAgICAgICAgZGVidWdTaG93Q2hlY2tlZE1vZGVCYW5uZXI6IGZhbHNlLAogICAgICAgICAgdGl0bGU6IHN0cmluZ3MuYXBwLm5hbWUsCiAgICAgICAgICB0aGVtZTogdGhlbWUsCiAgICAgICAgICByb3V0ZUluZm9ybWF0aW9uUGFyc2VyOiBBcHBSb3V0ZXIucm91dGVJbmZvcm1hdGlvblBhcnNlciwKICAgICAgICAgIHJvdXRlSW5mb3JtYXRpb25Qcm92aWRlcjogQXBwUm91dGVyLnJvdXRlSW5mb3JtYXRpb25Qcm92aWRlciwKICAgICAgICAgIHJvdXRlckRlbGVnYXRlOiBBcHBSb3V0ZXIucm91dGVyRGVsZWdhdGUsCiAgICAgICAgKSwKICAgICAgKSwKICAgICk7CiAgfQp9Cg==", + "aW1wb3J0ICdwYWNrYWdlOmNvcmUvY29yZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmRlc2lnbl9zeXN0ZW0vZGVzaWduX3N5c3RlbS5kYXJ0JzsKe3sjbm90aWZpY2F0aW9uc319aW1wb3J0ICdwYWNrYWdlOmRpL2RpLmRhcnQnOwp7ey9ub3RpZmljYXRpb25zfX1pbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmxvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uZGFydCc7Cnt7I25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTpub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuZGFydCc7Cnt7L25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9yb3V0ZXIvcm91dGVyLmRhcnQnOwoKY2xhc3MgQXBwIGV4dGVuZHMgU3RhdGVmdWxXaWRnZXQgewogIGNvbnN0IEFwcCh7c3VwZXIua2V5fSk7CgogIEBvdmVycmlkZQogIFN0YXRlPEFwcD4gY3JlYXRlU3RhdGUoKSA9PiBfQXBwU3RhdGUoKTsKfQoKY2xhc3MgX0FwcFN0YXRlIGV4dGVuZHMgU3RhdGU8QXBwPiB7Cnt7I25vdGlmaWNhdGlvbnN9fSAgbGF0ZSBmaW5hbCBBcHBMaWZlY3ljbGVMaXN0ZW5lciBfbGlmZWN5Y2xlTGlzdGVuZXI7Cgp7ey9ub3RpZmljYXRpb25zfX0gIEBvdmVycmlkZQogIHZvaWQgaW5pdFN0YXRlKCkgewogICAgc3VwZXIuaW5pdFN0YXRlKCk7Cnt7I25vdGlmaWNhdGlvbnN9fSAgICAvLyBBc2tpbmcgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIG5lZWRzIGEgZm9yZWdyb3VuZCBzdXJmYWNlLCBzbyB0aGlzCiAgICAvLyBydW5zIGZyb20gdGhlIGZpcnN0IGZyYW1lIHJhdGhlciB0aGFuIGZyb20gYm9vdHN0cmFwLiBNb3ZlIGl0IGJlaGluZAogICAgLy8gc2lnbi1pbiBvbmNlIHlvdSB3b3VsZCByYXRoZXIgYXNrIGEgdXNlciB3aG8gaGFzIGNvbW1pdHRlZCB0byB0aGUgYXBwLgogICAgX2xpZmVjeWNsZUxpc3RlbmVyID0gQXBwTGlmZWN5Y2xlTGlzdGVuZXIob25SZXN1bWU6IF9jbGVhckJhZGdlKTsKICAgIFdpZGdldHNCaW5kaW5nLmluc3RhbmNlLmFkZFBvc3RGcmFtZUNhbGxiYWNrKChfKSBhc3luYyB7CiAgICAgIGlmICghZGkuaGFzPE5vdGlmaWNhdGlvbkNsaWVudD4oKSkgcmV0dXJuOwogICAgICBmaW5hbCBsb2dnZXIgPSBkaS5nZXQ8TG9nZ2VyPigpOwogICAgICB0cnkgewogICAgICAgIGF3YWl0IGRpLmdldDxOb3RpZmljYXRpb25DbGllbnQ+KCkuaW5pdCgpOwogICAgICB9IGNhdGNoIChlLCBzKSB7CiAgICAgICAgbG9nZ2VyLmUoJ0ZhaWxlZCB0byBpbml0aWFsaXplIE5vdGlmaWNhdGlvbkNsaWVudCcsIGUsIHMpOwogICAgICB9CiAgICB9KTsKe3svbm90aWZpY2F0aW9uc319ICB9Cnt7I25vdGlmaWNhdGlvbnN9fQogIHZvaWQgX2NsZWFyQmFkZ2UoKSB7CiAgICBpZiAoIWRpLmhhczxOb3RpZmljYXRpb25DbGllbnQ+KCkpIHJldHVybjsKICAgIGZpbmFsIGxvZ2dlciA9IGRpLmdldDxMb2dnZXI+KCk7CiAgICB0cnkgewogICAgICBkaS5nZXQ8Tm90aWZpY2F0aW9uQ2xpZW50PigpLmNsZWFyQmFkZ2UoKTsKICAgIH0gY2F0Y2ggKGUsIHMpIHsKICAgICAgbG9nZ2VyLmUoJ0ZhaWxlZCB0byBjbGVhciBiYWRnZSBvbiBhcHAgcmVzdW1lJywgZSwgcyk7CiAgICB9CiAgfQoKICBAb3ZlcnJpZGUKICB2b2lkIGRpc3Bvc2UoKSB7CiAgICBfbGlmZWN5Y2xlTGlzdGVuZXIuZGlzcG9zZSgpOwogICAgc3VwZXIuZGlzcG9zZSgpOwogIH0Ke3svbm90aWZpY2F0aW9uc319CiAgQG92ZXJyaWRlCiAgV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgICByZXR1cm4gR2xvYmFsRXZlbnRDaGFubmVsUHJvdmlkZXIoCiAgICAgIGNoaWxkOiBEZXNpZ25TeXN0ZW1XcmFwcGVyKAogICAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCB0aGVtZSkgPT4gTWF0ZXJpYWxBcHAucm91dGVyKAogICAgICAgICAgZGVidWdTaG93Q2hlY2tlZE1vZGVCYW5uZXI6IGZhbHNlLAogICAgICAgICAgdGl0bGU6IHN0cmluZ3MuYXBwLm5hbWUsCiAgICAgICAgICB0aGVtZTogdGhlbWUsCiAgICAgICAgICByb3V0ZUluZm9ybWF0aW9uUGFyc2VyOiBBcHBSb3V0ZXIucm91dGVJbmZvcm1hdGlvblBhcnNlciwKICAgICAgICAgIHJvdXRlSW5mb3JtYXRpb25Qcm92aWRlcjogQXBwUm91dGVyLnJvdXRlSW5mb3JtYXRpb25Qcm92aWRlciwKICAgICAgICAgIHJvdXRlckRlbGVnYXRlOiBBcHBSb3V0ZXIucm91dGVyRGVsZWdhdGUsCiAgICAgICAgKSwKICAgICAgKSwKICAgICk7CiAgfQp9Cg==", "type": "text" }, { "path": "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/bootstrap.dart", "data": - "e3sjYW5hbHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl0aWNzL2FuYWx5dGljcy5kYXJ0JyBhcyBhbmFseXRpY3M7Cnt7L2FuYWx5dGljc319e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6YmxvYy9ibG9jLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Y29yZS9jb3JlLmRhcnQnIGFzIGNvcmU7Cnt7I2ZpcmViYXNlfX1pbXBvcnQgJ3BhY2thZ2U6Y29yZS9kZXZlbG9wZXIvZW11bGF0b3JzLmRhcnQnIGFzIGVtdWxhdG9yczsKe3svZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTpjb3JlL2xvZ2dlci9sb2dnZXIuZGFydCc7Cnt7I2NyYXNobHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6Y3Jhc2hseXRpY3MvY3Jhc2hseXRpY3MuZGFydCcgYXMgY3Jhc2hseXRpY3M7Cnt7L2NyYXNobHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7Cnt7I2ZlYXR1cmVfZmxhZ3N9fWltcG9ydCAncGFja2FnZTpmZWF0dXJlX2ZsYWdzL2ZlYXR1cmVfZmxhZ3MuZGFydCcgYXMgZmVhdHVyZV9mbGFnczsKe3svZmVhdHVyZV9mbGFnc319e3sjZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTpmaXJlYmFzZV9jb3JlL2ZpcmViYXNlX2NvcmUuZGFydCc7Cnt7L2ZpcmViYXNlfX1pbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci93aWRnZXRzLmRhcnQnOwp7eyNuZXR3b3JrfX1pbXBvcnQgJ3BhY2thZ2U6bmV0d29yay9uZXR3b3JrLmRhcnQnIGFzIG5ldHdvcms7Cnt7L25ldHdvcmt9fXt7I25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTpub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuZGFydCcgYXMgbm90aWZpY2F0aW9uczsKe3svbm90aWZpY2F0aW9uc319e3sjZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9maXJlYmFzZV9vcHRpb25zLmRhcnQnOwp7ey9maXJlYmFzZX19Ci8vLyBCcmluZ3MgZXZlcnkgbW9kdWxlIHVwLCBpbiBkZXBlbmRlbmN5IG9yZGVyLCBiZWZvcmUgdGhlIGZpcnN0IGZyYW1lLgovLy8KLy8vIE9yZGVyIG1hdHRlcnM6IHRoZSBsb2dnZXIgaXMgcmVnaXN0ZXJlZCBmaXJzdCBzbyBldmVyeXRoaW5nIGFmdGVyIGl0IGNhbgovLy8gcmVwb3J0IGZhaWx1cmVzLCBhbmQgRmlyZWJhc2UgbXVzdCBiZSBsaXZlIGJlZm9yZSBhbnkgRmlyZWJhc2UtYmFja2VkCi8vLyBtb2R1bGUgaW5pdGlhbGlzZXMuCkZ1dHVyZTx2b2lkPiBpbml0KCkgYXN5bmMgewogIFdpZGdldHNGbHV0dGVyQmluZGluZy5lbnN1cmVJbml0aWFsaXplZCgpOwogIGZpbmFsIHN0b3B3YXRjaCA9IFN0b3B3YXRjaCgpLi5zdGFydCgpOwoKICBhd2FpdCBjb3JlLmluaXQoKTsKICBmaW5hbCBsb2dnZXIgPSBkaS5nZXQ8TG9nZ2VyPigpOwogIGxvZ2dlci5pKCdDb3JlIHJlYWR5IGluICR7c3RvcHdhdGNoLmVsYXBzZWRNaWxsaXNlY29uZHN9IG1zJyk7CgogIEJsb2Mub2JzZXJ2ZXIgPSBjb3JlLkNvcmVCbG9jT2JzZXJ2ZXIoKTsKe3sjZmlyZWJhc2V9fQogIGZpbmFsIG9wdGlvbnMgPSBEZWZhdWx0RmlyZWJhc2VPcHRpb25zLmN1cnJlbnRQbGF0Zm9ybTsKICBhd2FpdCBGaXJlYmFzZS5pbml0aWFsaXplQXBwKG9wdGlvbnM6IG9wdGlvbnMpOwoKICBpZiAoY29yZS5FbnZpcm9ubWVudC51c2VFbXVsYXRvcnMpIHsKICAgIGF3YWl0IGVtdWxhdG9ycy5pbml0KCk7CiAgfQp7ey9maXJlYmFzZX19Cnt7I2NyYXNobHl0aWNzfX0gIGF3YWl0IGNyYXNobHl0aWNzLmluaXQoKTsKe3svY3Jhc2hseXRpY3N9fXt7I2FuYWx5dGljc319ICBhd2FpdCBhbmFseXRpY3MuaW5pdCgpOwp7ey9hbmFseXRpY3N9fXt7I2ZlYXR1cmVfZmxhZ3N9fSAgYXdhaXQgZmVhdHVyZV9mbGFncy5pbml0KCk7Cnt7L2ZlYXR1cmVfZmxhZ3N9fXt7I2F1dGh9fQogIGZpbmFsIGNsaWVudElkID0gb3B0aW9ucy5pb3NDbGllbnRJZCA/PyBvcHRpb25zLmFuZHJvaWRDbGllbnRJZCA/PyAnJzsKICBhd2FpdCBhdXRoLmluaXQoYXV0aC5EZWZhdWx0QXV0aENvbmZpZyhjbGllbnRJZDogY2xpZW50SWQpKTsKe3svYXV0aH19e3sjbmV0d29ya319CiAgYXdhaXQgbmV0d29yay5pbml0KAogICAgY29uZmlnOiBuZXR3b3JrLkRlZmF1bHROZXR3b3JrQ29uZmlnKGJhc2VVcmw6IGNvcmUuRW52aXJvbm1lbnQuYmFzZVVybCksCiAgKTsKe3svbmV0d29ya319e3sjbm90aWZpY2F0aW9uc319CiAgYXdhaXQgbm90aWZpY2F0aW9ucy5pbml0KCk7Cnt7L25vdGlmaWNhdGlvbnN9fQogIC8vIFRPRE86IGluaXRpYWxpc2UgeW91ciBvd24gZmVhdHVyZSBtb2R1bGVzIGhlcmUuCgogIHN0b3B3YXRjaC5zdG9wKCk7CiAgbG9nZ2VyLmkoJ0Jvb3RzdHJhcCBjb21wbGV0ZWQgaW4gJHtzdG9wd2F0Y2guZWxhcHNlZE1pbGxpc2Vjb25kc30gbXMnKTsKe3sjYW5hbHl0aWNzfX0KICBhd2FpdCBhbmFseXRpY3MuQW5hbHl0aWNzSGVscGVyLmxvZ0FwcE9wZW4oCiAgICBwYXJhbWV0ZXJzOiB7J2Jvb3RzdHJhcF9kdXJhdGlvbic6IHN0b3B3YXRjaC5lbGFwc2VkTWlsbGlzZWNvbmRzfSwKICApOwp7ey9hbmFseXRpY3N9fX0K", + "e3sjYW5hbHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl0aWNzL2FuYWx5dGljcy5kYXJ0JyBhcyBhbmFseXRpY3M7Cnt7L2FuYWx5dGljc319e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6YmxvYy9ibG9jLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Y29yZS9jb3JlLmRhcnQnIGFzIGNvcmU7Cnt7I2ZpcmViYXNlfX1pbXBvcnQgJ3BhY2thZ2U6Y29yZS9kZXZlbG9wZXIvZW11bGF0b3JzLmRhcnQnIGFzIGVtdWxhdG9yczsKe3svZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTpjb3JlL2xvZ2dlci9sb2dnZXIuZGFydCc7Cnt7I2NyYXNobHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6Y3Jhc2hseXRpY3MvY3Jhc2hseXRpY3MuZGFydCcgYXMgY3Jhc2hseXRpY3M7Cnt7L2NyYXNobHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7Cnt7I2ZlYXR1cmVfZmxhZ3N9fWltcG9ydCAncGFja2FnZTpmZWF0dXJlX2ZsYWdzL2ZlYXR1cmVfZmxhZ3MuZGFydCcgYXMgZmVhdHVyZV9mbGFnczsKe3svZmVhdHVyZV9mbGFnc319e3sjZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTpmaXJlYmFzZV9jb3JlL2ZpcmViYXNlX2NvcmUuZGFydCc7Cnt7L2ZpcmViYXNlfX1pbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci93aWRnZXRzLmRhcnQnOwp7eyNuZXR3b3JrfX1pbXBvcnQgJ3BhY2thZ2U6bmV0d29yay9uZXR3b3JrLmRhcnQnIGFzIG5ldHdvcms7Cnt7L25ldHdvcmt9fXt7I25vdGlmaWNhdGlvbnN9fWltcG9ydCAncGFja2FnZTpub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuZGFydCcgYXMgbm90aWZpY2F0aW9uczsKe3svbm90aWZpY2F0aW9uc319e3sjZmlyZWJhc2V9fWltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9maXJlYmFzZV9vcHRpb25zLmRhcnQnOwp7ey9maXJlYmFzZX19Ci8vLyBCcmluZ3MgZXZlcnkgbW9kdWxlIHVwLCBpbiBkZXBlbmRlbmN5IG9yZGVyLCBiZWZvcmUgdGhlIGZpcnN0IGZyYW1lLgovLy8KLy8vIE9yZGVyIG1hdHRlcnM6IHRoZSBsb2dnZXIgaXMgcmVnaXN0ZXJlZCBmaXJzdCBzbyBldmVyeXRoaW5nIGFmdGVyIGl0IGNhbgovLy8gcmVwb3J0IGZhaWx1cmVzLCBhbmQgRmlyZWJhc2UgbXVzdCBiZSBsaXZlIGJlZm9yZSBhbnkgRmlyZWJhc2UtYmFja2VkCi8vLyBtb2R1bGUgaW5pdGlhbGlzZXMuIElmIGBmbHV0dGVyZmlyZSBjb25maWd1cmVgIGhhcyBub3QgYmVlbiBydW4geWV0LCB0aG9zZQovLy8gbW9kdWxlcyBhcmUgc2tpcHBlZCBzbyB0aGUgcmVzdCBvZiB0aGUgYXBwIHN0aWxsIGJvb3RzLgpGdXR1cmU8dm9pZD4gaW5pdCgpIGFzeW5jIHsKICBXaWRnZXRzRmx1dHRlckJpbmRpbmcuZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBmaW5hbCBzdG9wd2F0Y2ggPSBTdG9wd2F0Y2goKS4uc3RhcnQoKTsKCiAgYXdhaXQgY29yZS5pbml0KCk7CiAgZmluYWwgbG9nZ2VyID0gZGkuZ2V0PExvZ2dlcj4oKTsKICBsb2dnZXIuaSgnQ29yZSByZWFkeSBpbiAke3N0b3B3YXRjaC5lbGFwc2VkTWlsbGlzZWNvbmRzfSBtcycpOwoKICBCbG9jLm9ic2VydmVyID0gY29yZS5Db3JlQmxvY09ic2VydmVyKCk7Cnt7I2ZpcmViYXNlfX0KICB2YXIgZmlyZWJhc2VSZWFkeSA9IGZhbHNlOwogIHRyeSB7CiAgICBmaW5hbCBvcHRpb25zID0gRGVmYXVsdEZpcmViYXNlT3B0aW9ucy5jdXJyZW50UGxhdGZvcm07CiAgICBhd2FpdCBGaXJlYmFzZS5pbml0aWFsaXplQXBwKG9wdGlvbnM6IG9wdGlvbnMpOwogICAgZmlyZWJhc2VSZWFkeSA9IHRydWU7CiAgICBpZiAoY29yZS5FbnZpcm9ubWVudC51c2VFbXVsYXRvcnMpIHsKICAgICAgYXdhaXQgZW11bGF0b3JzLmluaXQoKTsKICAgIH0KICB9IG9uIFVuc3VwcG9ydGVkRXJyb3IgY2F0Y2ggKGVycm9yKSB7CiAgICBsb2dnZXIudygnJGVycm9yJyk7CiAgfQogIGxvZ2dlci5pKAogICAgZmlyZWJhc2VSZWFkeQogICAgICAgID8gJ0ZpcmViYXNlIHJlYWR5JwogICAgICAgIDogJ0ZpcmViYXNlIG5vdCBjb25maWd1cmVkIHlldDsgc2tpcHBpbmcgRmlyZWJhc2UgbW9kdWxlcycsCiAgKTsKe3svZmlyZWJhc2V9fQp7eyNjcmFzaGx5dGljc319ICBpZiAoZmlyZWJhc2VSZWFkeSkgYXdhaXQgY3Jhc2hseXRpY3MuaW5pdCgpOwp7ey9jcmFzaGx5dGljc319e3sjYW5hbHl0aWNzfX0gIGlmIChmaXJlYmFzZVJlYWR5KSBhd2FpdCBhbmFseXRpY3MuaW5pdCgpOwp7ey9hbmFseXRpY3N9fXt7I2ZlYXR1cmVfZmxhZ3N9fSAgaWYgKGZpcmViYXNlUmVhZHkpIGF3YWl0IGZlYXR1cmVfZmxhZ3MuaW5pdCgpOwp7ey9mZWF0dXJlX2ZsYWdzfX17eyNhdXRofX0KICBpZiAoZmlyZWJhc2VSZWFkeSkgewogICAgZmluYWwgb3B0aW9ucyA9IERlZmF1bHRGaXJlYmFzZU9wdGlvbnMuY3VycmVudFBsYXRmb3JtOwogICAgZmluYWwgY2xpZW50SWQgPSBvcHRpb25zLmlvc0NsaWVudElkID8/IG9wdGlvbnMuYW5kcm9pZENsaWVudElkID8/ICcnOwogICAgYXdhaXQgYXV0aC5pbml0KGF1dGguRGVmYXVsdEF1dGhDb25maWcoY2xpZW50SWQ6IGNsaWVudElkKSk7CiAgfQp7ey9hdXRofX17eyNuZXR3b3JrfX0KICBhd2FpdCBuZXR3b3JrLmluaXQoCiAgICBjb25maWc6IG5ldHdvcmsuRGVmYXVsdE5ldHdvcmtDb25maWcoYmFzZVVybDogY29yZS5FbnZpcm9ubWVudC5iYXNlVXJsKSwKICApOwp7ey9uZXR3b3JrfX17eyNub3RpZmljYXRpb25zfX0KICBpZiAoZmlyZWJhc2VSZWFkeSkgYXdhaXQgbm90aWZpY2F0aW9ucy5pbml0KCk7Cnt7L25vdGlmaWNhdGlvbnN9fQogIC8vIFRPRE86IGluaXRpYWxpc2UgeW91ciBvd24gZmVhdHVyZSBtb2R1bGVzIGhlcmUuCgogIHN0b3B3YXRjaC5zdG9wKCk7CiAgbG9nZ2VyLmkoJ0Jvb3RzdHJhcCBjb21wbGV0ZWQgaW4gJHtzdG9wd2F0Y2guZWxhcHNlZE1pbGxpc2Vjb25kc30gbXMnKTsKe3sjYW5hbHl0aWNzfX0KICBpZiAoZmlyZWJhc2VSZWFkeSkgewogICAgYXdhaXQgYW5hbHl0aWNzLkFuYWx5dGljc0hlbHBlci5sb2dBcHBPcGVuKAogICAgICBwYXJhbWV0ZXJzOiB7J2Jvb3RzdHJhcF9kdXJhdGlvbic6IHN0b3B3YXRjaC5lbGFwc2VkTWlsbGlzZWNvbmRzfSwKICAgICk7CiAgfQp7ey9hbmFseXRpY3N9fX0K", "type": "text" }, { "path": - "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/firebase_options.dart", + "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/main.dart", "data": - "e3sjZmlyZWJhc2V9fS8vIFRoaXMgZmlsZSBpcyBhIHBsYWNlaG9sZGVyLiBHZW5lcmF0ZSB0aGUgcmVhbCBvbmUgd2l0aDoKLy8KLy8gICBjZCBhcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19ICYmIGZsdXR0ZXJmaXJlIGNvbmZpZ3VyZQovLwovLyBGbHV0dGVyRmlyZSBvdmVyd3JpdGVzIHRoaXMgZmlsZSB3aXRoIHlvdXIgcHJvamVjdCdzIG9wdGlvbnMgYW5kIGFsc28gZHJvcHMKLy8gZ29vZ2xlLXNlcnZpY2VzLmpzb24gLyBHb29nbGVTZXJ2aWNlLUluZm8ucGxpc3QgaW50byB0aGUgbmF0aXZlIGZvbGRlcnMuCmltcG9ydCAncGFja2FnZTpmaXJlYmFzZV9jb3JlL2ZpcmViYXNlX2NvcmUuZGFydCcgc2hvdyBGaXJlYmFzZU9wdGlvbnM7CgpjbGFzcyBEZWZhdWx0RmlyZWJhc2VPcHRpb25zIHsKICBjb25zdCBEZWZhdWx0RmlyZWJhc2VPcHRpb25zLl8oKTsKCiAgc3RhdGljIEZpcmViYXNlT3B0aW9ucyBnZXQgY3VycmVudFBsYXRmb3JtID0+IHRocm93IFVuc3VwcG9ydGVkRXJyb3IoCiAgICAnRmlyZWJhc2UgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgZm9yIHt7bmFtZS50aXRsZUNhc2UoKX19LlxuJwogICAgJ1J1biBgZmx1dHRlcmZpcmUgY29uZmlndXJlYCBpbnNpZGUgYXBwcy97e25hbWUuc25ha2VDYXNlKCl9fSAnCiAgICAndG8gcmVwbGFjZSBsaWIvZmlyZWJhc2Vfb3B0aW9ucy5kYXJ0LicsCiAgKTsKfXt7L2ZpcmViYXNlfX0K", + "aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9hcHAuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9ib290c3RyYXAuZGFydCcgYXMgYm9vdHN0cmFwOwoKdm9pZCBtYWluKCkgYXN5bmMgewogIGF3YWl0IGJvb3RzdHJhcC5pbml0KCk7CiAgcnVuQXBwKGNvbnN0IEFwcCgpKTsKfQo=", "type": "text" }, { "path": - "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/main.dart", + "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9hcHAuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e25hbWUuc25ha2VDYXNlKCl9fS9ib290c3RyYXAuZGFydCcgYXMgYm9vdHN0cmFwOwoKdm9pZCBtYWluKCkgYXN5bmMgewogIGF3YWl0IGJvb3RzdHJhcC5pbml0KCk7CiAgcnVuQXBwKGNvbnN0IEFwcCgpKTsKfQo=", + "e3sjYW5hbHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl0aWNzL2FuYWx5dGljcy5kYXJ0JzsKe3svYW5hbHl0aWNzfX17eyNhdXRofX1pbXBvcnQgJ3BhY2thZ2U6YXV0aC9hdXRoLmRhcnQnIGFzIGF1dGg7Cnt7L2F1dGh9fWltcG9ydCAncGFja2FnZTpjb3JlL2NvcmUuZGFydCcgYXMgY29yZTsKe3sjZGFzaGJvYXJkfX1pbXBvcnQgJ3BhY2thZ2U6ZGFzaGJvYXJkL2Rhc2hib2FyZC5kYXJ0JzsKe3svZGFzaGJvYXJkfX1pbXBvcnQgJ3BhY2thZ2U6ZGVzaWduX3N5c3RlbS9kZXNpZ25fc3lzdGVtLmRhcnQnOwp7eyNkZXZlbG9wZXJ9fWltcG9ydCAncGFja2FnZTpkZXZlbG9wZXIvZGV2ZWxvcGVyLmRhcnQnIGFzIGRldmVsb3BlcjsKe3svZGV2ZWxvcGVyfX1pbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7Cnt7I2FuYWx5dGljc319aW1wb3J0ICdwYWNrYWdlOmZpcmViYXNlX2NvcmUvZmlyZWJhc2VfY29yZS5kYXJ0JzsKe3svYW5hbHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9mb3VuZGF0aW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmdvX3JvdXRlci9nb19yb3V0ZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTpsb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bmF2aWdhdGlvbl9oaXN0b3J5X29ic2VydmVyL25hdmlnYXRpb25faGlzdG9yeV9vYnNlcnZlci5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7bmFtZS5zbmFrZUNhc2UoKX19L3VpL3NwbGFzaF9zY3JlZW4uZGFydCc7CgovLy8gVGhlIGFwcCdzIHNpbmdsZSBbR29Sb3V0ZXJdLgovLy8KLy8vIEZlYXR1cmUgcGFja2FnZXMgZXhwb3NlIHRoZWlyIG93biBgcm91dGVzYCBsaXN0IGFuZCBhcmUgc3BsaWNlZCBpbiBoZXJlLCBzbwovLy8gYWRkaW5nIGEgZmVhdHVyZSBpcyBvbmUgaW1wb3J0IHBsdXMgb25lIHNwcmVhZCAtIG5vIHJvdXRlIHRhYmxlIHRvIG1lcmdlLgpjbGFzcyBBcHBSb3V0ZXIgewogIGNvbnN0IEFwcFJvdXRlci5fKCk7CgogIHN0YXRpYyBmaW5hbCBHb1JvdXRlciBfcm91dGVyID0gY3JlYXRlUm91dGVyKCk7CgogIHN0YXRpYyBSb3V0ZXJEZWxlZ2F0ZTxPYmplY3Q+IGdldCByb3V0ZXJEZWxlZ2F0ZSA9PiBfcm91dGVyLnJvdXRlckRlbGVnYXRlOwoKICBzdGF0aWMgUm91dGVJbmZvcm1hdGlvblBhcnNlcjxPYmplY3Q+IGdldCByb3V0ZUluZm9ybWF0aW9uUGFyc2VyID0+CiAgICAgIF9yb3V0ZXIucm91dGVJbmZvcm1hdGlvblBhcnNlcjsKCiAgc3RhdGljIFJvdXRlSW5mb3JtYXRpb25Qcm92aWRlcj8gZ2V0IHJvdXRlSW5mb3JtYXRpb25Qcm92aWRlciA9PgogICAgICBfcm91dGVyLnJvdXRlSW5mb3JtYXRpb25Qcm92aWRlcjsKCiAgc3RhdGljIEdvUm91dGVyIGNyZWF0ZVJvdXRlcigpIHsKICAgIGZpbmFsIHJvdXRlciA9IEdvUm91dGVyKAogICAgICBkZWJ1Z0xvZ0RpYWdub3N0aWNzOiBrRGVidWdNb2RlLAogICAgICBpbml0aWFsTG9jYXRpb246IGNvcmUuQ29yZVJvdXRlcy5yb290LAogICAgICBvYnNlcnZlcnM6IFsKICAgICAgICBOYXZpZ2F0aW9uSGlzdG9yeU9ic2VydmVyKCksCiAgICAgICAgY29yZS5Db3JlUm91dGVPYnNlcnZlcigpLAp7eyNhbmFseXRpY3N9fSAgICAgICAgaWYgKEZpcmViYXNlLmFwcHMuaXNOb3RFbXB0eSkgQW5hbHl0aWNzUm91dGVPYnNlcnZlcigpLAp7ey9hbmFseXRpY3N9fSAgICAgIF0sCiAgICAgIGVycm9yQnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSA9PiBFcnJvclNjcmVlbigKICAgICAgICB0aXRsZTogc3RyaW5ncy5lcnJvcnMucGFnZV9ub3RfZm91bmQsCiAgICAgICAgbWVzc2FnZTogc3RyaW5ncy5lcnJvcnMucGFnZV9ub3RfZm91bmRfZGVzY3JpcHRpb24sCiAgICAgICAgb25Hb0hvbWU6ICgpID0+IGNvbnRleHQuZ28oY29yZS5Db3JlUm91dGVzLnJvb3QpLAogICAgICAgIGVycm9yOiBzdGF0ZS51cmkudG9TdHJpbmcoKSwKICAgICAgKSwKICAgICAgcm91dGVzOiBbCiAgICAgICAgR29Sb3V0ZSgKICAgICAgICAgIHBhdGg6IGNvcmUuQ29yZVJvdXRlcy5yb290LAogICAgICAgICAgYnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSA9PiBjb25zdCBTcGxhc2hTY3JlZW4oKSwKICAgICAgICApLAp7eyNkYXNoYm9hcmR9fSAgICAgICAgR29Sb3V0ZSgKICAgICAgICAgIHBhdGg6IGNvcmUuQ29yZVJvdXRlcy5ob21lLAogICAgICAgICAgcmVkaXJlY3Q6IChjb250ZXh0LCBzdGF0ZSkgPT4gRGFzaGJvYXJkUm91dGVyLmhvbWUsCiAgICAgICAgKSwKICAgICAgICBEYXNoYm9hcmRSb3V0ZXIuY3JlYXRlU2hlbGxSb3V0ZSgpLAp7ey9kYXNoYm9hcmR9fXt7XmRhc2hib2FyZH19ICAgICAgICBHb1JvdXRlKAogICAgICAgICAgcGF0aDogY29yZS5Db3JlUm91dGVzLmhvbWUsCiAgICAgICAgICBidWlsZGVyOiAoY29udGV4dCwgc3RhdGUpID0+IGNvbnN0IF9Ib21lU2NyZWVuKCksCiAgICAgICAgKSwKe3svZGFzaGJvYXJkfX17eyNhdXRofX0gICAgICAgIC4uLmF1dGguQXV0aFJvdXRlcigKICAgICAgICAgIG9uU2lnbmVkSW46IF9vbkF1dGhlbnRpY2F0ZWQsCiAgICAgICAgICBvblNpZ25lZFVwOiBfb25BdXRoZW50aWNhdGVkLAogICAgICAgICkucm91dGVzLAp7ey9hdXRofX17eyNkZXZlbG9wZXJ9fSAgICAgICAgLi4uZGV2ZWxvcGVyLkRldmVsb3BlclJvdXRlcigpLnJvdXRlcywKe3svZGV2ZWxvcGVyfX0gICAgICAgIEdvUm91dGUoCiAgICAgICAgICBwYXRoOiBjb3JlLkNvcmVSb3V0ZXMuZXJyb3IsCiAgICAgICAgICBidWlsZGVyOiAoY29udGV4dCwgc3RhdGUpID0+IEVycm9yU2NyZWVuKAogICAgICAgICAgICB0aXRsZToKICAgICAgICAgICAgICAgIHN0YXRlLnVyaS5xdWVyeVBhcmFtZXRlcnNbY29yZS5LZXlzLnRpdGxlXSA/PwogICAgICAgICAgICAgICAgc3RyaW5ncy5nZW5lcmljLmVycm9yLAogICAgICAgICAgICBtZXNzYWdlOgogICAgICAgICAgICAgICAgc3RhdGUudXJpLnF1ZXJ5UGFyYW1ldGVyc1tjb3JlLktleXMubWVzc2FnZV0gPz8KICAgICAgICAgICAgICAgIHN0cmluZ3MuZXJyb3JzLnVuZXhwZWN0ZWRfZXJyb3IsCiAgICAgICAgICAgIGVycm9yOiBzdGF0ZS51cmkucXVlcnlQYXJhbWV0ZXJzW2NvcmUuS2V5cy5lcnJvcl0sCiAgICAgICAgICAgIG9uR29Ib21lOiAoKSA9PiBjb250ZXh0LmdvKGNvcmUuQ29yZVJvdXRlcy5yb290KSwKICAgICAgICAgICksCiAgICAgICAgKSwKICAgICAgXSwKICAgICk7CgogICAgZGkucmVnaXN0ZXI8R29Sb3V0ZXI+KHJvdXRlcik7CiAgICByZXR1cm4gcm91dGVyOwogIH0Ke3sjYXV0aH19CiAgLy8vIFdoZXJlIGEgdXNlciBsYW5kcyBvbmNlIHNpZ24taW4gb3Igc2lnbi11cCBzdWNjZWVkcy4KICAvLy8KICAvLy8gTG9hZCB0aGUgcHJvZmlsZSAvIGVudGl0bGVtZW50cyB5b3UgbmVlZCBoZXJlIGJlZm9yZSByb3V0aW5nIG9uLgogIHN0YXRpYyBGdXR1cmU8dm9pZD4gX29uQXV0aGVudGljYXRlZChCdWlsZENvbnRleHQgY29udGV4dCkgYXN5bmMgewp7eyNhbmFseXRpY3N9fSAgICBhd2FpdCBBbmFseXRpY3NIZWxwZXIubG9nRXZlbnQoQW5hbHl0aWNzRXZlbnRzLnVzZXIuYXV0aGVudGljYXRlZFJlZGlyZWN0KTsKe3svYW5hbHl0aWNzfX0gICAgaWYgKGNvbnRleHQubW91bnRlZCkgewogICAgICBjb250ZXh0LmdvKHt7I2Rhc2hib2FyZH19RGFzaGJvYXJkUm91dGVyLmhvbWV7ey9kYXNoYm9hcmR9fXt7XmRhc2hib2FyZH19Y29yZS5Db3JlUm91dGVzLmhvbWV7ey9kYXNoYm9hcmR9fSk7CiAgICB9CiAgfQp7ey9hdXRofX19Cnt7XmRhc2hib2FyZH19Ci8vLyBQbGFjZWhvbGRlciBsYW5kaW5nIHNjcmVlbiAtIHJlcGxhY2UgaXQgd2l0aCB5b3VyIGZpcnN0IGZlYXR1cmUuCmNsYXNzIF9Ib21lU2NyZWVuIGV4dGVuZHMgU3RhdGVsZXNzV2lkZ2V0IHsKICBjb25zdCBfSG9tZVNjcmVlbigpOwoKICBAb3ZlcnJpZGUKICBXaWRnZXQgYnVpbGQoQnVpbGRDb250ZXh0IGNvbnRleHQpIHsKICAgIHJldHVybiBTY2FmZm9sZCgKICAgICAgYXBwQmFyOiBBcHBCYXIodGl0bGU6IFRleHQoc3RyaW5ncy5hcHAubmFtZSkpLAogICAgICBib2R5OiBDZW50ZXIoCiAgICAgICAgY2hpbGQ6IHt7I2RldmVsb3Blcn19ZGV2ZWxvcGVyLk9wZW5EZXZUb29sc1dyYXBwZXIoCiAgICAgICAgICAvLyBUYXAgNXggdG8gcmVhY2ggdGhlIGRldmVsb3BlciB0b29scy4KICAgICAgICAgIGNoaWxkOiBUZXh0KHN0cmluZ3MuYXBwLndlbGNvbWVfdG9fYXBwKSwKICAgICAgICApe3svZGV2ZWxvcGVyfX17e15kZXZlbG9wZXJ9fVRleHQoc3RyaW5ncy5hcHAud2VsY29tZV90b19hcHApe3svZGV2ZWxvcGVyfX0sCiAgICAgICksCiAgICApOwogIH0KfQp7ey9kYXNoYm9hcmR9fQ==", "type": "text" }, { "path": - "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/router/router.dart", + "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart", "data": - "e3sjYW5hbHl0aWNzfX1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl0aWNzL2FuYWx5dGljcy5kYXJ0JzsKe3svYW5hbHl0aWNzfX17eyNhdXRofX1pbXBvcnQgJ3BhY2thZ2U6YXV0aC9hdXRoLmRhcnQnIGFzIGF1dGg7Cnt7L2F1dGh9fWltcG9ydCAncGFja2FnZTpjb3JlL2NvcmUuZGFydCcgYXMgY29yZTsKe3sjZGFzaGJvYXJkfX1pbXBvcnQgJ3BhY2thZ2U6ZGFzaGJvYXJkL2Rhc2hib2FyZC5kYXJ0JzsKe3svZGFzaGJvYXJkfX1pbXBvcnQgJ3BhY2thZ2U6ZGVzaWduX3N5c3RlbS9kZXNpZ25fc3lzdGVtLmRhcnQnOwp7eyNkZXZlbG9wZXJ9fWltcG9ydCAncGFja2FnZTpkZXZlbG9wZXIvZGV2ZWxvcGVyLmRhcnQnIGFzIGRldmVsb3BlcjsKe3svZGV2ZWxvcGVyfX1pbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL2ZvdW5kYXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Z29fcm91dGVyL2dvX3JvdXRlci5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmxvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpuYXZpZ2F0aW9uX2hpc3Rvcnlfb2JzZXJ2ZXIvbmF2aWdhdGlvbl9oaXN0b3J5X29ic2VydmVyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3tuYW1lLnNuYWtlQ2FzZSgpfX0vdWkvc3BsYXNoX3NjcmVlbi5kYXJ0JzsKCi8vLyBUaGUgYXBwJ3Mgc2luZ2xlIFtHb1JvdXRlcl0uCi8vLwovLy8gRmVhdHVyZSBwYWNrYWdlcyBleHBvc2UgdGhlaXIgb3duIGByb3V0ZXNgIGxpc3QgYW5kIGFyZSBzcGxpY2VkIGluIGhlcmUsIHNvCi8vLyBhZGRpbmcgYSBmZWF0dXJlIGlzIG9uZSBpbXBvcnQgcGx1cyBvbmUgc3ByZWFkIC0gbm8gcm91dGUgdGFibGUgdG8gbWVyZ2UuCmNsYXNzIEFwcFJvdXRlciB7CiAgY29uc3QgQXBwUm91dGVyLl8oKTsKCiAgc3RhdGljIGZpbmFsIEdvUm91dGVyIF9yb3V0ZXIgPSBjcmVhdGVSb3V0ZXIoKTsKCiAgc3RhdGljIFJvdXRlckRlbGVnYXRlPE9iamVjdD4gZ2V0IHJvdXRlckRlbGVnYXRlID0+IF9yb3V0ZXIucm91dGVyRGVsZWdhdGU7CgogIHN0YXRpYyBSb3V0ZUluZm9ybWF0aW9uUGFyc2VyPE9iamVjdD4gZ2V0IHJvdXRlSW5mb3JtYXRpb25QYXJzZXIgPT4KICAgICAgX3JvdXRlci5yb3V0ZUluZm9ybWF0aW9uUGFyc2VyOwoKICBzdGF0aWMgUm91dGVJbmZvcm1hdGlvblByb3ZpZGVyPyBnZXQgcm91dGVJbmZvcm1hdGlvblByb3ZpZGVyID0+CiAgICAgIF9yb3V0ZXIucm91dGVJbmZvcm1hdGlvblByb3ZpZGVyOwoKICBzdGF0aWMgR29Sb3V0ZXIgY3JlYXRlUm91dGVyKCkgewogICAgZmluYWwgcm91dGVyID0gR29Sb3V0ZXIoCiAgICAgIGRlYnVnTG9nRGlhZ25vc3RpY3M6IGtEZWJ1Z01vZGUsCiAgICAgIGluaXRpYWxMb2NhdGlvbjogY29yZS5Db3JlUm91dGVzLnJvb3QsCiAgICAgIG9ic2VydmVyczogWwogICAgICAgIE5hdmlnYXRpb25IaXN0b3J5T2JzZXJ2ZXIoKSwKICAgICAgICBjb3JlLkNvcmVSb3V0ZU9ic2VydmVyKCksCnt7I2FuYWx5dGljc319ICAgICAgICBBbmFseXRpY3NSb3V0ZU9ic2VydmVyKCksCnt7L2FuYWx5dGljc319ICAgICAgXSwKICAgICAgZXJyb3JCdWlsZGVyOiAoY29udGV4dCwgc3RhdGUpID0+IEVycm9yU2NyZWVuKAogICAgICAgIHRpdGxlOiBzdHJpbmdzLmVycm9ycy5wYWdlX25vdF9mb3VuZCwKICAgICAgICBtZXNzYWdlOiBzdHJpbmdzLmVycm9ycy5wYWdlX25vdF9mb3VuZF9kZXNjcmlwdGlvbiwKICAgICAgICBvbkdvSG9tZTogKCkgPT4gY29udGV4dC5nbyhjb3JlLkNvcmVSb3V0ZXMucm9vdCksCiAgICAgICAgZXJyb3I6IHN0YXRlLnVyaS50b1N0cmluZygpLAogICAgICApLAogICAgICByb3V0ZXM6IFsKICAgICAgICBHb1JvdXRlKAogICAgICAgICAgcGF0aDogY29yZS5Db3JlUm91dGVzLnJvb3QsCiAgICAgICAgICBidWlsZGVyOiAoY29udGV4dCwgc3RhdGUpID0+IGNvbnN0IFNwbGFzaFNjcmVlbigpLAogICAgICAgICksCnt7I2Rhc2hib2FyZH19ICAgICAgICBHb1JvdXRlKAogICAgICAgICAgcGF0aDogY29yZS5Db3JlUm91dGVzLmhvbWUsCiAgICAgICAgICByZWRpcmVjdDogKGNvbnRleHQsIHN0YXRlKSA9PiBEYXNoYm9hcmRSb3V0ZXIuaG9tZSwKICAgICAgICApLAogICAgICAgIERhc2hib2FyZFJvdXRlci5jcmVhdGVTaGVsbFJvdXRlKCksCnt7L2Rhc2hib2FyZH19e3teZGFzaGJvYXJkfX0gICAgICAgIEdvUm91dGUoCiAgICAgICAgICBwYXRoOiBjb3JlLkNvcmVSb3V0ZXMuaG9tZSwKICAgICAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCBzdGF0ZSkgPT4gY29uc3QgX0hvbWVTY3JlZW4oKSwKICAgICAgICApLAp7ey9kYXNoYm9hcmR9fXt7I2F1dGh9fSAgICAgICAgLi4uYXV0aC5BdXRoUm91dGVyKAogICAgICAgICAgb25TaWduZWRJbjogX29uQXV0aGVudGljYXRlZCwKICAgICAgICAgIG9uU2lnbmVkVXA6IF9vbkF1dGhlbnRpY2F0ZWQsCiAgICAgICAgKS5yb3V0ZXMsCnt7L2F1dGh9fXt7I2RldmVsb3Blcn19ICAgICAgICAuLi5kZXZlbG9wZXIuRGV2ZWxvcGVyUm91dGVyKCkucm91dGVzLAp7ey9kZXZlbG9wZXJ9fSAgICAgICAgR29Sb3V0ZSgKICAgICAgICAgIHBhdGg6IGNvcmUuQ29yZVJvdXRlcy5lcnJvciwKICAgICAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCBzdGF0ZSkgPT4gRXJyb3JTY3JlZW4oCiAgICAgICAgICAgIHRpdGxlOgogICAgICAgICAgICAgICAgc3RhdGUudXJpLnF1ZXJ5UGFyYW1ldGVyc1tjb3JlLktleXMudGl0bGVdID8/CiAgICAgICAgICAgICAgICBzdHJpbmdzLmdlbmVyaWMuZXJyb3IsCiAgICAgICAgICAgIG1lc3NhZ2U6CiAgICAgICAgICAgICAgICBzdGF0ZS51cmkucXVlcnlQYXJhbWV0ZXJzW2NvcmUuS2V5cy5tZXNzYWdlXSA/PwogICAgICAgICAgICAgICAgc3RyaW5ncy5lcnJvcnMudW5leHBlY3RlZF9lcnJvciwKICAgICAgICAgICAgZXJyb3I6IHN0YXRlLnVyaS5xdWVyeVBhcmFtZXRlcnNbY29yZS5LZXlzLmVycm9yXSwKICAgICAgICAgICAgb25Hb0hvbWU6ICgpID0+IGNvbnRleHQuZ28oY29yZS5Db3JlUm91dGVzLnJvb3QpLAogICAgICAgICAgKSwKICAgICAgICApLAogICAgICBdLAogICAgKTsKCiAgICBkaS5yZWdpc3RlcjxHb1JvdXRlcj4ocm91dGVyKTsKICAgIHJldHVybiByb3V0ZXI7CiAgfQp7eyNhdXRofX0KICAvLy8gV2hlcmUgYSB1c2VyIGxhbmRzIG9uY2Ugc2lnbi1pbiBvciBzaWduLXVwIHN1Y2NlZWRzLgogIC8vLwogIC8vLyBMb2FkIHRoZSBwcm9maWxlIC8gZW50aXRsZW1lbnRzIHlvdSBuZWVkIGhlcmUgYmVmb3JlIHJvdXRpbmcgb24uCiAgc3RhdGljIEZ1dHVyZTx2b2lkPiBfb25BdXRoZW50aWNhdGVkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSBhc3luYyB7Cnt7I2FuYWx5dGljc319ICAgIGF3YWl0IEFuYWx5dGljc0hlbHBlci5sb2dFdmVudChBbmFseXRpY3NFdmVudHMudXNlci5hdXRoZW50aWNhdGVkUmVkaXJlY3QpOwp7ey9hbmFseXRpY3N9fSAgICBpZiAoY29udGV4dC5tb3VudGVkKSB7CiAgICAgIGNvbnRleHQuZ28oe3sjZGFzaGJvYXJkfX1EYXNoYm9hcmRSb3V0ZXIuaG9tZXt7L2Rhc2hib2FyZH19e3teZGFzaGJvYXJkfX1jb3JlLkNvcmVSb3V0ZXMuaG9tZXt7L2Rhc2hib2FyZH19KTsKICAgIH0KICB9Cnt7L2F1dGh9fX0Ke3teZGFzaGJvYXJkfX0KLy8vIFBsYWNlaG9sZGVyIGxhbmRpbmcgc2NyZWVuIC0gcmVwbGFjZSBpdCB3aXRoIHlvdXIgZmlyc3QgZmVhdHVyZS4KY2xhc3MgX0hvbWVTY3JlZW4gZXh0ZW5kcyBTdGF0ZWxlc3NXaWRnZXQgewogIGNvbnN0IF9Ib21lU2NyZWVuKCk7CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgcmV0dXJuIFNjYWZmb2xkKAogICAgICBhcHBCYXI6IEFwcEJhcih0aXRsZTogVGV4dChzdHJpbmdzLmFwcC5uYW1lKSksCiAgICAgIGJvZHk6IENlbnRlcigKICAgICAgICBjaGlsZDoge3sjZGV2ZWxvcGVyfX1kZXZlbG9wZXIuT3BlbkRldlRvb2xzV3JhcHBlcigKICAgICAgICAgIC8vIFRhcCA1eCB0byByZWFjaCB0aGUgZGV2ZWxvcGVyIHRvb2xzLgogICAgICAgICAgY2hpbGQ6IFRleHQoc3RyaW5ncy5hcHAud2VsY29tZV90b19hcHApLAogICAgICAgICl7ey9kZXZlbG9wZXJ9fXt7XmRldmVsb3Blcn19VGV4dChzdHJpbmdzLmFwcC53ZWxjb21lX3RvX2FwcCl7ey9kZXZlbG9wZXJ9fSwKICAgICAgKSwKICAgICk7CiAgfQp9Cnt7L2Rhc2hib2FyZH19", + "e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX17e15kYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpjb3JlL2NvcmUuZGFydCcgYXMgY29yZTsKe3svZGFzaGJvYXJkfX17eyNkYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpkYXNoYm9hcmQvZGFzaGJvYXJkLmRhcnQnOwp7ey9kYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpkZXNpZ25fc3lzdGVtL2Rlc2lnbl9zeXN0ZW0uZGFydCc7Cnt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpkaS9kaS5kYXJ0JzsKe3svYXV0aH19aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7CmltcG9ydCAncGFja2FnZTpnb19yb3V0ZXIvZ29fcm91dGVyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5kYXJ0JzsKCi8vLyBGaXJzdCBmcmFtZSB0aGUgdXNlciBzZWVzLgovLy8KLy8vIEl0IGV4aXN0cyB0byBnaXZlIGFzeW5jIHN0YXJ0dXAgd29yayAoc2Vzc2lvbiByZXN0b3JlLCBwcm9maWxlIGZldGNoKSBhCi8vLyBwbGFjZSB0byBoYXBwZW4gYmVmb3JlIHRoZSBhcHAgY29tbWl0cyB0byBhIGRlc3RpbmF0aW9uLgpjbGFzcyBTcGxhc2hTY3JlZW4gZXh0ZW5kcyBTdGF0ZWZ1bFdpZGdldCB7CiAgY29uc3QgU3BsYXNoU2NyZWVuKHtzdXBlci5rZXl9KTsKCiAgQG92ZXJyaWRlCiAgU3RhdGU8U3BsYXNoU2NyZWVuPiBjcmVhdGVTdGF0ZSgpID0+IF9TcGxhc2hTY3JlZW5TdGF0ZSgpOwp9CgpjbGFzcyBfU3BsYXNoU2NyZWVuU3RhdGUgZXh0ZW5kcyBTdGF0ZTxTcGxhc2hTY3JlZW4+IHsKICBAb3ZlcnJpZGUKICB2b2lkIGluaXRTdGF0ZSgpIHsKICAgIHN1cGVyLmluaXRTdGF0ZSgpOwogICAgV2lkZ2V0c0JpbmRpbmcuaW5zdGFuY2UuYWRkUG9zdEZyYW1lQ2FsbGJhY2soKF8pID0+IF9yZWRpcmVjdCgpKTsKICB9CgogIEZ1dHVyZTx2b2lkPiBfcmVkaXJlY3QoKSBhc3luYyB7CiAgICBpZiAoIW1vdW50ZWQpIHJldHVybjsKe3sjYXV0aH19CiAgICBpZiAoZGkuaGFzPGF1dGguQXV0aFNlcnZpY2U+KCkgJiYKICAgICAgICAhZGkuZ2V0PGF1dGguQXV0aFNlcnZpY2U+KCkuaXNTaWduZWRJbikgewogICAgICBjb250ZXh0LmdvKGF1dGguQXV0aFJvdXRlcy5zaWduSW4pOwogICAgICByZXR1cm47CiAgICB9Cnt7L2F1dGh9fQogICAgLy8gVE9ETzogbG9hZCB3aGF0ZXZlciB0aGUgZmlyc3Qgc2NyZWVuIG5lZWRzIGJlZm9yZSBuYXZpZ2F0aW5nLgogICAgY29udGV4dC5nbyh7eyNkYXNoYm9hcmR9fURhc2hib2FyZFJvdXRlci5ob21le3svZGFzaGJvYXJkfX17e15kYXNoYm9hcmR9fWNvcmUuQ29yZVJvdXRlcy5ob21le3svZGFzaGJvYXJkfX0pOwogIH0KCiAgQG92ZXJyaWRlCiAgV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgICBmaW5hbCB0aGVtZSA9IFRoZW1lLm9mKGNvbnRleHQpOwogICAgcmV0dXJuIFNjYWZmb2xkKAogICAgICBib2R5OiBDZW50ZXIoCiAgICAgICAgY2hpbGQ6IENvbHVtbigKICAgICAgICAgIG1haW5BeGlzQWxpZ25tZW50OiBNYWluQXhpc0FsaWdubWVudC5jZW50ZXIsCiAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICBUZXh0KAogICAgICAgICAgICAgIHN0cmluZ3MuYXBwLm5hbWUsCiAgICAgICAgICAgICAgc3R5bGU6IHRoZW1lLnRleHRUaGVtZS5oZWFkbGluZU1lZGl1bT8uY29weVdpdGgoCiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiBGb250V2VpZ2h0LmJvbGQsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICAgY29uc3QgU2l6ZWRCb3goaGVpZ2h0OiAzMiksCiAgICAgICAgICAgIGNvbnN0IERlZmF1bHRMb2FkZXIoKSwKICAgICAgICAgIF0sCiAgICAgICAgKSwKICAgICAgKSwKICAgICk7CiAgfQp9Cg==", "type": "text" }, { "path": - "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/ui/splash_screen.dart", + "{{ name.snakeCase() }}/apps/{{ name.snakeCase() }}/lib/{{firebase_options_file}}", "data": - "e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX17e15kYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpjb3JlL2NvcmUuZGFydCcgYXMgY29yZTsKe3svZGFzaGJvYXJkfX17eyNkYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpkYXNoYm9hcmQvZGFzaGJvYXJkLmRhcnQnOwp7ey9kYXNoYm9hcmR9fWltcG9ydCAncGFja2FnZTpkZXNpZ25fc3lzdGVtL2Rlc2lnbl9zeXN0ZW0uZGFydCc7Cnt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpkaS9kaS5kYXJ0JzsKe3svYXV0aH19aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7CmltcG9ydCAncGFja2FnZTpnb19yb3V0ZXIvZ29fcm91dGVyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5kYXJ0JzsKCi8vLyBGaXJzdCBmcmFtZSB0aGUgdXNlciBzZWVzLgovLy8KLy8vIEl0IGV4aXN0cyB0byBnaXZlIGFzeW5jIHN0YXJ0dXAgd29yayAoc2Vzc2lvbiByZXN0b3JlLCBwcm9maWxlIGZldGNoKSBhCi8vLyBwbGFjZSB0byBoYXBwZW4gYmVmb3JlIHRoZSBhcHAgY29tbWl0cyB0byBhIGRlc3RpbmF0aW9uLgpjbGFzcyBTcGxhc2hTY3JlZW4gZXh0ZW5kcyBTdGF0ZWZ1bFdpZGdldCB7CiAgY29uc3QgU3BsYXNoU2NyZWVuKHtzdXBlci5rZXl9KTsKCiAgQG92ZXJyaWRlCiAgU3RhdGU8U3BsYXNoU2NyZWVuPiBjcmVhdGVTdGF0ZSgpID0+IF9TcGxhc2hTY3JlZW5TdGF0ZSgpOwp9CgpjbGFzcyBfU3BsYXNoU2NyZWVuU3RhdGUgZXh0ZW5kcyBTdGF0ZTxTcGxhc2hTY3JlZW4+IHsKICBAb3ZlcnJpZGUKICB2b2lkIGluaXRTdGF0ZSgpIHsKICAgIHN1cGVyLmluaXRTdGF0ZSgpOwogICAgV2lkZ2V0c0JpbmRpbmcuaW5zdGFuY2UuYWRkUG9zdEZyYW1lQ2FsbGJhY2soKF8pID0+IF9yZWRpcmVjdCgpKTsKICB9CgogIEZ1dHVyZTx2b2lkPiBfcmVkaXJlY3QoKSBhc3luYyB7CiAgICBpZiAoIW1vdW50ZWQpIHJldHVybjsKe3sjYXV0aH19CiAgICBpZiAoIWRpLmdldDxhdXRoLkF1dGhTZXJ2aWNlPigpLmlzU2lnbmVkSW4pIHsKICAgICAgY29udGV4dC5nbyhhdXRoLkF1dGhSb3V0ZXMuc2lnbkluKTsKICAgICAgcmV0dXJuOwogICAgfQp7ey9hdXRofX0KICAgIC8vIFRPRE86IGxvYWQgd2hhdGV2ZXIgdGhlIGZpcnN0IHNjcmVlbiBuZWVkcyBiZWZvcmUgbmF2aWdhdGluZy4KICAgIGNvbnRleHQuZ28oe3sjZGFzaGJvYXJkfX1EYXNoYm9hcmRSb3V0ZXIuaG9tZXt7L2Rhc2hib2FyZH19e3teZGFzaGJvYXJkfX1jb3JlLkNvcmVSb3V0ZXMuaG9tZXt7L2Rhc2hib2FyZH19KTsKICB9CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgZmluYWwgdGhlbWUgPSBUaGVtZS5vZihjb250ZXh0KTsKICAgIHJldHVybiBTY2FmZm9sZCgKICAgICAgYm9keTogQ2VudGVyKAogICAgICAgIGNoaWxkOiBDb2x1bW4oCiAgICAgICAgICBtYWluQXhpc0FsaWdubWVudDogTWFpbkF4aXNBbGlnbm1lbnQuY2VudGVyLAogICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgVGV4dCgKICAgICAgICAgICAgICBzdHJpbmdzLmFwcC5uYW1lLAogICAgICAgICAgICAgIHN0eWxlOiB0aGVtZS50ZXh0VGhlbWUuaGVhZGxpbmVNZWRpdW0/LmNvcHlXaXRoKAogICAgICAgICAgICAgICAgZm9udFdlaWdodDogRm9udFdlaWdodC5ib2xkLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGNvbnN0IFNpemVkQm94KGhlaWdodDogMzIpLAogICAgICAgICAgICBjb25zdCBEZWZhdWx0TG9hZGVyKCksCiAgICAgICAgICBdLAogICAgICAgICksCiAgICAgICksCiAgICApOwogIH0KfQo=", + "Ly8gVGhpcyBmaWxlIGlzIGEgcGxhY2Vob2xkZXIuIEdlbmVyYXRlIHRoZSByZWFsIG9uZSB3aXRoOgovLwovLyAgIGNkIGFwcHMve3tuYW1lLnNuYWtlQ2FzZSgpfX0gJiYgZmx1dHRlcmZpcmUgY29uZmlndXJlCi8vCi8vIEZsdXR0ZXJGaXJlIG92ZXJ3cml0ZXMgdGhpcyBmaWxlIHdpdGggeW91ciBwcm9qZWN0J3Mgb3B0aW9ucyBhbmQgYWxzbyBkcm9wcwovLyBnb29nbGUtc2VydmljZXMuanNvbiAvIEdvb2dsZVNlcnZpY2UtSW5mby5wbGlzdCBpbnRvIHRoZSBuYXRpdmUgZm9sZGVycy4KLy8gVW50aWwgdGhlbiwgYm9vdHN0cmFwIGNhdGNoZXMgdGhlIHRocm93IGFuZCBza2lwcyBGaXJlYmFzZS1iYWNrZWQgbW9kdWxlcwovLyBzbyB0aGUgcmVzdCBvZiB0aGUgYXBwIHN0aWxsIHJ1bnMuCmltcG9ydCAncGFja2FnZTpmaXJlYmFzZV9jb3JlL2ZpcmViYXNlX2NvcmUuZGFydCcgc2hvdyBGaXJlYmFzZU9wdGlvbnM7CgpjbGFzcyBEZWZhdWx0RmlyZWJhc2VPcHRpb25zIHsKICBjb25zdCBEZWZhdWx0RmlyZWJhc2VPcHRpb25zLl8oKTsKCiAgc3RhdGljIEZpcmViYXNlT3B0aW9ucyBnZXQgY3VycmVudFBsYXRmb3JtID0+IHRocm93IFVuc3VwcG9ydGVkRXJyb3IoCiAgICAnRmlyZWJhc2UgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgZm9yIHt7bmFtZS50aXRsZUNhc2UoKX19LlxuJwogICAgJ1J1biBgZmx1dHRlcmZpcmUgY29uZmlndXJlYCBpbnNpZGUgYXBwcy97e25hbWUuc25ha2VDYXNlKCl9fSAnCiAgICAndG8gcmVwbGFjZSBsaWIvZmlyZWJhc2Vfb3B0aW9ucy5kYXJ0LicsCiAgKTsKfQo=", "type": "text" }, { @@ -169,7 +169,7 @@ final flutterProjectWithMonoRepoBundle = MasonBundle.fromJson({ "path": "{{ name.snakeCase() }}/features/{{auth_dir}}/lib/router/router.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmF1dGgvY29uc3RhbnRzL2luZGV4LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6YXV0aC9kYXRhL3NlcnZpY2VzL2F1dGhfc2VydmljZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmF1dGgvdWkvc2NyZWVucy9pbmRleC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmNvcmUvY29yZS5kYXJ0JyBhcyBjb3JlOwppbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Z29fcm91dGVyL2dvX3JvdXRlci5kYXJ0JzsKCmNsYXNzIEF1dGhSb3V0ZXIgZXh0ZW5kcyBjb3JlLkNvcmVSb3V0ZXIgewogIGZpbmFsIEZ1bmN0aW9uKEJ1aWxkQ29udGV4dCBjb250ZXh0KSBvblNpZ25lZEluOwogIGZpbmFsIEZ1bmN0aW9uKEJ1aWxkQ29udGV4dCBjb250ZXh0KSBvblNpZ25lZFVwOwoKICBBdXRoUm91dGVyKHtyZXF1aXJlZCB0aGlzLm9uU2lnbmVkSW4sIHJlcXVpcmVkIHRoaXMub25TaWduZWRVcH0pOwoKICBAb3ZlcnJpZGUKICBMaXN0PFJvdXRlQmFzZT4gZ2V0IHJvdXRlcyA9PiBbCiAgICBHb1JvdXRlKAogICAgICBwYXRoOiBBdXRoUm91dGVzLnNpZ25JbiwKICAgICAgYnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSA9PiBTaWduSW5TY3JlZW4ob25TaWduZWRJbjogb25TaWduZWRJbiksCiAgICApLAogICAgR29Sb3V0ZSgKICAgICAgcGF0aDogQXV0aFJvdXRlcy5zaWduVXAsCiAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCBzdGF0ZSkgPT4gUmVnaXN0ZXJTY3JlZW4ob25TaWduZWRVcDogb25TaWduZWRVcCksCiAgICApLAogICAgR29Sb3V0ZSgKICAgICAgcGF0aDogQXV0aFJvdXRlcy5mb3Jnb3RQYXNzd29yZCwKICAgICAgYnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSB7CiAgICAgICAgZmluYWwgZW1haWwgPSBzdGF0ZS51cmkucXVlcnlQYXJhbWV0ZXJzW2NvcmUuS2V5cy5lbWFpbF07CiAgICAgICAgcmV0dXJuIEZvcmdvdFBhc3N3b3JkU2NyZWVuKGVtYWlsOiBlbWFpbCk7CiAgICAgIH0sCiAgICApLAogIF07Cn0KCmZpbmFsIGNsYXNzIEdvQXV0aFJvdXRlIGV4dGVuZHMgR29Sb3V0ZSB7CiAgLy8vIENyZWF0ZSBhIHNlY3VyZSByb3V0ZSB0aGF0IHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uCiAgR29BdXRoUm91dGUoewogICAgcmVxdWlyZWQgc3VwZXIucGF0aCwKICAgIHJlcXVpcmVkIHN1cGVyLmJ1aWxkZXIsCiAgICBMaXN0PEdvUm91dGU+IHN1cGVyLnJvdXRlcyA9IGNvbnN0IFtdLAogICAgc3VwZXIucGFnZUJ1aWxkZXIsCiAgfSkgOiBzdXBlcigKICAgICAgICAgcmVkaXJlY3Q6IChjb250ZXh0LCBzdGF0ZSkgYXN5bmMgewogICAgICAgICAgIGZpbmFsIGF1dGhTZXJ2aWNlID0gZGkuZ2V0PEF1dGhTZXJ2aWNlPigpOwoKICAgICAgICAgICBpZiAoIWF1dGhTZXJ2aWNlLmlzU2lnbmVkSW4pIHsKICAgICAgICAgICAgIHJldHVybiBBdXRoUm91dGVzLnNpZ25JbjsKICAgICAgICAgICB9CgogICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICB9LAogICAgICAgKTsKfQo=", + "aW1wb3J0ICdwYWNrYWdlOmF1dGgvY29uc3RhbnRzL2luZGV4LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6YXV0aC9kYXRhL3NlcnZpY2VzL2F1dGhfc2VydmljZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmF1dGgvdWkvc2NyZWVucy9pbmRleC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmNvcmUvY29yZS5kYXJ0JyBhcyBjb3JlOwppbXBvcnQgJ3BhY2thZ2U6ZGkvZGkuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Z29fcm91dGVyL2dvX3JvdXRlci5kYXJ0JzsKCmNsYXNzIEF1dGhSb3V0ZXIgZXh0ZW5kcyBjb3JlLkNvcmVSb3V0ZXIgewogIGZpbmFsIEZ1bmN0aW9uKEJ1aWxkQ29udGV4dCBjb250ZXh0KSBvblNpZ25lZEluOwogIGZpbmFsIEZ1bmN0aW9uKEJ1aWxkQ29udGV4dCBjb250ZXh0KSBvblNpZ25lZFVwOwoKICBBdXRoUm91dGVyKHtyZXF1aXJlZCB0aGlzLm9uU2lnbmVkSW4sIHJlcXVpcmVkIHRoaXMub25TaWduZWRVcH0pOwoKICBAb3ZlcnJpZGUKICBMaXN0PFJvdXRlQmFzZT4gZ2V0IHJvdXRlcyA9PiBbCiAgICBHb1JvdXRlKAogICAgICBwYXRoOiBBdXRoUm91dGVzLnNpZ25JbiwKICAgICAgYnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSA9PiBTaWduSW5TY3JlZW4ob25TaWduZWRJbjogb25TaWduZWRJbiksCiAgICApLAogICAgR29Sb3V0ZSgKICAgICAgcGF0aDogQXV0aFJvdXRlcy5zaWduVXAsCiAgICAgIGJ1aWxkZXI6IChjb250ZXh0LCBzdGF0ZSkgPT4gUmVnaXN0ZXJTY3JlZW4ob25TaWduZWRVcDogb25TaWduZWRVcCksCiAgICApLAogICAgR29Sb3V0ZSgKICAgICAgcGF0aDogQXV0aFJvdXRlcy5mb3Jnb3RQYXNzd29yZCwKICAgICAgYnVpbGRlcjogKGNvbnRleHQsIHN0YXRlKSB7CiAgICAgICAgZmluYWwgZW1haWwgPSBzdGF0ZS51cmkucXVlcnlQYXJhbWV0ZXJzW2NvcmUuS2V5cy5lbWFpbF07CiAgICAgICAgcmV0dXJuIEZvcmdvdFBhc3N3b3JkU2NyZWVuKGVtYWlsOiBlbWFpbCk7CiAgICAgIH0sCiAgICApLAogIF07Cn0KCmZpbmFsIGNsYXNzIEdvQXV0aFJvdXRlIGV4dGVuZHMgR29Sb3V0ZSB7CiAgLy8vIENyZWF0ZSBhIHNlY3VyZSByb3V0ZSB0aGF0IHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uCiAgR29BdXRoUm91dGUoewogICAgcmVxdWlyZWQgc3VwZXIucGF0aCwKICAgIHJlcXVpcmVkIHN1cGVyLmJ1aWxkZXIsCiAgICBMaXN0PEdvUm91dGU+IHN1cGVyLnJvdXRlcyA9IGNvbnN0IFtdLAogICAgc3VwZXIucGFnZUJ1aWxkZXIsCiAgfSkgOiBzdXBlcigKICAgICAgICAgcmVkaXJlY3Q6IChjb250ZXh0LCBzdGF0ZSkgYXN5bmMgewogICAgICAgICAgIGlmICghZGkuaGFzPEF1dGhTZXJ2aWNlPigpKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICAgZmluYWwgYXV0aFNlcnZpY2UgPSBkaS5nZXQ8QXV0aFNlcnZpY2U+KCk7CgogICAgICAgICAgIGlmICghYXV0aFNlcnZpY2UuaXNTaWduZWRJbikgewogICAgICAgICAgICAgcmV0dXJuIEF1dGhSb3V0ZXMuc2lnbkluOwogICAgICAgICAgIH0KCiAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIH0sCiAgICAgICApOwp9Cg==", "type": "text" }, { @@ -272,7 +272,7 @@ final flutterProjectWithMonoRepoBundle = MasonBundle.fromJson({ "path": "{{ name.snakeCase() }}/features/{{dashboard_dir}}/lib/ui/screens/profile_tab_screen.dart", "data": - "e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6ZGVzaWduX3N5c3RlbS9kZXNpZ25fc3lzdGVtLmRhcnQnOwp7eyNkZXZlbG9wZXJ9fWltcG9ydCAncGFja2FnZTpkZXZlbG9wZXIvZGV2ZWxvcGVyLmRhcnQnOwp7ey9kZXZlbG9wZXJ9fXt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpkaS9kaS5kYXJ0JzsKe3svYXV0aH19aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7Cnt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpnb19yb3V0ZXIvZ29fcm91dGVyLmRhcnQnOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6bG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5kYXJ0JzsKCi8vLyBBY2NvdW50IHRhYjogaWRlbnRpdHksIHNldHRpbmdzIGVudHJ5IHBvaW50cywgc2lnbiBvdXQuCi8vLwovLy8gVGhpcyBpcyBkZWxpYmVyYXRlbHkgdGhpbiAtIGhhbmcgeW91ciByZWFsIHByb2ZpbGUgZmVhdHVyZSBvZmYgaXQuCmNsYXNzIFByb2ZpbGVUYWJTY3JlZW4gZXh0ZW5kcyBTdGF0ZWxlc3NXaWRnZXQgewogIGNvbnN0IFByb2ZpbGVUYWJTY3JlZW4oe3N1cGVyLmtleX0pOwoKICBAb3ZlcnJpZGUKICBXaWRnZXQgYnVpbGQoQnVpbGRDb250ZXh0IGNvbnRleHQpIHsKICAgIHJldHVybiBTY2FmZm9sZCgKICAgICAgYXBwQmFyOiBBcHBCYXIodGl0bGU6IFRleHQoc3RyaW5ncy5wcm9maWxlLnByb2ZpbGUpKSwKICAgICAgYm9keTogU2FmZUFyZWEoCiAgICAgICAgY2hpbGQ6IExpc3RWaWV3KAogICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgY29uc3QgU2l6ZWRCb3goaGVpZ2h0OiAxNiksCiAgICAgICAgICAgIHt7I2RldmVsb3Blcn19Ly8gVGFwIHRoZSBhdmF0YXIgNXggdG8gb3BlbiBkZXZlbG9wZXIgdG9vbHMuCiAgICAgICAgICAgIE9wZW5EZXZUb29sc1dyYXBwZXIoY2hpbGQ6IGNvbnN0IF9Qcm9maWxlQXZhdGFyKCkpLHt7L2RldmVsb3Blcn19e3teZGV2ZWxvcGVyfX1jb25zdCBfUHJvZmlsZUF2YXRhcigpLHt7L2RldmVsb3Blcn19CiAgICAgICAgICAgIGNvbnN0IFNpemVkQm94KGhlaWdodDogMjQpLAogICAgICAgICAgICBMaXN0VGlsZSgKICAgICAgICAgICAgICBsZWFkaW5nOiBjb25zdCBJY29uKE5hdmlnYXRpb25JY29ucy5zZXR0aW5ncyksCiAgICAgICAgICAgICAgdGl0bGU6IFRleHQoc3RyaW5ncy5wcm9maWxlLnNldHRpbmdzKSwKICAgICAgICAgICAgICB0cmFpbGluZzogY29uc3QgSWNvbihJY29ucy5jaGV2cm9uX3JpZ2h0KSwKICAgICAgICAgICAgICBvblRhcDogKCkge30sCiAgICAgICAgICAgICksCiAgICAgICAgICAgIHt7I2F1dGh9fUxpc3RUaWxlKAogICAgICAgICAgICAgIGxlYWRpbmc6IGNvbnN0IEljb24oSWNvbnMubG9nb3V0KSwKICAgICAgICAgICAgICB0aXRsZTogVGV4dChzdHJpbmdzLmF1dGguc2lnbl9vdXQpLAogICAgICAgICAgICAgIG9uVGFwOiAoKSA9PiBfY29uZmlybVNpZ25PdXQoY29udGV4dCksCiAgICAgICAgICAgICkse3svYXV0aH19CiAgICAgICAgICBdLAogICAgICAgICksCiAgICAgICksCiAgICApOwogIH0Ke3sjYXV0aH19CiAgRnV0dXJlPHZvaWQ+IF9jb25maXJtU2lnbk91dChCdWlsZENvbnRleHQgY29udGV4dCkgYXN5bmMgewogICAgZmluYWwgY29uZmlybWVkID0gYXdhaXQgc2hvd0RpYWxvZzxib29sPigKICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgYnVpbGRlcjogKGNvbnRleHQpID0+IEFsZXJ0RGlhbG9nKAogICAgICAgIHRpdGxlOiBUZXh0KHN0cmluZ3MuYXV0aC5zaWduX291dCksCiAgICAgICAgY29udGVudDogVGV4dChzdHJpbmdzLmF1dGguc2lnbl9vdXRfY29uZmlybWF0aW9uKSwKICAgICAgICBhY3Rpb25zOiBbCiAgICAgICAgICBUZXh0QnV0dG9uKAogICAgICAgICAgICBvblByZXNzZWQ6ICgpID0+IE5hdmlnYXRvci5vZihjb250ZXh0KS5wb3AoZmFsc2UpLAogICAgICAgICAgICBjaGlsZDogVGV4dChzdHJpbmdzLmdlbmVyaWMuY2FuY2VsKSwKICAgICAgICAgICksCiAgICAgICAgICBGaWxsZWRCdXR0b24oCiAgICAgICAgICAgIG9uUHJlc3NlZDogKCkgPT4gTmF2aWdhdG9yLm9mKGNvbnRleHQpLnBvcCh0cnVlKSwKICAgICAgICAgICAgY2hpbGQ6IFRleHQoc3RyaW5ncy5hdXRoLnNpZ25fb3V0KSwKICAgICAgICAgICksCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CgogICAgaWYgKGNvbmZpcm1lZCAhPSB0cnVlIHx8ICFjb250ZXh0Lm1vdW50ZWQpIHJldHVybjsKCiAgICBhd2FpdCBkaS5nZXQ8YXV0aC5BdXRoU2VydmljZT4oKS5zaWduT3V0KCk7CiAgICBpZiAoY29udGV4dC5tb3VudGVkKSBjb250ZXh0LmdvKGF1dGguQXV0aFJvdXRlcy5zaWduSW4pOwogIH0Ke3svYXV0aH19fQoKY2xhc3MgX1Byb2ZpbGVBdmF0YXIgZXh0ZW5kcyBTdGF0ZWxlc3NXaWRnZXQgewogIGNvbnN0IF9Qcm9maWxlQXZhdGFyKCk7CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgZmluYWwgY29sb3JTY2hlbWUgPSBUaGVtZS5vZihjb250ZXh0KS5jb2xvclNjaGVtZTsKICAgIHJldHVybiBDZW50ZXIoCiAgICAgIGNoaWxkOiBDaXJjbGVBdmF0YXIoCiAgICAgICAgcmFkaXVzOiA0NCwKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yU2NoZW1lLnByaW1hcnlDb250YWluZXIsCiAgICAgICAgY2hpbGQ6IEljb24oCiAgICAgICAgICBOYXZpZ2F0aW9uSWNvbnMucHJvZmlsZVNlbGVjdGVkLAogICAgICAgICAgc2l6ZTogNDQsCiAgICAgICAgICBjb2xvcjogY29sb3JTY2hlbWUub25QcmltYXJ5Q29udGFpbmVyLAogICAgICAgICksCiAgICAgICksCiAgICApOwogIH0KfQo=", + "e3sjYXV0aH19aW1wb3J0ICdwYWNrYWdlOmF1dGgvYXV0aC5kYXJ0JyBhcyBhdXRoOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6ZGVzaWduX3N5c3RlbS9kZXNpZ25fc3lzdGVtLmRhcnQnOwp7eyNkZXZlbG9wZXJ9fWltcG9ydCAncGFja2FnZTpkZXZlbG9wZXIvZGV2ZWxvcGVyLmRhcnQnOwp7ey9kZXZlbG9wZXJ9fXt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpkaS9kaS5kYXJ0JzsKe3svYXV0aH19aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7Cnt7I2F1dGh9fWltcG9ydCAncGFja2FnZTpnb19yb3V0ZXIvZ29fcm91dGVyLmRhcnQnOwp7ey9hdXRofX1pbXBvcnQgJ3BhY2thZ2U6bG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5kYXJ0JzsKCi8vLyBBY2NvdW50IHRhYjogaWRlbnRpdHksIHNldHRpbmdzIGVudHJ5IHBvaW50cywgc2lnbiBvdXQuCi8vLwovLy8gVGhpcyBpcyBkZWxpYmVyYXRlbHkgdGhpbiAtIGhhbmcgeW91ciByZWFsIHByb2ZpbGUgZmVhdHVyZSBvZmYgaXQuCmNsYXNzIFByb2ZpbGVUYWJTY3JlZW4gZXh0ZW5kcyBTdGF0ZWxlc3NXaWRnZXQgewogIGNvbnN0IFByb2ZpbGVUYWJTY3JlZW4oe3N1cGVyLmtleX0pOwoKICBAb3ZlcnJpZGUKICBXaWRnZXQgYnVpbGQoQnVpbGRDb250ZXh0IGNvbnRleHQpIHsKICAgIHJldHVybiBTY2FmZm9sZCgKICAgICAgYXBwQmFyOiBBcHBCYXIodGl0bGU6IFRleHQoc3RyaW5ncy5wcm9maWxlLnByb2ZpbGUpKSwKICAgICAgYm9keTogU2FmZUFyZWEoCiAgICAgICAgY2hpbGQ6IExpc3RWaWV3KAogICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgY29uc3QgU2l6ZWRCb3goaGVpZ2h0OiAxNiksCiAgICAgICAgICAgIHt7I2RldmVsb3Blcn19Ly8gVGFwIHRoZSBhdmF0YXIgNXggdG8gb3BlbiBkZXZlbG9wZXIgdG9vbHMuCiAgICAgICAgICAgIE9wZW5EZXZUb29sc1dyYXBwZXIoY2hpbGQ6IGNvbnN0IF9Qcm9maWxlQXZhdGFyKCkpLHt7L2RldmVsb3Blcn19e3teZGV2ZWxvcGVyfX1jb25zdCBfUHJvZmlsZUF2YXRhcigpLHt7L2RldmVsb3Blcn19CiAgICAgICAgICAgIGNvbnN0IFNpemVkQm94KGhlaWdodDogMjQpLAogICAgICAgICAgICBMaXN0VGlsZSgKICAgICAgICAgICAgICBsZWFkaW5nOiBjb25zdCBJY29uKE5hdmlnYXRpb25JY29ucy5zZXR0aW5ncyksCiAgICAgICAgICAgICAgdGl0bGU6IFRleHQoc3RyaW5ncy5wcm9maWxlLnNldHRpbmdzKSwKICAgICAgICAgICAgICB0cmFpbGluZzogY29uc3QgSWNvbihJY29ucy5jaGV2cm9uX3JpZ2h0KSwKICAgICAgICAgICAgICBvblRhcDogKCkge30sCiAgICAgICAgICAgICksCiAgICAgICAgICAgIHt7I2F1dGh9fUxpc3RUaWxlKAogICAgICAgICAgICAgIGxlYWRpbmc6IGNvbnN0IEljb24oSWNvbnMubG9nb3V0KSwKICAgICAgICAgICAgICB0aXRsZTogVGV4dChzdHJpbmdzLmF1dGguc2lnbl9vdXQpLAogICAgICAgICAgICAgIG9uVGFwOiAoKSA9PiBfY29uZmlybVNpZ25PdXQoY29udGV4dCksCiAgICAgICAgICAgICkse3svYXV0aH19CiAgICAgICAgICBdLAogICAgICAgICksCiAgICAgICksCiAgICApOwogIH0Ke3sjYXV0aH19CiAgRnV0dXJlPHZvaWQ+IF9jb25maXJtU2lnbk91dChCdWlsZENvbnRleHQgY29udGV4dCkgYXN5bmMgewogICAgZmluYWwgY29uZmlybWVkID0gYXdhaXQgc2hvd0RpYWxvZzxib29sPigKICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgYnVpbGRlcjogKGNvbnRleHQpID0+IEFsZXJ0RGlhbG9nKAogICAgICAgIHRpdGxlOiBUZXh0KHN0cmluZ3MuYXV0aC5zaWduX291dCksCiAgICAgICAgY29udGVudDogVGV4dChzdHJpbmdzLmF1dGguc2lnbl9vdXRfY29uZmlybWF0aW9uKSwKICAgICAgICBhY3Rpb25zOiBbCiAgICAgICAgICBUZXh0QnV0dG9uKAogICAgICAgICAgICBvblByZXNzZWQ6ICgpID0+IE5hdmlnYXRvci5vZihjb250ZXh0KS5wb3AoZmFsc2UpLAogICAgICAgICAgICBjaGlsZDogVGV4dChzdHJpbmdzLmdlbmVyaWMuY2FuY2VsKSwKICAgICAgICAgICksCiAgICAgICAgICBGaWxsZWRCdXR0b24oCiAgICAgICAgICAgIG9uUHJlc3NlZDogKCkgPT4gTmF2aWdhdG9yLm9mKGNvbnRleHQpLnBvcCh0cnVlKSwKICAgICAgICAgICAgY2hpbGQ6IFRleHQoc3RyaW5ncy5hdXRoLnNpZ25fb3V0KSwKICAgICAgICAgICksCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CgogICAgaWYgKGNvbmZpcm1lZCAhPSB0cnVlIHx8ICFjb250ZXh0Lm1vdW50ZWQpIHJldHVybjsKICAgIGlmICghZGkuaGFzPGF1dGguQXV0aFNlcnZpY2U+KCkpIHJldHVybjsKCiAgICBhd2FpdCBkaS5nZXQ8YXV0aC5BdXRoU2VydmljZT4oKS5zaWduT3V0KCk7CiAgICBpZiAoY29udGV4dC5tb3VudGVkKSBjb250ZXh0LmdvKGF1dGguQXV0aFJvdXRlcy5zaWduSW4pOwogIH0Ke3svYXV0aH19fQoKY2xhc3MgX1Byb2ZpbGVBdmF0YXIgZXh0ZW5kcyBTdGF0ZWxlc3NXaWRnZXQgewogIGNvbnN0IF9Qcm9maWxlQXZhdGFyKCk7CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgZmluYWwgY29sb3JTY2hlbWUgPSBUaGVtZS5vZihjb250ZXh0KS5jb2xvclNjaGVtZTsKICAgIHJldHVybiBDZW50ZXIoCiAgICAgIGNoaWxkOiBDaXJjbGVBdmF0YXIoCiAgICAgICAgcmFkaXVzOiA0NCwKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yU2NoZW1lLnByaW1hcnlDb250YWluZXIsCiAgICAgICAgY2hpbGQ6IEljb24oCiAgICAgICAgICBOYXZpZ2F0aW9uSWNvbnMucHJvZmlsZVNlbGVjdGVkLAogICAgICAgICAgc2l6ZTogNDQsCiAgICAgICAgICBjb2xvcjogY29sb3JTY2hlbWUub25QcmltYXJ5Q29udGFpbmVyLAogICAgICAgICksCiAgICAgICksCiAgICApOwogIH0KfQo=", "type": "text" }, { @@ -1400,7 +1400,7 @@ final flutterProjectWithMonoRepoBundle = MasonBundle.fromJson({ { "path": "{{ name.snakeCase() }}/README.md", "data": - "IyB7eyBuYW1lLnRpdGxlQ2FzZSgpIH19Cgp7e3tkZXNjcmlwdGlvbn19fQoKWyFbbm9uc3RvcF9jbGldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3RhcnRlZCUyMHdpdGgtbm9uc3RvcF9jbGktMTY2QzRFLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcHViLmRldi9wYWNrYWdlcy9ub25zdG9wX2NsaSkKWyFbbWVsb3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbWFpbnRhaW5lZCUyMHdpdGgtbWVsb3MtZjcwMGZmLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9pbnZlcnRhc2UvbWVsb3MpCgojIyBMYXlvdXQKCmBgYAphcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19ICAgICAgdGhlIGFwcGxpY2F0aW9uIHNoZWxsOiBib290c3RyYXAsIHJvdXRlciwgc3BsYXNoCmZlYXR1cmVzLyAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbCBzbGljZXMgKHVpICsgc3RhdGUgKyBkYXRhKQpwYWNrYWdlcy8gICAgICAgICAgICAgICAgICAgICAgc2hhcmVkIGNhcGFiaWxpdGllcwpwbHVnaW5zLyAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlIGludGVncmF0aW9ucwpgYGAKCkRlcGVuZGVuY2llcyBwb2ludCBpbndhcmQ6IGFwcHMgZGVwZW5kIG9uIGZlYXR1cmVzLCBmZWF0dXJlcyBkZXBlbmQgb24KcGFja2FnZXMsIHBhY2thZ2VzIGRlcGVuZCBvbiBub3RoaW5nIGFib3ZlIHRoZW0uCgojIyMgV2hhdCBpcyBhbHJlYWR5IHdpcmVkCgp8IE1vZHVsZSB8IFJvbGUgfAp8IC0tLSB8IC0tLSB8CnwgYHBhY2thZ2VzL2NvcmVgIHwgbG9nZ2VyLCBESSBib290c3RyYXAsIHJvdXRlIG9ic2VydmVycywgZXJyb3IgdHlwZXMsIEJMb0Mgb2JzZXJ2ZXIgfAp8IGBwYWNrYWdlcy9kaWAgfCBzZXJ2aWNlIGxvY2F0b3IgKEdldEl0KSBiZWhpbmQgYSBzbWFsbCBpbnRlcmZhY2UgfAp8IGBwYWNrYWdlcy9kZXNpZ25fc3lzdGVtYCB8IE1hdGVyaWFsIDMgdGhlbWUsIHNoYXJlZCBjb21wb25lbnRzLCB0b2FzdHMsIGxvYWRlcnMgfAp8IGBwYWNrYWdlcy9sb2NhbGl6YXRpb25gIHwgdHlwZS1zYWZlIHN0cmluZ3MgZ2VuZXJhdGVkIGZyb20gWUFNTCAoaTY5bikgfAp8IGBwYWNrYWdlcy91dGlsc2AgfCBkZXBlbmRlbmN5LWxpZ2h0IGhlbHBlcnMgfAp7eyNuZXR3b3JrfX18IGBwYWNrYWdlcy9uZXR3b3JrYCB8IERpbyBjbGllbnQsIGF1dGggKyBsb2dnaW5nIGludGVyY2VwdG9ycywgdHlwZWQgZXJyb3JzIHwKe3svbmV0d29ya319e3sjYW5hbHl0aWNzfX18IGBwYWNrYWdlcy9hbmFseXRpY3NgIHwgZXZlbnQgdHJhY2tpbmcgYmVoaW5kIGEgc3dhcHBhYmxlIGNsaWVudCB8Cnt7L2FuYWx5dGljc319e3sjY3Jhc2hseXRpY3N9fXwgYHBhY2thZ2VzL2NyYXNobHl0aWNzYCB8IGNyYXNoIGFuZCBub24tZmF0YWwgcmVwb3J0aW5nIHwKe3svY3Jhc2hseXRpY3N9fXt7I25vdGlmaWNhdGlvbnN9fXwgYHBhY2thZ2VzL25vdGlmaWNhdGlvbnNgIHwgRkNNLCBwZXJtaXNzaW9ucywgZGV2aWNlLXRva2VuIHJlZ2lzdHJhdGlvbiB8Cnt7L25vdGlmaWNhdGlvbnN9fXt7I2ZlYXR1cmVfZmxhZ3N9fXwgYHBhY2thZ2VzL2ZlYXR1cmVfZmxhZ3NgIHwgUmVtb3RlIENvbmZpZyBmbGFncyB3aXRoIGEgd2lkZ2V0IHdyYXBwZXIgfAp7ey9mZWF0dXJlX2ZsYWdzfX17eyNkZXZlbG9wZXJ9fXwgYHBhY2thZ2VzL2RldmVsb3BlcmAgfCBpbi1hcHAgZGV2IHRvb2xzLCByZWFjaGFibGUgYnkgYSBoaWRkZW4gNS10YXAgZ2VzdHVyZSB8Cnt7L2RldmVsb3Blcn19e3sjYXV0aH19fCBgZmVhdHVyZXMvYXV0aGAgfCBGaXJlYmFzZSBBdXRoIChlbWFpbCwgR29vZ2xlLCBBcHBsZSkgKyByb3V0ZSBndWFyZHMgfAp7ey9hdXRofX17eyNkYXNoYm9hcmR9fXwgYGZlYXR1cmVzL2Rhc2hib2FyZGAgfCBib3R0b20tbmF2aWdhdGlvbiBzaGVsbCB3aXRoIHN0YXJ0ZXIgdGFicyB8Cnt7L2Rhc2hib2FyZH19CgojIyBHZXR0aW5nIHN0YXJ0ZWQKCmBgYHNoCmRhcnQgcHViIGdsb2JhbCBhY3RpdmF0ZSBtZWxvcwptZWxvcyBib290c3RyYXAKYGBgCnt7I2ZpcmViYXNlfX0KIyMjIEZpcmViYXNlCgpUaGlzIHByb2plY3QgdXNlcyBGaXJlYmFzZSwgc28gY29uZmlndXJlIGl0IGJlZm9yZSB0aGUgZmlyc3QgcnVuIC0gdGhlCmdlbmVyYXRlZCBgbGliL2ZpcmViYXNlX29wdGlvbnMuZGFydGAgZGVsaWJlcmF0ZWx5IHRocm93cyB1bnRpbCB5b3UgZG86CgpgYGBzaApkYXJ0IHB1YiBnbG9iYWwgYWN0aXZhdGUgZmx1dHRlcmZpcmVfY2xpCmNkIGFwcHMve3tuYW1lLnNuYWtlQ2FzZSgpfX0KZmx1dHRlcmZpcmUgY29uZmlndXJlCmBgYAp7ey9maXJlYmFzZX19CiMjIyBSdW4KCmBgYHNoCmNkIGFwcHMve3tuYW1lLnNuYWtlQ2FzZSgpfX0KZmx1dHRlciBydW4gLS1kYXJ0LWRlZmluZT1CQVNFX1VSTD1odHRwczovL2FwaS5leGFtcGxlLmNvbQpgYGAKCkV2ZXJ5IGVudmlyb25tZW50IHZhbHVlIGlzIGEgYC0tZGFydC1kZWZpbmVgIHJlYWQgaW4KYHBhY2thZ2VzL2NvcmUvbGliL2NvbnN0YW50cy9lbnZpcm9ubWVudC5kYXJ0YC4gQWRkIG5ldyBvbmVzIHRoZXJlIHJhdGhlciB0aGFuCnNjYXR0ZXJpbmcgYFN0cmluZy5mcm9tRW52aXJvbm1lbnRgIGFyb3VuZCB0aGUgY29kZWJhc2UuCnt7I2ZpcmViYXNlfX0KVG8gcnVuIGFnYWluc3QgdGhlIEZpcmViYXNlIGVtdWxhdG9yIHN1aXRlLCBhZGQKYC0tZGFydC1kZWZpbmU9VVNFX0VNVUxBVE9SUz10cnVlYC4Ke3svZmlyZWJhc2V9fQojIyBEYXktdG8tZGF5CgpgYGBzaAptZWxvcyBsaW50ICAgICAgICAgICAgICMgZm9ybWF0ICsgYW5hbHl6ZSBldmVyeXRoaW5nCm1lbG9zIHRlc3QgICAgICAgICAgICAgIyBydW4gZXZlcnkgcGFja2FnZSdzIHRlc3RzCm1lbG9zIHJ1biBnZW5lcmF0ZSAgICAgIyBidWlsZF9ydW5uZXIgd2hlcmUgaXQgaXMgbmVlZGVkCm1lbG9zIHJ1biBnZW5lcmF0ZTppNjluICAjIHJlZ2VuZXJhdGUgc3RyaW5ncyBhZnRlciBlZGl0aW5nIG1lc3NhZ2VzLmk2OW4ueWFtbApgYGAKCiMjIEFkZGluZyB0byB0aGUgbW9ub3JlcG8KCmBgYHNoCm5vbnN0b3AgY3JlYXRlIHBhY2thZ2UgbXlfZmVhdHVyZSAtbyBmZWF0dXJlcwpub25zdG9wIGNyZWF0ZSBwYWNrYWdlIG15X3BhY2thZ2UgLW8gcGFja2FnZXMKbm9uc3RvcCBjcmVhdGUgYXBwIG15X3NlY29uZF9hcHAgLW8gYXBwcwpub25zdG9wIGNyZWF0ZSBwbHVnaW4gbXlfcGx1Z2luIC1vIHBsdWdpbnMKYGBgCgojIyBXaGVyZSB0byBzdGFydAoKMS4gUmVwbGFjZSB0aGUgcGxhY2Vob2xkZXIgdGFicyBpbiBgZmVhdHVyZXMvZGFzaGJvYXJkYC4KMi4gUHV0IHlvdXIgcHJvZHVjdCBzdHJpbmdzIGluIGBwYWNrYWdlcy9sb2NhbGl6YXRpb24vbGliL21lc3NhZ2VzLmk2OW4ueWFtbGAuCjMuIFNldCB0aGUgcGFsZXR0ZSBpbiBgcGFja2FnZXMvZGVzaWduX3N5c3RlbS9saWIvZ2VuZXJhdGVkL3RoZW1lLmRhcnRgLgo0LiBBZGQgZmVhdHVyZSBtb2R1bGVzIGFuZCBzcHJlYWQgdGhlaXIgcm91dGVzIGludG8KICAgYGFwcHMve3tuYW1lLnNuYWtlQ2FzZSgpfX0vbGliL3JvdXRlci9yb3V0ZXIuZGFydGAuCg==", + "IyB7eyBuYW1lLnRpdGxlQ2FzZSgpIH19Cgp7e3tkZXNjcmlwdGlvbn19fQoKWyFbbm9uc3RvcF9jbGldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3RhcnRlZCUyMHdpdGgtbm9uc3RvcF9jbGktMTY2QzRFLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcHViLmRldi9wYWNrYWdlcy9ub25zdG9wX2NsaSkKWyFbbWVsb3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbWFpbnRhaW5lZCUyMHdpdGgtbWVsb3MtZjcwMGZmLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9pbnZlcnRhc2UvbWVsb3MpCgojIyBMYXlvdXQKCmBgYAphcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19ICAgICAgdGhlIGFwcGxpY2F0aW9uIHNoZWxsOiBib290c3RyYXAsIHJvdXRlciwgc3BsYXNoCmZlYXR1cmVzLyAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbCBzbGljZXMgKHVpICsgc3RhdGUgKyBkYXRhKQpwYWNrYWdlcy8gICAgICAgICAgICAgICAgICAgICAgc2hhcmVkIGNhcGFiaWxpdGllcwpwbHVnaW5zLyAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlIGludGVncmF0aW9ucwpgYGAKCkRlcGVuZGVuY2llcyBwb2ludCBpbndhcmQ6IGFwcHMgZGVwZW5kIG9uIGZlYXR1cmVzLCBmZWF0dXJlcyBkZXBlbmQgb24KcGFja2FnZXMsIHBhY2thZ2VzIGRlcGVuZCBvbiBub3RoaW5nIGFib3ZlIHRoZW0uCgojIyMgV2hhdCBpcyBhbHJlYWR5IHdpcmVkCgp8IE1vZHVsZSB8IFJvbGUgfAp8IC0tLSB8IC0tLSB8CnwgYHBhY2thZ2VzL2NvcmVgIHwgbG9nZ2VyLCBESSBib290c3RyYXAsIHJvdXRlIG9ic2VydmVycywgZXJyb3IgdHlwZXMsIEJMb0Mgb2JzZXJ2ZXIgfAp8IGBwYWNrYWdlcy9kaWAgfCBzZXJ2aWNlIGxvY2F0b3IgKEdldEl0KSBiZWhpbmQgYSBzbWFsbCBpbnRlcmZhY2UgfAp8IGBwYWNrYWdlcy9kZXNpZ25fc3lzdGVtYCB8IE1hdGVyaWFsIDMgdGhlbWUsIHNoYXJlZCBjb21wb25lbnRzLCB0b2FzdHMsIGxvYWRlcnMgfAp8IGBwYWNrYWdlcy9sb2NhbGl6YXRpb25gIHwgdHlwZS1zYWZlIHN0cmluZ3MgZ2VuZXJhdGVkIGZyb20gWUFNTCAoaTY5bikgfAp8IGBwYWNrYWdlcy91dGlsc2AgfCBkZXBlbmRlbmN5LWxpZ2h0IGhlbHBlcnMgfAp7eyNuZXR3b3JrfX18IGBwYWNrYWdlcy9uZXR3b3JrYCB8IERpbyBjbGllbnQsIGF1dGggKyBsb2dnaW5nIGludGVyY2VwdG9ycywgdHlwZWQgZXJyb3JzIHwKe3svbmV0d29ya319e3sjYW5hbHl0aWNzfX18IGBwYWNrYWdlcy9hbmFseXRpY3NgIHwgZXZlbnQgdHJhY2tpbmcgYmVoaW5kIGEgc3dhcHBhYmxlIGNsaWVudCB8Cnt7L2FuYWx5dGljc319e3sjY3Jhc2hseXRpY3N9fXwgYHBhY2thZ2VzL2NyYXNobHl0aWNzYCB8IGNyYXNoIGFuZCBub24tZmF0YWwgcmVwb3J0aW5nIHwKe3svY3Jhc2hseXRpY3N9fXt7I25vdGlmaWNhdGlvbnN9fXwgYHBhY2thZ2VzL25vdGlmaWNhdGlvbnNgIHwgRkNNLCBwZXJtaXNzaW9ucywgZGV2aWNlLXRva2VuIHJlZ2lzdHJhdGlvbiB8Cnt7L25vdGlmaWNhdGlvbnN9fXt7I2ZlYXR1cmVfZmxhZ3N9fXwgYHBhY2thZ2VzL2ZlYXR1cmVfZmxhZ3NgIHwgUmVtb3RlIENvbmZpZyBmbGFncyB3aXRoIGEgd2lkZ2V0IHdyYXBwZXIgfAp7ey9mZWF0dXJlX2ZsYWdzfX17eyNkZXZlbG9wZXJ9fXwgYHBhY2thZ2VzL2RldmVsb3BlcmAgfCBpbi1hcHAgZGV2IHRvb2xzLCByZWFjaGFibGUgYnkgYSBoaWRkZW4gNS10YXAgZ2VzdHVyZSB8Cnt7L2RldmVsb3Blcn19e3sjYXV0aH19fCBgZmVhdHVyZXMvYXV0aGAgfCBGaXJlYmFzZSBBdXRoIChlbWFpbCwgR29vZ2xlLCBBcHBsZSkgKyByb3V0ZSBndWFyZHMgfAp7ey9hdXRofX17eyNkYXNoYm9hcmR9fXwgYGZlYXR1cmVzL2Rhc2hib2FyZGAgfCBib3R0b20tbmF2aWdhdGlvbiBzaGVsbCB3aXRoIHN0YXJ0ZXIgdGFicyB8Cnt7L2Rhc2hib2FyZH19CgojIyBHZXR0aW5nIHN0YXJ0ZWQKCmBgYHNoCmRhcnQgcHViIGdsb2JhbCBhY3RpdmF0ZSBtZWxvcwptZWxvcyBib290c3RyYXAKYGBgCnt7I2ZpcmViYXNlfX0KIyMjIEZpcmViYXNlCgpUaGlzIHByb2plY3QgdXNlcyBGaXJlYmFzZSwgc28gcnVuIHRoaXMgYmVmb3JlIHRob3NlIGZlYXR1cmVzIHdpbGwgd29yay4KVGhlIHJlc3Qgb2YgdGhlIGFwcCBzdGlsbCBib290cyB3aXRob3V0IGl0OgoKYGBgc2gKZGFydCBwdWIgZ2xvYmFsIGFjdGl2YXRlIGZsdXR0ZXJmaXJlX2NsaQpjZCBhcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19CmZsdXR0ZXJmaXJlIGNvbmZpZ3VyZQpgYGAKe3svZmlyZWJhc2V9fQojIyMgUnVuCgpgYGBzaApjZCBhcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19CmZsdXR0ZXIgcnVuIC0tZGFydC1kZWZpbmU9QkFTRV9VUkw9aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20KYGBgCgpFdmVyeSBlbnZpcm9ubWVudCB2YWx1ZSBpcyBhIGAtLWRhcnQtZGVmaW5lYCByZWFkIGluCmBwYWNrYWdlcy9jb3JlL2xpYi9jb25zdGFudHMvZW52aXJvbm1lbnQuZGFydGAuIEFkZCBuZXcgb25lcyB0aGVyZSByYXRoZXIgdGhhbgpzY2F0dGVyaW5nIGBTdHJpbmcuZnJvbUVudmlyb25tZW50YCBhcm91bmQgdGhlIGNvZGViYXNlLgp7eyNmaXJlYmFzZX19ClRvIHJ1biBhZ2FpbnN0IHRoZSBGaXJlYmFzZSBlbXVsYXRvciBzdWl0ZSwgYWRkCmAtLWRhcnQtZGVmaW5lPVVTRV9FTVVMQVRPUlM9dHJ1ZWAuCnt7L2ZpcmViYXNlfX0KIyMgRGF5LXRvLWRheQoKYGBgc2gKbWVsb3MgbGludCAgICAgICAgICAgICAjIGZvcm1hdCArIGFuYWx5emUgZXZlcnl0aGluZwptZWxvcyB0ZXN0ICAgICAgICAgICAgICMgcnVuIGV2ZXJ5IHBhY2thZ2UncyB0ZXN0cwptZWxvcyBydW4gZ2VuZXJhdGUgICAgICMgYnVpbGRfcnVubmVyIHdoZXJlIGl0IGlzIG5lZWRlZAptZWxvcyBydW4gZ2VuZXJhdGU6aTY5biAgIyByZWdlbmVyYXRlIHN0cmluZ3MgYWZ0ZXIgZWRpdGluZyBtZXNzYWdlcy5pNjluLnlhbWwKYGBgCgojIyBBZGRpbmcgdG8gdGhlIG1vbm9yZXBvCgpgYGBzaApub25zdG9wIGNyZWF0ZSBwYWNrYWdlIG15X2ZlYXR1cmUgLW8gZmVhdHVyZXMKbm9uc3RvcCBjcmVhdGUgcGFja2FnZSBteV9wYWNrYWdlIC1vIHBhY2thZ2VzCm5vbnN0b3AgY3JlYXRlIGFwcCBteV9zZWNvbmRfYXBwIC1vIGFwcHMKbm9uc3RvcCBjcmVhdGUgcGx1Z2luIG15X3BsdWdpbiAtbyBwbHVnaW5zCmBgYAoKIyMgV2hlcmUgdG8gc3RhcnQKCjEuIFJlcGxhY2UgdGhlIHBsYWNlaG9sZGVyIHRhYnMgaW4gYGZlYXR1cmVzL2Rhc2hib2FyZGAuCjIuIFB1dCB5b3VyIHByb2R1Y3Qgc3RyaW5ncyBpbiBgcGFja2FnZXMvbG9jYWxpemF0aW9uL2xpYi9tZXNzYWdlcy5pNjluLnlhbWxgLgozLiBTZXQgdGhlIHBhbGV0dGUgaW4gYHBhY2thZ2VzL2Rlc2lnbl9zeXN0ZW0vbGliL2dlbmVyYXRlZC90aGVtZS5kYXJ0YC4KNC4gQWRkIGZlYXR1cmUgbW9kdWxlcyBhbmQgc3ByZWFkIHRoZWlyIHJvdXRlcyBpbnRvCiAgIGBhcHBzL3t7bmFtZS5zbmFrZUNhc2UoKX19L2xpYi9yb3V0ZXIvcm91dGVyLmRhcnRgLgo=", "type": "text" } ], @@ -1432,13 +1432,13 @@ final flutterProjectWithMonoRepoBundle = MasonBundle.fromJson({ { "path": "commands/module_vars.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwoKLy8vIE9wdGlvbmFsIG1vZHVsZXMsIGVhY2ggb2Ygd2hpY2ggbWFwcyB0byBhIGRpcmVjdG9yeSBpbiB0aGUgYnJpY2suCi8vLwovLy8gQSBkaXJlY3RvcnkgbmFtZWQgYHt7PG1vZHVsZT5fZGlyfX1gIHJlbmRlcnMgdG8gYW4gZW1wdHkgcGF0aCBzZWdtZW50IHdoZW4KLy8vIHRoZSBtb2R1bGUgaXMgb2ZmLCBhbmQgbWFzb24gc2tpcHMgZXZlcnkgZmlsZSB1bmRlcm5lYXRoIGl0Lgpjb25zdCBvcHRpb25hbE1vZHVsZXMgPSA8U3RyaW5nPlsKICAnbmV0d29yaycsCiAgJ25vdGlmaWNhdGlvbnMnLAogICdhbmFseXRpY3MnLAogICdjcmFzaGx5dGljcycsCiAgJ2ZlYXR1cmVfZmxhZ3MnLAogICdkZXZlbG9wZXInLAogICdhdXRoJywKICAnZGFzaGJvYXJkJywKXTsKCi8vLyBNb2R1bGVzIHRoYXQgY2Fubm90IHdvcmsgd2l0aG91dCBgRmlyZWJhc2UuaW5pdGlhbGl6ZUFwcGAuCmNvbnN0IF9maXJlYmFzZUJhY2tlZE1vZHVsZXMgPSA8U3RyaW5nPlsKICAnbm90aWZpY2F0aW9ucycsCiAgJ2FuYWx5dGljcycsCiAgJ2NyYXNobHl0aWNzJywKICAnZmVhdHVyZV9mbGFncycsCiAgJ2F1dGgnLAogICdmaXJlc3RvcmUnLApdOwoKYm9vbCBfZmxhZyhIb29rQ29udGV4dCBjb250ZXh0LCBTdHJpbmcga2V5KSA9PiBjb250ZXh0LnZhcnNba2V5XSA9PSB0cnVlOwoKLy8vIE5vcm1hbGlzZXMgdGhlIG1vZHVsZSBhbnN3ZXJzIGFuZCBkZXJpdmVzIGV2ZXJ5dGhpbmcgdGhlIHRlbXBsYXRlcyByZWFkLgp2b2lkIHJlc29sdmVNb2R1bGVWYXJzKEhvb2tDb250ZXh0IGNvbnRleHQpIHsKICAvLyBBIG1vZHVsZSBjYW4gYmUgaW1wbGllZCBieSBhbm90aGVyIChkZXYgdG9vbHMgcmVhZCBmZWF0dXJlIGZsYWdzKSwgc28KICAvLyByZXNvbHZlIGltcGxpY2F0aW9ucyBiZWZvcmUgZGVyaXZpbmcgYW55dGhpbmcgZnJvbSB0aGVtLiBgbm9uc3RvcCBjcmVhdGVgCiAgLy8gYWxyZWFkeSBkb2VzIHRoaXMgaW4gbGliL2NvbW1hbmRzL2NyZWF0ZS9tb2R1bGVzLmRhcnQ7IGl0IGlzIHJlcGVhdGVkIGhlcmUKICAvLyBzbyBgbWFzb24gbWFrZWAgb24gaXRzIG93biBzdGlsbCBwcm9kdWNlcyBhIHByb2plY3QgdGhhdCBjb21waWxlcy4KICBpZiAoX2ZsYWcoY29udGV4dCwgJ2RldmVsb3BlcicpKSBjb250ZXh0LnZhcnNbJ2ZlYXR1cmVfZmxhZ3MnXSA9IHRydWU7CiAgaWYgKF9mbGFnKGNvbnRleHQsICdub3RpZmljYXRpb25zJykpIGNvbnRleHQudmFyc1snbmV0d29yayddID0gdHJ1ZTsKCiAgZm9yIChmaW5hbCBtb2R1bGUgaW4gb3B0aW9uYWxNb2R1bGVzKSB7CiAgICBmaW5hbCBlbmFibGVkID0gX2ZsYWcoY29udGV4dCwgbW9kdWxlKTsKICAgIGNvbnRleHQudmFyc1ttb2R1bGVdID0gZW5hYmxlZDsKICAgIGNvbnRleHQudmFyc1snJHttb2R1bGV9X2RpciddID0gZW5hYmxlZCA/IG1vZHVsZSA6ICcnOwogIH0KCiAgY29udGV4dC52YXJzWydmaXJlc3RvcmUnXSA9IF9mbGFnKGNvbnRleHQsICdmaXJlc3RvcmUnKTsKICBmaW5hbCB1c2VzRmlyZWJhc2UgPQogICAgICBfZmlyZWJhc2VCYWNrZWRNb2R1bGVzLmFueSgobW9kdWxlKSA9PiBfZmxhZyhjb250ZXh0LCBtb2R1bGUpKTsKICBjb250ZXh0LnZhcnNbJ2ZpcmViYXNlJ10gPSB1c2VzRmlyZWJhc2U7CgogIC8vIFRoZSBib290IHRlc3QgcnVucyB0aGUgcmVhbCBib290c3RyYXAsIHdoaWNoIGEgRmlyZWJhc2UgcHJvamVjdCBjYW5ub3QgZG8KICAvLyB1bnRpbCBgZmx1dHRlcmZpcmUgY29uZmlndXJlYCBoYXMgYmVlbiBydW4uIEFuIGVtcHR5IGZpbGUgbmFtZSBtYWtlcyBtYXNvbgogIC8vIHNraXAgdGhlIGZpbGUsIHNvIHRob3NlIHByb2plY3RzIHNpbXBseSBzaGlwIHdpdGhvdXQgaXQuCiAgY29udGV4dC52YXJzWydzbW9rZV90ZXN0X2ZpbGUnXSA9IHVzZXNGaXJlYmFzZSA/ICcnIDogJ3Ntb2tlX3Rlc3QuZGFydCc7Cn0K", + "aW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwoKLy8vIE9wdGlvbmFsIG1vZHVsZXMsIGVhY2ggb2Ygd2hpY2ggbWFwcyB0byBhIGRpcmVjdG9yeSBpbiB0aGUgYnJpY2suCi8vLwovLy8gQSBkaXJlY3RvcnkgbmFtZWQgYHt7PG1vZHVsZT5fZGlyfX1gIHJlbmRlcnMgdG8gYW4gZW1wdHkgcGF0aCBzZWdtZW50IHdoZW4KLy8vIHRoZSBtb2R1bGUgaXMgb2ZmLCBhbmQgbWFzb24gc2tpcHMgZXZlcnkgZmlsZSB1bmRlcm5lYXRoIGl0Lgpjb25zdCBvcHRpb25hbE1vZHVsZXMgPSA8U3RyaW5nPlsKICAnbmV0d29yaycsCiAgJ25vdGlmaWNhdGlvbnMnLAogICdhbmFseXRpY3MnLAogICdjcmFzaGx5dGljcycsCiAgJ2ZlYXR1cmVfZmxhZ3MnLAogICdkZXZlbG9wZXInLAogICdhdXRoJywKICAnZGFzaGJvYXJkJywKXTsKCi8vLyBNb2R1bGVzIHRoYXQgY2Fubm90IHdvcmsgd2l0aG91dCBgRmlyZWJhc2UuaW5pdGlhbGl6ZUFwcGAuCmNvbnN0IF9maXJlYmFzZUJhY2tlZE1vZHVsZXMgPSA8U3RyaW5nPlsKICAnbm90aWZpY2F0aW9ucycsCiAgJ2FuYWx5dGljcycsCiAgJ2NyYXNobHl0aWNzJywKICAnZmVhdHVyZV9mbGFncycsCiAgJ2F1dGgnLAogICdmaXJlc3RvcmUnLApdOwoKYm9vbCBfZmxhZyhIb29rQ29udGV4dCBjb250ZXh0LCBTdHJpbmcga2V5KSA9PiBjb250ZXh0LnZhcnNba2V5XSA9PSB0cnVlOwoKLy8vIE5vcm1hbGlzZXMgdGhlIG1vZHVsZSBhbnN3ZXJzIGFuZCBkZXJpdmVzIGV2ZXJ5dGhpbmcgdGhlIHRlbXBsYXRlcyByZWFkLgp2b2lkIHJlc29sdmVNb2R1bGVWYXJzKEhvb2tDb250ZXh0IGNvbnRleHQpIHsKICAvLyBBIG1vZHVsZSBjYW4gYmUgaW1wbGllZCBieSBhbm90aGVyIChkZXYgdG9vbHMgcmVhZCBmZWF0dXJlIGZsYWdzKSwgc28KICAvLyByZXNvbHZlIGltcGxpY2F0aW9ucyBiZWZvcmUgZGVyaXZpbmcgYW55dGhpbmcgZnJvbSB0aGVtLiBgbm9uc3RvcCBjcmVhdGVgCiAgLy8gYWxyZWFkeSBkb2VzIHRoaXMgaW4gbGliL2NvbW1hbmRzL2NyZWF0ZS9tb2R1bGVzLmRhcnQ7IGl0IGlzIHJlcGVhdGVkIGhlcmUKICAvLyBzbyBgbWFzb24gbWFrZWAgb24gaXRzIG93biBzdGlsbCBwcm9kdWNlcyBhIHByb2plY3QgdGhhdCBjb21waWxlcy4KICBpZiAoX2ZsYWcoY29udGV4dCwgJ2RldmVsb3BlcicpKSBjb250ZXh0LnZhcnNbJ2ZlYXR1cmVfZmxhZ3MnXSA9IHRydWU7CiAgaWYgKF9mbGFnKGNvbnRleHQsICdub3RpZmljYXRpb25zJykpIGNvbnRleHQudmFyc1snbmV0d29yayddID0gdHJ1ZTsKCiAgZm9yIChmaW5hbCBtb2R1bGUgaW4gb3B0aW9uYWxNb2R1bGVzKSB7CiAgICBmaW5hbCBlbmFibGVkID0gX2ZsYWcoY29udGV4dCwgbW9kdWxlKTsKICAgIGNvbnRleHQudmFyc1ttb2R1bGVdID0gZW5hYmxlZDsKICAgIGNvbnRleHQudmFyc1snJHttb2R1bGV9X2RpciddID0gZW5hYmxlZCA/IG1vZHVsZSA6ICcnOwogIH0KCiAgY29udGV4dC52YXJzWydmaXJlc3RvcmUnXSA9IF9mbGFnKGNvbnRleHQsICdmaXJlc3RvcmUnKTsKICBmaW5hbCB1c2VzRmlyZWJhc2UgPQogICAgICBfZmlyZWJhc2VCYWNrZWRNb2R1bGVzLmFueSgobW9kdWxlKSA9PiBfZmxhZyhjb250ZXh0LCBtb2R1bGUpKTsKICBjb250ZXh0LnZhcnNbJ2ZpcmViYXNlJ10gPSB1c2VzRmlyZWJhc2U7CiAgLy8gRW1wdHkgcGF0aCBzZWdtZW50IOKGkiBtYXNvbiBza2lwcyB0aGUgZmlsZSwgc28gYSBwcm9qZWN0IHdpdGggbm8gRmlyZWJhc2UKICAvLyBtb2R1bGVzIG5ldmVyIHNoaXBzIGEgcGxhY2Vob2xkZXIgYGZpcmViYXNlX29wdGlvbnMuZGFydGAuCiAgY29udGV4dC52YXJzWydmaXJlYmFzZV9vcHRpb25zX2ZpbGUnXSA9CiAgICAgIHVzZXNGaXJlYmFzZSA/ICdmaXJlYmFzZV9vcHRpb25zLmRhcnQnIDogJyc7CgogIC8vIFRoZSBib290IHRlc3QgcnVucyB0aGUgcmVhbCBib290c3RyYXAuIEZpcmViYXNlIHByb2plY3RzIGNhbiBib290IGJlZm9yZQogIC8vIGBmbHV0dGVyZmlyZSBjb25maWd1cmVgIG5vdyAodGhvc2UgbW9kdWxlcyBhcmUgc2tpcHBlZCksIGJ1dCBhZnRlcgogIC8vIGNvbmZpZ3VyZSB0aGUgc3BsYXNoIG1heSBsYW5kIG9uIHNpZ24taW4gaW5zdGVhZCBvZiB0aGUgZGFzaGJvYXJkLCBzbwogIC8vIHRoZXkgc3RpbGwgZG9uJ3Qgc2hpcCB0aGlzIGZpbGUuCiAgY29udGV4dC52YXJzWydzbW9rZV90ZXN0X2ZpbGUnXSA9IHVzZXNGaXJlYmFzZSA/ICcnIDogJ3Ntb2tlX3Rlc3QuZGFydCc7Cn0K", "type": "text" }, { "path": "commands/next_steps_command.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmNsaV9jb3JlL2NsaV9jb3JlLmRhcnQnIHNob3cgQ2xpQ29tbWFuZDsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwoKLy8vIFByaW50cyB0aGUgaGFuZGZ1bCBvZiB0aGluZ3MgdGhlIGdlbmVyYXRvciBjYW5ub3QgZG8gZm9yIHlvdS4KZmluYWwgY2xhc3MgTmV4dFN0ZXBzQ29tbWFuZCBleHRlbmRzIENsaUNvbW1hbmQgewogIEBvdmVycmlkZQogIEZ1dHVyZTx2b2lkPiBydW4oSG9va0NvbnRleHQgY29udGV4dCkgYXN5bmMgewogICAgZmluYWwgU3RyaW5nIG5hbWUgPSBjb250ZXh0LnZhcnNbJ25hbWUnXTsKICAgIGZpbmFsIGFwcE5hbWUgPSBuYW1lLnNuYWtlQ2FzZTsKICAgIGZpbmFsIGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyOwoKICAgIGlmIChjb250ZXh0LnZhcnNbJ2ZpcmViYXNlJ10gPT0gdHJ1ZSkgewogICAgICBsb2dnZXIKICAgICAgICAuLmluZm8oJycpCiAgICAgICAgLi53YXJuKCdGaXJlYmFzZSBtb2R1bGVzIGFyZSBlbmFibGVkIGJ1dCBub3QgY29uZmlndXJlZCB5ZXQuJykKICAgICAgICAuLmluZm8oJyAgZGFydCBwdWIgZ2xvYmFsIGFjdGl2YXRlIGZsdXR0ZXJmaXJlX2NsaScpCiAgICAgICAgLi5pbmZvKCcgIGNkICRhcHBOYW1lL2FwcHMvJGFwcE5hbWUgJiYgZmx1dHRlcmZpcmUgY29uZmlndXJlJykKICAgICAgICAuLmluZm8oCiAgICAgICAgICAnICAodW50aWwgdGhlbiBsaWIvZmlyZWJhc2Vfb3B0aW9ucy5kYXJ0IHRocm93cyBvbiBwdXJwb3NlKScsCiAgICAgICAgKTsKICAgIH0KCiAgICBsb2dnZXIKICAgICAgLi5pbmZvKCcnKQogICAgICAuLmluZm8oJ1J1biB0aGUgYXBwOicpCiAgICAgIC4uaW5mbygnICBjZCAkYXBwTmFtZS9hcHBzLyRhcHBOYW1lICYmIGZsdXR0ZXIgcnVuJyk7CiAgfQp9Cg==", + "aW1wb3J0ICdwYWNrYWdlOmNsaV9jb3JlL2NsaV9jb3JlLmRhcnQnIHNob3cgQ2xpQ29tbWFuZDsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwoKLy8vIFByaW50cyB0aGUgaGFuZGZ1bCBvZiB0aGluZ3MgdGhlIGdlbmVyYXRvciBjYW5ub3QgZG8gZm9yIHlvdS4KZmluYWwgY2xhc3MgTmV4dFN0ZXBzQ29tbWFuZCBleHRlbmRzIENsaUNvbW1hbmQgewogIEBvdmVycmlkZQogIEZ1dHVyZTx2b2lkPiBydW4oSG9va0NvbnRleHQgY29udGV4dCkgYXN5bmMgewogICAgZmluYWwgU3RyaW5nIG5hbWUgPSBjb250ZXh0LnZhcnNbJ25hbWUnXTsKICAgIGZpbmFsIGFwcE5hbWUgPSBuYW1lLnNuYWtlQ2FzZTsKICAgIGZpbmFsIGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyOwoKICAgIGlmIChjb250ZXh0LnZhcnNbJ2ZpcmViYXNlJ10gPT0gdHJ1ZSkgewogICAgICBsb2dnZXIKICAgICAgICAuLmluZm8oJycpCiAgICAgICAgLi53YXJuKCdGaXJlYmFzZSBtb2R1bGVzIGFyZSBlbmFibGVkIGJ1dCBub3QgY29uZmlndXJlZCB5ZXQuJykKICAgICAgICAuLmluZm8oJyAgZGFydCBwdWIgZ2xvYmFsIGFjdGl2YXRlIGZsdXR0ZXJmaXJlX2NsaScpCiAgICAgICAgLi5pbmZvKCcgIGNkICRhcHBOYW1lL2FwcHMvJGFwcE5hbWUgJiYgZmx1dHRlcmZpcmUgY29uZmlndXJlJykKICAgICAgICAuLmluZm8oCiAgICAgICAgICAnICAodGhlIGFwcCBzdGlsbCBydW5zOyBGaXJlYmFzZSBmZWF0dXJlcyBzdGF5IG9mZiB1bnRpbCB0aGVuKScsCiAgICAgICAgKTsKICAgIH0KCiAgICBsb2dnZXIKICAgICAgLi5pbmZvKCcnKQogICAgICAuLmluZm8oJ1J1biB0aGUgYXBwOicpCiAgICAgIC4uaW5mbygnICBjZCAkYXBwTmFtZS9hcHBzLyRhcHBOYW1lICYmIGZsdXR0ZXIgcnVuJyk7CiAgfQp9Cg==", "type": "text" }, { diff --git a/packages/nonstop_cli/lib/version.dart b/packages/nonstop_cli/lib/version.dart index 0aff82a..55e6e18 100644 --- a/packages/nonstop_cli/lib/version.dart +++ b/packages/nonstop_cli/lib/version.dart @@ -1,4 +1,4 @@ // Generated code. Do not modify. // It is generated by the melos-pre-commit-version hook. -const packageVersion = '0.0.8+1'; +const packageVersion = '0.0.8+2'; diff --git a/packages/nonstop_cli/pubspec.yaml b/packages/nonstop_cli/pubspec.yaml index 057e4ff..f5e3601 100644 --- a/packages/nonstop_cli/pubspec.yaml +++ b/packages/nonstop_cli/pubspec.yaml @@ -1,6 +1,6 @@ name: nonstop_cli description: A command-line interface for the Flutter Framework to generate Flutter projects, features and schemas. -version: 0.0.8+1 +version: 0.0.8+2 homepage: https://github.com/nonstopio/flutter_forge documentation: https://github.com/nonstopio/flutter_forge/tree/main/packages/nonstop_cli repository: https://github.com/nonstopio/flutter_forge/tree/main/packages/nonstop_cli