Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- `melos exec -- flutter pub upgrade` - Upgrade all packages in the workspace
- `melos run update_nonstop_cli_version` - Update CLI version across packages
- `melos run update_nonstop_cli_bundles` - Update CLI bundles
- `melos sync:readme` - Sync standardized README sections across all packages

### Just Commands (Alternative)
- `just upgrade_pub_packages` - Upgrade Flutter and Dart packages across workspace
Expand All @@ -25,7 +26,7 @@ This is a Flutter/Dart monorepo managed by Melos with the following structure:
### Core Organization
- **packages/**: Dart packages (libraries, utilities, CLI tools)
- **plugins/**: Flutter plugins (platform-specific functionality)
- **tools/**: Maintenance scripts for CLI version and bundle updates
- **tools/**: Maintenance scripts for CLI version, bundle updates, and README standardization

### Key Packages
- **nonstop_cli**: CLI tool with Mason bricks for project generation
Expand Down Expand Up @@ -65,6 +66,33 @@ This is a Flutter/Dart monorepo managed by Melos with the following structure:
- Includes doctor command for environment validation
- Template bundles are auto-updated via tools scripts

## README Standardization (readme_sync)

The repository uses an automated tool to maintain consistency across package READMEs.

### How It Works
- Common sections (headers, contributing, social links, etc.) are defined in centralized templates
- READMEs use HTML comment markers to identify managed sections: `<!-- BEGIN:section-id -->` and `<!-- END:section-id -->`
- Only content between markers is synced; package-specific content is preserved
- Templates support variable substitution (package name, author, repo path, etc.)

### Usage
- **Sync all packages**: `melos sync:readme`
- **Sync specific package**: `dart run tools/readme_sync/readme_sync.dart --package package_name`
- **Preview changes**: `dart run tools/readme_sync/readme_sync.dart --dry-run`
- **Validate markers**: `dart run tools/readme_sync/readme_sync.dart --validate`

### Configuration Files
- **templates/sections.yaml**: Centralized section templates
- **config/packages.yaml**: Package-specific variables and section assignments
- See `tools/readme_sync/README.md` for detailed documentation
- See `tools/readme_sync/EXAMPLE_README.md` for marker placement examples

### When to Use
- After updating common content (contributing guidelines, social links, etc.)
- When adding a new package to ensure consistent README structure
- Before releases to ensure all READMEs are synchronized

## Important Notes

- This is a workspace managed by Melos - always run commands from the root
Expand Down
3 changes: 3 additions & 0 deletions melos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,6 @@ scripts:
run: dart run tools/update_nonstop_cli_version.dart
update_nonstop_cli_bundles:
run: dart run tools/update_nonstop_cli_bundles.dart
sync:readme:
description: "Sync README sections across all packages"
run: dart run tools/readme_sync/readme_sync.dart
58 changes: 44 additions & 14 deletions packages/connectivity_wrapper/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- BEGIN:nonstop-header — auto-generated, do not edit. Run `melos sync:readme` to update -->
<p align="center">
<a href="https://nonstopio.com">
<img src="https://github.com/nonstopio.png" alt="Nonstop Logo" height="128" />
Expand All @@ -9,11 +10,14 @@
<a href="https://nonstopio.com">Website</a>
</p>
</p>
<!-- END:nonstop-header -->

# connectivity_wrapper

<!-- BEGIN:badges — auto-generated, do not edit. Run `melos sync:readme` to update -->
[![Build Status](https://img.shields.io/pub/v/connectivity_wrapper.svg)](https://github.com/nonstopio/flutter_forge/tree/main/packages/connectivity_wrapper)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
<!-- END:badges -->

This plugin allows Flutter apps provide feedback on your app when it's not connected to it, or when there's no connection.

Expand All @@ -28,13 +32,31 @@ This plugin allows Flutter apps provide feedback on your app when it's not conne
- Android Gradle Plugin >=8.3.0
- Gradle wrapper >=8.4

## Usage
<!-- BEGIN:getting-started — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Getting Started

1. Open your project's `pubspec.yaml` file.
2. Add the `connectivity_wrapper` package to your dependencies, replacing `[version]` with the latest version:
```yaml
dependencies:
flutter:
sdk: flutter
connectivity_wrapper: ^[version]
```
3. Run `flutter pub get` to fetch the package.
<!-- END:getting-started -->

<!-- BEGIN:import-package — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Import the Package

```dart
import 'package:connectivity_wrapper/connectivity_wrapper.dart';
```
<!-- END:import-package -->

## Usage

Check if device is connected to internet or not
Check if device is connected to internet or not

```dart
...
Expand Down Expand Up @@ -191,7 +213,7 @@ body: ConnectivityWidgetWrapper(
<img src="https://cdn-images-1.medium.com/max/600/1*OeVKSyfV2X9VhupXRdwb2g.png" alt="Image 3" style="width: 280px; object-fit: cover; aspect-ratio: 9/16;">

## Custom Alignment and Disable User Interaction


```dart
...
Expand Down Expand Up @@ -290,6 +312,9 @@ class NetworkAwareWidgetScreen extends StatelessWidget {
whether you can reliably make a network connection. Always guard your app code
against timeouts and errors that might come from the network layer.

---

<!-- BEGIN:contributing — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Contributing

We welcome contributions in various forms:
Expand All @@ -301,6 +326,7 @@ We welcome contributions in various forms:
- Sending Pull Requests is greatly appreciated!

A big thank you to all our contributors! 🙌
<!-- END:contributing -->

<br></br>
<div align="center">
Expand All @@ -311,34 +337,38 @@ A big thank you to all our contributors! 🙌

---

<!-- BEGIN:connect — auto-generated, do not edit. Run `melos sync:readme` to update -->
## 🔗 Connect with NonStop

<div align="center">

**Stay connected and get the latest updates!**

[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/company/nonstop-io)
[![X.com](https://img.shields.io/badge/X-000000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/NonStopio)
[![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/nonstopio_technologies/)
[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/@NonStopioTechnology)
[![Email](https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:contact@nonstopio.com)

</div>
<p align="center">
<a href="https://www.linkedin.com/company/nonstopio"><img src="https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=Linkedin&logoColor=white" alt="LinkedIn"></a>
<a href="https://x.com/nonstopio"><img src="https://img.shields.io/badge/-X.com-000000?style=flat-square&logo=X&logoColor=white" alt="X.com"></a>
<a href="https://www.instagram.com/nonstopio/"><img src="https://img.shields.io/badge/-Instagram-E4405F?style=flat-square&logo=Instagram&logoColor=white" alt="Instagram"></a>
<a href="https://www.youtube.com/@nonstopio"><img src="https://img.shields.io/badge/-YouTube-FF0000?style=flat-square&logo=YouTube&logoColor=white" alt="YouTube"></a>
<a href="mailto:hello@nonstopio.com"><img src="https://img.shields.io/badge/-Email-D14836?style=flat-square&logo=Gmail&logoColor=white" alt="Email"></a>
</p>
<!-- END:connect -->

---

<!-- BEGIN:star-footer — auto-generated, do not edit. Run `melos sync:readme` to update -->
<div align="center">

> ⭐ Star us on [GitHub](https://github.com/nonstopio/flutter_forge) if this helped you!

</div>
<!-- END:star-footer -->

<!-- BEGIN:license — auto-generated, do not edit. Run `melos sync:readme` to update -->
## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
<!-- END:license -->

<!-- BEGIN:founded-by — auto-generated, do not edit. Run `melos sync:readme` to update -->
<div align="center">

> 🎉 [Founded by Ajay Kumar](https://github.com/ProjectAJ14) 🎉**

</div>
<!-- END:founded-by -->
77 changes: 53 additions & 24 deletions packages/dzod/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- BEGIN:nonstop-header — auto-generated, do not edit. Run `melos sync:readme` to update -->
<p align="center">
<a href="https://nonstopio.com">
<img src="https://github.com/nonstopio.png" alt="Nonstop Logo" height="128" />
Expand All @@ -9,23 +10,18 @@
<a href="https://nonstopio.com">Website</a>
</p>
</p>
<!-- END:nonstop-header -->

<h1 align="center">🔐 Dzod</h1>

<p align="center">
<strong>⚡ Enterprise-grade Dart schema validation library</strong>
</p>

<p align="center">
<a href="https://pub.dev/packages/dzod"><img src="https://img.shields.io/pub/v/dzod.svg?label=dzod&logo=dart&color=blue&style=for-the-badge" alt="pub package"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-purple.svg?style=for-the-badge" alt="License"></a>
<a href="https://flutter.dev"><img src="https://img.shields.io/badge/Flutter-Ready-02569B.svg?style=for-the-badge&logo=flutter" alt="Flutter"></a>
</p>

<p align="center">
<img src="https://img.shields.io/badge/Test_Coverage-99.3%25-darkgreen.svg?style=for-the-badge" alt="Test Coverage">
<img src="https://img.shields.io/badge/Tests-1588+-blue.svg?style=for-the-badge" alt="Tests">
</p>
<!-- BEGIN:badges — auto-generated, do not edit. Run `melos sync:readme` to update -->
[![Build Status](https://img.shields.io/pub/v/dzod.svg)](https://github.com/nonstopio/flutter_forge/tree/main/packages/dzod)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
<!-- END:badges -->

---

Expand All @@ -41,12 +37,29 @@ Dzod is an **enterprise-grade** Dart schema validation library heavily inspired

---

## 🚀 Quick Start
<!-- BEGIN:getting-started — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Getting Started

1. Open your project's `pubspec.yaml` file.
2. Add the `dzod` package to your dependencies, replacing `[version]` with the latest version:
```yaml
dependencies:
flutter:
sdk: flutter
dzod: ^[version]
```
3. Run `flutter pub get` to fetch the package.
<!-- END:getting-started -->

<!-- BEGIN:import-package — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Import the Package

```bash
# Add to your pubspec.yaml
dart pub add dzod
```dart
import 'package:dzod/dzod.dart';
```
<!-- END:import-package -->

## 🚀 Quick Start

### Example 1: Basic User Schema Validation

Expand Down Expand Up @@ -1048,34 +1061,50 @@ for (final entry in userSchema.shape.entries) {

---

## 🔗 Connect with NonStop
<!-- BEGIN:contributing — auto-generated, do not edit. Run `melos sync:readme` to update -->
## Contributing

<div align="center">
We welcome contributions in various forms:

**Stay connected and get the latest updates!**
- Proposing new features or enhancements.
- Reporting and fixing bugs.
- Engaging in discussions to help make decisions.
- Improving documentation, as it is essential.
- Sending Pull Requests is greatly appreciated!

[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/company/nonstop-io)
[![X.com](https://img.shields.io/badge/X-000000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/NonStopio)
[![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/nonstopio_technologies/)
[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/@NonStopioTechnology)
[![Email](https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:contact@nonstopio.com)
A big thank you to all our contributors! 🙌
<!-- END:contributing -->

</div>
<!-- BEGIN:connect — auto-generated, do not edit. Run `melos sync:readme` to update -->
## 🔗 Connect with NonStop

---
<p align="center">
<a href="https://www.linkedin.com/company/nonstopio"><img src="https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=Linkedin&logoColor=white" alt="LinkedIn"></a>
<a href="https://x.com/nonstopio"><img src="https://img.shields.io/badge/-X.com-000000?style=flat-square&logo=X&logoColor=white" alt="X.com"></a>
<a href="https://www.instagram.com/nonstopio/"><img src="https://img.shields.io/badge/-Instagram-E4405F?style=flat-square&logo=Instagram&logoColor=white" alt="Instagram"></a>
<a href="https://www.youtube.com/@nonstopio"><img src="https://img.shields.io/badge/-YouTube-FF0000?style=flat-square&logo=YouTube&logoColor=white" alt="YouTube"></a>
<a href="mailto:hello@nonstopio.com"><img src="https://img.shields.io/badge/-Email-D14836?style=flat-square&logo=Gmail&logoColor=white" alt="Email"></a>
</p>
<!-- END:connect -->

<!-- BEGIN:star-footer — auto-generated, do not edit. Run `melos sync:readme` to update -->
<div align="center">

> ⭐ Star us on [GitHub](https://github.com/nonstopio/flutter_forge) if this helped you!

</div>
<!-- END:star-footer -->

<!-- BEGIN:license — auto-generated, do not edit. Run `melos sync:readme` to update -->
## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
<!-- END:license -->

<!-- BEGIN:founded-by — auto-generated, do not edit. Run `melos sync:readme` to update -->
<div align="center">

> 🎉 [Founded by Ajay Kumar](https://github.com/ProjectAJ14) 🎉**

</div>
<!-- END:founded-by -->
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class _CoercionExampleState extends State<CoercionExample> {
children: [
Expanded(
child: DropdownButtonFormField<String>(
value: _selectedType,
initialValue: _selectedType,
onChanged: (value) {
setState(() {
_selectedType = value!;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ class _DiscriminatedUnionExampleState extends State<DiscriminatedUnionExample> {
children: [
// Message type selector
DropdownButtonFormField<String>(
value: _selectedType,
initialValue: _selectedType,
onChanged: (value) {
setState(() {
_selectedType = value!;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ class _PipelineExampleState extends State<PipelineExample> {
children: [
// Pipeline selector
DropdownButtonFormField<String>(
value: _selectedExample,
initialValue: _selectedExample,
onChanged: (value) {
setState(() {
_selectedExample = value!;
Expand Down
Loading
Loading