@donotdev/cli 0.0.3

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 (281) hide show
  1. package/LICENSE.md +48 -0
  2. package/README.md +291 -0
  3. package/dependencies-matrix.json +694 -0
  4. package/dist/bin/commands/build.d.ts +11 -0
  5. package/dist/bin/commands/build.d.ts.map +1 -0
  6. package/dist/bin/commands/build.js +8162 -0
  7. package/dist/bin/commands/build.js.map +1 -0
  8. package/dist/bin/commands/bump.d.ts +11 -0
  9. package/dist/bin/commands/bump.d.ts.map +1 -0
  10. package/dist/bin/commands/bump.js +8004 -0
  11. package/dist/bin/commands/bump.js.map +1 -0
  12. package/dist/bin/commands/cacheout.d.ts +11 -0
  13. package/dist/bin/commands/cacheout.d.ts.map +1 -0
  14. package/dist/bin/commands/cacheout.js +7630 -0
  15. package/dist/bin/commands/cacheout.js.map +1 -0
  16. package/dist/bin/commands/create-app.d.ts +11 -0
  17. package/dist/bin/commands/create-app.d.ts.map +1 -0
  18. package/dist/bin/commands/create-app.js +9032 -0
  19. package/dist/bin/commands/create-app.js.map +1 -0
  20. package/dist/bin/commands/create-project.d.ts +11 -0
  21. package/dist/bin/commands/create-project.d.ts.map +1 -0
  22. package/dist/bin/commands/create-project.js +9643 -0
  23. package/dist/bin/commands/create-project.js.map +1 -0
  24. package/dist/bin/commands/deploy.d.ts +11 -0
  25. package/dist/bin/commands/deploy.d.ts.map +1 -0
  26. package/dist/bin/commands/deploy.js +9007 -0
  27. package/dist/bin/commands/deploy.js.map +1 -0
  28. package/dist/bin/commands/dev.d.ts +11 -0
  29. package/dist/bin/commands/dev.d.ts.map +1 -0
  30. package/dist/bin/commands/dev.js +7892 -0
  31. package/dist/bin/commands/dev.js.map +1 -0
  32. package/dist/bin/commands/emu.d.ts +11 -0
  33. package/dist/bin/commands/emu.d.ts.map +1 -0
  34. package/dist/bin/commands/emu.js +8302 -0
  35. package/dist/bin/commands/emu.js.map +1 -0
  36. package/dist/bin/commands/format.d.ts +11 -0
  37. package/dist/bin/commands/format.d.ts.map +1 -0
  38. package/dist/bin/commands/format.js +8009 -0
  39. package/dist/bin/commands/format.js.map +1 -0
  40. package/dist/bin/commands/lint.d.ts +11 -0
  41. package/dist/bin/commands/lint.d.ts.map +1 -0
  42. package/dist/bin/commands/lint.js +7481 -0
  43. package/dist/bin/commands/lint.js.map +1 -0
  44. package/dist/bin/commands/preview.d.ts +11 -0
  45. package/dist/bin/commands/preview.d.ts.map +1 -0
  46. package/dist/bin/commands/preview.js +7909 -0
  47. package/dist/bin/commands/preview.js.map +1 -0
  48. package/dist/bin/commands/sync-secrets.d.ts +11 -0
  49. package/dist/bin/commands/sync-secrets.d.ts.map +1 -0
  50. package/dist/bin/commands/sync-secrets.js +8227 -0
  51. package/dist/bin/commands/sync-secrets.js.map +1 -0
  52. package/dist/bin/dndev.js +222 -0
  53. package/dist/bin/donotdev.js +222 -0
  54. package/dist/index.d.ts +8 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +12820 -0
  57. package/dist/index.js.map +1 -0
  58. package/package.json +71 -0
  59. package/templates/app-demo/index.html.example +20 -0
  60. package/templates/app-demo/public/favicon.ico.example +0 -0
  61. package/templates/app-demo/public/fonts/Roboto-400-cyrillic-ext.woff2.example +0 -0
  62. package/templates/app-demo/public/fonts/Roboto-400-cyrillic.woff2.example +0 -0
  63. package/templates/app-demo/public/fonts/Roboto-400-greek-ext.woff2.example +0 -0
  64. package/templates/app-demo/public/fonts/Roboto-400-greek.woff2.example +0 -0
  65. package/templates/app-demo/public/fonts/Roboto-400-latin-ext.woff2.example +0 -0
  66. package/templates/app-demo/public/fonts/Roboto-400-latin.woff2.example +0 -0
  67. package/templates/app-demo/public/fonts/Roboto-400-vietnamese.woff2.example +0 -0
  68. package/templates/app-demo/public/fonts/Roboto-700-cyrillic-ext.woff2.example +0 -0
  69. package/templates/app-demo/public/fonts/Roboto-700-cyrillic.woff2.example +0 -0
  70. package/templates/app-demo/public/fonts/Roboto-700-greek-ext.woff2.example +0 -0
  71. package/templates/app-demo/public/fonts/Roboto-700-greek.woff2.example +0 -0
  72. package/templates/app-demo/public/fonts/Roboto-700-latin-ext.woff2.example +0 -0
  73. package/templates/app-demo/public/fonts/Roboto-700-latin.woff2.example +0 -0
  74. package/templates/app-demo/public/fonts/Roboto-700-vietnamese.woff2.example +0 -0
  75. package/templates/app-demo/public/fonts/fonts.css.example +144 -0
  76. package/templates/app-demo/public/logo.png.example +0 -0
  77. package/templates/app-demo/public/logo.svg.example +1 -0
  78. package/templates/app-demo/public/manifest.json.example +10 -0
  79. package/templates/app-demo/src/App.tsx.example +17 -0
  80. package/templates/app-demo/src/Routes.tsx.example +20 -0
  81. package/templates/app-demo/src/components/ThemeToggle.tsx.example +48 -0
  82. package/templates/app-demo/src/globals.css.example +4 -0
  83. package/templates/app-demo/src/main.tsx.example +27 -0
  84. package/templates/app-demo/src/pages/DetailPage.tsx.example +103 -0
  85. package/templates/app-demo/src/pages/FullPage.tsx.example +142 -0
  86. package/templates/app-demo/src/pages/HomePage.tsx.example +79 -0
  87. package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +511 -0
  88. package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +152 -0
  89. package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +266 -0
  90. package/templates/app-demo/src/pages/components/LayoutRoute.tsx.example +20 -0
  91. package/templates/app-demo/src/pages/components/componentConfig.ts.example +921 -0
  92. package/templates/app-demo/src/themes.css.example +179 -0
  93. package/templates/app-demo/tsconfig.json.example +9 -0
  94. package/templates/app-demo/vite.config.ts.example +53 -0
  95. package/templates/app-next/.env.example +92 -0
  96. package/templates/app-next/next.config.ts.example +8 -0
  97. package/templates/app-next/postcss.config.js.example +58 -0
  98. package/templates/app-next/service-account-key.json.example +2 -0
  99. package/templates/app-next/src/app/ClientLayout.tsx.example +39 -0
  100. package/templates/app-next/src/app/layout.tsx.example +52 -0
  101. package/templates/app-next/src/app/not-found.tsx.example +21 -0
  102. package/templates/app-next/src/config/app.ts.example +75 -0
  103. package/templates/app-next/src/config/legal.ts.example +170 -0
  104. package/templates/app-next/src/globals.css.example +15 -0
  105. package/templates/app-next/src/locales/dndev_en.json.example +516 -0
  106. package/templates/app-next/src/pages/HomePage.tsx.example +20 -0
  107. package/templates/app-next/src/pages/legal/LegalNoticePage.tsx.example +75 -0
  108. package/templates/app-next/src/pages/legal/PrivacyPage.tsx.example +69 -0
  109. package/templates/app-next/src/pages/legal/TermsPage.tsx.example +71 -0
  110. package/templates/app-next/src/themes.css.example +179 -0
  111. package/templates/app-next/tsconfig.json.example +11 -0
  112. package/templates/app-payload/.env.example +28 -0
  113. package/templates/app-payload/README.md.example +233 -0
  114. package/templates/app-payload/collections/Company.ts.example +125 -0
  115. package/templates/app-payload/collections/Hero.ts.example +62 -0
  116. package/templates/app-payload/collections/Media.ts.example +41 -0
  117. package/templates/app-payload/collections/Products.ts.example +115 -0
  118. package/templates/app-payload/collections/Services.ts.example +104 -0
  119. package/templates/app-payload/collections/Testimonials.ts.example +92 -0
  120. package/templates/app-payload/collections/Users.ts.example +35 -0
  121. package/templates/app-payload/src/server.ts.example +79 -0
  122. package/templates/app-payload/tsconfig.json.example +24 -0
  123. package/templates/app-vite/.env.example +77 -0
  124. package/templates/app-vite/index.html.example +127 -0
  125. package/templates/app-vite/service-account-key.json.example +2 -0
  126. package/templates/app-vite/src/App.tsx.example +39 -0
  127. package/templates/app-vite/src/Routes.tsx.example +16 -0
  128. package/templates/app-vite/src/config/app.ts.example +75 -0
  129. package/templates/app-vite/src/config/legal.ts.example +170 -0
  130. package/templates/app-vite/src/globals.css.example +11 -0
  131. package/templates/app-vite/src/locales/dndev_en.json.example +516 -0
  132. package/templates/app-vite/src/main.tsx.example +21 -0
  133. package/templates/app-vite/src/pages/HomePage.tsx.example +22 -0
  134. package/templates/app-vite/src/pages/NotFoundPage.tsx.example +33 -0
  135. package/templates/app-vite/src/pages/legal/LegalNoticePage.tsx.example +75 -0
  136. package/templates/app-vite/src/pages/legal/PrivacyPage.tsx.example +69 -0
  137. package/templates/app-vite/src/pages/legal/TermsPage.tsx.example +71 -0
  138. package/templates/app-vite/src/pages/locales/README.md.example +1 -0
  139. package/templates/app-vite/src/pages/locales/example_en.json.example +5 -0
  140. package/templates/app-vite/src/themes.css.example +179 -0
  141. package/templates/app-vite/tsconfig.json.example +9 -0
  142. package/templates/app-vite/vite.config.ts.example +9 -0
  143. package/templates/functions-firebase/README.md.example +129 -0
  144. package/templates/functions-firebase/build.mjs.example +52 -0
  145. package/templates/functions-firebase/functions-firebase/.env.example.example +45 -0
  146. package/templates/functions-firebase/functions-firebase/README.md.example +123 -0
  147. package/templates/functions-firebase/functions-firebase/build.mjs.example +52 -0
  148. package/templates/functions-firebase/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
  149. package/templates/functions-firebase/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
  150. package/templates/functions-firebase/functions-firebase/src/auth/index.ts.example +11 -0
  151. package/templates/functions-firebase/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
  152. package/templates/functions-firebase/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
  153. package/templates/functions-firebase/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
  154. package/templates/functions-firebase/functions-firebase/src/billing/index.ts.example +10 -0
  155. package/templates/functions-firebase/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
  156. package/templates/functions-firebase/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
  157. package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +19 -0
  158. package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
  159. package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +14 -0
  160. package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +12 -0
  161. package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +14 -0
  162. package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +14 -0
  163. package/templates/functions-firebase/functions-firebase/src/index.ts.example +45 -0
  164. package/templates/functions-firebase/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
  165. package/templates/functions-firebase/functions-firebase/src/oauth/disconnect.ts.example +14 -0
  166. package/templates/functions-firebase/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
  167. package/templates/functions-firebase/functions-firebase/src/oauth/getConnections.ts.example +14 -0
  168. package/templates/functions-firebase/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
  169. package/templates/functions-firebase/functions-firebase/src/oauth/index.ts.example +17 -0
  170. package/templates/functions-firebase/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
  171. package/templates/functions-firebase/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
  172. package/templates/functions-firebase/functions-firebase/tsconfig.json.example +21 -0
  173. package/templates/functions-firebase/functions.yaml.example +14 -0
  174. package/templates/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
  175. package/templates/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
  176. package/templates/functions-firebase/src/auth/index.ts.example +11 -0
  177. package/templates/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
  178. package/templates/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
  179. package/templates/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
  180. package/templates/functions-firebase/src/billing/index.ts.example +10 -0
  181. package/templates/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
  182. package/templates/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
  183. package/templates/functions-firebase/src/crud/createEntity.ts.example +19 -0
  184. package/templates/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
  185. package/templates/functions-firebase/src/crud/getEntity.ts.example +14 -0
  186. package/templates/functions-firebase/src/crud/index.ts.example +12 -0
  187. package/templates/functions-firebase/src/crud/listEntities.ts.example +14 -0
  188. package/templates/functions-firebase/src/crud/updateEntity.ts.example +14 -0
  189. package/templates/functions-firebase/src/index.ts.example +45 -0
  190. package/templates/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
  191. package/templates/functions-firebase/src/oauth/disconnect.ts.example +14 -0
  192. package/templates/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
  193. package/templates/functions-firebase/src/oauth/getConnections.ts.example +14 -0
  194. package/templates/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
  195. package/templates/functions-firebase/src/oauth/index.ts.example +17 -0
  196. package/templates/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
  197. package/templates/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
  198. package/templates/functions-firebase/tsconfig.json.example +24 -0
  199. package/templates/functions-vercel/README.md.example +116 -0
  200. package/templates/functions-vercel/build.mjs.example +52 -0
  201. package/templates/functions-vercel/functions-vercel/.env.example.example +37 -0
  202. package/templates/functions-vercel/functions-vercel/README.md.example +116 -0
  203. package/templates/functions-vercel/functions-vercel/build.mjs.example +52 -0
  204. package/templates/functions-vercel/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
  205. package/templates/functions-vercel/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
  206. package/templates/functions-vercel/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
  207. package/templates/functions-vercel/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
  208. package/templates/functions-vercel/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
  209. package/templates/functions-vercel/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
  210. package/templates/functions-vercel/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
  211. package/templates/functions-vercel/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
  212. package/templates/functions-vercel/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
  213. package/templates/functions-vercel/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
  214. package/templates/functions-vercel/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
  215. package/templates/functions-vercel/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
  216. package/templates/functions-vercel/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
  217. package/templates/functions-vercel/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
  218. package/templates/functions-vercel/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
  219. package/templates/functions-vercel/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
  220. package/templates/functions-vercel/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
  221. package/templates/functions-vercel/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
  222. package/templates/functions-vercel/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
  223. package/templates/functions-vercel/functions-vercel/tsconfig.json.example +21 -0
  224. package/templates/functions-vercel/functions-vercel/vercel.json.example +14 -0
  225. package/templates/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
  226. package/templates/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
  227. package/templates/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
  228. package/templates/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
  229. package/templates/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
  230. package/templates/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
  231. package/templates/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
  232. package/templates/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
  233. package/templates/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
  234. package/templates/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
  235. package/templates/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
  236. package/templates/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
  237. package/templates/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
  238. package/templates/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
  239. package/templates/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
  240. package/templates/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
  241. package/templates/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
  242. package/templates/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
  243. package/templates/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
  244. package/templates/functions-vercel/tsconfig.json.example +24 -0
  245. package/templates/functions-vercel/vercel.json.example +14 -0
  246. package/templates/github/github/workflows/firebase-deploy.yml.example +79 -0
  247. package/templates/github/workflows/firebase-deploy.yml.example +79 -0
  248. package/templates/root-consumer/.env.example +19 -0
  249. package/templates/root-consumer/.gitignore.example +82 -0
  250. package/templates/root-consumer/.prettierrc.cjs.example +12 -0
  251. package/templates/root-consumer/CLAUDE.md.example +73 -0
  252. package/templates/root-consumer/README.md.example +295 -0
  253. package/templates/root-consumer/bunfig.toml.example +68 -0
  254. package/templates/root-consumer/eslint.config.js.example +336 -0
  255. package/templates/root-consumer/firebase.json.example +348 -0
  256. package/templates/root-consumer/guides/AGENT_START_HERE.md.example +98 -0
  257. package/templates/root-consumer/guides/APP_CHECK_SETUP.md.example +111 -0
  258. package/templates/root-consumer/guides/AUTH_SETUP.md.example +92 -0
  259. package/templates/root-consumer/guides/BILLING_SETUP.md.example +120 -0
  260. package/templates/root-consumer/guides/CLI.md.example +293 -0
  261. package/templates/root-consumer/guides/COMPONENTS.md.example +875 -0
  262. package/templates/root-consumer/guides/CONFIG_SETUP.md.example +132 -0
  263. package/templates/root-consumer/guides/EMULATOR_SETUP.md.example +48 -0
  264. package/templates/root-consumer/guides/FEATURES.md.example +286 -0
  265. package/templates/root-consumer/guides/FRAMEWORK_OVERVIEW.md.example +97 -0
  266. package/templates/root-consumer/guides/FUNCTIONS.md.example +177 -0
  267. package/templates/root-consumer/guides/GETTING_STARTED.md.example +451 -0
  268. package/templates/root-consumer/guides/HOW_TO_USE.md.example +296 -0
  269. package/templates/root-consumer/guides/I18N_SETUP.md.example +204 -0
  270. package/templates/root-consumer/guides/IMPORT_PATTERNS.md.example +79 -0
  271. package/templates/root-consumer/guides/INDEX.md.example +50 -0
  272. package/templates/root-consumer/guides/INSTALLATION.md.example +296 -0
  273. package/templates/root-consumer/guides/LAYOUTS.md.example +310 -0
  274. package/templates/root-consumer/guides/PAGES_SETUP.md.example +123 -0
  275. package/templates/root-consumer/guides/STYLING.md.example +273 -0
  276. package/templates/root-consumer/guides/THEMING_SETUP.md.example +119 -0
  277. package/templates/root-consumer/guides/VERSION_CONTROL.md.example +181 -0
  278. package/templates/root-consumer/tsconfig.functions.json.example +15 -0
  279. package/templates/root-consumer/tsconfig.json.example +18 -0
  280. package/templates/root-consumer/turbo.json.example +46 -0
  281. package/templates/root-consumer/vercel.json.example +124 -0
@@ -0,0 +1,127 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+
6
+ <!-- ✅ CORE: Performance-critical meta tags first -->
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
+ <meta name="color-scheme" content="light dark" />
9
+
10
+ <!-- ✅ DnDev: Framework will inject FaviconHead here -->
11
+ <!-- All favicon links will be added by FaviconHead component -->
12
+
13
+ <!-- ✅ DnDev: Asset manifest injection point -->
14
+ <!-- window.__DNDEV_ASSETS__ and __DNDEV_ASSET_MANIFEST__ injected here -->
15
+
16
+ <!-- ✅ PWA: Manifest link (if exists) -->
17
+ <link rel="manifest" href="/manifest.json" />
18
+
19
+ <!-- ✅ PERFORMANCE: Preconnect to external domains (OAuth providers) -->
20
+ <!-- GitHub OAuth -->
21
+ <link rel="preconnect" href="https://github.com">
22
+ <link rel="preconnect" href="https://api.github.com">
23
+ <!-- Google OAuth (remove if not using) -->
24
+ <link rel="preconnect" href="https://accounts.google.com">
25
+ <link rel="preconnect" href="https://oauth2.googleapis.com">
26
+ <link rel="preconnect" href="https://apis.google.com">
27
+ <link rel="preconnect" href="https://www.googleapis.com">
28
+
29
+ <!-- ✅ SEO: Basic meta tags (AutoMetaTags will override these) -->
30
+ <title>Loading...</title>
31
+ <meta name="description" content="Modern web application powered by DoNotDev" />
32
+
33
+
34
+ <!-- ✅ PERFORMANCE: Critical CSS inlined here by build -->
35
+ <style>
36
+ /* Critical above-the-fold styles */
37
+ body {
38
+ margin: 0;
39
+ font-family: var(--font-family, ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, Monaco, 'Liberation Mono', monospace);
40
+ line-height: 1.5;
41
+ -webkit-font-smoothing: antialiased;
42
+ -moz-osx-font-smoothing: grayscale;
43
+ background: #ffffff;
44
+ color: #000000;
45
+ }
46
+ @media (prefers-color-scheme: dark) {
47
+ body {
48
+ background: #000000;
49
+ color: #ffffff;
50
+ }
51
+ }
52
+ /* Critical shell loader styles - pure CSS, instant render */
53
+ #shell-loader {
54
+ position: fixed;
55
+ top: 0;
56
+ left: 0;
57
+ width: 100%;
58
+ height: 100%;
59
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ z-index: 9999;
64
+ opacity: 1;
65
+ transition: opacity 0.3s ease-out;
66
+ }
67
+ #shell-loader.shell-loader--fading {
68
+ opacity: 0;
69
+ }
70
+ .shell-loader__content {
71
+ text-align: center;
72
+ color: white;
73
+ font-family: ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, Monaco, 'Liberation Mono', monospace !important;
74
+ font-size: 2.4em;
75
+ font-weight: 500;
76
+ line-height: 1.8;
77
+ }
78
+ .shell-loader__brand {
79
+ display: block;
80
+ }
81
+ .shell-loader__dots {
82
+ display: inline-flex;
83
+ align-items: center;
84
+ gap: 12px;
85
+ }
86
+ .shell-loader__dots span {
87
+ display: inline-block;
88
+ width: 12px;
89
+ height: 12px;
90
+ border-radius: 50%;
91
+ background: white;
92
+ animation: blink 1.4s infinite;
93
+ }
94
+ .shell-loader__dots span:nth-child(1) { animation-delay: 0s; }
95
+ .shell-loader__dots span:nth-child(2) { animation-delay: 0.2s; }
96
+ .shell-loader__dots span:nth-child(3) { animation-delay: 0.4s; }
97
+ .shell-loader__content > :last-child {
98
+ display: block;
99
+ }
100
+ @keyframes blink {
101
+ 0%, 80%, 100% { opacity: 0.3; }
102
+ 40% { opacity: 1; }
103
+ }
104
+ </style>
105
+ </head>
106
+ <body>
107
+
108
+ <!-- ✅ SHELL LOADER: Branded loading experience before React loads -->
109
+ <div id="shell-loader">
110
+ <div class="shell-loader__content">
111
+ <span class="shell-loader__brand">DoNotDev</span>
112
+ <span class="shell-loader__dots">
113
+ <span></span>
114
+ <span></span>
115
+ <span></span>
116
+ </span>
117
+ <span>is loading</span>
118
+ </div>
119
+ </div>
120
+
121
+ <!-- ✅ APP: React app container -->
122
+ <div id="root"></div>
123
+
124
+ <!-- ✅ PERFORMANCE: Module script with proper attributes -->
125
+ <script type="module" src="/src/main.tsx"></script>
126
+ </body>
127
+ </html>
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Main application component
3
+ * @description Root application component with configuration-driven architecture
4
+ * @version 0.0.1
5
+ * @since 0.0.1
6
+ * @author AMBROISE PARK Consulting
7
+ */
8
+
9
+ import { ViteAppProviders } from '@donotdev/ui/vite';
10
+ import { appConfig } from './config/app';
11
+
12
+ /**
13
+ * Main application component
14
+ *
15
+ * Configuration-driven architecture with smart defaults.
16
+ * Layout preset comes from appConfig.preset (configured in config/app.ts).
17
+ * Layout prop is for breadcrumbs and slot customizations only.
18
+ * CSS variable overrides should be done in themes.css.
19
+ * Override only what you need - everything else has sensible defaults.
20
+ *
21
+ * Note: HomePage.tsx in src/pages/ is automatically used for the root route "/"
22
+ *
23
+ * @version 0.0.1
24
+ * @since 0.0.1
25
+ * @author AMBROISE PARK Consulting
26
+ */
27
+ export function App() {
28
+ return (
29
+ <ViteAppProviders
30
+ config={appConfig}
31
+ layout={{
32
+ breadcrumbs: 'smart', // 'smart' | 'always' | 'never' | false
33
+ header: {
34
+ // end: () => <YourHeaderActions />,
35
+ },
36
+ }}
37
+ />
38
+ );
39
+ }
@@ -0,0 +1,16 @@
1
+
2
+ import { Routes as RouterRoutes, Route } from 'react-router-dom';
3
+
4
+ // Import your pages
5
+ import HomePage from './pages/HomePage';
6
+
7
+
8
+ export function Routes() {
9
+ return (
10
+ <RouterRoutes>
11
+ {/* Public routes */}
12
+ <Route path="/" element={<HomePage />} />
13
+ {/* Protected routes */}
14
+ </RouterRoutes>
15
+ );
16
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @fileoverview Application configuration
3
+ * @description Defines application metadata and feature flags
4
+ * @version 0.0.1
5
+ * @since 0.0.1
6
+ * @author AMBROISE PARK Consulting
7
+ */
8
+
9
+ import type { AppConfig } from '@donotdev/core';
10
+
11
+ /**
12
+ * Application name constant
13
+ *
14
+ * @version 0.0.1
15
+ * @since 0.0.1
16
+ * @author AMBROISE PARK Consulting
17
+ */
18
+ export const APP_NAME = '{{appName}}';
19
+
20
+ /**
21
+ * Application short name constant
22
+ *
23
+ * @version 0.0.1
24
+ * @since 0.0.1
25
+ * @author AMBROISE PARK Consulting
26
+ */
27
+ export const APP_SHORT_NAME = '{{appShortName}}';
28
+
29
+ /**
30
+ * Application description constant
31
+ *
32
+ * @version 0.0.1
33
+ * @since 0.0.1
34
+ * @author AMBROISE PARK Consulting
35
+ */
36
+ export const APP_DESCRIPTION = 'Built with DoNotDev Framework';
37
+
38
+ /**
39
+ * Application configuration object
40
+ *
41
+ * @version 0.0.1
42
+ * @since 0.0.1
43
+ * @author AMBROISE PARK Consulting
44
+ */
45
+ export const appConfig: AppConfig = {
46
+ app: {
47
+ name: APP_NAME,
48
+ shortName: APP_SHORT_NAME,
49
+ description: APP_DESCRIPTION,
50
+ // Optional: Configure footer legal links
51
+ // Remove any links you don't need
52
+ footer: {
53
+ legalLinks: [
54
+ { path: '#cookie-settings', label: 'footer.legal.cookieSettings' },
55
+ { path: '/legal/privacy', label: 'footer.legal.privacyPolicy' },
56
+ { path: '/legal/terms', label: 'footer.legal.termsOfService' },
57
+ // Add more links as needed:
58
+ // { path: '/legal/legal-notice', label: 'footer.legal.legalNotice' },
59
+ // { path: '/license', label: 'License' },
60
+ ],
61
+ },
62
+ },
63
+ preset: 'landing', // 'landing' | 'admin' | 'moolti' | 'docs' | 'blog' | 'game' | 'plain'
64
+ features: {
65
+ // Optional: Enable debug tools in development
66
+ // debug: true,
67
+ },
68
+ // Optional: Override auth routes
69
+ // auth: {
70
+ // authRoute: '/signin',
71
+ // roleRoute: '/403',
72
+ // tierRoute: '/pricing',
73
+ // },
74
+ };
75
+
@@ -0,0 +1,170 @@
1
+ // src/config/legal.ts
2
+
3
+ /**
4
+ * @fileoverview Legal Information Configuration
5
+ * @description Centralized legal information for Terms, Privacy, and Legal Notice pages
6
+ *
7
+ * IMPORTANT: Configure your actual legal information here.
8
+ * This file is used by all legal pages (Terms of Service, Privacy Policy, Legal Notice).
9
+ *
10
+ * @version 0.0.1
11
+ * @since 0.0.1
12
+ */
13
+
14
+ import type { LegalConfig } from '@donotdev/core';
15
+
16
+ /**
17
+ * Legal Configuration
18
+ *
19
+ * Fill in your actual company and legal information below.
20
+ * Remove any optional fields you don't need.
21
+ *
22
+ * For detailed documentation on each field, see the JSDoc in @donotdev/types or
23
+ * hover over any field in your IDE for inline documentation.
24
+ */
25
+ export const legalConfig: LegalConfig = {
26
+ /**
27
+ * Company/Publisher Information
28
+ */
29
+ company: {
30
+ name: 'Your Company Name', // Required - Full legal name
31
+ shortName: 'YCN', // Optional - Abbreviation
32
+ legalStatus: 'LLC', // Optional - e.g., "LLC", "SARL", "SAS", "GmbH", "Ltd"
33
+ registrationNumber: '123456789', // Optional but recommended - e.g., SIRET (France), Company Number (UK), EIN (USA)
34
+ vatNumber: 'XX123456789', // Optional - VAT/Tax ID, required for EU businesses
35
+ shareCapital: '10,000 USD', // Optional - Required in some jurisdictions like France
36
+ },
37
+
38
+ /**
39
+ * Contact Information
40
+ */
41
+ contact: {
42
+ address: '123 Main Street, City, State/Province, Postal Code, Country', // Required - Registered office address
43
+ email: 'legal@yourcompany.com', // Required - Legal contact email
44
+ phone: '+1 (555) 123-4567', // Optional but recommended
45
+ supportEmail: 'support@yourcompany.com', // Required - Customer support email
46
+ privacyEmail: 'privacy@yourcompany.com', // Required - Privacy inquiries
47
+ dpoEmail: 'dpo@yourcompany.com', // Required for GDPR compliance if processing significant personal data
48
+ },
49
+
50
+ /**
51
+ * Publication Director
52
+ *
53
+ * The person legally responsible for the website's content.
54
+ * Required by law in France ("Directeur de la publication").
55
+ */
56
+ director: {
57
+ name: 'John Doe', // Required - Full name of the responsible person
58
+ role: 'CEO', // Optional - Their title/role
59
+ },
60
+
61
+ /**
62
+ * Hosting Provider
63
+ *
64
+ * Information about where your website is hosted.
65
+ * Required by law in many jurisdictions including France.
66
+ */
67
+ hosting: {
68
+ provider: 'Firebase Hosting by Google', // Required - Hosting service name
69
+ address: 'Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA', // Optional - Hosting provider's address
70
+ contact: 'https://firebase.google.com/support', // Optional - Support URL or email
71
+ },
72
+
73
+ /**
74
+ * Legal Jurisdiction
75
+ *
76
+ * Where your business operates and how disputes are resolved.
77
+ */
78
+ jurisdiction: {
79
+ country: 'United States', // Required - Operating jurisdiction
80
+ arbitrationOrg: 'American Arbitration Association', // Optional - For dispute resolution
81
+ arbitrationLocation: 'New York, NY', // Optional - Where arbitration would occur
82
+ },
83
+
84
+ /**
85
+ * Website Information
86
+ */
87
+ website: {
88
+ url: 'https://yourcompany.com', // Required - Your main website URL
89
+ },
90
+
91
+ /**
92
+ * Optional Sections Configuration
93
+ *
94
+ * Enable/disable specific sections in your legal pages.
95
+ * Set to true to include, false to exclude.
96
+ */
97
+ sections: {
98
+ // Terms of Service sections
99
+ terms: {
100
+ children: false, // Include children-specific provisions (COPPA)
101
+ international: true, // Include international users provisions
102
+ california: false, // Include California-specific provisions (CCPA)
103
+ eu: true, // Include EU-specific provisions
104
+ },
105
+ // Privacy Policy sections
106
+ privacy: {
107
+ children: false, // Include children's privacy provisions (COPPA)
108
+ international: true, // Include international data transfer provisions
109
+ california: false, // Include California privacy rights (CCPA)
110
+ eu: true, // Include EU privacy provisions (GDPR)
111
+ },
112
+ // Legal Notice sections
113
+ legalNotice: {
114
+ intellectualProperty: true, // Include IP notice
115
+ personalData: true, // Include link to Privacy Policy
116
+ cookies: true, // Include cookies reference
117
+ },
118
+ },
119
+ } as const;
120
+
121
+ /**
122
+ * Type-safe access to legal config
123
+ */
124
+ export type AppLegalConfig = typeof legalConfig;
125
+
126
+ /**
127
+ * QUICK START CHECKLIST:
128
+ *
129
+ * 1. Company Information:
130
+ * - [ ] Update company.name with your legal entity name
131
+ * - [ ] Set company.legalStatus (SARL, LLC, GmbH, etc.)
132
+ * - [ ] Add company.registrationNumber (SIRET, EIN, Company Number)
133
+ * - [ ] Add company.vatNumber if you're in the EU or have VAT obligations
134
+ *
135
+ * 2. Contact Information:
136
+ * - [ ] Update contact.address with your registered office
137
+ * - [ ] Set contact.email for legal notices
138
+ * - [ ] Set contact.supportEmail for customer support
139
+ * - [ ] Set contact.privacyEmail for GDPR/privacy requests
140
+ * - [ ] Set contact.dpoEmail if you have a Data Protection Officer
141
+ *
142
+ * 3. Legal Responsibility:
143
+ * - [ ] Update director.name (person responsible for content)
144
+ * - [ ] Set director.role (CEO, Director, etc.)
145
+ *
146
+ * 4. Hosting:
147
+ * - [ ] Verify hosting.provider is correct
148
+ * - [ ] Update hosting.address and hosting.contact if needed
149
+ *
150
+ * 5. Jurisdiction:
151
+ * - [ ] Set jurisdiction.country where you operate
152
+ * - [ ] Configure arbitration details if needed
153
+ *
154
+ * 6. Optional Sections:
155
+ * - [ ] Review and enable/disable sections based on your needs
156
+ * - [ ] Enable sections.*.eu if you have EU users (GDPR)
157
+ * - [ ] Enable sections.*.california if you have California users (CCPA)
158
+ *
159
+ * LEGAL COMPLIANCE NOTES:
160
+ *
161
+ * - France: All fields with "Required" are mandatory for French websites
162
+ * - EU/GDPR: contact.dpoEmail is required if you process significant personal data
163
+ * - USA/California: Enable California sections if you have California users
164
+ * - International: Enable international sections for global audience
165
+ *
166
+ * For more information, consult your legal advisor or refer to:
167
+ * - https://docs.dndev.com/legal/configuration (framework docs)
168
+ * - Your local business registration authority
169
+ * - GDPR guidance: https://gdpr.eu
170
+ */
@@ -0,0 +1,11 @@
1
+ /* apps/{{appName}}/src/globals.css */
2
+ @import '@donotdev/ui/dndev.css';
3
+
4
+ @import './themes.css';
5
+
6
+ /* Override framework's default font to use Roboto */
7
+ :root {
8
+ --font-sans: 'Roboto', sans-serif;
9
+ --font-mono: 'Roboto Mono', monospace;
10
+ --font-family: var(--font-sans);
11
+ }