@fernir2/saas-kit-cli 0.1.32 → 0.1.34
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.
- package/base-repo/app-constants/aliases.cjs.js +1 -1
- package/base-repo/app-constants/aliases.js +1 -1
- package/base-repo/app-constants/project-paths.cjs.js +3 -1
- package/base-repo/app-constants/project-paths.js +3 -2
- package/base-repo/constants/packages.cjs2.js +6 -0
- package/base-repo/constants/packages2.js +4 -0
- package/cli/.env.example +55 -0
- package/cli/.gitlab-ci.yml +1 -0
- package/cli/bin/index.ts +35 -9
- package/cli/next.config.js +73 -48
- package/cli/package-template.json +15 -12
- package/cli/public/images/00000000-0000-0000-0000-000000000000.webp +0 -0
- package/cli/public/images/companies/00000000-0000-0000-0000-000000000000.webp +0 -0
- package/cli/public/images/companies/004a196f-f9a7-49fc-9e05-606fffd0613c.webp +0 -0
- package/cli/public/images/companies/497b26a6-3e91-4b27-8c24-f3b145fc6c7f.webp +0 -0
- package/cli/public/images/companies/6cead29b-2572-4283-add6-f407b39d7135.webp +0 -0
- package/cli/public/images/companies/71efdb77-4ecb-45e6-bc83-0fdff835c2e7.webp +0 -0
- package/cli/public/images/companies/773602c8-a417-4afc-adb0-bb6856ac2970.webp +0 -0
- package/cli/public/images/companies/9d09881a-cf60-438d-9edf-10f5864d4468.webp +0 -0
- package/cli/public/images/companies/a1b2c3d4-e5f6-7890-1234-56789abcdef0.webp +0 -0
- package/cli/public/images/companies/b04d7c5e-18de-4f44-b923-5bfb28bb33bb.webp +0 -0
- package/cli/public/images/companies/c75c22fc-d295-472e-bdae-dbb8eb09cf18.webp +0 -0
- package/cli/public/images/companies/cdf3efb4-33a2-485e-8d95-e0ab5a4cb6a5.webp +0 -0
- package/cli/public/images/companies/d6fe4c6a-ecdb-40fc-a8e6-2044ef2b82d4.webp +0 -0
- package/cli/public/images/contacts/159e4c7a-ff5f-4162-8237-acec3ca8a759.webp +0 -0
- package/cli/public/images/contacts/65e07208-6b1f-4a59-b5e3-2f80f5741b18.webp +0 -0
- package/cli/public/images/contacts/6d1c5410-ef5b-4d37-8b8d-4ab8cfc87785.webp +0 -0
- package/cli/public/images/contacts/754c77d8-eefb-4a90-b07b-ed00980c88b4.webp +0 -0
- package/cli/public/images/contacts/9fd23cd9-9b94-4bb8-bb73-d315b93b8a5c.webp +0 -0
- package/cli/public/images/contacts/b2f746d1-6b3c-4c47-8e07-f73927c167cb.webp +0 -0
- package/cli/public/images/contacts/b515cb46-eab4-4862-9e8e-c2f5f217ae79.webp +0 -0
- package/cli/public/images/contacts/cf2eae72-e5ab-4d95-8f08-b6571b44f8eb.webp +0 -0
- package/cli/public/images/contacts/ec0e0285-22d9-48d4-b4b3-96388c37c807.webp +0 -0
- package/cli/public/images/contacts/ecb1a0f4-d244-4136-badf-c2bc72e3b678.webp +0 -0
- package/cli/public/images/login-image-dark.jpg +0 -0
- package/cli/public/images/login-image.jpg +0 -0
- package/cli/public/images/no-image.png +0 -0
- package/cli/public/images/profile.png +0 -0
- package/cli/public/images/search-not-found-result.png +0 -0
- package/cli/public/images/shipment/076aecd1-7fb8-5d89-baa9-e48e61048525.pdf +0 -0
- package/cli/public/images/shipment/21884fb7-6e39-4f7b-9a49-0f46d527f50c.pdf +0 -0
- package/cli/public/images/shipment/e6367904-081e-479b-a8c5-5972057a261e.pdf +0 -0
- package/cli/public/images/store/00000000-0000-0000-0000-000000000000.webp +0 -0
- package/cli/public/images/test/photo-1460925895917-afdab827c52f.jpg +0 -0
- package/cli/public/images/test/photo-1499636136210-6f4ee915583e.jpg +0 -0
- package/cli/public/images/test/photo-1519681393784-d120267933ba.jpg +0 -0
- package/cli/public/images/toolbar-logo.png +0 -0
- package/cli/public/images/users/00000000-0000-0000-0000-000000000000.webp +0 -0
- package/cli/public/images/users/02d1230f-5bfe-46b4-8ce1-d10f4aa918a7.webp +0 -0
- package/cli/public/images/users/166c5e4a-696f-4bf5-ab48-dbbb5e90d526.webp +0 -0
- package/cli/public/images/users/175a3f0c-692c-4503-87eb-ff95d6535e16.webp +0 -0
- package/cli/public/images/users/8398ee85-7546-4710-b628-44c98e4ba03a.webp +0 -0
- package/cli/public/images/users/979f8933-71b1-4df8-b691-566a901d3c76.webp +0 -0
- package/cli/public/images/users/fbe37132-31bc-4fc9-9bfb-aac7a1b61a7f.webp +0 -0
- package/cli/src/app/api/v1/[resourceName]/[id]/route.ts +11 -0
- package/cli/src/app/api/v1/[resourceName]/route.ts +14 -0
- package/cli/src/app/api/v1/[resourceName]/upsert/route.ts +3 -0
- package/cli/src/app/api/v1/log/route.ts +7 -0
- package/cli/src/app/api/v1/otheruser/[id]/route.ts +14 -0
- package/cli/src/app/api/v1/otheruser/route.ts +7 -0
- package/cli/src/app/api/v1/password/forgotpassword/route.ts +3 -0
- package/cli/src/app/api/v1/password/resetpassword/route.ts +3 -0
- package/cli/src/app/api/v1/payment/method/route.ts +4 -0
- package/cli/src/app/api/v1/payment/route.ts +3 -0
- package/cli/src/app/api/v1/payment/verify-fail/route.ts +3 -0
- package/cli/src/app/api/v1/payment/verify-success/route.ts +3 -0
- package/cli/src/app/api/v1/preload/route.ts +3 -0
- package/cli/src/app/api/v1/searchable-resources/route.ts +11 -0
- package/cli/src/app/api/v1/searchresult/route.ts +35 -0
- package/cli/src/app/api/v1/sign-in/route.ts +3 -0
- package/cli/src/app/api/v1/sign-out/route.ts +3 -0
- package/cli/src/app/api/v1/sign-up/route.ts +3 -0
- package/cli/src/app/api/v1/subscription/cancel/route.ts +3 -0
- package/cli/src/app/api/v1/subscription/create/route.ts +3 -0
- package/cli/src/app/api/v1/subscription/update/route.ts +3 -0
- package/cli/src/app/api/v1/uimeta/route.ts +3 -0
- package/cli/src/app/api/v1/uimetas/route.ts +3 -0
- package/cli/src/app/api/v1/userpermission/route.ts +3 -0
- package/cli/src/app/api/v1/visible-workspace/route.ts +5 -0
- package/cli/src/app/api/v1/workspace/change/route.ts +5 -0
- package/cli/src/app/f/(private)/dashboard/page.tsx +8 -0
- package/cli/src/app/f/(private)/dynamiclayout/page.tsx +8 -0
- package/cli/src/app/f/(private)/edituser/[id]/page.tsx +8 -0
- package/cli/src/app/f/(private)/edituser/page.tsx +8 -0
- package/cli/src/app/f/(private)/layout.tsx +5 -0
- package/cli/src/app/f/(private)/lm/page.tsx +8 -0
- package/cli/src/app/f/(private)/payment-plans/page.tsx +8 -0
- package/cli/src/app/f/(private)/preload/page.tsx +8 -0
- package/cli/src/app/f/(private)/statusboard/page.tsx +8 -0
- package/cli/src/app/f/(private)/userlist/page.tsx +8 -0
- package/cli/src/app/f/(private)/view/page.tsx +8 -0
- package/cli/src/app/f/defaultRedirect/page.tsx +9 -0
- package/cli/src/app/f/editpassword/page.tsx +8 -0
- package/cli/src/app/f/forgotpassword/page.tsx +13 -0
- package/cli/src/app/f/resetpassword/page.tsx +16 -0
- package/cli/src/app/f/sign-in/microsoft/page.tsx +8 -0
- package/cli/src/app/f/sign-in/page.tsx +13 -0
- package/cli/src/app/f/sign-up/page.tsx +13 -0
- package/cli/src/app/f/test/feed/page.tsx +8 -0
- package/cli/src/app/f/test/file-upload/page.tsx +8 -0
- package/cli/src/app/f/test/layout.tsx +5 -0
- package/cli/src/app/f/test/page.tsx +8 -0
- package/cli/tailwind.config.ts +1 -1
- package/level2/cli/create-saas-kit-app/bin/index.cjs.js +4 -4
- package/level2/cli/create-saas-kit-app/bin/index.js +4 -4
- package/level2/fd-toolbox/api/api-client.cjs.js +1 -1
- package/level2/fd-toolbox/api/api-client.js +1 -1
- package/level2/fd-toolbox/api/api-path-names.cjs.js +2 -2
- package/level2/fd-toolbox/api/api-paths.cjs.js +1 -1
- package/level2/fd-toolbox/api/api-paths.js +1 -1
- package/level2/fd-toolbox/api/base-api.cjs.js +1 -1
- package/level2/fd-toolbox/api/base-api.js +1 -1
- package/level2/fd-toolbox/auth/login-states.cjs.js +1 -1
- package/level2/fd-toolbox/auth/login-states.js +1 -1
- package/level2/fd-toolbox/auth/session-storage.cjs.js +1 -1
- package/level2/fd-toolbox/auth/session-storage.js +1 -1
- package/level2/fd-toolbox/auth/tokens.cjs.js +1 -1
- package/level2/fd-toolbox/auth/tokens.js +1 -1
- package/level2/fd-toolbox/constants/constants.cjs.js +1 -1
- package/level2/fd-toolbox/constants/constants.js +1 -1
- package/level2/fd-toolbox/enums/enums.cjs.js +1 -1
- package/level2/fd-toolbox/enums/enums.js +1 -1
- package/level2/fd-toolbox/errors/error-handler.cjs.js +1 -1
- package/level2/fd-toolbox/errors/error-handler.js +1 -1
- package/level2/fd-toolbox/errors/errors.cjs.js +1 -1
- package/level2/fd-toolbox/errors/errors.js +1 -1
- package/level2/fd-toolbox/errors/problem-details.cjs.js +1 -1
- package/level2/fd-toolbox/errors/problem-details.js +1 -1
- package/level2/fd-toolbox/functions/value-checking-functions.cjs.js +1 -1
- package/level2/fd-toolbox/functions/value-checking-functions.js +1 -1
- package/level2/fd-toolbox/http/url/urls.cjs.js +1 -1
- package/level2/fd-toolbox/http/url/urls.js +1 -1
- package/level2/fd-toolbox/infra/env-config.cjs.js +2 -2
- package/level2/fd-toolbox/infra/env-config.js +2 -2
- package/level2/fd-toolbox/infra/env-functions.cjs.js +1 -1
- package/level2/fd-toolbox/infra/env-functions.js +1 -1
- package/level2/fd-toolbox/infra/env-schema.cjs.js +2 -2
- package/level2/fd-toolbox/infra/env-schema.js +2 -2
- package/level2/fd-toolbox/infra/env-store.cjs.js +1 -1
- package/level2/fd-toolbox/infra/env-store.js +1 -1
- package/level2/fd-toolbox/lib/environments.cjs.js +1 -1
- package/level2/fd-toolbox/lib/environments.js +1 -1
- package/level2/fd-toolbox/lib/utils.cjs.js +1 -1
- package/level2/fd-toolbox/lib/utils.js +1 -1
- package/level2/fd-toolbox/local-storage/local-storage.cjs.js +1 -1
- package/level2/fd-toolbox/local-storage/local-storage.js +1 -1
- package/level2/fd-toolbox/logging/loggers.cjs.js +1 -1
- package/level2/fd-toolbox/logging/loggers.js +1 -1
- package/level2/fd-toolbox/notifications.cjs.js +2 -2
- package/level2/fd-toolbox/notifications.js +2 -2
- package/level2/fd-toolbox/odata/odata-constants.cjs.js +1 -1
- package/level2/fd-toolbox/odata/odata-constants.js +1 -1
- package/level2/fd-toolbox/odata/odatas.cjs.js +1 -1
- package/level2/fd-toolbox/odata/odatas.js +1 -1
- package/level2/fd-toolbox/odata/services/odata-filters.cjs.js +1 -1
- package/level2/fd-toolbox/odata/services/odata-filters.js +1 -1
- package/level2/fd-toolbox/paths/paths-names.cjs.js +2 -2
- package/level2/fd-toolbox/paths/paths-names.js +1 -1
- package/level2/fd-toolbox/routing/login-routers.cjs.js +1 -1
- package/level2/fd-toolbox/routing/login-routers.js +1 -1
- package/level2/fd-toolbox/routing/paths.cjs.js +1 -1
- package/level2/fd-toolbox/routing/paths.js +1 -1
- package/level2/fd-toolbox/strings/strings-constants.cjs.js +1 -1
- package/level2/fd-toolbox/strings/strings-constants.js +1 -1
- package/level2/fd-toolbox/strings/strings.cjs.js +1 -1
- package/level2/fd-toolbox/strings/strings.js +1 -1
- package/level2/fd-toolbox/types/ensure-type.cjs.js +1 -1
- package/level2/fd-toolbox/types/ensure-type.js +1 -1
- package/level2/fd-toolbox-core/core/name-of.cjs.js +1 -1
- package/level2/fd-toolbox-core/core/name-of.js +1 -1
- package/level2/fd-toolbox-core/types/resource-with-id.cjs.js +1 -1
- package/level2/fd-toolbox-core/types/resource-with-id.js +1 -1
- package/package.json +23 -15
|
@@ -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'](([
|
|
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'](([_0x4d7490,_0xb869d7])=>[_0x4d7490+'/*',[_0xb869d7+'/*']]));
|
|
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'](([
|
|
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'](([_0x4d7490,_0xb869d7])=>[_0x4d7490+'/*',[_0xb869d7+'/*']]));
|
|
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
|
|
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
|
|
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 };
|
package/cli/.env.example
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
NEXT_PUBLIC_FD_STRIPE_PUBLIC_KEY=pk_test_51RHmZWQqF1vu19lrVvc7sjoc4eOkW7CD2wvGAjintWGs6917z22kCen6nh6k3fcbOwqEji9otdH6spKhOQz4DNmz00lIUmF4fI
|
|
2
|
+
FD_STRIPE_SECRET_KEY=sk_test_51RHmZWQqF1vu19lrhmYvV2eoKqRY1gVMFHYLdbJE4n3cJeHJMyBYu2F7VgoWaBlhgXQymn0TzpWPAeGd7hwzdNZ600HgJc7z8W
|
|
3
|
+
|
|
4
|
+
FD_INTEGRATION_ENABLED=true
|
|
5
|
+
|
|
6
|
+
FD_DATABASE_CONNECTION_STRING="postgresql://postgres:root@localhost:5432/saas-kit"
|
|
7
|
+
|
|
8
|
+
NEXT_PUBLIC_FD_SEED_DEMO_RESOURCES=true
|
|
9
|
+
FD_SEED_DEV_RESOURCES=true
|
|
10
|
+
|
|
11
|
+
FD_GOOGLE_PLACES_API_KEY=AIzaSyC3GcaKWMHoCOrCxFaGZpNH6-Y3tzCilZA
|
|
12
|
+
FD_GOOGLE_CLIENT_ID=
|
|
13
|
+
FD_GOOGLE_SPREADSHEET_ID=
|
|
14
|
+
FD_GOOGLE_SPREADSHEET_SHEET_NAME=
|
|
15
|
+
|
|
16
|
+
FD_USE_MIGRATIONS=false
|
|
17
|
+
|
|
18
|
+
FD_PLAID_CLIENT_ID=
|
|
19
|
+
FD_PLAID_SECRET=
|
|
20
|
+
FD_PLAID_ENV=
|
|
21
|
+
|
|
22
|
+
FD_SCREENSHOT_ONE_ACCESS_KEY=1L2ZnUQtaGASpg
|
|
23
|
+
FD_SCREENSHOT_ONE_SECRET_KEY=0cXkkSa0OBFKgg
|
|
24
|
+
|
|
25
|
+
FD_SENDER_EMAIL=
|
|
26
|
+
FD_EMAIL_SERVICE_URL=
|
|
27
|
+
FD_EMAIL_SERVICE_KEY=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
|
|
28
|
+
|
|
29
|
+
NEXT_PUBLIC_FD_SHOW_SIDEBAR=true
|
|
30
|
+
|
|
31
|
+
FD_AI_API_KEY=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
|
|
32
|
+
FD_STORE_SESSION_IN_HEADER=false
|
|
33
|
+
|
|
34
|
+
FD_SHIPPO_API_KEY=shippo_test_fdafbbd9fdba49ff38b26277c4251586c63d9fb1
|
|
35
|
+
FD_FEDEX_SECRET_KEY=ba4d4fe3e0b94e66a9fb4a0b1adf0f88
|
|
36
|
+
FD_FEDEX_API_KEY=l714232a806a684a008a28e879eb6db770
|
|
37
|
+
|
|
38
|
+
FD_S3_COMPATIBLE_ACCESS_KEY=
|
|
39
|
+
FD_S3_COMPATIBLE_SECRET_ACCESS_KEY=
|
|
40
|
+
FD_S3_COMPATIBLE_BUCKET_NAME=
|
|
41
|
+
FD_S3_COMPATIBLE_ENDPOINT=https://e0ed8fb91d4055df5c33d876e7c84482.r2.cloudflarestorage.com
|
|
42
|
+
FD_S3_COMPATIBLE_ENDPOINT_DEV=https://pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev
|
|
43
|
+
|
|
44
|
+
NODE_OPTIONS="--import=tsx"
|
|
45
|
+
|
|
46
|
+
NEXT_PUBLIC_FD_LAUNCH_MODE=direct
|
|
47
|
+
|
|
48
|
+
FD_GITLAB_PRIVATE_TOKEN=
|
|
49
|
+
FD_GITLAB_PROJECT_ID=
|
|
50
|
+
FD_GITLAB_HOST=
|
|
51
|
+
FD_DEFAULT_BRANCH_NAME=
|
|
52
|
+
FD_GIT_USERNAME=
|
|
53
|
+
FD_GIT_PASSWORD=
|
|
54
|
+
FD_REPO_OWNER=
|
|
55
|
+
FD_REPO_NAME=
|
package/cli/.gitlab-ci.yml
CHANGED
|
@@ -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}
|
|
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+[^'"]
|
|
163
|
+
const importRegex = /(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;
|
|
157
164
|
|
|
158
|
-
return content.replace(importRegex, (match, p1, importPath,
|
|
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
|
-
|
|
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}${
|
|
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
|
|
275
|
-
|
|
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[
|
|
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`);
|
package/cli/next.config.js
CHANGED
|
@@ -1,55 +1,80 @@
|
|
|
1
1
|
import { execSync } from "child_process";
|
|
2
2
|
import { folders } from "@fernir2/saas-kit";
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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": "
|
|
7
|
-
"build": "next build
|
|
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.
|
|
20
|
-
"@node-rs/argon2": "
|
|
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.
|
|
26
|
+
"next": "15.5.2",
|
|
27
27
|
"quill": "2.0.3",
|
|
28
|
-
"react": "
|
|
29
|
-
"react-dom": "
|
|
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": "
|
|
39
|
-
"@types/react-dom": "
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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;
|