@sibyllinesoft/arbiter 0.1.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.
Files changed (302) hide show
  1. package/README.md +222 -0
  2. package/dist/cli.js +28718 -0
  3. package/dist/templates/plopfiles/__tests__/build-systems.test.ts +730 -0
  4. package/dist/templates/plopfiles/__tests__/e2e.test.ts +451 -0
  5. package/dist/templates/plopfiles/__tests__/generation.test.ts +384 -0
  6. package/dist/templates/plopfiles/__tests__/linting.test.ts +854 -0
  7. package/dist/templates/plopfiles/__tests__/modules.test.ts +278 -0
  8. package/dist/templates/plopfiles/__tests__/smoke.test.ts +619 -0
  9. package/dist/templates/plopfiles/__tests__/templates.test.ts +341 -0
  10. package/dist/templates/plopfiles/_modules/backends/go-chi/module.js +43 -0
  11. package/dist/templates/plopfiles/_modules/backends/go-chi/templates/.air.toml.hbs +30 -0
  12. package/dist/templates/plopfiles/_modules/backends/go-chi/templates/cmd/server/main.go.hbs +50 -0
  13. package/dist/templates/plopfiles/_modules/backends/go-chi/templates/go.mod.hbs +9 -0
  14. package/dist/templates/plopfiles/_modules/backends/go-chi/templates/internal/handlers/health.go.hbs +51 -0
  15. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/module.js +38 -0
  16. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/templates/build.gradle.kts.hbs +37 -0
  17. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/templates/settings.gradle.kts.hbs +1 -0
  18. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/templates/src/main/kotlin/Application.kt.hbs +44 -0
  19. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/templates/src/main/kotlin/routes/Health.kt.hbs +41 -0
  20. package/dist/templates/plopfiles/_modules/backends/kotlin-ktor/templates/src/main/resources/logback.xml.hbs +11 -0
  21. package/dist/templates/plopfiles/_modules/backends/node-express/module.js +54 -0
  22. package/dist/templates/plopfiles/_modules/backends/node-express/templates/src/index.ts.hbs +37 -0
  23. package/dist/templates/plopfiles/_modules/backends/node-express/templates/src/routes/health.ts.hbs +21 -0
  24. package/dist/templates/plopfiles/_modules/backends/node-express/templates/tsconfig.json.hbs +18 -0
  25. package/dist/templates/plopfiles/_modules/backends/node-hono/module.js +56 -0
  26. package/dist/templates/plopfiles/_modules/backends/node-hono/templates/src/index.ts.hbs +30 -0
  27. package/dist/templates/plopfiles/_modules/backends/node-hono/templates/src/routes/health.ts.hbs +64 -0
  28. package/dist/templates/plopfiles/_modules/backends/node-hono/templates/src/routes/index.ts.hbs +38 -0
  29. package/dist/templates/plopfiles/_modules/backends/node-hono/templates/tsconfig.json.hbs +20 -0
  30. package/dist/templates/plopfiles/_modules/backends/node-hono/templates/typedoc.json.hbs +25 -0
  31. package/dist/templates/plopfiles/_modules/backends/python-fastapi/module.js +65 -0
  32. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/app/__init__.py.hbs +1 -0
  33. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/app/config.py.hbs +28 -0
  34. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/app/main.py.hbs +40 -0
  35. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/app/routers/__init__.py.hbs +1 -0
  36. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/app/routers/health.py.hbs +24 -0
  37. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/pyproject.toml.hbs +40 -0
  38. package/dist/templates/plopfiles/_modules/backends/python-fastapi/templates/requirements.txt.hbs +6 -0
  39. package/dist/templates/plopfiles/_modules/backends/rust-axum/module.js +44 -0
  40. package/dist/templates/plopfiles/_modules/backends/rust-axum/templates/Cargo.toml.hbs +23 -0
  41. package/dist/templates/plopfiles/_modules/backends/rust-axum/templates/src/health.rs.hbs +41 -0
  42. package/dist/templates/plopfiles/_modules/backends/rust-axum/templates/src/main.rs.hbs +57 -0
  43. package/dist/templates/plopfiles/_modules/cloud/aws/module.js +33 -0
  44. package/dist/templates/plopfiles/_modules/cloud/aws/templates/aws-alb.tf.hbs +92 -0
  45. package/dist/templates/plopfiles/_modules/cloud/aws/templates/aws-ecs.tf.hbs +84 -0
  46. package/dist/templates/plopfiles/_modules/cloud/aws/templates/aws-iam.tf.hbs +60 -0
  47. package/dist/templates/plopfiles/_modules/cloud/aws/templates/aws-vpc.tf.hbs +106 -0
  48. package/dist/templates/plopfiles/_modules/cloud/aws/templates/aws.tf.hbs +56 -0
  49. package/dist/templates/plopfiles/_modules/cloud/azure/module.js +31 -0
  50. package/dist/templates/plopfiles/_modules/cloud/azure/templates/azure-container-apps.tf.hbs +99 -0
  51. package/dist/templates/plopfiles/_modules/cloud/azure/templates/azure.tf.hbs +54 -0
  52. package/dist/templates/plopfiles/_modules/cloud/cloudflare/module.js +43 -0
  53. package/dist/templates/plopfiles/_modules/cloud/cloudflare/templates/src/types.d.ts.hbs +6 -0
  54. package/dist/templates/plopfiles/_modules/cloud/cloudflare/templates/src/worker.ts.hbs +51 -0
  55. package/dist/templates/plopfiles/_modules/cloud/cloudflare/templates/wrangler.toml.hbs +36 -0
  56. package/dist/templates/plopfiles/_modules/cloud/gcp/module.js +31 -0
  57. package/dist/templates/plopfiles/_modules/cloud/gcp/templates/gcp-cloudrun.tf.hbs +89 -0
  58. package/dist/templates/plopfiles/_modules/cloud/gcp/templates/gcp.tf.hbs +62 -0
  59. package/dist/templates/plopfiles/_modules/cloud/supabase/module.js +51 -0
  60. package/dist/templates/plopfiles/_modules/cloud/supabase/templates/src/lib/supabase.ts.hbs +25 -0
  61. package/dist/templates/plopfiles/_modules/cloud/supabase/templates/src/types/supabase.ts.hbs +52 -0
  62. package/dist/templates/plopfiles/_modules/cloud/supabase/templates/supabase/config.toml.hbs +71 -0
  63. package/dist/templates/plopfiles/_modules/cloud/supabase/templates/supabase/functions/hello/index.ts.hbs +34 -0
  64. package/dist/templates/plopfiles/_modules/cloud/supabase/templates/supabase/migrations/00000000000000_init.sql.hbs +60 -0
  65. package/dist/templates/plopfiles/_modules/composer.js +180 -0
  66. package/dist/templates/plopfiles/_modules/databases/postgres-drizzle/drizzle.config.ts.hbs +10 -0
  67. package/dist/templates/plopfiles/_modules/databases/postgres-drizzle/module.js +53 -0
  68. package/dist/templates/plopfiles/_modules/databases/postgres-drizzle/templates/index.ts.hbs +15 -0
  69. package/dist/templates/plopfiles/_modules/databases/postgres-drizzle/templates/schema.ts.hbs +21 -0
  70. package/dist/templates/plopfiles/_modules/desktop/electron/module.js +51 -0
  71. package/dist/templates/plopfiles/_modules/desktop/electron/templates/forge.config.ts.hbs +38 -0
  72. package/dist/templates/plopfiles/_modules/desktop/electron/templates/package.json.hbs +22 -0
  73. package/dist/templates/plopfiles/_modules/desktop/electron/templates/src/main.ts.hbs +48 -0
  74. package/dist/templates/plopfiles/_modules/desktop/electron/templates/src/preload.ts.hbs +18 -0
  75. package/dist/templates/plopfiles/_modules/desktop/electron/templates/tsconfig.json.hbs +14 -0
  76. package/dist/templates/plopfiles/_modules/desktop/tauri/module.js +38 -0
  77. package/dist/templates/plopfiles/_modules/desktop/tauri/templates/src-tauri/Cargo.toml.hbs +20 -0
  78. package/dist/templates/plopfiles/_modules/desktop/tauri/templates/src-tauri/build.rs.hbs +3 -0
  79. package/dist/templates/plopfiles/_modules/desktop/tauri/templates/src-tauri/src/main.rs.hbs +30 -0
  80. package/dist/templates/plopfiles/_modules/desktop/tauri/templates/src-tauri/tauri.conf.json.hbs +44 -0
  81. package/dist/templates/plopfiles/_modules/docs/mkdocs/module.js +61 -0
  82. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/architecture/components.md.hbs +37 -0
  83. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/architecture/overview.md.hbs +43 -0
  84. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/contributing/development.md.hbs +164 -0
  85. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/contributing/guidelines.md.hbs +50 -0
  86. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/getting-started/configuration.md.hbs +37 -0
  87. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/getting-started/installation.md.hbs +53 -0
  88. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/getting-started/quickstart.md.hbs +39 -0
  89. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/index.md.hbs +44 -0
  90. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/javascripts/extra.js.hbs +23 -0
  91. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/docs/stylesheets/extra.css.hbs +51 -0
  92. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/mkdocs.yml.hbs +141 -0
  93. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/requirements-docs.txt.hbs +15 -0
  94. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/scripts/aggregate-docs.mjs.hbs +188 -0
  95. package/dist/templates/plopfiles/_modules/docs/mkdocs/templates/scripts/gen_ref_pages.py.hbs +54 -0
  96. package/dist/templates/plopfiles/_modules/frontends/react-vite/module.js +60 -0
  97. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/index.html.hbs +13 -0
  98. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/nginx.conf.hbs +31 -0
  99. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/postcss.config.js.hbs +6 -0
  100. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/src/App.tsx.hbs +12 -0
  101. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/src/index.css.hbs +25 -0
  102. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/src/lib/api.ts.hbs +52 -0
  103. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/src/main.tsx.hbs +18 -0
  104. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/src/pages/Home.tsx.hbs +31 -0
  105. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/tailwind.config.js.hbs +8 -0
  106. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/tsconfig.json.hbs +25 -0
  107. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/tsconfig.node.json.hbs +10 -0
  108. package/dist/templates/plopfiles/_modules/frontends/react-vite/templates/vite.config.ts.hbs +21 -0
  109. package/dist/templates/plopfiles/_modules/frontends/solid-vite/module.js +51 -0
  110. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/index.html.hbs +13 -0
  111. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/postcss.config.js.hbs +6 -0
  112. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/src/App.tsx.hbs +12 -0
  113. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/src/index.css.hbs +3 -0
  114. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/src/index.tsx.hbs +21 -0
  115. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/src/lib/api.ts.hbs +52 -0
  116. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/src/pages/Home.tsx.hbs +34 -0
  117. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/tailwind.config.js.hbs +8 -0
  118. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/tsconfig.json.hbs +24 -0
  119. package/dist/templates/plopfiles/_modules/frontends/solid-vite/templates/vite.config.ts.hbs +21 -0
  120. package/dist/templates/plopfiles/_modules/frontends/vue-vite/module.js +54 -0
  121. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/index.html.hbs +13 -0
  122. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/postcss.config.js.hbs +6 -0
  123. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/App.vue.hbs +9 -0
  124. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/index.css.hbs +3 -0
  125. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/lib/api.ts.hbs +52 -0
  126. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/main.ts.hbs +14 -0
  127. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/pages/Home.vue.hbs +27 -0
  128. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/src/router.ts.hbs +13 -0
  129. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/tailwind.config.js.hbs +8 -0
  130. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/tsconfig.json.hbs +25 -0
  131. package/dist/templates/plopfiles/_modules/frontends/vue-vite/templates/vite.config.ts.hbs +21 -0
  132. package/dist/templates/plopfiles/_modules/infra/docker-compose/module.js +52 -0
  133. package/dist/templates/plopfiles/_modules/infra/docker-compose/templates/Dockerfile.backend.hbs +32 -0
  134. package/dist/templates/plopfiles/_modules/infra/docker-compose/templates/Dockerfile.frontend.hbs +31 -0
  135. package/dist/templates/plopfiles/_modules/infra/docker-compose/templates/docker-compose.yml.hbs +97 -0
  136. package/dist/templates/plopfiles/_modules/infra/github-actions/module.js +24 -0
  137. package/dist/templates/plopfiles/_modules/infra/github-actions/templates/.github/workflows/ci.yml.hbs +78 -0
  138. package/dist/templates/plopfiles/_modules/infra/github-actions/templates/.github/workflows/deploy.yml.hbs +60 -0
  139. package/dist/templates/plopfiles/_modules/infra/just/module.js +26 -0
  140. package/dist/templates/plopfiles/_modules/infra/just/templates/justfile.hbs +205 -0
  141. package/dist/templates/plopfiles/_modules/infra/kubernetes/module.js +30 -0
  142. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/base/deployment.yaml.hbs +48 -0
  143. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/base/ingress.yaml.hbs +23 -0
  144. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/base/kustomization.yaml.hbs +11 -0
  145. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/base/service.yaml.hbs +15 -0
  146. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/overlays/dev/deployment-patch.yaml.hbs +17 -0
  147. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/overlays/dev/kustomization.yaml.hbs +15 -0
  148. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/overlays/prod/deployment-patch.yaml.hbs +17 -0
  149. package/dist/templates/plopfiles/_modules/infra/kubernetes/templates/k8s/overlays/prod/kustomization.yaml.hbs +15 -0
  150. package/dist/templates/plopfiles/_modules/infra/pulumi/module.js +30 -0
  151. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/.gitignore.hbs +5 -0
  152. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/Pulumi.dev.yaml.hbs +3 -0
  153. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/Pulumi.yaml.hbs +7 -0
  154. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/index.ts.hbs +26 -0
  155. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/package.json.hbs +12 -0
  156. package/dist/templates/plopfiles/_modules/infra/pulumi/templates/tsconfig.json.hbs +16 -0
  157. package/dist/templates/plopfiles/_modules/infra/terraform/module.js +31 -0
  158. package/dist/templates/plopfiles/_modules/infra/terraform/templates/.gitignore.hbs +12 -0
  159. package/dist/templates/plopfiles/_modules/infra/terraform/templates/main.tf.hbs +34 -0
  160. package/dist/templates/plopfiles/_modules/infra/terraform/templates/outputs.tf.hbs +15 -0
  161. package/dist/templates/plopfiles/_modules/infra/terraform/templates/terraform.tfvars.example.hbs +6 -0
  162. package/dist/templates/plopfiles/_modules/infra/terraform/templates/variables.tf.hbs +30 -0
  163. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/module.js +38 -0
  164. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/build.gradle.kts.hbs +102 -0
  165. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/proguard-rules.pro.hbs +20 -0
  166. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/AndroidManifest.xml.hbs +25 -0
  167. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/ApiClient.kt.hbs +38 -0
  168. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/App.kt.hbs +116 -0
  169. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/MainActivity.kt.hbs +28 -0
  170. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/ui/theme/Color.kt.hbs +11 -0
  171. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/ui/theme/Theme.kt.hbs +55 -0
  172. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/kotlin/com/example/app/ui/theme/Type.kt.hbs +31 -0
  173. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/res/values/strings.xml.hbs +3 -0
  174. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/app/src/main/res/values/themes.xml.hbs +4 -0
  175. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/build.gradle.kts.hbs +6 -0
  176. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/gradle.properties.hbs +4 -0
  177. package/dist/templates/plopfiles/_modules/mobile/android-kotlin/templates/settings.gradle.kts.hbs +18 -0
  178. package/dist/templates/plopfiles/_modules/mobile/flutter/module.js +36 -0
  179. package/dist/templates/plopfiles/_modules/mobile/flutter/templates/.env.hbs +1 -0
  180. package/dist/templates/plopfiles/_modules/mobile/flutter/templates/lib/main.dart.hbs +29 -0
  181. package/dist/templates/plopfiles/_modules/mobile/flutter/templates/lib/screens/home_screen.dart.hbs +88 -0
  182. package/dist/templates/plopfiles/_modules/mobile/flutter/templates/lib/services/api_service.dart.hbs +61 -0
  183. package/dist/templates/plopfiles/_modules/mobile/flutter/templates/pubspec.yaml.hbs +25 -0
  184. package/dist/templates/plopfiles/_modules/mobile/ios-swift/module.js +39 -0
  185. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/App.swift.hbs +10 -0
  186. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Assets.xcassets/AccentColor.colorset/Contents.json.hbs +11 -0
  187. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Assets.xcassets/AppIcon.appiconset/Contents.json.hbs +13 -0
  188. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Assets.xcassets/Contents.json.hbs +6 -0
  189. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/ContentView.swift.hbs +13 -0
  190. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Services/APIClient.swift.hbs +58 -0
  191. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Views/DetailsView.swift.hbs +22 -0
  192. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App/Views/HomeView.swift.hbs +62 -0
  193. package/dist/templates/plopfiles/_modules/mobile/ios-swift/templates/App.xcodeproj/project.pbxproj.hbs +363 -0
  194. package/dist/templates/plopfiles/_modules/mobile/react-native/module.js +36 -0
  195. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/app/_layout.tsx.hbs +16 -0
  196. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/app/index.tsx.hbs +66 -0
  197. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/app.json.hbs +37 -0
  198. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/package.json.hbs +29 -0
  199. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/src/lib/api.ts.hbs +52 -0
  200. package/dist/templates/plopfiles/_modules/mobile/react-native/templates/tsconfig.json.hbs +11 -0
  201. package/dist/templates/plopfiles/_modules/quality/biome/module.js +44 -0
  202. package/dist/templates/plopfiles/_modules/quality/biome/templates/biome.json.hbs +126 -0
  203. package/dist/templates/plopfiles/_modules/quality/clippy/module.js +40 -0
  204. package/dist/templates/plopfiles/_modules/quality/clippy/templates/clippy.toml.hbs +29 -0
  205. package/dist/templates/plopfiles/_modules/quality/clippy/templates/rustfmt.toml.hbs +44 -0
  206. package/dist/templates/plopfiles/_modules/quality/golangci-lint/module.js +40 -0
  207. package/dist/templates/plopfiles/_modules/quality/golangci-lint/templates/.golangci.yml.hbs +199 -0
  208. package/dist/templates/plopfiles/_modules/quality/ruff/module.js +43 -0
  209. package/dist/templates/plopfiles/_modules/quality/ruff/templates/mypy.ini.hbs +48 -0
  210. package/dist/templates/plopfiles/_modules/quality/ruff/templates/ruff.toml.hbs +111 -0
  211. package/dist/templates/plopfiles/_modules/storybook/react-storybook/module.js +54 -0
  212. package/dist/templates/plopfiles/_modules/storybook/react-storybook/templates/.storybook/main.ts.hbs +44 -0
  213. package/dist/templates/plopfiles/_modules/storybook/react-storybook/templates/.storybook/preview.ts.hbs +68 -0
  214. package/dist/templates/plopfiles/_modules/storybook/react-storybook/templates/src/stories/Button.stories.tsx.hbs +158 -0
  215. package/dist/templates/plopfiles/_modules/types.ts +98 -0
  216. package/dist/templates/plopfiles/full-stack/plopfile.js +132 -0
  217. package/dist/templates/plopfiles/full-stack/templates/gitignore.hbs +44 -0
  218. package/dist/templates/plopfiles/full-stack/templates/package.json.hbs +21 -0
  219. package/dist/templates/plopfiles/presets/cli-go/module.js +43 -0
  220. package/dist/templates/plopfiles/presets/cli-go/templates/README.md.hbs +42 -0
  221. package/dist/templates/plopfiles/presets/cli-go/templates/config.json.hbs +9 -0
  222. package/dist/templates/plopfiles/presets/cli-node/module.js +45 -0
  223. package/dist/templates/plopfiles/presets/cli-node/templates/README.md.hbs +42 -0
  224. package/dist/templates/plopfiles/presets/cli-node/templates/config.json.hbs +9 -0
  225. package/dist/templates/plopfiles/presets/cli-python/module.js +43 -0
  226. package/dist/templates/plopfiles/presets/cli-python/templates/README.md.hbs +42 -0
  227. package/dist/templates/plopfiles/presets/cli-python/templates/config.json.hbs +9 -0
  228. package/dist/templates/plopfiles/presets/cli-rust/module.js +43 -0
  229. package/dist/templates/plopfiles/presets/cli-rust/templates/README.md.hbs +42 -0
  230. package/dist/templates/plopfiles/presets/cli-rust/templates/config.json.hbs +9 -0
  231. package/dist/templates/plopfiles/presets/loader.js +125 -0
  232. package/dist/templates/plopfiles/typescript-service/plopfile.js +186 -0
  233. package/dist/templates/plopfiles/typescript-service/templates/Dockerfile.hbs +29 -0
  234. package/dist/templates/plopfiles/typescript-service/templates/README.md.hbs +85 -0
  235. package/dist/templates/plopfiles/typescript-service/templates/config.ts.hbs +15 -0
  236. package/dist/templates/plopfiles/typescript-service/templates/db/index.ts.hbs +19 -0
  237. package/dist/templates/plopfiles/typescript-service/templates/db/schema.ts.hbs +16 -0
  238. package/dist/templates/plopfiles/typescript-service/templates/index.ts.hbs +89 -0
  239. package/dist/templates/plopfiles/typescript-service/templates/package.json.hbs +36 -0
  240. package/dist/templates/plopfiles/typescript-service/templates/routes/health.ts.hbs +61 -0
  241. package/dist/templates/plopfiles/typescript-service/templates/routes/index.ts.hbs +35 -0
  242. package/dist/templates/plopfiles/typescript-service/templates/tsconfig.json.hbs +24 -0
  243. package/dist/templates/plopfiles/typescript-service/templates/types.ts.hbs +28 -0
  244. package/dist/templates/typescript/component.module.css.tpl +6 -0
  245. package/dist/templates/typescript/component.test.tsx.tpl +9 -0
  246. package/dist/templates/typescript/component.tsx.tpl +17 -0
  247. package/dist/templates/typescript/component.types.ts.tpl +3 -0
  248. package/dist/templates/typescript/project/nextjs/app/globals.css.tpl +10 -0
  249. package/dist/templates/typescript/project/nextjs/app/layout.tsx.tpl +15 -0
  250. package/dist/templates/typescript/project/nextjs/app/page.tsx.tpl +8 -0
  251. package/dist/templates/typescript/project/nextjs/babel.config.js.tpl +8 -0
  252. package/dist/templates/typescript/project/nextjs/jest.config.js.tpl +10 -0
  253. package/dist/templates/typescript/project/nextjs/jest.setup.ts.tpl +6 -0
  254. package/dist/templates/typescript/project/nextjs/next-env.d.ts.tpl +5 -0
  255. package/dist/templates/typescript/project/nextjs/next.config.js.tpl +9 -0
  256. package/dist/templates/typescript/project/nextjs/package.json.tpl +1 -0
  257. package/dist/templates/typescript/project/nextjs/tsconfig.json.tpl +1 -0
  258. package/dist/templates/typescript/project/vite/App.css.tpl +8 -0
  259. package/dist/templates/typescript/project/vite/App.tsx.tpl +17 -0
  260. package/dist/templates/typescript/project/vite/index.css.tpl +8 -0
  261. package/dist/templates/typescript/project/vite/index.html.tpl +13 -0
  262. package/dist/templates/typescript/project/vite/main.tsx.tpl +10 -0
  263. package/dist/templates/typescript/project/vite/package.json.tpl +1 -0
  264. package/dist/templates/typescript/project/vite/test-setup.ts.tpl +1 -0
  265. package/dist/templates/typescript/project/vite/tsconfig.build.json.tpl +1 -0
  266. package/dist/templates/typescript/project/vite/tsconfig.json.tpl +1 -0
  267. package/dist/templates/typescript/project/vite/tsconfig.node.json.tpl +1 -0
  268. package/dist/templates/typescript/project/vite/vite.config.ts.tpl +18 -0
  269. package/dist/templates/typescript/service.api.ts.tpl +27 -0
  270. package/dist/templates/typescript/service.class.ts.tpl +28 -0
  271. package/dist/templates/typescript/service.handler.ts.tpl +42 -0
  272. package/dist/templates/typescript/service.schema.ts.tpl +16 -0
  273. package/package.json +95 -0
  274. package/templates/typescript/component.module.css.tpl +6 -0
  275. package/templates/typescript/component.test.tsx.tpl +9 -0
  276. package/templates/typescript/component.tsx.tpl +17 -0
  277. package/templates/typescript/component.types.ts.tpl +3 -0
  278. package/templates/typescript/project/nextjs/app/globals.css.tpl +10 -0
  279. package/templates/typescript/project/nextjs/app/layout.tsx.tpl +15 -0
  280. package/templates/typescript/project/nextjs/app/page.tsx.tpl +8 -0
  281. package/templates/typescript/project/nextjs/babel.config.js.tpl +8 -0
  282. package/templates/typescript/project/nextjs/jest.config.js.tpl +10 -0
  283. package/templates/typescript/project/nextjs/jest.setup.ts.tpl +6 -0
  284. package/templates/typescript/project/nextjs/next-env.d.ts.tpl +5 -0
  285. package/templates/typescript/project/nextjs/next.config.js.tpl +9 -0
  286. package/templates/typescript/project/nextjs/package.json.tpl +1 -0
  287. package/templates/typescript/project/nextjs/tsconfig.json.tpl +1 -0
  288. package/templates/typescript/project/vite/App.css.tpl +8 -0
  289. package/templates/typescript/project/vite/App.tsx.tpl +17 -0
  290. package/templates/typescript/project/vite/index.css.tpl +8 -0
  291. package/templates/typescript/project/vite/index.html.tpl +13 -0
  292. package/templates/typescript/project/vite/main.tsx.tpl +10 -0
  293. package/templates/typescript/project/vite/package.json.tpl +1 -0
  294. package/templates/typescript/project/vite/test-setup.ts.tpl +1 -0
  295. package/templates/typescript/project/vite/tsconfig.build.json.tpl +1 -0
  296. package/templates/typescript/project/vite/tsconfig.json.tpl +1 -0
  297. package/templates/typescript/project/vite/tsconfig.node.json.tpl +1 -0
  298. package/templates/typescript/project/vite/vite.config.ts.tpl +18 -0
  299. package/templates/typescript/service.api.ts.tpl +27 -0
  300. package/templates/typescript/service.class.ts.tpl +28 -0
  301. package/templates/typescript/service.handler.ts.tpl +42 -0
  302. package/templates/typescript/service.schema.ts.tpl +16 -0
@@ -0,0 +1,126 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
3
+ "organizeImports": {
4
+ "enabled": true
5
+ },
6
+ "linter": {
7
+ "enabled": true,
8
+ "rules": {
9
+ "recommended": true,
10
+ "complexity": {
11
+ "noBannedTypes": "error",
12
+ "noExcessiveCognitiveComplexity": {
13
+ "level": "warn",
14
+ "options": {
15
+ "maxAllowedComplexity": 15
16
+ }
17
+ },
18
+ "noForEach": "warn",
19
+ "noUselessTypeConstraint": "error"
20
+ },
21
+ "correctness": {
22
+ "noUnusedImports": "error",
23
+ "noUnusedVariables": "error",
24
+ "useExhaustiveDependencies": "warn",
25
+ "useHookAtTopLevel": "error"
26
+ },
27
+ "performance": {
28
+ "noAccumulatingSpread": "warn",
29
+ "noDelete": "warn"
30
+ },
31
+ "style": {
32
+ "noNonNullAssertion": "warn",
33
+ "useBlockStatements": "error",
34
+ "useCollapsedElseIf": "error",
35
+ "useConsistentArrayType": {
36
+ "level": "error",
37
+ "options": {
38
+ "syntax": "shorthand"
39
+ }
40
+ },
41
+ "useConst": "error",
42
+ "useExportType": "error",
43
+ "useImportType": "error",
44
+ "useNamingConvention": {
45
+ "level": "warn",
46
+ "options": {
47
+ "strictCase": false,
48
+ "conventions": [
49
+ {
50
+ "selector": { "kind": "function" },
51
+ "formats": ["camelCase", "PascalCase"]
52
+ },
53
+ {
54
+ "selector": { "kind": "variable" },
55
+ "formats": ["camelCase", "PascalCase", "CONSTANT_CASE"]
56
+ },
57
+ {
58
+ "selector": { "kind": "typeLike" },
59
+ "formats": ["PascalCase"]
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ "useShorthandFunctionType": "error",
65
+ "useSingleVarDeclarator": "error",
66
+ "useTemplate": "error"
67
+ },
68
+ "suspicious": {
69
+ "noArrayIndexKey": "warn",
70
+ "noAssignInExpressions": "error",
71
+ "noConsoleLog": "warn",
72
+ "noDoubleEquals": "error",
73
+ "noExplicitAny": "warn",
74
+ "noImplicitAnyLet": "error"
75
+ },
76
+ "nursery": {
77
+ "useSortedClasses": {
78
+ "level": "warn",
79
+ "options": {}
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "formatter": {
85
+ "enabled": true,
86
+ "indentStyle": "space",
87
+ "indentWidth": 2,
88
+ "lineWidth": 100,
89
+ "lineEnding": "lf"
90
+ },
91
+ "javascript": {
92
+ "formatter": {
93
+ "quoteStyle": "double",
94
+ "jsxQuoteStyle": "double",
95
+ "semicolons": "always",
96
+ "trailingCommas": "all",
97
+ "arrowParentheses": "always"
98
+ }
99
+ },
100
+ "json": {
101
+ "formatter": {
102
+ "indentWidth": 2,
103
+ "lineWidth": 100
104
+ }
105
+ },
106
+ "files": {
107
+ "ignore": [
108
+ "node_modules",
109
+ "dist",
110
+ "build",
111
+ ".next",
112
+ ".nuxt",
113
+ "coverage",
114
+ "*.min.js",
115
+ "*.d.ts",
116
+ "package-lock.json",
117
+ "pnpm-lock.yaml",
118
+ "bun.lockb"
119
+ ]
120
+ },
121
+ "vcs": {
122
+ "enabled": true,
123
+ "clientKind": "git",
124
+ "useIgnoreFile": true
125
+ }
126
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Clippy & Rustfmt Module
3
+ *
4
+ * Sets up Clippy linting and Rustfmt formatting for Rust projects.
5
+ */
6
+
7
+ import { dirname, resolve } from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const templatesDir = resolve(__dirname, "templates");
12
+
13
+ export default function (data) {
14
+ return [
15
+ {
16
+ type: "addMany",
17
+ destination: `{{projectDir}}`,
18
+ base: templatesDir,
19
+ templateFiles: `${templatesDir}/**/*.hbs`,
20
+ stripExtensions: ["hbs"],
21
+ data,
22
+ },
23
+ ];
24
+ }
25
+
26
+ export const description = "Clippy & Rustfmt - Rust linting and formatting";
27
+
28
+ export const dependencies = {};
29
+
30
+ export const devDependencies = {};
31
+
32
+ export const scripts = {
33
+ "lint:rust": "cargo clippy --all-targets --all-features -- -D warnings",
34
+ "lint:rust:fix": "cargo clippy --fix --allow-dirty --allow-staged",
35
+ "format:rust": "cargo fmt",
36
+ "format:rust:check": "cargo fmt -- --check",
37
+ "check:rust": "cargo check --all-targets --all-features",
38
+ };
39
+
40
+ export const envVars = {};
@@ -0,0 +1,29 @@
1
+ # Clippy configuration
2
+ # https://doc.rust-lang.org/clippy/configuration.html
3
+
4
+ # Cognitive complexity threshold
5
+ cognitive-complexity-threshold = 25
6
+
7
+ # Maximum number of lines in a function
8
+ too-many-lines-threshold = 100
9
+
10
+ # Allowed wildcard imports
11
+ allowed-wildcard-imports = []
12
+
13
+ # Minimum amount of lines to match for "large types"
14
+ large-error-threshold = 128
15
+
16
+ # Maximum bytes for small values (stack)
17
+ trivial-copy-size-limit = 16
18
+
19
+ # Upper bound for large arrays
20
+ array-size-threshold = 512000
21
+
22
+ # Allowed duplicate modules (none by default)
23
+ allowed-duplicate-crates = []
24
+
25
+ # Third-party crates organization names
26
+ third-party = ["{{snakeCase name}}"]
27
+
28
+ # Standard library configuration
29
+ msrv = "1.75"
@@ -0,0 +1,44 @@
1
+ # Rustfmt configuration
2
+ # https://rust-lang.github.io/rustfmt/
3
+
4
+ edition = "2021"
5
+ max_width = 100
6
+ hard_tabs = false
7
+ tab_spaces = 4
8
+ newline_style = "Unix"
9
+
10
+ # Imports
11
+ imports_granularity = "Crate"
12
+ group_imports = "StdExternalCrate"
13
+ reorder_imports = true
14
+ reorder_modules = true
15
+
16
+ # Items
17
+ reorder_impl_items = true
18
+ use_field_init_shorthand = true
19
+ use_try_shorthand = true
20
+
21
+ # Formatting
22
+ format_code_in_doc_comments = true
23
+ format_macro_matchers = true
24
+ format_strings = true
25
+ wrap_comments = true
26
+ comment_width = 100
27
+
28
+ # Struct/Enum
29
+ struct_lit_single_line = true
30
+ enum_discrim_align_threshold = 20
31
+
32
+ # Functions
33
+ fn_single_line = false
34
+ fn_args_layout = "Tall"
35
+
36
+ # Control flow
37
+ match_arm_blocks = true
38
+ match_arm_leading_pipes = "Never"
39
+ match_block_trailing_comma = true
40
+ force_multiline_blocks = false
41
+
42
+ # Misc
43
+ normalize_comments = true
44
+ normalize_doc_attributes = true
@@ -0,0 +1,40 @@
1
+ /**
2
+ * golangci-lint Module
3
+ *
4
+ * Sets up golangci-lint for Go projects.
5
+ * The most comprehensive linter aggregator for Go.
6
+ */
7
+
8
+ import { dirname, resolve } from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+
11
+ const __dirname = dirname(fileURLToPath(import.meta.url));
12
+ const templatesDir = resolve(__dirname, "templates");
13
+
14
+ export default function (data) {
15
+ return [
16
+ {
17
+ type: "addMany",
18
+ destination: `{{projectDir}}`,
19
+ base: templatesDir,
20
+ templateFiles: `${templatesDir}/**/*.hbs`,
21
+ stripExtensions: ["hbs"],
22
+ data,
23
+ },
24
+ ];
25
+ }
26
+
27
+ export const description = "golangci-lint - Fast Go linter aggregator";
28
+
29
+ export const dependencies = {};
30
+
31
+ export const devDependencies = {};
32
+
33
+ export const scripts = {
34
+ "lint:go": "golangci-lint run",
35
+ "lint:go:fix": "golangci-lint run --fix",
36
+ "format:go": "gofmt -s -w .",
37
+ "format:go:check": "test -z $(gofmt -l .)",
38
+ };
39
+
40
+ export const envVars = {};
@@ -0,0 +1,199 @@
1
+ # golangci-lint configuration
2
+ # https://golangci-lint.run/usage/configuration/
3
+
4
+ run:
5
+ timeout: 5m
6
+ issues-exit-code: 1
7
+ tests: true
8
+ build-tags: []
9
+ modules-download-mode: readonly
10
+
11
+ output:
12
+ formats:
13
+ - format: colored-line-number
14
+ print-issued-lines: true
15
+ print-linter-name: true
16
+ sort-results: true
17
+
18
+ linters-settings:
19
+ errcheck:
20
+ check-type-assertions: true
21
+ check-blank: true
22
+
23
+ govet:
24
+ enable-all: true
25
+ disable:
26
+ - fieldalignment
27
+
28
+ gocyclo:
29
+ min-complexity: 15
30
+
31
+ gocognit:
32
+ min-complexity: 20
33
+
34
+ dupl:
35
+ threshold: 100
36
+
37
+ goconst:
38
+ min-len: 3
39
+ min-occurrences: 3
40
+
41
+ gocritic:
42
+ enabled-tags:
43
+ - diagnostic
44
+ - experimental
45
+ - opinionated
46
+ - performance
47
+ - style
48
+ disabled-checks:
49
+ - dupImport
50
+ - ifElseChain
51
+ - octalLiteral
52
+ - whyNoLint
53
+
54
+ gofmt:
55
+ simplify: true
56
+
57
+ goimports:
58
+ local-prefixes: github.com/{{author}}/{{name}}
59
+
60
+ revive:
61
+ ignore-generated-header: true
62
+ severity: warning
63
+ rules:
64
+ - name: blank-imports
65
+ - name: context-as-argument
66
+ - name: context-keys-type
67
+ - name: dot-imports
68
+ - name: error-return
69
+ - name: error-strings
70
+ - name: error-naming
71
+ - name: exported
72
+ - name: increment-decrement
73
+ - name: var-naming
74
+ - name: package-comments
75
+ - name: range
76
+ - name: receiver-naming
77
+ - name: time-naming
78
+ - name: unexported-return
79
+ - name: indent-error-flow
80
+ - name: errorf
81
+
82
+ staticcheck:
83
+ checks: ["all"]
84
+
85
+ stylecheck:
86
+ checks: ["all", "-ST1000", "-ST1003"]
87
+
88
+ gosec:
89
+ excludes:
90
+ - G104
91
+ config:
92
+ global:
93
+ audit: true
94
+
95
+ nakedret:
96
+ max-func-lines: 30
97
+
98
+ prealloc:
99
+ simple: true
100
+ range-loops: true
101
+ for-loops: true
102
+
103
+ nolintlint:
104
+ allow-unused: false
105
+ allow-no-explanation: []
106
+ require-explanation: true
107
+ require-specific: true
108
+
109
+ misspell:
110
+ locale: US
111
+
112
+ lll:
113
+ line-length: 120
114
+ tab-width: 4
115
+
116
+ godot:
117
+ scope: declarations
118
+ capital: true
119
+
120
+ godox:
121
+ keywords:
122
+ - TODO
123
+ - BUG
124
+ - FIXME
125
+ - HACK
126
+
127
+ linters:
128
+ disable-all: true
129
+ enable:
130
+ # Default linters
131
+ - errcheck
132
+ - gosimple
133
+ - govet
134
+ - ineffassign
135
+ - staticcheck
136
+ - unused
137
+ # Additional linters
138
+ - asasalint
139
+ - bidichk
140
+ - bodyclose
141
+ - contextcheck
142
+ - copyloopvar
143
+ - dupl
144
+ - durationcheck
145
+ - errname
146
+ - errorlint
147
+ - exhaustive
148
+ - gochecknoinits
149
+ - gocognit
150
+ - goconst
151
+ - gocritic
152
+ - gocyclo
153
+ - godot
154
+ - godox
155
+ - gofmt
156
+ - goimports
157
+ - gosec
158
+ - lll
159
+ - misspell
160
+ - nakedret
161
+ - nestif
162
+ - nilerr
163
+ - nilnil
164
+ - noctx
165
+ - nolintlint
166
+ - prealloc
167
+ - predeclared
168
+ - revive
169
+ - stylecheck
170
+ - tenv
171
+ - testableexamples
172
+ - thelper
173
+ - unconvert
174
+ - unparam
175
+ - usestdlibvars
176
+ - wastedassign
177
+ - whitespace
178
+
179
+ issues:
180
+ exclude-rules:
181
+ # Exclude some linters from running on tests
182
+ - path: _test\.go
183
+ linters:
184
+ - dupl
185
+ - gosec
186
+ - gocyclo
187
+ - gocognit
188
+ - errcheck
189
+ - funlen
190
+
191
+ # Exclude some linters from running on main
192
+ - path: main\.go
193
+ linters:
194
+ - gochecknoinits
195
+
196
+ exclude-use-default: false
197
+ max-issues-per-linter: 0
198
+ max-same-issues: 0
199
+ new: false
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Ruff Linting & Formatting Module
3
+ *
4
+ * Sets up Ruff for Python projects.
5
+ * Ruff is an extremely fast Python linter and formatter.
6
+ */
7
+
8
+ import { dirname, resolve } from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+
11
+ const __dirname = dirname(fileURLToPath(import.meta.url));
12
+ const templatesDir = resolve(__dirname, "templates");
13
+
14
+ export default function (data) {
15
+ return [
16
+ {
17
+ type: "addMany",
18
+ destination: `{{projectDir}}`,
19
+ base: templatesDir,
20
+ templateFiles: `${templatesDir}/**/*.hbs`,
21
+ stripExtensions: ["hbs"],
22
+ data,
23
+ },
24
+ ];
25
+ }
26
+
27
+ export const description = "Ruff - Extremely fast Python linter and formatter";
28
+
29
+ export const dependencies = {};
30
+
31
+ export const devDependencies = {};
32
+
33
+ export const scripts = {
34
+ "lint:python": "ruff check .",
35
+ "lint:python:fix": "ruff check --fix .",
36
+ "format:python": "ruff format .",
37
+ "format:python:check": "ruff format --check .",
38
+ };
39
+
40
+ export const envVars = {};
41
+
42
+ // Python dev dependencies
43
+ export const pythonDevDependencies = ["ruff>=0.8.0", "mypy>=1.13.0"];
@@ -0,0 +1,48 @@
1
+ [mypy]
2
+ # Python version
3
+ python_version = 3.12
4
+
5
+ # Strict mode
6
+ strict = true
7
+ warn_return_any = true
8
+ warn_unused_configs = true
9
+ warn_redundant_casts = true
10
+ warn_unused_ignores = true
11
+ warn_no_return = true
12
+ warn_unreachable = true
13
+
14
+ # Disallow dynamic typing
15
+ disallow_any_generics = true
16
+ disallow_subclassing_any = true
17
+ disallow_untyped_calls = true
18
+ disallow_untyped_defs = true
19
+ disallow_incomplete_defs = true
20
+ disallow_untyped_decorators = true
21
+
22
+ # None/Optional handling
23
+ strict_optional = true
24
+ no_implicit_optional = true
25
+
26
+ # Import discovery
27
+ namespace_packages = true
28
+ explicit_package_bases = true
29
+
30
+ # Error output
31
+ show_error_codes = true
32
+ show_column_numbers = true
33
+ show_error_context = true
34
+ pretty = true
35
+
36
+ # Plugins
37
+ plugins = []
38
+
39
+ # Ignore missing imports for third-party packages
40
+ ignore_missing_imports = false
41
+
42
+ # Per-module configuration
43
+ [mypy-tests.*]
44
+ disallow_untyped_defs = false
45
+ disallow_incomplete_defs = false
46
+
47
+ [mypy-conftest]
48
+ disallow_untyped_defs = false
@@ -0,0 +1,111 @@
1
+ # Ruff configuration
2
+ # https://docs.astral.sh/ruff/configuration/
3
+
4
+ # Target Python version
5
+ target-version = "py312"
6
+
7
+ # Line length
8
+ line-length = 100
9
+
10
+ # Exclude paths
11
+ exclude = [
12
+ ".bzr",
13
+ ".direnv",
14
+ ".eggs",
15
+ ".git",
16
+ ".git-rewrite",
17
+ ".hg",
18
+ ".mypy_cache",
19
+ ".nox",
20
+ ".pants.d",
21
+ ".pytype",
22
+ ".ruff_cache",
23
+ ".svn",
24
+ ".tox",
25
+ ".venv",
26
+ "__pypackages__",
27
+ "_build",
28
+ "buck-out",
29
+ "build",
30
+ "dist",
31
+ "node_modules",
32
+ "venv",
33
+ "*.pyi",
34
+ ]
35
+
36
+ [lint]
37
+ # Enable rules
38
+ select = [
39
+ "E", # pycodestyle errors
40
+ "W", # pycodestyle warnings
41
+ "F", # Pyflakes
42
+ "I", # isort
43
+ "B", # flake8-bugbear
44
+ "C4", # flake8-comprehensions
45
+ "UP", # pyupgrade
46
+ "ARG", # flake8-unused-arguments
47
+ "SIM", # flake8-simplify
48
+ "TCH", # flake8-type-checking
49
+ "PTH", # flake8-use-pathlib
50
+ "ERA", # eradicate (commented code)
51
+ "PL", # Pylint
52
+ "RUF", # Ruff-specific rules
53
+ "PERF", # Performance
54
+ "FURB", # Refurbishing
55
+ "LOG", # Logging
56
+ "D", # pydocstyle
57
+ ]
58
+
59
+ # Ignore specific rules
60
+ ignore = [
61
+ "E501", # line too long (handled by formatter)
62
+ "D100", # Missing docstring in public module
63
+ "D104", # Missing docstring in public package
64
+ "D107", # Missing docstring in __init__
65
+ "D203", # 1 blank line required before class docstring
66
+ "D213", # Multi-line docstring summary should start at the second line
67
+ "PLR0913", # Too many arguments to function call
68
+ ]
69
+
70
+ # Allow autofix for all enabled rules
71
+ fixable = ["ALL"]
72
+ unfixable = []
73
+
74
+ # Allow unused variables when underscore-prefixed
75
+ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
76
+
77
+ [lint.per-file-ignores]
78
+ # Tests can use magic values and assertions
79
+ "tests/**/*" = ["PLR2004", "S101", "D"]
80
+ "**/conftest.py" = ["D"]
81
+
82
+ [lint.isort]
83
+ known-first-party = ["{{snakeCase name}}"]
84
+ force-single-line = false
85
+ combine-as-imports = true
86
+
87
+ [lint.pydocstyle]
88
+ convention = "google"
89
+
90
+ [lint.pylint]
91
+ max-args = 8
92
+ max-branches = 12
93
+ max-returns = 6
94
+ max-statements = 50
95
+
96
+ [format]
97
+ # Use double quotes
98
+ quote-style = "double"
99
+
100
+ # Indent with spaces
101
+ indent-style = "space"
102
+
103
+ # Respect magic trailing comma
104
+ skip-magic-trailing-comma = false
105
+
106
+ # Unix line endings
107
+ line-ending = "lf"
108
+
109
+ # Format docstrings
110
+ docstring-code-format = true
111
+ docstring-code-line-length = "dynamic"