@fernir2/saas-kit-cli 0.1.33 → 0.1.35

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 (260) hide show
  1. package/base-repo/app-constants/aliases.cjs.js +1 -1
  2. package/base-repo/app-constants/aliases.js +1 -1
  3. package/base-repo/app-constants/project-paths.cjs.js +1 -1
  4. package/base-repo/app-constants/project-paths.js +1 -1
  5. package/base-repo/constants/create-app-constants.cjs.js +1 -1
  6. package/base-repo/constants/create-app-constants.js +1 -1
  7. package/base-repo/constants/packages.cjs.js +1 -1
  8. package/base-repo/constants/packages.cjs2.js +1 -1
  9. package/base-repo/constants/packages.js +1 -1
  10. package/base-repo/constants/packages2.js +1 -1
  11. package/cli/.env.example +61 -55
  12. package/cli/README.md +3 -101
  13. package/cli/bin/{index.ts → create.ts} +444 -383
  14. package/cli/configs/drizzle-cli-config.ts +14 -0
  15. package/cli/configs/playwright-cli-config.ts +34 -0
  16. package/cli/configs/tsconfig.cli.json +37 -0
  17. package/cli/configs/tsconfig.server.json +13 -0
  18. package/cli/drizzle.config.ts +6 -12
  19. package/cli/next.config.js +73 -80
  20. package/cli/npm-commands/{gen-meta/index.ts → gen-meta.ts} +3 -3
  21. package/cli/npm-commands/gen-schema.ts +3 -0
  22. package/cli/npm-commands/{migrate-db/migrate-db.ts → migrate-db.ts} +15 -15
  23. package/cli/npm-commands/{seed-db/seed-db.ts → seed-db.ts} +15 -15
  24. package/cli/package-template.json +61 -64
  25. package/cli/playwright.config.ts +6 -34
  26. package/cli/postcss.config.mjs +7 -9
  27. package/cli/server.ts +41 -41
  28. package/cli/src/app/api/v1/[resourceName]/[id]/route.ts +11 -0
  29. package/cli/src/app/api/v1/[resourceName]/route.ts +14 -0
  30. package/cli/src/app/api/v1/[resourceName]/upsert/route.ts +3 -0
  31. package/cli/src/app/api/v1/log/route.ts +7 -0
  32. package/cli/src/app/api/v1/otheruser/[id]/route.ts +14 -0
  33. package/cli/src/app/api/v1/otheruser/route.ts +7 -0
  34. package/cli/src/app/api/v1/password/forgotpassword/route.ts +3 -0
  35. package/cli/src/app/api/v1/password/resetpassword/route.ts +3 -0
  36. package/cli/src/app/api/v1/payment/method/route.ts +4 -0
  37. package/cli/src/app/api/v1/payment/route.ts +3 -0
  38. package/cli/src/app/api/v1/payment/verify-fail/route.ts +3 -0
  39. package/cli/src/app/api/v1/payment/verify-success/route.ts +3 -0
  40. package/cli/src/app/api/v1/preload/route.ts +3 -0
  41. package/cli/src/app/api/v1/searchable-resources/route.ts +11 -0
  42. package/cli/src/app/api/v1/searchresult/route.ts +35 -0
  43. package/cli/src/app/api/v1/sign-in/route.ts +3 -0
  44. package/cli/src/app/api/v1/sign-out/route.ts +3 -0
  45. package/cli/src/app/api/v1/sign-up/route.ts +3 -0
  46. package/cli/src/app/api/v1/subscription/cancel/route.ts +3 -0
  47. package/cli/src/app/api/v1/subscription/create/route.ts +3 -0
  48. package/cli/src/app/api/v1/subscription/update/route.ts +3 -0
  49. package/cli/src/app/api/v1/uimeta/route.ts +3 -0
  50. package/cli/src/app/api/v1/uimetas/route.ts +3 -0
  51. package/cli/src/app/api/v1/userpermission/route.ts +3 -0
  52. package/cli/src/app/api/v1/visible-workspace/route.ts +5 -0
  53. package/cli/src/app/api/v1/workspace/change/route.ts +5 -0
  54. package/cli/src/app/f/(private)/dashboard/page.tsx +8 -8
  55. package/cli/src/app/f/(private)/dynamiclayout/page.tsx +8 -8
  56. package/cli/src/app/f/(private)/edituser/[id]/page.tsx +8 -8
  57. package/cli/src/app/f/(private)/edituser/page.tsx +8 -8
  58. package/cli/src/app/f/(private)/layout.tsx +5 -5
  59. package/cli/src/app/f/(private)/lm/page.tsx +8 -8
  60. package/cli/src/app/f/(private)/payment-plans/page.tsx +8 -8
  61. package/cli/src/app/f/(private)/preload/page.tsx +8 -8
  62. package/cli/src/app/f/(private)/statusboard/page.tsx +8 -8
  63. package/cli/src/app/f/(private)/userlist/page.tsx +8 -8
  64. package/cli/src/app/f/(private)/view/page.tsx +9 -8
  65. package/cli/src/app/f/defaultRedirect/page.tsx +9 -9
  66. package/cli/src/app/f/editpassword/page.tsx +8 -8
  67. package/cli/src/app/f/forgotpassword/page.tsx +13 -13
  68. package/cli/src/app/f/resetpassword/page.tsx +11 -16
  69. package/cli/src/app/f/sign-in/microsoft/page.tsx +8 -8
  70. package/cli/src/app/f/sign-in/page.tsx +13 -13
  71. package/cli/src/app/f/sign-up/page.tsx +13 -13
  72. package/cli/src/app/f/test/feed/page.tsx +8 -8
  73. package/cli/src/app/f/test/file-upload/page.tsx +8 -8
  74. package/cli/src/app/f/test/layout.tsx +5 -5
  75. package/cli/src/app/f/test/page.tsx +8 -8
  76. package/cli/src/app/globals.css +1 -1
  77. package/cli/src/app/layout.tsx +46 -44
  78. package/cli/src/app/page.tsx +9 -9
  79. package/cli/src/app/styles/common.css +71 -74
  80. package/cli/src/app/styles/rich-text-editor.css +130 -130
  81. package/cli/{global-setup.ts → test/global-setup.ts} +25 -25
  82. package/cli/tsconfig.json +28 -65
  83. package/cli/tsconfig.server.json +17 -14
  84. package/fd-toolbox/api/api-client.cjs.js +19 -0
  85. package/fd-toolbox/api/api-client.js +11 -0
  86. package/{level2/fd-toolbox → fd-toolbox}/api/api-path-names.cjs.js +2 -2
  87. package/fd-toolbox/api/api-paths.cjs.js +9 -0
  88. package/fd-toolbox/api/api-paths.js +7 -0
  89. package/fd-toolbox/api/base-api.cjs.js +22 -0
  90. package/fd-toolbox/api/base-api.js +13 -0
  91. package/{level2/fd-toolbox → fd-toolbox}/auth/login-states.cjs.js +1 -1
  92. package/{level2/fd-toolbox → fd-toolbox}/auth/login-states.js +1 -1
  93. package/fd-toolbox/auth/session-storage.cjs.js +12 -0
  94. package/fd-toolbox/auth/session-storage.js +7 -0
  95. package/{level2/fd-toolbox → fd-toolbox}/auth/tokens.cjs.js +1 -1
  96. package/{level2/fd-toolbox → fd-toolbox}/auth/tokens.js +1 -1
  97. package/{level2/fd-toolbox → fd-toolbox}/constants/constants.cjs.js +1 -1
  98. package/fd-toolbox/constants/constants.js +4 -0
  99. package/{level2/fd-toolbox → fd-toolbox}/constants/header-names.cjs.js +1 -1
  100. package/{level2/fd-toolbox → fd-toolbox}/constants/header-names.js +1 -1
  101. package/{level2/fd-toolbox → fd-toolbox}/constants/public-files.cjs.js +2 -1
  102. package/{level2/fd-toolbox → fd-toolbox}/constants/public-files.js +2 -2
  103. package/fd-toolbox/enums/enums.cjs.js +26 -0
  104. package/fd-toolbox/enums/enums.js +4 -0
  105. package/{level2/fd-toolbox → fd-toolbox}/errors/error-handler.cjs.js +1 -1
  106. package/fd-toolbox/errors/error-handler.js +8 -0
  107. package/fd-toolbox/errors/errors.cjs.js +6 -0
  108. package/fd-toolbox/errors/errors.js +4 -0
  109. package/fd-toolbox/errors/problem-details.cjs.js +8 -0
  110. package/fd-toolbox/errors/problem-details.js +6 -0
  111. package/fd-toolbox/functions/value-checking-functions.cjs.js +10 -0
  112. package/fd-toolbox/functions/value-checking-functions.js +6 -0
  113. package/{level2/fd-toolbox → fd-toolbox}/http/url/urls.cjs.js +1 -1
  114. package/fd-toolbox/http/url/urls.js +6 -0
  115. package/fd-toolbox/infra/env-config.cjs.js +8 -0
  116. package/fd-toolbox/infra/env-config.js +6 -0
  117. package/fd-toolbox/infra/env-functions.cjs.js +16 -0
  118. package/fd-toolbox/infra/env-functions.js +11 -0
  119. package/fd-toolbox/infra/env-schema.cjs.js +12 -0
  120. package/fd-toolbox/infra/env-schema.js +8 -0
  121. package/{level2/fd-toolbox → fd-toolbox}/infra/env-store.cjs.js +1 -1
  122. package/{level2/fd-toolbox → fd-toolbox}/infra/env-store.js +1 -1
  123. package/{level2/fd-toolbox → fd-toolbox}/lib/environments.cjs.js +2 -2
  124. package/{level2/fd-toolbox → fd-toolbox}/lib/environments.js +2 -2
  125. package/fd-toolbox/lib/utils.cjs.js +29 -0
  126. package/fd-toolbox/lib/utils.js +13 -0
  127. package/fd-toolbox/local-storage/local-storage.cjs.js +12 -0
  128. package/fd-toolbox/local-storage/local-storage.js +7 -0
  129. package/fd-toolbox/logging/loggers.cjs.js +16 -0
  130. package/fd-toolbox/logging/loggers.js +10 -0
  131. package/fd-toolbox/notifications.cjs.js +14 -0
  132. package/fd-toolbox/notifications.js +7 -0
  133. package/{level2/fd-toolbox → fd-toolbox}/odata/odata-constants.cjs.js +1 -1
  134. package/fd-toolbox/odata/odata-constants.js +4 -0
  135. package/fd-toolbox/odata/odatas.cjs.js +11 -0
  136. package/fd-toolbox/odata/odatas.js +9 -0
  137. package/fd-toolbox/odata/services/odata-filters.cjs.js +11 -0
  138. package/fd-toolbox/odata/services/odata-filters.js +9 -0
  139. package/fd-toolbox/paths/paths-names.cjs.js +9 -0
  140. package/fd-toolbox/paths/paths-names.js +6 -0
  141. package/{level2/fd-toolbox → fd-toolbox}/routing/login-routers.cjs.js +1 -1
  142. package/{level2/fd-toolbox → fd-toolbox}/routing/login-routers.js +1 -1
  143. package/fd-toolbox/routing/paths.cjs.js +8 -0
  144. package/fd-toolbox/routing/paths.js +6 -0
  145. package/{level2/fd-toolbox → fd-toolbox}/strings/strings-constants.cjs.js +1 -1
  146. package/fd-toolbox/strings/strings-constants.js +4 -0
  147. package/fd-toolbox/strings/strings.cjs.js +10 -0
  148. package/fd-toolbox/strings/strings.js +7 -0
  149. package/fd-toolbox/types/ensure-type.cjs.js +21 -0
  150. package/fd-toolbox/types/ensure-type.js +4 -0
  151. package/fd-toolbox-core/core/name-of.cjs.js +8 -0
  152. package/fd-toolbox-core/core/name-of.js +4 -0
  153. package/fd-toolbox-core/types/resource-with-id.cjs.js +9 -0
  154. package/fd-toolbox-core/types/resource-with-id.js +6 -0
  155. package/level2/cli/bin/index.cjs.js +8 -0
  156. package/level2/cli/bin/index.js +6 -0
  157. package/level2/cli/create/bin/create.cjs.js +42 -0
  158. package/level2/cli/create/bin/create.js +20 -0
  159. package/level2/npm-commands/build-npm/cli-contents.cjs.js +9 -0
  160. package/level2/npm-commands/build-npm/cli-contents.js +6 -0
  161. package/level2/npm-commands/build-npm/path.cjs.js +1 -1
  162. package/level2/npm-commands/build-npm/path.js +2 -2
  163. package/package.json +31 -30
  164. package/cli/.gitlab-ci.yml +0 -16
  165. package/cli/.husky/commit-msg +0 -1
  166. package/cli/.husky/pre-commit +0 -1
  167. package/cli/eslint.config.js +0 -10
  168. package/cli/npm-commands/gen-schema/index.ts +0 -5
  169. package/cli/npm-commands/migrate-db/index.ts +0 -5
  170. package/cli/npm-commands/seed-db/index.ts +0 -5
  171. package/cli/tailwind.config.ts +0 -13
  172. package/cli/tsconfig.declaration.json +0 -48
  173. package/level2/cli/create-saas-kit-app/bin/index.cjs.js +0 -40
  174. package/level2/cli/create-saas-kit-app/bin/index.js +0 -18
  175. package/level2/fd-toolbox/api/api-client.cjs.js +0 -19
  176. package/level2/fd-toolbox/api/api-client.js +0 -11
  177. package/level2/fd-toolbox/api/api-paths.cjs.js +0 -9
  178. package/level2/fd-toolbox/api/api-paths.js +0 -7
  179. package/level2/fd-toolbox/api/base-api.cjs.js +0 -22
  180. package/level2/fd-toolbox/api/base-api.js +0 -13
  181. package/level2/fd-toolbox/auth/session-storage.cjs.js +0 -12
  182. package/level2/fd-toolbox/auth/session-storage.js +0 -7
  183. package/level2/fd-toolbox/constants/constants.js +0 -4
  184. package/level2/fd-toolbox/enums/enums.cjs.js +0 -26
  185. package/level2/fd-toolbox/enums/enums.js +0 -4
  186. package/level2/fd-toolbox/errors/error-handler.js +0 -8
  187. package/level2/fd-toolbox/errors/errors.cjs.js +0 -6
  188. package/level2/fd-toolbox/errors/errors.js +0 -4
  189. package/level2/fd-toolbox/errors/problem-details.cjs.js +0 -8
  190. package/level2/fd-toolbox/errors/problem-details.js +0 -6
  191. package/level2/fd-toolbox/functions/value-checking-functions.cjs.js +0 -10
  192. package/level2/fd-toolbox/functions/value-checking-functions.js +0 -6
  193. package/level2/fd-toolbox/http/url/urls.js +0 -6
  194. package/level2/fd-toolbox/infra/env-config.cjs.js +0 -8
  195. package/level2/fd-toolbox/infra/env-config.js +0 -6
  196. package/level2/fd-toolbox/infra/env-functions.cjs.js +0 -16
  197. package/level2/fd-toolbox/infra/env-functions.js +0 -11
  198. package/level2/fd-toolbox/infra/env-schema.cjs.js +0 -12
  199. package/level2/fd-toolbox/infra/env-schema.js +0 -8
  200. package/level2/fd-toolbox/lib/utils.cjs.js +0 -29
  201. package/level2/fd-toolbox/lib/utils.js +0 -13
  202. package/level2/fd-toolbox/local-storage/local-storage.cjs.js +0 -12
  203. package/level2/fd-toolbox/local-storage/local-storage.js +0 -7
  204. package/level2/fd-toolbox/logging/loggers.cjs.js +0 -16
  205. package/level2/fd-toolbox/logging/loggers.js +0 -10
  206. package/level2/fd-toolbox/notifications.cjs.js +0 -14
  207. package/level2/fd-toolbox/notifications.js +0 -7
  208. package/level2/fd-toolbox/odata/odata-constants.js +0 -4
  209. package/level2/fd-toolbox/odata/odatas.cjs.js +0 -11
  210. package/level2/fd-toolbox/odata/odatas.js +0 -9
  211. package/level2/fd-toolbox/odata/services/odata-filters.cjs.js +0 -11
  212. package/level2/fd-toolbox/odata/services/odata-filters.js +0 -9
  213. package/level2/fd-toolbox/paths/paths-names.cjs.js +0 -9
  214. package/level2/fd-toolbox/paths/paths-names.js +0 -6
  215. package/level2/fd-toolbox/routing/paths.cjs.js +0 -8
  216. package/level2/fd-toolbox/routing/paths.js +0 -6
  217. package/level2/fd-toolbox/strings/strings-constants.js +0 -4
  218. package/level2/fd-toolbox/strings/strings.cjs.js +0 -10
  219. package/level2/fd-toolbox/strings/strings.js +0 -7
  220. package/level2/fd-toolbox/types/ensure-type.cjs.js +0 -18
  221. package/level2/fd-toolbox/types/ensure-type.js +0 -4
  222. package/level2/fd-toolbox-core/core/name-of.cjs.js +0 -8
  223. package/level2/fd-toolbox-core/core/name-of.js +0 -4
  224. package/level2/fd-toolbox-core/types/resource-with-id.cjs.js +0 -9
  225. package/level2/fd-toolbox-core/types/resource-with-id.js +0 -6
  226. /package/{level2/fd-toolbox → fd-toolbox}/api/api-path-names.js +0 -0
  227. /package/{level2/fd-toolbox → fd-toolbox}/constants/api-constants.cjs.js +0 -0
  228. /package/{level2/fd-toolbox → fd-toolbox}/constants/api-constants.js +0 -0
  229. /package/{level2/fd-toolbox → fd-toolbox}/constants/environment-constants.cjs.js +0 -0
  230. /package/{level2/fd-toolbox → fd-toolbox}/constants/environment-constants.js +0 -0
  231. /package/{level2/fd-toolbox → fd-toolbox}/constants/extensions.cjs.js +0 -0
  232. /package/{level2/fd-toolbox → fd-toolbox}/constants/extensions.js +0 -0
  233. /package/{level2/fd-toolbox → fd-toolbox}/constants/http-status-codes.cjs.js +0 -0
  234. /package/{level2/fd-toolbox → fd-toolbox}/constants/http-status-codes.js +0 -0
  235. /package/{level2/fd-toolbox → fd-toolbox}/constants/meta-query-params.cjs.js +0 -0
  236. /package/{level2/fd-toolbox → fd-toolbox}/constants/meta-query-params.js +0 -0
  237. /package/{level2/fd-toolbox → fd-toolbox}/constants/representations.cjs.js +0 -0
  238. /package/{level2/fd-toolbox → fd-toolbox}/constants/representations.js +0 -0
  239. /package/{level2/fd-toolbox → fd-toolbox}/errors/error-statuses.cjs.js +0 -0
  240. /package/{level2/fd-toolbox → fd-toolbox}/errors/error-statuses.js +0 -0
  241. /package/{level2/fd-toolbox → fd-toolbox}/http/http-constants.cjs.js +0 -0
  242. /package/{level2/fd-toolbox → fd-toolbox}/http/http-constants.js +0 -0
  243. /package/{level2/fd-toolbox → fd-toolbox}/infra/env-setting-types.cjs.js +0 -0
  244. /package/{level2/fd-toolbox → fd-toolbox}/infra/env-setting-types.js +0 -0
  245. /package/{level2/fd-toolbox → fd-toolbox}/infra/toolbox-env-setting-keys.cjs.js +0 -0
  246. /package/{level2/fd-toolbox → fd-toolbox}/infra/toolbox-env-setting-keys.js +0 -0
  247. /package/{level2/fd-toolbox → fd-toolbox}/logging/logging-constants.cjs.js +0 -0
  248. /package/{level2/fd-toolbox → fd-toolbox}/logging/logging-constants.js +0 -0
  249. /package/{level2/fd-toolbox → fd-toolbox}/odata/odata-enums.cjs.js +0 -0
  250. /package/{level2/fd-toolbox → fd-toolbox}/odata/odata-enums.js +0 -0
  251. /package/{level2/fd-toolbox → fd-toolbox}/resources/resource-names.cjs.js +0 -0
  252. /package/{level2/fd-toolbox → fd-toolbox}/resources/resource-names.js +0 -0
  253. /package/{level2/fd-toolbox → fd-toolbox}/routing/routes.cjs.js +0 -0
  254. /package/{level2/fd-toolbox → fd-toolbox}/routing/routes.js +0 -0
  255. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/meta-constants.cjs.js +0 -0
  256. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/meta-constants.js +0 -0
  257. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/promises.cjs.js +0 -0
  258. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/promises.js +0 -0
  259. /package/{level2/fd-toolbox-core → fd-toolbox-core}/enums/log-severities.cjs.js +0 -0
  260. /package/{level2/fd-toolbox-core → fd-toolbox-core}/enums/log-severities.js +0 -0
@@ -1,44 +1,46 @@
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
- import { setEditResourceConfigs } from "@packages/level2/meta/edit-resource/config/fd-edit-resource-configs";
14
-
15
- export const metadata: FdHtmlMetadata = {
16
- title: "SaaS Kit",
17
- icons: [{ rel: "icon", url: Favicon.src }],
18
- };
19
-
20
- export default async function RootLayout({ children }: { children: ReactNode }) {
21
- const sidebarResourceNames: string[] = [];
22
-
23
- setSidebarResourceNames(sidebarResourceNames);
24
- await setMultiListEditResourceConfigs();
25
- await setResourceListConfigs();
26
- setEditResourceConfigs();
27
-
28
- return (
29
- <html lang="en">
30
- <body className={cn(GeistSans.className, "h-screen text-sm")}>
31
- <div className="flex h-full flex-col">
32
- <FdProviders
33
- globalConfig={{
34
- ...defaultGlobalConfig,
35
- }}
36
- >
37
- {children}
38
- </FdProviders>
39
- </div>
40
- <FdToaster />
41
- </body>
42
- </html>
43
- );
44
- }
1
+ import { HtmlMetadataType } from "@meta/client/framework";
2
+ import { GeistSans } from "geist/font/sans";
3
+ import "@/app/globals.css";
4
+ import { cn } from "@fd-toolbox/lib/utils";
5
+ import Favicon from "src/app/favicon.ico";
6
+ import { Toaster } from "@fd-component-toolbox/toaster/Toaster";
7
+ import { ReactNode } from "react";
8
+ import { Providers } from "@client/components/providers/Providers";
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 { setEditResourceConfigs } from "@meta/edit-resource/config/edit-resource-configs";
13
+ import { setViewConfigs } from "@packages/level2/meta/view/config/view-list-config";
14
+ import { setResourceListConfigs } from "@packages/level2/client/component-configs/resource-list-configs";
15
+
16
+ export const metadata: HtmlMetadataType = {
17
+ title: "SaaS Kit",
18
+ icons: [{ rel: "icon", url: Favicon.src }],
19
+ };
20
+
21
+ export default async function RootLayout({ children }: { children: ReactNode }) {
22
+ const sidebarResourceNames: string[] = [];
23
+
24
+ setSidebarResourceNames(sidebarResourceNames);
25
+ setMultiListEditResourceConfigs();
26
+ setResourceListConfigs();
27
+ setEditResourceConfigs();
28
+ setViewConfigs();
29
+
30
+ return (
31
+ <html lang="en">
32
+ <body className={cn(GeistSans.className, "h-screen text-sm")}>
33
+ <div className="flex h-full flex-col">
34
+ <Providers
35
+ globalConfig={{
36
+ ...defaultGlobalConfig,
37
+ }}
38
+ >
39
+ {children}
40
+ </Providers>
41
+ </div>
42
+ <Toaster />
43
+ </body>
44
+ </html>
45
+ );
46
+ }
@@ -1,9 +1,9 @@
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
+ 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,74 +1,71 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer base {
6
- * {
7
- @apply border-border;
8
- }
9
- body {
10
- @apply bg-background text-foreground;
11
- }
12
- }
13
-
14
- @supports not (-webkit-appearance: none) {
15
- * {
16
- scrollbar-width: thin;
17
- scrollbar-color: hsl(var(--fd-toolbar)) hsl(var(--background));
18
- }
19
- }
20
-
21
- @supports (-webkit-appearance: none) {
22
- *::-webkit-scrollbar {
23
- width: 15px;
24
- height: 15px;
25
- }
26
-
27
- *::-webkit-scrollbar-track {
28
- background: hsl(var(--background));
29
- }
30
-
31
- *::-webkit-scrollbar-thumb {
32
- width: 9px;
33
- height: 9px;
34
- background: hsl(var(--fd-toolbar));
35
- border-radius: var(--radius);
36
- border: 3px solid hsl(var(--background));
37
- }
38
-
39
- *::-webkit-scrollbar-thumb:hover {
40
- background: hsl(var(--fd-toolbar-hover));
41
- }
42
-
43
- *::-webkit-scrollbar-button {
44
- display: none;
45
- }
46
- }
47
-
48
- .scrollbar-hidden {
49
- -ms-overflow-style: none;
50
- scrollbar-width: none;
51
- }
52
-
53
- @media (max-width: 426px) {
54
- html,
55
- body {
56
- overflow: auto;
57
- -ms-overflow-style: none;
58
- scrollbar-width: none;
59
- }
60
-
61
- body::-webkit-scrollbar,
62
- body *::-webkit-scrollbar {
63
- display: none;
64
- }
65
- }
66
-
67
- @layer base {
68
- input:-webkit-autofill,
69
- input:-webkit-autofill:hover,
70
- input:-webkit-autofill:focus {
71
- -webkit-box-shadow: 0 0 0px 1000px hsl(var(--background)) inset;
72
- -webkit-text-fill-color: hsl(var(--foreground));
73
- }
74
- }
1
+ @layer base {
2
+ * {
3
+ border-color: var(--color-border);
4
+ }
5
+ body {
6
+ background-color: var(--color-background);
7
+ color: var(--color-foreground);
8
+ }
9
+ }
10
+
11
+ @supports not (-webkit-appearance: none) {
12
+ * {
13
+ scrollbar-width: thin;
14
+ scrollbar-color: hsl(var(--fd-toolbar)) hsl(var(--background));
15
+ }
16
+ }
17
+
18
+ @supports (-webkit-appearance: none) {
19
+ *::-webkit-scrollbar {
20
+ width: 15px;
21
+ height: 15px;
22
+ }
23
+
24
+ *::-webkit-scrollbar-track {
25
+ background: hsl(var(--background));
26
+ }
27
+
28
+ *::-webkit-scrollbar-thumb {
29
+ width: 9px;
30
+ height: 9px;
31
+ background: hsl(var(--fd-toolbar));
32
+ border-radius: var(--radius);
33
+ border: 3px solid hsl(var(--background));
34
+ }
35
+
36
+ *::-webkit-scrollbar-thumb:hover {
37
+ background: hsl(var(--fd-toolbar-hover));
38
+ }
39
+
40
+ *::-webkit-scrollbar-button {
41
+ display: none;
42
+ }
43
+ }
44
+
45
+ .scrollbar-hidden {
46
+ -ms-overflow-style: none;
47
+ scrollbar-width: none;
48
+ }
49
+
50
+ @media (max-width: 426px) {
51
+ html,
52
+ body {
53
+ overflow: auto;
54
+ -ms-overflow-style: none;
55
+ scrollbar-width: none;
56
+ }
57
+
58
+ body::-webkit-scrollbar,
59
+ body *::-webkit-scrollbar {
60
+ display: none;
61
+ }
62
+ }
63
+
64
+ @layer base {
65
+ input:-webkit-autofill,
66
+ input:-webkit-autofill:hover,
67
+ input:-webkit-autofill:focus {
68
+ -webkit-box-shadow: 0 0 0px 1000px hsl(var(--background)) inset;
69
+ -webkit-text-fill-color: hsl(var(--foreground));
70
+ }
71
+ }
@@ -1,130 +1,130 @@
1
- div.ql-toolbar.ql-snow {
2
- padding: 0.5rem 0.75rem;
3
- border-top-right-radius: var(--radius);
4
- border-top-left-radius: var(--radius);
5
- border: 1px solid hsl(var(--border));
6
- }
7
-
8
- .ql-toolbar.ql-snow .ql-picker-label {
9
- padding-left: 0;
10
- border: none;
11
- }
12
-
13
- .ql-toolbar.ql-snow .ql-picker-label::before {
14
- font-family: "__GeistSans_3a0388", serif;
15
- }
16
-
17
- .ql-editor {
18
- font-size: 14px;
19
- padding: 10px 12px;
20
- }
21
-
22
- div.ql-container.ql-snow {
23
- height: max-content;
24
- border: 1px solid hsl(var(--border));
25
- border-bottom-right-radius: var(--radius);
26
- border-bottom-left-radius: var(--radius);
27
- }
28
-
29
- .ql-tooltip {
30
- display: none;
31
- }
32
-
33
- .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
34
- z-index: 11;
35
- }
36
-
37
- .ql-picker-label,
38
- .ql-picker-label .ql-stroke {
39
- color: hsl(var(--popover-foreground));
40
- stroke: hsl(var(--popover-foreground));
41
- fill: hsl(var(--popover-foreground));
42
- }
43
-
44
- .ql-toolbar .ql-formats button {
45
- color: hsl(var(--popover-foreground));
46
- }
47
-
48
- .ql-toolbar .ql-formats button .ql-stroke {
49
- stroke: hsl(var(--popover-foreground));
50
- }
51
-
52
- .ql-toolbar .ql-formats button .ql-fill {
53
- fill: hsl(var(--popover-foreground));
54
- }
55
-
56
- .ql-toolbar .ql-active,
57
- .ql-toolbar .ql-active .ql-stroke,
58
- .ql-toolbar .ql-active .ql-fill {
59
- color: hsl(var(--popover-foreground));
60
- fill: none;
61
- stroke: none;
62
- }
63
-
64
- .ql-snow .ql-picker {
65
- font-weight: 400;
66
- }
67
-
68
- .ql-editor.ql-blank::before {
69
- left: 12px;
70
- right: 12px;
71
- color: hsl(var(--muted-foreground));
72
- }
73
-
74
- .ql-toolbar .ql-formats button:hover .ql-stroke,
75
- .ql-toolbar .ql-picker .ql-picker-label:hover .ql-stroke,
76
- .ql-toolbar .ql-picker .ql-picker-label.ql-active .ql-stroke,
77
- .ql-toolbar .ql-formats button.ql-active .ql-stroke {
78
- stroke: hsl(var(--foreground));
79
- stroke-width: 2;
80
- }
81
-
82
- .ql-toolbar .ql-formats button:hover .ql-fill,
83
- .ql-toolbar .ql-formats button.ql-active .ql-fill {
84
- fill: hsl(var(--foreground));
85
- }
86
-
87
- .ql-toolbar .ql-picker .ql-picker-label:hover::before,
88
- .ql-toolbar .ql-picker .ql-picker-label.ql-active::before,
89
- .ql-picker .ql-picker-options .ql-picker-item.ql-selected::before {
90
- color: hsl(var(--foreground));
91
- font-weight: 600;
92
- }
93
-
94
- .ql-snow .ql-picker-options .ql-picker-item:hover {
95
- border-radius: 0.375rem;
96
- background: hsl(var(--muted) / 0.5);
97
- }
98
-
99
- .ql-toolbar .ql-formats button .ql-stroke,
100
- .ql-toolbar .ql-picker .ql-picker-label .ql-stroke {
101
- stroke: hsl(var(--foreground));
102
- stroke-width: 1.2;
103
- }
104
-
105
- .ql-toolbar .ql-formats button .ql-fill {
106
- fill: hsl(var(--foreground));
107
- }
108
-
109
- .ql-toolbar .ql-picker .ql-picker-label::before,
110
- .ql-picker .ql-picker-options .ql-picker-item::before {
111
- color: hsl(var(--foreground));
112
- font-weight: 400;
113
- }
114
-
115
- .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
116
- min-width: 12rem;
117
- z-index: 50;
118
- margin-right: 1rem;
119
- border-radius: 0.375rem;
120
- background-color: hsl(var(--background));
121
- border: 1px solid hsl(var(--border));
122
- box-shadow: 0rem 0rem 0.1rem 0.01rem hsl(var(--fd-toolbar-shadow));
123
- outline: none;
124
- pointer-events: auto;
125
- }
126
-
127
- .ql-snow .ql-picker-options .ql-picker-item {
128
- width: 100%;
129
- padding: 0.5rem 0.75rem;
130
- }
1
+ div.ql-toolbar.ql-snow {
2
+ padding: 0.5rem 0.75rem;
3
+ border-top-right-radius: var(--radius);
4
+ border-top-left-radius: var(--radius);
5
+ border: 1px solid hsl(var(--border));
6
+ }
7
+
8
+ .ql-toolbar.ql-snow .ql-picker-label {
9
+ padding-left: 0;
10
+ border: none;
11
+ }
12
+
13
+ .ql-toolbar.ql-snow .ql-picker-label::before {
14
+ font-family: "__GeistSans_3a0388", serif;
15
+ }
16
+
17
+ .ql-editor {
18
+ font-size: 14px;
19
+ padding: 10px 12px;
20
+ }
21
+
22
+ div.ql-container.ql-snow {
23
+ height: max-content;
24
+ border: 1px solid hsl(var(--border));
25
+ border-bottom-right-radius: var(--radius);
26
+ border-bottom-left-radius: var(--radius);
27
+ }
28
+
29
+ .ql-tooltip {
30
+ display: none;
31
+ }
32
+
33
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
34
+ z-index: 11;
35
+ }
36
+
37
+ .ql-picker-label,
38
+ .ql-picker-label .ql-stroke {
39
+ color: hsl(var(--popover-foreground));
40
+ stroke: hsl(var(--popover-foreground));
41
+ fill: hsl(var(--popover-foreground));
42
+ }
43
+
44
+ .ql-toolbar .ql-formats button {
45
+ color: hsl(var(--popover-foreground));
46
+ }
47
+
48
+ .ql-toolbar .ql-formats button .ql-stroke {
49
+ stroke: hsl(var(--popover-foreground));
50
+ }
51
+
52
+ .ql-toolbar .ql-formats button .ql-fill {
53
+ fill: hsl(var(--popover-foreground));
54
+ }
55
+
56
+ .ql-toolbar .ql-active,
57
+ .ql-toolbar .ql-active .ql-stroke,
58
+ .ql-toolbar .ql-active .ql-fill {
59
+ color: hsl(var(--popover-foreground));
60
+ fill: none;
61
+ stroke: none;
62
+ }
63
+
64
+ .ql-snow .ql-picker {
65
+ font-weight: 400;
66
+ }
67
+
68
+ .ql-editor.ql-blank::before {
69
+ left: 12px;
70
+ right: 12px;
71
+ color: hsl(var(--muted-foreground));
72
+ }
73
+
74
+ .ql-toolbar .ql-formats button:hover .ql-stroke,
75
+ .ql-toolbar .ql-picker .ql-picker-label:hover .ql-stroke,
76
+ .ql-toolbar .ql-picker .ql-picker-label.ql-active .ql-stroke,
77
+ .ql-toolbar .ql-formats button.ql-active .ql-stroke {
78
+ stroke: hsl(var(--foreground));
79
+ stroke-width: 2;
80
+ }
81
+
82
+ .ql-toolbar .ql-formats button:hover .ql-fill,
83
+ .ql-toolbar .ql-formats button.ql-active .ql-fill {
84
+ fill: hsl(var(--foreground));
85
+ }
86
+
87
+ .ql-toolbar .ql-picker .ql-picker-label:hover::before,
88
+ .ql-toolbar .ql-picker .ql-picker-label.ql-active::before,
89
+ .ql-picker .ql-picker-options .ql-picker-item.ql-selected::before {
90
+ color: hsl(var(--foreground));
91
+ font-weight: 600;
92
+ }
93
+
94
+ .ql-snow .ql-picker-options .ql-picker-item:hover {
95
+ border-radius: 0.375rem;
96
+ background: hsl(var(--muted) / 0.5);
97
+ }
98
+
99
+ .ql-toolbar .ql-formats button .ql-stroke,
100
+ .ql-toolbar .ql-picker .ql-picker-label .ql-stroke {
101
+ stroke: hsl(var(--foreground));
102
+ stroke-width: 1.2;
103
+ }
104
+
105
+ .ql-toolbar .ql-formats button .ql-fill {
106
+ fill: hsl(var(--foreground));
107
+ }
108
+
109
+ .ql-toolbar .ql-picker .ql-picker-label::before,
110
+ .ql-picker .ql-picker-options .ql-picker-item::before {
111
+ color: hsl(var(--foreground));
112
+ font-weight: 400;
113
+ }
114
+
115
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
116
+ min-width: 12rem;
117
+ z-index: 50;
118
+ margin-right: 1rem;
119
+ border-radius: 0.375rem;
120
+ background-color: hsl(var(--background));
121
+ border: 1px solid hsl(var(--border));
122
+ box-shadow: 0rem 0rem 0.1rem 0.01rem hsl(var(--fd-toolbar-shadow));
123
+ outline: none;
124
+ pointer-events: auto;
125
+ }
126
+
127
+ .ql-snow .ql-picker-options .ql-picker-item {
128
+ width: 100%;
129
+ padding: 0.5rem 0.75rem;
130
+ }
@@ -1,25 +1,25 @@
1
- import { test as base, PlaywrightTestArgs, PlaywrightWorkerArgs, TestType } from "playwright/test";
2
- import { initInternalResourceMetasCacheFromJson } from "@fernir2/saas-kit/server";
3
- import { toolboxEnvSettingKeys } from "@fernir2/saas-kit";
4
-
5
- export type WorkerArgs = PlaywrightWorkerArgs & { metaInitialized: void };
6
- export type TestArgs = PlaywrightTestArgs;
7
-
8
- export const test: TestType<TestArgs, WorkerArgs> = base.extend({
9
- metaInitialized: [
10
- // Approved
11
- // eslint-disable-next-line no-empty-pattern
12
- async ({}, use: () => Promise<void>) => {
13
- await initInternalResourceMetasCacheFromJson();
14
- await use();
15
- },
16
- { scope: "worker", auto: true },
17
- ],
18
- });
19
-
20
- export const expect = test.expect;
21
-
22
- export default async function globalSetup() {
23
- process.env[toolboxEnvSettingKeys.appEnv] = "test";
24
- await initInternalResourceMetasCacheFromJson();
25
- }
1
+ import { test as base, PlaywrightTestArgs, PlaywrightWorkerArgs, TestType } from "playwright/test";
2
+ import { initInternalResourceMetasCacheFromJson } from "@fernir2/saas-kit/server";
3
+ import { toolboxEnvSettingKeys } from "@fernir2/saas-kit";
4
+
5
+ export type WorkerArgs = PlaywrightWorkerArgs & { metaInitialized: void };
6
+ export type TestArgs = PlaywrightTestArgs;
7
+
8
+ export const test: TestType<TestArgs, WorkerArgs> = base.extend({
9
+ metaInitialized: [
10
+ // Approved
11
+ // eslint-disable-next-line no-empty-pattern
12
+ async ({}, use: () => Promise<void>) => {
13
+ await initInternalResourceMetasCacheFromJson();
14
+ await use();
15
+ },
16
+ { scope: "worker", auto: true },
17
+ ],
18
+ });
19
+
20
+ export const expect = test.expect;
21
+
22
+ export default async function globalSetup() {
23
+ process.env[toolboxEnvSettingKeys.appEnv] = "test";
24
+ await initInternalResourceMetasCacheFromJson();
25
+ }
package/cli/tsconfig.json CHANGED
@@ -1,65 +1,28 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2023",
4
- "experimentalDecorators": true,
5
- "emitDecoratorMetadata": true,
6
- "lib": ["ES2023", "dom", "dom.iterable"],
7
- "allowJs": true,
8
- "skipLibCheck": true,
9
- "strict": true,
10
- "esModuleInterop": true,
11
-
12
- "module": "esnext",
13
- "moduleResolution": "bundler",
14
-
15
- "resolveJsonModule": true,
16
- "isolatedModules": true,
17
- "jsx": "preserve",
18
- "incremental": true,
19
- "plugins": [{ "name": "next" }],
20
-
21
- "baseUrl": "./",
22
- "preserveSymlinks": false,
23
- "paths": {
24
- "@/*": ["./src/*"],
25
- "@cli/*": ["./cli/*"],
26
- "@adders/*": ["./adders/*"],
27
- "@server/*": ["./server/*"],
28
- "@schemas/*": ["./generated/*"],
29
- "@npm-commands/*": ["./npm-commands/*"],
30
- "@root/*": ["./*"]
31
- },
32
-
33
- "forceConsistentCasingInFileNames": true,
34
- "noFallthroughCasesInSwitch": true,
35
- "sourceMap": true,
36
- "importHelpers": true,
37
- "noEmitHelpers": true,
38
- "downlevelIteration": true,
39
- "pretty": true,
40
- "noUnusedLocals": true,
41
- "noUnusedParameters": true,
42
- "noPropertyAccessFromIndexSignature": true,
43
- "noImplicitOverride": true,
44
- "useUnknownInCatchVariables": true,
45
-
46
- "noEmit": false,
47
- "declaration": true,
48
- "declarationDir": "./build/package/types",
49
- "rootDir": "./",
50
- "outDir": "./build/package/types-output",
51
- "noEmitOnError": true
52
- },
53
- "include": [
54
- "src",
55
- "cli",
56
- "server",
57
- "adders",
58
- "generated",
59
- "next-env.d.ts",
60
- "global.d.ts",
61
- ".next/types/**/*.ts",
62
- "playwright.config.ts"
63
- ],
64
- "exclude": ["node_modules", "dist", "build", ".next", "coverage"]
65
- }
1
+ {
2
+ "extends": "@fernir2/saas-kit/cli/configs/tsconfig.cli.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./",
5
+ "baseUrl": "./",
6
+ "paths": {
7
+ "@/*": ["./src/*"],
8
+ "@cli/*": ["./cli/*"],
9
+ "@adders/*": ["./adders/*"],
10
+ "@server/*": ["./server/*"],
11
+ "@schemas/*": ["./generated/*"],
12
+ "@npm-commands/*": ["./npm-commands/*"],
13
+ "@root/*": ["./*"]
14
+ }
15
+ },
16
+ "include": [
17
+ "src",
18
+ "cli",
19
+ "server",
20
+ "adders",
21
+ "generated",
22
+ "next-env.d.ts",
23
+ "global.d.ts",
24
+ ".next/types/**/*.ts",
25
+ "playwright.config.ts"
26
+ ],
27
+ "exclude": ["node_modules", "dist", "build", ".next", "coverage"]
28
+ }