@fernir2/saas-kit-cli 0.1.32 → 0.1.33

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 (149) 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 +3 -1
  4. package/base-repo/app-constants/project-paths.js +3 -2
  5. package/base-repo/constants/packages.cjs2.js +6 -0
  6. package/base-repo/constants/packages2.js +4 -0
  7. package/cli/.gitlab-ci.yml +1 -0
  8. package/cli/bin/index.ts +35 -9
  9. package/cli/next.config.js +73 -48
  10. package/cli/package-template.json +15 -12
  11. package/cli/public/images/00000000-0000-0000-0000-000000000000.webp +0 -0
  12. package/cli/public/images/companies/00000000-0000-0000-0000-000000000000.webp +0 -0
  13. package/cli/public/images/companies/004a196f-f9a7-49fc-9e05-606fffd0613c.webp +0 -0
  14. package/cli/public/images/companies/497b26a6-3e91-4b27-8c24-f3b145fc6c7f.webp +0 -0
  15. package/cli/public/images/companies/6cead29b-2572-4283-add6-f407b39d7135.webp +0 -0
  16. package/cli/public/images/companies/71efdb77-4ecb-45e6-bc83-0fdff835c2e7.webp +0 -0
  17. package/cli/public/images/companies/773602c8-a417-4afc-adb0-bb6856ac2970.webp +0 -0
  18. package/cli/public/images/companies/9d09881a-cf60-438d-9edf-10f5864d4468.webp +0 -0
  19. package/cli/public/images/companies/a1b2c3d4-e5f6-7890-1234-56789abcdef0.webp +0 -0
  20. package/cli/public/images/companies/b04d7c5e-18de-4f44-b923-5bfb28bb33bb.webp +0 -0
  21. package/cli/public/images/companies/c75c22fc-d295-472e-bdae-dbb8eb09cf18.webp +0 -0
  22. package/cli/public/images/companies/cdf3efb4-33a2-485e-8d95-e0ab5a4cb6a5.webp +0 -0
  23. package/cli/public/images/companies/d6fe4c6a-ecdb-40fc-a8e6-2044ef2b82d4.webp +0 -0
  24. package/cli/public/images/contacts/159e4c7a-ff5f-4162-8237-acec3ca8a759.webp +0 -0
  25. package/cli/public/images/contacts/65e07208-6b1f-4a59-b5e3-2f80f5741b18.webp +0 -0
  26. package/cli/public/images/contacts/6d1c5410-ef5b-4d37-8b8d-4ab8cfc87785.webp +0 -0
  27. package/cli/public/images/contacts/754c77d8-eefb-4a90-b07b-ed00980c88b4.webp +0 -0
  28. package/cli/public/images/contacts/9fd23cd9-9b94-4bb8-bb73-d315b93b8a5c.webp +0 -0
  29. package/cli/public/images/contacts/b2f746d1-6b3c-4c47-8e07-f73927c167cb.webp +0 -0
  30. package/cli/public/images/contacts/b515cb46-eab4-4862-9e8e-c2f5f217ae79.webp +0 -0
  31. package/cli/public/images/contacts/cf2eae72-e5ab-4d95-8f08-b6571b44f8eb.webp +0 -0
  32. package/cli/public/images/contacts/ec0e0285-22d9-48d4-b4b3-96388c37c807.webp +0 -0
  33. package/cli/public/images/contacts/ecb1a0f4-d244-4136-badf-c2bc72e3b678.webp +0 -0
  34. package/cli/public/images/login-image-dark.jpg +0 -0
  35. package/cli/public/images/login-image.jpg +0 -0
  36. package/cli/public/images/no-image.png +0 -0
  37. package/cli/public/images/profile.png +0 -0
  38. package/cli/public/images/search-not-found-result.png +0 -0
  39. package/cli/public/images/shipment/076aecd1-7fb8-5d89-baa9-e48e61048525.pdf +0 -0
  40. package/cli/public/images/shipment/21884fb7-6e39-4f7b-9a49-0f46d527f50c.pdf +0 -0
  41. package/cli/public/images/shipment/e6367904-081e-479b-a8c5-5972057a261e.pdf +0 -0
  42. package/cli/public/images/store/00000000-0000-0000-0000-000000000000.webp +0 -0
  43. package/cli/public/images/test/photo-1460925895917-afdab827c52f.jpg +0 -0
  44. package/cli/public/images/test/photo-1499636136210-6f4ee915583e.jpg +0 -0
  45. package/cli/public/images/test/photo-1519681393784-d120267933ba.jpg +0 -0
  46. package/cli/public/images/toolbar-logo.png +0 -0
  47. package/cli/public/images/users/00000000-0000-0000-0000-000000000000.webp +0 -0
  48. package/cli/public/images/users/02d1230f-5bfe-46b4-8ce1-d10f4aa918a7.webp +0 -0
  49. package/cli/public/images/users/166c5e4a-696f-4bf5-ab48-dbbb5e90d526.webp +0 -0
  50. package/cli/public/images/users/175a3f0c-692c-4503-87eb-ff95d6535e16.webp +0 -0
  51. package/cli/public/images/users/8398ee85-7546-4710-b628-44c98e4ba03a.webp +0 -0
  52. package/cli/public/images/users/979f8933-71b1-4df8-b691-566a901d3c76.webp +0 -0
  53. package/cli/public/images/users/fbe37132-31bc-4fc9-9bfb-aac7a1b61a7f.webp +0 -0
  54. package/cli/src/app/f/(private)/dashboard/page.tsx +8 -0
  55. package/cli/src/app/f/(private)/dynamiclayout/page.tsx +8 -0
  56. package/cli/src/app/f/(private)/edituser/[id]/page.tsx +8 -0
  57. package/cli/src/app/f/(private)/edituser/page.tsx +8 -0
  58. package/cli/src/app/f/(private)/layout.tsx +5 -0
  59. package/cli/src/app/f/(private)/lm/page.tsx +8 -0
  60. package/cli/src/app/f/(private)/payment-plans/page.tsx +8 -0
  61. package/cli/src/app/f/(private)/preload/page.tsx +8 -0
  62. package/cli/src/app/f/(private)/statusboard/page.tsx +8 -0
  63. package/cli/src/app/f/(private)/userlist/page.tsx +8 -0
  64. package/cli/src/app/f/(private)/view/page.tsx +8 -0
  65. package/cli/src/app/f/defaultRedirect/page.tsx +9 -0
  66. package/cli/src/app/f/editpassword/page.tsx +8 -0
  67. package/cli/src/app/f/forgotpassword/page.tsx +13 -0
  68. package/cli/src/app/f/resetpassword/page.tsx +16 -0
  69. package/cli/src/app/f/sign-in/microsoft/page.tsx +8 -0
  70. package/cli/src/app/f/sign-in/page.tsx +13 -0
  71. package/cli/src/app/f/sign-up/page.tsx +13 -0
  72. package/cli/src/app/f/test/feed/page.tsx +8 -0
  73. package/cli/src/app/f/test/file-upload/page.tsx +8 -0
  74. package/cli/src/app/f/test/layout.tsx +5 -0
  75. package/cli/src/app/f/test/page.tsx +8 -0
  76. package/cli/tailwind.config.ts +1 -1
  77. package/level2/cli/create-saas-kit-app/bin/index.cjs.js +4 -4
  78. package/level2/cli/create-saas-kit-app/bin/index.js +4 -4
  79. package/level2/fd-toolbox/api/api-client.cjs.js +1 -1
  80. package/level2/fd-toolbox/api/api-client.js +1 -1
  81. package/level2/fd-toolbox/api/api-path-names.cjs.js +2 -2
  82. package/level2/fd-toolbox/api/api-paths.cjs.js +1 -1
  83. package/level2/fd-toolbox/api/api-paths.js +1 -1
  84. package/level2/fd-toolbox/api/base-api.cjs.js +1 -1
  85. package/level2/fd-toolbox/api/base-api.js +1 -1
  86. package/level2/fd-toolbox/auth/login-states.cjs.js +1 -1
  87. package/level2/fd-toolbox/auth/login-states.js +1 -1
  88. package/level2/fd-toolbox/auth/session-storage.cjs.js +1 -1
  89. package/level2/fd-toolbox/auth/session-storage.js +1 -1
  90. package/level2/fd-toolbox/auth/tokens.cjs.js +1 -1
  91. package/level2/fd-toolbox/auth/tokens.js +1 -1
  92. package/level2/fd-toolbox/constants/constants.cjs.js +1 -1
  93. package/level2/fd-toolbox/constants/constants.js +1 -1
  94. package/level2/fd-toolbox/enums/enums.cjs.js +1 -1
  95. package/level2/fd-toolbox/enums/enums.js +1 -1
  96. package/level2/fd-toolbox/errors/error-handler.cjs.js +1 -1
  97. package/level2/fd-toolbox/errors/error-handler.js +1 -1
  98. package/level2/fd-toolbox/errors/errors.cjs.js +1 -1
  99. package/level2/fd-toolbox/errors/errors.js +1 -1
  100. package/level2/fd-toolbox/errors/problem-details.cjs.js +1 -1
  101. package/level2/fd-toolbox/errors/problem-details.js +1 -1
  102. package/level2/fd-toolbox/functions/value-checking-functions.cjs.js +1 -1
  103. package/level2/fd-toolbox/functions/value-checking-functions.js +1 -1
  104. package/level2/fd-toolbox/http/url/urls.cjs.js +1 -1
  105. package/level2/fd-toolbox/http/url/urls.js +1 -1
  106. package/level2/fd-toolbox/infra/env-config.cjs.js +2 -2
  107. package/level2/fd-toolbox/infra/env-config.js +2 -2
  108. package/level2/fd-toolbox/infra/env-functions.cjs.js +1 -1
  109. package/level2/fd-toolbox/infra/env-functions.js +1 -1
  110. package/level2/fd-toolbox/infra/env-schema.cjs.js +2 -2
  111. package/level2/fd-toolbox/infra/env-schema.js +2 -2
  112. package/level2/fd-toolbox/infra/env-store.cjs.js +1 -1
  113. package/level2/fd-toolbox/infra/env-store.js +1 -1
  114. package/level2/fd-toolbox/lib/environments.cjs.js +1 -1
  115. package/level2/fd-toolbox/lib/environments.js +1 -1
  116. package/level2/fd-toolbox/lib/utils.cjs.js +1 -1
  117. package/level2/fd-toolbox/lib/utils.js +1 -1
  118. package/level2/fd-toolbox/local-storage/local-storage.cjs.js +1 -1
  119. package/level2/fd-toolbox/local-storage/local-storage.js +1 -1
  120. package/level2/fd-toolbox/logging/loggers.cjs.js +1 -1
  121. package/level2/fd-toolbox/logging/loggers.js +1 -1
  122. package/level2/fd-toolbox/notifications.cjs.js +2 -2
  123. package/level2/fd-toolbox/notifications.js +2 -2
  124. package/level2/fd-toolbox/odata/odata-constants.cjs.js +1 -1
  125. package/level2/fd-toolbox/odata/odata-constants.js +1 -1
  126. package/level2/fd-toolbox/odata/odatas.cjs.js +1 -1
  127. package/level2/fd-toolbox/odata/odatas.js +1 -1
  128. package/level2/fd-toolbox/odata/services/odata-filters.cjs.js +1 -1
  129. package/level2/fd-toolbox/odata/services/odata-filters.js +1 -1
  130. package/level2/fd-toolbox/paths/paths-names.cjs.js +2 -2
  131. package/level2/fd-toolbox/paths/paths-names.js +1 -1
  132. package/level2/fd-toolbox/routing/login-routers.cjs.js +1 -1
  133. package/level2/fd-toolbox/routing/login-routers.js +1 -1
  134. package/level2/fd-toolbox/routing/paths.cjs.js +1 -1
  135. package/level2/fd-toolbox/routing/paths.js +1 -1
  136. package/level2/fd-toolbox/strings/strings-constants.cjs.js +1 -1
  137. package/level2/fd-toolbox/strings/strings-constants.js +1 -1
  138. package/level2/fd-toolbox/strings/strings.cjs.js +1 -1
  139. package/level2/fd-toolbox/strings/strings.js +1 -1
  140. package/level2/fd-toolbox/types/ensure-type.cjs.js +1 -1
  141. package/level2/fd-toolbox/types/ensure-type.js +1 -1
  142. package/level2/fd-toolbox-core/core/name-of.cjs.js +1 -1
  143. package/level2/fd-toolbox-core/core/name-of.js +1 -1
  144. package/level2/fd-toolbox-core/types/resource-with-id.cjs.js +1 -1
  145. package/level2/fd-toolbox-core/types/resource-with-id.js +1 -1
  146. package/level2/npm-commands/build-npm/path.cjs.js +1 -1
  147. package/level2/npm-commands/build-npm/path.js +1 -1
  148. package/package.json +23 -15
  149. /package/cli/{.env → .env.example} +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  'use strict';
3
3
 
4
- const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x223b5c,_0x44ff33])=>[_0x223b5c+'/*',[_0x44ff33+'/*']]));
4
+ const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x430ccf,_0x5eba46])=>[_0x430ccf+'/*',[_0x5eba46+'/*']]));
5
5
 
6
6
  exports.aliasSymbols = aliasSymbols;
7
7
  exports.modulePathAliases = modulePathAliases;
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
- const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x223b5c,_0x44ff33])=>[_0x223b5c+'/*',[_0x44ff33+'/*']]));
2
+ const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x430ccf,_0x5eba46])=>[_0x430ccf+'/*',[_0x5eba46+'/*']]));
3
3
 
4
4
  export { aliasSymbols, modulePathAliases, typescriptAliases };
@@ -2,13 +2,15 @@
2
2
  'use strict';
3
3
 
4
4
  var aliasSymbols = require('./alias-symbols.cjs.js');
5
+ var packages = require('../constants/packages.cjs2.js');
5
6
 
6
- const projectPaths={'root':'/','currentDir':'./','src':'src/','app':'src/app','apiV1':'src/app/api/v1','clientFramework':'client/framework','serverFramework':'server/framework','apiHooks':'api/hooks','git':'packages/base-repo/tools/git','npmCommands':'npm-commands/','buildNpm':'packages/level2/npm-commands/build-npm','createSaasKitApp':'packages/level2/cli/create-saas-kit-app','server':'/server/','serverContent':'/server/content','lib':'lib/','package':'package/','packageCli':'cli-package/','generated':'generated/','htmlTemplates':'html-templates/','buildPackage':'./build/package','buildPackagesTypes':'./build/package/types','buildPackagesTypesOutput':'./build/package/types-output','metaServer':'meta/server','srcComponents':'src/components','toolsNpmCommands':'tools/npm-commands/','tools':'tools/','packagesDocsContent':'./packages/docs/content'};const folders={'src':'src','baseRepo':'base-repo','cli':'cli','common':'common','docs':'docs','enricher':'enricher','fdAppToolbox':'fd-app-toolbox','fdComponentToolbox':'fd-component-toolbox','fdToolbox':'fd-toolbox','fdToolboxCore':'fd-toolbox-core','flint':'flint','infra':'infra','internalCli':'internal-cli','meta':'meta','npmCommands':'npm-commands','other':'other','server':'server','test':'test','tools':'tools','client':'client','generated':'generated','dist':'dist','lib':'lib','packages':'packages','package':'package','build':'build','bin':'bin','buildNpm':'build-npm','genExports':'gen-exports','modules':'modules','generatedTests':'generated-tests','nodeModules':'node_modules','next':'.next','nodeCache':'.node_cache','nx':'.nx','vscode':'.vscode','git':'.git','playwrightReport':'playwright-report','testResults':'test-results','rollup':'rollup','replaceAliases':'replace-aliases','pages':'pages','deploy':'deploy','level2':'level2','monorepo':'monorepo','content':'content'};const files={'metaJson':'meta.json','schema':'schema.ts','schemaDts':'schema.d.ts','schemaJs':'schema.js','crudHandlerMap':'crud-handler-map.ts','tsconfig':'tsconfig.json','tsconfigBase':'tsconfig.base.json','tsconfigResources':'tsconfig.resources.json','tsconfigLint':'tsconfig.lint.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml'};const packagesPath={'packagesBaseRepo':folders['packages']+'/'+folders['baseRepo']+'/','packagesCli':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/','packagesCommon':folders['packages']+'/'+folders['level2']+'/'+folders['common']+'/','packagesDocs':folders['packages']+'/'+folders['docs']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolboxCore']+'/','packagesFlint':folders['packages']+'/'+folders['flint']+'/','packagesInfra':folders['packages']+'/'+folders['infra']+'/','packagesInternalCli':folders['packages']+'/'+folders['internalCli']+'/','packagesMeta':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/','packagesNpmCommands':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/','packagesOther':folders['packages']+'/'+folders['level2']+'/'+folders['other']+'/','packagesServer':folders['packages']+'/'+folders['level2']+'/'+folders['server']+'/','packagesTest':folders['packages']+'/'+folders['test']+'/','packagesTools':folders['packages']+'/'+folders['level2']+'/'+folders['tools']+'/','packagesClient':folders['packages']+'/'+folders['level2']+'/'+folders['client']+'/'};const generatedPaths={'metaJson':folders['generated']+'/'+files['metaJson'],'tsconfigResources':folders['generated']+'/'+files['tsconfigResources'],'schema':folders['generated']+'/'+files['schema'],'schemaDts':folders['generated']+'/'+files['schemaDts'],'schemaJs':folders['generated']+'/'+files['schemaJs'],'crudHandlerMap':folders['generated']+'/'+files['crudHandlerMap']};const clientPaths={'styles':packagesPath['packagesClient']+'/styles','components':packagesPath['packagesClient']+'/components','pages':packagesPath['packagesClient']+'/pages','payments':packagesPath['packagesClient']+'/payments','products':packagesPath['packagesClient']+'/products','websiteScan':packagesPath['packagesClient']+'/website-scan'};const infraPaths={'lintJob':aliasSymbols.aliases['infra']+'/ci/jobs/lint','buildAndTestJob':aliasSymbols.aliases['infra']+'/ci/jobs/build-and-test','saasKitTestBuildAndTestJob':'@infra/ci/jobs/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliasSymbols.aliases['infra']+'/ci/jobs/create-saas-kit-app-test','manualCleanupJob':aliasSymbols.aliases['infra']+'/ci/jobs/manual-cleanup','cleanupScript':aliasSymbols.aliases['infra']+'/ci/setup/cleanup','setupScript':aliasSymbols.aliases['infra']+'/ci/setup/setup'};
7
+ const folders={'src':'src','baseRepo':'base-repo','cli':'cli','common':'common','docs':'docs','enricher':'enricher','fdAppToolbox':'fd-app-toolbox','fdComponentToolbox':'fd-component-toolbox','fdToolbox':'fd-toolbox','fdToolboxCore':'fd-toolbox-core','flint':'flint','infra':'infra','internalCli':'internal-cli','meta':'meta','npmCommands':'npm-commands','other':'other','server':'server','test':'test','tools':'tools','client':'client','generated':'generated','dist':'dist','lib':'lib','packages':'packages','package':'package','build':'build','bin':'bin','buildNpm':'build-npm','genExports':'gen-exports','modules':'modules','generatedTests':'generated-tests','nodeModules':'node_modules','next':'.next','nodeCache':'.node_cache','nx':'.nx','vscode':'.vscode','git':'.git','playwrightReport':'playwright-report','testResults':'test-results','rollup':'rollup','replaceAliases':'replace-aliases','pages':'pages','deploy':'deploy','level2':'level2','monorepo':'monorepo','content':'content','components':'components','app':'app'};const files={'metaJson':'meta.json','schema':'schema.ts','schemaDts':'schema.d.ts','schemaJs':'schema.js','crudHandlerMap':'crud-handler-map.ts','tsconfig':'tsconfig.json','tsconfigBase':'tsconfig.base.json','tsconfigResources':'tsconfig.resources.json','tsconfigLint':'tsconfig.lint.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js'};const projectPaths={'root':'/','currentDir':'./','src':'src/','app':'src/app','apiV1':'src/app/api/v1','clientFramework':'client/framework','serverFramework':'server/framework','apiHooks':'api/hooks','git':'packages/base-repo/tools/git','npmCommands':'npm-commands/','buildNpm':'packages/level2/npm-commands/build-npm','createSaasKitApp':'packages/level2/cli/create-saas-kit-app','server':'/server/','serverContent':'/server/content','lib':'lib/','package':'package/','packageCli':'cli-package/','generated':'generated/','htmlTemplates':'html-templates/','buildPackage':'./build/package','buildCliPackage':'./build/cli-package','buildPackagesTypes':'./build/package/types','buildPackagesTypesOutput':'./build/package/types-output','metaServer':'meta/server','srcComponents':'src/components','toolsNpmCommands':'tools/npm-commands/','tools':'tools/','packagesDocsContent':'./packages/docs/content','saasKitNodeModulesPath':folders['nodeModules']+'/'+packages.npmPackages['saasKit']+'/','f':'src/app/f','public':'public/','images':'public/images','createCliSaasKitApp':'level2/cli/create-saas-kit-app/bin'};const packagesPath={'packagesBaseRepo':folders['packages']+'/'+folders['baseRepo']+'/','packagesCli':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/','packagesCommon':folders['packages']+'/'+folders['level2']+'/'+folders['common']+'/','packagesDocs':folders['packages']+'/'+folders['docs']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolboxCore']+'/','packagesFlint':folders['packages']+'/'+folders['flint']+'/','packagesInfra':folders['packages']+'/'+folders['infra']+'/','packagesInternalCli':folders['packages']+'/'+folders['internalCli']+'/','packagesMeta':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/','packagesNpmCommands':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/','packagesOther':folders['packages']+'/'+folders['level2']+'/'+folders['other']+'/','packagesServer':folders['packages']+'/'+folders['level2']+'/'+folders['server']+'/','packagesTest':folders['packages']+'/'+folders['test']+'/','packagesTools':folders['packages']+'/'+folders['level2']+'/'+folders['tools']+'/','packagesClient':folders['packages']+'/'+folders['level2']+'/'+folders['client']+'/'};const generatedPaths={'metaJson':folders['generated']+'/'+files['metaJson'],'tsconfigResources':folders['generated']+'/'+files['tsconfigResources'],'schema':folders['generated']+'/'+files['schema'],'schemaDts':folders['generated']+'/'+files['schemaDts'],'schemaJs':folders['generated']+'/'+files['schemaJs'],'crudHandlerMap':folders['generated']+'/'+files['crudHandlerMap']};const clientPaths={'styles':packagesPath['packagesClient']+'/styles','components':packagesPath['packagesClient']+'/components','pages':packagesPath['packagesClient']+'/pages','payments':packagesPath['packagesClient']+'/payments','products':packagesPath['packagesClient']+'/products','websiteScan':packagesPath['packagesClient']+'/website-scan'};const infraPaths={'lintJob':aliasSymbols.aliases['infra']+'/ci/jobs/lint','buildAndTestJob':aliasSymbols.aliases['infra']+'/ci/jobs/build-and-test','saasKitTestBuildAndTestJob':'@infra/ci/jobs/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliasSymbols.aliases['infra']+'/ci/jobs/create-saas-kit-app-test','manualCleanupJob':aliasSymbols.aliases['infra']+'/ci/jobs/manual-cleanup','cleanupScript':aliasSymbols.aliases['infra']+'/ci/setup/cleanup','setupScript':aliasSymbols.aliases['infra']+'/ci/setup/setup'};const globPatterns={'tsTsx':'**/*.{ts,tsx}','jsTsJsxTsx':'**/*.{js,ts,jsx,tsx}'};
7
8
 
8
9
  exports.clientPaths = clientPaths;
9
10
  exports.files = files;
10
11
  exports.folders = folders;
11
12
  exports.generatedPaths = generatedPaths;
13
+ exports.globPatterns = globPatterns;
12
14
  exports.infraPaths = infraPaths;
13
15
  exports.packagesPath = packagesPath;
14
16
  exports.projectPaths = projectPaths;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  import { aliases } from './alias-symbols.js';
3
+ import { npmPackages } from '../constants/packages2.js';
3
4
 
4
- const projectPaths={'root':'/','currentDir':'./','src':'src/','app':'src/app','apiV1':'src/app/api/v1','clientFramework':'client/framework','serverFramework':'server/framework','apiHooks':'api/hooks','git':'packages/base-repo/tools/git','npmCommands':'npm-commands/','buildNpm':'packages/level2/npm-commands/build-npm','createSaasKitApp':'packages/level2/cli/create-saas-kit-app','server':'/server/','serverContent':'/server/content','lib':'lib/','package':'package/','packageCli':'cli-package/','generated':'generated/','htmlTemplates':'html-templates/','buildPackage':'./build/package','buildPackagesTypes':'./build/package/types','buildPackagesTypesOutput':'./build/package/types-output','metaServer':'meta/server','srcComponents':'src/components','toolsNpmCommands':'tools/npm-commands/','tools':'tools/','packagesDocsContent':'./packages/docs/content'};const folders={'src':'src','baseRepo':'base-repo','cli':'cli','common':'common','docs':'docs','enricher':'enricher','fdAppToolbox':'fd-app-toolbox','fdComponentToolbox':'fd-component-toolbox','fdToolbox':'fd-toolbox','fdToolboxCore':'fd-toolbox-core','flint':'flint','infra':'infra','internalCli':'internal-cli','meta':'meta','npmCommands':'npm-commands','other':'other','server':'server','test':'test','tools':'tools','client':'client','generated':'generated','dist':'dist','lib':'lib','packages':'packages','package':'package','build':'build','bin':'bin','buildNpm':'build-npm','genExports':'gen-exports','modules':'modules','generatedTests':'generated-tests','nodeModules':'node_modules','next':'.next','nodeCache':'.node_cache','nx':'.nx','vscode':'.vscode','git':'.git','playwrightReport':'playwright-report','testResults':'test-results','rollup':'rollup','replaceAliases':'replace-aliases','pages':'pages','deploy':'deploy','level2':'level2','monorepo':'monorepo','content':'content'};const files={'metaJson':'meta.json','schema':'schema.ts','schemaDts':'schema.d.ts','schemaJs':'schema.js','crudHandlerMap':'crud-handler-map.ts','tsconfig':'tsconfig.json','tsconfigBase':'tsconfig.base.json','tsconfigResources':'tsconfig.resources.json','tsconfigLint':'tsconfig.lint.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml'};const packagesPath={'packagesBaseRepo':folders['packages']+'/'+folders['baseRepo']+'/','packagesCli':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/','packagesCommon':folders['packages']+'/'+folders['level2']+'/'+folders['common']+'/','packagesDocs':folders['packages']+'/'+folders['docs']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolboxCore']+'/','packagesFlint':folders['packages']+'/'+folders['flint']+'/','packagesInfra':folders['packages']+'/'+folders['infra']+'/','packagesInternalCli':folders['packages']+'/'+folders['internalCli']+'/','packagesMeta':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/','packagesNpmCommands':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/','packagesOther':folders['packages']+'/'+folders['level2']+'/'+folders['other']+'/','packagesServer':folders['packages']+'/'+folders['level2']+'/'+folders['server']+'/','packagesTest':folders['packages']+'/'+folders['test']+'/','packagesTools':folders['packages']+'/'+folders['level2']+'/'+folders['tools']+'/','packagesClient':folders['packages']+'/'+folders['level2']+'/'+folders['client']+'/'};const generatedPaths={'metaJson':folders['generated']+'/'+files['metaJson'],'tsconfigResources':folders['generated']+'/'+files['tsconfigResources'],'schema':folders['generated']+'/'+files['schema'],'schemaDts':folders['generated']+'/'+files['schemaDts'],'schemaJs':folders['generated']+'/'+files['schemaJs'],'crudHandlerMap':folders['generated']+'/'+files['crudHandlerMap']};const clientPaths={'styles':packagesPath['packagesClient']+'/styles','components':packagesPath['packagesClient']+'/components','pages':packagesPath['packagesClient']+'/pages','payments':packagesPath['packagesClient']+'/payments','products':packagesPath['packagesClient']+'/products','websiteScan':packagesPath['packagesClient']+'/website-scan'};const infraPaths={'lintJob':aliases['infra']+'/ci/jobs/lint','buildAndTestJob':aliases['infra']+'/ci/jobs/build-and-test','saasKitTestBuildAndTestJob':'@infra/ci/jobs/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliases['infra']+'/ci/jobs/create-saas-kit-app-test','manualCleanupJob':aliases['infra']+'/ci/jobs/manual-cleanup','cleanupScript':aliases['infra']+'/ci/setup/cleanup','setupScript':aliases['infra']+'/ci/setup/setup'};
5
+ const folders={'src':'src','baseRepo':'base-repo','cli':'cli','common':'common','docs':'docs','enricher':'enricher','fdAppToolbox':'fd-app-toolbox','fdComponentToolbox':'fd-component-toolbox','fdToolbox':'fd-toolbox','fdToolboxCore':'fd-toolbox-core','flint':'flint','infra':'infra','internalCli':'internal-cli','meta':'meta','npmCommands':'npm-commands','other':'other','server':'server','test':'test','tools':'tools','client':'client','generated':'generated','dist':'dist','lib':'lib','packages':'packages','package':'package','build':'build','bin':'bin','buildNpm':'build-npm','genExports':'gen-exports','modules':'modules','generatedTests':'generated-tests','nodeModules':'node_modules','next':'.next','nodeCache':'.node_cache','nx':'.nx','vscode':'.vscode','git':'.git','playwrightReport':'playwright-report','testResults':'test-results','rollup':'rollup','replaceAliases':'replace-aliases','pages':'pages','deploy':'deploy','level2':'level2','monorepo':'monorepo','content':'content','components':'components','app':'app'};const files={'metaJson':'meta.json','schema':'schema.ts','schemaDts':'schema.d.ts','schemaJs':'schema.js','crudHandlerMap':'crud-handler-map.ts','tsconfig':'tsconfig.json','tsconfigBase':'tsconfig.base.json','tsconfigResources':'tsconfig.resources.json','tsconfigLint':'tsconfig.lint.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js'};const projectPaths={'root':'/','currentDir':'./','src':'src/','app':'src/app','apiV1':'src/app/api/v1','clientFramework':'client/framework','serverFramework':'server/framework','apiHooks':'api/hooks','git':'packages/base-repo/tools/git','npmCommands':'npm-commands/','buildNpm':'packages/level2/npm-commands/build-npm','createSaasKitApp':'packages/level2/cli/create-saas-kit-app','server':'/server/','serverContent':'/server/content','lib':'lib/','package':'package/','packageCli':'cli-package/','generated':'generated/','htmlTemplates':'html-templates/','buildPackage':'./build/package','buildCliPackage':'./build/cli-package','buildPackagesTypes':'./build/package/types','buildPackagesTypesOutput':'./build/package/types-output','metaServer':'meta/server','srcComponents':'src/components','toolsNpmCommands':'tools/npm-commands/','tools':'tools/','packagesDocsContent':'./packages/docs/content','saasKitNodeModulesPath':folders['nodeModules']+'/'+npmPackages['saasKit']+'/','f':'src/app/f','public':'public/','images':'public/images','createCliSaasKitApp':'level2/cli/create-saas-kit-app/bin'};const packagesPath={'packagesBaseRepo':folders['packages']+'/'+folders['baseRepo']+'/','packagesCli':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/','packagesCommon':folders['packages']+'/'+folders['level2']+'/'+folders['common']+'/','packagesDocs':folders['packages']+'/'+folders['docs']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+folders['level2']+'/'+folders['fdToolboxCore']+'/','packagesFlint':folders['packages']+'/'+folders['flint']+'/','packagesInfra':folders['packages']+'/'+folders['infra']+'/','packagesInternalCli':folders['packages']+'/'+folders['internalCli']+'/','packagesMeta':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/','packagesNpmCommands':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/','packagesOther':folders['packages']+'/'+folders['level2']+'/'+folders['other']+'/','packagesServer':folders['packages']+'/'+folders['level2']+'/'+folders['server']+'/','packagesTest':folders['packages']+'/'+folders['test']+'/','packagesTools':folders['packages']+'/'+folders['level2']+'/'+folders['tools']+'/','packagesClient':folders['packages']+'/'+folders['level2']+'/'+folders['client']+'/'};const generatedPaths={'metaJson':folders['generated']+'/'+files['metaJson'],'tsconfigResources':folders['generated']+'/'+files['tsconfigResources'],'schema':folders['generated']+'/'+files['schema'],'schemaDts':folders['generated']+'/'+files['schemaDts'],'schemaJs':folders['generated']+'/'+files['schemaJs'],'crudHandlerMap':folders['generated']+'/'+files['crudHandlerMap']};const clientPaths={'styles':packagesPath['packagesClient']+'/styles','components':packagesPath['packagesClient']+'/components','pages':packagesPath['packagesClient']+'/pages','payments':packagesPath['packagesClient']+'/payments','products':packagesPath['packagesClient']+'/products','websiteScan':packagesPath['packagesClient']+'/website-scan'};const infraPaths={'lintJob':aliases['infra']+'/ci/jobs/lint','buildAndTestJob':aliases['infra']+'/ci/jobs/build-and-test','saasKitTestBuildAndTestJob':'@infra/ci/jobs/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliases['infra']+'/ci/jobs/create-saas-kit-app-test','manualCleanupJob':aliases['infra']+'/ci/jobs/manual-cleanup','cleanupScript':aliases['infra']+'/ci/setup/cleanup','setupScript':aliases['infra']+'/ci/setup/setup'};const globPatterns={'tsTsx':'**/*.{ts,tsx}','jsTsJsxTsx':'**/*.{js,ts,jsx,tsx}'};
5
6
 
6
- export { clientPaths, files, folders, generatedPaths, infraPaths, packagesPath, projectPaths };
7
+ export { clientPaths, files, folders, generatedPaths, globPatterns, infraPaths, packagesPath, projectPaths };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ const npmPackages={'nodeModulesFernir':'node_modules/@fernir2','nodeModulesSaasKit':'node_modules/@fernir2/saas-kit','saasKit':'@fernir2/saas-kit','saasKitServer':'@fernir2/saas-kit/server','saasKitStyles':'@fernir2/saas-kit/styles','awsSdkS3':'@aws-sdk/client-s3'};
5
+
6
+ exports.npmPackages = npmPackages;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ const npmPackages={'nodeModulesFernir':'node_modules/@fernir2','nodeModulesSaasKit':'node_modules/@fernir2/saas-kit','saasKit':'@fernir2/saas-kit','saasKitServer':'@fernir2/saas-kit/server','saasKitStyles':'@fernir2/saas-kit/styles','awsSdkS3':'@aws-sdk/client-s3'};
3
+
4
+ export { npmPackages };
@@ -11,5 +11,6 @@ include:
11
11
  - "packages/infra/ci/templates/manual-cleanup.yml"
12
12
  - "packages/infra/ci/templates/update-submodules.yml"
13
13
  - "packages/infra/ci/templates/deploy-to-vercel.yml"
14
+ - "packages/infra/ci/templates/publish-and-test-package.yml"
14
15
  - "packages/infra/ci/templates/clear-nx-cache.yml"
15
16
  - "packages/infra/ci/templates/drop-all-db.yml"
package/cli/bin/index.ts CHANGED
@@ -20,7 +20,7 @@ import { allFilesToCopy } from "@packages/level2/npm-commands/build-npm/path";
20
20
 
21
21
  import { createError } from "@packages/level2/fd-toolbox/errors/errors";
22
22
 
23
- import { folders } from "@packages/base-repo/app-constants/project-paths";
23
+ import { files, folders } from "@packages/base-repo/app-constants/project-paths";
24
24
 
25
25
  import { npmPackages } from "@packages/base-repo/constants/packages";
26
26
 
@@ -51,7 +51,7 @@ const filename = fileURLToPath(import.meta.url);
51
51
  const sourceDir = "../../../../";
52
52
  const binDir = path.dirname(filename);
53
53
  const repoRoot = path.resolve(binDir, sourceDir);
54
- const envLocalPath: string = path.join(binDir, `${sourceDir}${folders.cli}/.env`);
54
+ const envLocalPath: string = path.join(binDir, `${sourceDir}${folders.cli}/${files.env}`);
55
55
  const envTemplate: string = fs.readFileSync(envLocalPath, "utf8");
56
56
 
57
57
  const foldersToIgnore: string[] = [`${folders.cli}/constants`];
@@ -101,6 +101,13 @@ function createNextProject(projectTitle: string, targetDir: string) {
101
101
 
102
102
  runCommand(createCommand, path.dirname(targetDir));
103
103
  logInfoRaw("Next.js project created!");
104
+
105
+ const tsConfigPath = path.join(targetDir, "next.config.ts");
106
+
107
+ if (fs.existsSync(tsConfigPath)) {
108
+ fs.rmSync(tsConfigPath);
109
+ logInfoRaw("Removed default next.config.ts");
110
+ }
104
111
  }
105
112
 
106
113
  async function createEnvFile(targetDir: string) {
@@ -153,21 +160,31 @@ async function overridePackageJson(targetDir: string) {
153
160
  function replaceImports(content: string) {
154
161
  // Approved
155
162
  // eslint-disable-next-line sonarjs/slow-regex
156
- const importRegex = /(import\s+[^'"]*from\s+["'])([^"']+)(["'])/g;
163
+ const importRegex = /(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;
157
164
 
158
- return content.replace(importRegex, (match, p1, importPath, p3) => {
165
+ return content.replace(importRegex, (match, p1, importItems, p3, importPath, p5) => {
159
166
  if (!importPath.startsWith(aliasSymbols.atSign) || importPath.startsWith(npmPackages.saasKit)) {
160
167
  return match;
161
168
  }
162
169
 
170
+ let newImportPath;
171
+
163
172
  if (
164
173
  importPath.startsWith(aliasSymbols.atSign + folders.server) ||
165
174
  importPath.includes(`/${folders.server}/`)
166
175
  ) {
167
- return `${p1}${npmPackages.saasKitServer}${p3}`;
176
+ newImportPath = npmPackages.saasKitServer;
177
+ } else {
178
+ newImportPath = npmPackages.saasKit;
179
+ }
180
+
181
+ let newImportItems = importItems.trim();
182
+
183
+ if (!newImportItems.startsWith("{")) {
184
+ newImportItems = `{ ${newImportItems} }`;
168
185
  }
169
186
 
170
- return `${p1}${npmPackages.saasKit}${p3}`;
187
+ return `${p1}${newImportItems}${p3}${newImportPath}${p5}`;
171
188
  });
172
189
  }
173
190
 
@@ -271,8 +288,17 @@ async function copyAndProcessFile(srcPath: string, destPath: string) {
271
288
  if (stats.isDirectory()) {
272
289
  await copyDirectoryContents(srcPath, destPath);
273
290
  } else {
274
- const content: string = await fsPromises.readFile(srcPath, "utf8");
275
- const processedContent: string = replaceImports(content);
291
+ const ext = path.extname(srcPath).toLowerCase();
292
+
293
+ const binaryExtensions = [".ico", ".png", ".jpg"];
294
+
295
+ if (binaryExtensions.includes(ext)) {
296
+ await fsPromises.copyFile(srcPath, destPath);
297
+ return;
298
+ }
299
+
300
+ const content = await fsPromises.readFile(srcPath, "utf8");
301
+ const processedContent = replaceImports(content);
276
302
  await fsPromises.writeFile(destPath, processedContent, "utf8");
277
303
  }
278
304
  }
@@ -298,7 +324,7 @@ async function main() {
298
324
  process.exit(1);
299
325
  }
300
326
 
301
- const folderName: string = args[1];
327
+ const folderName: string = args[0];
302
328
  const targetDir: string = path.resolve(process.cwd(), folderName);
303
329
 
304
330
  logInfoRaw(`\nCreating ${projectName} project "${folderName}"...\n`);
@@ -1,55 +1,80 @@
1
1
  import { execSync } from "child_process";
2
2
  import { folders } from "@fernir2/saas-kit";
3
3
 
4
- const nextConfig = {
5
- webpack: (config, { isServer }) => {
6
- if (isServer) {
7
- config.watchOptions = {
8
- ignored: [
9
- `**/${folders.nodeModules}/**`,
10
- `**/${folders.next}/**`,
11
- `**/${folders.npmCommands}/**`,
12
- ],
13
- };
14
- config.externals.push({
15
- "@node-rs/argon2": "commonjs @node-rs/argon2",
16
- "cloudflare:sockets": "commonjs cloudflare:sockets",
17
- "node:crypto": "commonjs node:crypto",
18
- "node:fs": "commonjs node:fs",
19
- "node:path": "commonjs node:path",
20
- "node:stream": "commonjs node:stream",
21
- child_process: "commonjs2 child_process",
22
- });
23
- config.module.rules.push({
24
- test: /\.html$/,
25
- use: "raw-loader",
26
- });
27
- }
28
- config.module.rules.push({
29
- test: /\.md$/,
30
- use: "ignore-loader",
31
- });
32
- return config;
33
- },
34
- async rewrites() {
35
- return [
36
- {
37
- source: "/api/:path*",
38
- destination: "/api/v1/:path*",
39
- },
40
- ];
41
- },
42
- redirects() {
43
- return [
44
- {
45
- source: "/",
46
- destination: "/sign-in",
47
- permanent: false,
48
- },
49
- ];
50
- },
4
+ const externalModules = {
5
+ "@node-rs/argon2": "commonjs @node-rs/argon2",
6
+ "cloudflare:sockets": "commonjs cloudflare:sockets",
7
+ "node:crypto": "commonjs node:crypto",
8
+ "node:fs": "commonjs node:fs",
9
+ "node:path": "commonjs node:path",
10
+ "node:stream": "commonjs node:stream",
11
+ child_process: "commonjs2 child_process",
51
12
  };
52
13
 
53
- nextConfig.cacheMaxMemorySize = 4096;
14
+ const serverRules = {
15
+ test: /\.html$/,
16
+ use: "raw-loader",
17
+ };
18
+
19
+ const mdRules = {
20
+ test: /\.md$/,
21
+ use: "ignore-loader",
22
+ };
23
+
24
+ const nextConfig = async () => {
54
25
 
26
+ return {
27
+ cacheMaxMemorySize: 4096,
28
+ experimental: {
29
+ reactCompiler: true,
30
+ },
31
+ eslint: {
32
+ ignoreDuringBuilds: true,
33
+ },
34
+ images: {
35
+ remotePatterns: [
36
+ {
37
+ protocol: "https",
38
+ hostname: "pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev",
39
+ port: "",
40
+ pathname: "/**",
41
+ },
42
+ ],
43
+ },
44
+ webpack: (config, { isServer }) => {
45
+ if (isServer) {
46
+ config.watchOptions = {
47
+ ignored: [
48
+ `**/${folders.nodeModules}/**`,
49
+ `**/${folders.next}/**`,
50
+ `**/${folders.npmCommands}/**`,
51
+ `**/${folders.docs}/**`,
52
+ `**/${folders.flint}/**`,
53
+ ],
54
+ };
55
+ config.externals.push(externalModules);
56
+ config.module.rules.push(serverRules);
57
+ }
58
+
59
+ config.module.rules.push(mdRules);
60
+
61
+ config.resolve.alias["./packages/flint/*"] = false;
62
+
63
+ return config;
64
+ },
65
+ async rewrites() {
66
+ return [
67
+ {
68
+ source: "/api/:path*",
69
+ destination: "/api/v1/:path*",
70
+ },
71
+ {
72
+ source: "/:path((?!api).*)",
73
+ destination: "/f/:path*",
74
+ },
75
+ ];
76
+ },
77
+ serverExternalPackages: ["oslo", "pg"],
78
+ };
79
+ };
55
80
  export default nextConfig;
@@ -3,40 +3,41 @@
3
3
  "private": true,
4
4
  "type": "module",
5
5
  "scripts": {
6
- "dev": "npx tsx --tsconfig tsconfig.server.json server.ts",
7
- "build": "next build && tsc --project tsconfig.server.json",
6
+ "dev": "next dev --turbo",
7
+ "build": "next build --turbo",
8
+ "start": "next start",
8
9
  "lint": "eslint -c eslint.config.js",
9
10
  "gen-schema": "npx tsx npm-commands/gen-schema/index.ts",
10
11
  "gen-meta": "npx tsx npm-commands/gen-meta/index.ts",
11
12
  "init-db": "npm run migrate-db && npm run seed-db",
12
13
  "setup": "npm run gen-meta && npm run gen-schema && npm run init-db",
13
- "start": "npm run setup && npm run dev",
14
14
  "prod": "npm run setup && npm run build && npx tsx server.ts",
15
15
  "migrate-db": "npx tsx npm-commands/migrate-db/index.ts",
16
16
  "seed-db": "npx tsx npm-commands/seed-db/index.ts"
17
17
  },
18
18
  "dependencies": {
19
- "@fernir2/saas-kit": "0.0.150",
20
- "@node-rs/argon2": "2.0.2",
19
+ "@fernir2/saas-kit": "0.0.151",
20
+ "@node-rs/argon2": "1.8.3",
21
21
  "drizzle-orm": "0.41.0",
22
22
  "eslint-plugin-github": "6.0.0",
23
23
  "eslint-plugin-import": "2.32.0",
24
24
  "eslint-plugin-sonarjs": "3.0.5",
25
25
  "geist": "1.3.1",
26
- "next": "15.4.5",
26
+ "next": "15.5.2",
27
27
  "quill": "2.0.3",
28
- "react": "18",
29
- "react-dom": "18",
28
+ "react": "19.1.1",
29
+ "react-dom": "19.1.1",
30
30
  "socket.io-client": "4.8.1",
31
- "tailwindcss-animate": "1.0.7"
31
+ "tailwindcss-animate": "1.0.7",
32
+ "reflect-metadata": "0.2.2"
32
33
  },
33
34
  "devDependencies": {
34
35
  "playwright": "1.52.0",
35
36
  "@eslint/eslintrc": "3.3.1",
36
37
  "@eslint/js": "9.35.0",
37
38
  "@types/node": "24.5.1",
38
- "@types/react": "18",
39
- "@types/react-dom": "18",
39
+ "@types/react": "19.1.1",
40
+ "@types/react-dom": "19.1.1",
40
41
  "@typescript-eslint/eslint-plugin": "8.43.0",
41
42
  "@typescript-eslint/eslint-plugin-tslint": "7.0.2",
42
43
  "@typescript-eslint/parser": "8.43.0",
@@ -54,8 +55,10 @@
54
55
  "prettier": "3.6.2",
55
56
  "prettier-plugin-tailwindcss": "0.6.14",
56
57
  "tailwindcss": "3.4.1",
58
+ "@tailwindcss/postcss": "4.1.12",
57
59
  "tsx": "4.19.1",
58
60
  "typescript": "5.9.2",
59
- "esbuild": "0.19.12"
61
+ "esbuild": "0.19.12",
62
+ "babel-plugin-react-compiler": "1.0.0"
60
63
  }
61
64
  }
Binary file
Binary file
@@ -0,0 +1,8 @@
1
+ import { httpWrapper } from "@server/web/http-wrapper";
2
+ import DashboardPage from "@client/pages/dashboard-page/DashbordPage";
3
+
4
+ const Page = httpWrapper(async () => {
5
+ return <DashboardPage />;
6
+ });
7
+
8
+ export default Page;
@@ -0,0 +1,8 @@
1
+ import { httpWrapper } from "@server/web/http-wrapper";
2
+ import DynamicLayoutPage from "@client/pages/dynamic-layout-page/DynamicLayoutPage";
3
+
4
+ const Page = httpWrapper(async () => {
5
+ return <DynamicLayoutPage />;
6
+ });
7
+
8
+ export default Page;
@@ -0,0 +1,8 @@
1
+ import { httpWrapper } from "@server/web/http-wrapper";
2
+ import EditUserByIdPage from "@client/pages/edit-user-by-id-page/EditUserByIdPage";
3
+
4
+ const Page = httpWrapper(async ({ params }) => {
5
+ return <EditUserByIdPage params={params} />;
6
+ });
7
+
8
+ export default Page;
@@ -0,0 +1,8 @@
1
+ import { httpWrapper } from "@server/web/http-wrapper";
2
+ import EditUserPage from "@client/pages/edit-user-page/EditUserPage";
3
+
4
+ const Page = httpWrapper(async () => {
5
+ return <EditUserPage />;
6
+ });
7
+
8
+ export default Page;
@@ -0,0 +1,5 @@
1
+ import { PrivateLayout } from "@fd-app-toolbox/server/layout/private-layout/PrivateLayout";
2
+
3
+ export default async function Layout({ children }: { children: React.ReactNode }) {
4
+ return <PrivateLayout>{children}</PrivateLayout>;
5
+ }
@@ -0,0 +1,8 @@
1
+ import { httpWrapper } from "@server/web/http-wrapper";
2
+ import LeadsViewPage from "@client/pages/leads-viw-page/LeadsViewPage";
3
+
4
+ const Page = httpWrapper(async () => {
5
+ return <LeadsViewPage />;
6
+ });
7
+
8
+ export default Page;