@fernir2/saas-kit-cli 0.1.34 → 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 (261) 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 -11
  29. package/cli/src/app/api/v1/[resourceName]/route.ts +14 -14
  30. package/cli/src/app/api/v1/[resourceName]/upsert/route.ts +3 -3
  31. package/cli/src/app/api/v1/log/route.ts +7 -7
  32. package/cli/src/app/api/v1/otheruser/[id]/route.ts +14 -14
  33. package/cli/src/app/api/v1/otheruser/route.ts +7 -7
  34. package/cli/src/app/api/v1/password/forgotpassword/route.ts +3 -3
  35. package/cli/src/app/api/v1/password/resetpassword/route.ts +3 -3
  36. package/cli/src/app/api/v1/payment/method/route.ts +4 -4
  37. package/cli/src/app/api/v1/payment/route.ts +3 -3
  38. package/cli/src/app/api/v1/payment/verify-fail/route.ts +3 -3
  39. package/cli/src/app/api/v1/payment/verify-success/route.ts +3 -3
  40. package/cli/src/app/api/v1/preload/route.ts +3 -3
  41. package/cli/src/app/api/v1/searchable-resources/route.ts +11 -11
  42. package/cli/src/app/api/v1/searchresult/route.ts +35 -35
  43. package/cli/src/app/api/v1/sign-in/route.ts +3 -3
  44. package/cli/src/app/api/v1/sign-out/route.ts +3 -3
  45. package/cli/src/app/api/v1/sign-up/route.ts +3 -3
  46. package/cli/src/app/api/v1/subscription/cancel/route.ts +3 -3
  47. package/cli/src/app/api/v1/subscription/create/route.ts +3 -3
  48. package/cli/src/app/api/v1/subscription/update/route.ts +3 -3
  49. package/cli/src/app/api/v1/uimeta/route.ts +3 -3
  50. package/cli/src/app/api/v1/uimetas/route.ts +3 -3
  51. package/cli/src/app/api/v1/userpermission/route.ts +3 -3
  52. package/cli/src/app/api/v1/visible-workspace/route.ts +5 -5
  53. package/cli/src/app/api/v1/workspace/change/route.ts +5 -5
  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/.env +0 -55
  165. package/cli/.gitlab-ci.yml +0 -16
  166. package/cli/.husky/commit-msg +0 -1
  167. package/cli/.husky/pre-commit +0 -1
  168. package/cli/eslint.config.js +0 -10
  169. package/cli/npm-commands/gen-schema/index.ts +0 -5
  170. package/cli/npm-commands/migrate-db/index.ts +0 -5
  171. package/cli/npm-commands/seed-db/index.ts +0 -5
  172. package/cli/tailwind.config.ts +0 -13
  173. package/cli/tsconfig.declaration.json +0 -48
  174. package/level2/cli/create-saas-kit-app/bin/index.cjs.js +0 -40
  175. package/level2/cli/create-saas-kit-app/bin/index.js +0 -18
  176. package/level2/fd-toolbox/api/api-client.cjs.js +0 -19
  177. package/level2/fd-toolbox/api/api-client.js +0 -11
  178. package/level2/fd-toolbox/api/api-paths.cjs.js +0 -9
  179. package/level2/fd-toolbox/api/api-paths.js +0 -7
  180. package/level2/fd-toolbox/api/base-api.cjs.js +0 -22
  181. package/level2/fd-toolbox/api/base-api.js +0 -13
  182. package/level2/fd-toolbox/auth/session-storage.cjs.js +0 -12
  183. package/level2/fd-toolbox/auth/session-storage.js +0 -7
  184. package/level2/fd-toolbox/constants/constants.js +0 -4
  185. package/level2/fd-toolbox/enums/enums.cjs.js +0 -26
  186. package/level2/fd-toolbox/enums/enums.js +0 -4
  187. package/level2/fd-toolbox/errors/error-handler.js +0 -8
  188. package/level2/fd-toolbox/errors/errors.cjs.js +0 -6
  189. package/level2/fd-toolbox/errors/errors.js +0 -4
  190. package/level2/fd-toolbox/errors/problem-details.cjs.js +0 -8
  191. package/level2/fd-toolbox/errors/problem-details.js +0 -6
  192. package/level2/fd-toolbox/functions/value-checking-functions.cjs.js +0 -10
  193. package/level2/fd-toolbox/functions/value-checking-functions.js +0 -6
  194. package/level2/fd-toolbox/http/url/urls.js +0 -6
  195. package/level2/fd-toolbox/infra/env-config.cjs.js +0 -8
  196. package/level2/fd-toolbox/infra/env-config.js +0 -6
  197. package/level2/fd-toolbox/infra/env-functions.cjs.js +0 -16
  198. package/level2/fd-toolbox/infra/env-functions.js +0 -11
  199. package/level2/fd-toolbox/infra/env-schema.cjs.js +0 -12
  200. package/level2/fd-toolbox/infra/env-schema.js +0 -8
  201. package/level2/fd-toolbox/lib/utils.cjs.js +0 -29
  202. package/level2/fd-toolbox/lib/utils.js +0 -13
  203. package/level2/fd-toolbox/local-storage/local-storage.cjs.js +0 -12
  204. package/level2/fd-toolbox/local-storage/local-storage.js +0 -7
  205. package/level2/fd-toolbox/logging/loggers.cjs.js +0 -16
  206. package/level2/fd-toolbox/logging/loggers.js +0 -10
  207. package/level2/fd-toolbox/notifications.cjs.js +0 -14
  208. package/level2/fd-toolbox/notifications.js +0 -7
  209. package/level2/fd-toolbox/odata/odata-constants.js +0 -4
  210. package/level2/fd-toolbox/odata/odatas.cjs.js +0 -11
  211. package/level2/fd-toolbox/odata/odatas.js +0 -9
  212. package/level2/fd-toolbox/odata/services/odata-filters.cjs.js +0 -11
  213. package/level2/fd-toolbox/odata/services/odata-filters.js +0 -9
  214. package/level2/fd-toolbox/paths/paths-names.cjs.js +0 -9
  215. package/level2/fd-toolbox/paths/paths-names.js +0 -6
  216. package/level2/fd-toolbox/routing/paths.cjs.js +0 -8
  217. package/level2/fd-toolbox/routing/paths.js +0 -6
  218. package/level2/fd-toolbox/strings/strings-constants.js +0 -4
  219. package/level2/fd-toolbox/strings/strings.cjs.js +0 -10
  220. package/level2/fd-toolbox/strings/strings.js +0 -7
  221. package/level2/fd-toolbox/types/ensure-type.cjs.js +0 -18
  222. package/level2/fd-toolbox/types/ensure-type.js +0 -4
  223. package/level2/fd-toolbox-core/core/name-of.cjs.js +0 -8
  224. package/level2/fd-toolbox-core/core/name-of.js +0 -4
  225. package/level2/fd-toolbox-core/types/resource-with-id.cjs.js +0 -9
  226. package/level2/fd-toolbox-core/types/resource-with-id.js +0 -6
  227. /package/{level2/fd-toolbox → fd-toolbox}/api/api-path-names.js +0 -0
  228. /package/{level2/fd-toolbox → fd-toolbox}/constants/api-constants.cjs.js +0 -0
  229. /package/{level2/fd-toolbox → fd-toolbox}/constants/api-constants.js +0 -0
  230. /package/{level2/fd-toolbox → fd-toolbox}/constants/environment-constants.cjs.js +0 -0
  231. /package/{level2/fd-toolbox → fd-toolbox}/constants/environment-constants.js +0 -0
  232. /package/{level2/fd-toolbox → fd-toolbox}/constants/extensions.cjs.js +0 -0
  233. /package/{level2/fd-toolbox → fd-toolbox}/constants/extensions.js +0 -0
  234. /package/{level2/fd-toolbox → fd-toolbox}/constants/http-status-codes.cjs.js +0 -0
  235. /package/{level2/fd-toolbox → fd-toolbox}/constants/http-status-codes.js +0 -0
  236. /package/{level2/fd-toolbox → fd-toolbox}/constants/meta-query-params.cjs.js +0 -0
  237. /package/{level2/fd-toolbox → fd-toolbox}/constants/meta-query-params.js +0 -0
  238. /package/{level2/fd-toolbox → fd-toolbox}/constants/representations.cjs.js +0 -0
  239. /package/{level2/fd-toolbox → fd-toolbox}/constants/representations.js +0 -0
  240. /package/{level2/fd-toolbox → fd-toolbox}/errors/error-statuses.cjs.js +0 -0
  241. /package/{level2/fd-toolbox → fd-toolbox}/errors/error-statuses.js +0 -0
  242. /package/{level2/fd-toolbox → fd-toolbox}/http/http-constants.cjs.js +0 -0
  243. /package/{level2/fd-toolbox → fd-toolbox}/http/http-constants.js +0 -0
  244. /package/{level2/fd-toolbox → fd-toolbox}/infra/env-setting-types.cjs.js +0 -0
  245. /package/{level2/fd-toolbox → fd-toolbox}/infra/env-setting-types.js +0 -0
  246. /package/{level2/fd-toolbox → fd-toolbox}/infra/toolbox-env-setting-keys.cjs.js +0 -0
  247. /package/{level2/fd-toolbox → fd-toolbox}/infra/toolbox-env-setting-keys.js +0 -0
  248. /package/{level2/fd-toolbox → fd-toolbox}/logging/logging-constants.cjs.js +0 -0
  249. /package/{level2/fd-toolbox → fd-toolbox}/logging/logging-constants.js +0 -0
  250. /package/{level2/fd-toolbox → fd-toolbox}/odata/odata-enums.cjs.js +0 -0
  251. /package/{level2/fd-toolbox → fd-toolbox}/odata/odata-enums.js +0 -0
  252. /package/{level2/fd-toolbox → fd-toolbox}/resources/resource-names.cjs.js +0 -0
  253. /package/{level2/fd-toolbox → fd-toolbox}/resources/resource-names.js +0 -0
  254. /package/{level2/fd-toolbox → fd-toolbox}/routing/routes.cjs.js +0 -0
  255. /package/{level2/fd-toolbox → fd-toolbox}/routing/routes.js +0 -0
  256. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/meta-constants.cjs.js +0 -0
  257. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/meta-constants.js +0 -0
  258. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/promises.cjs.js +0 -0
  259. /package/{level2/fd-toolbox-core → fd-toolbox-core}/constants/promises.js +0 -0
  260. /package/{level2/fd-toolbox-core → fd-toolbox-core}/enums/log-severities.cjs.js +0 -0
  261. /package/{level2/fd-toolbox-core → fd-toolbox-core}/enums/log-severities.js +0 -0
package/package.json CHANGED
@@ -1,12 +1,9 @@
1
1
  {
2
2
  "name": "@fernir2/saas-kit-cli",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "description": "CLI for creating saas-kit apps",
5
5
  "bin": {
6
- "create": "level2/cli/create-saas-kit-app/bin/index.js"
7
- },
8
- "scripts": {
9
- "start": "node level2/cli/create-saas-kit-app/bin/index.js"
6
+ "saaskitcli": "./level2/cli/bin\\index.js"
10
7
  },
11
8
  "dependencies": {
12
9
  "@aws-sdk/client-s3": "3.879.0",
@@ -18,9 +15,12 @@
18
15
  "@gitbeaker/rest": "42.5.0",
19
16
  "@googleapis/sheets": "9.8.0",
20
17
  "@hookform/resolvers": "3.10.0",
21
- "@next/eslint-plugin-next": "16.0.1",
22
- "@node-rs/argon2": "1.8.3",
18
+ "@libsql/client": "0.15.15",
19
+ "@next/eslint-plugin-next": "16.0.10",
20
+ "@node-rs/argon2": "2.0.2",
23
21
  "@nx/s3-cache": "2.1.0",
22
+ "@pulumi/kubernetes": "4.23.0",
23
+ "@pulumi/pulumi": "3.204.0",
24
24
  "@radix-ui/react-avatar": "1.1.10",
25
25
  "@radix-ui/react-checkbox": "1.3.3",
26
26
  "@radix-ui/react-collapsible": "1.1.12",
@@ -40,7 +40,7 @@
40
40
  "@rollup/plugin-alias": "5.1.1",
41
41
  "@rollup/plugin-commonjs": "28.0.6",
42
42
  "@rollup/plugin-json": "6.1.0",
43
- "@rollup/plugin-node-resolve": "16.0.1",
43
+ "@rollup/plugin-node-resolve": "16.0.3",
44
44
  "@stripe/react-stripe-js": "3.9.2",
45
45
  "@stripe/stripe-js": "4.10.0",
46
46
  "@t3-oss/env-nextjs": "0.13.8",
@@ -59,9 +59,9 @@
59
59
  "geist": "1.4.2",
60
60
  "groq-sdk": "0.9.1",
61
61
  "ioredis": "5.7.0",
62
- "istanbul-lib-coverage": "^3.2.2",
63
- "istanbul-lib-report": "^3.0.1",
64
- "istanbul-reports": "^3.2.0",
62
+ "istanbul-lib-coverage": "3.2.2",
63
+ "istanbul-lib-report": "3.0.1",
64
+ "istanbul-reports": "3.2.0",
65
65
  "jsonwebtoken": "9.0.2",
66
66
  "jwt-decode": "4.0.0",
67
67
  "lodash.debounce": "4.0.8",
@@ -69,9 +69,8 @@
69
69
  "lru-cache": "11.1.0",
70
70
  "lucide-react": "0.503.0",
71
71
  "module-alias": "2.2.3",
72
- "next": "16.0.1",
72
+ "next": "16.0.10",
73
73
  "nodemailer": "6.10.1",
74
- "path": "0.12.7",
75
74
  "pg-boss": "10.3.2",
76
75
  "plaid": "30.1.0",
77
76
  "playwright": "1.52.0",
@@ -79,10 +78,10 @@
79
78
  "postgres": "3.4.7",
80
79
  "prism-react-renderer": "2.4.1",
81
80
  "quill": "2.0.3",
82
- "react": "19.1.1",
81
+ "react": "19.2.3",
83
82
  "react-colorful": "5.6.1",
84
- "react-day-picker": "9.9.0",
85
- "react-dom": "19.1.1",
83
+ "react-day-picker": "9.11.1",
84
+ "react-dom": "19.2.3",
86
85
  "react-grid-layout": "1.5.2",
87
86
  "react-hook-form": "7.62.0",
88
87
  "react-resizable-panels": "2.1.9",
@@ -100,14 +99,14 @@
100
99
  "socket.io-client": "4.8.1",
101
100
  "sonner": "2.0.7",
102
101
  "stripe": "16.12.0",
103
- "tailwind-merge": "2.6.0",
102
+ "tailwind-merge": "3.3.1",
104
103
  "tailwindcss-animate": "1.0.7",
105
104
  "ts-morph": "23.0.0",
106
105
  "ts-prune": "0.10.3",
107
106
  "tslib": "2.8.1",
108
107
  "tsx": "4.20.5",
109
108
  "uuid": "10.0.0",
110
- "v8-to-istanbul": "^9.3.0",
109
+ "v8-to-istanbul": "9.3.0",
111
110
  "webpack": "5.101.3",
112
111
  "zod": "3.25.76"
113
112
  },
@@ -117,20 +116,21 @@
117
116
  "@eslint-stylistic/metadata": "5.3.1",
118
117
  "@eslint/eslintrc": "3.3.1",
119
118
  "@eslint/js": "9.35.0",
119
+ "@mdx-js/react": "3.1.1",
120
120
  "@nx/eslint": "21.5.2",
121
121
  "@nx/js": "21.4.1",
122
122
  "@nx/next": "21.0.3",
123
- "@mdx-js/react": "3.1.1",
123
+ "@rollup/plugin-babel": "6.1.0",
124
124
  "@rollup/plugin-terser": "0.4.4",
125
125
  "@rollup/plugin-typescript": "12.1.4",
126
126
  "@stylistic/eslint-plugin": "5.3.1",
127
127
  "@stylistic/eslint-plugin-jsx": "4.4.1",
128
- "@tailwindcss/postcss": "4.1.12",
128
+ "@tailwindcss/postcss": "4.1.16",
129
129
  "@types/commonmark": "0.27.10",
130
130
  "@types/eslint": "9.6.1",
131
- "@types/istanbul-lib-coverage": "^2.0.6",
132
- "@types/istanbul-lib-report": "^3.0.3",
133
- "@types/istanbul-reports": "^3.0.4",
131
+ "@types/istanbul-lib-coverage": "2.0.6",
132
+ "@types/istanbul-lib-report": "3.0.3",
133
+ "@types/istanbul-reports": "3.0.4",
134
134
  "@types/jsonwebtoken": "9.0.10",
135
135
  "@types/lodash.debounce": "4.0.9",
136
136
  "@types/lodash.isequal": "4.5.8",
@@ -138,9 +138,10 @@
138
138
  "@types/node": "24.5.2",
139
139
  "@types/nodemailer": "6.4.19",
140
140
  "@types/pluralize": "0.0.33",
141
- "@types/react": "19.2.2",
142
- "@types/react-dom": "19.2.1",
141
+ "@types/react": "19.2.7",
142
+ "@types/react-dom": "19.2.3",
143
143
  "@types/react-grid-layout": "1.3.5",
144
+ "@types/swagger-ui-react": "5.18.0",
144
145
  "@types/uuid": "10.0.0",
145
146
  "@typescript-eslint/eslint-plugin": "8.43.0",
146
147
  "@typescript-eslint/parser": "8.43.0",
@@ -153,7 +154,7 @@
153
154
  "cross-env": "7.0.3",
154
155
  "drizzle-kit": "0.28.1",
155
156
  "eslint": "9.35.0",
156
- "eslint-config-next": "16.0.1",
157
+ "eslint-config-next": "16.0.10",
157
158
  "eslint-config-prettier": "10.1.8",
158
159
  "eslint-import-resolver-typescript": "4.4.4",
159
160
  "eslint-plugin-github": "6.0.0",
@@ -166,19 +167,19 @@
166
167
  "eslint-plugin-react-hooks": "5.2.0",
167
168
  "eslint-plugin-react-refresh": "0.4.20",
168
169
  "eslint-plugin-sonarjs": "3.0.5",
169
- "eslint-plugin-tailwindcss": "3.18.2",
170
170
  "husky": "9.1.7",
171
171
  "nx": "21.0.3",
172
172
  "postcss": "8.5.6",
173
173
  "prettier": "3.6.2",
174
- "prettier-plugin-tailwindcss": "0.6.14",
174
+ "prettier-plugin-tailwindcss": "0.7.1",
175
175
  "raw-loader": "4.0.2",
176
176
  "rollup-plugin-copy": "3.5.0",
177
177
  "rollup-plugin-delete": "2.2.0",
178
178
  "rollup-plugin-dts": "6.2.3",
179
179
  "rollup-preserve-directives": "1.1.3",
180
- "@rollup/plugin-babel": "6.1.0",
181
- "tailwindcss": "3.4.17",
180
+ "swagger-ui": "5.29.5",
181
+ "swagger-ui-react": "5.29.5",
182
+ "tailwindcss": "4.1.17",
182
183
  "ts-node": "10.9.2",
183
184
  "typedoc": "0.28.12",
184
185
  "typedoc-plugin-markdown": "4.8.1",
package/cli/.env DELETED
@@ -1,55 +0,0 @@
1
- NEXT_PUBLIC_FD_STRIPE_PUBLIC_KEY=pk_test_51RHmZWQqF1vu19lrVvc7sjoc4eOkW7CD2wvGAjintWGs6917z22kCen6nh6k3fcbOwqEji9otdH6spKhOQz4DNmz00lIUmF4fI
2
- FD_STRIPE_SECRET_KEY=sk_test_51RHmZWQqF1vu19lrhmYvV2eoKqRY1gVMFHYLdbJE4n3cJeHJMyBYu2F7VgoWaBlhgXQymn0TzpWPAeGd7hwzdNZ600HgJc7z8W
3
-
4
- FD_INTEGRATION_ENABLED=true
5
-
6
- FD_DATABASE_CONNECTION_STRING="postgresql://postgres:root@localhost:5432/saas-kit"
7
-
8
- NEXT_PUBLIC_FD_SEED_DEMO_RESOURCES=true
9
- FD_SEED_DEV_RESOURCES=true
10
-
11
- FD_GOOGLE_PLACES_API_KEY=AIzaSyC3GcaKWMHoCOrCxFaGZpNH6-Y3tzCilZA
12
- FD_GOOGLE_CLIENT_ID=
13
- FD_GOOGLE_SPREADSHEET_ID=
14
- FD_GOOGLE_SPREADSHEET_SHEET_NAME=
15
-
16
- FD_USE_MIGRATIONS=false
17
-
18
- FD_PLAID_CLIENT_ID=
19
- FD_PLAID_SECRET=
20
- FD_PLAID_ENV=
21
-
22
- FD_SCREENSHOT_ONE_ACCESS_KEY=1L2ZnUQtaGASpg
23
- FD_SCREENSHOT_ONE_SECRET_KEY=0cXkkSa0OBFKgg
24
-
25
- FD_SENDER_EMAIL=
26
- FD_EMAIL_SERVICE_URL=
27
- FD_EMAIL_SERVICE_KEY=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
28
-
29
- NEXT_PUBLIC_FD_SHOW_SIDEBAR=true
30
-
31
- FD_AI_API_KEY=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
32
- FD_STORE_SESSION_IN_HEADER=false
33
-
34
- FD_SHIPPO_API_KEY=shippo_test_fdafbbd9fdba49ff38b26277c4251586c63d9fb1
35
- FD_FEDEX_SECRET_KEY=ba4d4fe3e0b94e66a9fb4a0b1adf0f88
36
- FD_FEDEX_API_KEY=l714232a806a684a008a28e879eb6db770
37
-
38
- FD_S3_COMPATIBLE_ACCESS_KEY=
39
- FD_S3_COMPATIBLE_SECRET_ACCESS_KEY=
40
- FD_S3_COMPATIBLE_BUCKET_NAME=
41
- FD_S3_COMPATIBLE_ENDPOINT=https://e0ed8fb91d4055df5c33d876e7c84482.r2.cloudflarestorage.com
42
- FD_S3_COMPATIBLE_ENDPOINT_DEV=https://pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev
43
-
44
- NODE_OPTIONS="--import=tsx"
45
-
46
- NEXT_PUBLIC_FD_LAUNCH_MODE=direct
47
-
48
- FD_GITLAB_PRIVATE_TOKEN=
49
- FD_GITLAB_PROJECT_ID=
50
- FD_GITLAB_HOST=
51
- FD_DEFAULT_BRANCH_NAME=
52
- FD_GIT_USERNAME=
53
- FD_GIT_PASSWORD=
54
- FD_REPO_OWNER=
55
- FD_REPO_NAME=
@@ -1,16 +0,0 @@
1
- include:
2
- - "packages/infra/ci/templates/ci-variables.yml"
3
- - "packages/infra/ci/templates/base-template.yml"
4
-
5
- - "packages/infra/ci/templates/build-package.yml"
6
- - "packages/infra/ci/templates/lint.yml"
7
- - "packages/infra/ci/templates/build-and-test.yml"
8
- - "packages/infra/ci/templates/saas-kit-test-build-and-test.yml"
9
- - "packages/infra/ci/templates/create-saas-kit-app-test.yml"
10
-
11
- - "packages/infra/ci/templates/manual-cleanup.yml"
12
- - "packages/infra/ci/templates/update-submodules.yml"
13
- - "packages/infra/ci/templates/deploy-to-vercel.yml"
14
- - "packages/infra/ci/templates/publish-and-test-package.yml"
15
- - "packages/infra/ci/templates/clear-nx-cache.yml"
16
- - "packages/infra/ci/templates/drop-all-db.yml"
@@ -1 +0,0 @@
1
- npx tsx packages/base-repo/tools/git/commit-msg-script.ts "$1"
@@ -1 +0,0 @@
1
- pnpm run-precommit
@@ -1,10 +0,0 @@
1
- import { baseConfig } from "@fernir2/saas-kit";
2
-
3
- const config = [
4
- ...baseConfig,
5
- {
6
- ignores: ["src/models/*"],
7
- },
8
- ];
9
-
10
- export default config;
@@ -1,5 +0,0 @@
1
- import { join } from "path";
2
- import { generateSchema, generatedPaths } from "@fernir2/saas-kit";
3
-
4
- const schemaPath = join(process.cwd(), generatedPaths.schema).replaceAll("\\", "/");
5
- await generateSchema(schemaPath);
@@ -1,5 +0,0 @@
1
- import { runCommand } from "@fernir2/saas-kit";
2
-
3
- export async function migrateDb() {
4
- await runCommand("migrate-db");
5
- }
@@ -1,5 +0,0 @@
1
- import { runCommand } from "@fernir2/saas-kit";
2
-
3
- export async function seedDb() {
4
- await runCommand("seed-db");
5
- }
@@ -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/**/*.{js,ts,jsx,tsx}",
11
- ];
12
-
13
- export default config;
@@ -1,48 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "experimentalDecorators": true,
5
- "emitDecoratorMetadata": true,
6
- "lib": ["dom", "dom.iterable", "esnext"],
7
- "allowJs": true,
8
- "skipLibCheck": true,
9
- "strict": false,
10
- "esModuleInterop": true,
11
- "module": "esnext",
12
- "moduleResolution": "bundler",
13
- "resolveJsonModule": true,
14
- "isolatedModules": false,
15
- "jsx": "preserve",
16
- "incremental": false,
17
- "plugins": [
18
- {
19
- "name": "next"
20
- }
21
- ],
22
- "paths": {
23
- "@/*": ["./src/*"],
24
- "@cli/*": ["./packages/level2/cli/*"],
25
- "@server/*": ["./packages/level2/server/*"],
26
- "@schemas/*": ["./generated/*"],
27
- "@npm-commands/*": ["./packages/level2/npm-commands/*"],
28
- "@root/*": ["./*"],
29
- "@enricher/*": ["./packages/level2/enricher/*"],
30
- "@packages/*": ["./packages/*"],
31
- "@common/*": ["./packages/level2/common/*"],
32
- "@fd-app-toolbox/*": ["./packages/level2/fd-app-toolbox/*"],
33
- "@fd-component-toolbox/*": ["./packages/level2/fd-component-toolbox/*"],
34
- "@fd-toolbox-core/*": ["./packages/level2/fd-toolbox-core/*"],
35
- "@fd-toolbox/*": ["./packages/level2/fd-toolbox/*"],
36
- "@meta/*": ["./packages/level2/meta/*"],
37
- "@base-repo/*": ["./packages/base-repo/*"],
38
- "@client/*": ["./packages/level2/client/*"]
39
- },
40
- "outDir": "./build/package",
41
- "rootDir": "./",
42
- "declaration": true,
43
- "declarationDir": "./build/package",
44
- "emitDeclarationOnly": false
45
- },
46
- "include": ["next-env.d.ts", "lib/**/*.ts"],
47
- "exclude": ["node_modules", "dist"]
48
- }
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- 'use strict';
4
-
5
- var child_process = require('child_process');
6
- var fs = require('fs');
7
- var node_url = require('node:url');
8
- var _0x1d92c9 = require('path');
9
- var _0x2e6757 = require('node:fs');
10
- var createAppConstants = require('../../../../base-repo/constants/create-app-constants.cjs.js');
11
- var loggers = require('../../../fd-toolbox/logging/loggers.cjs.js');
12
- var constants = require('../../../fd-toolbox/constants/constants.cjs.js');
13
- var path = require('../../../npm-commands/build-npm/path.cjs.js');
14
- var errors = require('../../../fd-toolbox/errors/errors.cjs.js');
15
- var projectPaths = require('../../../../base-repo/app-constants/project-paths.cjs.js');
16
- var packages = require('../../../../base-repo/constants/packages.cjs.js');
17
- var aliases = require('../../../../base-repo/app-constants/aliases.cjs.js');
18
- var ensureType = require('../../../fd-toolbox/types/ensure-type.cjs.js');
19
-
20
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
21
- function _interopNamespaceDefault(e) {
22
- var n = Object.create(null);
23
- if (e) {
24
- Object.keys(e).forEach(function (k) {
25
- if (k !== 'default') {
26
- var d = Object.getOwnPropertyDescriptor(e, k);
27
- Object.defineProperty(n, k, d.get ? d : {
28
- enumerable: true,
29
- get: function () { return e[k]; }
30
- });
31
- }
32
- });
33
- }
34
- n.default = e;
35
- return Object.freeze(n);
36
- }
37
-
38
- var _0x1d92c9__namespace = /*#__PURE__*/_interopNamespaceDefault(_0x1d92c9);
39
-
40
- 'use strict';var __defProp=Object['defineProperty'],__name=(_0x4a1678,_0x1b6081)=>__defProp(_0x4a1678,'name',{'value':_0x1b6081,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(loggers.logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0x9*-0x139+-0x264b*-0x1+-0x1b49));const filename=node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('level2/cli/create-saas-kit-app/bin/index.cjs.js', document.baseURI).href))),sourceDir='../../../../',binDir=_0x1d92c9__namespace['dirname'](filename),repoRoot=_0x1d92c9__namespace['resolve'](binDir,sourceDir),envLocalPath=_0x1d92c9__namespace['join'](binDir,''+sourceDir+projectPaths.folders['cli']+'/'+projectPaths.files['env']),envTemplate=_0x2e6757['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[projectPaths.folders['cli']+'/constants'];function runCommand(_0x46872e,_0x22e818){loggers.logInfoRaw('Executing:\x20'+_0x46872e);try{child_process.execSync(_0x46872e,{'stdio':'inherit','cwd':_0x22e818??process['cwd']()});}catch(_0x40711e){const _0x360f3c=_0x40711e instanceof Error?_0x40711e['message']:'Unknown\x20error';loggers.logStringError('Error\x20executing:\x20'+_0x46872e),loggers.logStringError(_0x360f3c),process['exit'](-0x619*0x3+-0x10bf*0x1+-0x230b*-0x1);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x18c138){fs.existsSync(_0x18c138)&&(loggers.logStringError('Error:\x20Folder\x20\x22'+_0x1d92c9__namespace['basename'](_0x18c138)+'\x22\x20already\x20exists.'),process['exit'](-0x20e*0xc+-0x2032+-0xcd*-0x47));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x544e94=_0x1d92c9__namespace['resolve'](repoRoot,'package.json'),_0x1a27a7=JSON['parse'](_0x2e6757['readFileSync'](_0x544e94,'utf-8'));return String(_0x1a27a7['devDependencies']?.['next']??_0x1a27a7['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x2ca61b,_0x1f2810){loggers.logInfoRaw('Creating\x20Next.js\x20project...');const _0x1e6d46=getCreateNextAppVersion(),_0x424ecd=['npx\x20create-next-app@'+_0x1e6d46+'\x20\x22'+_0x2ca61b+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x424ecd,_0x1d92c9__namespace['dirname'](_0x1f2810)),loggers.logInfoRaw('Next.js\x20project\x20created!');const _0x3d667b=_0x1d92c9__namespace['join'](_0x1f2810,'next.config.ts');_0x2e6757['existsSync'](_0x3d667b)&&(_0x2e6757['rmSync'](_0x3d667b),loggers.logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x2bc0f0){loggers.logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x59eefb=_0x1d92c9__namespace['join'](_0x2bc0f0,'.env');try{await fs.promises['writeFile'](_0x59eefb,envTemplate,'utf8'),loggers.logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x33a6f9){const _0x184e54=_0x33a6f9 instanceof Error?_0x33a6f9['message']:'Unknown\x20error';loggers.logStringError('Error\x20creating\x20.env\x20file:'),loggers.logStringError(_0x184e54);throw _0x33a6f9;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x4b44fd){const _0x8bd37a=_0x1d92c9__namespace['join'](_0x4b44fd,'package.json'),_0x584a4c=_0x1d92c9__namespace['join'](repoRoot,projectPaths.folders['cli']+'/package-template.json');try{const _0x4d9dbb=JSON['parse'](await fs.promises['readFile'](_0x8bd37a,'utf8')),_0x1af06d=_0x4d9dbb['name'],_0x329f38=JSON['parse'](await fs.promises['readFile'](_0x584a4c,'utf8')),_0x5e8332={..._0x329f38,'name':_0x1af06d};await fs.promises['writeFile'](_0x8bd37a,JSON['stringify'](_0x5e8332,null,-0x5*0x1f9+-0x4d4+-0x47*-0x35)+'\x0a','utf8');}catch(_0x569a56){const _0x2a1432=_0x569a56 instanceof Error?_0x569a56['message']:'Unknown\x20error';loggers.logStringError('Error\x20overriding\x20package.json:'),loggers.logStringError(_0x2a1432);throw _0x569a56;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x303c6f){const _0x4c660f=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x303c6f['replace'](_0x4c660f,(_0x1156b7,_0x1884cf,_0x3e3c5f,_0x1fbaac,_0x13bc08,_0x17aab5)=>{if(!_0x13bc08['startsWith'](aliases.aliasSymbols['atSign'])||_0x13bc08['startsWith'](packages.npmPackages['saasKit']))return _0x1156b7;let _0x413fd6;_0x13bc08['startsWith'](aliases.aliasSymbols['atSign']+projectPaths.folders['server'])||_0x13bc08['includes']('/'+projectPaths.folders['server']+'/')?_0x413fd6=packages.npmPackages['saasKitServer']:_0x413fd6=packages.npmPackages['saasKit'];let _0x284d0f=_0x3e3c5f['trim']();return !_0x284d0f['startsWith']('{')&&(_0x284d0f='{\x20'+_0x284d0f+'\x20}'),''+_0x1884cf+_0x284d0f+_0x1fbaac+_0x413fd6+_0x17aab5;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x42b918){loggers.logInfoRaw('Copying\x20'+constants.projectName+'\x20files...');for(const _0x5808d3 of path.allFilesToCopy){const _0xac74c3=projectPaths.folders['cli']+'/'+_0x5808d3,_0x51d2dc=_0x1d92c9__namespace['join'](repoRoot,_0xac74c3),_0x44a9f7=replaceToolsFolder(_0x5808d3),_0x15973d=_0x1d92c9__namespace['join'](_0x42b918,_0x44a9f7);if(fs.existsSync(_0x51d2dc)){const _0x95f374=await fs.promises['stat'](_0x51d2dc);_0x95f374['isDirectory']()?await copyDirectoryContents(_0x51d2dc,_0x15973d):await copyAndProcessFile(_0x51d2dc,_0x15973d);}else loggers.logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0xac74c3);}loggers.logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x3bc118){let _0x13d924=_0x3bc118;for(const [_0x4ba757,_0x1c7f37]of Object['entries'](createAppConstants.toolsFoldersToReplace)){if(_0x13d924['startsWith'](_0x4ba757)&&ensureType.isWithIndexer(_0x1c7f37)){const _0x6dd500=_0x1c7f37;for(const _0xb6653b in _0x6dd500){const _0x5967a1=_0x6dd500[_0xb6653b];ensureType.isString(_0x5967a1)&&(_0x13d924=_0x13d924['replace'](_0xb6653b,_0x5967a1));}break;}}return _0x13d924;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x313fda,_0xc3c852,_0x13c784=![]){const _0x35c31e=_0x1d92c9__namespace['relative'](_0xc3c852,_0x313fda),_0xdad243=_0x35c31e['split'](_0x1d92c9__namespace['sep']),_0x56c895=_0x1d92c9__namespace['relative'](repoRoot,_0x313fda)['replace'](/\\/g,'/');return _0x13c784&&foldersToIgnore['includes'](_0x56c895)||foldersToIgnore['some'](_0x5b9049=>_0xdad243['some'](_0x3f276a=>_0x3f276a===_0x5b9049));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x3334f8,_0x1c0b77){!fs.existsSync(_0x1c0b77)&&fs.mkdirSync(_0x1c0b77,{'recursive':!![]});try{const _0x2885ce=await fs.promises['readdir'](_0x3334f8,{'withFileTypes':!![]});for(const _0x540512 of _0x2885ce){const _0x447da1=_0x1d92c9__namespace['join'](_0x3334f8,_0x540512['name']),_0x374383=_0x1d92c9__namespace['join'](_0x1c0b77,_0x540512['name']);!shouldIgnorePath(_0x447da1,_0x3334f8,_0x540512['isDirectory']())&&(_0x540512['isDirectory']()?await copyDirectoryContents(_0x447da1,_0x374383):await copyAndProcessFile(_0x447da1,_0x374383));}}catch(_0x27b765){const _0x58a935=_0x27b765 instanceof Error?_0x27b765['message']:'Unknown\x20error';loggers.logStringError('Error\x20reading\x20directory\x20'+_0x3334f8+':\x20'+_0x58a935);throw _0x27b765;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0xc844d7,_0x310f7c){const _0x540dd5=_0x1d92c9__namespace['dirname'](_0x310f7c);!fs.existsSync(_0x540dd5)&&fs.mkdirSync(_0x540dd5,{'recursive':!![]});const _0xc542bb=await fs.promises['stat'](_0xc844d7);if(_0xc542bb['isDirectory']())await copyDirectoryContents(_0xc844d7,_0x310f7c);else {const _0x4ac774=_0x1d92c9__namespace['extname'](_0xc844d7)['toLowerCase'](),_0x247b57=['.ico','.png','.jpg'];if(_0x247b57['includes'](_0x4ac774)){await fs.promises['copyFile'](_0xc844d7,_0x310f7c);return;}const _0xb89188=await fs.promises['readFile'](_0xc844d7,'utf8'),_0x1dc251=replaceImports(_0xb89188);await fs.promises['writeFile'](_0x310f7c,_0x1dc251,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x344c6d){for(const _0x51e378 of createAppConstants.additionalFoldersToCreate){const _0x413aa8=_0x1d92c9__namespace['join'](_0x344c6d,_0x51e378);!fs.existsSync(_0x413aa8)&&(fs.mkdirSync(_0x413aa8,{'recursive':!![]}),loggers.logInfoRaw('Created\x20folder:\x20'+_0x51e378));}loggers.logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x259355=process['argv']['slice'](-0x163*0x7+-0x13b7+0x1d6e*0x1);_0x259355['length']<-0x11e9+0x1221+-0x37*0x1&&(loggers.logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x97c*-0x2+-0x6*-0x257+0x4ef));const _0x3c5280=_0x259355[-0x1a*-0xbb+0xfe7+0x22e5*-0x1],_0x111678=_0x1d92c9__namespace['resolve'](process['cwd'](),_0x3c5280);loggers.logInfoRaw('\x0aCreating\x20'+constants.projectName+'\x20project\x20\x22'+_0x3c5280+'\x22...\x0a');try{checkTargetFolder(_0x111678),createNextProject(_0x3c5280,_0x111678),await copyProjectFiles(_0x111678),await overridePackageJson(_0x111678),createAdditionalFolders(_0x111678),await createEnvFile(_0x111678),await updateLayoutTitle(_0x111678,_0x3c5280),loggers.logInfoRaw('\x0a'+constants.projectName+'\x20project\x20\x22'+_0x3c5280+'\x22\x20is\x20ready!'),loggers.logInfoRaw('Next\x20steps:'),loggers.logInfoRaw('\x20\x20cd\x20'+_0x3c5280),loggers.logInfoRaw('\x20\x20npm\x20run\x20prod'),loggers.logInfoRaw('\x20\x20npm\x20start');}catch(_0x3e955e){const _0x50ba96=_0x3e955e instanceof Error?_0x3e955e['message']:'Unknown\x20error';loggers.logStringError('Error:'),loggers.logStringError(_0x50ba96),fs.existsSync(_0x111678)&&(loggers.logInfoRaw('Cleaning\x20up...'),fs.rmSync(_0x111678,{'recursive':!![],'force':!![]})),process['exit'](0x7a2+-0x1d1f+0x157e);}}__name(main,'main');async function updateLayoutTitle(_0x41187d,_0x24d5a2){const _0x4d6f45=_0x1d92c9__namespace['join'](_0x41187d,'src/app/layout.tsx');if(!fs.existsSync(_0x4d6f45))throw errors.createError('layout.tsx\x20not\x20found\x20at\x20'+_0x4d6f45+',\x20cannot\x20update\x20title.');let _0x4e655e=await fs.promises['readFile'](_0x4d6f45,'utf8');const _0x158439=/"SaaS Kit"/g;if(!_0x158439['test'](_0x4e655e))throw errors.createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x4e655e=_0x4e655e['replace'](_0x158439,'\x22'+_0x24d5a2+'\x22'),await fs.promises['writeFile'](_0x4d6f45,_0x4e655e,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5041fc=>{const _0x5630ad=_0x5041fc instanceof Error?_0x5041fc['message']:'Unknown\x20error';loggers.logStringError('Unhandled\x20error:'),loggers.logStringError(_0x5630ad),process['exit'](0xf*0x4b+-0x122+-0x342);});
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- import { execSync } from 'child_process';
4
- import { existsSync, promises, mkdirSync, rmSync } from 'fs';
5
- import { fileURLToPath } from 'node:url';
6
- import * as _0x1d92c9 from 'path';
7
- import _0x2e6757 from 'node:fs';
8
- import { toolsFoldersToReplace, additionalFoldersToCreate } from '../../../../base-repo/constants/create-app-constants.js';
9
- import { logStringError, logInfoRaw } from '../../../fd-toolbox/logging/loggers.js';
10
- import { projectName } from '../../../fd-toolbox/constants/constants.js';
11
- import { allFilesToCopy } from '../../../npm-commands/build-npm/path.js';
12
- import { createError } from '../../../fd-toolbox/errors/errors.js';
13
- import { folders, files } from '../../../../base-repo/app-constants/project-paths.js';
14
- import { npmPackages } from '../../../../base-repo/constants/packages.js';
15
- import { aliasSymbols } from '../../../../base-repo/app-constants/aliases.js';
16
- import { isWithIndexer, isString } from '../../../fd-toolbox/types/ensure-type.js';
17
-
18
- 'use strict';var __defProp=Object['defineProperty'],__name=(_0x4a1678,_0x1b6081)=>__defProp(_0x4a1678,'name',{'value':_0x1b6081,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0x9*-0x139+-0x264b*-0x1+-0x1b49));const filename=fileURLToPath(import.meta['url']),sourceDir='../../../../',binDir=_0x1d92c9['dirname'](filename),repoRoot=_0x1d92c9['resolve'](binDir,sourceDir),envLocalPath=_0x1d92c9['join'](binDir,''+sourceDir+folders['cli']+'/'+files['env']),envTemplate=_0x2e6757['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[folders['cli']+'/constants'];function runCommand(_0x46872e,_0x22e818){logInfoRaw('Executing:\x20'+_0x46872e);try{execSync(_0x46872e,{'stdio':'inherit','cwd':_0x22e818??process['cwd']()});}catch(_0x40711e){const _0x360f3c=_0x40711e instanceof Error?_0x40711e['message']:'Unknown\x20error';logStringError('Error\x20executing:\x20'+_0x46872e),logStringError(_0x360f3c),process['exit'](-0x619*0x3+-0x10bf*0x1+-0x230b*-0x1);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x18c138){existsSync(_0x18c138)&&(logStringError('Error:\x20Folder\x20\x22'+_0x1d92c9['basename'](_0x18c138)+'\x22\x20already\x20exists.'),process['exit'](-0x20e*0xc+-0x2032+-0xcd*-0x47));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x544e94=_0x1d92c9['resolve'](repoRoot,'package.json'),_0x1a27a7=JSON['parse'](_0x2e6757['readFileSync'](_0x544e94,'utf-8'));return String(_0x1a27a7['devDependencies']?.['next']??_0x1a27a7['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x2ca61b,_0x1f2810){logInfoRaw('Creating\x20Next.js\x20project...');const _0x1e6d46=getCreateNextAppVersion(),_0x424ecd=['npx\x20create-next-app@'+_0x1e6d46+'\x20\x22'+_0x2ca61b+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x424ecd,_0x1d92c9['dirname'](_0x1f2810)),logInfoRaw('Next.js\x20project\x20created!');const _0x3d667b=_0x1d92c9['join'](_0x1f2810,'next.config.ts');_0x2e6757['existsSync'](_0x3d667b)&&(_0x2e6757['rmSync'](_0x3d667b),logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x2bc0f0){logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x59eefb=_0x1d92c9['join'](_0x2bc0f0,'.env');try{await promises['writeFile'](_0x59eefb,envTemplate,'utf8'),logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x33a6f9){const _0x184e54=_0x33a6f9 instanceof Error?_0x33a6f9['message']:'Unknown\x20error';logStringError('Error\x20creating\x20.env\x20file:'),logStringError(_0x184e54);throw _0x33a6f9;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x4b44fd){const _0x8bd37a=_0x1d92c9['join'](_0x4b44fd,'package.json'),_0x584a4c=_0x1d92c9['join'](repoRoot,folders['cli']+'/package-template.json');try{const _0x4d9dbb=JSON['parse'](await promises['readFile'](_0x8bd37a,'utf8')),_0x1af06d=_0x4d9dbb['name'],_0x329f38=JSON['parse'](await promises['readFile'](_0x584a4c,'utf8')),_0x5e8332={..._0x329f38,'name':_0x1af06d};await promises['writeFile'](_0x8bd37a,JSON['stringify'](_0x5e8332,null,-0x5*0x1f9+-0x4d4+-0x47*-0x35)+'\x0a','utf8');}catch(_0x569a56){const _0x2a1432=_0x569a56 instanceof Error?_0x569a56['message']:'Unknown\x20error';logStringError('Error\x20overriding\x20package.json:'),logStringError(_0x2a1432);throw _0x569a56;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x303c6f){const _0x4c660f=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x303c6f['replace'](_0x4c660f,(_0x1156b7,_0x1884cf,_0x3e3c5f,_0x1fbaac,_0x13bc08,_0x17aab5)=>{if(!_0x13bc08['startsWith'](aliasSymbols['atSign'])||_0x13bc08['startsWith'](npmPackages['saasKit']))return _0x1156b7;let _0x413fd6;_0x13bc08['startsWith'](aliasSymbols['atSign']+folders['server'])||_0x13bc08['includes']('/'+folders['server']+'/')?_0x413fd6=npmPackages['saasKitServer']:_0x413fd6=npmPackages['saasKit'];let _0x284d0f=_0x3e3c5f['trim']();return !_0x284d0f['startsWith']('{')&&(_0x284d0f='{\x20'+_0x284d0f+'\x20}'),''+_0x1884cf+_0x284d0f+_0x1fbaac+_0x413fd6+_0x17aab5;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x42b918){logInfoRaw('Copying\x20'+projectName+'\x20files...');for(const _0x5808d3 of allFilesToCopy){const _0xac74c3=folders['cli']+'/'+_0x5808d3,_0x51d2dc=_0x1d92c9['join'](repoRoot,_0xac74c3),_0x44a9f7=replaceToolsFolder(_0x5808d3),_0x15973d=_0x1d92c9['join'](_0x42b918,_0x44a9f7);if(existsSync(_0x51d2dc)){const _0x95f374=await promises['stat'](_0x51d2dc);_0x95f374['isDirectory']()?await copyDirectoryContents(_0x51d2dc,_0x15973d):await copyAndProcessFile(_0x51d2dc,_0x15973d);}else logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0xac74c3);}logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x3bc118){let _0x13d924=_0x3bc118;for(const [_0x4ba757,_0x1c7f37]of Object['entries'](toolsFoldersToReplace)){if(_0x13d924['startsWith'](_0x4ba757)&&isWithIndexer(_0x1c7f37)){const _0x6dd500=_0x1c7f37;for(const _0xb6653b in _0x6dd500){const _0x5967a1=_0x6dd500[_0xb6653b];isString(_0x5967a1)&&(_0x13d924=_0x13d924['replace'](_0xb6653b,_0x5967a1));}break;}}return _0x13d924;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x313fda,_0xc3c852,_0x13c784=![]){const _0x35c31e=_0x1d92c9['relative'](_0xc3c852,_0x313fda),_0xdad243=_0x35c31e['split'](_0x1d92c9['sep']),_0x56c895=_0x1d92c9['relative'](repoRoot,_0x313fda)['replace'](/\\/g,'/');return _0x13c784&&foldersToIgnore['includes'](_0x56c895)||foldersToIgnore['some'](_0x5b9049=>_0xdad243['some'](_0x3f276a=>_0x3f276a===_0x5b9049));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x3334f8,_0x1c0b77){!existsSync(_0x1c0b77)&&mkdirSync(_0x1c0b77,{'recursive':!![]});try{const _0x2885ce=await promises['readdir'](_0x3334f8,{'withFileTypes':!![]});for(const _0x540512 of _0x2885ce){const _0x447da1=_0x1d92c9['join'](_0x3334f8,_0x540512['name']),_0x374383=_0x1d92c9['join'](_0x1c0b77,_0x540512['name']);!shouldIgnorePath(_0x447da1,_0x3334f8,_0x540512['isDirectory']())&&(_0x540512['isDirectory']()?await copyDirectoryContents(_0x447da1,_0x374383):await copyAndProcessFile(_0x447da1,_0x374383));}}catch(_0x27b765){const _0x58a935=_0x27b765 instanceof Error?_0x27b765['message']:'Unknown\x20error';logStringError('Error\x20reading\x20directory\x20'+_0x3334f8+':\x20'+_0x58a935);throw _0x27b765;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0xc844d7,_0x310f7c){const _0x540dd5=_0x1d92c9['dirname'](_0x310f7c);!existsSync(_0x540dd5)&&mkdirSync(_0x540dd5,{'recursive':!![]});const _0xc542bb=await promises['stat'](_0xc844d7);if(_0xc542bb['isDirectory']())await copyDirectoryContents(_0xc844d7,_0x310f7c);else {const _0x4ac774=_0x1d92c9['extname'](_0xc844d7)['toLowerCase'](),_0x247b57=['.ico','.png','.jpg'];if(_0x247b57['includes'](_0x4ac774)){await promises['copyFile'](_0xc844d7,_0x310f7c);return;}const _0xb89188=await promises['readFile'](_0xc844d7,'utf8'),_0x1dc251=replaceImports(_0xb89188);await promises['writeFile'](_0x310f7c,_0x1dc251,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x344c6d){for(const _0x51e378 of additionalFoldersToCreate){const _0x413aa8=_0x1d92c9['join'](_0x344c6d,_0x51e378);!existsSync(_0x413aa8)&&(mkdirSync(_0x413aa8,{'recursive':!![]}),logInfoRaw('Created\x20folder:\x20'+_0x51e378));}logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x259355=process['argv']['slice'](-0x163*0x7+-0x13b7+0x1d6e*0x1);_0x259355['length']<-0x11e9+0x1221+-0x37*0x1&&(logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x97c*-0x2+-0x6*-0x257+0x4ef));const _0x3c5280=_0x259355[-0x1a*-0xbb+0xfe7+0x22e5*-0x1],_0x111678=_0x1d92c9['resolve'](process['cwd'](),_0x3c5280);logInfoRaw('\x0aCreating\x20'+projectName+'\x20project\x20\x22'+_0x3c5280+'\x22...\x0a');try{checkTargetFolder(_0x111678),createNextProject(_0x3c5280,_0x111678),await copyProjectFiles(_0x111678),await overridePackageJson(_0x111678),createAdditionalFolders(_0x111678),await createEnvFile(_0x111678),await updateLayoutTitle(_0x111678,_0x3c5280),logInfoRaw('\x0a'+projectName+'\x20project\x20\x22'+_0x3c5280+'\x22\x20is\x20ready!'),logInfoRaw('Next\x20steps:'),logInfoRaw('\x20\x20cd\x20'+_0x3c5280),logInfoRaw('\x20\x20npm\x20run\x20prod'),logInfoRaw('\x20\x20npm\x20start');}catch(_0x3e955e){const _0x50ba96=_0x3e955e instanceof Error?_0x3e955e['message']:'Unknown\x20error';logStringError('Error:'),logStringError(_0x50ba96),existsSync(_0x111678)&&(logInfoRaw('Cleaning\x20up...'),rmSync(_0x111678,{'recursive':!![],'force':!![]})),process['exit'](0x7a2+-0x1d1f+0x157e);}}__name(main,'main');async function updateLayoutTitle(_0x41187d,_0x24d5a2){const _0x4d6f45=_0x1d92c9['join'](_0x41187d,'src/app/layout.tsx');if(!existsSync(_0x4d6f45))throw createError('layout.tsx\x20not\x20found\x20at\x20'+_0x4d6f45+',\x20cannot\x20update\x20title.');let _0x4e655e=await promises['readFile'](_0x4d6f45,'utf8');const _0x158439=/"SaaS Kit"/g;if(!_0x158439['test'](_0x4e655e))throw createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x4e655e=_0x4e655e['replace'](_0x158439,'\x22'+_0x24d5a2+'\x22'),await promises['writeFile'](_0x4d6f45,_0x4e655e,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5041fc=>{const _0x5630ad=_0x5041fc instanceof Error?_0x5041fc['message']:'Unknown\x20error';logStringError('Unhandled\x20error:'),logStringError(_0x5630ad),process['exit'](0xf*0x4b+-0x122+-0x342);});
@@ -1,19 +0,0 @@
1
- 'use strict';
2
- 'use strict';
3
-
4
- var baseApi = require('./base-api.cjs.js');
5
- var apiPaths = require('./api-paths.cjs.js');
6
- var odatas = require('../odata/odatas.cjs.js');
7
- var tokens = require('../auth/tokens.cjs.js');
8
- var headerNames = require('../constants/header-names.cjs.js');
9
- var httpConstants = require('../http/http-constants.cjs.js');
10
-
11
- var __defProp=Object['defineProperty'],__name=(_0x275435,_0x39ccba)=>__defProp(_0x275435,'name',{'value':_0x39ccba,'configurable':!![]});async function apiGet(_0x5689f0,_0x35ae6e,_0x442ed1,_0x36a646){const _0x48b586=apiPaths.getApiPath(_0x5689f0,_0x35ae6e,_0x442ed1);return baseApi.apiBaseGet(_0x48b586,getApiHeaders(_0x36a646));}__name(apiGet,'apiGet');async function apiGetBlob(_0xbd9f36,_0x120130,_0x5f5112,_0x55d97c){const _0x93c0d3=apiPaths.getApiPath(_0xbd9f36,_0x120130,_0x5f5112);return baseApi.apiBaseGetBlob(_0x93c0d3,getApiHeaders(_0x55d97c,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x20efb5,_0x55824e,_0x5a0da5){const _0x20571c=odatas.getODataParams(_0x55824e);return apiGet(_0x20efb5,_0x5a0da5,_0x20571c);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x211f39,_0x295b49,_0xbddd36){const _0x5593e5=apiPaths.getApiPath(_0x211f39);return baseApi.postBaseApi(_0x5593e5,_0x295b49,getApiHeaders(_0xbddd36));}__name(apiPost,'apiPost');async function apiPostFile(_0x3d3d1e,_0x15e466,_0xfcd197){const _0x2eb488=apiPaths.getApiPath(_0x3d3d1e),_0x5e7f08=await fetch(_0x2eb488,{'method':httpConstants.httpMethods['post'],'body':_0x15e466,'headers':getApiHeaders(_0xfcd197,!![])});return baseApi.baseApiHandleResponse(_0x5e7f08);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x5d3544,_0x3a8778,_0x362c1f){const _0x26f10d=apiPaths.getApiPath(_0x5d3544);return baseApi.putBaseApi(_0x26f10d,_0x3a8778,getApiHeaders(_0x362c1f));}__name(apiPut,'apiPut');async function apiDelete(_0x223bf6,_0x47d482,_0x101d45){const _0x211d32=apiPaths.getApiPath(_0x223bf6,_0x47d482);return baseApi.deleteBaseApi(_0x211d32,getApiHeaders(_0x101d45));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x3edfc0,_0x305753=![]){const _0x5f085f=_0x3edfc0??new Headers(),_0x43a535=tokens.getAuthToken();return (!_0x5f085f['get'](headerNames.headerNames['authHeaderName'])||_0x5f085f['get'](headerNames.headerNames['authHeaderName'])==='')&&_0x43a535&&_0x5f085f['set'](headerNames.headerNames['authHeaderName'],headerNames.headerNames['authHeaderValuePrefix']+_0x43a535),!_0x305753&&!_0x5f085f['get'](headerNames.httpContentTypes['contentTypeHeaderName'])&&_0x5f085f['set'](headerNames.httpContentTypes['contentTypeHeaderName'],headerNames.httpContentTypes['contentTypeHeaderValue']),_0x5f085f;}__name(getApiHeaders,'getApiHeaders');
12
-
13
- exports.apiDelete = apiDelete;
14
- exports.apiGet = apiGet;
15
- exports.apiGetBlob = apiGetBlob;
16
- exports.apiGetWithOData = apiGetWithOData;
17
- exports.apiPost = apiPost;
18
- exports.apiPostFile = apiPostFile;
19
- exports.apiPut = apiPut;
@@ -1,11 +0,0 @@
1
- 'use strict';
2
- import { apiBaseGet, apiBaseGetBlob, postBaseApi, baseApiHandleResponse, putBaseApi, deleteBaseApi } from './base-api.js';
3
- import { getApiPath } from './api-paths.js';
4
- import { getODataParams } from '../odata/odatas.js';
5
- import { getAuthToken } from '../auth/tokens.js';
6
- import { headerNames, httpContentTypes } from '../constants/header-names.js';
7
- import { httpMethods } from '../http/http-constants.js';
8
-
9
- var __defProp=Object['defineProperty'],__name=(_0x275435,_0x39ccba)=>__defProp(_0x275435,'name',{'value':_0x39ccba,'configurable':!![]});async function apiGet(_0x5689f0,_0x35ae6e,_0x442ed1,_0x36a646){const _0x48b586=getApiPath(_0x5689f0,_0x35ae6e,_0x442ed1);return apiBaseGet(_0x48b586,getApiHeaders(_0x36a646));}__name(apiGet,'apiGet');async function apiGetBlob(_0xbd9f36,_0x120130,_0x5f5112,_0x55d97c){const _0x93c0d3=getApiPath(_0xbd9f36,_0x120130,_0x5f5112);return apiBaseGetBlob(_0x93c0d3,getApiHeaders(_0x55d97c,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x20efb5,_0x55824e,_0x5a0da5){const _0x20571c=getODataParams(_0x55824e);return apiGet(_0x20efb5,_0x5a0da5,_0x20571c);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x211f39,_0x295b49,_0xbddd36){const _0x5593e5=getApiPath(_0x211f39);return postBaseApi(_0x5593e5,_0x295b49,getApiHeaders(_0xbddd36));}__name(apiPost,'apiPost');async function apiPostFile(_0x3d3d1e,_0x15e466,_0xfcd197){const _0x2eb488=getApiPath(_0x3d3d1e),_0x5e7f08=await fetch(_0x2eb488,{'method':httpMethods['post'],'body':_0x15e466,'headers':getApiHeaders(_0xfcd197,!![])});return baseApiHandleResponse(_0x5e7f08);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x5d3544,_0x3a8778,_0x362c1f){const _0x26f10d=getApiPath(_0x5d3544);return putBaseApi(_0x26f10d,_0x3a8778,getApiHeaders(_0x362c1f));}__name(apiPut,'apiPut');async function apiDelete(_0x223bf6,_0x47d482,_0x101d45){const _0x211d32=getApiPath(_0x223bf6,_0x47d482);return deleteBaseApi(_0x211d32,getApiHeaders(_0x101d45));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x3edfc0,_0x305753=![]){const _0x5f085f=_0x3edfc0??new Headers(),_0x43a535=getAuthToken();return (!_0x5f085f['get'](headerNames['authHeaderName'])||_0x5f085f['get'](headerNames['authHeaderName'])==='')&&_0x43a535&&_0x5f085f['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x43a535),!_0x305753&&!_0x5f085f['get'](httpContentTypes['contentTypeHeaderName'])&&_0x5f085f['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeHeaderValue']),_0x5f085f;}__name(getApiHeaders,'getApiHeaders');
10
-
11
- export { apiDelete, apiGet, apiGetBlob, apiGetWithOData, apiPost, apiPostFile, apiPut };
@@ -1,9 +0,0 @@
1
- 'use strict';
2
- 'use strict';
3
-
4
- var urls = require('../http/url/urls.cjs.js');
5
- var paths = require('../routing/paths.cjs.js');
6
-
7
- var __defProp=Object['defineProperty'],__name=(_0xce768b,_0x22001d)=>__defProp(_0xce768b,'name',{'value':_0x22001d,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x20aac3,_0x35610a,_0x3eee99){let _0x1cdd76=urls.combineEndpointPath(apiPrefix,_0x20aac3);return _0x35610a&&(_0x1cdd76=urls.combineEndpointPath(_0x1cdd76,_0x35610a)),_0x1cdd76=paths.addQueryParamsToPath(_0x1cdd76,_0x3eee99),new URL(_0x1cdd76,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
8
-
9
- exports.getApiPath = getApiPath;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
- import { combineEndpointPath } from '../http/url/urls.js';
3
- import { addQueryParamsToPath } from '../routing/paths.js';
4
-
5
- var __defProp=Object['defineProperty'],__name=(_0xce768b,_0x22001d)=>__defProp(_0xce768b,'name',{'value':_0x22001d,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x20aac3,_0x35610a,_0x3eee99){let _0x1cdd76=combineEndpointPath(apiPrefix,_0x20aac3);return _0x35610a&&(_0x1cdd76=combineEndpointPath(_0x1cdd76,_0x35610a)),_0x1cdd76=addQueryParamsToPath(_0x1cdd76,_0x3eee99),new URL(_0x1cdd76,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
6
-
7
- export { getApiPath };
@@ -1,22 +0,0 @@
1
- 'use strict';
2
- 'use strict';
3
-
4
- var errorHandler = require('../errors/error-handler.cjs.js');
5
- var httpConstants = require('../http/http-constants.cjs.js');
6
- var problemDetails = require('../errors/problem-details.cjs.js');
7
- var httpStatusCodes = require('../constants/http-status-codes.cjs.js');
8
- var loginRouters = require('../routing/login-routers.cjs.js');
9
- var loginStates = require('../auth/login-states.cjs.js');
10
- var environments = require('../lib/environments.cjs.js');
11
- var utils = require('../lib/utils.cjs.js');
12
-
13
- var __defProp=Object['defineProperty'],__name=(_0x19066c,_0x398907)=>__defProp(_0x19066c,'name',{'value':_0x398907,'configurable':!![]});async function apiBaseGet(_0x4907df,_0x29522e){const _0x5ccf02=await fetch(_0x4907df,{'method':httpConstants.httpMethods['get'],'headers':_0x29522e});return baseApiHandleResponse(_0x5ccf02);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x423617,_0x131b5a){const _0x1b100d=await fetch(_0x423617,{'method':httpConstants.httpMethods['get'],'headers':_0x131b5a});return baseApiHandleBlobResponse(_0x1b100d);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x4db24b,_0xf9aafa,_0x4ea8b6){const _0x5661d3=await fetch(_0x4db24b,{'method':httpConstants.httpMethods['post'],'headers':_0x4ea8b6,'body':_0xf9aafa instanceof URLSearchParams?_0xf9aafa:JSON['stringify'](_0xf9aafa)});return baseApiHandleResponse(_0x5661d3);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x51adcd,_0x58cf19,_0x20eeab){const _0x56aa73=await fetch(_0x51adcd,{'method':httpConstants.httpMethods['put'],'headers':_0x20eeab,'body':JSON['stringify'](_0x58cf19)});return baseApiHandleResponse(_0x56aa73);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x1fcf92,_0x29ed42){const _0x2f54da=await fetch(_0x1fcf92,{'method':httpConstants.httpMethods['delete'],'headers':_0x29ed42});if(!_0x2f54da['ok'])handleErrorResponse(_0x2f54da);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x3ea44e){const _0x21da44=_0x3ea44e['headers']['get']('content-type'),_0x2f7373=_0x21da44?.['includes']('application/json');isUnauthorizedError(_0x3ea44e['status'])&&(loginStates.removeLoginState(),loginRouters.goToLogin());if(!_0x3ea44e['ok'])return handleErrorResponse(_0x3ea44e);if(_0x3ea44e['status']===httpStatusCodes.httpStatusCodes['noContent']||!_0x2f7373)return null;return utils.getJsonFromResponse(_0x3ea44e);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x11da5e){isUnauthorizedError(_0x11da5e['status'])&&loginRouters.goToLogin();if(!_0x11da5e['ok']){const _0x493ee7=await handleErrorResponse(_0x11da5e);return _0x493ee7;}if(_0x11da5e['status']===httpStatusCodes.httpStatusCodes['noContent'])return null;const _0x326dd1=await _0x11da5e['blob']();return _0x326dd1;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x476b32){const _0x1acf5a=_0x476b32['headers']['get']('content-type'),_0x1fee28=_0x1acf5a?.['includes']('application/json');let _0x52f0c8='',_0x539a8c='';if(_0x1fee28){const _0x473be0=await utils.getJsonFromResponse(_0x476b32);_0x52f0c8=_0x473be0?.['message'],_0x539a8c=_0x473be0?.['description']||'';}_0x52f0c8=_0x52f0c8?_0x52f0c8:_0x476b32['statusText'];const _0x19b50d={'status':_0x476b32['status'],'message':_0x52f0c8},_0x6e61ea={'originalUrl':_0x476b32['url']};return _0x476b32['status']!==httpStatusCodes.httpStatusCodes['unauthorized']&&errorHandler.logAndNotify(new Error(_0x52f0c8)),problemDetails.getProblemDetails(_0x19b50d,_0x6e61ea,_0x539a8c);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x58a079){return _0x58a079===httpStatusCodes.httpStatusCodes['unauthorized']&&environments.isBrowser()&&window['location']['pathname']!==loginRouters.getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
14
-
15
- exports.apiBaseGet = apiBaseGet;
16
- exports.apiBaseGetBlob = apiBaseGetBlob;
17
- exports.baseApiHandleBlobResponse = baseApiHandleBlobResponse;
18
- exports.baseApiHandleResponse = baseApiHandleResponse;
19
- exports.deleteBaseApi = deleteBaseApi;
20
- exports.handleErrorResponse = handleErrorResponse;
21
- exports.postBaseApi = postBaseApi;
22
- exports.putBaseApi = putBaseApi;
@@ -1,13 +0,0 @@
1
- 'use strict';
2
- import { logAndNotify } from '../errors/error-handler.js';
3
- import { httpMethods } from '../http/http-constants.js';
4
- import { getProblemDetails } from '../errors/problem-details.js';
5
- import { httpStatusCodes } from '../constants/http-status-codes.js';
6
- import { goToLogin, getRelativeLoginUrl } from '../routing/login-routers.js';
7
- import { removeLoginState } from '../auth/login-states.js';
8
- import { isBrowser } from '../lib/environments.js';
9
- import { getJsonFromResponse } from '../lib/utils.js';
10
-
11
- var __defProp=Object['defineProperty'],__name=(_0x19066c,_0x398907)=>__defProp(_0x19066c,'name',{'value':_0x398907,'configurable':!![]});async function apiBaseGet(_0x4907df,_0x29522e){const _0x5ccf02=await fetch(_0x4907df,{'method':httpMethods['get'],'headers':_0x29522e});return baseApiHandleResponse(_0x5ccf02);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x423617,_0x131b5a){const _0x1b100d=await fetch(_0x423617,{'method':httpMethods['get'],'headers':_0x131b5a});return baseApiHandleBlobResponse(_0x1b100d);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x4db24b,_0xf9aafa,_0x4ea8b6){const _0x5661d3=await fetch(_0x4db24b,{'method':httpMethods['post'],'headers':_0x4ea8b6,'body':_0xf9aafa instanceof URLSearchParams?_0xf9aafa:JSON['stringify'](_0xf9aafa)});return baseApiHandleResponse(_0x5661d3);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x51adcd,_0x58cf19,_0x20eeab){const _0x56aa73=await fetch(_0x51adcd,{'method':httpMethods['put'],'headers':_0x20eeab,'body':JSON['stringify'](_0x58cf19)});return baseApiHandleResponse(_0x56aa73);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x1fcf92,_0x29ed42){const _0x2f54da=await fetch(_0x1fcf92,{'method':httpMethods['delete'],'headers':_0x29ed42});if(!_0x2f54da['ok'])handleErrorResponse(_0x2f54da);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x3ea44e){const _0x21da44=_0x3ea44e['headers']['get']('content-type'),_0x2f7373=_0x21da44?.['includes']('application/json');isUnauthorizedError(_0x3ea44e['status'])&&(removeLoginState(),goToLogin());if(!_0x3ea44e['ok'])return handleErrorResponse(_0x3ea44e);if(_0x3ea44e['status']===httpStatusCodes['noContent']||!_0x2f7373)return null;return getJsonFromResponse(_0x3ea44e);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x11da5e){isUnauthorizedError(_0x11da5e['status'])&&goToLogin();if(!_0x11da5e['ok']){const _0x493ee7=await handleErrorResponse(_0x11da5e);return _0x493ee7;}if(_0x11da5e['status']===httpStatusCodes['noContent'])return null;const _0x326dd1=await _0x11da5e['blob']();return _0x326dd1;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x476b32){const _0x1acf5a=_0x476b32['headers']['get']('content-type'),_0x1fee28=_0x1acf5a?.['includes']('application/json');let _0x52f0c8='',_0x539a8c='';if(_0x1fee28){const _0x473be0=await getJsonFromResponse(_0x476b32);_0x52f0c8=_0x473be0?.['message'],_0x539a8c=_0x473be0?.['description']||'';}_0x52f0c8=_0x52f0c8?_0x52f0c8:_0x476b32['statusText'];const _0x19b50d={'status':_0x476b32['status'],'message':_0x52f0c8},_0x6e61ea={'originalUrl':_0x476b32['url']};return _0x476b32['status']!==httpStatusCodes['unauthorized']&&logAndNotify(new Error(_0x52f0c8)),getProblemDetails(_0x19b50d,_0x6e61ea,_0x539a8c);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x58a079){return _0x58a079===httpStatusCodes['unauthorized']&&isBrowser()&&window['location']['pathname']!==getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
12
-
13
- export { apiBaseGet, apiBaseGetBlob, baseApiHandleBlobResponse, baseApiHandleResponse, deleteBaseApi, handleErrorResponse, postBaseApi, putBaseApi };
@@ -1,12 +0,0 @@
1
- 'use strict';
2
- 'use strict';
3
-
4
- var environments = require('../lib/environments.cjs.js');
5
- var utils = require('../lib/utils.cjs.js');
6
-
7
- var __defProp=Object['defineProperty'],__name=(_0x12c7b8,_0x5e87e2)=>__defProp(_0x12c7b8,'name',{'value':_0x5e87e2,'configurable':!![]});function sessionStorageGetAsString(_0x5091e8){if(environments.isBrowser()){const _0x1d86b5=sessionStorage['getItem'](_0x5091e8);return _0x1d86b5??void(-0x2435+-0x1*-0x1c71+0x7c4);}return void(-0x4a4+-0xa58+0xefc);}__name(sessionStorageGetAsString,'sessionStorageGetAsString');function getSessionStorage(_0x3442a8){const _0x11d70b=sessionStorageGetAsString(_0x3442a8);return _0x11d70b?utils.parseJson(_0x11d70b):void(-0x76*-0x38+0x1323+-0x2cf3);}__name(getSessionStorage,'getSessionStorage');function setSessionStorage(_0x623239,_0x4218d1){if(_0x4218d1===void(-0x2489*-0x1+0x25a8+0x4a31*-0x1))return;sessionStorage['setItem'](_0x623239,JSON['stringify'](_0x4218d1));}__name(setSessionStorage,'setSessionStorage');function removeSessionStorage(_0xc9e56){sessionStorage['removeItem'](_0xc9e56);}__name(removeSessionStorage,'removeSessionStorage');
8
-
9
- exports.getSessionStorage = getSessionStorage;
10
- exports.removeSessionStorage = removeSessionStorage;
11
- exports.sessionStorageGetAsString = sessionStorageGetAsString;
12
- exports.setSessionStorage = setSessionStorage;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
- import { isBrowser } from '../lib/environments.js';
3
- import { parseJson } from '../lib/utils.js';
4
-
5
- var __defProp=Object['defineProperty'],__name=(_0x12c7b8,_0x5e87e2)=>__defProp(_0x12c7b8,'name',{'value':_0x5e87e2,'configurable':!![]});function sessionStorageGetAsString(_0x5091e8){if(isBrowser()){const _0x1d86b5=sessionStorage['getItem'](_0x5091e8);return _0x1d86b5??void(-0x2435+-0x1*-0x1c71+0x7c4);}return void(-0x4a4+-0xa58+0xefc);}__name(sessionStorageGetAsString,'sessionStorageGetAsString');function getSessionStorage(_0x3442a8){const _0x11d70b=sessionStorageGetAsString(_0x3442a8);return _0x11d70b?parseJson(_0x11d70b):void(-0x76*-0x38+0x1323+-0x2cf3);}__name(getSessionStorage,'getSessionStorage');function setSessionStorage(_0x623239,_0x4218d1){if(_0x4218d1===void(-0x2489*-0x1+0x25a8+0x4a31*-0x1))return;sessionStorage['setItem'](_0x623239,JSON['stringify'](_0x4218d1));}__name(setSessionStorage,'setSessionStorage');function removeSessionStorage(_0xc9e56){sessionStorage['removeItem'](_0xc9e56);}__name(removeSessionStorage,'removeSessionStorage');
6
-
7
- export { getSessionStorage, removeSessionStorage, sessionStorageGetAsString, setSessionStorage };
@@ -1,4 +0,0 @@
1
- 'use strict';
2
- const emptyGuid='00000000-0000-0000-0000-000000000000';const minHintPriorityValue=-0x257f*-0x1+0x3bc*-0x9+-0xe*0x47;const englishLanguageCode='en-US';const emptySelectValue='empty';const emptySelectIndex=0x4b*0x8+0x10d*0xb+0x1*-0xde7;const fieldValuesSeparator=',\x20';const noName='No\x20name';const projectName='SaaS\x20Kit';
3
-
4
- export { emptyGuid, emptySelectIndex, emptySelectValue, englishLanguageCode, fieldValuesSeparator, minHintPriorityValue, noName, projectName };