maxsim-flutter 1.16.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,194 @@
1
+ import { z } from 'zod';
2
+ export declare const AcceptanceCriterionSchema: z.ZodObject<{
3
+ description: z.ZodString;
4
+ predicate: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ description: string;
7
+ predicate?: string | undefined;
8
+ }, {
9
+ description: string;
10
+ predicate?: string | undefined;
11
+ }>;
12
+ export declare const PrdStorySchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ phase: z.ZodNumber;
15
+ priority: z.ZodEnum<["P0", "P1", "P2", "P3"]>;
16
+ title: z.ZodString;
17
+ description: z.ZodString;
18
+ module: z.ZodOptional<z.ZodString>;
19
+ storyPoints: z.ZodEffects<z.ZodNumber, 1 | 2 | 3 | 5 | 8 | 13, number>;
20
+ dependencies: z.ZodArray<z.ZodString, "many">;
21
+ acceptanceCriteria: z.ZodArray<z.ZodObject<{
22
+ description: z.ZodString;
23
+ predicate: z.ZodOptional<z.ZodString>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ description: string;
26
+ predicate?: string | undefined;
27
+ }, {
28
+ description: string;
29
+ predicate?: string | undefined;
30
+ }>, "many">;
31
+ passes: z.ZodBoolean;
32
+ }, "strip", z.ZodTypeAny, {
33
+ description: string;
34
+ id: string;
35
+ phase: number;
36
+ priority: "P0" | "P1" | "P2" | "P3";
37
+ title: string;
38
+ acceptanceCriteria: {
39
+ description: string;
40
+ predicate?: string | undefined;
41
+ }[];
42
+ passes: boolean;
43
+ dependencies: string[];
44
+ storyPoints: 1 | 2 | 3 | 5 | 8 | 13;
45
+ module?: string | undefined;
46
+ }, {
47
+ description: string;
48
+ id: string;
49
+ phase: number;
50
+ priority: "P0" | "P1" | "P2" | "P3";
51
+ title: string;
52
+ acceptanceCriteria: {
53
+ description: string;
54
+ predicate?: string | undefined;
55
+ }[];
56
+ passes: boolean;
57
+ dependencies: string[];
58
+ storyPoints: number;
59
+ module?: string | undefined;
60
+ }>;
61
+ declare const PrdPhaseSchema: z.ZodObject<{
62
+ phase: z.ZodNumber;
63
+ title: z.ZodString;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ }, "strip", z.ZodTypeAny, {
66
+ phase: number;
67
+ title: string;
68
+ description?: string | undefined;
69
+ }, {
70
+ phase: number;
71
+ title: string;
72
+ description?: string | undefined;
73
+ }>;
74
+ export declare const PrdSchema: z.ZodObject<{
75
+ version: z.ZodString;
76
+ project: z.ZodString;
77
+ generatedAt: z.ZodOptional<z.ZodString>;
78
+ phases: z.ZodOptional<z.ZodArray<z.ZodObject<{
79
+ phase: z.ZodNumber;
80
+ title: z.ZodString;
81
+ description: z.ZodOptional<z.ZodString>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ phase: number;
84
+ title: string;
85
+ description?: string | undefined;
86
+ }, {
87
+ phase: number;
88
+ title: string;
89
+ description?: string | undefined;
90
+ }>, "many">>;
91
+ stories: z.ZodArray<z.ZodObject<{
92
+ id: z.ZodString;
93
+ phase: z.ZodNumber;
94
+ priority: z.ZodEnum<["P0", "P1", "P2", "P3"]>;
95
+ title: z.ZodString;
96
+ description: z.ZodString;
97
+ module: z.ZodOptional<z.ZodString>;
98
+ storyPoints: z.ZodEffects<z.ZodNumber, 1 | 2 | 3 | 5 | 8 | 13, number>;
99
+ dependencies: z.ZodArray<z.ZodString, "many">;
100
+ acceptanceCriteria: z.ZodArray<z.ZodObject<{
101
+ description: z.ZodString;
102
+ predicate: z.ZodOptional<z.ZodString>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ description: string;
105
+ predicate?: string | undefined;
106
+ }, {
107
+ description: string;
108
+ predicate?: string | undefined;
109
+ }>, "many">;
110
+ passes: z.ZodBoolean;
111
+ }, "strip", z.ZodTypeAny, {
112
+ description: string;
113
+ id: string;
114
+ phase: number;
115
+ priority: "P0" | "P1" | "P2" | "P3";
116
+ title: string;
117
+ acceptanceCriteria: {
118
+ description: string;
119
+ predicate?: string | undefined;
120
+ }[];
121
+ passes: boolean;
122
+ dependencies: string[];
123
+ storyPoints: 1 | 2 | 3 | 5 | 8 | 13;
124
+ module?: string | undefined;
125
+ }, {
126
+ description: string;
127
+ id: string;
128
+ phase: number;
129
+ priority: "P0" | "P1" | "P2" | "P3";
130
+ title: string;
131
+ acceptanceCriteria: {
132
+ description: string;
133
+ predicate?: string | undefined;
134
+ }[];
135
+ passes: boolean;
136
+ dependencies: string[];
137
+ storyPoints: number;
138
+ module?: string | undefined;
139
+ }>, "many">;
140
+ }, "strip", z.ZodTypeAny, {
141
+ project: string;
142
+ version: string;
143
+ stories: {
144
+ description: string;
145
+ id: string;
146
+ phase: number;
147
+ priority: "P0" | "P1" | "P2" | "P3";
148
+ title: string;
149
+ acceptanceCriteria: {
150
+ description: string;
151
+ predicate?: string | undefined;
152
+ }[];
153
+ passes: boolean;
154
+ dependencies: string[];
155
+ storyPoints: 1 | 2 | 3 | 5 | 8 | 13;
156
+ module?: string | undefined;
157
+ }[];
158
+ generatedAt?: string | undefined;
159
+ phases?: {
160
+ phase: number;
161
+ title: string;
162
+ description?: string | undefined;
163
+ }[] | undefined;
164
+ }, {
165
+ project: string;
166
+ version: string;
167
+ stories: {
168
+ description: string;
169
+ id: string;
170
+ phase: number;
171
+ priority: "P0" | "P1" | "P2" | "P3";
172
+ title: string;
173
+ acceptanceCriteria: {
174
+ description: string;
175
+ predicate?: string | undefined;
176
+ }[];
177
+ passes: boolean;
178
+ dependencies: string[];
179
+ storyPoints: number;
180
+ module?: string | undefined;
181
+ }[];
182
+ generatedAt?: string | undefined;
183
+ phases?: {
184
+ phase: number;
185
+ title: string;
186
+ description?: string | undefined;
187
+ }[] | undefined;
188
+ }>;
189
+ export type AcceptanceCriterion = z.infer<typeof AcceptanceCriterionSchema>;
190
+ export type PrdStory = z.infer<typeof PrdStorySchema>;
191
+ export type PrdPhase = z.infer<typeof PrdPhaseSchema>;
192
+ export type Prd = z.infer<typeof PrdSchema>;
193
+ export {};
194
+ //# sourceMappingURL=prd-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-schema.d.ts","sourceRoot":"","sources":["../../src/claude-setup/prd-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;;;;;;;;EAGpC,CAAC;AAIH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;EAIlB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMpB,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ export const AcceptanceCriterionSchema = z.object({
3
+ description: z.string(),
4
+ predicate: z.string().optional(),
5
+ });
6
+ const VALID_STORY_POINTS = [1, 2, 3, 5, 8, 13];
7
+ export const PrdStorySchema = z.object({
8
+ id: z.string(),
9
+ phase: z.number().int().positive(),
10
+ priority: z.enum(['P0', 'P1', 'P2', 'P3']),
11
+ title: z.string(),
12
+ description: z.string(),
13
+ module: z.string().optional(),
14
+ storyPoints: z.number().refine((val) => VALID_STORY_POINTS.includes(val), { message: 'storyPoints must be a Fibonacci number: 1, 2, 3, 5, 8, or 13' }),
15
+ dependencies: z.array(z.string()),
16
+ acceptanceCriteria: z.array(AcceptanceCriterionSchema),
17
+ passes: z.boolean(),
18
+ });
19
+ const PrdPhaseSchema = z.object({
20
+ phase: z.number().int().positive(),
21
+ title: z.string(),
22
+ description: z.string().optional(),
23
+ });
24
+ export const PrdSchema = z.object({
25
+ version: z.string(),
26
+ project: z.string(),
27
+ generatedAt: z.string().optional(),
28
+ phases: z.array(PrdPhaseSchema).optional(),
29
+ stories: z.array(PrdStorySchema),
30
+ });
31
+ //# sourceMappingURL=prd-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-schema.js","sourceRoot":"","sources":["../../src/claude-setup/prd-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAC5B,CAAC,GAAG,EAA8C,EAAE,CACjD,kBAAwC,CAAC,QAAQ,CAAC,GAAG,CAAC,EACzD,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAC5E;IACD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CACjC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectContext } from '../core/context.js';
2
+ export declare function writeRules(context: ProjectContext, outputPath: string): Promise<void>;
3
+ //# sourceMappingURL=rules-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/rules-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAsKzD,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3F"}
@@ -0,0 +1,162 @@
1
+ import { writeFile, mkdir } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ function frontmatter(paths) {
4
+ const pathLines = paths.map((p) => ` - "${p}"`).join('\n');
5
+ return `---\npaths:\n${pathLines}\n---\n\n`;
6
+ }
7
+ function generateArchitectureRule() {
8
+ return (frontmatter(['lib/**', 'test/**']) +
9
+ `# Clean Architecture Rules
10
+
11
+ This project follows Clean Architecture with three layers:
12
+
13
+ - **domain**: Entities, repository interfaces, use cases. No Flutter or package dependencies.
14
+ - **data**: Repository implementations, data sources, DTOs. Implements domain interfaces.
15
+ - **presentation**: UI widgets, controllers, Riverpod providers. Depends on domain use cases only.
16
+
17
+ ## Rules
18
+ - Never import from \`presentation\` into \`domain\` or \`data\`.
19
+ - Never import from \`data\` into \`domain\`.
20
+ - Use cases live in \`domain/use_cases/\` and contain business logic only.
21
+ - Repository interfaces are defined in \`domain/repositories/\`.
22
+ - All external dependencies (network, database) are injected via interfaces.
23
+ `);
24
+ }
25
+ function generateRiverpodRule() {
26
+ return (frontmatter(['lib/**']) +
27
+ `# Riverpod Patterns
28
+
29
+ Use Riverpod for all state management and dependency injection.
30
+
31
+ ## Rules
32
+ - Use \`ref.watch\` for reactive reads inside \`build()\` methods.
33
+ - Use \`ref.read\` for one-time reads in event handlers.
34
+ - Prefer \`AsyncNotifierProvider\` for async state with loading/error handling.
35
+ - Annotate providers with \`@riverpod\` and run \`build_runner\` to generate code.
36
+ - Keep providers small and focused — one responsibility per provider.
37
+ `);
38
+ }
39
+ function generateGoRouterRule() {
40
+ return (frontmatter(['lib/**']) +
41
+ `# go_router Navigation Rules
42
+
43
+ Use go_router for declarative navigation.
44
+
45
+ ## Rules
46
+ - Define all routes in a central \`AppRouter\` class.
47
+ - Use typed routes with \`GoRoute\` path parameters.
48
+ - Redirect guards for authentication go in the \`redirect\` callback.
49
+ - Prefer \`context.go()\` for full navigation stack replacement.
50
+ - Use \`context.push()\` for stacked navigation.
51
+ `);
52
+ }
53
+ function generateTestingRule() {
54
+ return (frontmatter(['test/**']) +
55
+ `# Testing Conventions
56
+
57
+ All features must have corresponding test coverage.
58
+
59
+ ## Rules
60
+ - Mirror the \`lib/\` structure under \`test/\`.
61
+ - Unit test every use case, repository, and provider.
62
+ - Use \`mocktail\` or \`mockito\` for mocking dependencies.
63
+ - Widget tests go in \`test/presentation/\`.
64
+ - Integration tests go in \`test/integration/\`.
65
+ - Aim for 80%+ statement and branch coverage.
66
+ `);
67
+ }
68
+ function generateSecurityRule() {
69
+ return (frontmatter(['lib/**']) +
70
+ `# Security Guidelines
71
+
72
+ Follow these security best practices in all code.
73
+
74
+ ## Rules
75
+ - Never hardcode secrets, API keys, or credentials in source code.
76
+ - Use \`flutter_secure_storage\` for sensitive user data.
77
+ - Validate and sanitize all user inputs before use.
78
+ - Use HTTPS for all network requests; never allow plain HTTP in production.
79
+ - Apply the principle of least privilege for permissions.
80
+ - Redact sensitive data from logs.
81
+ `);
82
+ }
83
+ function generateAuthRule() {
84
+ return (frontmatter(['lib/features/auth/**', 'test/features/auth/**']) +
85
+ `# Authentication Rules
86
+
87
+ Guidelines for the auth feature module.
88
+
89
+ ## Rules
90
+ - All auth state is managed through the auth provider — never store tokens in plain SharedPreferences.
91
+ - Use secure storage for auth tokens and session data.
92
+ - Protect routes by checking auth state in go_router redirect guards.
93
+ - On logout, clear all cached user data and navigate to the login screen.
94
+ - Handle token refresh transparently in the API client interceptor.
95
+ `);
96
+ }
97
+ function generateApiRule() {
98
+ return (frontmatter(['lib/core/api/**', 'lib/data/**']) +
99
+ `# API & HTTP Client Rules
100
+
101
+ Guidelines for HTTP networking with Dio.
102
+
103
+ ## Rules
104
+ - All API calls go through the central Dio client configured in \`core/api/\`.
105
+ - Use interceptors for auth token injection and token refresh.
106
+ - Map HTTP error responses to typed domain failures — never expose raw Dio exceptions to use cases.
107
+ - Use \`retrofit\` or a repository pattern to abstract API endpoints.
108
+ - Log requests and responses only in debug mode; never log sensitive data.
109
+ `);
110
+ }
111
+ function generateDatabaseRule() {
112
+ return (frontmatter(['lib/data/**', 'test/data/**']) +
113
+ `# Database & Local Storage Rules
114
+
115
+ Guidelines for local database and storage access.
116
+
117
+ ## Rules
118
+ - All database access is encapsulated in repository implementations under \`data/\`.
119
+ - Use Drift (or Hive/Isar) for structured local data; never raw file I/O for app data.
120
+ - Define database schema migrations explicitly — never drop and recreate tables.
121
+ - Expose only domain models from repositories — never leak database entities to \`domain\` or \`presentation\`.
122
+ - Use transactions for multi-step writes to ensure consistency.
123
+ `);
124
+ }
125
+ function generateI18nRule() {
126
+ return (frontmatter(['lib/**']) +
127
+ `# Internationalization (i18n) Rules
128
+
129
+ Guidelines for localization.
130
+
131
+ ## Rules
132
+ - All user-visible strings must be externalized in ARB files under \`l10n/\`.
133
+ - Never hardcode display strings in widget code.
134
+ - Use \`AppLocalizations.of(context)!\` to access translations.
135
+ - Add new strings to all supported locale files before shipping.
136
+ - Use ICU message format for plurals and gender variations.
137
+ `);
138
+ }
139
+ export async function writeRules(context, outputPath) {
140
+ const rulesDir = join(outputPath, '.claude', 'rules');
141
+ await mkdir(rulesDir, { recursive: true });
142
+ // Core rules — always generated
143
+ await writeFile(join(rulesDir, 'architecture.md'), generateArchitectureRule(), 'utf-8');
144
+ await writeFile(join(rulesDir, 'riverpod.md'), generateRiverpodRule(), 'utf-8');
145
+ await writeFile(join(rulesDir, 'go-router.md'), generateGoRouterRule(), 'utf-8');
146
+ await writeFile(join(rulesDir, 'testing.md'), generateTestingRule(), 'utf-8');
147
+ await writeFile(join(rulesDir, 'security.md'), generateSecurityRule(), 'utf-8');
148
+ // Conditional module rules
149
+ if (context.modules.auth) {
150
+ await writeFile(join(rulesDir, 'auth.md'), generateAuthRule(), 'utf-8');
151
+ }
152
+ if (context.modules.api) {
153
+ await writeFile(join(rulesDir, 'api.md'), generateApiRule(), 'utf-8');
154
+ }
155
+ if (context.modules.database) {
156
+ await writeFile(join(rulesDir, 'database.md'), generateDatabaseRule(), 'utf-8');
157
+ }
158
+ if (context.modules.i18n) {
159
+ await writeFile(join(rulesDir, 'i18n.md'), generateI18nRule(), 'utf-8');
160
+ }
161
+ }
162
+ //# sourceMappingURL=rules-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-writer.js","sourceRoot":"","sources":["../../src/claude-setup/rules-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,SAAS,WAAW,CAAC,KAAe;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,gBAAgB,SAAS,WAAW,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,CACL,WAAW,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClC;;;;;;;;;;;;;;CAcH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CACL,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvB;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CACL,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvB;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,CACL,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;QACxB;;;;;;;;;;;CAWH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CACL,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvB;;;;;;;;;;;CAWH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,WAAW,CAAC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;QAC9D;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CACL,WAAW,CAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC/C;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CACL,WAAW,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC5C;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvB;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB,EAAE,UAAkB;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,gCAAgC;IAChC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IACjF,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhF,2BAA2B;IAC3B,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maxsim-flutter",
3
- "version": "1.16.0",
3
+ "version": "1.18.0",
4
4
  "description": "AI-powered Flutter app scaffolding with Clean Architecture, Riverpod, and autonomous development via Ralph",
5
5
  "type": "module",
6
6
  "bin": {