@fernir2/saas-kit-cli 0.1.37 → 0.1.38

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 (128) 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 +2 -2
  7. package/cli/bin/create.ts +19 -10
  8. package/cli/configs/drizzle-cli-config.ts +1 -0
  9. package/cli/configs/next-cli-config.ts +78 -0
  10. package/cli/configs/playwright-cli-config.ts +1 -0
  11. package/cli/configs/tsconfig.cli.json +0 -2
  12. package/cli/next.config.js +2 -72
  13. package/cli/package-template.json +3 -4
  14. package/cli/server.ts +2 -3
  15. package/cli/src/app/api/v1/(f)/[resourceName]/[id]/route.ts +11 -0
  16. package/cli/src/app/api/v1/(f)/[resourceName]/route.ts +14 -0
  17. package/cli/src/app/api/v1/(f)/[resourceName]/upsert/route.ts +3 -0
  18. package/cli/src/app/api/v1/(f)/blob/route.ts +7 -0
  19. package/cli/src/app/api/v1/(f)/log/route.ts +7 -0
  20. package/cli/src/app/api/v1/(f)/other-user/[id]/route.ts +14 -0
  21. package/cli/src/app/api/v1/(f)/other-user/route.ts +7 -0
  22. package/cli/src/app/api/v1/(f)/password/forgot-password/route.ts +3 -0
  23. package/cli/src/app/api/v1/(f)/password/reset-password/route.ts +3 -0
  24. package/cli/src/app/api/v1/(f)/payment/method/route.ts +4 -0
  25. package/cli/src/app/api/v1/(f)/payment/route.ts +3 -0
  26. package/cli/src/app/api/v1/(f)/payment/verify-fail/route.ts +3 -0
  27. package/cli/src/app/api/v1/(f)/payment/verify-success/route.ts +3 -0
  28. package/cli/src/app/api/v1/(f)/preload/route.ts +3 -0
  29. package/cli/src/app/api/v1/(f)/search-result/route.ts +3 -0
  30. package/cli/src/app/api/v1/(f)/searchable-resources/route.ts +3 -0
  31. package/cli/src/app/api/v1/(f)/sign-in/route.ts +3 -0
  32. package/cli/src/app/api/v1/(f)/sign-out/route.ts +3 -0
  33. package/cli/src/app/api/v1/(f)/sign-up/route.ts +3 -0
  34. package/cli/src/app/api/v1/(f)/subscription/cancel/route.ts +3 -0
  35. package/cli/src/app/api/v1/(f)/subscription/create/route.ts +3 -0
  36. package/cli/src/app/api/v1/(f)/subscription/update/route.ts +3 -0
  37. package/cli/src/app/api/v1/(f)/uimeta/route.ts +3 -0
  38. package/cli/src/app/api/v1/(f)/uimetas/route.ts +3 -0
  39. package/cli/src/app/api/v1/(f)/user-feature/isenabled/route.ts +3 -0
  40. package/cli/src/app/api/v1/(f)/user-permission/route.ts +3 -0
  41. package/cli/src/app/api/v1/(f)/visible-workspace/route.ts +5 -0
  42. package/cli/src/app/api/v1/(f)/workspace/change/route.ts +5 -0
  43. package/cli/src/app/f/api-docs/page.tsx +15 -0
  44. package/cli/src/app/f/edit-password/page.tsx +8 -0
  45. package/cli/src/app/f/forgot-password/page.tsx +13 -0
  46. package/cli/src/app/f/reset-password/page.tsx +11 -0
  47. package/cli/src/app/layout.tsx +2 -11
  48. package/cli/tsconfig.json +2 -15
  49. package/cli/tsconfig.server.json +0 -3
  50. package/fd-toolbox/api/api-client.cjs.js +1 -1
  51. package/fd-toolbox/api/api-client.js +1 -1
  52. package/fd-toolbox/api/api-path-names.cjs.js +2 -2
  53. package/fd-toolbox/api/api-path-names.js +1 -1
  54. package/fd-toolbox/api/api-paths.cjs.js +1 -1
  55. package/fd-toolbox/api/api-paths.js +1 -1
  56. package/fd-toolbox/api/base-api.cjs.js +1 -1
  57. package/fd-toolbox/api/base-api.js +1 -1
  58. package/fd-toolbox/auth/login-states.cjs.js +1 -1
  59. package/fd-toolbox/auth/login-states.js +1 -1
  60. package/fd-toolbox/auth/session-storage.cjs.js +1 -1
  61. package/fd-toolbox/auth/session-storage.js +1 -1
  62. package/fd-toolbox/auth/tokens.cjs.js +1 -1
  63. package/fd-toolbox/auth/tokens.js +1 -1
  64. package/fd-toolbox/constants/constants.cjs.js +1 -1
  65. package/fd-toolbox/constants/constants.js +1 -1
  66. package/fd-toolbox/enums/enums.cjs.js +1 -1
  67. package/fd-toolbox/enums/enums.js +1 -1
  68. package/fd-toolbox/errors/error-handler.cjs.js +1 -1
  69. package/fd-toolbox/errors/error-handler.js +1 -1
  70. package/fd-toolbox/errors/errors.cjs.js +1 -1
  71. package/fd-toolbox/errors/errors.js +1 -1
  72. package/fd-toolbox/errors/problem-details.cjs.js +1 -1
  73. package/fd-toolbox/errors/problem-details.js +1 -1
  74. package/fd-toolbox/functions/value-checking-functions.cjs.js +1 -1
  75. package/fd-toolbox/functions/value-checking-functions.js +1 -1
  76. package/fd-toolbox/http/url/urls.cjs.js +1 -1
  77. package/fd-toolbox/http/url/urls.js +1 -1
  78. package/fd-toolbox/infra/env-config.cjs.js +2 -2
  79. package/fd-toolbox/infra/env-config.js +2 -2
  80. package/fd-toolbox/infra/env-functions.cjs.js +1 -1
  81. package/fd-toolbox/infra/env-functions.js +1 -1
  82. package/fd-toolbox/infra/env-schema.cjs.js +2 -2
  83. package/fd-toolbox/infra/env-schema.js +2 -2
  84. package/fd-toolbox/infra/env-store.cjs.js +1 -1
  85. package/fd-toolbox/infra/env-store.js +1 -1
  86. package/fd-toolbox/infra/toolbox-env-setting-keys.cjs.js +1 -1
  87. package/fd-toolbox/infra/toolbox-env-setting-keys.js +1 -1
  88. package/fd-toolbox/lib/environments.cjs.js +1 -1
  89. package/fd-toolbox/lib/environments.js +1 -1
  90. package/fd-toolbox/lib/utils.cjs.js +1 -1
  91. package/fd-toolbox/lib/utils.js +1 -1
  92. package/fd-toolbox/local-storage/local-storage.cjs.js +1 -1
  93. package/fd-toolbox/local-storage/local-storage.js +1 -1
  94. package/fd-toolbox/logging/loggers.cjs.js +1 -1
  95. package/fd-toolbox/logging/loggers.js +1 -1
  96. package/fd-toolbox/notifications.cjs.js +2 -2
  97. package/fd-toolbox/notifications.js +2 -2
  98. package/fd-toolbox/odata/odata-constants.cjs.js +1 -1
  99. package/fd-toolbox/odata/odata-constants.js +1 -1
  100. package/fd-toolbox/odata/odatas.cjs.js +1 -1
  101. package/fd-toolbox/odata/odatas.js +1 -1
  102. package/fd-toolbox/odata/services/odata-filters.cjs.js +1 -1
  103. package/fd-toolbox/odata/services/odata-filters.js +1 -1
  104. package/fd-toolbox/paths/paths-names.cjs.js +2 -2
  105. package/fd-toolbox/paths/paths-names.js +1 -1
  106. package/fd-toolbox/routing/login-routers.cjs.js +1 -1
  107. package/fd-toolbox/routing/login-routers.js +1 -1
  108. package/fd-toolbox/routing/paths.cjs.js +1 -1
  109. package/fd-toolbox/routing/paths.js +1 -1
  110. package/fd-toolbox/routing/routes.cjs.js +1 -1
  111. package/fd-toolbox/routing/routes.js +1 -1
  112. package/fd-toolbox/strings/strings-constants.cjs.js +1 -1
  113. package/fd-toolbox/strings/strings-constants.js +1 -1
  114. package/fd-toolbox/strings/strings.cjs.js +1 -1
  115. package/fd-toolbox/strings/strings.js +1 -1
  116. package/fd-toolbox/types/ensure-type.cjs.js +1 -1
  117. package/fd-toolbox/types/ensure-type.js +1 -1
  118. package/fd-toolbox-core/core/name-of.cjs.js +1 -1
  119. package/fd-toolbox-core/core/name-of.js +1 -1
  120. package/fd-toolbox-core/types/resource-with-id.cjs.js +1 -1
  121. package/fd-toolbox-core/types/resource-with-id.js +1 -1
  122. package/level2/cli/bin/index.cjs.js +1 -1
  123. package/level2/cli/bin/index.js +1 -1
  124. package/level2/cli/create/bin/create.cjs.js +4 -4
  125. package/level2/cli/create/bin/create.js +3 -3
  126. package/level2/npm-commands/build-npm/path.cjs.js +2 -1
  127. package/level2/npm-commands/build-npm/path.js +3 -3
  128. package/package.json +10 -10
@@ -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/fd-toolbox','@fd-toolbox-core':'./packages/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'](([_0xce587b,_0x229eb3])=>[_0xce587b+'/*',[_0x229eb3+'/*']]));
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/fd-toolbox','@fd-toolbox-core':'./packages/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'](([_0x18307e,_0x2f7cb4])=>[_0x18307e+'/*',[_0x2f7cb4+'/*']]));
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/fd-toolbox','@fd-toolbox-core':'./packages/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'](([_0xce587b,_0x229eb3])=>[_0xce587b+'/*',[_0x229eb3+'/*']]));
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/fd-toolbox','@fd-toolbox-core':'./packages/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'](([_0x18307e,_0x2f7cb4])=>[_0x18307e+'/*',[_0x2f7cb4+'/*']]));
3
3
 
4
4
  export { aliasSymbols, modulePathAliases, typescriptAliases };
@@ -4,7 +4,7 @@
4
4
  var aliasSymbols = require('./alias-symbols.cjs.js');
5
5
  var packages = require('../constants/packages.cjs2.js');
6
6
 
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','public':'public','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','framework':'framework','api':'api','ci':'ci','jobs':'jobs','web':'web','cliPackage':'cli-package','createSaasKitApp':'create','setup':'setup','husky':'.husky','constants':'constants','configs':'configs'};const files={'route':'route.ts','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','tsconfigCli':'tsconfig.cli.json','tsconfigServer':'tsconfig.server.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','envExample':'.env.example','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js','preCommitScript':'pre-commit-script.ts','preCommit':'pre-commit','commitMsg':'commit-msg','packageTemplate':'package-template.json','eslintConfigJs':'eslint.config.js','eslintConfigMjs':'eslint.config.mjs','layout':'layout.tsx'};const projectPaths={'root':'/','src':folders['src'],'app':folders['src']+'/'+folders['app'],'apiV1':folders['src']+'/'+folders['app']+'/'+folders['api']+'/'+'v1','lib':folders['lib'],'generated':folders['generated'],'srcComponents':folders['src']+'/'+folders['components'],'saasKitNodeModulesPath':folders['nodeModules']+'/'+packages.npmPackages['saasKit'],'f':folders['src']+'/'+folders['app']+'/'+'f','public':folders['public'],'images':folders['public']+'/'+'images','openApiJson':folders['public']+'/'+'openapi.json','cliCreate':''+(folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp'])};const nonRootProjectPaths={'currentDir':'./','currentDirRef':'.','parentDirRef':'..','clientFramework':folders['client']+'/'+folders['framework'],'serverFramework':folders['server']+'/'+folders['framework'],'apiHooks':folders['api']+'/'+'hooks','npmCommands':folders['npmCommands'],'server':folders['server'],'serverContent':folders['server']+'/'+folders['content'],'package':folders['package'],'packageCli':folders['cliPackage'],'htmlTemplates':'html-templates','metaServer':folders['meta']+'/'+'server','toolsNpmCommands':folders['tools']+'/'+folders['npmCommands'],'tools':folders['tools'],'saasKitCliBin':'level2/cli/bin','buildPackage':folders['build']+'/'+folders['package'],'buildPackagesTypes':folders['build']+'/'+folders['package']+'/'+'types','buildCliPackage':folders['build']+'/'+folders['cliPackage'],'buildPackagesTypesOutput':folders['build']+'/'+folders['package']+'/'+'types-output','cliConstants':'cli/constants','cliConfigs':'cli/configs'};const serverWeb=folders['server']+'/'+folders['web'];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']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+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']+'/','git':folders['packages']+'/'+folders['baseRepo']+'/'+folders['tools']+'/'+folders['git']+'/','buildNpm':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/'+folders['buildNpm']+'/','createSaasKitApp':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']+'/','packagesDocsContent':folders['packages']+'/'+folders['docs']+'/'+folders['content']+'/','apiResponses':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/'+serverWeb+'/'+'responses/','apiErrors':folders['packages']+'/'+folders['fdToolbox']+'/'+serverWeb+'/'+'errors/'};const infraCiJobsBase=packagesPath['packagesInfra']+'/'+folders['ci']+'/'+folders['jobs'],infraCiSetupBase=packagesPath['packagesInfra']+'/'+folders['ci']+'/'+folders['setup'];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']+'/'+folders['components']),'pages':''+(packagesPath['packagesClient']+'/'+folders['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':aliasSymbols.aliases['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
+ 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','public':'public','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','framework':'framework','api':'api','ci':'ci','jobs':'jobs','web':'web','cliPackage':'cli-package','createSaasKitApp':'create','setup':'setup','husky':'.husky','constants':'constants','configs':'configs','internal':'internal','undocumented':'undocumented'};const files={'route':'route.ts','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','tsconfigCli':'tsconfig.cli.json','tsconfigServer':'tsconfig.server.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','envExample':'.env.example','envStaging':'.env.staging','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js','preCommitScript':'pre-commit-script.ts','preCommit':'pre-commit','commitMsg':'commit-msg','packageTemplate':'package-template.json','eslintConfigJs':'eslint.config.js','eslintConfigMjs':'eslint.config.mjs','layout':'layout.tsx','buildInitDb':'build-init-db.ts'};const projectPaths={'root':'/','src':folders['src'],'app':folders['src']+'/'+folders['app'],'apiV1':folders['src']+'/'+folders['app']+'/'+folders['api']+'/v1/(f)','lib':folders['lib'],'generated':folders['generated'],'srcComponents':folders['src']+'/'+folders['components'],'saasKitNodeModulesPath':folders['nodeModules']+'/'+packages.npmPackages['saasKit'],'f':folders['src']+'/'+folders['app']+'/f','public':folders['public'],'images':folders['public']+'/images','openApiJson':folders['public']+'/openapi.json','cliCreate':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']};const nonRootProjectPaths={'currentDir':'./','currentDirRef':'.','parentDirRef':'..','clientFramework':folders['client']+'/'+folders['framework'],'serverFramework':folders['server']+'/'+folders['framework'],'apiHooks':folders['api']+'/hooks','npmCommands':folders['npmCommands'],'server':folders['server'],'serverContent':folders['server']+'/'+folders['content'],'package':folders['package'],'packageCli':folders['cliPackage'],'htmlTemplates':'html-templates','metaServer':folders['meta']+'/'+folders['server'],'toolsNpmCommands':folders['tools']+'/'+folders['npmCommands'],'tools':folders['tools'],'saasKitCliBin':folders['level2']+'/'+folders['cli']+'/'+folders['bin'],'buildPackage':folders['build']+'/'+folders['package'],'buildPackagesTypes':folders['build']+'/'+folders['package']+'/types','buildCliPackage':folders['build']+'/'+folders['cliPackage'],'buildPackagesTypesOutput':folders['build']+'/'+folders['package']+'/types-output','cliConstants':folders['cli']+'/'+folders['constants'],'cliConfigs':folders['cli']+'/'+folders['configs']};const serverWeb=folders['server']+'/'+folders['web'];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']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+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']+'/','git':folders['packages']+'/'+folders['baseRepo']+'/'+folders['tools']+'/'+folders['git']+'/','buildNpm':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/'+folders['buildNpm']+'/','createSaasKitApp':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesDocsContent':folders['packages']+'/'+folders['docs']+'/'+folders['content']+'/','apiResponses':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/'+serverWeb+'/responses/','apiErrors':folders['packages']+'/'+folders['fdToolbox']+'/'+serverWeb+'/errors/'};const infraCiJobsBase=packagesPath['packagesInfra']+folders['ci']+'/'+folders['jobs'],infraCiSetupBase=packagesPath['packagesInfra']+folders['ci']+'/'+folders['setup'];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']+folders['components']),'pages':''+(packagesPath['packagesClient']+folders['pages']),'payments':''+(packagesPath['packagesClient']+'payments'),'products':''+(packagesPath['packagesClient']+'products'),'websiteScan':''+(packagesPath['packagesClient']+'website-scan')};const infraPaths={'lintJob':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/lint','buildAndTestJob':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/build-and-test','saasKitTestBuildAndTestJob':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/create-saas-kit-app-test','manualCleanupJob':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/manual-cleanup','cleanupScript':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['setup']+'/cleanup','setupScript':aliasSymbols.aliases['infra']+'/'+folders['ci']+'/'+folders['setup']+'/setup'};const globPatterns={'tsTsx':'**/*.{ts,tsx}','jsTsJsxTsx':'**/*.{js,ts,jsx,tsx}'};
8
8
 
9
9
  exports.clientPaths = clientPaths;
10
10
  exports.files = files;
@@ -2,6 +2,6 @@
2
2
  import { aliases } from './alias-symbols.js';
3
3
  import { npmPackages } from '../constants/packages2.js';
4
4
 
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','public':'public','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','framework':'framework','api':'api','ci':'ci','jobs':'jobs','web':'web','cliPackage':'cli-package','createSaasKitApp':'create','setup':'setup','husky':'.husky','constants':'constants','configs':'configs'};const files={'route':'route.ts','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','tsconfigCli':'tsconfig.cli.json','tsconfigServer':'tsconfig.server.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','envExample':'.env.example','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js','preCommitScript':'pre-commit-script.ts','preCommit':'pre-commit','commitMsg':'commit-msg','packageTemplate':'package-template.json','eslintConfigJs':'eslint.config.js','eslintConfigMjs':'eslint.config.mjs','layout':'layout.tsx'};const projectPaths={'root':'/','src':folders['src'],'app':folders['src']+'/'+folders['app'],'apiV1':folders['src']+'/'+folders['app']+'/'+folders['api']+'/'+'v1','lib':folders['lib'],'generated':folders['generated'],'srcComponents':folders['src']+'/'+folders['components'],'saasKitNodeModulesPath':folders['nodeModules']+'/'+npmPackages['saasKit'],'f':folders['src']+'/'+folders['app']+'/'+'f','public':folders['public'],'images':folders['public']+'/'+'images','openApiJson':folders['public']+'/'+'openapi.json','cliCreate':''+(folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp'])};const nonRootProjectPaths={'currentDir':'./','currentDirRef':'.','parentDirRef':'..','clientFramework':folders['client']+'/'+folders['framework'],'serverFramework':folders['server']+'/'+folders['framework'],'apiHooks':folders['api']+'/'+'hooks','npmCommands':folders['npmCommands'],'server':folders['server'],'serverContent':folders['server']+'/'+folders['content'],'package':folders['package'],'packageCli':folders['cliPackage'],'htmlTemplates':'html-templates','metaServer':folders['meta']+'/'+'server','toolsNpmCommands':folders['tools']+'/'+folders['npmCommands'],'tools':folders['tools'],'saasKitCliBin':'level2/cli/bin','buildPackage':folders['build']+'/'+folders['package'],'buildPackagesTypes':folders['build']+'/'+folders['package']+'/'+'types','buildCliPackage':folders['build']+'/'+folders['cliPackage'],'buildPackagesTypesOutput':folders['build']+'/'+folders['package']+'/'+'types-output','cliConstants':'cli/constants','cliConfigs':'cli/configs'};const serverWeb=folders['server']+'/'+folders['web'];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']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+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']+'/','git':folders['packages']+'/'+folders['baseRepo']+'/'+folders['tools']+'/'+folders['git']+'/','buildNpm':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/'+folders['buildNpm']+'/','createSaasKitApp':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']+'/','packagesDocsContent':folders['packages']+'/'+folders['docs']+'/'+folders['content']+'/','apiResponses':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/'+serverWeb+'/'+'responses/','apiErrors':folders['packages']+'/'+folders['fdToolbox']+'/'+serverWeb+'/'+'errors/'};const infraCiJobsBase=packagesPath['packagesInfra']+'/'+folders['ci']+'/'+folders['jobs'],infraCiSetupBase=packagesPath['packagesInfra']+'/'+folders['ci']+'/'+folders['setup'];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']+'/'+folders['components']),'pages':''+(packagesPath['packagesClient']+'/'+folders['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':aliases['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
+ 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','public':'public','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','framework':'framework','api':'api','ci':'ci','jobs':'jobs','web':'web','cliPackage':'cli-package','createSaasKitApp':'create','setup':'setup','husky':'.husky','constants':'constants','configs':'configs','internal':'internal','undocumented':'undocumented'};const files={'route':'route.ts','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','tsconfigCli':'tsconfig.cli.json','tsconfigServer':'tsconfig.server.json','tailwindConfig':'tailwind.config.ts','packageJson':'package.json','env':'.env','envExample':'.env.example','envStaging':'.env.staging','npmConfig':'.npmrc','nextEnv':'next-env.d.ts','license':'LICENSE','pnpmLock':'pnpm-lock.yaml','indexJs':'index.js','preCommitScript':'pre-commit-script.ts','preCommit':'pre-commit','commitMsg':'commit-msg','packageTemplate':'package-template.json','eslintConfigJs':'eslint.config.js','eslintConfigMjs':'eslint.config.mjs','layout':'layout.tsx','buildInitDb':'build-init-db.ts'};const projectPaths={'root':'/','src':folders['src'],'app':folders['src']+'/'+folders['app'],'apiV1':folders['src']+'/'+folders['app']+'/'+folders['api']+'/v1/(f)','lib':folders['lib'],'generated':folders['generated'],'srcComponents':folders['src']+'/'+folders['components'],'saasKitNodeModulesPath':folders['nodeModules']+'/'+npmPackages['saasKit'],'f':folders['src']+'/'+folders['app']+'/f','public':folders['public'],'images':folders['public']+'/images','openApiJson':folders['public']+'/openapi.json','cliCreate':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']};const nonRootProjectPaths={'currentDir':'./','currentDirRef':'.','parentDirRef':'..','clientFramework':folders['client']+'/'+folders['framework'],'serverFramework':folders['server']+'/'+folders['framework'],'apiHooks':folders['api']+'/hooks','npmCommands':folders['npmCommands'],'server':folders['server'],'serverContent':folders['server']+'/'+folders['content'],'package':folders['package'],'packageCli':folders['cliPackage'],'htmlTemplates':'html-templates','metaServer':folders['meta']+'/'+folders['server'],'toolsNpmCommands':folders['tools']+'/'+folders['npmCommands'],'tools':folders['tools'],'saasKitCliBin':folders['level2']+'/'+folders['cli']+'/'+folders['bin'],'buildPackage':folders['build']+'/'+folders['package'],'buildPackagesTypes':folders['build']+'/'+folders['package']+'/types','buildCliPackage':folders['build']+'/'+folders['cliPackage'],'buildPackagesTypesOutput':folders['build']+'/'+folders['package']+'/types-output','cliConstants':folders['cli']+'/'+folders['constants'],'cliConfigs':folders['cli']+'/'+folders['configs']};const serverWeb=folders['server']+'/'+folders['web'];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']+'/','packagesFdAppToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdAppToolbox']+'/','packagesFdComponentToolbox':folders['packages']+'/'+folders['level2']+'/'+folders['fdComponentToolbox']+'/','packagesFdToolbox':folders['packages']+'/'+folders['fdToolbox']+'/','packagesFdToolboxCore':folders['packages']+'/'+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']+'/','git':folders['packages']+'/'+folders['baseRepo']+'/'+folders['tools']+'/'+folders['git']+'/','buildNpm':folders['packages']+'/'+folders['level2']+'/'+folders['npmCommands']+'/'+folders['buildNpm']+'/','createSaasKitApp':folders['packages']+'/'+folders['level2']+'/'+folders['cli']+'/'+folders['createSaasKitApp']+'/','packagesEnricher':folders['packages']+'/'+folders['level2']+'/'+folders['enricher']+'/','packagesDocsContent':folders['packages']+'/'+folders['docs']+'/'+folders['content']+'/','apiResponses':folders['packages']+'/'+folders['level2']+'/'+folders['meta']+'/'+serverWeb+'/responses/','apiErrors':folders['packages']+'/'+folders['fdToolbox']+'/'+serverWeb+'/errors/'};const infraCiJobsBase=packagesPath['packagesInfra']+folders['ci']+'/'+folders['jobs'],infraCiSetupBase=packagesPath['packagesInfra']+folders['ci']+'/'+folders['setup'];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']+folders['components']),'pages':''+(packagesPath['packagesClient']+folders['pages']),'payments':''+(packagesPath['packagesClient']+'payments'),'products':''+(packagesPath['packagesClient']+'products'),'websiteScan':''+(packagesPath['packagesClient']+'website-scan')};const infraPaths={'lintJob':aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/lint','buildAndTestJob':aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/build-and-test','saasKitTestBuildAndTestJob':aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/saas-kit-test-build-and-test','createSaasKitAppTestJob':aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/create-saas-kit-app-test','manualCleanupJob':aliases['infra']+'/'+folders['ci']+'/'+folders['jobs']+'/manual-cleanup','cleanupScript':aliases['infra']+'/'+folders['ci']+'/'+folders['setup']+'/cleanup','setupScript':aliases['infra']+'/'+folders['ci']+'/'+folders['setup']+'/setup'};const globPatterns={'tsTsx':'**/*.{ts,tsx}','jsTsJsxTsx':'**/*.{js,ts,jsx,tsx}'};
6
6
 
7
7
  export { clientPaths, files, folders, generatedPaths, globPatterns, infraPaths, nonRootProjectPaths, packagesPath, projectPaths };
@@ -3,7 +3,7 @@
3
3
 
4
4
  var projectPaths = require('../app-constants/project-paths.cjs.js');
5
5
 
6
- const additionalFoldersToCreate=[projectPaths.folders['server']];const toolsFoldersToReplace={[projectPaths.nonRootProjectPaths['toolsNpmCommands']]:{[projectPaths.nonRootProjectPaths['tools']]:''}};
6
+ const additionalFoldersToCreate=[];const toolsFoldersToReplace={[projectPaths.nonRootProjectPaths['toolsNpmCommands']]:{[projectPaths.nonRootProjectPaths['tools']]:''}};
7
7
 
8
8
  exports.additionalFoldersToCreate = additionalFoldersToCreate;
9
9
  exports.toolsFoldersToReplace = toolsFoldersToReplace;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
- import { folders, nonRootProjectPaths } from '../app-constants/project-paths.js';
2
+ import { nonRootProjectPaths } from '../app-constants/project-paths.js';
3
3
 
4
- const additionalFoldersToCreate=[folders['server']];const toolsFoldersToReplace={[nonRootProjectPaths['toolsNpmCommands']]:{[nonRootProjectPaths['tools']]:''}};
4
+ const additionalFoldersToCreate=[];const toolsFoldersToReplace={[nonRootProjectPaths['toolsNpmCommands']]:{[nonRootProjectPaths['tools']]:''}};
5
5
 
6
6
  export { additionalFoldersToCreate, toolsFoldersToReplace };
package/cli/bin/create.ts CHANGED
@@ -56,15 +56,15 @@ const filename = fileURLToPath(import.meta.url);
56
56
  const sourceDir = "../../../../";
57
57
  const binDir = path.dirname(filename);
58
58
  const repoRoot = path.resolve(binDir, sourceDir);
59
- const envLocalPath: string = path.join(binDir, `${sourceDir}${folders.cli}${"/"}${files.envExample}`);
59
+ const envLocalPath: string = path.join(binDir, `${sourceDir + folders.cli}/${files.envExample}`);
60
60
  const envTemplate: string = fs.readFileSync(envLocalPath, "utf8");
61
61
 
62
62
  const foldersToIgnore: string[] = [
63
- `${folders.cli}${"/"}${folders.constants}`,
64
- `${folders.cli}${"/"}${files.packageTemplate}`,
65
- `${folders.cli}${"/"}${files.envExample}`,
66
- `${folders.cli}${"/"}${folders.bin}`,
67
- `${folders.cli}${"/"}${folders.configs}`,
63
+ `${folders.cli}/${folders.constants}`,
64
+ `${folders.cli}/${files.packageTemplate}`,
65
+ `${folders.cli}/${files.envExample}`,
66
+ `${folders.cli}/${folders.bin}`,
67
+ `${folders.cli}/${folders.configs}`,
68
68
  ];
69
69
 
70
70
  function runCommand(command: string, cwd?: string) {
@@ -115,11 +115,19 @@ function createNextProject(projectTitle: string, targetDir: string) {
115
115
  logInfoRaw("Next.js project created!");
116
116
 
117
117
  const tsConfigPath = path.join(targetDir, "next.config.ts");
118
+ const publicDir = path.join(targetDir, folders.public);
118
119
 
119
120
  if (fs.existsSync(tsConfigPath)) {
120
121
  fs.rmSync(tsConfigPath);
121
122
  logInfoRaw("Removed default next.config.ts");
122
123
  }
124
+
125
+ if (fs.existsSync(publicDir)) {
126
+ fs.rmSync(publicDir, { recursive: true, force: true });
127
+ logInfoRaw("Removed default public folder");
128
+ }
129
+
130
+ fs.mkdirSync(publicDir);
123
131
  }
124
132
 
125
133
  async function createEnvFile(targetDir: string) {
@@ -141,7 +149,7 @@ async function createEnvFile(targetDir: string) {
141
149
  async function overridePackageJson(targetDir: string) {
142
150
  const targetPackageJsonPath: string = path.join(targetDir, files.packageJson);
143
151
  // "name" is omitted in package.json; renamed to package-template.json so NX ignores it as a project.
144
- const cliPackageJsonPath: string = path.join(repoRoot, `${folders.cli}${"/"}${files.packageTemplate}`);
152
+ const cliPackageJsonPath: string = path.join(repoRoot, `${folders.cli}/${files.packageTemplate}`);
145
153
 
146
154
  try {
147
155
  const targetPackageJson: PackageJson = JSON.parse(
@@ -205,10 +213,11 @@ async function copyProjectFiles(targetDir: string) {
205
213
  logInfoRaw(`Copying ${projectName} files...`);
206
214
 
207
215
  for (const file of allFilesToCopy) {
208
- const cliFile = `${folders.cli}${"/"}${file}`;
216
+ const normalizedFile = file.replace(/\[(.)\]/g, "$1");
217
+ const cliFile = `${folders.cli}/${normalizedFile}`;
209
218
  const srcPath: string = path.join(repoRoot, cliFile);
210
219
 
211
- const processedFile = replaceToolsFolder(file);
220
+ const processedFile = replaceToolsFolder(normalizedFile);
212
221
 
213
222
  const destPath: string = path.join(targetDir, processedFile);
214
223
 
@@ -376,7 +385,7 @@ async function enableRepoModeExtras(targetDir: string) {
376
385
  }
377
386
 
378
387
  async function updateLayoutTitle(targetDir: string, folderName: string) {
379
- const layoutPath = path.join(targetDir, `${projectPaths.app}${"/"}${files.layout}`);
388
+ const layoutPath = path.join(targetDir, `${projectPaths.app}/${files.layout}`);
380
389
 
381
390
  if (!existsSync(layoutPath)) {
382
391
  throw createError(`${files.layout} not found at ${layoutPath}, cannot update title.`);
@@ -5,6 +5,7 @@ import { metaEnvSettingKeys } from "@meta/infra/meta-env-setting-keys";
5
5
 
6
6
  const connectionString = getRequiredStringEnvSetting(metaEnvSettingKeys.databaseConnection);
7
7
 
8
+ /** To do: add docs */
8
9
  export const drizzleConfig = defineConfig({
9
10
  dialect: "postgresql",
10
11
  schema: generatedPaths.schema,
@@ -0,0 +1,78 @@
1
+ import { folders } from "@base-repo/app-constants/project-paths";
2
+ import type { Configuration as WebpackConfig } from "webpack";
3
+
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",
12
+ };
13
+
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
+ /** To do: add docs */
25
+ export const nextConfig = (overrides = {}) => {
26
+ const baseConfig = {
27
+ reactCompiler: true,
28
+ images: {
29
+ remotePatterns: [
30
+ {
31
+ protocol: "https",
32
+ hostname: "pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev",
33
+ port: "",
34
+ pathname: "/**",
35
+ },
36
+ ],
37
+ },
38
+ webpack: (
39
+ config: WebpackConfig & {
40
+ resolve: { alias: Record<string, false> };
41
+ module: { rules: unknown[] };
42
+ externals: unknown[];
43
+ watchOptions?: { ignored: string[] };
44
+ },
45
+ { isServer }: { isServer: boolean },
46
+ ) => {
47
+ if (isServer) {
48
+ config.watchOptions = {
49
+ ignored: [
50
+ `**/${folders.nodeModules}/**`,
51
+ `**/${folders.next}/**`,
52
+ `**/${folders.npmCommands}/**`,
53
+ ],
54
+ };
55
+ config.externals.push(externalModules);
56
+ config.module.rules.push(serverRules);
57
+ }
58
+
59
+ config.module.rules.push(mdRules);
60
+
61
+ return config;
62
+ },
63
+ async rewrites() {
64
+ return [
65
+ {
66
+ source: "/api/:path*",
67
+ destination: "/api/v1/:path*",
68
+ },
69
+ {
70
+ source: "/:path((?!api).*)",
71
+ destination: "/f/:path*",
72
+ },
73
+ ];
74
+ },
75
+ serverExternalPackages: ["oslo", "pg"],
76
+ };
77
+ return { ...baseConfig, ...overrides };
78
+ };
@@ -5,6 +5,7 @@ getDotenvConfig();
5
5
 
6
6
  const baseUrl = "http://localhost:8080/";
7
7
 
8
+ /** To do: add docs */
8
9
  export const playwrightConfig = defineConfig({
9
10
  timeout: 120000,
10
11
  testDir: "test/",
@@ -29,8 +29,6 @@
29
29
  "noImplicitOverride": true,
30
30
  "useUnknownInCatchVariables": true,
31
31
  "noEmit": false,
32
- "declaration": true,
33
- "declarationDir": "./build/package/types",
34
32
  "outDir": "./build/package/types-output",
35
33
  "noEmitOnError": true
36
34
  }
@@ -1,73 +1,3 @@
1
- import { execSync } from "child_process";
2
- import { folders } from "@fernir2/saas-kit";
1
+ import { nextConfig } from "@fernir2/saas-kit";
3
2
 
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",
12
- };
13
-
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 () => {
25
- return {
26
- reactCompiler: true,
27
- images: {
28
- remotePatterns: [
29
- {
30
- protocol: "https",
31
- hostname: "pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev",
32
- port: "",
33
- pathname: "/**",
34
- },
35
- ],
36
- },
37
- webpack: (config, { isServer }) => {
38
- if (isServer) {
39
- config.watchOptions = {
40
- ignored: [
41
- `**/${folders.nodeModules}/**`,
42
- `**/${folders.next}/**`,
43
- `**/${folders.npmCommands}/**`,
44
- `**/${folders.docs}/**`,
45
- `**/${folders.flint}/**`,
46
- ],
47
- };
48
- config.externals.push(externalModules);
49
- config.module.rules.push(serverRules);
50
- }
51
-
52
- config.module.rules.push(mdRules);
53
-
54
- config.resolve.alias["./packages/flint/*"] = false;
55
-
56
- return config;
57
- },
58
- async rewrites() {
59
- return [
60
- {
61
- source: "/api/:path*",
62
- destination: "/api/v1/:path*",
63
- },
64
- {
65
- source: "/:path((?!api).*)",
66
- destination: "/f/:path*",
67
- },
68
- ];
69
- },
70
- serverExternalPackages: ["oslo", "pg"],
71
- };
72
- };
73
- export default nextConfig;
3
+ export default nextConfig();
@@ -19,9 +19,6 @@
19
19
  "@fernir2/saas-kit": "0.0.162",
20
20
  "@node-rs/argon2": "2.0.2",
21
21
  "drizzle-orm": "0.36.4",
22
- "eslint-plugin-github": "6.0.0",
23
- "eslint-plugin-import": "2.32.0",
24
- "eslint-plugin-sonarjs": "3.0.5",
25
22
  "geist": "1.4.2",
26
23
  "next": "16.0.10",
27
24
  "quill": "2.0.3",
@@ -47,6 +44,9 @@
47
44
  "eslint-plugin-react-compiler": "19.1.0-rc.2",
48
45
  "eslint-plugin-react-hooks": "5.2.0",
49
46
  "eslint-plugin-react-refresh": "0.4.20",
47
+ "eslint-plugin-github": "6.0.0",
48
+ "eslint-plugin-import": "2.32.0",
49
+ "eslint-plugin-sonarjs": "3.0.5",
50
50
  "husky": "9.1.7",
51
51
  "postcss": "8.5.6",
52
52
  "prettier": "3.6.2",
@@ -55,7 +55,6 @@
55
55
  "@tailwindcss/postcss": "4.1.16",
56
56
  "tsx": "4.20.5",
57
57
  "typescript": "5.9.2",
58
- "esbuild": "0.25.9",
59
58
  "babel-plugin-react-compiler": "1.0.0"
60
59
  }
61
60
  }
package/cli/server.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  import { envSettingKeys, getNumberEnvSetting, isDev } from "@fernir2/saas-kit";
10
10
 
11
11
  const dev = isDev();
12
- const port = getNumberEnvSetting(envSettingKeys.fdPort) ?? 3000;
12
+ const port = getNumberEnvSetting(envSettingKeys.port) ?? 3000;
13
13
 
14
14
  const app = next({ dev, port });
15
15
  const nextRequestHandler = app.getRequestHandler();
@@ -20,8 +20,7 @@ async function run() {
20
20
  const httpServer = createServer((req, res) => {
21
21
  checkAndHandleWebSocketRequest(req, res);
22
22
 
23
- const parsedUrl = parse(req.url!, true);
24
- nextRequestHandler(req, res, parsedUrl);
23
+ nextRequestHandler(req, res, parse(req.url!, true));
25
24
  });
26
25
 
27
26
  initSocket(httpServer);
@@ -0,0 +1,11 @@
1
+ import {
2
+ deleteResourceByIdRoute,
3
+ getResourceByIdRoute,
4
+ putResourceByIdRoute,
5
+ } from "@meta/server/basic-crud/crud-api";
6
+
7
+ export const GET = getResourceByIdRoute;
8
+
9
+ export const PUT = putResourceByIdRoute;
10
+
11
+ export const DELETE = deleteResourceByIdRoute;
@@ -0,0 +1,14 @@
1
+ import {
2
+ deleteResourceRoute,
3
+ getResourceRoute,
4
+ postResourceRoute,
5
+ putResourceRoute,
6
+ } from "@meta/server/basic-crud/crud-api";
7
+
8
+ export const PUT = putResourceRoute;
9
+
10
+ export const GET = getResourceRoute;
11
+
12
+ export const POST = postResourceRoute;
13
+
14
+ export const DELETE = deleteResourceRoute;
@@ -0,0 +1,3 @@
1
+ import { upsertResourceRoute } from "@meta/server/basic-crud/crud-api";
2
+
3
+ export const POST = upsertResourceRoute;
@@ -0,0 +1,7 @@
1
+ import { mediaDeleteRoute, mediaGetRoute, mediaPostRoute } from "@server/media/media-api";
2
+
3
+ export const GET = mediaGetRoute;
4
+
5
+ export const POST = mediaPostRoute;
6
+
7
+ export const DELETE = mediaDeleteRoute;
@@ -0,0 +1,7 @@
1
+ import { logDeleteRoute, logGetRoute, logPostRoute } from "@server/fd/fd-toolbox-web/logging/log-api";
2
+
3
+ export const POST = logPostRoute;
4
+
5
+ export const GET = logGetRoute;
6
+
7
+ export const DELETE = logDeleteRoute;
@@ -0,0 +1,14 @@
1
+ import {
2
+ otheruserIdGetRoute,
3
+ otheruserIdPostRoute,
4
+ otheruserIdPutRoute,
5
+ otheruserIdDeleteRoute,
6
+ } from "@server/otheruser/id/otheruser-id-api";
7
+
8
+ export const GET = otheruserIdGetRoute;
9
+
10
+ export const POST = otheruserIdPostRoute;
11
+
12
+ export const PUT = otheruserIdPutRoute;
13
+
14
+ export const DELETE = otheruserIdDeleteRoute;
@@ -0,0 +1,7 @@
1
+ import { otheruserGetRoute, otheruserPostRoute, otheruserPutRoute } from "@server/otheruser/otheruser-api";
2
+
3
+ export const POST = otheruserPostRoute;
4
+
5
+ export const PUT = otheruserPutRoute;
6
+
7
+ export const GET = otheruserGetRoute;
@@ -0,0 +1,3 @@
1
+ import { forgotpasswordPostRoute } from "@server/password/forgotpassword/forgotpassword-api";
2
+
3
+ export const POST = forgotpasswordPostRoute;
@@ -0,0 +1,3 @@
1
+ import { resetpasswordPostRoute } from "@server/password/resetpassword/resetpassword-api";
2
+
3
+ export const POST = resetpasswordPostRoute;
@@ -0,0 +1,4 @@
1
+ import { paymentMethodGetRoute, paymentMethodPutRoute } from "@server/payment/method/payment-method-api";
2
+
3
+ export const PUT = paymentMethodPutRoute;
4
+ export const GET = paymentMethodGetRoute;
@@ -0,0 +1,3 @@
1
+ import { registerPaymentCustomerAndCreateWorkspaceSubscriptionApi } from "@server/payments/payments/payments-api";
2
+
3
+ export const POST = registerPaymentCustomerAndCreateWorkspaceSubscriptionApi;
@@ -0,0 +1,3 @@
1
+ import { paymentVerifyFailPostRoute } from "@server/payment/verify-fail/payment-verify-fail-api";
2
+
3
+ export const POST = paymentVerifyFailPostRoute;
@@ -0,0 +1,3 @@
1
+ import { paymentVerifySuccessPostRoute } from "@server/payment/verify-success/payment-verify-success";
2
+
3
+ export const POST = paymentVerifySuccessPostRoute;
@@ -0,0 +1,3 @@
1
+ import { preloadApi } from "@server/fd/fd-toolbox-web/controllers/preload-api";
2
+
3
+ export const GET = preloadApi;
@@ -0,0 +1,3 @@
1
+ import { getSearchResultRoute } from "@server/search/search-result-api";
2
+
3
+ export const GET = getSearchResultRoute;
@@ -0,0 +1,3 @@
1
+ import { getSearchableResourcesRoute } from "@meta/server/resources/searchable-resources-api";
2
+
3
+ export const GET = getSearchableResourcesRoute;
@@ -0,0 +1,3 @@
1
+ import { signInApi } from "@server/auth/sign-in-api";
2
+
3
+ export const POST = signInApi;
@@ -0,0 +1,3 @@
1
+ import { signOutGetRoute } from "@server/auth/sign-out-api";
2
+
3
+ export const GET = signOutGetRoute;