@fernir2/saas-kit-cli 0.1.4 → 0.1.6

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 (303) hide show
  1. package/package.json +211 -7
  2. package/cli/.gitlab-ci.yml +0 -14
  3. package/cli/.husky/commit-msg +0 -1
  4. package/cli/.husky/pre-commit +0 -1
  5. package/cli/README.md +0 -101
  6. package/cli/bin/index.ts +0 -358
  7. package/cli/drizzle.config.ts +0 -12
  8. package/cli/global-setup.ts +0 -25
  9. package/cli/npm-commands/gen-meta/index.ts +0 -3
  10. package/cli/npm-commands/gen-schema/index.ts +0 -5
  11. package/cli/npm-commands/migrate-db/index.ts +0 -5
  12. package/cli/npm-commands/migrate-db/migrate-db.ts +0 -15
  13. package/cli/npm-commands/seed-db/index.ts +0 -5
  14. package/cli/npm-commands/seed-db/seed-db.ts +0 -15
  15. package/cli/playwright.config.ts +0 -34
  16. package/cli/postcss.config.mjs +0 -9
  17. package/cli/server.ts +0 -41
  18. package/cli/src/app/api/v1/[resourceName]/[id]/route.ts/route.ts +0 -11
  19. package/cli/src/app/api/v1/[resourceName]/route.ts/route.ts +0 -14
  20. package/cli/src/app/api/v1/[resourceName]/upsert/route.ts/route.ts +0 -3
  21. package/cli/src/app/api/v1/log/route.ts/route.ts +0 -7
  22. package/cli/src/app/api/v1/otheruser/[id]/route.ts/route.ts +0 -14
  23. package/cli/src/app/api/v1/otheruser/route.ts/route.ts +0 -7
  24. package/cli/src/app/api/v1/password/forgotpassword/route.ts/route.ts +0 -3
  25. package/cli/src/app/api/v1/password/resetpassword/route.ts/route.ts +0 -3
  26. package/cli/src/app/api/v1/payment/method/route.ts/route.ts +0 -4
  27. package/cli/src/app/api/v1/payment/route.ts/route.ts +0 -3
  28. package/cli/src/app/api/v1/payment/verify-fail/route.ts/route.ts +0 -3
  29. package/cli/src/app/api/v1/payment/verify-success/route.ts/route.ts +0 -3
  30. package/cli/src/app/api/v1/preload/route.ts/route.ts +0 -3
  31. package/cli/src/app/api/v1/searchable-resources/route.ts/route.ts +0 -11
  32. package/cli/src/app/api/v1/searchresult/route.ts/route.ts +0 -35
  33. package/cli/src/app/api/v1/sign-in/route.ts/route.ts +0 -3
  34. package/cli/src/app/api/v1/sign-out/route.ts/route.ts +0 -3
  35. package/cli/src/app/api/v1/sign-up/route.ts/route.ts +0 -3
  36. package/cli/src/app/api/v1/subscription/cancel/route.ts/route.ts +0 -3
  37. package/cli/src/app/api/v1/subscription/create/route.ts/route.ts +0 -3
  38. package/cli/src/app/api/v1/subscription/update/route.ts/route.ts +0 -3
  39. package/cli/src/app/api/v1/uimeta/route.ts/route.ts +0 -3
  40. package/cli/src/app/api/v1/uimetas/route.ts/route.ts +0 -3
  41. package/cli/src/app/api/v1/userpermission/route.ts/route.ts +0 -3
  42. package/cli/src/app/api/v1/visible-workspace/route.ts/route.ts +0 -5
  43. package/cli/src/app/api/v1/workspace/change/route.ts/route.ts +0 -5
  44. package/cli/src/app/favicon.ico +0 -0
  45. package/cli/src/app/layout.tsx +0 -42
  46. package/cli/src/app/page.tsx +0 -9
  47. package/cli/tailwind.config.ts +0 -13
  48. package/packages/base-repo/tools/git/commit-msg-script.ts +0 -42
  49. package/packages/base-repo/tools/git/pre-commit-script.ts +0 -431
  50. package/packages/level2/client/components/error-fallback/FdErrorFallback.jsx +0 -14
  51. package/packages/level2/client/components/feed/FdFeed.funcs.jsx +0 -65
  52. package/packages/level2/client/components/feed/FdFeed.jsx +0 -34
  53. package/packages/level2/client/components/feed/FdFeedActions.jsx +0 -15
  54. package/packages/level2/client/components/feed/FdFeedComments.jsx +0 -6
  55. package/packages/level2/client/components/feed/FdFeedEntry.jsx +0 -36
  56. package/packages/level2/client/components/feed/FdFeedHeader.jsx +0 -23
  57. package/packages/level2/client/components/feed/FdFeedReactionsSummary.jsx +0 -16
  58. package/packages/level2/client/components/providers/FdProviders.jsx +0 -28
  59. package/packages/level2/client/components/subscription-plan/FdSubscriptionPlan.jsx +0 -163
  60. package/packages/level2/client/components/wizard/FdWizard.jsx +0 -45
  61. package/packages/level2/client/components/wizard/FdWizardStepper.jsx +0 -55
  62. package/packages/level2/client/pages/dashboard-page/DashbordPage.jsx +0 -46
  63. package/packages/level2/client/pages/dynamic-layout-page/DynamicLayoutPage.jsx +0 -22
  64. package/packages/level2/client/pages/edit-password-page/EditPasswordPage.jsx +0 -8
  65. package/packages/level2/client/pages/edit-user-by-id-page/EditUserByIdPage.jsx +0 -14
  66. package/packages/level2/client/pages/edit-user-page/EditUserPage.jsx +0 -6
  67. package/packages/level2/client/pages/feed-page/FeedPage.jsx +0 -8
  68. package/packages/level2/client/pages/file-upload-page/FileUploadPage.jsx +0 -7
  69. package/packages/level2/client/pages/forgot-password-page/ForgotPasswordPage.jsx +0 -8
  70. package/packages/level2/client/pages/leads-viw-page/LeadsViewPage.jsx +0 -6
  71. package/packages/level2/client/pages/microsoft-page/MicrosoftPage.jsx +0 -16
  72. package/packages/level2/client/pages/payment-plan-page/PaymentPlanPage.jsx +0 -18
  73. package/packages/level2/client/pages/preload-page/PreloadPage.jsx +0 -25
  74. package/packages/level2/client/pages/reset-password-page/ResetPasswordPage.jsx +0 -8
  75. package/packages/level2/client/pages/screenshot-page/TestScreenshotPage.jsx +0 -23
  76. package/packages/level2/client/pages/sign-in-page/SignInPage.jsx +0 -24
  77. package/packages/level2/client/pages/sign-up-page/SignUpPage.jsx +0 -9
  78. package/packages/level2/client/pages/status-board-page/StatusBoardPage.jsx +0 -6
  79. package/packages/level2/client/pages/test-layout/TestLayout.jsx +0 -11
  80. package/packages/level2/client/pages/test-page/TestPage.jsx +0 -12
  81. package/packages/level2/client/pages/user-list-page/UserListPage.jsx +0 -4
  82. package/packages/level2/client/pages/view-page/ViewPage.jsx +0 -21
  83. package/packages/level2/client/payments/change-payment-method-field/ChangePaymentMethodField.jsx +0 -48
  84. package/packages/level2/client/payments/checkout-form/CheckoutForm.jsx +0 -95
  85. package/packages/level2/client/payments/checkout-form/CheckoutFormSubmit.jsx +0 -11
  86. package/packages/level2/client/payments/checkout-form/checkout-form-fields.jsx +0 -68
  87. package/packages/level2/client/website-scan/FdWebsiteScanResult.funcs.jsx +0 -12
  88. package/packages/level2/client/website-scan/FdWebsiteScanResult.jsx +0 -33
  89. package/packages/level2/client/website-scan/website-scan-data.jsx +0 -28
  90. package/packages/level2/client/website-scan/website-scan-icons/FacebookIcon.jsx +0 -6
  91. package/packages/level2/client/website-scan/website-scan-icons/FacebookPixelIcon.jsx +0 -49
  92. package/packages/level2/client/website-scan/website-scan-icons/GoogleAnalyticsIcon.jsx +0 -7
  93. package/packages/level2/client/website-scan/website-scan-icons/InstagramIcon.jsx +0 -32
  94. package/packages/level2/client/website-scan/website-scan-icons/LinkedinIcon.jsx +0 -6
  95. package/packages/level2/client/website-scan/website-scan-icons/OtherPlatformIcon.jsx +0 -110
  96. package/packages/level2/client/website-scan/website-scan-icons/ShopifyIcon.jsx +0 -46
  97. package/packages/level2/client/website-scan/website-scan-icons/SquarespaceIcon.jsx +0 -57
  98. package/packages/level2/client/website-scan/website-scan-icons/TiktokIcon.jsx +0 -15
  99. package/packages/level2/client/website-scan/website-scan-icons/WixIcon.jsx +0 -62
  100. package/packages/level2/client/website-scan/website-scan-icons/WordpressIcon.jsx +0 -53
  101. package/packages/level2/client/website-scan/website-scan-icons/XIcon.jsx +0 -6
  102. package/packages/level2/fd-app-toolbox/edit-other-user/EditOtherUser.jsx +0 -7
  103. package/packages/level2/fd-app-toolbox/edit-password-form/EditPasswordForm.jsx +0 -68
  104. package/packages/level2/fd-app-toolbox/edit-user-form/EditUserForm.jsx +0 -122
  105. package/packages/level2/fd-app-toolbox/edit-user-sheet/EditUserSheet.jsx +0 -35
  106. package/packages/level2/fd-app-toolbox/forgot-password-form/ForgotPasswordForm.jsx +0 -87
  107. package/packages/level2/fd-app-toolbox/layout/client-layout/ClientLayout.jsx +0 -19
  108. package/packages/level2/fd-app-toolbox/layout/client-root/ClientRoot.jsx +0 -32
  109. package/packages/level2/fd-app-toolbox/layout/hamburger-menu/FdHamburgerMenu.jsx +0 -47
  110. package/packages/level2/fd-app-toolbox/layout/navbar/FdNarrowNavbar.jsx +0 -40
  111. package/packages/level2/fd-app-toolbox/layout/sidebar/FdSidebar.jsx +0 -48
  112. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdDropdownMenuItemTitle.jsx +0 -12
  113. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdSidebarDropdownMenu.jsx +0 -81
  114. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-resources-provider.jsx +0 -30
  115. package/packages/level2/fd-app-toolbox/layout/toolbar/FdToolbar.jsx +0 -89
  116. package/packages/level2/fd-app-toolbox/layout/toolbar/FdTopNav.jsx +0 -42
  117. package/packages/level2/fd-app-toolbox/layout/toolbar/title-provider/ToolbarTitleProvider.jsx +0 -10
  118. package/packages/level2/fd-app-toolbox/login-form/LoginForm.jsx +0 -165
  119. package/packages/level2/fd-app-toolbox/menu/notifications-menu/FdNotificationMenu.jsx +0 -43
  120. package/packages/level2/fd-app-toolbox/menu/notifications-menu/notification-list/FdNotificationList.jsx +0 -53
  121. package/packages/level2/fd-app-toolbox/menu/top-menu/FdTopMenu.jsx +0 -28
  122. package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-group/FdTopMenuGroup.jsx +0 -35
  123. package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-item/FdTopMenuItem.jsx +0 -47
  124. package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/FdUserDropdownMenu.jsx +0 -122
  125. package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/user-dropdown-menu-item/FdUserDropdownMenuItem.jsx +0 -56
  126. package/packages/level2/fd-app-toolbox/menu/visible-workspace-picker/FdVisibleWorkspacePicker.jsx +0 -36
  127. package/packages/level2/fd-app-toolbox/menu/workspace-picker/FdWorkspacePicker.jsx +0 -47
  128. package/packages/level2/fd-app-toolbox/providers/ThemeProvider/ThemeProvider.jsx +0 -27
  129. package/packages/level2/fd-app-toolbox/providers/auth-provider/AuthProvider.jsx +0 -38
  130. package/packages/level2/fd-app-toolbox/providers/sidebar-provider/FdSidebarContext.jsx +0 -17
  131. package/packages/level2/fd-app-toolbox/register-form/RegisterForm.jsx +0 -119
  132. package/packages/level2/fd-app-toolbox/report/FdChart.jsx +0 -120
  133. package/packages/level2/fd-app-toolbox/report/ReportChart.jsx +0 -29
  134. package/packages/level2/fd-app-toolbox/reset-password-form/ResetPasswordForm.jsx +0 -81
  135. package/packages/level2/fd-app-toolbox/search/FdSearch.jsx +0 -56
  136. package/packages/level2/fd-app-toolbox/search/search-dialog/FdSearchDialog.jsx +0 -72
  137. package/packages/level2/fd-app-toolbox/search/search-dialog-provider.jsx +0 -16
  138. package/packages/level2/fd-app-toolbox/search/search-input/FdSearchInput.jsx +0 -49
  139. package/packages/level2/fd-app-toolbox/search/search-resource-results/FdSearchResourcesResults.jsx +0 -36
  140. package/packages/level2/fd-app-toolbox/search/search-result/FdSearchResult.jsx +0 -46
  141. package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResult.jsx +0 -43
  142. package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResults.jsx +0 -22
  143. package/packages/level2/fd-app-toolbox/server/layout/private-layout/PrivateLayout.jsx +0 -32
  144. package/packages/level2/fd-app-toolbox/status-board/FdStatusBoard.jsx +0 -49
  145. package/packages/level2/fd-app-toolbox/status-board/status-board-item/FdStatusBoardItem.jsx +0 -17
  146. package/packages/level2/fd-app-toolbox/status-board/status-board-status/FdStatusBoardStatus.jsx +0 -27
  147. package/packages/level2/fd-app-toolbox/user-list/UserList.jsx +0 -58
  148. package/packages/level2/fd-component-toolbox/animation/FdLabelAnimation.jsx +0 -55
  149. package/packages/level2/fd-component-toolbox/avatar/FdAvatar.jsx +0 -50
  150. package/packages/level2/fd-component-toolbox/back-button/FdBackButton.jsx +0 -21
  151. package/packages/level2/fd-component-toolbox/badge/FdBadge.jsx +0 -19
  152. package/packages/level2/fd-component-toolbox/badge-toggle-list/FdBadgeToggleList.jsx +0 -47
  153. package/packages/level2/fd-component-toolbox/button/FdButton.jsx +0 -64
  154. package/packages/level2/fd-component-toolbox/calendar/FdCalendar.jsx +0 -68
  155. package/packages/level2/fd-component-toolbox/card/FdCard.jsx +0 -56
  156. package/packages/level2/fd-component-toolbox/card/FdCardBigDigits.jsx +0 -25
  157. package/packages/level2/fd-component-toolbox/chart/FdChart.jsx +0 -269
  158. package/packages/level2/fd-component-toolbox/checkbox/FdCheckbox.jsx +0 -39
  159. package/packages/level2/fd-component-toolbox/command/FdCommand.jsx +0 -123
  160. package/packages/level2/fd-component-toolbox/datepicker/FdDatePicker.jsx +0 -155
  161. package/packages/level2/fd-component-toolbox/dialog/FdDialog.jsx +0 -106
  162. package/packages/level2/fd-component-toolbox/dialog/YesOrNoDialog.jsx +0 -57
  163. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDragDropContext.jsx +0 -19
  164. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDraggable.jsx +0 -27
  165. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDroppable.jsx +0 -22
  166. package/packages/level2/fd-component-toolbox/dropdown-menu/FdDropdownMenu.jsx +0 -198
  167. package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicComponent.jsx +0 -27
  168. package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicLayoutDragAndDrop.jsx +0 -78
  169. package/packages/level2/fd-component-toolbox/fade-out-text/FdFadeOutText.jsx +0 -52
  170. package/packages/level2/fd-component-toolbox/form/FdForm.jsx +0 -146
  171. package/packages/level2/fd-component-toolbox/icon/FdIcon.jsx +0 -192
  172. package/packages/level2/fd-component-toolbox/icon/custom-icons/FdFilterIcon.jsx +0 -11
  173. package/packages/level2/fd-component-toolbox/image/FdImage.jsx +0 -15
  174. package/packages/level2/fd-component-toolbox/input/FdInput.jsx +0 -94
  175. package/packages/level2/fd-component-toolbox/label/FdLabel.jsx +0 -19
  176. package/packages/level2/fd-component-toolbox/link/FdLink.jsx +0 -23
  177. package/packages/level2/fd-component-toolbox/list/FdList.jsx +0 -20
  178. package/packages/level2/fd-component-toolbox/list/list-item/FdListItem.jsx +0 -46
  179. package/packages/level2/fd-component-toolbox/loading/FdLoadingIndicator.jsx +0 -7
  180. package/packages/level2/fd-component-toolbox/logos/FacebookLogo.jsx +0 -11
  181. package/packages/level2/fd-component-toolbox/logos/GoogleLogo.jsx +0 -12
  182. package/packages/level2/fd-component-toolbox/logos/MicrosoftLogo.jsx +0 -11
  183. package/packages/level2/fd-component-toolbox/markdown/FdMarkdown.jsx +0 -105
  184. package/packages/level2/fd-component-toolbox/markdown/markdown-parser.jsx +0 -72
  185. package/packages/level2/fd-component-toolbox/multiselect/FdMultiselect.jsx +0 -240
  186. package/packages/level2/fd-component-toolbox/navigation/FdNavigation.jsx +0 -43
  187. package/packages/level2/fd-component-toolbox/navigation/navigation-item/FdNavigationItem.jsx +0 -23
  188. package/packages/level2/fd-component-toolbox/radio-group/FdRadioGroup.jsx +0 -46
  189. package/packages/level2/fd-component-toolbox/rich-text/FdRichText.jsx +0 -58
  190. package/packages/level2/fd-component-toolbox/save-status/FdSaveStatus.jsx +0 -40
  191. package/packages/level2/fd-component-toolbox/select/FdSelect.jsx +0 -173
  192. package/packages/level2/fd-component-toolbox/separator/FdSeparator.jsx +0 -19
  193. package/packages/level2/fd-component-toolbox/sheet/FdSheet.jsx +0 -121
  194. package/packages/level2/fd-component-toolbox/slide-toggle/FdSlideToggle.jsx +0 -57
  195. package/packages/level2/fd-component-toolbox/spinner/Spinner.jsx +0 -36
  196. package/packages/level2/fd-component-toolbox/subheading/FdSubHeading.jsx +0 -12
  197. package/packages/level2/fd-component-toolbox/switch/FdSwitch.jsx +0 -55
  198. package/packages/level2/fd-component-toolbox/tabs/FdTabs.jsx +0 -53
  199. package/packages/level2/fd-component-toolbox/textarea/FdTextArea.jsx +0 -42
  200. package/packages/level2/fd-component-toolbox/toaster/FdToaster.jsx +0 -20
  201. package/packages/level2/fd-component-toolbox/tooltip/FdTooltip.jsx +0 -80
  202. package/packages/level2/meta/browsers/base-multi-browser/FdBaseMultiBrowser.jsx +0 -72
  203. package/packages/level2/meta/browsers/base-multi-browser/base-multi-browser-dialog/FdBaseMultiBrowserDialog.jsx +0 -159
  204. package/packages/level2/meta/browsers/browser/FdBrowser.jsx +0 -58
  205. package/packages/level2/meta/browsers/browser/browser-dialog/FdBrowserDialog.jsx +0 -89
  206. package/packages/level2/meta/browsers/many-to-many-browser/FdManyToManyBrowser.jsx +0 -33
  207. package/packages/level2/meta/browsers/multi-browser/FdMultiBrowser.jsx +0 -32
  208. package/packages/level2/meta/card-list/FdCardList.jsx +0 -40
  209. package/packages/level2/meta/card-list/card/FdCard.jsx +0 -44
  210. package/packages/level2/meta/card-list/card/action-block/FdCardActionBlock.jsx +0 -70
  211. package/packages/level2/meta/card-list/card/content-block/FdCardContentBlock.jsx +0 -64
  212. package/packages/level2/meta/card-list/card/image-block/FdCardImage.jsx +0 -10
  213. package/packages/level2/meta/client/framework/hooks.jsx +0 -39
  214. package/packages/level2/meta/comment/FdComment.jsx +0 -16
  215. package/packages/level2/meta/comment/FdCommentList.jsx +0 -32
  216. package/packages/level2/meta/components/edit-image/FdEditImage.jsx +0 -42
  217. package/packages/level2/meta/components/edit-image/FdEditImageActionMenu.jsx +0 -31
  218. package/packages/level2/meta/components/edit-image/FdEditImageDropdownMenu.jsx +0 -42
  219. package/packages/level2/meta/components/file-upload/FileUpload.jsx +0 -103
  220. package/packages/level2/meta/components/file-upload/PreviewMedia.jsx +0 -36
  221. package/packages/level2/meta/components/multi-list/FdMultiList.jsx +0 -65
  222. package/packages/level2/meta/components/multi-list/FdMultiListEditResource.jsx +0 -31
  223. package/packages/level2/meta/edit-resource/FdEditResource.jsx +0 -135
  224. package/packages/level2/meta/edit-resource/FdEditResourceFormBody.jsx +0 -8
  225. package/packages/level2/meta/edit-resource/FdEditResourceHeader.jsx +0 -43
  226. package/packages/level2/meta/edit-resource/FdEditResourceSheet.jsx +0 -70
  227. package/packages/level2/meta/edit-resource/SaveCompleteProvider.jsx +0 -16
  228. package/packages/level2/meta/edit-resource/edit-link/FdEditLink.jsx +0 -48
  229. package/packages/level2/meta/edit-resource/edit-link/FdEditLinkResource.jsx +0 -18
  230. package/packages/level2/meta/edit-resource/edit-resource-dialog/FdEditResourceDialog.jsx +0 -34
  231. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceBlobField.jsx +0 -15
  232. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceEnumField.jsx +0 -35
  233. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceFlagsEnumField.jsx +0 -23
  234. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceImageField.jsx +0 -7
  235. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourcePropertyBlock.jsx +0 -38
  236. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceRichTextField.jsx +0 -16
  237. package/packages/level2/meta/edit-resource/edit-resource-property-block/edit-resource-fields.jsx +0 -53
  238. package/packages/level2/meta/edit-resource/edit-resource-property-field/FdEditResourcePropertyField.jsx +0 -105
  239. package/packages/level2/meta/filtering/filter/FdEnumFlagFilter.jsx +0 -40
  240. package/packages/level2/meta/filtering/filter/FdFilter.jsx +0 -123
  241. package/packages/level2/meta/filtering/filter/filters/BooleanFilter.jsx +0 -25
  242. package/packages/level2/meta/filtering/filter/filters/DateFilter.jsx +0 -10
  243. package/packages/level2/meta/filtering/filter/filters/EnumFilter.jsx +0 -44
  244. package/packages/level2/meta/filtering/filter/filters/GuidFilter.jsx +0 -28
  245. package/packages/level2/meta/filtering/filter/filters/IntegerFilter.jsx +0 -28
  246. package/packages/level2/meta/filtering/filter/filters/TextFilter.jsx +0 -11
  247. package/packages/level2/meta/filtering/resource-filter-list/FdResourceFilterList.jsx +0 -120
  248. package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.funcs.jsx +0 -4
  249. package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.jsx +0 -43
  250. package/packages/level2/meta/providers/global-provider/FdGlobalContext.jsx +0 -17
  251. package/packages/level2/meta/resource-list/ResourceList.jsx +0 -63
  252. package/packages/level2/meta/resource-list/resource-add-button.jsx +0 -11
  253. package/packages/level2/meta/resource-list/resource-list-card/FdResourceListCard.jsx +0 -7
  254. package/packages/level2/meta/resource-list/resource-list-filter/FdResourceListFilter.jsx +0 -11
  255. package/packages/level2/meta/resource-list/resource-table-list/FdResourceTableList.jsx +0 -14
  256. package/packages/level2/meta/table/FdTable.jsx +0 -147
  257. package/packages/level2/meta/table/body/FdTableBody.jsx +0 -9
  258. package/packages/level2/meta/table/body-cell/FdActionBodyCell.jsx +0 -145
  259. package/packages/level2/meta/table/body-cell/FdBlobBodyCell.jsx +0 -27
  260. package/packages/level2/meta/table/body-cell/FdBodyCell.jsx +0 -133
  261. package/packages/level2/meta/table/body-cell/FdBodyCellValue.jsx +0 -59
  262. package/packages/level2/meta/table/body-cell/FdBodyExpandCell.jsx +0 -6
  263. package/packages/level2/meta/table/body-cell/FdBodyExpandPropertyCell.jsx +0 -22
  264. package/packages/level2/meta/table/body-cell/FdCustomActionLink.jsx +0 -16
  265. package/packages/level2/meta/table/body-cell/FdMultiselectCellTemplate.jsx +0 -39
  266. package/packages/level2/meta/table/body-cell/FdViewCell.jsx +0 -12
  267. package/packages/level2/meta/table/body-row/FdTableBodyRow.jsx +0 -49
  268. package/packages/level2/meta/table/header/FdTableHeader.jsx +0 -54
  269. package/packages/level2/meta/table/header-cell/FdResizable.jsx +0 -18
  270. package/packages/level2/meta/table/header-cell/FdResizableEdgeHandle.jsx +0 -4
  271. package/packages/level2/meta/table/header-cell/FdTableHeaderActionCell.jsx +0 -49
  272. package/packages/level2/meta/table/header-cell/FdTableHeaderCell.jsx +0 -89
  273. package/packages/level2/meta/table/header-cell/FdTableHeaderCellActionButton.jsx +0 -23
  274. package/packages/level2/meta/table/pager/FdPager.jsx +0 -72
  275. package/packages/level2/meta/table/table-custom-action/TableCustomAction.jsx +0 -26
  276. package/packages/level2/meta/view/FdView.jsx +0 -31
  277. package/packages/level2/meta/view/FdViewSheet.jsx +0 -103
  278. package/packages/level2/meta/view/view-resource/FdViewResource.jsx +0 -108
  279. package/packages/level2/meta/view/view-resource/templates/ManyToOneTableHeaderCellTemplate.jsx +0 -13
  280. package/src/app/error.jsx +0 -5
  281. package/src/app/global-error.jsx +0 -5
  282. package/src/app/loading.jsx +0 -11
  283. package/src/hd/footer/HdFooter.jsx +0 -27
  284. package/src/hd/footer/hd-footer-item/HdFooterItem.jsx +0 -14
  285. package/src/lm/ai-scan/AiScanAction.jsx +0 -21
  286. package/src/lm/ai-scan/cell-templates/AiScanWebsiteResultCellTemplate.jsx +0 -31
  287. package/src/lm/components/LmCardReport.jsx +0 -12
  288. package/src/lm/configs/lm-list-configs.jsx +0 -72
  289. package/src/lm/google-place/action-dropdown/GooglePlaceActionDropdown.jsx +0 -42
  290. package/src/lm/google-place/actions/GooglePlaceSaveToGroupAction.jsx +0 -22
  291. package/src/lm/google-place/cell-templates/GooglePlaceBusinessInfoCellTemplate.jsx +0 -59
  292. package/src/lm/google-place/cell-templates/GooglePlaceEmailsCellTemplate.jsx +0 -34
  293. package/src/lm/google-place/cell-templates/GooglePlaceScanAction.jsx +0 -15
  294. package/src/lm/lead/action-dropdown/LeadActionDropdown.jsx +0 -39
  295. package/src/lm/lead/actions/move-to-group-action/LeadMoveToGroupAction.jsx +0 -28
  296. package/src/lm/lead/cell-templates/LeadBusinessInfoCellTemplate.jsx +0 -64
  297. package/src/lm/lead/cell-templates/LeadScanAction.jsx +0 -15
  298. package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicator.jsx +0 -8
  299. package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicators.jsx +0 -17
  300. package/src/lm/lead/lead-google-place/LeadGooglePlaceInfo.jsx +0 -15
  301. package/src/lm/lead/view/LeadsView.jsx +0 -8
  302. package/src/lm/pages/HomePage.jsx +0 -53
  303. package/types-output/tsconfig.tsbuildinfo +0 -1
@@ -1,35 +0,0 @@
1
- import { SearchResult } from "@fd-app-toolbox/resources/search-result.resource";
2
- import { searchResultParams } from "@fd-toolbox/constants/search-result-constants";
3
- import { getSearchableResourceResult, getSearchScreensResult } from "@server/search/search-result";
4
- import { SearchableResourceResult } from "@fd-app-toolbox/models/searchable-resource-result";
5
- import { ScreensResult } from "@fd-app-toolbox/models/screens-result";
6
- import { httpApiWrapper } from "@meta/server/web/http-api-wrapper";
7
- import { apiOkResponse } from "@meta/server/web/responses";
8
- import { isPromiseFulfilled } from "@fd-toolbox/lib/utils";
9
-
10
- export const GET = httpApiWrapper(async (req: Request) => {
11
- const url = new URL(req.url);
12
- const querySearch = url.searchParams.get(searchResultParams.querySearch) ?? "";
13
- const filterSearchParam = url.searchParams.get(searchResultParams.filterSearch);
14
-
15
- const filterSearch = filterSearchParam ? filterSearchParam.split(",") : [];
16
-
17
- const searchResourceResultPromise = getSearchableResourceResult(
18
- querySearch,
19
- filterSearch,
20
- ) satisfies Promise<SearchableResourceResult[]>;
21
-
22
- const searchScreensResultPromise = getSearchScreensResult(querySearch, filterSearch) satisfies Promise<
23
- ScreensResult[]
24
- >;
25
-
26
- const [searchResourceResult, searchScreensResult] = await Promise.allSettled([
27
- searchResourceResultPromise,
28
- searchScreensResultPromise,
29
- ]);
30
-
31
- return apiOkResponse<SearchResult>({
32
- searchableResources: isPromiseFulfilled(searchResourceResult) ? searchResourceResult.value : [],
33
- screens: isPromiseFulfilled(searchScreensResult) ? searchScreensResult.value : [],
34
- });
35
- });
@@ -1,3 +0,0 @@
1
- import { signInApi } from "@server/auth/sign-in-api";
2
-
3
- export const POST = signInApi;
@@ -1,3 +0,0 @@
1
- import { signOutGetRoute } from "@server/auth/sign-out-api";
2
-
3
- export const GET = signOutGetRoute;
@@ -1,3 +0,0 @@
1
- import { signUpApi } from "@server/auth/sign-up-api";
2
-
3
- export const POST = signUpApi;
@@ -1,3 +0,0 @@
1
- import { subscriptionCancelPostRoute } from "@server/subscription/cancel/subscription-cancel-api";
2
-
3
- export const POST = subscriptionCancelPostRoute;
@@ -1,3 +0,0 @@
1
- import { subscriptionCreatePostRoute } from "@server/subscription/create/subscription-create-api";
2
-
3
- export const POST = subscriptionCreatePostRoute;
@@ -1,3 +0,0 @@
1
- import { subscriptionUpdatePostRoute } from "@server/subscription/update/subscription-update-api";
2
-
3
- export const POST = subscriptionUpdatePostRoute;
@@ -1,3 +0,0 @@
1
- import { uiMetaRoute } from "@meta/server/ui/ui-metas-api";
2
-
3
- export const GET = uiMetaRoute;
@@ -1,3 +0,0 @@
1
- import { uiMetasRoute } from "@meta/server/ui/ui-metas-api";
2
-
3
- export const GET = uiMetasRoute;
@@ -1,3 +0,0 @@
1
- import { permissionRoute } from "@server/fd/fd-toolbox-web/permissions/permission-api";
2
-
3
- export const GET = permissionRoute;
@@ -1,5 +0,0 @@
1
- import { visibleWorkspaceGetRoute, visibleWorkspacePostRoute } from "@server/workspace/visible-workspace-api";
2
-
3
- export const POST = visibleWorkspacePostRoute;
4
-
5
- export const GET = visibleWorkspaceGetRoute;
@@ -1,5 +0,0 @@
1
- import { workspaceGetRoute, workspacePostRoute } from "@server/workspace/workspace-api";
2
-
3
- export const GET = workspaceGetRoute;
4
-
5
- export const POST = workspacePostRoute;
Binary file
@@ -1,42 +0,0 @@
1
- import { FdHtmlMetadata } from "@meta/client/framework";
2
- import { GeistSans } from "geist/font/sans";
3
- import "src/app/globals.css";
4
- import { cn } from "@fd-toolbox/lib/utils";
5
- import Favicon from "src/app/favicon.ico";
6
- import { FdToaster } from "@fd-component-toolbox/toaster/FdToaster";
7
- import { ReactNode } from "react";
8
- import { FdProviders } from "@client/components/providers/FdProviders";
9
- import { setSidebarResourceNames } from "@fd-app-toolbox/layout/sidebar/sidebar-resource-names-cache";
10
- import { defaultGlobalConfig } from "@meta/providers/global-provider/default-config";
11
- import { setMultiListEditResourceConfigs } from "@/app/config/multi-list-config";
12
- import { setResourceListConfigs } from "@packages/level2/client/pages/view-page/resource-list-configs";
13
-
14
- export const metadata: FdHtmlMetadata = {
15
- title: "SaaS Kit",
16
- icons: [{ rel: "icon", url: Favicon.src }],
17
- };
18
-
19
- export default async function RootLayout({ children }: { children: ReactNode }) {
20
- const sidebarResourceNames: string[] = [];
21
-
22
- setSidebarResourceNames(sidebarResourceNames);
23
- await setMultiListEditResourceConfigs();
24
- await setResourceListConfigs();
25
-
26
- return (
27
- <html lang="en">
28
- <body className={cn(GeistSans.className, "h-screen text-sm")}>
29
- <div className="flex h-full flex-col">
30
- <FdProviders
31
- globalConfig={{
32
- ...defaultGlobalConfig,
33
- }}
34
- >
35
- {children}
36
- </FdProviders>
37
- </div>
38
- <FdToaster />
39
- </body>
40
- </html>
41
- );
42
- }
@@ -1,9 +0,0 @@
1
- import { fdRedirect } from "@fd-toolbox/server/framework";
2
- import { getResourceListUrl } from "@meta/services/meta-navigations";
3
- import { resourceNames } from "@fd-toolbox/resources/resource-names";
4
-
5
- export default function Home() {
6
- const afterLoginUrl = getResourceListUrl(resourceNames.contact);
7
-
8
- fdRedirect(afterLoginUrl);
9
- }
@@ -1,13 +0,0 @@
1
- import { getTailwindConfig } from "@fernir2/saas-kit";
2
-
3
- const config = getTailwindConfig();
4
-
5
- config.content = [
6
- "./pages/**/*.{ts,tsx}",
7
- "./components/**/*.{ts,tsx}",
8
- "./app/**/*.{ts,tsx}",
9
- "./src/**/*.{ts,tsx}",
10
- "./node_modules/@fernir2/saas-kit/src/**/*.{js,ts,jsx,tsx}",
11
- ];
12
-
13
- export default config;
@@ -1,42 +0,0 @@
1
- import * as fs from "fs";
2
-
3
- function exitWithError(message: string) {
4
- console.error(`\nError: ${message}`);
5
- console.log(
6
- "\n-----------------------------------------------------------------------------------------",
7
- );
8
- console.log("ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR");
9
- console.log("FAIL FAIL FAIL FAIL FAIL FAIL FAIL Commit message check failed. FAIL FAIL FAIL FAIL FAIL\n");
10
- process.exit(1);
11
- }
12
-
13
- function getCommitMessage(commitMessageFilePath: string): string {
14
- if (!commitMessageFilePath) {
15
- exitWithError("Commit message file path not provided.");
16
- }
17
-
18
- try {
19
- return fs.readFileSync(commitMessageFilePath, "utf-8").trim();
20
- } catch (error) {
21
- const errorMessage = error instanceof Error ? error.message : String(error);
22
- exitWithError(`Could not read commit message file: ${commitMessageFilePath}. ${errorMessage}`);
23
- return "";
24
- }
25
- }
26
-
27
- function validateCommitMessageFormat(commitMessage: string) {
28
- const commitMergeMessagePattern = /^[Mm]erge .*/;
29
- const commitMessagePattern = /^\d{1,5} ?- ?.*/;
30
-
31
- if (!commitMessagePattern.test(commitMessage) && !commitMergeMessagePattern.test(commitMessage)) {
32
- exitWithError(
33
- "Commit message format should be: 1234-your-message. If have no task write: 0 - your message",
34
- );
35
- }
36
- }
37
-
38
- const commitMessageFilePath = process.argv[2];
39
- const commitMessage = getCommitMessage(commitMessageFilePath);
40
- validateCommitMessageFormat(commitMessage);
41
-
42
- console.log("Commit message validation passed.");
@@ -1,431 +0,0 @@
1
- import * as fs from "fs";
2
- import * as childProcess from "child_process";
3
-
4
- function executeCommand(command: string, options?: childProcess.ExecSyncOptionsWithStringEncoding) {
5
- try {
6
- const defaultOptions: childProcess.ExecSyncOptionsWithStringEncoding = {
7
- encoding: "utf-8",
8
- stdio: "pipe",
9
- };
10
- const mergedOptions = { ...defaultOptions, ...options };
11
- const stdout = childProcess.execSync(command, mergedOptions);
12
- return { stdout: stdout.toString(), stderr: "", status: 0 };
13
- // Approved
14
- //eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- } catch (error: any) {
16
- return {
17
- stdout: error.stdout?.toString() ?? "",
18
- stderr: error.stderr?.toString() ?? "",
19
- status: error.status === undefined ? 1 : error.status,
20
- };
21
- }
22
- }
23
-
24
- function executeCommandWithCombinedOutput(command: string) {
25
- const result = childProcess.spawnSync(command, {
26
- shell: true,
27
- encoding: "utf-8",
28
- stdio: "pipe",
29
- });
30
-
31
- let combinedOutput = "";
32
-
33
- if (result.stdout) {
34
- combinedOutput += result.stdout.toString();
35
- }
36
-
37
- if (result.stderr) {
38
- combinedOutput += result.stderr.toString();
39
- }
40
-
41
- if (result.error) {
42
- combinedOutput += `\nFailed to spawn command: ${result.error.message}`;
43
- return {
44
- output: combinedOutput.trim(),
45
- status: result.status ?? 1,
46
- };
47
- }
48
-
49
- const status = result.status ?? 1;
50
-
51
- return {
52
- output: combinedOutput.trim(),
53
- status: status,
54
- };
55
- }
56
-
57
- function printFailureMessageBlock() {
58
- console.log(
59
- "\n-----------------------------------------------------------------------------------------",
60
- );
61
- console.log("ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR");
62
- console.log("ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR");
63
- console.log("ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR");
64
- console.log("----------------------------------------- ERROR -----------------------------------------");
65
- console.log(
66
- "FAIL FAIL FAIL FAIL FAIL FAIL FAIL Pre commit check failed. FAIL FAIL FAIL FAIL FAIL FAIL\n",
67
- );
68
- }
69
-
70
- function exitWithError(message: string, details?: string) {
71
- console.error(`\nError: ${message}`);
72
-
73
- if (details) {
74
- console.error(details);
75
- }
76
-
77
- printFailureMessageBlock();
78
- process.exit(1);
79
- }
80
-
81
- function runTypeCheck() {
82
- console.log("\nRunning TypeScript type check...");
83
-
84
- const stagedFilesResult = executeCommand("git diff --name-only --cached");
85
-
86
- if (stagedFilesResult.status !== 0) {
87
- console.warn("Warning: Could not get staged files for TypeScript check.");
88
- return;
89
- }
90
-
91
- const changedTsFiles = stagedFilesResult.stdout
92
- .trim()
93
- .split("\n")
94
- .filter((file: string) => {
95
- return /\.(ts|tsx)$/.test(file) && !file.includes("node_modules") && fs.existsSync(file);
96
- });
97
-
98
- if (changedTsFiles.length === 0) {
99
- console.log("No TypeScript files to check.");
100
- return;
101
- }
102
-
103
- console.log(`Type checking ${changedTsFiles.length} TypeScript file(s)...`);
104
-
105
- let hasErrors = false;
106
- let allErrors = "";
107
-
108
- for (const file of changedTsFiles) {
109
- const typeCheckCommand = `npx tsc --noEmit --skipLibCheck ${file}`;
110
- const typeCheckResult = executeCommandWithCombinedOutput(typeCheckCommand);
111
-
112
- if (typeCheckResult.status !== 0) {
113
- const output = typeCheckResult.output;
114
- const lines = output.split("\n");
115
- const relevantErrors = lines.filter(isRelevantTypeError(file));
116
-
117
- if (relevantErrors.length > 0) {
118
- hasErrors = true;
119
- allErrors += `${relevantErrors.join("\n")}\n`;
120
- }
121
- }
122
- }
123
-
124
- if (hasErrors) {
125
- exitWithError("TypeScript type check failed.", allErrors.trim());
126
- }
127
-
128
- console.log("TypeScript type check successful.");
129
- }
130
-
131
- function isRelevantTypeError(file: string) {
132
- return (line: string) => {
133
- return (
134
- (line.includes(file) || line.includes("error TS")) &&
135
- !line.includes("node_modules") &&
136
- !line.includes("Version") &&
137
- !line.includes("COMMON COMMANDS") &&
138
- !line.includes("npm warn")
139
- );
140
- };
141
- }
142
-
143
- function shouldSkipChecks() {
144
- const changedFilesResult = executeCommand("git diff --cached --name-only");
145
-
146
- if (changedFilesResult.status !== 0) {
147
- console.warn("Warning: Could not determine changed files. Proceeding with checks...");
148
-
149
- if (changedFilesResult.stderr) console.warn(changedFilesResult.stderr);
150
-
151
- return false;
152
- }
153
-
154
- const changedFilesOutput = changedFilesResult.stdout.trim();
155
-
156
- if (changedFilesOutput === "") {
157
- return false;
158
- }
159
-
160
- const changedFilesList = changedFilesOutput.split("\n");
161
- const nonSkippableChange = changedFilesList.some(
162
- (file: string) => !file.endsWith(".md") && !file.startsWith("packages/docs/content"),
163
- );
164
-
165
- if (!nonSkippableChange) {
166
- console.log(
167
- "Skipping pre-commit checks: Only .md files or files from packages/docs/content are changed.",
168
- );
169
- return true;
170
- }
171
-
172
- return false;
173
- }
174
-
175
- function checkForUnstagedOrUntrackedChanges() {
176
- console.log("\nChecking for unstaged or untracked changes...");
177
- const unstagedCheck = executeCommand(
178
- "git diff --name-status -- . ':(exclude)packages/flint' ':(exclude)packages/test'",
179
- );
180
- const hasUnstagedChanges = unstagedCheck.stdout.trim() !== "";
181
-
182
- const untrackedCheck = executeCommand("git ls-files --others --exclude-standard");
183
- const hasUntrackedFiles = untrackedCheck.stdout.trim() !== "";
184
-
185
- if (hasUnstagedChanges || hasUntrackedFiles) {
186
- let message = "Forbidden to commit with:";
187
-
188
- if (hasUnstagedChanges) message += "\n- Unstaged changes";
189
-
190
- if (hasUntrackedFiles) message += "\n- Untracked files";
191
-
192
- message +=
193
- "\n\nIf you do not want to commit them, use stash (git stash -k -u) or add them to .gitignore.";
194
- exitWithError(message);
195
- }
196
-
197
- console.log("No unstaged or untracked changes found.");
198
- }
199
-
200
- function checkVSCodePrettierExtension() {
201
- console.log("\nChecking for VSCode Prettier extension...");
202
- const codeExistsResult = executeCommand("command -v code");
203
-
204
- if (codeExistsResult.status === 0) {
205
- const prettierExtCheckResult = executeCommand("code --list-extensions | grep esbenp.prettier-vscode");
206
-
207
- if (prettierExtCheckResult.status !== 0) {
208
- console.warn("Warning: VSCode Prettier extension (esbenp.prettier-vscode) not found.");
209
- } else {
210
- console.log("VSCode Prettier extension found.");
211
- }
212
- } else {
213
- console.warn("Warning: VS Code 'code' command not found in PATH. Cannot check extensions.");
214
- }
215
- }
216
-
217
- function checkPrettierDependencies() {
218
- console.log("\nChecking for Prettier dependencies...");
219
- const pnpmListResult = executeCommand("pnpm list");
220
-
221
- if (pnpmListResult.status !== 0) {
222
- exitWithError(
223
- "Failed to check pnpm dependencies using 'pnpm list'.",
224
- pnpmListResult.stderr ?? pnpmListResult.stdout,
225
- );
226
- return;
227
- }
228
-
229
- const pnpmOutput = pnpmListResult.stdout;
230
- const tailwindPluginFound = pnpmOutput.includes("prettier-plugin-tailwindcss");
231
- const prettierPackageFound = /^prettier /m.test(pnpmOutput);
232
-
233
- if (!tailwindPluginFound) {
234
- exitWithError(
235
- "'prettier-plugin-tailwindcss' not found in 'pnpm list' output.",
236
- "Please ensure it is installed as a devDependency.",
237
- );
238
- }
239
-
240
- if (!prettierPackageFound) {
241
- exitWithError(
242
- "'prettier' package not found in 'pnpm list' output.",
243
- "Please ensure it is installed as a devDependency.",
244
- );
245
- }
246
-
247
- const prettierBinExists = fs.existsSync("./node_modules/.bin/prettier");
248
-
249
- if (!prettierBinExists) {
250
- exitWithError(
251
- "Prettier binary not found at ./node_modules/.bin/prettier.",
252
- "Ensure Prettier is installed correctly.",
253
- );
254
- }
255
-
256
- console.log("Prettier dependencies and binary found.");
257
- }
258
-
259
- function runPrettier() {
260
- console.log("\nFormatting staged files with Prettier...");
261
- const filesToFormatResult = executeCommand("git diff --cached --name-only --diff-filter=ACMR");
262
-
263
- if (filesToFormatResult.status !== 0 || filesToFormatResult.stdout.trim() === "") {
264
- console.log("No files to format or error obtaining file list. Skipping Prettier run.");
265
-
266
- if (filesToFormatResult.stderr) console.warn(filesToFormatResult.stderr);
267
-
268
- return;
269
- }
270
-
271
- const filesToFormatPaths = filesToFormatResult.stdout.trim().split("\n").filter(Boolean);
272
-
273
- if (filesToFormatPaths.length > 0) {
274
- const prettierCommandBase = "npx prettier";
275
- const commandArgsString = filesToFormatPaths
276
- .map((filePath: string): string => {
277
- // Approved
278
- // eslint-disable-next-line @stylistic/quotes
279
- const escapedPath = filePath.replace(/"/g, '\\"');
280
- return `"${escapedPath}"`;
281
- })
282
- .join(" ");
283
- const commandString = `${prettierCommandBase} --ignore-unknown --write ${commandArgsString}`;
284
-
285
- try {
286
- childProcess.execSync(commandString, { stdio: "inherit" });
287
- console.log("Prettier formatting complete. Review output above for changes.");
288
- } catch (error: unknown) {
289
- const errorMessage = error instanceof Error ? error.message : String(error);
290
- exitWithError("Error running Prettier.", errorMessage);
291
- }
292
- } else {
293
- console.log("No files found by git diff for Prettier to format.");
294
- }
295
-
296
- const postPrettierUnstagedCheck = executeCommand(
297
- "git diff --name-status -- . ':(exclude)packages/flint' ':(exclude)packages/test'",
298
- );
299
- const postPrettierUntrackedCheck = executeCommand("git ls-files --others --exclude-standard");
300
-
301
- if (postPrettierUnstagedCheck.stdout.trim() !== "" || postPrettierUntrackedCheck.stdout.trim() !== "") {
302
- exitWithError(
303
- "Prettier modified your code. Stage these changes and commit again.",
304
- "Files were formatted by Prettier. Please review and 'git add' them.",
305
- );
306
- }
307
-
308
- console.log("No changes made by Prettier, or changes were already staged.");
309
- }
310
-
311
- function executeESLintBatches(filesToLint: string[]): { fullLintOutput: string; hasFailures: boolean } {
312
- let hasFailures = false;
313
- let fullLintOutput = "";
314
- const batchSize = 50;
315
-
316
- for (let i = 0; i < filesToLint.length; i += batchSize) {
317
- const batch = filesToLint.slice(i, i + batchSize);
318
- const fileArgs = batch.map((f: string) => `"${f}"`).join(" ");
319
- const lintCommand = `npm run lint-sub -- ${fileArgs} --no-error-on-unmatched-pattern`;
320
-
321
- console.log(`Executing ESLint batch: ${lintCommand}`);
322
- const batchRunResult = executeCommandWithCombinedOutput(lintCommand);
323
- fullLintOutput += `${batchRunResult.output}\\n`;
324
-
325
- if (batchRunResult.status !== 0) {
326
- hasFailures = true;
327
- }
328
- }
329
-
330
- return { fullLintOutput, hasFailures };
331
- }
332
-
333
- function processAndReportESLintOutput(fullLintOutput: string, initialHasFailures: boolean) {
334
- const lines = fullLintOutput.split("\\n");
335
- const filteredLintOutput = lines
336
- .filter(
337
- (line: string) =>
338
- !line.startsWith("> eslint") && !/saas-kit@/.test(line) && !/^\\s*✖/.test(line),
339
- )
340
- .filter((line: string) => line.trim() !== "")
341
- .join("\\n");
342
- let hasLintErrors = initialHasFailures;
343
- const errorPattern = /\\d+:\\d+\\s+error\\s+/;
344
-
345
- if (errorPattern.test(filteredLintOutput)) {
346
- hasLintErrors = true;
347
- }
348
-
349
- if (hasLintErrors) {
350
- const errorLines = filteredLintOutput.match(/\\d+:\\d+\\s+error\\s+/g) ?? [];
351
- const warningLines = filteredLintOutput.match(/\\d+:\\d+\\s+warning\\s+/g) ?? [];
352
- const errorsCount = errorLines.length;
353
- const warningsCount = warningLines.length;
354
-
355
- let report = filteredLintOutput.trimEnd();
356
- report += `\\n\\nESLint Summary:\\n Errors found: ${errorsCount}\\n Warnings found: ${warningsCount}`;
357
- exitWithError("ESLint found errors.", report);
358
- }
359
-
360
- console.log("ESLint check passed.");
361
- }
362
-
363
- function runESLint() {
364
- console.log("\\\\nRunning ESLint on staged files...");
365
- const stagedFilesResult = executeCommand("git diff --name-only --cached");
366
-
367
- if (stagedFilesResult.status !== 0) {
368
- console.warn("Warning: Could not get staged files for ESLint. Skipping ESLint check.");
369
-
370
- if (stagedFilesResult.stderr) console.warn(stagedFilesResult.stderr);
371
-
372
- return;
373
- }
374
-
375
- const filesToLint = stagedFilesResult.stdout
376
- .trim()
377
- .split("\\n")
378
- .filter((file: string) => /^(src|server)\/.*\.(js|jsx|ts|tsx)$/.test(file));
379
-
380
- if (filesToLint.length === 0) {
381
- console.log("No relevant files to lint.");
382
- return;
383
- }
384
-
385
- console.log(`Linting ${filesToLint.length} file(s)...`);
386
-
387
- const { fullLintOutput, hasFailures } = executeESLintBatches(filesToLint);
388
- processAndReportESLintOutput(fullLintOutput, hasFailures);
389
- }
390
-
391
- function runSubmodulesPointersChangesCheck() {
392
- console.log("\nChecking for submodules commit pointers changes...");
393
-
394
- const stage = executeCommand("git diff --name-only --cached").stdout;
395
- const files = stage.split("\n").filter(Boolean);
396
-
397
- for (const file of files) {
398
- const diff = executeCommand(`git diff --cached ${file}`).stdout;
399
-
400
- if (/^\+Subproject commit /m.test(diff)) {
401
- exitWithError(
402
- `It is forbidden to commit changes in submodule commits! Discard changes in: ${file}`,
403
- );
404
- }
405
- }
406
-
407
- console.log("No submodules commit pointers changes found.");
408
- }
409
-
410
- function runPreCommitChecks() {
411
- console.log("Starting pre-commit checks...");
412
-
413
- if (shouldSkipChecks()) {
414
- process.exit(0);
415
- }
416
-
417
- runSubmodulesPointersChangesCheck();
418
- checkForUnstagedOrUntrackedChanges();
419
- checkVSCodePrettierExtension();
420
- checkPrettierDependencies();
421
- runPrettier();
422
- runESLint();
423
- runTypeCheck();
424
-
425
- console.log(
426
- "\n############################## Pre commit check successful.##################################",
427
- );
428
- process.exit(0);
429
- }
430
-
431
- runPreCommitChecks();
@@ -1,14 +0,0 @@
1
- import { useEffect } from "react";
2
- import { logErrorRaw } from "@fd-toolbox/logging/loggers";
3
- import { FdButton } from "@fd-component-toolbox/button/FdButton";
4
- export function FdErrorFallback({ error, reset }) {
5
- useEffect(() => {
6
- logErrorRaw(error);
7
- }, [error]);
8
- return (<div className="flex h-full flex-col items-center justify-center gap-3">
9
- <h2 className="text-2xl text-destructive">Something went wrong!</h2>
10
- <FdButton variant="destructive" onClick={() => reset()}>
11
- Try again
12
- </FdButton>
13
- </div>);
14
- }