@codyswann/lisa 1.0.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 (322) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +867 -0
  3. package/all/copy-overwrite/.claude/README.md +205 -0
  4. package/all/copy-overwrite/.claude/agents/agent-architect.md +311 -0
  5. package/all/copy-overwrite/.claude/agents/codebase-analyzer.md +146 -0
  6. package/all/copy-overwrite/.claude/agents/codebase-locator.md +125 -0
  7. package/all/copy-overwrite/.claude/agents/codebase-pattern-finder.md +237 -0
  8. package/all/copy-overwrite/.claude/agents/git-history-analyzer.md +183 -0
  9. package/all/copy-overwrite/.claude/agents/hooks-expert.md +74 -0
  10. package/all/copy-overwrite/.claude/agents/skill-evaluator.md +246 -0
  11. package/all/copy-overwrite/.claude/agents/slash-command-architect.md +87 -0
  12. package/all/copy-overwrite/.claude/agents/web-search-researcher.md +112 -0
  13. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +8 -0
  14. package/all/copy-overwrite/.claude/commands/git/commit.md +44 -0
  15. package/all/copy-overwrite/.claude/commands/git/prune.md +34 -0
  16. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +50 -0
  17. package/all/copy-overwrite/.claude/commands/jira/create.md +50 -0
  18. package/all/copy-overwrite/.claude/commands/jira/verify.md +34 -0
  19. package/all/copy-overwrite/.claude/commands/project/archive.md +8 -0
  20. package/all/copy-overwrite/.claude/commands/project/bootstrap.md +49 -0
  21. package/all/copy-overwrite/.claude/commands/project/complete-task.md +7 -0
  22. package/all/copy-overwrite/.claude/commands/project/debrief.md +65 -0
  23. package/all/copy-overwrite/.claude/commands/project/execute.md +94 -0
  24. package/all/copy-overwrite/.claude/commands/project/implement.md +42 -0
  25. package/all/copy-overwrite/.claude/commands/project/local-code-review.md +88 -0
  26. package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +74 -0
  27. package/all/copy-overwrite/.claude/commands/project/plan.md +314 -0
  28. package/all/copy-overwrite/.claude/commands/project/research.md +248 -0
  29. package/all/copy-overwrite/.claude/commands/project/review.md +63 -0
  30. package/all/copy-overwrite/.claude/commands/project/setup.md +19 -0
  31. package/all/copy-overwrite/.claude/commands/project/verify.md +38 -0
  32. package/all/copy-overwrite/.claude/commands/pull-request/review.md +12 -0
  33. package/all/copy-overwrite/.claude/commands/rules/format-md.md +72 -0
  34. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +6 -0
  35. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +3 -0
  36. package/all/copy-overwrite/.claude/hooks/README.md +301 -0
  37. package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +181 -0
  38. package/all/copy-overwrite/.claude/settings.json +41 -0
  39. package/all/copy-overwrite/.claude/settings.local.json.example +14 -0
  40. package/all/copy-overwrite/.claude/skills/coding-philosophy/SKILL.md +405 -0
  41. package/all/copy-overwrite/.claude/skills/coding-philosophy/references/function-structure.md +416 -0
  42. package/all/copy-overwrite/.claude/skills/coding-philosophy/references/immutable-patterns.md +316 -0
  43. package/all/copy-overwrite/.claude/skills/prompt-complexity-scorer/SKILL.md +118 -0
  44. package/all/copy-overwrite/.claude/skills/skill-creator/LICENSE.txt +202 -0
  45. package/all/copy-overwrite/.claude/skills/skill-creator/SKILL.md +210 -0
  46. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  47. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
  48. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
  49. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
  50. package/all/copy-overwrite/CLAUDE.md +77 -0
  51. package/all/copy-overwrite/HUMAN.md +17 -0
  52. package/all/copy-overwrite/specs/.keep +0 -0
  53. package/all/create-only/PROJECT_RULES.md +0 -0
  54. package/cdk/merge/package.json +20 -0
  55. package/dist/cli/index.d.ts +7 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +107 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/prompts.d.ts +45 -0
  60. package/dist/cli/prompts.d.ts.map +1 -0
  61. package/dist/cli/prompts.js +58 -0
  62. package/dist/cli/prompts.js.map +1 -0
  63. package/dist/core/config.d.ts +73 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +36 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/index.d.ts +4 -0
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +4 -0
  70. package/dist/core/index.js.map +1 -0
  71. package/dist/core/lisa.d.ts +81 -0
  72. package/dist/core/lisa.d.ts.map +1 -0
  73. package/dist/core/lisa.js +459 -0
  74. package/dist/core/lisa.js.map +1 -0
  75. package/dist/core/manifest.d.ts +58 -0
  76. package/dist/core/manifest.d.ts.map +1 -0
  77. package/dist/core/manifest.js +104 -0
  78. package/dist/core/manifest.js.map +1 -0
  79. package/dist/detection/detector.interface.d.ts +15 -0
  80. package/dist/detection/detector.interface.d.ts.map +1 -0
  81. package/dist/detection/detector.interface.js +2 -0
  82. package/dist/detection/detector.interface.js.map +1 -0
  83. package/dist/detection/detectors/cdk.d.ts +10 -0
  84. package/dist/detection/detectors/cdk.d.ts.map +1 -0
  85. package/dist/detection/detectors/cdk.js +34 -0
  86. package/dist/detection/detectors/cdk.js.map +1 -0
  87. package/dist/detection/detectors/expo.d.ts +10 -0
  88. package/dist/detection/detectors/expo.d.ts.map +1 -0
  89. package/dist/detection/detectors/expo.js +30 -0
  90. package/dist/detection/detectors/expo.js.map +1 -0
  91. package/dist/detection/detectors/nestjs.d.ts +10 -0
  92. package/dist/detection/detectors/nestjs.d.ts.map +1 -0
  93. package/dist/detection/detectors/nestjs.js +34 -0
  94. package/dist/detection/detectors/nestjs.js.map +1 -0
  95. package/dist/detection/detectors/npm-package.d.ts +13 -0
  96. package/dist/detection/detectors/npm-package.d.ts.map +1 -0
  97. package/dist/detection/detectors/npm-package.js +30 -0
  98. package/dist/detection/detectors/npm-package.js.map +1 -0
  99. package/dist/detection/detectors/typescript.d.ts +10 -0
  100. package/dist/detection/detectors/typescript.d.ts.map +1 -0
  101. package/dist/detection/detectors/typescript.js +25 -0
  102. package/dist/detection/detectors/typescript.js.map +1 -0
  103. package/dist/detection/index.d.ts +24 -0
  104. package/dist/detection/index.d.ts.map +1 -0
  105. package/dist/detection/index.js +57 -0
  106. package/dist/detection/index.js.map +1 -0
  107. package/dist/errors/index.d.ts +69 -0
  108. package/dist/errors/index.d.ts.map +1 -0
  109. package/dist/errors/index.js +110 -0
  110. package/dist/errors/index.js.map +1 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +8 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/logging/console-logger.d.ts +12 -0
  116. package/dist/logging/console-logger.d.ts.map +1 -0
  117. package/dist/logging/console-logger.js +22 -0
  118. package/dist/logging/console-logger.js.map +1 -0
  119. package/dist/logging/index.d.ts +4 -0
  120. package/dist/logging/index.d.ts.map +1 -0
  121. package/dist/logging/index.js +3 -0
  122. package/dist/logging/index.js.map +1 -0
  123. package/dist/logging/logger.interface.d.ts +20 -0
  124. package/dist/logging/logger.interface.d.ts.map +1 -0
  125. package/dist/logging/logger.interface.js +2 -0
  126. package/dist/logging/logger.interface.js.map +1 -0
  127. package/dist/logging/silent-logger.d.ts +12 -0
  128. package/dist/logging/silent-logger.d.ts.map +1 -0
  129. package/dist/logging/silent-logger.js +21 -0
  130. package/dist/logging/silent-logger.js.map +1 -0
  131. package/dist/strategies/copy-contents.d.ts +14 -0
  132. package/dist/strategies/copy-contents.d.ts.map +1 -0
  133. package/dist/strategies/copy-contents.js +69 -0
  134. package/dist/strategies/copy-contents.js.map +1 -0
  135. package/dist/strategies/copy-overwrite.d.ts +14 -0
  136. package/dist/strategies/copy-overwrite.d.ts.map +1 -0
  137. package/dist/strategies/copy-overwrite.js +47 -0
  138. package/dist/strategies/copy-overwrite.js.map +1 -0
  139. package/dist/strategies/create-only.d.ts +13 -0
  140. package/dist/strategies/create-only.d.ts.map +1 -0
  141. package/dist/strategies/create-only.js +30 -0
  142. package/dist/strategies/create-only.js.map +1 -0
  143. package/dist/strategies/index.d.ts +31 -0
  144. package/dist/strategies/index.d.ts.map +1 -0
  145. package/dist/strategies/index.js +52 -0
  146. package/dist/strategies/index.js.map +1 -0
  147. package/dist/strategies/merge.d.ts +13 -0
  148. package/dist/strategies/merge.d.ts.map +1 -0
  149. package/dist/strategies/merge.js +60 -0
  150. package/dist/strategies/merge.js.map +1 -0
  151. package/dist/strategies/strategy.interface.d.ts +31 -0
  152. package/dist/strategies/strategy.interface.d.ts.map +1 -0
  153. package/dist/strategies/strategy.interface.js +2 -0
  154. package/dist/strategies/strategy.interface.js.map +1 -0
  155. package/dist/transaction/backup.d.ts +38 -0
  156. package/dist/transaction/backup.d.ts.map +1 -0
  157. package/dist/transaction/backup.js +97 -0
  158. package/dist/transaction/backup.js.map +1 -0
  159. package/dist/transaction/index.d.ts +4 -0
  160. package/dist/transaction/index.d.ts.map +1 -0
  161. package/dist/transaction/index.js +3 -0
  162. package/dist/transaction/index.js.map +1 -0
  163. package/dist/transaction/transaction.d.ts +34 -0
  164. package/dist/transaction/transaction.d.ts.map +1 -0
  165. package/dist/transaction/transaction.js +68 -0
  166. package/dist/transaction/transaction.js.map +1 -0
  167. package/dist/utils/file-operations.d.ts +29 -0
  168. package/dist/utils/file-operations.d.ts.map +1 -0
  169. package/dist/utils/file-operations.js +84 -0
  170. package/dist/utils/file-operations.js.map +1 -0
  171. package/dist/utils/index.d.ts +4 -0
  172. package/dist/utils/index.d.ts.map +1 -0
  173. package/dist/utils/index.js +4 -0
  174. package/dist/utils/index.js.map +1 -0
  175. package/dist/utils/json-utils.d.ts +22 -0
  176. package/dist/utils/json-utils.d.ts.map +1 -0
  177. package/dist/utils/json-utils.js +57 -0
  178. package/dist/utils/json-utils.js.map +1 -0
  179. package/dist/utils/path-utils.d.ts +21 -0
  180. package/dist/utils/path-utils.d.ts.map +1 -0
  181. package/dist/utils/path-utils.js +35 -0
  182. package/dist/utils/path-utils.js.map +1 -0
  183. package/eslint-plugin-code-organization/README.md +149 -0
  184. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +468 -0
  185. package/eslint-plugin-code-organization/index.js +23 -0
  186. package/eslint-plugin-code-organization/package.json +10 -0
  187. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +157 -0
  188. package/expo/copy-overwrite/.claude/skills/apollo-client/SKILL.md +238 -0
  189. package/expo/copy-overwrite/.claude/skills/apollo-client/references/mutation-patterns.md +360 -0
  190. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/SKILL.md +360 -0
  191. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  192. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  193. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  194. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +327 -0
  195. package/expo/copy-overwrite/.claude/skills/container-view-pattern/SKILL.md +299 -0
  196. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/examples.md +749 -0
  197. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/patterns.md +318 -0
  198. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +198 -0
  199. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +207 -0
  200. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/SKILL.md +268 -0
  201. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  202. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  203. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  204. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +414 -0
  205. package/expo/copy-overwrite/.claude/skills/directory-structure/SKILL.md +202 -0
  206. package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +443 -0
  207. package/expo/copy-overwrite/.claude/skills/expo-env-config/SKILL.md +309 -0
  208. package/expo/copy-overwrite/.claude/skills/expo-env-config/references/validation-patterns.md +417 -0
  209. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/SKILL.md +431 -0
  210. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/references/official-docs.md +290 -0
  211. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +169 -0
  212. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/SKILL.md +411 -0
  213. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  214. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  215. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  216. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +354 -0
  217. package/expo/copy-overwrite/.claude/skills/local-state/SKILL.md +362 -0
  218. package/expo/copy-overwrite/.claude/skills/local-state/references/async-storage.md +505 -0
  219. package/expo/copy-overwrite/.claude/skills/local-state/references/persistence-patterns.md +711 -0
  220. package/expo/copy-overwrite/.claude/skills/local-state/references/reactive-variables.md +446 -0
  221. package/expo/copy-overwrite/.claude/skills/playwright-selectors/SKILL.md +223 -0
  222. package/expo/copy-overwrite/.claude/skills/testing-library/SKILL.md +319 -0
  223. package/expo/copy-overwrite/.claude/skills/testing-library/references/async-patterns.md +420 -0
  224. package/expo/copy-overwrite/.claude/skills/testing-library/references/expo-router-testing.md +556 -0
  225. package/expo/copy-overwrite/.claude/skills/testing-library/references/mocking-patterns.md +590 -0
  226. package/expo/copy-overwrite/.claude/skills/testing-library/references/query-priority.md +291 -0
  227. package/expo/copy-overwrite/.easignore.extra +2 -0
  228. package/expo/copy-overwrite/.mcp.json +33 -0
  229. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +234 -0
  230. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +84 -0
  231. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +196 -0
  232. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +289 -0
  233. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +32 -0
  234. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +10 -0
  235. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +230 -0
  236. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +91 -0
  237. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +178 -0
  238. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +238 -0
  239. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +260 -0
  240. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +29 -0
  241. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +10 -0
  242. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +51 -0
  243. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +55 -0
  244. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-inline-styles.js +73 -0
  245. package/expo/copy-overwrite/eslint.config.mjs +560 -0
  246. package/expo/copy-overwrite/lighthouserc.js +194 -0
  247. package/expo/create-only/lighthouserc-config.json +28 -0
  248. package/expo/merge/package.json +132 -0
  249. package/lisa.sh +35 -0
  250. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/SKILL.md +176 -0
  251. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/advanced-features.md +527 -0
  252. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/project-patterns.md +483 -0
  253. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/quick-start.md +257 -0
  254. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  255. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/types-scalars.md +513 -0
  256. package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +536 -0
  257. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/SKILL.md +275 -0
  258. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  259. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  260. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  261. package/nestjs/merge/package.json +75 -0
  262. package/package.json +124 -0
  263. package/typescript/copy-contents/.husky/commit-msg +91 -0
  264. package/typescript/copy-contents/.husky/pre-commit +96 -0
  265. package/typescript/copy-contents/.husky/pre-push +211 -0
  266. package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +74 -0
  267. package/typescript/copy-overwrite/.claude/hooks/install_pkgs.sh +59 -0
  268. package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +103 -0
  269. package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +388 -0
  270. package/typescript/copy-overwrite/.github/README.md +455 -0
  271. package/typescript/copy-overwrite/.github/dependabot.yml +40 -0
  272. package/typescript/copy-overwrite/.github/k6/BROWSER_TESTING_NOTE.md +129 -0
  273. package/typescript/copy-overwrite/.github/k6/INTEGRATION_GUIDE.md +354 -0
  274. package/typescript/copy-overwrite/.github/k6/README.md +386 -0
  275. package/typescript/copy-overwrite/.github/k6/SCENARIO_SELECTION_GUIDE.md +264 -0
  276. package/typescript/copy-overwrite/.github/k6/examples/customer-deploy-integration.yml +115 -0
  277. package/typescript/copy-overwrite/.github/k6/examples/data-driven-test.js +268 -0
  278. package/typescript/copy-overwrite/.github/k6/scenarios/load.js +142 -0
  279. package/typescript/copy-overwrite/.github/k6/scenarios/load.json +27 -0
  280. package/typescript/copy-overwrite/.github/k6/scenarios/smoke.js +26 -0
  281. package/typescript/copy-overwrite/.github/k6/scenarios/smoke.json +20 -0
  282. package/typescript/copy-overwrite/.github/k6/scenarios/soak.js +244 -0
  283. package/typescript/copy-overwrite/.github/k6/scenarios/soak.json +29 -0
  284. package/typescript/copy-overwrite/.github/k6/scenarios/spike.js +180 -0
  285. package/typescript/copy-overwrite/.github/k6/scenarios/spike.json +32 -0
  286. package/typescript/copy-overwrite/.github/k6/scenarios/stress.js +206 -0
  287. package/typescript/copy-overwrite/.github/k6/scenarios/stress.json +38 -0
  288. package/typescript/copy-overwrite/.github/k6/scripts/api-test.js +452 -0
  289. package/typescript/copy-overwrite/.github/k6/scripts/default-test.js +185 -0
  290. package/typescript/copy-overwrite/.github/k6/thresholds/normal.json +30 -0
  291. package/typescript/copy-overwrite/.github/k6/thresholds/relaxed.json +21 -0
  292. package/typescript/copy-overwrite/.github/k6/thresholds/strict.json +29 -0
  293. package/typescript/copy-overwrite/.github/workflows/build.yml +72 -0
  294. package/typescript/copy-overwrite/.github/workflows/ci.yml +49 -0
  295. package/typescript/copy-overwrite/.github/workflows/claude.yml +51 -0
  296. package/typescript/copy-overwrite/.github/workflows/create-github-issue-on-failure.yml +113 -0
  297. package/typescript/copy-overwrite/.github/workflows/create-jira-issue-on-failure.yml +195 -0
  298. package/typescript/copy-overwrite/.github/workflows/create-sentry-issue-on-failure.yml +267 -0
  299. package/typescript/copy-overwrite/.github/workflows/deploy.yml +228 -0
  300. package/typescript/copy-overwrite/.github/workflows/k6-load-test-README.md +230 -0
  301. package/typescript/copy-overwrite/.github/workflows/lighthouse.yml +68 -0
  302. package/typescript/copy-overwrite/.github/workflows/load-test.yml +282 -0
  303. package/typescript/copy-overwrite/.github/workflows/quality.yml +1737 -0
  304. package/typescript/copy-overwrite/.github/workflows/release.yml +1599 -0
  305. package/typescript/copy-overwrite/.gitleaksignore +28 -0
  306. package/typescript/copy-overwrite/.nvmrc +1 -0
  307. package/typescript/copy-overwrite/.prettierignore +23 -0
  308. package/typescript/copy-overwrite/.prettierrc.json +22 -0
  309. package/typescript/copy-overwrite/.versionrc +42 -0
  310. package/typescript/copy-overwrite/.yamllint +20 -0
  311. package/typescript/copy-overwrite/commitlint.config.js +11 -0
  312. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +149 -0
  313. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +468 -0
  314. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +23 -0
  315. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +10 -0
  316. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +157 -0
  317. package/typescript/copy-overwrite/eslint.config.mjs +390 -0
  318. package/typescript/copy-overwrite/eslint.ignore.config.json +57 -0
  319. package/typescript/copy-overwrite/eslint.thresholds.config.json +5 -0
  320. package/typescript/github-rulesets/base.json +106 -0
  321. package/typescript/merge/.claude/settings.json +28 -0
  322. package/typescript/merge/package.json +71 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * ESLint 9 Flat Config
3
+ *
4
+ * This configuration file replaces the legacy .eslintrc.json format.
5
+ * It uses JavaScript modules and explicit imports for all plugins and configs.
6
+ *
7
+ * @see https://eslint.org/docs/latest/use/configure/configuration-files-new
8
+ * @module eslint.config
9
+ */
10
+ import eslintComments from "@eslint-community/eslint-plugin-eslint-comments";
11
+ import js from "@eslint/js";
12
+ import functional from "eslint-plugin-functional";
13
+ import jsdoc from "eslint-plugin-jsdoc";
14
+ import prettier from "eslint-plugin-prettier/recommended";
15
+ import sonarjs from "eslint-plugin-sonarjs";
16
+ import globals from "globals";
17
+ import path from "path";
18
+ import tseslint from "typescript-eslint";
19
+ import { fileURLToPath } from "url";
20
+
21
+ // Project-specific configuration loaded from JSON files
22
+ // Edit these files to customize for your project; this JS file can be shared unchanged
23
+ import ignoreConfig from "./eslint.ignore.config.json" with { type: "json" };
24
+ import thresholdsConfig from "./eslint.thresholds.config.json" with { type: "json" };
25
+
26
+ const __filename = fileURLToPath(import.meta.url);
27
+ const __dirname = path.dirname(__filename);
28
+
29
+ /** Default ignore patterns used when not specified in config */
30
+ const defaultIgnores = [
31
+ "build/**",
32
+ "dist/**",
33
+ ".build/**",
34
+ ".esbuild/**",
35
+ ".serverless/**",
36
+ ".webpack/**",
37
+ "_warmup/**",
38
+ "node_modules/**",
39
+ "**/node_modules/**",
40
+ "src/graphql/**",
41
+ "src/graphql.ts",
42
+ "src/graphql-generated/**",
43
+ "src/generated/**",
44
+ "graphql/**",
45
+ "graphql-generated/**",
46
+ "generated/**",
47
+ "components/ui/**",
48
+ "coverage/**",
49
+ "**/*spec.ts",
50
+ "resolver-test.setup.ts",
51
+ "**/*.factory.ts",
52
+ "**/test-utils/**",
53
+ "**/test/**",
54
+ "**/database/migrations/**",
55
+ "cypress/**",
56
+ "e2e/**",
57
+ "playwright-report/**",
58
+ ".lighthouseci/**",
59
+ ".expo/**",
60
+ ".github/**",
61
+ "public/**",
62
+ ".dead/**",
63
+ "example/**",
64
+ "tmp/**",
65
+ ".vscode/**",
66
+ "*.config.js",
67
+ "*.config.mjs",
68
+ "babel.config.js",
69
+ "metro.config.js",
70
+ "webpack.*.js",
71
+ "*.d.ts",
72
+ "esbuild.plugins.js",
73
+ "projects/**/scripts/**",
74
+ "scripts/**",
75
+ "lib/**/*.js",
76
+ "cdk.out/**",
77
+ ];
78
+
79
+ /** Default thresholds used when not specified in config */
80
+ const defaultThresholds = {
81
+ cognitiveComplexity: 10,
82
+ maxLines: 300,
83
+ };
84
+
85
+ const ignorePatterns = ignoreConfig.ignores || defaultIgnores;
86
+ const thresholds = { ...defaultThresholds, ...thresholdsConfig };
87
+
88
+ // Custom plugins and configs (CommonJS - use createRequire)
89
+ import { createRequire } from "module";
90
+ const require = createRequire(import.meta.url);
91
+
92
+ // Custom plugins
93
+ const codeOrganization = require("./eslint-plugin-code-organization/index.js");
94
+
95
+ // Expo config (CommonJS)
96
+
97
+ export default [
98
+ // Global ignores - loaded from eslint.ignore.config.json
99
+ {
100
+ ignores: ignorePatterns,
101
+ },
102
+
103
+ // Base configurations
104
+ js.configs.recommended,
105
+
106
+ // TypeScript configuration
107
+ ...tseslint.configs.recommended,
108
+
109
+ // Functional programming - manual configuration since v7 requires type info
110
+ // We'll configure specific rules we need without type checking
111
+ {
112
+ plugins: {
113
+ functional,
114
+ },
115
+ },
116
+
117
+ // Code quality
118
+ sonarjs.configs.recommended,
119
+ {
120
+ plugins: {
121
+ "@eslint-community/eslint-comments": eslintComments,
122
+ },
123
+ rules: {
124
+ ...eslintComments.configs.recommended.rules,
125
+ },
126
+ },
127
+
128
+ // Documentation
129
+ jsdoc.configs["flat/recommended-typescript-flavor"],
130
+
131
+ // Prettier (must be last of shared configs)
132
+ prettier,
133
+
134
+ // Base configuration for all files
135
+ {
136
+ languageOptions: {
137
+ globals: {
138
+ ...globals.browser,
139
+ ...globals.node,
140
+ ...globals.es2021,
141
+ },
142
+ parserOptions: {
143
+ ecmaVersion: 2021,
144
+ sourceType: "module",
145
+ },
146
+ },
147
+ plugins: {
148
+ "code-organization": codeOrganization,
149
+ // folders: foldersPlugin, // Disabled: not compatible with ESLint 9 flat config
150
+ },
151
+ rules: {
152
+ // Prettier: Disabled because running Prettier inside ESLint is redundant and slower.
153
+ // We use `format:check` from package.json for formatting validation and editor Prettier integration.
154
+ // The eslint-config-prettier (imported above) still disables conflicting ESLint rules.
155
+ // @see https://prettier.io/docs/en/integrating-with-linters.html
156
+ "prettier/prettier": "off",
157
+
158
+ // Code organization
159
+ "code-organization/enforce-statement-order": "error",
160
+
161
+ // Import rules
162
+ "no-restricted-imports": [
163
+ "warn",
164
+ {
165
+ patterns: ["@/features/*/*"],
166
+ },
167
+ ],
168
+
169
+ // File size - threshold loaded from eslint.thresholds.config.json
170
+ "max-lines": [
171
+ "error",
172
+ {
173
+ max: thresholds.maxLines,
174
+ skipBlankLines: true,
175
+ skipComments: true,
176
+ },
177
+ ],
178
+
179
+ // Folder naming
180
+ // NOTE: eslint-plugin-folders is not compatible with ESLint 9 flat config
181
+ // The rule has no schema defined and ESLint 9 validates rule options strictly
182
+ // This needs to be addressed in a separate PR or the plugin needs to be updated
183
+ // "folders/match-regex": ["error", "^([a-z][a-z0-9]*)(-[a-z0-9]+)*$", "/src/"],
184
+
185
+ // SonarJS rules - threshold loaded from eslint.thresholds.config.json
186
+ "sonarjs/cognitive-complexity": ["error", thresholds.cognitiveComplexity],
187
+ "sonarjs/no-identical-functions": "error",
188
+ "sonarjs/no-duplicate-string": "error",
189
+ "sonarjs/no-nested-template-literals": "warn",
190
+ "sonarjs/prefer-immediate-return": "warn",
191
+ "sonarjs/prefer-single-boolean-return": "warn",
192
+ "sonarjs/no-collapsible-if": "warn",
193
+ // New rules in SonarJS v3 - disabled temporarily to allow migration
194
+ // These need to be addressed in a separate cleanup task
195
+ "sonarjs/pseudo-random": "error",
196
+ "sonarjs/no-clear-text-protocols": "error",
197
+ "sonarjs/prefer-read-only-props": "error",
198
+ "sonarjs/no-empty-test-file": "warn",
199
+ "sonarjs/no-nested-conditional": "off",
200
+ "sonarjs/no-commented-code": "warn",
201
+ "sonarjs/no-ignored-exceptions": "warn",
202
+ "sonarjs/todo-tag": "warn",
203
+ // Next takes forever and doesn't provide value
204
+ "sonarjs/aws-restricted-ip-admin-access": "off",
205
+
206
+ // ESLint comments
207
+ "@eslint-community/eslint-comments/require-description": "error",
208
+ "@eslint-community/eslint-comments/disable-enable-pair": "error",
209
+ "@eslint-community/eslint-comments/no-unlimited-disable": "error",
210
+
211
+ // Configuration enforcement - prevent direct process.env access
212
+ // All configuration should go through ConfigService or getStandaloneConfig()
213
+ // @see PROJECT_RULES.md
214
+ "no-restricted-syntax": [
215
+ "error",
216
+ {
217
+ selector:
218
+ "MemberExpression[object.name='process'][property.name='env']",
219
+ message:
220
+ "Direct process.env access is forbidden. Use ConfigService (in NestJS context) or getStandaloneConfig() (in Lambda handlers). See PROJECT_RULES.md.",
221
+ },
222
+ ],
223
+
224
+ // General rules
225
+ "no-extra-boolean-cast": "off",
226
+ "prefer-const": "error",
227
+ "no-param-reassign": "error",
228
+ "no-var": "error",
229
+ "brace-style": "error",
230
+ "prefer-template": "error",
231
+ radix: "error",
232
+ "space-before-blocks": "error",
233
+ "no-unused-vars": "off",
234
+
235
+ // TypeScript rules
236
+ "@typescript-eslint/no-explicit-any": "error",
237
+ "@typescript-eslint/no-unused-vars": [
238
+ "error",
239
+ {
240
+ argsIgnorePattern: "^_",
241
+ varsIgnorePattern: "^_|^unstable_settings$|^React$",
242
+ caughtErrorsIgnorePattern: "^_",
243
+ },
244
+ ],
245
+ // New rules in typescript-eslint v8 - disabled temporarily
246
+ "@typescript-eslint/no-require-imports": "off",
247
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
248
+ "@typescript-eslint/ban-ts-comment": "off",
249
+ "@typescript-eslint/prefer-as-const": "off",
250
+ "@typescript-eslint/no-empty-object-type": "off",
251
+ "@typescript-eslint/no-unused-expressions": "off",
252
+ "@typescript-eslint/no-unsafe-function-type": "off",
253
+
254
+ // Functional rules - configured to avoid type-checking requirements
255
+ // Rules that require type info are disabled
256
+ "functional/no-mixed-types": "off",
257
+ "functional/functional-parameters": "off",
258
+ "functional/prefer-immutable-types": "off",
259
+ "functional/no-expression-statements": "off",
260
+ "functional/no-conditional-statements": "off",
261
+ "functional/prefer-property-signatures": "off",
262
+ "functional/no-return-void": "off",
263
+ "functional/no-throw-statements": "off",
264
+ "functional/prefer-readonly-type": "off",
265
+ "functional/prefer-tacit": "off",
266
+ "functional/readonly-type": "off",
267
+ "functional/type-declaration-immutability": "off",
268
+ // Rules we want - these work without type info
269
+ // NOTE: functional/immutable-data requires type info - enabled in TypeScript file config below
270
+ "functional/immutable-data": "off",
271
+ "functional/no-let": "error",
272
+ // Disabled: NestJS relies heavily on classes for modules, controllers, services, etc.
273
+ "functional/no-classes": "off",
274
+
275
+ // JSDoc rules
276
+ "jsdoc/require-jsdoc": [
277
+ "error",
278
+ {
279
+ require: {
280
+ FunctionDeclaration: true,
281
+ MethodDefinition: false,
282
+ ClassDeclaration: false,
283
+ ArrowFunctionExpression: false,
284
+ FunctionExpression: false,
285
+ },
286
+ contexts: [
287
+ "TSInterfaceDeclaration",
288
+ "TSTypeAliasDeclaration",
289
+ "VariableDeclaration[declarations.0.init.type='ArrowFunctionExpression']:has([id.name=/^[A-Z]/])",
290
+ ],
291
+ },
292
+ ],
293
+ "jsdoc/require-param-description": "error",
294
+ "jsdoc/require-returns-description": "error",
295
+ "jsdoc/require-property-description": "error",
296
+ "jsdoc/check-tag-names": ["error", { definedTags: ["remarks"] }],
297
+ "jsdoc/no-types": "off",
298
+ "jsdoc/require-param-type": "off",
299
+ "jsdoc/require-returns-type": "off",
300
+ "jsdoc/require-property-type": "off",
301
+ },
302
+ },
303
+
304
+ // JavaScript files override
305
+ {
306
+ files: ["**/*.js"],
307
+ rules: {
308
+ "sonarjs/cognitive-complexity": "off",
309
+ "@typescript-eslint/no-require-imports": "off", // CommonJS files
310
+ },
311
+ },
312
+
313
+ // Shared hooks and components
314
+ {
315
+ files: ["hooks/shared/**/*", "components/shared/**/*"],
316
+ rules: {
317
+ "no-restricted-imports": "off",
318
+ },
319
+ },
320
+
321
+ // Test files and Jest setup
322
+ {
323
+ files: [
324
+ "**/*.test.js",
325
+ "**/*.test.ts",
326
+ "**/*.spec.js",
327
+ "**/*.spec.ts",
328
+ "jest.setup.js",
329
+ "jest.setup.ts",
330
+ "jest.setup.pre.js",
331
+ "**/__tests__/*",
332
+ ],
333
+ languageOptions: {
334
+ globals: {
335
+ ...globals.jest,
336
+ },
337
+ },
338
+ rules: {
339
+ "@typescript-eslint/no-explicit-any": "off",
340
+ // Tests often need to mutate state for mocks, setup, and assertions
341
+ "functional/immutable-data": "off",
342
+ // Tests need to manipulate process.env for environment setup
343
+ "no-restricted-syntax": "off",
344
+ },
345
+ },
346
+
347
+ // TypeScript files - enable type-checked linting
348
+ {
349
+ files: ["**/*.ts"],
350
+ // languageOptions: {
351
+ // parserOptions: {
352
+ // projectService: true,
353
+ // tsconfigRootDir: __dirname,
354
+ // },
355
+ // },
356
+ rules: {
357
+ // Enable immutable-data rule now that type-checking is available
358
+ "functional/immutable-data": [
359
+ "off",
360
+ {
361
+ ignoreClasses: true,
362
+ ignoreImmediateMutation: true,
363
+ ignoreNonConstDeclarations: {
364
+ treatParametersAsConst: true,
365
+ },
366
+ ignoreAccessorPattern: ["*.displayName", "*.current", "*.value"],
367
+ },
368
+ ],
369
+ },
370
+ },
371
+
372
+ // TypeScript test files - disable immutable-data (must come after TypeScript config)
373
+ {
374
+ files: ["**/*.test.ts", "**/*.spec.ts"],
375
+ rules: {
376
+ // Tests often need to mutate state for mocks, setup, and assertions
377
+ "functional/immutable-data": "off",
378
+ },
379
+ },
380
+
381
+ // Configuration file - allowed to use process.env (single source of truth)
382
+ {
383
+ files: ["src/config/configuration.ts"],
384
+ rules: {
385
+ // This is the ONLY file allowed to access process.env directly
386
+ // All other code must use ConfigService or getStandaloneConfig()
387
+ "no-restricted-syntax": "off",
388
+ },
389
+ },
390
+ ];
@@ -0,0 +1,57 @@
1
+ {
2
+ "ignores": [
3
+ "build/**",
4
+ "dist/**",
5
+ ".build/**",
6
+ ".esbuild/**",
7
+ ".serverless/**",
8
+ ".webpack/**",
9
+ "_warmup/**",
10
+
11
+ "node_modules/**",
12
+ "**/node_modules/**",
13
+
14
+ "src/graphql/**",
15
+ "src/graphql.ts",
16
+ "src/graphql-generated/**",
17
+ "src/generated/**",
18
+ "graphql/**",
19
+ "graphql-generated/**",
20
+ "generated/**",
21
+ "components/ui/**",
22
+
23
+ "coverage/**",
24
+ "**/*spec.ts",
25
+ "resolver-test.setup.ts",
26
+ "**/*.factory.ts",
27
+ "**/test-utils/**",
28
+ "**/test/**",
29
+ "**/database/migrations/**",
30
+ "cypress/**",
31
+ "e2e/**",
32
+ "playwright-report/**",
33
+ ".lighthouseci/**",
34
+
35
+ ".expo/**",
36
+ ".github/**",
37
+ "public/**",
38
+ ".dead/**",
39
+ "example/**",
40
+ "tmp/**",
41
+ ".vscode/**",
42
+
43
+ "*.config.js",
44
+ "*.config.mjs",
45
+ "babel.config.js",
46
+ "metro.config.js",
47
+ "webpack.*.js",
48
+ "*.d.ts",
49
+ "esbuild.plugins.js",
50
+
51
+ "projects/**/scripts/**",
52
+ "scripts/**",
53
+
54
+ "lib/**/*.js",
55
+ "cdk.out/**"
56
+ ]
57
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "cognitiveComplexity": 10,
3
+ "maxLines": 300,
4
+ "maxLinesView": 300
5
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "id": 11725285,
3
+ "name": "base",
4
+ "target": "branch",
5
+ "source_type": "Repository",
6
+ "source": "gunnertech/thumbwar-backend",
7
+ "enforcement": "active",
8
+ "conditions": {
9
+ "ref_name": {
10
+ "exclude": [],
11
+ "include": [
12
+ "~DEFAULT_BRANCH",
13
+ "refs/heads/dev",
14
+ "refs/heads/main",
15
+ "refs/heads/staging"
16
+ ]
17
+ }
18
+ },
19
+ "rules": [
20
+ {
21
+ "type": "deletion"
22
+ },
23
+ {
24
+ "type": "non_fast_forward"
25
+ },
26
+ {
27
+ "type": "code_quality",
28
+ "parameters": {
29
+ "severity": "warnings"
30
+ }
31
+ },
32
+ {
33
+ "type": "pull_request",
34
+ "parameters": {
35
+ "required_approving_review_count": 0,
36
+ "dismiss_stale_reviews_on_push": false,
37
+ "required_reviewers": [],
38
+ "require_code_owner_review": false,
39
+ "require_last_push_approval": false,
40
+ "required_review_thread_resolution": true,
41
+ "allowed_merge_methods": [
42
+ "merge",
43
+ "squash",
44
+ "rebase"
45
+ ]
46
+ }
47
+ },
48
+ {
49
+ "type": "required_status_checks",
50
+ "parameters": {
51
+ "strict_required_status_checks_policy": true,
52
+ "do_not_enforce_on_create": true,
53
+ "required_status_checks": [
54
+ {
55
+ "context": "GitGuardian Security Checks",
56
+ "integration_id": 46505
57
+ },
58
+ {
59
+ "context": "CodeRabbit",
60
+ "integration_id": 347564
61
+ },
62
+ {
63
+ "context": "๐Ÿ” Quality Checks / ๐Ÿงช Run Unit Tests",
64
+ "integration_id": 15368
65
+ },
66
+ {
67
+ "context": "๐Ÿ” Quality Checks / ๐Ÿงช Run Integration Tests",
68
+ "integration_id": 15368
69
+ },
70
+ {
71
+ "context": "๐Ÿ” Quality Checks / ๐Ÿ” Type Check",
72
+ "integration_id": 15368
73
+ },
74
+ {
75
+ "context": "๐Ÿ” Quality Checks / ๐Ÿ—๏ธ Build",
76
+ "integration_id": 15368
77
+ },
78
+ {
79
+ "context": "๐Ÿ” Quality Checks / ๐Ÿ“ Check Formatting",
80
+ "integration_id": 15368
81
+ },
82
+ {
83
+ "context": "๐Ÿ” Quality Checks / ๐Ÿงน Lint",
84
+ "integration_id": 15368
85
+ },
86
+ {
87
+ "context": "๐Ÿ” Quality Checks / ๐Ÿ”’ Security Scan",
88
+ "integration_id": 15368
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ ],
94
+ "bypass_actors": [
95
+ {
96
+ "actor_id": null,
97
+ "actor_type": "DeployKey",
98
+ "bypass_mode": "always"
99
+ },
100
+ {
101
+ "actor_id": null,
102
+ "actor_type": "OrganizationAdmin",
103
+ "bypass_mode": "always"
104
+ }
105
+ ]
106
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "startup",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/install_pkgs.sh",
10
+ "timeout": 480
11
+ }
12
+ ]
13
+ }
14
+ ],
15
+ "PostToolUse": [
16
+ {
17
+ "matcher": "Write|Edit",
18
+ "hooks": [
19
+ {
20
+ "type": "command",
21
+ "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/format-on-edit.sh",
22
+ "timeout": 10
23
+ }
24
+ ]
25
+ }
26
+ ]
27
+ }
28
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "lint-staged": {
3
+ "*.{js,ts,tsx}": [
4
+ "eslint --quiet --cache --fix"
5
+ ],
6
+ "*.{js,ts,jsx,tsx,html,css,scss,yaml,yml,graphql}": [
7
+ "prettier --write"
8
+ ]
9
+ },
10
+ "engines": {
11
+ "npm": "please-use-bun",
12
+ "yarn": "please-use-bun",
13
+ "bun": ">= 1.3.5",
14
+ "node": "22.21.1"
15
+ },
16
+ "config": {
17
+ "commitizen": {
18
+ "path": "./node_modules/cz-conventional-changelog"
19
+ }
20
+ },
21
+ "scripts": {
22
+ "//docs": "The following commands MUST be defined for CI/CD to work properly - even if they're no-ops.",
23
+ "lint": "eslint . --quiet",
24
+ "lint:fix": "eslint . --fix",
25
+ "build": "tsc --noEmit",
26
+ "test": "NODE_ENV=test jest --passWithNoTests",
27
+ "test:unit": "NODE_ENV=test jest --testPathIgnorePatterns=\"\\.integration\\.test\\.(ts|tsx)$\" --passWithNoTests",
28
+ "test:integration": "NODE_ENV=test jest --testPathPatterns=\"\\.integration\\.test\\.(ts|tsx)$\" --passWithNoTests",
29
+ "test:cov": "NODE_ENV=test jest --coverage",
30
+ "types:check": "tsc --noEmit",
31
+ "typecheck": "tsc --noEmit",
32
+ "format:check": "prettier --check .",
33
+ "format": "prettier --check . --write",
34
+ "prepare": "node -e \"if (process.env.INIT_CWD && process.env.INIT_CWD.includes('.serverless')) { process.exit(0); }\" && husky install || true",
35
+ "//end-docs": ""
36
+ },
37
+ "devDependencies": {
38
+ "@commitlint/cli": "^20.3.1",
39
+ "@commitlint/config-conventional": "^20.3.1",
40
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
41
+ "@eslint/eslintrc": "^3.2.0",
42
+ "@eslint/js": "^9.39.0",
43
+ "@istanbuljs/nyc-config-typescript": "^1.0.2",
44
+ "@jest/test-sequencer": "^30.2.0",
45
+ "@types/jest": "^30.0.0",
46
+ "commitizen": "^4.3.0",
47
+ "cz-conventional-changelog": "^3.3.0",
48
+ "eslint": "^9.39.0",
49
+ "eslint-config-prettier": "^10.0.0",
50
+ "eslint-plugin-code-organization": "file:./eslint-plugin-code-organization",
51
+ "eslint-plugin-functional": "^9.0.0",
52
+ "eslint-plugin-jsdoc": "^61.5.0",
53
+ "eslint-plugin-prettier": "^5.5.0",
54
+ "eslint-plugin-sonarjs": "^3.0.0",
55
+ "husky": "^8.0.0",
56
+ "jest": "^30.0.0",
57
+ "jscodeshift": "0.15.2",
58
+ "lint-staged": "^16.2.7",
59
+ "prettier": "^3.3.3",
60
+ "standard-version": "^9.5.0",
61
+ "ts-jest": "^29.4.6",
62
+ "ts-morph": "^27.0.2",
63
+ "ts-node": "^10.9.2",
64
+ "typescript": "~5.9.2",
65
+ "typescript-eslint": "^8.0.0"
66
+ },
67
+ "resolutions": {},
68
+ "trustedDependencies": [
69
+ "@sentry/cli"
70
+ ]
71
+ }