@fernir2/saas-kit-cli 0.1.15 → 0.1.17
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/level2/cli/create-saas-kit-app/bin/index.cjs.js +4 -4
- package/level2/cli/create-saas-kit-app/bin/index.js +3 -3
- 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 +2 -2
- package/LICENSE +0 -45
- package/bin/index.js +0 -262
- package/cli/.gitlab-ci.yml +0 -15
- package/cli/.husky/commit-msg +0 -1
- package/cli/.husky/pre-commit +0 -2
- package/cli/README.md +0 -101
- package/cli/bin/index.ts +0 -359
- package/cli/constants/path.js +0 -54
- package/cli/drizzle.config.ts +0 -12
- package/cli/eslint.config.js +0 -10
- package/cli/global-setup.ts +0 -25
- package/cli/next.config.js +0 -55
- package/cli/npm-commands/gen-meta/index.ts +0 -3
- package/cli/npm-commands/gen-schema/index.ts +0 -5
- package/cli/npm-commands/migrate-db/index.ts +0 -5
- package/cli/npm-commands/migrate-db/migrate-db.ts +0 -15
- package/cli/npm-commands/seed-db/index.ts +0 -5
- package/cli/npm-commands/seed-db/seed-db.ts +0 -15
- package/cli/package-template.json +0 -61
- package/cli/playwright.config.ts +0 -34
- package/cli/postcss.config.mjs +0 -9
- package/cli/server.ts +0 -41
- package/cli/src/app/api/v1/[resourceName]/[id]/route.ts/route.ts +0 -11
- package/cli/src/app/api/v1/[resourceName]/route.ts/route.ts +0 -14
- package/cli/src/app/api/v1/[resourceName]/upsert/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/log/route.ts/route.ts +0 -7
- package/cli/src/app/api/v1/otheruser/[id]/route.ts/route.ts +0 -14
- package/cli/src/app/api/v1/otheruser/route.ts/route.ts +0 -7
- package/cli/src/app/api/v1/password/forgotpassword/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/password/resetpassword/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/method/route.ts/route.ts +0 -4
- package/cli/src/app/api/v1/payment/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/verify-fail/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/verify-success/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/preload/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/searchable-resources/route.ts/route.ts +0 -11
- package/cli/src/app/api/v1/searchresult/route.ts/route.ts +0 -35
- package/cli/src/app/api/v1/sign-in/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/sign-out/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/sign-up/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/cancel/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/create/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/update/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/uimeta/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/uimetas/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/userpermission/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/visible-workspace/route.ts/route.ts +0 -5
- package/cli/src/app/api/v1/workspace/change/route.ts/route.ts +0 -5
- package/cli/src/app/favicon.ico +0 -0
- package/cli/src/app/globals.css +0 -1
- package/cli/src/app/layout.tsx +0 -44
- package/cli/src/app/page.tsx +0 -9
- package/cli/src/app/styles/common.css +0 -74
- package/cli/src/app/styles/rich-text-editor.css +0 -130
- package/cli/tailwind.config.ts +0 -13
- package/cli/tsconfig.declaration.json +0 -48
- package/cli/tsconfig.json +0 -65
- package/cli/tsconfig.server.json +0 -14
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "0.1.0",
|
|
3
|
-
"private": true,
|
|
4
|
-
"type": "module",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "npx tsx --tsconfig tsconfig.server.json server.ts",
|
|
7
|
-
"build": "next build && tsc --project tsconfig.server.json",
|
|
8
|
-
"lint": "eslint -c eslint.config.js",
|
|
9
|
-
"gen-schema": "npx tsx tools/npm-commands/gen-schema/index.ts",
|
|
10
|
-
"gen-meta": "npx tsx tools/npm-commands/gen-meta/index.ts",
|
|
11
|
-
"init-db": "npm run migrate-db && npm run seed-db",
|
|
12
|
-
"setup": "npm run gen-meta && npm run gen-schema && npm run init-db",
|
|
13
|
-
"start": "npm run setup && npm run dev",
|
|
14
|
-
"prod": "npm run setup && npm run build && npx tsx server.ts",
|
|
15
|
-
"migrate-db": "npx tsx tools/npm-commands/migrate-db/index.ts",
|
|
16
|
-
"seed-db": "npx tsx tools/npm-commands/seed-db/index.ts"
|
|
17
|
-
},
|
|
18
|
-
"dependencies": {
|
|
19
|
-
"@fernir2/saas-kit": "0.0.144",
|
|
20
|
-
"@node-rs/argon2": "2.0.2",
|
|
21
|
-
"drizzle-orm": "0.41.0",
|
|
22
|
-
"eslint-plugin-github": "6.0.0",
|
|
23
|
-
"eslint-plugin-import": "2.32.0",
|
|
24
|
-
"eslint-plugin-sonarjs": "3.0.5",
|
|
25
|
-
"geist": "1.3.1",
|
|
26
|
-
"next": "15.4.5",
|
|
27
|
-
"quill": "2.0.3",
|
|
28
|
-
"react": "18",
|
|
29
|
-
"react-dom": "18",
|
|
30
|
-
"socket.io-client": "4.8.1",
|
|
31
|
-
"tailwindcss-animate": "1.0.7"
|
|
32
|
-
},
|
|
33
|
-
"devDependencies": {
|
|
34
|
-
"playwright": "1.52.0",
|
|
35
|
-
"@eslint/eslintrc": "3.3.1",
|
|
36
|
-
"@eslint/js": "9.35.0",
|
|
37
|
-
"@types/node": "24.5.1",
|
|
38
|
-
"@types/react": "18",
|
|
39
|
-
"@types/react-dom": "18",
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "8.43.0",
|
|
41
|
-
"@typescript-eslint/eslint-plugin-tslint": "7.0.2",
|
|
42
|
-
"@typescript-eslint/parser": "8.43.0",
|
|
43
|
-
"drizzle-kit": "0.28.1",
|
|
44
|
-
"eslint": "9.35.0",
|
|
45
|
-
"eslint-config-next": "15.5.2",
|
|
46
|
-
"eslint-config-prettier": "9.1.0",
|
|
47
|
-
"eslint-plugin-react": "7.37.5",
|
|
48
|
-
"eslint-plugin-react-compiler": "19.1.0-rc.2",
|
|
49
|
-
"eslint-plugin-react-hooks": "5.2.0",
|
|
50
|
-
"eslint-plugin-react-refresh": "0.4.20",
|
|
51
|
-
"eslint-plugin-tailwindcss": "3.18.2",
|
|
52
|
-
"husky": "9.1.7",
|
|
53
|
-
"postcss": "8",
|
|
54
|
-
"prettier": "3.6.2",
|
|
55
|
-
"prettier-plugin-tailwindcss": "0.6.14",
|
|
56
|
-
"tailwindcss": "3.4.1",
|
|
57
|
-
"tsx": "4.19.1",
|
|
58
|
-
"typescript": "5.9.2",
|
|
59
|
-
"esbuild": "0.19.12"
|
|
60
|
-
}
|
|
61
|
-
}
|
package/cli/playwright.config.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { defineConfig, devices } from "playwright/test";
|
|
2
|
-
import { getDotenvConfig } from "@fernir2/saas-kit";
|
|
3
|
-
|
|
4
|
-
getDotenvConfig();
|
|
5
|
-
|
|
6
|
-
const baseUrl = "http://localhost:8080/";
|
|
7
|
-
|
|
8
|
-
export default defineConfig({
|
|
9
|
-
timeout: 120000,
|
|
10
|
-
testDir: "test/",
|
|
11
|
-
fullyParallel: true,
|
|
12
|
-
globalSetup: "./global-setup.ts",
|
|
13
|
-
workers: undefined,
|
|
14
|
-
reporter: "html",
|
|
15
|
-
use: {
|
|
16
|
-
baseURL: baseUrl,
|
|
17
|
-
trace: "on-first-retry",
|
|
18
|
-
},
|
|
19
|
-
projects: [
|
|
20
|
-
{
|
|
21
|
-
name: "chromium",
|
|
22
|
-
use: { ...devices["Desktop Chrome"] },
|
|
23
|
-
},
|
|
24
|
-
],
|
|
25
|
-
webServer: {
|
|
26
|
-
command: "npm run prod",
|
|
27
|
-
url: baseUrl,
|
|
28
|
-
reuseExistingServer: true,
|
|
29
|
-
timeout: 120000,
|
|
30
|
-
env: {
|
|
31
|
-
NODE_ENV: "test",
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
});
|
package/cli/postcss.config.mjs
DELETED
package/cli/server.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { createServer } from "node:http";
|
|
2
|
-
import { parse } from "url";
|
|
3
|
-
import next from "next";
|
|
4
|
-
import {
|
|
5
|
-
checkAndHandleWebSocketRequest,
|
|
6
|
-
initSocket,
|
|
7
|
-
initializeInternalMetaCache,
|
|
8
|
-
} from "@fernir2/saas-kit/server";
|
|
9
|
-
import { envSettingKeys, getNumberEnvSetting, isDev } from "@fernir2/saas-kit";
|
|
10
|
-
|
|
11
|
-
const dev = isDev();
|
|
12
|
-
const port = getNumberEnvSetting(envSettingKeys.fdPort) ?? 3000;
|
|
13
|
-
|
|
14
|
-
const app = next({ dev, port });
|
|
15
|
-
const nextRequestHandler = app.getRequestHandler();
|
|
16
|
-
|
|
17
|
-
async function run() {
|
|
18
|
-
await app.prepare();
|
|
19
|
-
|
|
20
|
-
const httpServer = createServer((req, res) => {
|
|
21
|
-
checkAndHandleWebSocketRequest(req, res);
|
|
22
|
-
|
|
23
|
-
const parsedUrl = parse(req.url!, true);
|
|
24
|
-
nextRequestHandler(req, res, parsedUrl);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
initSocket(httpServer);
|
|
28
|
-
|
|
29
|
-
httpServer
|
|
30
|
-
.once("error", (err) => {
|
|
31
|
-
console.error(err);
|
|
32
|
-
process.exit(1);
|
|
33
|
-
})
|
|
34
|
-
.listen(port, () => {
|
|
35
|
-
console.log(`> Ready on http://localhost:${port}`);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
await initializeInternalMetaCache();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
run();
|
|
@@ -1,11 +0,0 @@
|
|
|
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;
|
|
@@ -1,14 +0,0 @@
|
|
|
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;
|
|
@@ -1,14 +0,0 @@
|
|
|
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;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { getSearchableResources } from "@meta/server/resources/searchable-resources";
|
|
2
|
-
import { apiBadRequestResponse, apiOkResponse } from "@meta/server/web/responses";
|
|
3
|
-
import { httpApiWrapper } from "@meta/server/web/http-api-wrapper";
|
|
4
|
-
|
|
5
|
-
export const GET = httpApiWrapper(async () => {
|
|
6
|
-
const resourceNames = Array.from((await getSearchableResources()).keys());
|
|
7
|
-
|
|
8
|
-
if (!resourceNames) return apiBadRequestResponse([]);
|
|
9
|
-
|
|
10
|
-
return apiOkResponse(resourceNames);
|
|
11
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { SearchResult } from "@fd-app-toolbox/resources/search-result.resource";
|
|
2
|
-
import { searchResultParams } from "@fd-toolbox/constants/search-result-constants";
|
|
3
|
-
import { getSearchableResourceResult, getSearchScreensResult } from "@server/search/search-result";
|
|
4
|
-
import { SearchableResourceResult } from "@fd-app-toolbox/models/searchable-resource-result";
|
|
5
|
-
import { ScreensResult } from "@fd-app-toolbox/models/screens-result";
|
|
6
|
-
import { httpApiWrapper } from "@meta/server/web/http-api-wrapper";
|
|
7
|
-
import { apiOkResponse } from "@meta/server/web/responses";
|
|
8
|
-
import { isPromiseFulfilled } from "@fd-toolbox/lib/utils";
|
|
9
|
-
|
|
10
|
-
export const GET = httpApiWrapper(async (req: Request) => {
|
|
11
|
-
const url = new URL(req.url);
|
|
12
|
-
const querySearch = url.searchParams.get(searchResultParams.querySearch) ?? "";
|
|
13
|
-
const filterSearchParam = url.searchParams.get(searchResultParams.filterSearch);
|
|
14
|
-
|
|
15
|
-
const filterSearch = filterSearchParam ? filterSearchParam.split(",") : [];
|
|
16
|
-
|
|
17
|
-
const searchResourceResultPromise = getSearchableResourceResult(
|
|
18
|
-
querySearch,
|
|
19
|
-
filterSearch,
|
|
20
|
-
) satisfies Promise<SearchableResourceResult[]>;
|
|
21
|
-
|
|
22
|
-
const searchScreensResultPromise = getSearchScreensResult(querySearch, filterSearch) satisfies Promise<
|
|
23
|
-
ScreensResult[]
|
|
24
|
-
>;
|
|
25
|
-
|
|
26
|
-
const [searchResourceResult, searchScreensResult] = await Promise.allSettled([
|
|
27
|
-
searchResourceResultPromise,
|
|
28
|
-
searchScreensResultPromise,
|
|
29
|
-
]);
|
|
30
|
-
|
|
31
|
-
return apiOkResponse<SearchResult>({
|
|
32
|
-
searchableResources: isPromiseFulfilled(searchResourceResult) ? searchResourceResult.value : [],
|
|
33
|
-
screens: isPromiseFulfilled(searchScreensResult) ? searchScreensResult.value : [],
|
|
34
|
-
});
|
|
35
|
-
});
|
package/cli/src/app/favicon.ico
DELETED
|
Binary file
|
package/cli/src/app/globals.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import "@fernir2/saas-kit/styles";
|
package/cli/src/app/layout.tsx
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { FdHtmlMetadata } from "@meta/client/framework";
|
|
2
|
-
import { GeistSans } from "geist/font/sans";
|
|
3
|
-
import "src/app/globals.css";
|
|
4
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
5
|
-
import Favicon from "src/app/favicon.ico";
|
|
6
|
-
import { FdToaster } from "@fd-component-toolbox/toaster/FdToaster";
|
|
7
|
-
import { ReactNode } from "react";
|
|
8
|
-
import { FdProviders } from "@client/components/providers/FdProviders";
|
|
9
|
-
import { setSidebarResourceNames } from "@fd-app-toolbox/layout/sidebar/sidebar-resource-names-cache";
|
|
10
|
-
import { defaultGlobalConfig } from "@meta/providers/global-provider/default-config";
|
|
11
|
-
import { setMultiListEditResourceConfigs } from "@/app/config/multi-list-config";
|
|
12
|
-
import { setResourceListConfigs } from "@packages/level2/client/pages/view-page/resource-list-configs";
|
|
13
|
-
import { setEditResourceConfigs } from "@packages/level2/meta/edit-resource/config/fd-edit-resource-configs";
|
|
14
|
-
|
|
15
|
-
export const metadata: FdHtmlMetadata = {
|
|
16
|
-
title: "SaaS Kit",
|
|
17
|
-
icons: [{ rel: "icon", url: Favicon.src }],
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export default async function RootLayout({ children }: { children: ReactNode }) {
|
|
21
|
-
const sidebarResourceNames: string[] = [];
|
|
22
|
-
|
|
23
|
-
setSidebarResourceNames(sidebarResourceNames);
|
|
24
|
-
await setMultiListEditResourceConfigs();
|
|
25
|
-
await setResourceListConfigs();
|
|
26
|
-
setEditResourceConfigs();
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<html lang="en">
|
|
30
|
-
<body className={cn(GeistSans.className, "h-screen text-sm")}>
|
|
31
|
-
<div className="flex h-full flex-col">
|
|
32
|
-
<FdProviders
|
|
33
|
-
globalConfig={{
|
|
34
|
-
...defaultGlobalConfig,
|
|
35
|
-
}}
|
|
36
|
-
>
|
|
37
|
-
{children}
|
|
38
|
-
</FdProviders>
|
|
39
|
-
</div>
|
|
40
|
-
<FdToaster />
|
|
41
|
-
</body>
|
|
42
|
-
</html>
|
|
43
|
-
);
|
|
44
|
-
}
|
package/cli/src/app/page.tsx
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { fdRedirect } from "@fd-toolbox/server/framework";
|
|
2
|
-
import { getResourceListUrl } from "@meta/services/meta-navigations";
|
|
3
|
-
import { resourceNames } from "@fd-toolbox/resources/resource-names";
|
|
4
|
-
|
|
5
|
-
export default function Home() {
|
|
6
|
-
const afterLoginUrl = getResourceListUrl(resourceNames.contact);
|
|
7
|
-
|
|
8
|
-
fdRedirect(afterLoginUrl);
|
|
9
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
@tailwind base;
|
|
2
|
-
@tailwind components;
|
|
3
|
-
@tailwind utilities;
|
|
4
|
-
|
|
5
|
-
@layer base {
|
|
6
|
-
* {
|
|
7
|
-
@apply border-border;
|
|
8
|
-
}
|
|
9
|
-
body {
|
|
10
|
-
@apply bg-background text-foreground;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@supports not (-webkit-appearance: none) {
|
|
15
|
-
* {
|
|
16
|
-
scrollbar-width: thin;
|
|
17
|
-
scrollbar-color: hsl(var(--fd-toolbar)) hsl(var(--background));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@supports (-webkit-appearance: none) {
|
|
22
|
-
*::-webkit-scrollbar {
|
|
23
|
-
width: 15px;
|
|
24
|
-
height: 15px;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
*::-webkit-scrollbar-track {
|
|
28
|
-
background: hsl(var(--background));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
*::-webkit-scrollbar-thumb {
|
|
32
|
-
width: 9px;
|
|
33
|
-
height: 9px;
|
|
34
|
-
background: hsl(var(--fd-toolbar));
|
|
35
|
-
border-radius: var(--radius);
|
|
36
|
-
border: 3px solid hsl(var(--background));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
*::-webkit-scrollbar-thumb:hover {
|
|
40
|
-
background: hsl(var(--fd-toolbar-hover));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
*::-webkit-scrollbar-button {
|
|
44
|
-
display: none;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.scrollbar-hidden {
|
|
49
|
-
-ms-overflow-style: none;
|
|
50
|
-
scrollbar-width: none;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@media (max-width: 426px) {
|
|
54
|
-
html,
|
|
55
|
-
body {
|
|
56
|
-
overflow: auto;
|
|
57
|
-
-ms-overflow-style: none;
|
|
58
|
-
scrollbar-width: none;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
body::-webkit-scrollbar,
|
|
62
|
-
body *::-webkit-scrollbar {
|
|
63
|
-
display: none;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@layer base {
|
|
68
|
-
input:-webkit-autofill,
|
|
69
|
-
input:-webkit-autofill:hover,
|
|
70
|
-
input:-webkit-autofill:focus {
|
|
71
|
-
-webkit-box-shadow: 0 0 0px 1000px hsl(var(--background)) inset;
|
|
72
|
-
-webkit-text-fill-color: hsl(var(--foreground));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
div.ql-toolbar.ql-snow {
|
|
2
|
-
padding: 0.5rem 0.75rem;
|
|
3
|
-
border-top-right-radius: var(--radius);
|
|
4
|
-
border-top-left-radius: var(--radius);
|
|
5
|
-
border: 1px solid hsl(var(--border));
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.ql-toolbar.ql-snow .ql-picker-label {
|
|
9
|
-
padding-left: 0;
|
|
10
|
-
border: none;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.ql-toolbar.ql-snow .ql-picker-label::before {
|
|
14
|
-
font-family: "__GeistSans_3a0388", serif;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.ql-editor {
|
|
18
|
-
font-size: 14px;
|
|
19
|
-
padding: 10px 12px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
div.ql-container.ql-snow {
|
|
23
|
-
height: max-content;
|
|
24
|
-
border: 1px solid hsl(var(--border));
|
|
25
|
-
border-bottom-right-radius: var(--radius);
|
|
26
|
-
border-bottom-left-radius: var(--radius);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.ql-tooltip {
|
|
30
|
-
display: none;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
|
34
|
-
z-index: 11;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.ql-picker-label,
|
|
38
|
-
.ql-picker-label .ql-stroke {
|
|
39
|
-
color: hsl(var(--popover-foreground));
|
|
40
|
-
stroke: hsl(var(--popover-foreground));
|
|
41
|
-
fill: hsl(var(--popover-foreground));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.ql-toolbar .ql-formats button {
|
|
45
|
-
color: hsl(var(--popover-foreground));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.ql-toolbar .ql-formats button .ql-stroke {
|
|
49
|
-
stroke: hsl(var(--popover-foreground));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.ql-toolbar .ql-formats button .ql-fill {
|
|
53
|
-
fill: hsl(var(--popover-foreground));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.ql-toolbar .ql-active,
|
|
57
|
-
.ql-toolbar .ql-active .ql-stroke,
|
|
58
|
-
.ql-toolbar .ql-active .ql-fill {
|
|
59
|
-
color: hsl(var(--popover-foreground));
|
|
60
|
-
fill: none;
|
|
61
|
-
stroke: none;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.ql-snow .ql-picker {
|
|
65
|
-
font-weight: 400;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.ql-editor.ql-blank::before {
|
|
69
|
-
left: 12px;
|
|
70
|
-
right: 12px;
|
|
71
|
-
color: hsl(var(--muted-foreground));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.ql-toolbar .ql-formats button:hover .ql-stroke,
|
|
75
|
-
.ql-toolbar .ql-picker .ql-picker-label:hover .ql-stroke,
|
|
76
|
-
.ql-toolbar .ql-picker .ql-picker-label.ql-active .ql-stroke,
|
|
77
|
-
.ql-toolbar .ql-formats button.ql-active .ql-stroke {
|
|
78
|
-
stroke: hsl(var(--foreground));
|
|
79
|
-
stroke-width: 2;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.ql-toolbar .ql-formats button:hover .ql-fill,
|
|
83
|
-
.ql-toolbar .ql-formats button.ql-active .ql-fill {
|
|
84
|
-
fill: hsl(var(--foreground));
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.ql-toolbar .ql-picker .ql-picker-label:hover::before,
|
|
88
|
-
.ql-toolbar .ql-picker .ql-picker-label.ql-active::before,
|
|
89
|
-
.ql-picker .ql-picker-options .ql-picker-item.ql-selected::before {
|
|
90
|
-
color: hsl(var(--foreground));
|
|
91
|
-
font-weight: 600;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.ql-snow .ql-picker-options .ql-picker-item:hover {
|
|
95
|
-
border-radius: 0.375rem;
|
|
96
|
-
background: hsl(var(--muted) / 0.5);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.ql-toolbar .ql-formats button .ql-stroke,
|
|
100
|
-
.ql-toolbar .ql-picker .ql-picker-label .ql-stroke {
|
|
101
|
-
stroke: hsl(var(--foreground));
|
|
102
|
-
stroke-width: 1.2;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.ql-toolbar .ql-formats button .ql-fill {
|
|
106
|
-
fill: hsl(var(--foreground));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.ql-toolbar .ql-picker .ql-picker-label::before,
|
|
110
|
-
.ql-picker .ql-picker-options .ql-picker-item::before {
|
|
111
|
-
color: hsl(var(--foreground));
|
|
112
|
-
font-weight: 400;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
|
116
|
-
min-width: 12rem;
|
|
117
|
-
z-index: 50;
|
|
118
|
-
margin-right: 1rem;
|
|
119
|
-
border-radius: 0.375rem;
|
|
120
|
-
background-color: hsl(var(--background));
|
|
121
|
-
border: 1px solid hsl(var(--border));
|
|
122
|
-
box-shadow: 0rem 0rem 0.1rem 0.01rem hsl(var(--fd-toolbar-shadow));
|
|
123
|
-
outline: none;
|
|
124
|
-
pointer-events: auto;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.ql-snow .ql-picker-options .ql-picker-item {
|
|
128
|
-
width: 100%;
|
|
129
|
-
padding: 0.5rem 0.75rem;
|
|
130
|
-
}
|
package/cli/tailwind.config.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getTailwindConfig } from "@fernir2/saas-kit";
|
|
2
|
-
|
|
3
|
-
const config = getTailwindConfig();
|
|
4
|
-
|
|
5
|
-
config.content = [
|
|
6
|
-
"./pages/**/*.{ts,tsx}",
|
|
7
|
-
"./components/**/*.{ts,tsx}",
|
|
8
|
-
"./app/**/*.{ts,tsx}",
|
|
9
|
-
"./src/**/*.{ts,tsx}",
|
|
10
|
-
"./node_modules/@fernir2/saas-kit/src/**/*.{js,ts,jsx,tsx}",
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
export default config;
|