@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
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var enums = require('../enums/enums.cjs.js');
5
+ var strings = require('../strings/strings.cjs.js');
6
+ var odataFilters = require('./services/odata-filters.cjs.js');
7
+ var odataEnums = require('./odata-enums.cjs.js');
8
+
9
+ var __defProp=Object['defineProperty'],__name=(_0x16bd5b,_0x112248)=>__defProp(_0x16bd5b,'name',{'value':_0x112248,'configurable':!![]});function getODataParams(_0x41419c){let _0xd90978=getFilters(_0x41419c);_0x41419c['skip']&&_0xd90978['push']({'name':'skip','value':_0x41419c['skip']['toString']()});_0x41419c['top']&&_0xd90978['push']({'name':'top','value':_0x41419c['top']['toString']()});_0x41419c['count']&&_0xd90978['push']({'name':'count','value':'true'});_0x41419c['orderBys']&&_0x41419c['orderBys']['length']>0x2514+0x62f+-0x2b43&&_0x41419c['orderBys']['forEach'](_0xc8c521=>{_0xd90978['push']({'name':'orderby','value':getColumnNameAndDirectionForOrderBy(_0xc8c521['propertyName'],_0xc8c521['direction'])});});if(_0x41419c['selects']?.['length']||_0x41419c['select']?.['length'])configureSelectOData(_0x41419c,_0xd90978);else _0x41419c['expands']&&configureExpandOData(_0x41419c,_0xd90978);return _0xd90978;}__name(getODataParams,'getODataParams');function getFilters(_0x21353b){let _0x1c949d=[];if(_0x21353b['filters']&&_0x21353b['filters']['length']>0x12a7+0x9d5*0x2+-0x2651){let _0x5e7b60={'name':'filter','value':''},_0xe5c594=_0x21353b['filters']['length'];for(let _0x32587c=0x10b5+-0x1*0x159b+0x4e6;_0x32587c<_0xe5c594;_0x32587c++){let _0x1a7b04=odataFilters.getODataFilterAsString(_0x21353b['filters'][_0x32587c]);_0x32587c>0x970+-0x3*0x8a8+0x1088?_0x21353b['filters'][_0x32587c]['logicalOperationType']===odataEnums.oDataLogicalOperationTypes['or']?_0x5e7b60['value']+='\x20or\x20'+_0x1a7b04:_0x5e7b60['value']+='\x20and\x20'+_0x1a7b04:_0x5e7b60['value']+=_0x1a7b04;}_0x1c949d['push'](_0x5e7b60);}return _0x1c949d;}__name(getFilters,'getFilters');function getColumnNameAndDirectionForOrderBy(_0x386579,_0x509a85){return _0x386579+'\x20'+(_0x509a85===enums.oDataOrderByDirectionConsts['desc']?'desc':'asc');}__name(getColumnNameAndDirectionForOrderBy,'getColumnNameAndDirectionForOrderBy');function configureExpandOData(_0x186d37,_0x3b8128){if(_0x186d37['expands']&&_0x186d37['expands']['length']>-0x37c*0x7+-0x1*-0x6f3+-0x2f*-0x5f){let _0x4108dc='';for(let _0x5d7633 of _0x186d37['expands']){_0x4108dc+=_0x5d7633+',';}_0x4108dc=strings.trimCharacter(_0x4108dc,','),_0x3b8128['push']({'name':'expand','value':_0x4108dc});}}__name(configureExpandOData,'configureExpandOData');function configureSelectOData(_0x565486,_0x300709){if(_0x565486['select']&&_0x565486['select']['length']>-0x1*0x1f7+-0xb*0x1cd+0x15c6){let _0x577125='';for(let _0x46b728 of _0x565486['select']){_0x577125+=_0x46b728+',';}_0x577125=strings.trimCharacter(_0x577125,','),_0x300709['push']({'name':'select','value':_0x577125});}}__name(configureSelectOData,'configureSelectOData');
10
+
11
+ exports.getODataParams = getODataParams;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ import { oDataOrderByDirectionConsts } from '../enums/enums.js';
3
+ import { trimCharacter } from '../strings/strings.js';
4
+ import { getODataFilterAsString } from './services/odata-filters.js';
5
+ import { oDataLogicalOperationTypes } from './odata-enums.js';
6
+
7
+ var __defProp=Object['defineProperty'],__name=(_0x16bd5b,_0x112248)=>__defProp(_0x16bd5b,'name',{'value':_0x112248,'configurable':!![]});function getODataParams(_0x41419c){let _0xd90978=getFilters(_0x41419c);_0x41419c['skip']&&_0xd90978['push']({'name':'skip','value':_0x41419c['skip']['toString']()});_0x41419c['top']&&_0xd90978['push']({'name':'top','value':_0x41419c['top']['toString']()});_0x41419c['count']&&_0xd90978['push']({'name':'count','value':'true'});_0x41419c['orderBys']&&_0x41419c['orderBys']['length']>0x2514+0x62f+-0x2b43&&_0x41419c['orderBys']['forEach'](_0xc8c521=>{_0xd90978['push']({'name':'orderby','value':getColumnNameAndDirectionForOrderBy(_0xc8c521['propertyName'],_0xc8c521['direction'])});});if(_0x41419c['selects']?.['length']||_0x41419c['select']?.['length'])configureSelectOData(_0x41419c,_0xd90978);else _0x41419c['expands']&&configureExpandOData(_0x41419c,_0xd90978);return _0xd90978;}__name(getODataParams,'getODataParams');function getFilters(_0x21353b){let _0x1c949d=[];if(_0x21353b['filters']&&_0x21353b['filters']['length']>0x12a7+0x9d5*0x2+-0x2651){let _0x5e7b60={'name':'filter','value':''},_0xe5c594=_0x21353b['filters']['length'];for(let _0x32587c=0x10b5+-0x1*0x159b+0x4e6;_0x32587c<_0xe5c594;_0x32587c++){let _0x1a7b04=getODataFilterAsString(_0x21353b['filters'][_0x32587c]);_0x32587c>0x970+-0x3*0x8a8+0x1088?_0x21353b['filters'][_0x32587c]['logicalOperationType']===oDataLogicalOperationTypes['or']?_0x5e7b60['value']+='\x20or\x20'+_0x1a7b04:_0x5e7b60['value']+='\x20and\x20'+_0x1a7b04:_0x5e7b60['value']+=_0x1a7b04;}_0x1c949d['push'](_0x5e7b60);}return _0x1c949d;}__name(getFilters,'getFilters');function getColumnNameAndDirectionForOrderBy(_0x386579,_0x509a85){return _0x386579+'\x20'+(_0x509a85===oDataOrderByDirectionConsts['desc']?'desc':'asc');}__name(getColumnNameAndDirectionForOrderBy,'getColumnNameAndDirectionForOrderBy');function configureExpandOData(_0x186d37,_0x3b8128){if(_0x186d37['expands']&&_0x186d37['expands']['length']>-0x37c*0x7+-0x1*-0x6f3+-0x2f*-0x5f){let _0x4108dc='';for(let _0x5d7633 of _0x186d37['expands']){_0x4108dc+=_0x5d7633+',';}_0x4108dc=trimCharacter(_0x4108dc,','),_0x3b8128['push']({'name':'expand','value':_0x4108dc});}}__name(configureExpandOData,'configureExpandOData');function configureSelectOData(_0x565486,_0x300709){if(_0x565486['select']&&_0x565486['select']['length']>-0x1*0x1f7+-0xb*0x1cd+0x15c6){let _0x577125='';for(let _0x46b728 of _0x565486['select']){_0x577125+=_0x46b728+',';}_0x577125=trimCharacter(_0x577125,','),_0x300709['push']({'name':'select','value':_0x577125});}}__name(configureSelectOData,'configureSelectOData');
8
+
9
+ export { getODataParams };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var enums = require('../../enums/enums.cjs.js');
5
+ var odataConstants = require('../odata-constants.cjs.js');
6
+ var errors = require('../../errors/errors.cjs.js');
7
+ var odataEnums = require('../odata-enums.cjs.js');
8
+
9
+ var __defProp=Object['defineProperty'],__name=(_0x13bc57,_0x2871b1)=>__defProp(_0x13bc57,'name',{'value':_0x2871b1,'configurable':!![]});function getODataFilterAsString(_0x5aa38f){_0x5aa38f['operator']??=enums.oDataOperators['equal'];if(_0x5aa38f['type']===void(-0x22b7+-0x2278+0x452f*0x1)||_0x5aa38f['type']===odataEnums.oDataFilterTypes['default']){if(typeof _0x5aa38f['rightSide']==='number')_0x5aa38f['type']=odataEnums.oDataFilterTypes['number'];else {if(typeof _0x5aa38f['rightSide']==='boolean'||typeof _0x5aa38f['rightSide']==='string')_0x5aa38f['type']=odataEnums.oDataFilterTypes['string'];else _0x5aa38f['rightSide']instanceof Date?_0x5aa38f['type']=odataEnums.oDataFilterTypes['date']:_0x5aa38f['type']=odataEnums.oDataFilterTypes['string'];}}return typeof _0x5aa38f['rightSide']==='string'&&!isNaN(Number(_0x5aa38f['rightSide']))&&(_0x5aa38f['rightSide']=Number(_0x5aa38f['rightSide'])),getFilterString(_0x5aa38f);}__name(getODataFilterAsString,'getODataFilterAsString');function getFilterString(_0x3317d9){switch(_0x3317d9['operator']){case enums.oDataOperators['in']:return handleInOperator(_0x3317d9);case enums.oDataOperators['nin']:return handleInOperator(_0x3317d9);case enums.oDataOperators['empty']:return '';case enums.oDataOperators['startsWith']:return handleStartsWithOperator(_0x3317d9);default:return handleDefaultOperators(_0x3317d9);}}__name(getFilterString,'getFilterString');function handleInOperator(_0xfbc439){if(_0xfbc439['type']===odataEnums.oDataFilterTypes['guid']){let _0x264537=oDataFormatGuid(_0xfbc439['rightSide']);return _0xfbc439['leftSide']+'\x20'+_0xfbc439['operator']+'\x20('+_0x264537+')';}return _0xfbc439['leftSide']+'\x20'+_0xfbc439['operator']+'\x20('+_0xfbc439['rightSide']+')';}__name(handleInOperator,'handleInOperator');function handleStartsWithOperator(_0x4a0355){return _0x4a0355['operator']+'('+_0x4a0355['leftSide']+',\x20'+_0x4a0355['rightSide']+')';}__name(handleStartsWithOperator,'handleStartsWithOperator');function handleDefaultOperators(_0x59000c){switch(_0x59000c['type']){case odataEnums.oDataFilterTypes['string']:return handleStringFilter(_0x59000c);case odataEnums.oDataFilterTypes['date']:return handleDateFilter(_0x59000c);case odataEnums.oDataFilterTypes['guid']:return handleGuidFilter(_0x59000c);case odataEnums.oDataFilterTypes['number']:return handleNumberFilter(_0x59000c);case odataEnums.oDataFilterTypes['lambda']:return handleLambdaFilter(_0x59000c);default:throw errors.createError('Unsupported\x20filter\x20type:\x20'+_0x59000c['type']);}}__name(handleDefaultOperators,'handleDefaultOperators');function handleStringFilter(_0x56c75e){if(_0x56c75e['rightSide']===odataConstants.oDataNullValue)return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20'+_0x56c75e['rightSide'];if(typeof _0x56c75e['rightSide']==='string')return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20\x27'+_0x56c75e['rightSide']+'\x27';return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20'+_0x56c75e['rightSide'];}__name(handleStringFilter,'handleStringFilter');function handleDateFilter(_0x9e661a){return _0x9e661a['leftSide']+'\x20'+_0x9e661a['operator']+'\x20datetime\x27'+_0x9e661a['rightSide']+'\x27';}__name(handleDateFilter,'handleDateFilter');function handleGuidFilter(_0x321082){return _0x321082['leftSide']+'\x20'+_0x321082['operator']+'\x20guid\x27'+_0x321082['rightSide']+'\x27';}__name(handleGuidFilter,'handleGuidFilter');function handleNumberFilter(_0x2dae08){return _0x2dae08['leftSide']+'\x20'+_0x2dae08['operator']+'\x20'+_0x2dae08['rightSide'];}__name(handleNumberFilter,'handleNumberFilter');function handleLambdaFilter(_0x40e6c1){const _0x22dd50=_0x40e6c1['lambdaConfig'];if(!_0x22dd50)throw errors.createError('Lambda\x20configuration\x20is\x20missing');return _0x22dd50['baseEnumerablePropertyName']+'/'+_0x22dd50['method']+'(i:i/'+_0x40e6c1['leftSide']+'\x20'+_0x40e6c1['operator']+'\x20guid\x27'+_0x40e6c1['rightSide']+'\x27)';}__name(handleLambdaFilter,'handleLambdaFilter');function oDataFormatGuid(_0x35df0d){let _0x4db485;if(typeof _0x35df0d==='string')_0x4db485=''+_0x35df0d;else Array['isArray'](_0x35df0d)&&(_0x4db485=_0x35df0d['map'](_0x2a0dcc=>'guid\x27'+_0x2a0dcc+'\x27')['join'](','));return _0x4db485;}__name(oDataFormatGuid,'oDataFormatGuid');
10
+
11
+ exports.getODataFilterAsString = getODataFilterAsString;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ import { oDataOperators } from '../../enums/enums.js';
3
+ import { oDataNullValue } from '../odata-constants.js';
4
+ import { createError } from '../../errors/errors.js';
5
+ import { oDataFilterTypes } from '../odata-enums.js';
6
+
7
+ var __defProp=Object['defineProperty'],__name=(_0x13bc57,_0x2871b1)=>__defProp(_0x13bc57,'name',{'value':_0x2871b1,'configurable':!![]});function getODataFilterAsString(_0x5aa38f){_0x5aa38f['operator']??=oDataOperators['equal'];if(_0x5aa38f['type']===void(-0x22b7+-0x2278+0x452f*0x1)||_0x5aa38f['type']===oDataFilterTypes['default']){if(typeof _0x5aa38f['rightSide']==='number')_0x5aa38f['type']=oDataFilterTypes['number'];else {if(typeof _0x5aa38f['rightSide']==='boolean'||typeof _0x5aa38f['rightSide']==='string')_0x5aa38f['type']=oDataFilterTypes['string'];else _0x5aa38f['rightSide']instanceof Date?_0x5aa38f['type']=oDataFilterTypes['date']:_0x5aa38f['type']=oDataFilterTypes['string'];}}return typeof _0x5aa38f['rightSide']==='string'&&!isNaN(Number(_0x5aa38f['rightSide']))&&(_0x5aa38f['rightSide']=Number(_0x5aa38f['rightSide'])),getFilterString(_0x5aa38f);}__name(getODataFilterAsString,'getODataFilterAsString');function getFilterString(_0x3317d9){switch(_0x3317d9['operator']){case oDataOperators['in']:return handleInOperator(_0x3317d9);case oDataOperators['nin']:return handleInOperator(_0x3317d9);case oDataOperators['empty']:return '';case oDataOperators['startsWith']:return handleStartsWithOperator(_0x3317d9);default:return handleDefaultOperators(_0x3317d9);}}__name(getFilterString,'getFilterString');function handleInOperator(_0xfbc439){if(_0xfbc439['type']===oDataFilterTypes['guid']){let _0x264537=oDataFormatGuid(_0xfbc439['rightSide']);return _0xfbc439['leftSide']+'\x20'+_0xfbc439['operator']+'\x20('+_0x264537+')';}return _0xfbc439['leftSide']+'\x20'+_0xfbc439['operator']+'\x20('+_0xfbc439['rightSide']+')';}__name(handleInOperator,'handleInOperator');function handleStartsWithOperator(_0x4a0355){return _0x4a0355['operator']+'('+_0x4a0355['leftSide']+',\x20'+_0x4a0355['rightSide']+')';}__name(handleStartsWithOperator,'handleStartsWithOperator');function handleDefaultOperators(_0x59000c){switch(_0x59000c['type']){case oDataFilterTypes['string']:return handleStringFilter(_0x59000c);case oDataFilterTypes['date']:return handleDateFilter(_0x59000c);case oDataFilterTypes['guid']:return handleGuidFilter(_0x59000c);case oDataFilterTypes['number']:return handleNumberFilter(_0x59000c);case oDataFilterTypes['lambda']:return handleLambdaFilter(_0x59000c);default:throw createError('Unsupported\x20filter\x20type:\x20'+_0x59000c['type']);}}__name(handleDefaultOperators,'handleDefaultOperators');function handleStringFilter(_0x56c75e){if(_0x56c75e['rightSide']===oDataNullValue)return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20'+_0x56c75e['rightSide'];if(typeof _0x56c75e['rightSide']==='string')return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20\x27'+_0x56c75e['rightSide']+'\x27';return _0x56c75e['leftSide']+'\x20'+_0x56c75e['operator']+'\x20'+_0x56c75e['rightSide'];}__name(handleStringFilter,'handleStringFilter');function handleDateFilter(_0x9e661a){return _0x9e661a['leftSide']+'\x20'+_0x9e661a['operator']+'\x20datetime\x27'+_0x9e661a['rightSide']+'\x27';}__name(handleDateFilter,'handleDateFilter');function handleGuidFilter(_0x321082){return _0x321082['leftSide']+'\x20'+_0x321082['operator']+'\x20guid\x27'+_0x321082['rightSide']+'\x27';}__name(handleGuidFilter,'handleGuidFilter');function handleNumberFilter(_0x2dae08){return _0x2dae08['leftSide']+'\x20'+_0x2dae08['operator']+'\x20'+_0x2dae08['rightSide'];}__name(handleNumberFilter,'handleNumberFilter');function handleLambdaFilter(_0x40e6c1){const _0x22dd50=_0x40e6c1['lambdaConfig'];if(!_0x22dd50)throw createError('Lambda\x20configuration\x20is\x20missing');return _0x22dd50['baseEnumerablePropertyName']+'/'+_0x22dd50['method']+'(i:i/'+_0x40e6c1['leftSide']+'\x20'+_0x40e6c1['operator']+'\x20guid\x27'+_0x40e6c1['rightSide']+'\x27)';}__name(handleLambdaFilter,'handleLambdaFilter');function oDataFormatGuid(_0x35df0d){let _0x4db485;if(typeof _0x35df0d==='string')_0x4db485=''+_0x35df0d;else Array['isArray'](_0x35df0d)&&(_0x4db485=_0x35df0d['map'](_0x2a0dcc=>'guid\x27'+_0x2a0dcc+'\x27')['join'](','));return _0x4db485;}__name(oDataFormatGuid,'oDataFormatGuid');
8
+
9
+ export { getODataFilterAsString };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var _0x3a74e9 = require('path');
5
+
6
+ var __defProp=Object['defineProperty'],__name=(_0x37a645,_0x40607b)=>__defProp(_0x37a645,'name',{'value':_0x40607b,'configurable':!![]});function getFileNameWithExtension(_0x5e9862,_0x36bff1){if(!_0x36bff1['startsWith']('.'))return _0x5e9862+'.'+_0x36bff1;return _0x5e9862+_0x36bff1;}__name(getFileNameWithExtension,'getFileNameWithExtension');function getFullFilePath(_0x3f4a44,_0x4ffa64,..._0x343f68){const _0x4fd758=getFileNameWithExtension(_0x3f4a44,_0x4ffa64);return _0x3a74e9.join(..._0x343f68,_0x4fd758);}__name(getFullFilePath,'getFullFilePath');
7
+
8
+ exports.getFileNameWithExtension = getFileNameWithExtension;
9
+ exports.getFullFilePath = getFullFilePath;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ import { join } from 'path';
3
+
4
+ var __defProp=Object['defineProperty'],__name=(_0x37a645,_0x40607b)=>__defProp(_0x37a645,'name',{'value':_0x40607b,'configurable':!![]});function getFileNameWithExtension(_0x5e9862,_0x36bff1){if(!_0x36bff1['startsWith']('.'))return _0x5e9862+'.'+_0x36bff1;return _0x5e9862+_0x36bff1;}__name(getFileNameWithExtension,'getFileNameWithExtension');function getFullFilePath(_0x3f4a44,_0x4ffa64,..._0x343f68){const _0x4fd758=getFileNameWithExtension(_0x3f4a44,_0x4ffa64);return join(..._0x343f68,_0x4fd758);}__name(getFullFilePath,'getFullFilePath');
5
+
6
+ export { getFileNameWithExtension, getFullFilePath };
@@ -3,7 +3,7 @@
3
3
 
4
4
  var routes = require('./routes.cjs.js');
5
5
 
6
- var __defProp=Object['defineProperty'],__name=(_0x5e85b9,_0x10a9d8)=>__defProp(_0x5e85b9,'name',{'value':_0x10a9d8,'configurable':!![]});function getRelativeLoginUrl(){return '/'+routes.routes['login'];}__name(getRelativeLoginUrl,'getRelativeLoginUrl');function getLoginUrl(){return window['location']['origin']+getRelativeLoginUrl();}__name(getLoginUrl,'getLoginUrl');function goToLogin(){window['location']['href']=getRelativeLoginUrl();}__name(goToLogin,'goToLogin');
6
+ var __defProp=Object['defineProperty'],__name=(_0x42a7cb,_0x2add0d)=>__defProp(_0x42a7cb,'name',{'value':_0x2add0d,'configurable':!![]});function getRelativeLoginUrl(){return '/'+routes.routes['login'];}__name(getRelativeLoginUrl,'getRelativeLoginUrl');function getLoginUrl(){return window['location']['origin']+getRelativeLoginUrl();}__name(getLoginUrl,'getLoginUrl');function goToLogin(){window['location']['href']=getRelativeLoginUrl();}__name(goToLogin,'goToLogin');
7
7
 
8
8
  exports.getLoginUrl = getLoginUrl;
9
9
  exports.getRelativeLoginUrl = getRelativeLoginUrl;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  import { routes } from './routes.js';
3
3
 
4
- var __defProp=Object['defineProperty'],__name=(_0x5e85b9,_0x10a9d8)=>__defProp(_0x5e85b9,'name',{'value':_0x10a9d8,'configurable':!![]});function getRelativeLoginUrl(){return '/'+routes['login'];}__name(getRelativeLoginUrl,'getRelativeLoginUrl');function getLoginUrl(){return window['location']['origin']+getRelativeLoginUrl();}__name(getLoginUrl,'getLoginUrl');function goToLogin(){window['location']['href']=getRelativeLoginUrl();}__name(goToLogin,'goToLogin');
4
+ var __defProp=Object['defineProperty'],__name=(_0x42a7cb,_0x2add0d)=>__defProp(_0x42a7cb,'name',{'value':_0x2add0d,'configurable':!![]});function getRelativeLoginUrl(){return '/'+routes['login'];}__name(getRelativeLoginUrl,'getRelativeLoginUrl');function getLoginUrl(){return window['location']['origin']+getRelativeLoginUrl();}__name(getLoginUrl,'getLoginUrl');function goToLogin(){window['location']['href']=getRelativeLoginUrl();}__name(goToLogin,'goToLogin');
5
5
 
6
6
  export { getLoginUrl, getRelativeLoginUrl, goToLogin };
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var utils = require('../lib/utils.cjs.js');
5
+
6
+ var __defProp=Object['defineProperty'],__name=(_0x4f54b4,_0x5aaf94)=>__defProp(_0x4f54b4,'name',{'value':_0x5aaf94,'configurable':!![]});function addQueryParamsToPath(_0x43ab91,_0x4f5a31){let _0x4e861b=_0x43ab91;if(_0x4f5a31&&Array['isArray'](_0x4f5a31))_0x4e861b+=convertQueryParamsArrayToString(_0x4f5a31);else _0x4f5a31&&utils.isPlainObject(_0x4f5a31)&&(_0x4e861b+=convertQueryParamsObjectToString(_0x4f5a31));return _0x4e861b;}__name(addQueryParamsToPath,'addQueryParamsToPath');function convertQueryParamsArrayToString(_0x5c27ba){const _0x183d73=_0x5c27ba['map'](_0x52335f=>_0x52335f['name']+'='+_0x52335f['value'])['join']('&');return _0x183d73?'?'+_0x183d73:'';}__name(convertQueryParamsArrayToString,'convertQueryParamsArrayToString');function convertQueryParamsObjectToString(_0xb05e0d){const _0x2aa197=Object['entries'](_0xb05e0d)['map'](([_0x2abd5e,_0xfdaa95])=>_0x2abd5e+'='+_0xfdaa95)['join']('&');return _0x2aa197?'?'+_0x2aa197:'';}__name(convertQueryParamsObjectToString,'convertQueryParamsObjectToString');
7
+
8
+ exports.addQueryParamsToPath = addQueryParamsToPath;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ import { isPlainObject } from '../lib/utils.js';
3
+
4
+ var __defProp=Object['defineProperty'],__name=(_0x4f54b4,_0x5aaf94)=>__defProp(_0x4f54b4,'name',{'value':_0x5aaf94,'configurable':!![]});function addQueryParamsToPath(_0x43ab91,_0x4f5a31){let _0x4e861b=_0x43ab91;if(_0x4f5a31&&Array['isArray'](_0x4f5a31))_0x4e861b+=convertQueryParamsArrayToString(_0x4f5a31);else _0x4f5a31&&isPlainObject(_0x4f5a31)&&(_0x4e861b+=convertQueryParamsObjectToString(_0x4f5a31));return _0x4e861b;}__name(addQueryParamsToPath,'addQueryParamsToPath');function convertQueryParamsArrayToString(_0x5c27ba){const _0x183d73=_0x5c27ba['map'](_0x52335f=>_0x52335f['name']+'='+_0x52335f['value'])['join']('&');return _0x183d73?'?'+_0x183d73:'';}__name(convertQueryParamsArrayToString,'convertQueryParamsArrayToString');function convertQueryParamsObjectToString(_0xb05e0d){const _0x2aa197=Object['entries'](_0xb05e0d)['map'](([_0x2abd5e,_0xfdaa95])=>_0x2abd5e+'='+_0xfdaa95)['join']('&');return _0x2aa197?'?'+_0x2aa197:'';}__name(convertQueryParamsObjectToString,'convertQueryParamsObjectToString');
5
+
6
+ export { addQueryParamsToPath };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  'use strict';
3
3
 
4
- const shortTextLength=-0x222e+0x1*-0x1eeb+0x41e1;const ellipsis='…';
4
+ const shortTextLength=-0x2fb+-0x34a*0x4+0x3d*0x47;const ellipsis='…';
5
5
 
6
6
  exports.ellipsis = ellipsis;
7
7
  exports.shortTextLength = shortTextLength;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ const shortTextLength=-0x2fb+-0x34a*0x4+0x3d*0x47;const ellipsis='…';
3
+
4
+ export { ellipsis, shortTextLength };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var stringsConstants = require('./strings-constants.cjs.js');
5
+ var valueCheckingFunctions = require('../functions/value-checking-functions.cjs.js');
6
+
7
+ var __defProp=Object['defineProperty'],__name=(_0x6fa1dc,_0x2725ea)=>__defProp(_0x6fa1dc,'name',{'value':_0x2725ea,'configurable':!![]});function shortenWithEllipsis(_0x477ade,_0x23c85e=stringsConstants.shortTextLength){if(valueCheckingFunctions.isNullOrUndefined(_0x477ade))return '';return _0x477ade['length']<0xb6a*-0x1+-0x213b+0x47*0xa1?_0x477ade['length']<=_0x23c85e?_0x477ade:_0x477ade['substring'](-0x9b*-0x19+0x1e6c+0x6d*-0x6b,_0x23c85e):_0x477ade['length']<=_0x23c85e?_0x477ade:_0x477ade['substring'](-0xe36+0x1*0xf4f+-0x119,_0x23c85e-(0x1cc3*-0x1+-0x2cd+0x1*0x1f91))+stringsConstants.ellipsis;}__name(shortenWithEllipsis,'shortenWithEllipsis');function trimCharacter(_0x4d3c58,_0x629de1){let _0x13d979=_0x4d3c58;if(Array['isArray'](_0x629de1))for(let _0x20b2f9 of _0x629de1){(_0x4d3c58['startsWith'](_0x20b2f9)||_0x4d3c58['endsWith'](_0x20b2f9))&&(_0x13d979=trimOneCharacter(_0x4d3c58,_0x20b2f9));}else _0x13d979=trimOneCharacter(_0x4d3c58,_0x629de1);return _0x13d979;}__name(trimCharacter,'trimCharacter');function trimOneCharacter(_0x3d96bf,_0x56357c){let _0x15e8ca=_0x3d96bf;return _0x15e8ca?.['startsWith'](_0x56357c)&&(_0x15e8ca=_0x15e8ca['substring'](0xda5+-0xe+-0xd96)),_0x15e8ca?.['endsWith'](_0x56357c)&&(_0x15e8ca=_0x15e8ca['substring'](0x8*0x37a+-0x1a2f*-0x1+-0x35ff,_0x15e8ca['lastIndexOf'](_0x56357c))),_0x15e8ca;}__name(trimOneCharacter,'trimOneCharacter');
8
+
9
+ exports.shortenWithEllipsis = shortenWithEllipsis;
10
+ exports.trimCharacter = trimCharacter;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ import { shortTextLength, ellipsis } from './strings-constants.js';
3
+ import { isNullOrUndefined } from '../functions/value-checking-functions.js';
4
+
5
+ var __defProp=Object['defineProperty'],__name=(_0x6fa1dc,_0x2725ea)=>__defProp(_0x6fa1dc,'name',{'value':_0x2725ea,'configurable':!![]});function shortenWithEllipsis(_0x477ade,_0x23c85e=shortTextLength){if(isNullOrUndefined(_0x477ade))return '';return _0x477ade['length']<0xb6a*-0x1+-0x213b+0x47*0xa1?_0x477ade['length']<=_0x23c85e?_0x477ade:_0x477ade['substring'](-0x9b*-0x19+0x1e6c+0x6d*-0x6b,_0x23c85e):_0x477ade['length']<=_0x23c85e?_0x477ade:_0x477ade['substring'](-0xe36+0x1*0xf4f+-0x119,_0x23c85e-(0x1cc3*-0x1+-0x2cd+0x1*0x1f91))+ellipsis;}__name(shortenWithEllipsis,'shortenWithEllipsis');function trimCharacter(_0x4d3c58,_0x629de1){let _0x13d979=_0x4d3c58;if(Array['isArray'](_0x629de1))for(let _0x20b2f9 of _0x629de1){(_0x4d3c58['startsWith'](_0x20b2f9)||_0x4d3c58['endsWith'](_0x20b2f9))&&(_0x13d979=trimOneCharacter(_0x4d3c58,_0x20b2f9));}else _0x13d979=trimOneCharacter(_0x4d3c58,_0x629de1);return _0x13d979;}__name(trimCharacter,'trimCharacter');function trimOneCharacter(_0x3d96bf,_0x56357c){let _0x15e8ca=_0x3d96bf;return _0x15e8ca?.['startsWith'](_0x56357c)&&(_0x15e8ca=_0x15e8ca['substring'](0xda5+-0xe+-0xd96)),_0x15e8ca?.['endsWith'](_0x56357c)&&(_0x15e8ca=_0x15e8ca['substring'](0x8*0x37a+-0x1a2f*-0x1+-0x35ff,_0x15e8ca['lastIndexOf'](_0x56357c))),_0x15e8ca;}__name(trimOneCharacter,'trimOneCharacter');
6
+
7
+ export { shortenWithEllipsis, trimCharacter };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var __defProp=Object['defineProperty'],__name=(_0x466786,_0xd0231a)=>__defProp(_0x466786,'name',{'value':_0xd0231a,'configurable':!![]});function ensureString(_0x810b13){return isString(_0x810b13)?_0x810b13:String(_0x810b13);}__name(ensureString,'ensureString');function ensureNumber(_0x4b7915){if(isNumber(_0x4b7915))return _0x4b7915;else {if(isString(_0x4b7915))return parseFloat(_0x4b7915);else return NaN;}}__name(ensureNumber,'ensureNumber');function ensureObjectArray(_0x99a6aa){if(Array['isArray'](_0x99a6aa)&&_0x99a6aa['length']>-0x1b6b*0x1+0xc5*0xe+-0x10a5*-0x1&&isObject(_0x99a6aa[-0x2431*0x1+0x5*-0x5f3+-0xa*-0x698])){const _0x30698c=[];for(const _0x2657fb of _0x99a6aa){if(isObject(_0x2657fb))_0x30698c['push'](_0x2657fb);}return _0x30698c;}return [];}__name(ensureObjectArray,'ensureObjectArray');function ensureWithIndexer(_0x243a1c){let _0x528122={};return isWithIndexer(_0x243a1c)&&(_0x528122=_0x243a1c),_0x528122;}__name(ensureWithIndexer,'ensureWithIndexer');function ensureWithIndexerArray(_0x276b09){if(Array['isArray'](_0x276b09))return _0x276b09['filter'](isWithIndexer);if(isWithIndexer(_0x276b09))return [_0x276b09];return [];}__name(ensureWithIndexerArray,'ensureWithIndexerArray');const types={'object':'object','string':'string','number':'number'};const stripeConflictResponseProperties={'detail':'detail'};function isObject(_0x419077){return typeof _0x419077===types['object']&&_0x419077!==null;}__name(isObject,'isObject');function isString(_0xde76f1){return typeof _0xde76f1===types['string'];}__name(isString,'isString');function isNumber(_0x2b8150){return typeof _0x2b8150===types['number'];}__name(isNumber,'isNumber');function isError(_0x4dd6e0){return typeof _0x4dd6e0===types['object'];}__name(isError,'isError');function isKeyof(_0x19a1f4,_0x4ddbba){return isObject(_0x19a1f4)&&_0x4ddbba in _0x19a1f4;}__name(isKeyof,'isKeyof');function isWithIndexer(_0x1ecef6){return isObject(_0x1ecef6)&&!Array['isArray'](_0x1ecef6);}__name(isWithIndexer,'isWithIndexer');function isArray(_0x2e7a30){return isObject(_0x2e7a30)&&Array['isArray'](_0x2e7a30);}__name(isArray,'isArray');function isErrorResponseWithDetail(_0x445062){return isObject(_0x445062)&&stripeConflictResponseProperties['detail']in _0x445062;}__name(isErrorResponseWithDetail,'isErrorResponseWithDetail');function isBoolean(_0x16c332){return typeof _0x16c332==='boolean';}__name(isBoolean,'isBoolean');
5
+
6
+ exports.ensureNumber = ensureNumber;
7
+ exports.ensureObjectArray = ensureObjectArray;
8
+ exports.ensureString = ensureString;
9
+ exports.ensureWithIndexer = ensureWithIndexer;
10
+ exports.ensureWithIndexerArray = ensureWithIndexerArray;
11
+ exports.isArray = isArray;
12
+ exports.isBoolean = isBoolean;
13
+ exports.isError = isError;
14
+ exports.isErrorResponseWithDetail = isErrorResponseWithDetail;
15
+ exports.isKeyof = isKeyof;
16
+ exports.isNumber = isNumber;
17
+ exports.isObject = isObject;
18
+ exports.isString = isString;
19
+ exports.isWithIndexer = isWithIndexer;
20
+ exports.stripeConflictResponseProperties = stripeConflictResponseProperties;
21
+ exports.types = types;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var __defProp=Object['defineProperty'],__name=(_0x466786,_0xd0231a)=>__defProp(_0x466786,'name',{'value':_0xd0231a,'configurable':!![]});function ensureString(_0x810b13){return isString(_0x810b13)?_0x810b13:String(_0x810b13);}__name(ensureString,'ensureString');function ensureNumber(_0x4b7915){if(isNumber(_0x4b7915))return _0x4b7915;else {if(isString(_0x4b7915))return parseFloat(_0x4b7915);else return NaN;}}__name(ensureNumber,'ensureNumber');function ensureObjectArray(_0x99a6aa){if(Array['isArray'](_0x99a6aa)&&_0x99a6aa['length']>-0x1b6b*0x1+0xc5*0xe+-0x10a5*-0x1&&isObject(_0x99a6aa[-0x2431*0x1+0x5*-0x5f3+-0xa*-0x698])){const _0x30698c=[];for(const _0x2657fb of _0x99a6aa){if(isObject(_0x2657fb))_0x30698c['push'](_0x2657fb);}return _0x30698c;}return [];}__name(ensureObjectArray,'ensureObjectArray');function ensureWithIndexer(_0x243a1c){let _0x528122={};return isWithIndexer(_0x243a1c)&&(_0x528122=_0x243a1c),_0x528122;}__name(ensureWithIndexer,'ensureWithIndexer');function ensureWithIndexerArray(_0x276b09){if(Array['isArray'](_0x276b09))return _0x276b09['filter'](isWithIndexer);if(isWithIndexer(_0x276b09))return [_0x276b09];return [];}__name(ensureWithIndexerArray,'ensureWithIndexerArray');const types={'object':'object','string':'string','number':'number'};const stripeConflictResponseProperties={'detail':'detail'};function isObject(_0x419077){return typeof _0x419077===types['object']&&_0x419077!==null;}__name(isObject,'isObject');function isString(_0xde76f1){return typeof _0xde76f1===types['string'];}__name(isString,'isString');function isNumber(_0x2b8150){return typeof _0x2b8150===types['number'];}__name(isNumber,'isNumber');function isError(_0x4dd6e0){return typeof _0x4dd6e0===types['object'];}__name(isError,'isError');function isKeyof(_0x19a1f4,_0x4ddbba){return isObject(_0x19a1f4)&&_0x4ddbba in _0x19a1f4;}__name(isKeyof,'isKeyof');function isWithIndexer(_0x1ecef6){return isObject(_0x1ecef6)&&!Array['isArray'](_0x1ecef6);}__name(isWithIndexer,'isWithIndexer');function isArray(_0x2e7a30){return isObject(_0x2e7a30)&&Array['isArray'](_0x2e7a30);}__name(isArray,'isArray');function isErrorResponseWithDetail(_0x445062){return isObject(_0x445062)&&stripeConflictResponseProperties['detail']in _0x445062;}__name(isErrorResponseWithDetail,'isErrorResponseWithDetail');function isBoolean(_0x16c332){return typeof _0x16c332==='boolean';}__name(isBoolean,'isBoolean');
3
+
4
+ export { ensureNumber, ensureObjectArray, ensureString, ensureWithIndexer, ensureWithIndexerArray, isArray, isBoolean, isError, isErrorResponseWithDetail, isKeyof, isNumber, isObject, isString, isWithIndexer, stripeConflictResponseProperties, types };
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var __defProp=Object['defineProperty'],__name=(_0x4484fc,_0x5ca7e8)=>__defProp(_0x4484fc,'name',{'value':_0x5ca7e8,'configurable':!![]});const nameOf=__name(_0x160f94=>_0x160f94['toString'](),'nameOf');const deepNameOf=__name((_0x53ae6a,_0x4ad969)=>_0x53ae6a+'.'+_0x4ad969,'deepNameOf');const nameOfWithType=__name(_0x406cfd=>_0x406cfd,'nameOfWithType');
5
+
6
+ exports.deepNameOf = deepNameOf;
7
+ exports.nameOf = nameOf;
8
+ exports.nameOfWithType = nameOfWithType;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var __defProp=Object['defineProperty'],__name=(_0x4484fc,_0x5ca7e8)=>__defProp(_0x4484fc,'name',{'value':_0x5ca7e8,'configurable':!![]});const nameOf=__name(_0x160f94=>_0x160f94['toString'](),'nameOf');const deepNameOf=__name((_0x53ae6a,_0x4ad969)=>_0x53ae6a+'.'+_0x4ad969,'deepNameOf');const nameOfWithType=__name(_0x406cfd=>_0x406cfd,'nameOfWithType');
3
+
4
+ export { deepNameOf, nameOf, nameOfWithType };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var nameOf = require('../core/name-of.cjs.js');
5
+
6
+ var __defProp=Object['defineProperty'],__name=(_0x10e71f,_0x464e62)=>__defProp(_0x10e71f,'name',{'value':_0x464e62,'configurable':!![]});const withIdProps={'id':nameOf.nameOf('id')};function isResourceWithId(_0x2750a3){return _0x2750a3&&typeof _0x2750a3==='object'&&typeof _0x2750a3['id']==='string';}__name(isResourceWithId,'isResourceWithId');
7
+
8
+ exports.isResourceWithId = isResourceWithId;
9
+ exports.withIdProps = withIdProps;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ import { nameOf } from '../core/name-of.js';
3
+
4
+ var __defProp=Object['defineProperty'],__name=(_0x10e71f,_0x464e62)=>__defProp(_0x10e71f,'name',{'value':_0x464e62,'configurable':!![]});const withIdProps={'id':nameOf('id')};function isResourceWithId(_0x2750a3){return _0x2750a3&&typeof _0x2750a3==='object'&&typeof _0x2750a3['id']==='string';}__name(isResourceWithId,'isResourceWithId');
5
+
6
+ export { isResourceWithId, withIdProps };
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ 'use strict';
4
+
5
+ var commander = require('commander');
6
+ var create = require('../create/bin/create.cjs.js');
7
+
8
+ 'use strict';const program=new commander.Command();program['command']('create\x20<folder>')['option']('-r,\x20--repo','Enable\x20repo\x20mode')['description']('Create\x20a\x20new\x20SaaS\x20Kit\x20project')['action']((_0x86565b,_0x1f1553)=>{const _0x245536=[_0x86565b];if(_0x1f1553['repo'])_0x245536['push']('-r');create.create(_0x245536);}),program['parse'](process['argv']);
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ import { Command } from 'commander';
4
+ import { create } from '../create/bin/create.js';
5
+
6
+ 'use strict';const program=new Command();program['command']('create\x20<folder>')['option']('-r,\x20--repo','Enable\x20repo\x20mode')['description']('Create\x20a\x20new\x20SaaS\x20Kit\x20project')['action']((_0x86565b,_0x1f1553)=>{const _0x245536=[_0x86565b];if(_0x1f1553['repo'])_0x245536['push']('-r');create(_0x245536);}),program['parse'](process['argv']);
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var child_process = require('child_process');
5
+ var fs = require('fs');
6
+ var node_url = require('node:url');
7
+ var _0x3a74e9 = require('path');
8
+ var _0x473e78 = require('node:fs');
9
+ var createAppConstants = require('../../../../base-repo/constants/create-app-constants.cjs.js');
10
+ var loggers = require('../../../../fd-toolbox/logging/loggers.cjs.js');
11
+ var constants = require('../../../../fd-toolbox/constants/constants.cjs.js');
12
+ var path = require('../../../npm-commands/build-npm/path.cjs.js');
13
+ var errors = require('../../../../fd-toolbox/errors/errors.cjs.js');
14
+ var projectPaths = require('../../../../base-repo/app-constants/project-paths.cjs.js');
15
+ var packages = require('../../../../base-repo/constants/packages.cjs.js');
16
+ var aliases = require('../../../../base-repo/app-constants/aliases.cjs.js');
17
+ var ensureType = require('../../../../fd-toolbox/types/ensure-type.cjs.js');
18
+ var cliContents = require('../../../npm-commands/build-npm/cli-contents.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 _0x3a74e9__namespace = /*#__PURE__*/_interopNamespaceDefault(_0x3a74e9);
39
+
40
+ var __defProp=Object['defineProperty'],__name=(_0x486649,_0x35498d)=>__defProp(_0x486649,'name',{'value':_0x35498d,'configurable':!![]});const requiredNodeVersion='v20.0.0';process['version']<requiredNodeVersion&&(loggers.logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0xdf*0x4+-0x9d3+0x658));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/bin/create.cjs.js', document.baseURI).href))),sourceDir='../../../../',binDir=_0x3a74e9__namespace['dirname'](filename),repoRoot=_0x3a74e9__namespace['resolve'](binDir,sourceDir),envLocalPath=_0x3a74e9__namespace['join'](binDir,''+sourceDir+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.files['envExample']),envTemplate=_0x473e78['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.folders['constants'],''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.files['packageTemplate'],''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.files['envExample'],''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.folders['bin'],''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.folders['configs']];function runCommand(_0xa611b,_0x3daaf8){loggers.logInfoRaw('Executing:\x20'+_0xa611b);try{child_process.execSync(_0xa611b,{'stdio':'inherit','cwd':_0x3daaf8??process['cwd']()});}catch(_0x208fed){const _0xefad39=_0x208fed instanceof Error?_0x208fed['message']:'Unknown\x20error';loggers.logStringError('Error\x20executing:\x20'+_0xa611b),loggers.logStringError(_0xefad39),process['exit'](0xec1+0x16a0+-0x2560);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x5f3c8a){fs.existsSync(_0x5f3c8a)&&(loggers.logStringError('Error:\x20Folder\x20\x22'+_0x3a74e9__namespace['basename'](_0x5f3c8a)+'\x22\x20already\x20exists.'),process['exit'](0x1*0xbc6+-0x731*-0x5+-0x2fba));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x11a5f2=_0x3a74e9__namespace['resolve'](repoRoot,projectPaths.files['packageJson']),_0x51436c=JSON['parse'](_0x473e78['readFileSync'](_0x11a5f2,'utf-8'));return String(_0x51436c['devDependencies']?.['next']??_0x51436c['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x228e04,_0x2002fa){loggers.logInfoRaw('Creating\x20Next.js\x20project...');const _0x11fc98=getCreateNextAppVersion(),_0x3cf7fb=['npx\x20--yes\x20create-next-app@'+_0x11fc98+'\x20\x22'+_0x228e04+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git','--react-compiler']['join']('\x20');runCommand(_0x3cf7fb,_0x3a74e9__namespace['dirname'](_0x2002fa)),loggers.logInfoRaw('Next.js\x20project\x20created!');const _0x152673=_0x3a74e9__namespace['join'](_0x2002fa,'next.config.ts');_0x473e78['existsSync'](_0x152673)&&(_0x473e78['rmSync'](_0x152673),loggers.logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x1768a0){loggers.logInfoRaw('Creating\x20'+projectPaths.files['env']+'\x20file\x20with\x20default\x20values...');const _0x52ebb7=_0x3a74e9__namespace['join'](_0x1768a0,projectPaths.files['env']);try{await fs.promises['writeFile'](_0x52ebb7,envTemplate,'utf8'),loggers.logInfoRaw(projectPaths.files['env']+'\x20file\x20created\x20with\x20values!');}catch(_0xc7473e){const _0x151ce8=_0xc7473e instanceof Error?_0xc7473e['message']:'Unknown\x20error';loggers.logStringError('Error\x20creating\x20'+projectPaths.files['env']+'\x20file:'),loggers.logStringError(_0x151ce8);throw _0xc7473e;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x3c2987){const _0xd6b6d1=_0x3a74e9__namespace['join'](_0x3c2987,projectPaths.files['packageJson']),_0x5cb9a8=_0x3a74e9__namespace['join'](repoRoot,''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+projectPaths.files['packageTemplate']);try{const _0x206f51=JSON['parse'](await fs.promises['readFile'](_0xd6b6d1,'utf8')),_0x4b04fe=_0x206f51['name'],_0x5f494d=JSON['parse'](await fs.promises['readFile'](_0x5cb9a8,'utf8')),_0xb4b75f={..._0x5f494d,'name':_0x4b04fe};await fs.promises['writeFile'](_0xd6b6d1,JSON['stringify'](_0xb4b75f,null,-0x19fa+0xc34*-0x1+0x10*0x263)+'\x0a','utf8');}catch(_0x1affb9){const _0x24229d=_0x1affb9 instanceof Error?_0x1affb9['message']:'Unknown\x20error';loggers.logStringError('Error\x20overriding\x20'+projectPaths.files['packageJson']+':'),loggers.logStringError(_0x24229d);throw _0x1affb9;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x4178f7){const _0x25649d=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x4178f7['replace'](_0x25649d,(_0x5c5d84,_0x4fb83e,_0x4f4f48,_0x29b01f,_0x4e92cd,_0x1013ab)=>{if(!_0x4e92cd['startsWith'](aliases.aliasSymbols['atSign'])||_0x4e92cd['startsWith'](packages.npmPackages['saasKit']))return _0x5c5d84;let _0x4cc02f;_0x4e92cd['startsWith'](aliases.aliasSymbols['atSign']+projectPaths.folders['server'])||_0x4e92cd['includes'](''+projectPaths.projectPaths['server'])?_0x4cc02f=packages.npmPackages['saasKitServer']:_0x4cc02f=packages.npmPackages['saasKit'];let _0x3a122a=_0x4f4f48['trim']();const _0x5e1150=/^type\b/['test'](_0x3a122a),_0x329618=/^\*\s+as\s+/['test'](_0x3a122a);return !_0x5e1150&&!_0x329618&&!_0x3a122a['startsWith']('{')&&(_0x3a122a='{\x20'+_0x3a122a+'\x20}'),''+_0x4fb83e+_0x3a122a+_0x29b01f+_0x4cc02f+_0x1013ab;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x4dae3d){loggers.logInfoRaw('Copying\x20'+constants.projectName+'\x20files...');for(const _0x41a56e of path.allFilesToCopy){const _0x44b6b1=''+projectPaths.folders['cli']+_0x3a74e9__namespace['sep']+_0x41a56e,_0x3cda46=_0x3a74e9__namespace['join'](repoRoot,_0x44b6b1),_0x1b5a82=replaceToolsFolder(_0x41a56e),_0x4ee457=_0x3a74e9__namespace['join'](_0x4dae3d,_0x1b5a82);if(fs.existsSync(_0x3cda46)){const _0x485e0b=await fs.promises['stat'](_0x3cda46);_0x485e0b['isDirectory']()?await copyDirectoryContents(_0x3cda46,_0x4ee457):await copyAndProcessFile(_0x3cda46,_0x4ee457);}else loggers.logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0x44b6b1);}loggers.logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x51bd0a){let _0x4f3379=_0x51bd0a;for(const [_0x23d218,_0x30628b]of Object['entries'](createAppConstants.toolsFoldersToReplace)){if(_0x4f3379['startsWith'](_0x23d218)&&ensureType.isWithIndexer(_0x30628b)){const _0x9e78e=_0x30628b;for(const _0x45df5c in _0x9e78e){const _0xb54d2b=_0x9e78e[_0x45df5c];ensureType.isString(_0xb54d2b)&&(_0x4f3379=_0x4f3379['replace'](_0x45df5c,_0xb54d2b));}break;}}return _0x4f3379;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x13c424,_0x439d20,_0x15cd30=![]){const _0x3dac2e=_0x3a74e9__namespace['relative'](repoRoot,_0x13c424)['replace'](/\\/g,'/'),_0x4d3f92=foldersToIgnore['map'](_0x47ad6b=>_0x47ad6b['replace'](/\\/g,'/'));if(_0x4d3f92['includes'](_0x3dac2e))return !![];if(_0x15cd30){const _0x4207e9=_0x3a74e9__namespace['relative'](_0x439d20,_0x13c424)['replace'](/\\/g,'/'),_0x5cfe90=_0x4207e9['split']('/');return _0x4d3f92['some'](_0x3c6c10=>_0x5cfe90['some'](_0x431025=>_0x431025===_0x3c6c10));}return ![];}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x5e9645,_0x41fe22){!fs.existsSync(_0x41fe22)&&fs.mkdirSync(_0x41fe22,{'recursive':!![]});try{const _0x5841e3=await fs.promises['readdir'](_0x5e9645,{'withFileTypes':!![]});for(const _0x4c8715 of _0x5841e3){const _0x28a630=_0x3a74e9__namespace['join'](_0x5e9645,_0x4c8715['name']),_0x29595d=_0x3a74e9__namespace['join'](_0x41fe22,_0x4c8715['name']);!shouldIgnorePath(_0x28a630,_0x5e9645,_0x4c8715['isDirectory']())&&(_0x4c8715['isDirectory']()?await copyDirectoryContents(_0x28a630,_0x29595d):await copyAndProcessFile(_0x28a630,_0x29595d));}}catch(_0x3f61d6){const _0x177a4f=_0x3f61d6 instanceof Error?_0x3f61d6['message']:'Unknown\x20error';loggers.logStringError('Error\x20reading\x20directory\x20'+_0x5e9645+':\x20'+_0x177a4f);throw _0x3f61d6;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0x27e4bd,_0x4d08f7){const _0x4b6e7d=_0x3a74e9__namespace['dirname'](_0x4d08f7);!fs.existsSync(_0x4b6e7d)&&fs.mkdirSync(_0x4b6e7d,{'recursive':!![]});const _0x2610cd=await fs.promises['stat'](_0x27e4bd);if(_0x2610cd['isDirectory']())await copyDirectoryContents(_0x27e4bd,_0x4d08f7);else {const _0x3f078c=_0x3a74e9__namespace['extname'](_0x27e4bd)['toLowerCase'](),_0x3db05d=['.ico','.png','.jpg','.jpeg','.webp','.gif','.svg','.pdf'];if(_0x3db05d['includes'](_0x3f078c)){await fs.promises['copyFile'](_0x27e4bd,_0x4d08f7);return;}const _0x2450ef=await fs.promises['readFile'](_0x27e4bd,'utf8'),_0x57943e=replaceImports(_0x2450ef);await fs.promises['writeFile'](_0x4d08f7,_0x57943e,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x56b756){for(const _0x2ee4b3 of createAppConstants.additionalFoldersToCreate){const _0x228e07=_0x3a74e9__namespace['join'](_0x56b756,_0x2ee4b3);!fs.existsSync(_0x228e07)&&(fs.mkdirSync(_0x228e07,{'recursive':!![]}),loggers.logInfoRaw('Created\x20folder:\x20'+_0x2ee4b3));}loggers.logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function setupPreCommitHooks(_0x1f6b79){const _0x5904e9=_0x3a74e9__namespace['join'](_0x1f6b79,projectPaths.folders['husky']),_0x121c55=_0x3a74e9__namespace['join'](_0x5904e9,projectPaths.files['preCommit']),_0x25dfe0=_0x3a74e9__namespace['join'](_0x5904e9,projectPaths.files['commitMsg']);fs.mkdirSync(_0x5904e9,{'recursive':!![]}),await fs.promises['writeFile'](_0x121c55,cliContents.cliScripts['preCommit'],'utf8'),await fs.promises['writeFile'](_0x25dfe0,cliContents.cliScripts['commitMsg'],'utf8'),runCommand(cliContents.cliScripts['chmodPreCommit'],_0x1f6b79),runCommand(cliContents.cliScripts['chmodCommitMsg'],_0x1f6b79);}__name(setupPreCommitHooks,'setupPreCommitHooks');async function setupEslintConfig(_0x561ec5){const _0x61944c=_0x3a74e9__namespace['join'](_0x561ec5,projectPaths.files['eslintConfigMjs']);fs.existsSync(_0x61944c)&&await fs.promises['rm'](_0x61944c);const _0x25e13e=_0x3a74e9__namespace['join'](_0x561ec5,projectPaths.files['eslintConfigJs']);await fs.promises['writeFile'](_0x25e13e,cliContents.cliEslintContent,'utf8');}__name(setupEslintConfig,'setupEslintConfig');async function enableRepoModeExtras(_0x5d12ac){loggers.logInfoRaw('Enabling\x20recommendation\x20mode\x20(-r)...'),runCommand(cliContents.cliScripts['gitInit'],_0x5d12ac),runCommand(cliContents.cliScripts['installDevHuskyTsx'],_0x5d12ac),runCommand(cliContents.cliScripts['setLint'],_0x5d12ac),runCommand(cliContents.cliScripts['installHusky'],_0x5d12ac),await setupPreCommitHooks(_0x5d12ac);}__name(enableRepoModeExtras,'enableRepoModeExtras');async function updateLayoutTitle(_0x4a83ef,_0x3d47c6){const _0x45dbe9=_0x3a74e9__namespace['join'](_0x4a83ef,''+projectPaths.projectPaths['app']+_0x3a74e9__namespace['sep']+projectPaths.files['layout']);if(!fs.existsSync(_0x45dbe9))throw errors.createError(projectPaths.files['layout']+'\x20not\x20found\x20at\x20'+_0x45dbe9+',\x20cannot\x20update\x20title.');let _0x5a8801=await fs.promises['readFile'](_0x45dbe9,'utf8');const _0x45b4d5=/"SaaS Kit"/g;if(!_0x45b4d5['test'](_0x5a8801))throw errors.createError('SaaS\x20Kit\x20not\x20found\x20in\x20'+projectPaths.files['layout']+',\x20cannot\x20update\x20title.');_0x5a8801=_0x5a8801['replace'](_0x45b4d5,'\x22'+_0x3d47c6+'\x22'),await fs.promises['writeFile'](_0x45dbe9,_0x5a8801,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle');async function create(_0x408b51){try{_0x408b51['length']<-0x43*-0x54+0x5*0x459+-0x2bb8&&(loggers.logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x2678+0xadf+0x34a*-0xf));const _0x1603dd=_0x408b51[-0x1*0xcdd+0x1e55+-0x1178],_0x11b72d=_0x408b51['includes']('-r'),_0x4ab865=_0x3a74e9__namespace['resolve'](process['cwd'](),_0x1603dd);loggers.logInfoRaw('\x0aCreating\x20'+constants.projectName+'\x20project\x20\x22'+_0x1603dd+'\x22...\x0a');try{checkTargetFolder(_0x4ab865),createNextProject(_0x1603dd,_0x4ab865),await copyProjectFiles(_0x4ab865),await overridePackageJson(_0x4ab865),createAdditionalFolders(_0x4ab865),await createEnvFile(_0x4ab865),await updateLayoutTitle(_0x4ab865,_0x1603dd),await setupEslintConfig(_0x4ab865),_0x11b72d&&await enableRepoModeExtras(_0x4ab865),loggers.logInfoRaw('\x0a'+constants.projectName+'\x20project\x20\x22'+_0x1603dd+'\x22\x20is\x20ready!'),loggers.logInfoRaw('Next\x20steps:'),loggers.logInfoRaw('\x20\x20cd\x20'+_0x1603dd),loggers.logInfoRaw('\x20\x20npm\x20run\x20prod'),loggers.logInfoRaw('\x20\x20npm\x20start');}catch(_0x297f2a){const _0x53c3da=_0x297f2a instanceof Error?_0x297f2a['message']:'Unknown\x20error';loggers.logStringError('Error:'),loggers.logStringError(_0x53c3da),fs.existsSync(_0x4ab865)&&(loggers.logInfoRaw('Cleaning\x20up...'),fs.rmSync(_0x4ab865,{'recursive':!![],'force':!![]})),process['exit'](-0x1c98+-0x13b9+-0x5*-0x9aa);}}catch(_0xdfbe37){const _0x2e3e80=_0xdfbe37 instanceof Error?_0xdfbe37['message']:'Unknown\x20error';loggers.logStringError('Unhandled\x20error:'),loggers.logStringError(_0x2e3e80),process['exit'](-0x20*0x12d+0xa*-0x36a+0x47c5);}}__name(create,'create');
41
+
42
+ exports.create = create;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ import { execSync } from 'child_process';
3
+ import { existsSync, promises, mkdirSync, rmSync } from 'fs';
4
+ import { fileURLToPath } from 'node:url';
5
+ import * as _0x3a74e9 from 'path';
6
+ import _0x473e78 from 'node:fs';
7
+ import { toolsFoldersToReplace, additionalFoldersToCreate } from '../../../../base-repo/constants/create-app-constants.js';
8
+ import { logStringError, logInfoRaw } from '../../../../fd-toolbox/logging/loggers.js';
9
+ import { projectName } from '../../../../fd-toolbox/constants/constants.js';
10
+ import { allFilesToCopy } from '../../../npm-commands/build-npm/path.js';
11
+ import { createError } from '../../../../fd-toolbox/errors/errors.js';
12
+ import { folders, files, projectPaths } from '../../../../base-repo/app-constants/project-paths.js';
13
+ import { npmPackages } from '../../../../base-repo/constants/packages.js';
14
+ import { aliasSymbols } from '../../../../base-repo/app-constants/aliases.js';
15
+ import { isWithIndexer, isString } from '../../../../fd-toolbox/types/ensure-type.js';
16
+ import { cliScripts, cliEslintContent } from '../../../npm-commands/build-npm/cli-contents.js';
17
+
18
+ var __defProp=Object['defineProperty'],__name=(_0x486649,_0x35498d)=>__defProp(_0x486649,'name',{'value':_0x35498d,'configurable':!![]});const requiredNodeVersion='v20.0.0';process['version']<requiredNodeVersion&&(logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0xdf*0x4+-0x9d3+0x658));const filename=fileURLToPath(import.meta['url']),sourceDir='../../../../',binDir=_0x3a74e9['dirname'](filename),repoRoot=_0x3a74e9['resolve'](binDir,sourceDir),envLocalPath=_0x3a74e9['join'](binDir,''+sourceDir+folders['cli']+_0x3a74e9['sep']+files['envExample']),envTemplate=_0x473e78['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[''+folders['cli']+_0x3a74e9['sep']+folders['constants'],''+folders['cli']+_0x3a74e9['sep']+files['packageTemplate'],''+folders['cli']+_0x3a74e9['sep']+files['envExample'],''+folders['cli']+_0x3a74e9['sep']+folders['bin'],''+folders['cli']+_0x3a74e9['sep']+folders['configs']];function runCommand(_0xa611b,_0x3daaf8){logInfoRaw('Executing:\x20'+_0xa611b);try{execSync(_0xa611b,{'stdio':'inherit','cwd':_0x3daaf8??process['cwd']()});}catch(_0x208fed){const _0xefad39=_0x208fed instanceof Error?_0x208fed['message']:'Unknown\x20error';logStringError('Error\x20executing:\x20'+_0xa611b),logStringError(_0xefad39),process['exit'](0xec1+0x16a0+-0x2560);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x5f3c8a){existsSync(_0x5f3c8a)&&(logStringError('Error:\x20Folder\x20\x22'+_0x3a74e9['basename'](_0x5f3c8a)+'\x22\x20already\x20exists.'),process['exit'](0x1*0xbc6+-0x731*-0x5+-0x2fba));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x11a5f2=_0x3a74e9['resolve'](repoRoot,files['packageJson']),_0x51436c=JSON['parse'](_0x473e78['readFileSync'](_0x11a5f2,'utf-8'));return String(_0x51436c['devDependencies']?.['next']??_0x51436c['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x228e04,_0x2002fa){logInfoRaw('Creating\x20Next.js\x20project...');const _0x11fc98=getCreateNextAppVersion(),_0x3cf7fb=['npx\x20--yes\x20create-next-app@'+_0x11fc98+'\x20\x22'+_0x228e04+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git','--react-compiler']['join']('\x20');runCommand(_0x3cf7fb,_0x3a74e9['dirname'](_0x2002fa)),logInfoRaw('Next.js\x20project\x20created!');const _0x152673=_0x3a74e9['join'](_0x2002fa,'next.config.ts');_0x473e78['existsSync'](_0x152673)&&(_0x473e78['rmSync'](_0x152673),logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x1768a0){logInfoRaw('Creating\x20'+files['env']+'\x20file\x20with\x20default\x20values...');const _0x52ebb7=_0x3a74e9['join'](_0x1768a0,files['env']);try{await promises['writeFile'](_0x52ebb7,envTemplate,'utf8'),logInfoRaw(files['env']+'\x20file\x20created\x20with\x20values!');}catch(_0xc7473e){const _0x151ce8=_0xc7473e instanceof Error?_0xc7473e['message']:'Unknown\x20error';logStringError('Error\x20creating\x20'+files['env']+'\x20file:'),logStringError(_0x151ce8);throw _0xc7473e;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x3c2987){const _0xd6b6d1=_0x3a74e9['join'](_0x3c2987,files['packageJson']),_0x5cb9a8=_0x3a74e9['join'](repoRoot,''+folders['cli']+_0x3a74e9['sep']+files['packageTemplate']);try{const _0x206f51=JSON['parse'](await promises['readFile'](_0xd6b6d1,'utf8')),_0x4b04fe=_0x206f51['name'],_0x5f494d=JSON['parse'](await promises['readFile'](_0x5cb9a8,'utf8')),_0xb4b75f={..._0x5f494d,'name':_0x4b04fe};await promises['writeFile'](_0xd6b6d1,JSON['stringify'](_0xb4b75f,null,-0x19fa+0xc34*-0x1+0x10*0x263)+'\x0a','utf8');}catch(_0x1affb9){const _0x24229d=_0x1affb9 instanceof Error?_0x1affb9['message']:'Unknown\x20error';logStringError('Error\x20overriding\x20'+files['packageJson']+':'),logStringError(_0x24229d);throw _0x1affb9;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x4178f7){const _0x25649d=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x4178f7['replace'](_0x25649d,(_0x5c5d84,_0x4fb83e,_0x4f4f48,_0x29b01f,_0x4e92cd,_0x1013ab)=>{if(!_0x4e92cd['startsWith'](aliasSymbols['atSign'])||_0x4e92cd['startsWith'](npmPackages['saasKit']))return _0x5c5d84;let _0x4cc02f;_0x4e92cd['startsWith'](aliasSymbols['atSign']+folders['server'])||_0x4e92cd['includes'](''+projectPaths['server'])?_0x4cc02f=npmPackages['saasKitServer']:_0x4cc02f=npmPackages['saasKit'];let _0x3a122a=_0x4f4f48['trim']();const _0x5e1150=/^type\b/['test'](_0x3a122a),_0x329618=/^\*\s+as\s+/['test'](_0x3a122a);return !_0x5e1150&&!_0x329618&&!_0x3a122a['startsWith']('{')&&(_0x3a122a='{\x20'+_0x3a122a+'\x20}'),''+_0x4fb83e+_0x3a122a+_0x29b01f+_0x4cc02f+_0x1013ab;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x4dae3d){logInfoRaw('Copying\x20'+projectName+'\x20files...');for(const _0x41a56e of allFilesToCopy){const _0x44b6b1=''+folders['cli']+_0x3a74e9['sep']+_0x41a56e,_0x3cda46=_0x3a74e9['join'](repoRoot,_0x44b6b1),_0x1b5a82=replaceToolsFolder(_0x41a56e),_0x4ee457=_0x3a74e9['join'](_0x4dae3d,_0x1b5a82);if(existsSync(_0x3cda46)){const _0x485e0b=await promises['stat'](_0x3cda46);_0x485e0b['isDirectory']()?await copyDirectoryContents(_0x3cda46,_0x4ee457):await copyAndProcessFile(_0x3cda46,_0x4ee457);}else logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0x44b6b1);}logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x51bd0a){let _0x4f3379=_0x51bd0a;for(const [_0x23d218,_0x30628b]of Object['entries'](toolsFoldersToReplace)){if(_0x4f3379['startsWith'](_0x23d218)&&isWithIndexer(_0x30628b)){const _0x9e78e=_0x30628b;for(const _0x45df5c in _0x9e78e){const _0xb54d2b=_0x9e78e[_0x45df5c];isString(_0xb54d2b)&&(_0x4f3379=_0x4f3379['replace'](_0x45df5c,_0xb54d2b));}break;}}return _0x4f3379;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x13c424,_0x439d20,_0x15cd30=![]){const _0x3dac2e=_0x3a74e9['relative'](repoRoot,_0x13c424)['replace'](/\\/g,'/'),_0x4d3f92=foldersToIgnore['map'](_0x47ad6b=>_0x47ad6b['replace'](/\\/g,'/'));if(_0x4d3f92['includes'](_0x3dac2e))return !![];if(_0x15cd30){const _0x4207e9=_0x3a74e9['relative'](_0x439d20,_0x13c424)['replace'](/\\/g,'/'),_0x5cfe90=_0x4207e9['split']('/');return _0x4d3f92['some'](_0x3c6c10=>_0x5cfe90['some'](_0x431025=>_0x431025===_0x3c6c10));}return ![];}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x5e9645,_0x41fe22){!existsSync(_0x41fe22)&&mkdirSync(_0x41fe22,{'recursive':!![]});try{const _0x5841e3=await promises['readdir'](_0x5e9645,{'withFileTypes':!![]});for(const _0x4c8715 of _0x5841e3){const _0x28a630=_0x3a74e9['join'](_0x5e9645,_0x4c8715['name']),_0x29595d=_0x3a74e9['join'](_0x41fe22,_0x4c8715['name']);!shouldIgnorePath(_0x28a630,_0x5e9645,_0x4c8715['isDirectory']())&&(_0x4c8715['isDirectory']()?await copyDirectoryContents(_0x28a630,_0x29595d):await copyAndProcessFile(_0x28a630,_0x29595d));}}catch(_0x3f61d6){const _0x177a4f=_0x3f61d6 instanceof Error?_0x3f61d6['message']:'Unknown\x20error';logStringError('Error\x20reading\x20directory\x20'+_0x5e9645+':\x20'+_0x177a4f);throw _0x3f61d6;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0x27e4bd,_0x4d08f7){const _0x4b6e7d=_0x3a74e9['dirname'](_0x4d08f7);!existsSync(_0x4b6e7d)&&mkdirSync(_0x4b6e7d,{'recursive':!![]});const _0x2610cd=await promises['stat'](_0x27e4bd);if(_0x2610cd['isDirectory']())await copyDirectoryContents(_0x27e4bd,_0x4d08f7);else {const _0x3f078c=_0x3a74e9['extname'](_0x27e4bd)['toLowerCase'](),_0x3db05d=['.ico','.png','.jpg','.jpeg','.webp','.gif','.svg','.pdf'];if(_0x3db05d['includes'](_0x3f078c)){await promises['copyFile'](_0x27e4bd,_0x4d08f7);return;}const _0x2450ef=await promises['readFile'](_0x27e4bd,'utf8'),_0x57943e=replaceImports(_0x2450ef);await promises['writeFile'](_0x4d08f7,_0x57943e,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x56b756){for(const _0x2ee4b3 of additionalFoldersToCreate){const _0x228e07=_0x3a74e9['join'](_0x56b756,_0x2ee4b3);!existsSync(_0x228e07)&&(mkdirSync(_0x228e07,{'recursive':!![]}),logInfoRaw('Created\x20folder:\x20'+_0x2ee4b3));}logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function setupPreCommitHooks(_0x1f6b79){const _0x5904e9=_0x3a74e9['join'](_0x1f6b79,folders['husky']),_0x121c55=_0x3a74e9['join'](_0x5904e9,files['preCommit']),_0x25dfe0=_0x3a74e9['join'](_0x5904e9,files['commitMsg']);mkdirSync(_0x5904e9,{'recursive':!![]}),await promises['writeFile'](_0x121c55,cliScripts['preCommit'],'utf8'),await promises['writeFile'](_0x25dfe0,cliScripts['commitMsg'],'utf8'),runCommand(cliScripts['chmodPreCommit'],_0x1f6b79),runCommand(cliScripts['chmodCommitMsg'],_0x1f6b79);}__name(setupPreCommitHooks,'setupPreCommitHooks');async function setupEslintConfig(_0x561ec5){const _0x61944c=_0x3a74e9['join'](_0x561ec5,files['eslintConfigMjs']);existsSync(_0x61944c)&&await promises['rm'](_0x61944c);const _0x25e13e=_0x3a74e9['join'](_0x561ec5,files['eslintConfigJs']);await promises['writeFile'](_0x25e13e,cliEslintContent,'utf8');}__name(setupEslintConfig,'setupEslintConfig');async function enableRepoModeExtras(_0x5d12ac){logInfoRaw('Enabling\x20recommendation\x20mode\x20(-r)...'),runCommand(cliScripts['gitInit'],_0x5d12ac),runCommand(cliScripts['installDevHuskyTsx'],_0x5d12ac),runCommand(cliScripts['setLint'],_0x5d12ac),runCommand(cliScripts['installHusky'],_0x5d12ac),await setupPreCommitHooks(_0x5d12ac);}__name(enableRepoModeExtras,'enableRepoModeExtras');async function updateLayoutTitle(_0x4a83ef,_0x3d47c6){const _0x45dbe9=_0x3a74e9['join'](_0x4a83ef,''+projectPaths['app']+_0x3a74e9['sep']+files['layout']);if(!existsSync(_0x45dbe9))throw createError(files['layout']+'\x20not\x20found\x20at\x20'+_0x45dbe9+',\x20cannot\x20update\x20title.');let _0x5a8801=await promises['readFile'](_0x45dbe9,'utf8');const _0x45b4d5=/"SaaS Kit"/g;if(!_0x45b4d5['test'](_0x5a8801))throw createError('SaaS\x20Kit\x20not\x20found\x20in\x20'+files['layout']+',\x20cannot\x20update\x20title.');_0x5a8801=_0x5a8801['replace'](_0x45b4d5,'\x22'+_0x3d47c6+'\x22'),await promises['writeFile'](_0x45dbe9,_0x5a8801,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle');async function create(_0x408b51){try{_0x408b51['length']<-0x43*-0x54+0x5*0x459+-0x2bb8&&(logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x2678+0xadf+0x34a*-0xf));const _0x1603dd=_0x408b51[-0x1*0xcdd+0x1e55+-0x1178],_0x11b72d=_0x408b51['includes']('-r'),_0x4ab865=_0x3a74e9['resolve'](process['cwd'](),_0x1603dd);logInfoRaw('\x0aCreating\x20'+projectName+'\x20project\x20\x22'+_0x1603dd+'\x22...\x0a');try{checkTargetFolder(_0x4ab865),createNextProject(_0x1603dd,_0x4ab865),await copyProjectFiles(_0x4ab865),await overridePackageJson(_0x4ab865),createAdditionalFolders(_0x4ab865),await createEnvFile(_0x4ab865),await updateLayoutTitle(_0x4ab865,_0x1603dd),await setupEslintConfig(_0x4ab865),_0x11b72d&&await enableRepoModeExtras(_0x4ab865),logInfoRaw('\x0a'+projectName+'\x20project\x20\x22'+_0x1603dd+'\x22\x20is\x20ready!'),logInfoRaw('Next\x20steps:'),logInfoRaw('\x20\x20cd\x20'+_0x1603dd),logInfoRaw('\x20\x20npm\x20run\x20prod'),logInfoRaw('\x20\x20npm\x20start');}catch(_0x297f2a){const _0x53c3da=_0x297f2a instanceof Error?_0x297f2a['message']:'Unknown\x20error';logStringError('Error:'),logStringError(_0x53c3da),existsSync(_0x4ab865)&&(logInfoRaw('Cleaning\x20up...'),rmSync(_0x4ab865,{'recursive':!![],'force':!![]})),process['exit'](-0x1c98+-0x13b9+-0x5*-0x9aa);}}catch(_0xdfbe37){const _0x2e3e80=_0xdfbe37 instanceof Error?_0xdfbe37['message']:'Unknown\x20error';logStringError('Unhandled\x20error:'),logStringError(_0x2e3e80),process['exit'](-0x20*0x12d+0xa*-0x36a+0x47c5);}}__name(create,'create');
19
+
20
+ export { create };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ var packages = require('../../../base-repo/constants/packages.cjs.js');
5
+
6
+ const cliScripts={'preCommit':'npx\x20tsx\x20node_modules/@fernir2/saas-kit/packages/base-repo/tools/git/pre-commit-script.ts','commitMsg':'npx\x20tsx\x20node_modules/@fernir2/saas-kit/packages/base-repo/tools/git/commit-msg-script.ts\x20\x22$1\x22','chmodPreCommit':'chmod\x20+x\x20.husky/pre-commit','chmodCommitMsg':'chmod\x20+x\x20.husky/commit-msg','gitInit':'git\x20init','installDevHuskyTsx':'npm\x20install\x20-D\x20husky\x20tsx','setLint':'npm\x20pkg\x20set\x20scripts.lint=\x22eslint\x20.\x22','installHusky':'npx\x20husky\x20install'};const cliEslintContent='\x0aimport\x20{\x20baseConfig\x20}\x20from\x20\x22'+packages.npmPackages['saasKitFlint']+'\x22;\x0aimport\x20{\x20defineConfig\x20}\x20from\x20\x22eslint/config\x22;\x0a\x0aexport\x20default\x20defineConfig([...baseConfig]);\x0a\x20\x20\x20\x20';
7
+
8
+ exports.cliEslintContent = cliEslintContent;
9
+ exports.cliScripts = cliScripts;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ import { npmPackages } from '../../../base-repo/constants/packages.js';
3
+
4
+ const cliScripts={'preCommit':'npx\x20tsx\x20node_modules/@fernir2/saas-kit/packages/base-repo/tools/git/pre-commit-script.ts','commitMsg':'npx\x20tsx\x20node_modules/@fernir2/saas-kit/packages/base-repo/tools/git/commit-msg-script.ts\x20\x22$1\x22','chmodPreCommit':'chmod\x20+x\x20.husky/pre-commit','chmodCommitMsg':'chmod\x20+x\x20.husky/commit-msg','gitInit':'git\x20init','installDevHuskyTsx':'npm\x20install\x20-D\x20husky\x20tsx','setLint':'npm\x20pkg\x20set\x20scripts.lint=\x22eslint\x20.\x22','installHusky':'npx\x20husky\x20install'};const cliEslintContent='\x0aimport\x20{\x20baseConfig\x20}\x20from\x20\x22'+npmPackages['saasKitFlint']+'\x22;\x0aimport\x20{\x20defineConfig\x20}\x20from\x20\x22eslint/config\x22;\x0a\x0aexport\x20default\x20defineConfig([...baseConfig]);\x0a\x20\x20\x20\x20';
5
+
6
+ export { cliEslintContent, cliScripts };
@@ -3,7 +3,7 @@
3
3
 
4
4
  var projectPaths = require('../../../base-repo/app-constants/project-paths.cjs.js');
5
5
 
6
- const filesToCopy=['','git'];const rootFilesToCopy=['.gitlab-ci.yml','postcss.config.mjs','tsconfig.declaration.json','README.md','.husky','server.ts'];const appFilesToCopy=[projectPaths.clientPaths['styles'],projectPaths.projectPaths['app']+'/favicon.ico',projectPaths.projectPaths['app']+'/globals.css',projectPaths.projectPaths['app']+'/layout.tsx',projectPaths.projectPaths['app']+'/page.tsx'];const apiRoutesToCopy=[projectPaths.projectPaths['apiV1']+'/searchable-resources/route.ts',projectPaths.projectPaths['apiV1']+'/searchresult/route.ts',projectPaths.projectPaths['apiV1']+'/workspace/change/route.ts',projectPaths.projectPaths['apiV1']+'/visible-workspace/route.ts',projectPaths.projectPaths['apiV1']+'/userpermission/route.ts',projectPaths.projectPaths['apiV1']+'/user-feature/is-enabled/route.ts',projectPaths.projectPaths['apiV1']+'/uimetas/route.ts',projectPaths.projectPaths['apiV1']+'/uimeta/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/update/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/create/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/cancel/route.ts',projectPaths.projectPaths['apiV1']+'/sign-up/route.ts',projectPaths.projectPaths['apiV1']+'/sign-out/route.ts',projectPaths.projectPaths['apiV1']+'/sign-in/route.ts',projectPaths.projectPaths['apiV1']+'/preload/route.ts',projectPaths.projectPaths['apiV1']+'/payment/route.ts',projectPaths.projectPaths['apiV1']+'/payment/verify-success/route.ts',projectPaths.projectPaths['apiV1']+'/payment/verify-fail/route.ts',projectPaths.projectPaths['apiV1']+'/payment/method/route.ts',projectPaths.projectPaths['apiV1']+'/password/resetpassword/route.ts',projectPaths.projectPaths['apiV1']+'/password/forgotpassword/route.ts',projectPaths.projectPaths['apiV1']+'/otheruser/route.ts',projectPaths.projectPaths['apiV1']+'/otheruser/[id]/route.ts',projectPaths.projectPaths['apiV1']+'/log/route.ts',projectPaths.projectPaths['apiV1']+'/blob/[filename]/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/upsert/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/[id]/route.ts'];const allFilesToCopy=[...filesToCopy,...rootFilesToCopy,...appFilesToCopy,...apiRoutesToCopy];
6
+ const filesToCopy=['',''+projectPaths.folders['git']];const rootFilesToCopy=['.gitignore','postcss.config.mjs','server.ts'];const appFilesToCopy=[projectPaths.clientPaths['styles'],projectPaths.projectPaths['app']+'/favicon.ico',projectPaths.projectPaths['app']+'/globals.css',projectPaths.projectPaths['app']+'/layout.tsx',projectPaths.projectPaths['app']+'/page.tsx'];const apiRoutesToCopy=[projectPaths.projectPaths['apiV1']+'/searchable-resources/route.ts',projectPaths.projectPaths['apiV1']+'/searchresult/route.ts',projectPaths.projectPaths['apiV1']+'/workspace/change/route.ts',projectPaths.projectPaths['apiV1']+'/visible-workspace/route.ts',projectPaths.projectPaths['apiV1']+'/userpermission/route.ts',projectPaths.projectPaths['apiV1']+'/user-feature/is-enabled/route.ts',projectPaths.projectPaths['apiV1']+'/uimetas/route.ts',projectPaths.projectPaths['apiV1']+'/uimeta/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/update/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/create/route.ts',projectPaths.projectPaths['apiV1']+'/subscription/cancel/route.ts',projectPaths.projectPaths['apiV1']+'/sign-up/route.ts',projectPaths.projectPaths['apiV1']+'/sign-out/route.ts',projectPaths.projectPaths['apiV1']+'/sign-in/route.ts',projectPaths.projectPaths['apiV1']+'/preload/route.ts',projectPaths.projectPaths['apiV1']+'/payment/route.ts',projectPaths.projectPaths['apiV1']+'/payment/verify-success/route.ts',projectPaths.projectPaths['apiV1']+'/payment/verify-fail/route.ts',projectPaths.projectPaths['apiV1']+'/payment/method/route.ts',projectPaths.projectPaths['apiV1']+'/password/resetpassword/route.ts',projectPaths.projectPaths['apiV1']+'/password/forgotpassword/route.ts',projectPaths.projectPaths['apiV1']+'/otheruser/route.ts',projectPaths.projectPaths['apiV1']+'/otheruser/[id]/route.ts',projectPaths.projectPaths['apiV1']+'/log/route.ts',projectPaths.projectPaths['apiV1']+'/blob/[filename]/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/upsert/route.ts',projectPaths.projectPaths['apiV1']+'/[resourceName]/[id]/route.ts'];const allFilesToCopy=[...filesToCopy,...rootFilesToCopy,...appFilesToCopy,...apiRoutesToCopy];
7
7
 
8
8
  exports.allFilesToCopy = allFilesToCopy;
9
9
  exports.apiRoutesToCopy = apiRoutesToCopy;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
- import { clientPaths, projectPaths } from '../../../base-repo/app-constants/project-paths.js';
2
+ import { folders, clientPaths, projectPaths } from '../../../base-repo/app-constants/project-paths.js';
3
3
 
4
- const filesToCopy=['','git'];const rootFilesToCopy=['.gitlab-ci.yml','postcss.config.mjs','tsconfig.declaration.json','README.md','.husky','server.ts'];const appFilesToCopy=[clientPaths['styles'],projectPaths['app']+'/favicon.ico',projectPaths['app']+'/globals.css',projectPaths['app']+'/layout.tsx',projectPaths['app']+'/page.tsx'];const apiRoutesToCopy=[projectPaths['apiV1']+'/searchable-resources/route.ts',projectPaths['apiV1']+'/searchresult/route.ts',projectPaths['apiV1']+'/workspace/change/route.ts',projectPaths['apiV1']+'/visible-workspace/route.ts',projectPaths['apiV1']+'/userpermission/route.ts',projectPaths['apiV1']+'/user-feature/is-enabled/route.ts',projectPaths['apiV1']+'/uimetas/route.ts',projectPaths['apiV1']+'/uimeta/route.ts',projectPaths['apiV1']+'/subscription/update/route.ts',projectPaths['apiV1']+'/subscription/create/route.ts',projectPaths['apiV1']+'/subscription/cancel/route.ts',projectPaths['apiV1']+'/sign-up/route.ts',projectPaths['apiV1']+'/sign-out/route.ts',projectPaths['apiV1']+'/sign-in/route.ts',projectPaths['apiV1']+'/preload/route.ts',projectPaths['apiV1']+'/payment/route.ts',projectPaths['apiV1']+'/payment/verify-success/route.ts',projectPaths['apiV1']+'/payment/verify-fail/route.ts',projectPaths['apiV1']+'/payment/method/route.ts',projectPaths['apiV1']+'/password/resetpassword/route.ts',projectPaths['apiV1']+'/password/forgotpassword/route.ts',projectPaths['apiV1']+'/otheruser/route.ts',projectPaths['apiV1']+'/otheruser/[id]/route.ts',projectPaths['apiV1']+'/log/route.ts',projectPaths['apiV1']+'/blob/[filename]/route.ts',projectPaths['apiV1']+'/[resourceName]/route.ts',projectPaths['apiV1']+'/[resourceName]/upsert/route.ts',projectPaths['apiV1']+'/[resourceName]/[id]/route.ts'];const allFilesToCopy=[...filesToCopy,...rootFilesToCopy,...appFilesToCopy,...apiRoutesToCopy];
4
+ const filesToCopy=['',''+folders['git']];const rootFilesToCopy=['.gitignore','postcss.config.mjs','server.ts'];const appFilesToCopy=[clientPaths['styles'],projectPaths['app']+'/favicon.ico',projectPaths['app']+'/globals.css',projectPaths['app']+'/layout.tsx',projectPaths['app']+'/page.tsx'];const apiRoutesToCopy=[projectPaths['apiV1']+'/searchable-resources/route.ts',projectPaths['apiV1']+'/searchresult/route.ts',projectPaths['apiV1']+'/workspace/change/route.ts',projectPaths['apiV1']+'/visible-workspace/route.ts',projectPaths['apiV1']+'/userpermission/route.ts',projectPaths['apiV1']+'/user-feature/is-enabled/route.ts',projectPaths['apiV1']+'/uimetas/route.ts',projectPaths['apiV1']+'/uimeta/route.ts',projectPaths['apiV1']+'/subscription/update/route.ts',projectPaths['apiV1']+'/subscription/create/route.ts',projectPaths['apiV1']+'/subscription/cancel/route.ts',projectPaths['apiV1']+'/sign-up/route.ts',projectPaths['apiV1']+'/sign-out/route.ts',projectPaths['apiV1']+'/sign-in/route.ts',projectPaths['apiV1']+'/preload/route.ts',projectPaths['apiV1']+'/payment/route.ts',projectPaths['apiV1']+'/payment/verify-success/route.ts',projectPaths['apiV1']+'/payment/verify-fail/route.ts',projectPaths['apiV1']+'/payment/method/route.ts',projectPaths['apiV1']+'/password/resetpassword/route.ts',projectPaths['apiV1']+'/password/forgotpassword/route.ts',projectPaths['apiV1']+'/otheruser/route.ts',projectPaths['apiV1']+'/otheruser/[id]/route.ts',projectPaths['apiV1']+'/log/route.ts',projectPaths['apiV1']+'/blob/[filename]/route.ts',projectPaths['apiV1']+'/[resourceName]/route.ts',projectPaths['apiV1']+'/[resourceName]/upsert/route.ts',projectPaths['apiV1']+'/[resourceName]/[id]/route.ts'];const allFilesToCopy=[...filesToCopy,...rootFilesToCopy,...appFilesToCopy,...apiRoutesToCopy];
5
5
 
6
6
  export { allFilesToCopy, apiRoutesToCopy, appFilesToCopy, filesToCopy, rootFilesToCopy };