Skip to content

Commit d2ea746

Browse files
authored
free version update (#6)
1 parent 4b9a0a8 commit d2ea746

110 files changed

Lines changed: 2990 additions & 2789 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

uikit/.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ NEXT_PUBLIC_PATH=
66
NEXT_PUBLIC_BASE_NAME=
77

88
## SEO
9-
NEXT_PUBLIC_METADATA_BASE=https://www.saasable.io/
9+
NEXT_PUBLIC_METADATA_BASE=https://www.saasable.io
1010

1111
## Google Analytics
12-
NEXT_PUBLIC_ANALYTICS_ID=G-7Y4YEVC4J3
12+
NEXT_PUBLIC_ANALYTICS_ID=
1313

1414
## Mailerlite
1515
## MAILERLITE_API_KEY=

uikit/.eslintignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

uikit/.eslintrc.json

Lines changed: 0 additions & 80 deletions
This file was deleted.

uikit/eslint.config.mjs

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
import prettier from 'eslint-plugin-prettier';
2+
import typescriptEslint from '@typescript-eslint/eslint-plugin';
3+
import tsParser from '@typescript-eslint/parser';
4+
import path from 'node:path';
5+
import { fileURLToPath } from 'node:url';
6+
import js from '@eslint/js';
7+
import { FlatCompat } from '@eslint/eslintrc';
8+
9+
const __filename = fileURLToPath(import.meta.url);
10+
const __dirname = path.dirname(__filename);
11+
const compat = new FlatCompat({
12+
baseDirectory: __dirname,
13+
recommendedConfig: js.configs.recommended,
14+
allConfig: js.configs.all
15+
});
16+
17+
export default [
18+
{
19+
ignores: ['**/node_modules/*', '**/.next/*']
20+
},
21+
...compat.extends('next/core-web-vitals', 'prettier'),
22+
{
23+
plugins: {
24+
prettier,
25+
'@typescript-eslint': typescriptEslint
26+
},
27+
28+
languageOptions: {
29+
parser: tsParser,
30+
ecmaVersion: 5,
31+
sourceType: 'module',
32+
33+
parserOptions: {
34+
project: './jsconfig.json',
35+
createDefaultProgram: true
36+
}
37+
},
38+
39+
settings: {
40+
'import/resolver': {
41+
node: {
42+
moduleDirectory: ['node_modules', 'src/']
43+
},
44+
45+
typescript: {
46+
alwaysTryTypes: true
47+
}
48+
}
49+
},
50+
51+
rules: {
52+
'react/jsx-filename-extension': 'off',
53+
'no-param-reassign': 'off',
54+
'react/prop-types': 'off',
55+
'react/require-default-props': 'off',
56+
'react/no-array-index-key': 'off',
57+
'react/react-in-jsx-scope': 'off',
58+
'react/jsx-props-no-spreading': 'off',
59+
'import/order': 'off',
60+
'no-console': 'off',
61+
'no-shadow': 'off',
62+
'@typescript-eslint/naming-convention': 'off',
63+
'@typescript-eslint/no-explicit-any': 'warn',
64+
'import/no-cycle': 'off',
65+
'prefer-destructuring': 'off',
66+
'import/no-extraneous-dependencies': 'off',
67+
'react/display-name': 'off',
68+
69+
'import/no-unresolved': [
70+
'off',
71+
{
72+
caseSensitive: false
73+
}
74+
],
75+
76+
'no-restricted-imports': [
77+
'error',
78+
{
79+
patterns: ['@mui/*/*/*', '!@mui/material/test-utils/*']
80+
}
81+
],
82+
83+
'@typescript-eslint/no-unused-vars': [
84+
'error',
85+
{
86+
vars: 'all',
87+
args: 'none'
88+
}
89+
],
90+
91+
'prettier/prettier': [
92+
'warn',
93+
{
94+
bracketSpacing: true,
95+
printWidth: 140,
96+
singleQuote: true,
97+
trailingComma: 'none',
98+
tabWidth: 2,
99+
useTabs: false
100+
}
101+
]
102+
}
103+
}
104+
];

uikit/next.config.mjs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
/** @type {import('next').NextConfig} */
2+
const cspHeader = `
3+
default-src 'self';
4+
script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.googletagmanager.com https://vercel.live https://va.vercel-scripts.com;
5+
style-src 'self' 'unsafe-inline';
6+
img-src 'self' blob: data: https://www.googletagmanager.com https://flagcdn.com https://a.tile.openstreetmap.org https://b.tile.openstreetmap.org https://c.tile.openstreetmap.org;
7+
font-src 'self';
8+
object-src 'self';
9+
base-uri 'self';
10+
form-action 'self';
11+
frame-ancestors 'self';
12+
connect-src 'self' https://www.googletagmanager.com https://raw.githubusercontent.com;
13+
`;
14+
215
const nextConfig = {
316
modularizeImports: {
417
'@mui/material': {
@@ -16,7 +29,20 @@ const nextConfig = {
1629
pathname: '**'
1730
}
1831
]
32+
},
33+
async headers() {
34+
return [
35+
{
36+
source: '/(.*)',
37+
headers: [
38+
{
39+
key: 'Content-Security-Policy',
40+
value: cspHeader.replace(/\n/g, '')
41+
}
42+
]
43+
}
44+
];
1945
}
2046
};
2147

22-
export default nextConfig;
48+
export default nextConfig;

0 commit comments

Comments
 (0)