laracook 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/commands/install.d.ts.map +1 -1
  2. package/dist/commands/install.js +56 -5
  3. package/dist/commands/install.js.map +1 -1
  4. package/dist/cooking/frontend/blade/index.d.ts +8 -0
  5. package/dist/cooking/frontend/blade/index.d.ts.map +1 -0
  6. package/dist/cooking/frontend/blade/index.js +15 -0
  7. package/dist/cooking/frontend/blade/index.js.map +1 -0
  8. package/dist/cooking/frontend/helpers.d.ts +13 -0
  9. package/dist/cooking/frontend/helpers.d.ts.map +1 -0
  10. package/dist/cooking/frontend/helpers.js +218 -0
  11. package/dist/cooking/frontend/helpers.js.map +1 -0
  12. package/dist/cooking/frontend/react/api-service.d.ts +8 -0
  13. package/dist/cooking/frontend/react/api-service.d.ts.map +1 -0
  14. package/dist/cooking/frontend/react/api-service.js +129 -0
  15. package/dist/cooking/frontend/react/api-service.js.map +1 -0
  16. package/dist/cooking/frontend/react/auth.d.ts +10 -0
  17. package/dist/cooking/frontend/react/auth.d.ts.map +1 -0
  18. package/dist/cooking/frontend/react/auth.js +325 -0
  19. package/dist/cooking/frontend/react/auth.js.map +1 -0
  20. package/dist/cooking/frontend/react/components.d.ts +22 -0
  21. package/dist/cooking/frontend/react/components.d.ts.map +1 -0
  22. package/dist/cooking/frontend/react/components.js +668 -0
  23. package/dist/cooking/frontend/react/components.js.map +1 -0
  24. package/dist/cooking/frontend/react/config.d.ts +13 -0
  25. package/dist/cooking/frontend/react/config.d.ts.map +1 -0
  26. package/dist/cooking/frontend/react/config.js +268 -0
  27. package/dist/cooking/frontend/react/config.js.map +1 -0
  28. package/dist/cooking/frontend/react/dashboard.d.ts +7 -0
  29. package/dist/cooking/frontend/react/dashboard.d.ts.map +1 -0
  30. package/dist/cooking/frontend/react/dashboard.js +93 -0
  31. package/dist/cooking/frontend/react/dashboard.js.map +1 -0
  32. package/dist/cooking/frontend/react/index.d.ts +7 -0
  33. package/dist/cooking/frontend/react/index.d.ts.map +1 -0
  34. package/dist/cooking/frontend/react/index.js +50 -0
  35. package/dist/cooking/frontend/react/index.js.map +1 -0
  36. package/dist/cooking/frontend/react/layout.d.ts +7 -0
  37. package/dist/cooking/frontend/react/layout.d.ts.map +1 -0
  38. package/dist/cooking/frontend/react/layout.js +212 -0
  39. package/dist/cooking/frontend/react/layout.js.map +1 -0
  40. package/dist/cooking/frontend/react/page.d.ts +11 -0
  41. package/dist/cooking/frontend/react/page.d.ts.map +1 -0
  42. package/dist/cooking/frontend/react/page.js +471 -0
  43. package/dist/cooking/frontend/react/page.js.map +1 -0
  44. package/dist/cooking/frontend/react/router.d.ts +6 -0
  45. package/dist/cooking/frontend/react/router.d.ts.map +1 -0
  46. package/dist/cooking/frontend/react/router.js +71 -0
  47. package/dist/cooking/frontend/react/router.js.map +1 -0
  48. package/dist/cooking/frontend/react/shadcn-ui.d.ts +11 -0
  49. package/dist/cooking/frontend/react/shadcn-ui.d.ts.map +1 -0
  50. package/dist/cooking/frontend/react/shadcn-ui.js +734 -0
  51. package/dist/cooking/frontend/react/shadcn-ui.js.map +1 -0
  52. package/dist/cooking/frontend/types.d.ts +65 -0
  53. package/dist/cooking/frontend/types.d.ts.map +1 -0
  54. package/dist/cooking/frontend/types.js +6 -0
  55. package/dist/cooking/frontend/types.js.map +1 -0
  56. package/dist/cooking/frontend/vue/index.d.ts +8 -0
  57. package/dist/cooking/frontend/vue/index.d.ts.map +1 -0
  58. package/dist/cooking/frontend/vue/index.js +15 -0
  59. package/dist/cooking/frontend/vue/index.js.map +1 -0
  60. package/dist/cooking/helpers.d.ts +31 -0
  61. package/dist/cooking/helpers.d.ts.map +1 -0
  62. package/dist/cooking/helpers.js +304 -0
  63. package/dist/cooking/helpers.js.map +1 -0
  64. package/dist/cooking/laravel12/auth.d.ts +7 -0
  65. package/dist/cooking/laravel12/auth.d.ts.map +1 -0
  66. package/dist/cooking/laravel12/auth.js +118 -0
  67. package/dist/cooking/laravel12/auth.js.map +1 -0
  68. package/dist/cooking/laravel12/baseFiles.d.ts +8 -0
  69. package/dist/cooking/laravel12/baseFiles.d.ts.map +1 -0
  70. package/dist/cooking/laravel12/baseFiles.js +100 -0
  71. package/dist/cooking/laravel12/baseFiles.js.map +1 -0
  72. package/dist/cooking/laravel12/config.d.ts +29 -0
  73. package/dist/cooking/laravel12/config.d.ts.map +1 -0
  74. package/dist/cooking/laravel12/config.js +760 -0
  75. package/dist/cooking/laravel12/config.js.map +1 -0
  76. package/dist/cooking/laravel12/controller.d.ts +6 -0
  77. package/dist/cooking/laravel12/controller.d.ts.map +1 -0
  78. package/dist/cooking/laravel12/controller.js +139 -0
  79. package/dist/cooking/laravel12/controller.js.map +1 -0
  80. package/dist/cooking/laravel12/factory.d.ts +7 -0
  81. package/dist/cooking/laravel12/factory.d.ts.map +1 -0
  82. package/dist/cooking/laravel12/factory.js +115 -0
  83. package/dist/cooking/laravel12/factory.js.map +1 -0
  84. package/dist/cooking/laravel12/index.d.ts +7 -0
  85. package/dist/cooking/laravel12/index.d.ts.map +1 -0
  86. package/dist/cooking/laravel12/index.js +195 -0
  87. package/dist/cooking/laravel12/index.js.map +1 -0
  88. package/dist/cooking/laravel12/installer.d.ts +16 -0
  89. package/dist/cooking/laravel12/installer.d.ts.map +1 -0
  90. package/dist/cooking/laravel12/installer.js +872 -0
  91. package/dist/cooking/laravel12/installer.js.map +1 -0
  92. package/dist/cooking/laravel12/migration.d.ts +13 -0
  93. package/dist/cooking/laravel12/migration.d.ts.map +1 -0
  94. package/dist/cooking/laravel12/migration.js +390 -0
  95. package/dist/cooking/laravel12/migration.js.map +1 -0
  96. package/dist/cooking/laravel12/model.d.ts +7 -0
  97. package/dist/cooking/laravel12/model.d.ts.map +1 -0
  98. package/dist/cooking/laravel12/model.js +178 -0
  99. package/dist/cooking/laravel12/model.js.map +1 -0
  100. package/dist/cooking/laravel12/policy.d.ts +6 -0
  101. package/dist/cooking/laravel12/policy.d.ts.map +1 -0
  102. package/dist/cooking/laravel12/policy.js +87 -0
  103. package/dist/cooking/laravel12/policy.js.map +1 -0
  104. package/dist/cooking/laravel12/provider.d.ts +7 -0
  105. package/dist/cooking/laravel12/provider.d.ts.map +1 -0
  106. package/dist/cooking/laravel12/provider.js +41 -0
  107. package/dist/cooking/laravel12/provider.js.map +1 -0
  108. package/dist/cooking/laravel12/request.d.ts +7 -0
  109. package/dist/cooking/laravel12/request.d.ts.map +1 -0
  110. package/dist/cooking/laravel12/request.js +60 -0
  111. package/dist/cooking/laravel12/request.js.map +1 -0
  112. package/dist/cooking/laravel12/resource.d.ts +7 -0
  113. package/dist/cooking/laravel12/resource.d.ts.map +1 -0
  114. package/dist/cooking/laravel12/resource.js +63 -0
  115. package/dist/cooking/laravel12/resource.js.map +1 -0
  116. package/dist/cooking/laravel12/routes.d.ts +6 -0
  117. package/dist/cooking/laravel12/routes.d.ts.map +1 -0
  118. package/dist/cooking/laravel12/routes.js +50 -0
  119. package/dist/cooking/laravel12/routes.js.map +1 -0
  120. package/dist/cooking/laravel12/seeder.d.ts +7 -0
  121. package/dist/cooking/laravel12/seeder.d.ts.map +1 -0
  122. package/dist/cooking/laravel12/seeder.js +69 -0
  123. package/dist/cooking/laravel12/seeder.js.map +1 -0
  124. package/dist/cooking/laravel12/test.d.ts +6 -0
  125. package/dist/cooking/laravel12/test.d.ts.map +1 -0
  126. package/dist/cooking/laravel12/test.js +112 -0
  127. package/dist/cooking/laravel12/test.js.map +1 -0
  128. package/dist/cooking/orchestrator.d.ts +9 -0
  129. package/dist/cooking/orchestrator.d.ts.map +1 -0
  130. package/dist/cooking/orchestrator.js +102 -0
  131. package/dist/cooking/orchestrator.js.map +1 -0
  132. package/dist/cooking/types.d.ts +67 -0
  133. package/dist/cooking/types.d.ts.map +1 -0
  134. package/dist/cooking/types.js +8 -0
  135. package/dist/cooking/types.js.map +1 -0
  136. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAYA,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,iBAsM5E"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAcA,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,iBA2P5E"}
@@ -15,6 +15,7 @@ const checks_1 = require("../utils/checks");
15
15
  const installer_1 = require("../services/installer");
16
16
  const banner_1 = require("../ui/banner");
17
17
  const theme_1 = require("../ui/theme");
18
+ const orchestrator_1 = require("../cooking/orchestrator");
18
19
  async function installCommand(project, options) {
19
20
  (0, banner_1.showBanner)();
20
21
  console.log(` ${theme_1.t.info('📦')} Installation de ${theme_1.t.highlight(project)}...\n`);
@@ -135,8 +136,8 @@ async function installCommand(project, options) {
135
136
  downloadSpinner.fail(error.message || 'Téléchargement échoué');
136
137
  process.exit(1);
137
138
  }
138
- // Step 5: Generate files
139
- const genSpinner = (0, ora_1.default)('Génération du code Laravel...').start();
139
+ // Step 5: Generate project files via cooking engine
140
+ const genSpinner = (0, ora_1.default)('Génération du code Laravel + React...').start();
140
141
  const targetDir = options.dir || path_1.default.resolve(process.cwd(), slug);
141
142
  if (fs_1.default.existsSync(targetDir)) {
142
143
  if (!options.force) {
@@ -149,15 +150,65 @@ async function installCommand(project, options) {
149
150
  try {
150
151
  const schemaData = projectData.data.schema_data;
151
152
  const frontendSchema = projectData.data.frontend_schema;
153
+ // Build stack config from project data
154
+ const stackInfos = {
155
+ backoffice_tech: frontendSchema?.tech || 'react_tailwind',
156
+ layout: frontendSchema?.layout || 'sidebar',
157
+ appName: projectData.data.name || slug,
158
+ withAuth: frontendSchema?.withAuth !== false,
159
+ primaryColor: frontendSchema?.primaryColor || '#ea384c',
160
+ withDarkMode: frontendSchema?.withDarkMode || false,
161
+ };
162
+ // Generate all project files using the cooking engine
163
+ const nodes = schemaData?.nodes || [];
164
+ const edges = schemaData?.edges || [];
165
+ const result = (0, orchestrator_1.cookProject)(nodes, edges, stackInfos);
166
+ if (result.errors.length > 0) {
167
+ genSpinner.warn(`Génération avec ${result.errors.length} erreur(s)`);
168
+ result.errors.forEach(err => console.log(` ${theme_1.t.warn('⚠️')} ${err}`));
169
+ }
170
+ // Write all generated files to disk
171
+ let fileCount = 0;
172
+ for (const file of result.files) {
173
+ const dir = path_1.default.join(targetDir, file.path);
174
+ fs_1.default.mkdirSync(dir, { recursive: true });
175
+ fs_1.default.writeFileSync(path_1.default.join(dir, file.filename), file.content);
176
+ fileCount++;
177
+ }
178
+ // Create required empty Laravel directories
179
+ const emptyDirs = [
180
+ 'storage/app/private',
181
+ 'storage/app/public',
182
+ 'storage/framework/cache/data',
183
+ 'storage/framework/sessions',
184
+ 'storage/framework/testing',
185
+ 'storage/framework/views',
186
+ 'storage/logs',
187
+ 'bootstrap/cache',
188
+ 'database',
189
+ ];
190
+ for (const dir of emptyDirs) {
191
+ fs_1.default.mkdirSync(path_1.default.join(targetDir, dir), { recursive: true });
192
+ }
193
+ // Create .gitkeep files in empty directories
194
+ for (const dir of emptyDirs) {
195
+ const gitkeep = path_1.default.join(targetDir, dir, '.gitkeep');
196
+ if (!fs_1.default.existsSync(gitkeep)) {
197
+ fs_1.default.writeFileSync(gitkeep, '');
198
+ }
199
+ }
200
+ // Save metadata
152
201
  fs_1.default.writeFileSync(path_1.default.join(targetDir, '.laracook.json'), JSON.stringify({
153
202
  project: `${email}/${slug}`,
154
203
  version: projectData.data.version,
155
204
  installed_at: new Date().toISOString(),
156
205
  name: projectData.data.name,
157
- stack: 'react-shadcn',
206
+ stack: stackInfos.backoffice_tech,
158
207
  }, null, 2));
159
- fs_1.default.writeFileSync(path_1.default.join(targetDir, '.laracook-schema.json'), JSON.stringify({ schema_data: schemaData, frontend_schema: frontendSchema }, null, 2));
160
- genSpinner.succeed('Fichiers de projet générés');
208
+ genSpinner.succeed(`${fileCount} fichiers générés`);
209
+ if (result.warnings.length > 0) {
210
+ result.warnings.forEach(w => console.log(` ${theme_1.t.muted('ℹ️')} ${w}`));
211
+ }
161
212
  }
162
213
  catch (error) {
163
214
  genSpinner.fail(`Erreur de génération : ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;;;;AAuBA,wCA2PC;AAlRD,8CAAsB;AACtB,wDAAgC;AAChC,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAC1B,yCAA4C;AAC5C,2CAA6C;AAC7C,4CAAqD;AACrD,qDAAwE;AACxE,yCAAyD;AACzD,uCAA4C;AAC5C,0DAAsD;AAY/C,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,OAAuB;IAC3E,IAAA,mBAAU,GAAE,CAAC;IAEb,OAAO,CAAC,GAAG,CAAC,KAAK,SAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,SAAC,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9E,mBAAmB;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,SAAC,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,SAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC5B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE1B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,IAAA,gBAAS,GAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,KAAK,SAAC,CAAC,KAAK,CAAC,0CAA0C,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,eAAS,CAAC,IAAI,CAAC,qBAAqB,EACpD,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAC1B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAC5C,CAAC;gBACF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC7B,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;oBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,SAAC,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,SAAC,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,SAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC3I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,IAAI,UAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,eAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,aAAa,CAAC,OAAO,CAAC,mBAAmB,SAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,sBAAsB,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,IAAA,kBAAU,EAAC;QACT,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK;QACL,MAAM,EAAE,UAAU,CAAC,YAAY;QAC/B,KAAK,EAAE,UAAU,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC/F,EAAE,IAAI,EAAE,YAAY,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7D,EAAE,IAAI,EAAE,YAAY,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAChE,EAAE,IAAI,EAAE,aAAa,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;aACnE;SACF,CAAC,CAAC,CAAC;IAEJ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,OAAO,SAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAC,CAAC,SAAS,CAAC,KAAK,CAAC,oCAAoC,SAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;QAC1J,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,mCAAmC;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC7D,EAAE,IAAI,EAAE,wCAAwC,EAAE,KAAK,EAAE,SAAS,EAAE;gBACpE,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,MAAM,EAAE;aACrE;SACF,CAAC,CAAC,CAAC;IAEJ,8BAA8B;IAC9B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAkB,GAAE,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,oBAAoB,SAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,oBAAoB,SAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,aAAa,CAAC,OAAO,CAAC,gBAAgB,SAAC,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,UAAU,eAAe,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAChJ,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IACnE,IAAI,WAAgB,CAAC;IACrB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,eAAS,CAAC,GAAG,CAAC,iBAAiB,IAAI,WAAW,EAAE;YAClE,aAAa,EAAE,KAAM;SACtB,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,eAAe,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC;IAExE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnE,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,eAAe,IAAI,2BAA2B,SAAC,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,YAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QAChD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;QAExD,uCAAuC;QACvC,MAAM,UAAU,GAAe;YAC7B,eAAe,EAAE,cAAc,EAAE,IAAI,IAAI,gBAAgB;YACzD,MAAM,EAAE,cAAc,EAAE,MAAM,IAAI,SAAS;YAC3C,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI;YACtC,QAAQ,EAAE,cAAc,EAAE,QAAQ,KAAK,KAAK;YAC5C,YAAY,EAAE,cAAc,EAAE,YAAY,IAAI,SAAS;YACvD,YAAY,EAAE,cAAc,EAAE,YAAY,IAAI,KAAK;SACpD,CAAC;QAEF,sDAAsD;QACtD,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,0BAAW,EAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9D,SAAS,EAAE,CAAC;QACd,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG;YAChB,qBAAqB;YACrB,oBAAoB;YACpB,8BAA8B;YAC9B,4BAA4B;YAC5B,2BAA2B;YAC3B,yBAAyB;YACzB,cAAc;YACd,iBAAiB;YACjB,UAAU;SACX,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,6CAA6C;QAC7C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE;YAC3B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;YACjC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;YAC3B,KAAK,EAAE,UAAU,CAAC,eAAe;SAClC,EAAE,IAAI,EAAE,CAAC,CAAC,CACZ,CAAC;QAEF,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,IAAA,+BAAmB,EAAC,SAAS,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK;YAC5B,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;YACjD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,OAAO,CAAC,GAAG,CAAC,OAAO,SAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,SAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IAE/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,OAAO,SAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,SAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAA,sBAAa,GAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Laracook — Placeholder : Générateur frontend Blade
3
+ * À implémenter en Phase 2
4
+ */
5
+ import { SchemaTable, SchemaRelation, CookResult } from '../../types';
6
+ import { FrontendConfig } from '../types';
7
+ export declare function cookBlade(_tables: SchemaTable[], _relations: SchemaRelation[], _config: FrontendConfig): CookResult;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cooking/frontend/blade/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,cAAc,EAAE,EAC5B,OAAO,EAAE,cAAc,GACtB,UAAU,CAMZ"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Laracook — Placeholder : Générateur frontend Blade
4
+ * À implémenter en Phase 2
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.cookBlade = cookBlade;
8
+ function cookBlade(_tables, _relations, _config) {
9
+ return {
10
+ files: [],
11
+ errors: [],
12
+ warnings: ['Blade generator not yet implemented — coming in Phase 2.'],
13
+ };
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cooking/frontend/blade/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH,8BAUC;AAVD,SAAgB,SAAS,CACvB,OAAsB,EACtB,UAA4B,EAC5B,OAAuB;IAEvB,OAAO;QACL,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,0DAA0D,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Laracook — Helpers spécifiques frontend
3
+ * Mapping type colonne → composant input, type → colonne DataTable
4
+ */
5
+ import { SchemaColumn } from '../types';
6
+ import { CrudField, InputComponentType } from './types';
7
+ export declare function columnToInputType(col: SchemaColumn): InputComponentType;
8
+ export declare function columnToCrudField(col: SchemaColumn): CrudField;
9
+ export declare function formatLabel(snakeName: string): string;
10
+ export declare function inputTypeToShadcnImport(inputType: InputComponentType): string[];
11
+ export declare function inputTypeToJsx(field: CrudField, valueVar: string, onChangeExpr: string): string;
12
+ export declare function getRequiredShadcnImports(fields: CrudField[]): Map<string, string[]>;
13
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/cooking/frontend/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKxD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,kBAAkB,CAiDvE;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAwB9D;AAID,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMrD;AAID,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CA4B/E;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CA2C/F;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA8BnF"}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ /**
3
+ * Laracook — Helpers spécifiques frontend
4
+ * Mapping type colonne → composant input, type → colonne DataTable
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.columnToInputType = columnToInputType;
8
+ exports.columnToCrudField = columnToCrudField;
9
+ exports.formatLabel = formatLabel;
10
+ exports.inputTypeToShadcnImport = inputTypeToShadcnImport;
11
+ exports.inputTypeToJsx = inputTypeToJsx;
12
+ exports.getRequiredShadcnImports = getRequiredShadcnImports;
13
+ const helpers_1 = require("../helpers");
14
+ // ── Mapping type colonne → composant input ──────────────
15
+ function columnToInputType(col) {
16
+ const name = col.name.toLowerCase();
17
+ // Heuristique par nom
18
+ if (name === 'email')
19
+ return 'email';
20
+ if (name === 'password')
21
+ return 'password';
22
+ if (name === 'avatar' || name === 'image' || name === 'photo' || name === 'file')
23
+ return 'file';
24
+ if (name === 'phone' || name === 'telephone')
25
+ return 'tel';
26
+ if (name === 'url' || name === 'website' || name === 'link')
27
+ return 'url';
28
+ if (name === 'color' || name === 'colour')
29
+ return 'color';
30
+ // Par type
31
+ switch (col.type) {
32
+ case 'string':
33
+ case 'char':
34
+ case 'uuid':
35
+ return 'text';
36
+ case 'text':
37
+ case 'mediumText':
38
+ case 'longText':
39
+ return 'textarea';
40
+ case 'integer':
41
+ case 'bigInteger':
42
+ case 'smallInteger':
43
+ case 'tinyInteger':
44
+ case 'mediumInteger':
45
+ case 'unsignedBigInteger':
46
+ case 'unsignedInteger':
47
+ case 'decimal':
48
+ case 'double':
49
+ case 'float':
50
+ return 'number';
51
+ case 'boolean':
52
+ return 'switch';
53
+ case 'date':
54
+ return 'date';
55
+ case 'dateTime':
56
+ case 'timestamp':
57
+ return 'datetime';
58
+ case 'time':
59
+ return 'time';
60
+ case 'json':
61
+ case 'jsonb':
62
+ return 'json';
63
+ case 'enum':
64
+ return 'select';
65
+ default:
66
+ return 'text';
67
+ }
68
+ }
69
+ // ── Conversion colonne → CrudField ──────────────────────
70
+ function columnToCrudField(col) {
71
+ const inputType = columnToInputType(col);
72
+ const name = col.name;
73
+ // Colonnes à exclure du formulaire
74
+ const autoFields = ['id', 'created_at', 'updated_at', 'deleted_at'];
75
+ const showInForm = !col.isPrimaryKey && !autoFields.includes(name);
76
+ // Colonnes à exclure de la table
77
+ const hiddenInTable = ['password', 'remember_token', 'deleted_at'];
78
+ const showInTable = !col.isHidden && !hiddenInTable.includes(name);
79
+ return {
80
+ name,
81
+ type: col.type,
82
+ inputType,
83
+ label: formatLabel(name),
84
+ required: !col.isNullable && showInForm,
85
+ placeholder: `Enter ${formatLabel(name).toLowerCase()}`,
86
+ showInTable,
87
+ showInForm,
88
+ isForeignKey: col.isForeignKey,
89
+ relatedModel: col.referencesTable ? (0, helpers_1.studlyCase)(singularize(col.referencesTable)) : undefined,
90
+ };
91
+ }
92
+ // ── Label formatting ────────────────────────────────────
93
+ function formatLabel(snakeName) {
94
+ return snakeName
95
+ .replace(/_id$/, '')
96
+ .split('_')
97
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
98
+ .join(' ');
99
+ }
100
+ // ── Mapping inputType → import shadcn ───────────────────
101
+ function inputTypeToShadcnImport(inputType) {
102
+ switch (inputType) {
103
+ case 'text':
104
+ case 'email':
105
+ case 'password':
106
+ case 'number':
107
+ case 'date':
108
+ case 'datetime':
109
+ case 'time':
110
+ case 'tel':
111
+ case 'url':
112
+ case 'color':
113
+ case 'file':
114
+ return ['Input'];
115
+ case 'textarea':
116
+ case 'json':
117
+ return ['Textarea'];
118
+ case 'select':
119
+ return ['Select', 'SelectContent', 'SelectItem', 'SelectTrigger', 'SelectValue'];
120
+ case 'switch':
121
+ return ['Switch'];
122
+ case 'checkbox':
123
+ return ['Checkbox'];
124
+ case 'radio':
125
+ return ['RadioGroup', 'RadioGroupItem'];
126
+ default:
127
+ return ['Input'];
128
+ }
129
+ }
130
+ // ── Mapping inputType → JSX du champ ────────────────────
131
+ function inputTypeToJsx(field, valueVar, onChangeExpr) {
132
+ switch (field.inputType) {
133
+ case 'text':
134
+ case 'email':
135
+ case 'password':
136
+ case 'number':
137
+ case 'date':
138
+ case 'datetime':
139
+ case 'time':
140
+ case 'tel':
141
+ case 'url':
142
+ case 'color': {
143
+ const htmlType = field.inputType === 'datetime' ? 'datetime-local' : field.inputType;
144
+ return `<Input type="${htmlType}" id="${field.name}" value={${valueVar}} onChange={${onChangeExpr}} placeholder="${field.placeholder || ''}" ${field.required ? 'required' : ''} />`;
145
+ }
146
+ case 'textarea':
147
+ case 'json':
148
+ return `<Textarea id="${field.name}" value={${valueVar}} onChange={${onChangeExpr}} placeholder="${field.placeholder || ''}" rows={${field.inputType === 'json' ? 6 : 4}} ${field.required ? 'required' : ''} />`;
149
+ case 'switch':
150
+ return `<Switch id="${field.name}" checked={${valueVar}} onCheckedChange={${onChangeExpr}} />`;
151
+ case 'checkbox':
152
+ return `<Checkbox id="${field.name}" checked={${valueVar}} onCheckedChange={${onChangeExpr}} />`;
153
+ case 'select':
154
+ return `<Select value={${valueVar}} onValueChange={${onChangeExpr}}>
155
+ <SelectTrigger><SelectValue placeholder="Select ${field.label}" /></SelectTrigger>
156
+ <SelectContent>
157
+ {/* TODO: Add options */}
158
+ <SelectItem value="option1">Option 1</SelectItem>
159
+ </SelectContent>
160
+ </Select>`;
161
+ case 'radio':
162
+ return `<RadioGroup value={${valueVar}} onValueChange={${onChangeExpr}}>
163
+ {/* TODO: Add options */}
164
+ <div className="flex items-center space-x-2">
165
+ <RadioGroupItem value="option1" id="${field.name}-1" />
166
+ <Label htmlFor="${field.name}-1">Option 1</Label>
167
+ </div>
168
+ </RadioGroup>`;
169
+ case 'file':
170
+ return `<Input type="file" id="${field.name}" onChange={${onChangeExpr}} />`;
171
+ default:
172
+ return `<Input type="text" id="${field.name}" value={${valueVar}} onChange={${onChangeExpr}} />`;
173
+ }
174
+ }
175
+ // ── Collect required shadcn imports for a set of fields ──
176
+ function getRequiredShadcnImports(fields) {
177
+ const importMap = new Map();
178
+ const sourceMap = {
179
+ Input: '@/components/ui/input',
180
+ Textarea: '@/components/ui/textarea',
181
+ Switch: '@/components/ui/switch',
182
+ Checkbox: '@/components/ui/checkbox',
183
+ Select: '@/components/ui/select',
184
+ SelectContent: '@/components/ui/select',
185
+ SelectItem: '@/components/ui/select',
186
+ SelectTrigger: '@/components/ui/select',
187
+ SelectValue: '@/components/ui/select',
188
+ RadioGroup: '@/components/ui/radio-group',
189
+ RadioGroupItem: '@/components/ui/radio-group',
190
+ Label: '@/components/ui/label',
191
+ };
192
+ fields.forEach(f => {
193
+ const components = inputTypeToShadcnImport(f.inputType);
194
+ components.forEach(comp => {
195
+ const source = sourceMap[comp] || '@/components/ui/input';
196
+ const existing = importMap.get(source) || [];
197
+ if (!existing.includes(comp)) {
198
+ importMap.set(source, [...existing, comp]);
199
+ }
200
+ });
201
+ });
202
+ return importMap;
203
+ }
204
+ // ── Re-export singularize for local use ─────────────────
205
+ function singularize(word) {
206
+ if (word.endsWith('ies'))
207
+ return word.slice(0, -3) + 'y';
208
+ if (word.endsWith('ves'))
209
+ return word.slice(0, -3) + 'f';
210
+ if (word.endsWith('ses') || word.endsWith('xes') || word.endsWith('zes') ||
211
+ word.endsWith('ches') || word.endsWith('shes')) {
212
+ return word.slice(0, -2);
213
+ }
214
+ if (word.endsWith('s') && !word.endsWith('ss'))
215
+ return word.slice(0, -1);
216
+ return word;
217
+ }
218
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/cooking/frontend/helpers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAQH,8CAiDC;AAID,8CAwBC;AAID,kCAMC;AAID,0DA4BC;AAID,wCA2CC;AAID,4DA8BC;AA5MD,wCAA8D;AAE9D,2DAA2D;AAE3D,SAAgB,iBAAiB,CAAC,GAAiB;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAEpC,sBAAsB;IACtB,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAChG,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE1D,WAAW;IACX,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,iBAAiB,CAAC;QACvB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,UAAU,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2DAA2D;AAE3D,SAAgB,iBAAiB,CAAC,GAAiB;IACjD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,mCAAmC;IACnC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEnE,iCAAiC;IACjC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEnE,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS;QACT,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU;QACvC,WAAW,EAAE,SAAS,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QACvD,WAAW;QACX,UAAU;QACV,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,oBAAU,EAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC7F,CAAC;AACJ,CAAC;AAED,2DAA2D;AAE3D,SAAgB,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS;SACb,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAChD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,2DAA2D;AAE3D,SAAgB,uBAAuB,CAAC,SAA6B;IACnE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;QACnF,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC1C;YACE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,2DAA2D;AAE3D,SAAgB,cAAc,CAAC,KAAgB,EAAE,QAAgB,EAAE,YAAoB;IACrF,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACrF,OAAO,gBAAgB,QAAQ,SAAS,KAAK,CAAC,IAAI,YAAY,QAAQ,eAAe,YAAY,kBAAkB,KAAK,CAAC,WAAW,IAAI,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACvL,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,iBAAiB,KAAK,CAAC,IAAI,YAAY,QAAQ,eAAe,YAAY,kBAAkB,KAAK,CAAC,WAAW,IAAI,EAAE,WAAW,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACpN,KAAK,QAAQ;YACX,OAAO,eAAe,KAAK,CAAC,IAAI,cAAc,QAAQ,sBAAsB,YAAY,MAAM,CAAC;QACjG,KAAK,UAAU;YACb,OAAO,iBAAiB,KAAK,CAAC,IAAI,cAAc,QAAQ,sBAAsB,YAAY,MAAM,CAAC;QACnG,KAAK,QAAQ;YACX,OAAO,kBAAkB,QAAQ,oBAAoB,YAAY;gEACP,KAAK,CAAC,KAAK;;;;;sBAKrD,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,sBAAsB,QAAQ,oBAAoB,YAAY;;;sDAGrB,KAAK,CAAC,IAAI;kCAC9B,KAAK,CAAC,IAAI;;0BAElB,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,0BAA0B,KAAK,CAAC,IAAI,eAAe,YAAY,MAAM,CAAC;QAC/E;YACE,OAAO,0BAA0B,KAAK,CAAC,IAAI,YAAY,QAAQ,eAAe,YAAY,MAAM,CAAC;IACrG,CAAC;AACH,CAAC;AAED,4DAA4D;AAE5D,SAAgB,wBAAwB,CAAC,MAAmB;IAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE9C,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE,wBAAwB;QAChC,aAAa,EAAE,wBAAwB;QACvC,UAAU,EAAE,wBAAwB;QACpC,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,wBAAwB;QACrC,UAAU,EAAE,6BAA6B;QACzC,cAAc,EAAE,6BAA6B;QAC7C,KAAK,EAAE,uBAAuB;KAC/B,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjB,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC;YAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2DAA2D;AAE3D,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Laracook — Générateur de services API React (un par modèle)
3
+ */
4
+ import { SchemaTable } from '../../types';
5
+ import { GeneratedFile } from '../../types';
6
+ export declare function generateApiService(table: SchemaTable): GeneratedFile;
7
+ export declare function generateBaseApiService(): GeneratedFile;
8
+ //# sourceMappingURL=api-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-service.d.ts","sourceRoot":"","sources":["../../../../src/cooking/frontend/react/api-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CA0DpE;AAED,wBAAgB,sBAAsB,IAAI,aAAa,CAuCtD"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * Laracook — Générateur de services API React (un par modèle)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateApiService = generateApiService;
7
+ exports.generateBaseApiService = generateBaseApiService;
8
+ const helpers_1 = require("../../helpers");
9
+ function generateApiService(table) {
10
+ const model = (0, helpers_1.extractModelName)(table.model);
11
+ const modelLower = (0, helpers_1.camelCase)(model);
12
+ const endpoint = (0, helpers_1.snakeCase)((0, helpers_1.pluralize)(model)).replace(/_/g, '-');
13
+ return {
14
+ path: 'resources/js/services',
15
+ filename: `${modelLower}Service.ts`,
16
+ content: `import api from './api';
17
+
18
+ export interface ${model} {
19
+ id: number;
20
+ ${table.columns
21
+ .filter(c => !c.isPrimaryKey)
22
+ .map(c => ` ${c.name}: ${tsTypeForColumn(c.type)};`)
23
+ .join('\n')}
24
+ }
25
+
26
+ export interface ${model}Paginated {
27
+ data: ${model}[];
28
+ meta: {
29
+ current_page: number;
30
+ last_page: number;
31
+ per_page: number;
32
+ total: number;
33
+ };
34
+ }
35
+
36
+ const ${modelLower}Service = {
37
+ async getAll(params?: Record<string, string | number>): Promise<${model}Paginated> {
38
+ const { data } = await api.get('/${endpoint}', { params });
39
+ return data;
40
+ },
41
+
42
+ async getById(id: number): Promise<${model}> {
43
+ const { data } = await api.get(\`/${endpoint}/\${id}\`);
44
+ return data.data;
45
+ },
46
+
47
+ async create(payload: Partial<${model}>): Promise<${model}> {
48
+ const { data } = await api.post('/${endpoint}', payload);
49
+ return data.data;
50
+ },
51
+
52
+ async update(id: number, payload: Partial<${model}>): Promise<${model}> {
53
+ const { data } = await api.put(\`/${endpoint}/\${id}\`, payload);
54
+ return data.data;
55
+ },
56
+
57
+ async delete(id: number): Promise<void> {
58
+ await api.delete(\`/${endpoint}/\${id}\`);
59
+ },
60
+ };
61
+
62
+ export default ${modelLower}Service;
63
+ `,
64
+ category: 'js',
65
+ };
66
+ }
67
+ function generateBaseApiService() {
68
+ return {
69
+ path: 'resources/js/services',
70
+ filename: 'api.ts',
71
+ content: `import axios from 'axios';
72
+
73
+ const api = axios.create({
74
+ baseURL: import.meta.env.VITE_API_URL || '/api',
75
+ headers: {
76
+ 'Content-Type': 'application/json',
77
+ 'Accept': 'application/json',
78
+ },
79
+ });
80
+
81
+ // Intercepteur : ajouter le token Bearer
82
+ api.interceptors.request.use((config) => {
83
+ const token = localStorage.getItem('auth_token');
84
+ if (token) {
85
+ config.headers.Authorization = \`Bearer \${token}\`;
86
+ }
87
+ return config;
88
+ });
89
+
90
+ // Intercepteur : rediriger sur 401
91
+ api.interceptors.response.use(
92
+ (response) => response,
93
+ (error) => {
94
+ if (error.response?.status === 401) {
95
+ localStorage.removeItem('auth_token');
96
+ window.location.href = '/login';
97
+ }
98
+ return Promise.reject(error);
99
+ },
100
+ );
101
+
102
+ export default api;
103
+ `,
104
+ category: 'js',
105
+ };
106
+ }
107
+ function tsTypeForColumn(type) {
108
+ switch (type) {
109
+ case 'integer':
110
+ case 'bigInteger':
111
+ case 'smallInteger':
112
+ case 'tinyInteger':
113
+ case 'mediumInteger':
114
+ case 'unsignedBigInteger':
115
+ case 'unsignedInteger':
116
+ case 'decimal':
117
+ case 'double':
118
+ case 'float':
119
+ return 'number';
120
+ case 'boolean':
121
+ return 'boolean';
122
+ case 'json':
123
+ case 'jsonb':
124
+ return 'Record<string, unknown>';
125
+ default:
126
+ return 'string';
127
+ }
128
+ }
129
+ //# sourceMappingURL=api-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-service.js","sourceRoot":"","sources":["../../../../src/cooking/frontend/react/api-service.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAMH,gDA0DC;AAED,wDAuCC;AArGD,2CAAkF;AAElF,SAAgB,kBAAkB,CAAC,KAAkB;IACnD,MAAM,KAAK,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,mBAAS,EAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhE,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,GAAG,UAAU,YAAY;QACnC,OAAO,EAAE;;mBAEM,KAAK;;EAEtB,KAAK,CAAC,OAAO;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC;;;mBAGM,KAAK;UACd,KAAK;;;;;;;;;QASP,UAAU;oEACkD,KAAK;uCAClC,QAAQ;;;;uCAIR,KAAK;wCACJ,QAAQ;;;;kCAId,KAAK,eAAe,KAAK;wCACnB,QAAQ;;;;8CAIF,KAAK,eAAe,KAAK;wCAC/B,QAAQ;;;;;0BAKtB,QAAQ;;;;iBAIjB,UAAU;CAC1B;QACG,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCZ;QACG,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC;QAAC,KAAK,YAAY,CAAC;QAAC,KAAK,cAAc,CAAC;QAAC,KAAK,aAAa,CAAC;QAC3E,KAAK,eAAe,CAAC;QAAC,KAAK,oBAAoB,CAAC;QAAC,KAAK,iBAAiB,CAAC;QACxE,KAAK,SAAS,CAAC;QAAC,KAAK,QAAQ,CAAC;QAAC,KAAK,OAAO;YACzC,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM,CAAC;QAAC,KAAK,OAAO;YACvB,OAAO,yBAAyB,CAAC;QACnC;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Laracook — Générateur de pages Auth React (Login, Register, AuthContext)
3
+ */
4
+ import { GeneratedFile } from '../../types';
5
+ export declare function generateLoginPage(): GeneratedFile;
6
+ export declare function generateRegisterPage(): GeneratedFile;
7
+ export declare function generateAuthContext(): GeneratedFile;
8
+ export declare function generateDashboardPage(): GeneratedFile;
9
+ export declare function generateAllAuthFiles(): GeneratedFile[];
10
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/cooking/frontend/react/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,iBAAiB,IAAI,aAAa,CAsFjD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAmHpD;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAqEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAgCrD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAOtD"}