@qlover/create-app 1.0.1 → 1.1.0
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/CHANGELOG.md +30 -0
- package/dist/index.cjs +9 -9
- package/dist/index.js +9 -9
- package/dist/templates/next-app/config/Identifier/api.ts +7 -0
- package/dist/templates/next-app/config/Identifier/pages/page.register.ts +8 -0
- package/dist/templates/next-app/config/common.ts +1 -1
- package/dist/templates/next-app/config/i18n/HomeI18n.ts +2 -0
- package/dist/templates/next-app/config/i18n/register18n.ts +2 -1
- package/dist/templates/next-app/config/route.ts +9 -0
- package/dist/templates/next-app/migrations/schema/UserSchema.ts +1 -1
- package/dist/templates/next-app/next.config.ts +5 -4
- package/dist/templates/next-app/package.json +7 -8
- package/dist/templates/next-app/public/locales/en.json +4 -1
- package/dist/templates/next-app/public/locales/zh.json +4 -1
- package/dist/templates/next-app/src/app/[locale]/auth/layout.tsx +18 -0
- package/dist/templates/next-app/src/app/[locale]/{login → auth/login}/LoginForm.tsx +2 -1
- package/dist/templates/next-app/src/app/[locale]/{login → auth/login}/page.tsx +4 -5
- package/dist/templates/next-app/src/app/[locale]/auth/page.tsx +8 -0
- package/dist/templates/next-app/src/app/[locale]/{register → auth/register}/RegisterForm.tsx +24 -3
- package/dist/templates/next-app/src/app/[locale]/{register → auth/register}/page.tsx +4 -5
- package/dist/templates/next-app/src/app/[locale]/page.tsx +18 -45
- package/dist/templates/next-app/src/app/api/ai/completions/route.ts +13 -13
- package/dist/templates/next-app/src/app/api/auth/callback/route.ts +11 -0
- package/dist/templates/next-app/src/app/api/callback/route.ts +49 -0
- package/dist/templates/next-app/src/base/cases/AppConfig.ts +2 -0
- package/dist/templates/next-app/src/base/cases/DialogErrorPlugin.ts +3 -6
- package/dist/templates/next-app/src/base/cases/DialogHandler.ts +0 -1
- package/dist/templates/next-app/src/base/cases/RequestEncryptPlugin.ts +13 -15
- package/dist/templates/next-app/src/base/cases/RouterService.ts +2 -7
- package/dist/templates/next-app/src/base/cases/StringEncryptor.ts +0 -6
- package/dist/templates/next-app/src/base/cases/TranslateI18nUtil.ts +53 -0
- package/dist/templates/next-app/src/base/cases/ZodColumnBuilder.ts +0 -10
- package/dist/templates/next-app/src/base/port/AdminLayoutInterface.ts +0 -3
- package/dist/templates/next-app/src/base/port/AppUserApiInterface.ts +1 -1
- package/dist/templates/next-app/src/base/port/I18nServiceInterface.ts +0 -18
- package/dist/templates/next-app/src/base/port/UserServiceInterface.ts +10 -5
- package/dist/templates/next-app/src/base/services/{appApi/AppApiRequester.ts → AppApiRequester.ts} +16 -11
- package/dist/templates/next-app/src/base/services/AppUserGateway.ts +110 -0
- package/dist/templates/next-app/src/base/services/I18nService.ts +1 -7
- package/dist/templates/next-app/src/base/services/ResourceService.ts +1 -4
- package/dist/templates/next-app/src/base/services/UserService.ts +28 -17
- package/dist/templates/next-app/src/base/services/adminApi/AdminLocalesApi.ts +5 -7
- package/dist/templates/next-app/src/base/services/adminApi/AdminUserApi.ts +4 -3
- package/dist/templates/next-app/src/base/services/appApi/AppApiPlugin.ts +24 -16
- package/dist/templates/next-app/src/base/services/appApi/AppUserApiBootstrap.ts +2 -5
- package/dist/templates/next-app/src/core/bootstraps/BootstrapServer.ts +15 -18
- package/dist/templates/next-app/src/core/clientIoc/ClientIOCRegister.ts +0 -5
- package/dist/templates/next-app/src/core/globals.ts +1 -0
- package/dist/templates/next-app/src/core/serverIoc/ServerIOCRegister.ts +2 -8
- package/dist/templates/next-app/src/i18n/routing.ts +8 -3
- package/dist/templates/next-app/src/lib/supabase/client.ts +8 -0
- package/dist/templates/next-app/src/lib/supabase/conts.ts +2 -0
- package/dist/templates/next-app/src/lib/supabase/proxy.ts +84 -0
- package/dist/templates/next-app/src/lib/supabase/server.ts +38 -0
- package/dist/templates/next-app/src/proxy.ts +8 -1
- package/dist/templates/next-app/src/server/AppPageRouteParams.ts +5 -2
- package/dist/templates/next-app/src/server/NextApiServer.ts +2 -9
- package/dist/templates/next-app/src/server/PagesRouteParams.ts +3 -4
- package/dist/templates/next-app/src/server/ServerAuth.ts +18 -12
- package/dist/templates/next-app/src/server/SupabaseBridge.ts +66 -59
- package/dist/templates/next-app/src/server/controllers/UserController.ts +7 -2
- package/dist/templates/next-app/src/server/port/ServerAuthInterface.ts +4 -0
- package/dist/templates/next-app/src/server/port/ServerInterface.ts +2 -1
- package/dist/templates/next-app/src/server/port/UserServiceInterface.ts +7 -1
- package/dist/templates/next-app/src/server/repositorys/LocalesRepository.ts +0 -3
- package/dist/templates/next-app/src/server/repositorys/UserRepository.ts +0 -3
- package/dist/templates/next-app/src/server/services/UserService.ts +71 -51
- package/dist/templates/next-app/src/server/validators/LocalesValidator.ts +0 -3
- package/dist/templates/next-app/src/server/validators/LoginValidator.ts +0 -6
- package/dist/templates/next-app/src/server/validators/SignupVerifyValidator.ts +68 -0
- package/dist/templates/next-app/src/uikit/components/BootstrapsProvider.tsx +3 -3
- package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportEvent.ts +0 -6
- package/dist/templates/next-app/src/uikit/components-app/AdminButton.tsx +29 -0
- package/dist/templates/next-app/src/uikit/components-app/AppRoutePage.tsx +21 -28
- package/dist/templates/next-app/src/uikit/components-app/AuthButton.tsx +20 -0
- package/dist/templates/next-app/src/uikit/hook/useI18nInterface.ts +2 -2
- package/dist/templates/next-app/src/uikit/hook/useWarnTranslations.ts +3 -17
- package/dist/templates/next-app/src/uikit/utils/getHashParams.ts +8 -0
- package/dist/templates/next-app/src/uikit/utils/getHashVerifyEmailParams.ts +42 -0
- package/dist/templates/react-app/config/i18n/PageI18nInterface.ts +2 -0
- package/package.json +2 -2
- package/dist/templates/next-app/src/base/cases/TranslateI18nInterface.ts +0 -25
- package/dist/templates/next-app/src/base/cases/UserServiceApi.ts +0 -78
- package/dist/templates/next-app/src/base/services/adminApi/AdminApiRequester.ts +0 -25
- package/dist/templates/next-app/src/base/services/appApi/AppUserApi.ts +0 -78
- package/dist/templates/next-app/src/server/port/UserControllerInerface.ts +0 -8
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { inject, injectable } from 'inversify';
|
|
2
|
-
import { omit } from 'lodash';
|
|
3
|
-
import type { LoginValidatorData } from '@/server/validators/LoginValidator';
|
|
4
|
-
import {
|
|
5
|
-
isWebUserSchema,
|
|
6
|
-
type UserCredential,
|
|
7
|
-
type UserSchema
|
|
8
|
-
} from '@migrations/schema/UserSchema';
|
|
9
|
-
import { AppUserApi } from '../services/appApi/AppUserApi';
|
|
10
|
-
import type { AppUserApiInterface } from '../port/AppUserApiInterface';
|
|
11
|
-
import type { UserServiceGateway } from '@qlover/corekit-bridge';
|
|
12
|
-
|
|
13
|
-
@injectable()
|
|
14
|
-
export class UserServiceApi implements UserServiceGateway<
|
|
15
|
-
UserSchema,
|
|
16
|
-
UserCredential
|
|
17
|
-
> {
|
|
18
|
-
constructor(@inject(AppUserApi) protected appUserApi: AppUserApiInterface) {}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @override
|
|
22
|
-
*/
|
|
23
|
-
public getUserInfo(_params?: unknown): Promise<UserSchema | null> {
|
|
24
|
-
if (_params && isWebUserSchema(_params).success) {
|
|
25
|
-
return Promise.resolve(omit(_params, 'credential_token') as UserSchema);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return Promise.resolve(null);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @override
|
|
33
|
-
*/
|
|
34
|
-
public refreshUserInfo<Params>(
|
|
35
|
-
_params?: Params | undefined
|
|
36
|
-
): Promise<UserSchema | null> {
|
|
37
|
-
return this.getUserInfo(_params);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @override
|
|
42
|
-
*/
|
|
43
|
-
public async login(params: LoginValidatorData): Promise<UserCredential> {
|
|
44
|
-
const response = await this.appUserApi.login(params);
|
|
45
|
-
|
|
46
|
-
if (!response.data.success) {
|
|
47
|
-
throw response;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return response.data.data as UserCredential;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @override
|
|
55
|
-
*/
|
|
56
|
-
public async register(params: LoginValidatorData): Promise<UserSchema> {
|
|
57
|
-
const response = await this.appUserApi.register(params);
|
|
58
|
-
|
|
59
|
-
if (!response.data.success) {
|
|
60
|
-
throw response;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return response.data.data as UserSchema;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @override
|
|
68
|
-
*/
|
|
69
|
-
public async logout<P = unknown, Result = void>(params?: P): Promise<Result> {
|
|
70
|
-
const response = await this.appUserApi.logout(params);
|
|
71
|
-
|
|
72
|
-
if (!response.data.success) {
|
|
73
|
-
throw response;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return response.data.data as Result;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ExecutorContextInterface,
|
|
3
|
-
RequestAdapterFetch,
|
|
4
|
-
RequestExecutor
|
|
5
|
-
} from '@qlover/fe-corekit';
|
|
6
|
-
import { injectable } from 'inversify';
|
|
7
|
-
import type { AppApiConfig } from '../appApi/AppApiRequester';
|
|
8
|
-
|
|
9
|
-
export interface AdminApiRequesterContext
|
|
10
|
-
extends ExecutorContextInterface<AppApiConfig> {}
|
|
11
|
-
|
|
12
|
-
@injectable()
|
|
13
|
-
export class AdminApiRequester extends RequestExecutor<
|
|
14
|
-
AppApiConfig,
|
|
15
|
-
AdminApiRequesterContext
|
|
16
|
-
> {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(
|
|
19
|
-
new RequestAdapterFetch({
|
|
20
|
-
baseURL: '/api/admin',
|
|
21
|
-
responseType: 'json'
|
|
22
|
-
})
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { inject, injectable } from 'inversify';
|
|
2
|
-
import type {
|
|
3
|
-
AppUserApiInterface,
|
|
4
|
-
UserApiLoginTransaction,
|
|
5
|
-
UserApiLogoutTransaction,
|
|
6
|
-
UserApiRegisterTransaction
|
|
7
|
-
} from '@/base/port/AppUserApiInterface';
|
|
8
|
-
import { AppApiRequester } from './AppApiRequester';
|
|
9
|
-
import type { AppApiConfig, AppApiRequesterContext } from './AppApiRequester';
|
|
10
|
-
import { RequestExecutor } from '@qlover/fe-corekit';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* UserApi
|
|
14
|
-
*
|
|
15
|
-
* @description
|
|
16
|
-
* UserApi is a client for the user API.
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
@injectable()
|
|
20
|
-
export class AppUserApi implements AppUserApiInterface {
|
|
21
|
-
constructor(
|
|
22
|
-
@inject(AppApiRequester)
|
|
23
|
-
protected client: RequestExecutor<AppApiConfig, AppApiRequesterContext>
|
|
24
|
-
) {}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @override
|
|
28
|
-
*/
|
|
29
|
-
public async login(
|
|
30
|
-
params: UserApiLoginTransaction['data']
|
|
31
|
-
): Promise<UserApiLoginTransaction['response']> {
|
|
32
|
-
const response = await this.client.request<
|
|
33
|
-
UserApiLoginTransaction['response'],
|
|
34
|
-
UserApiLoginTransaction['request']
|
|
35
|
-
>({
|
|
36
|
-
url: '/user/login',
|
|
37
|
-
method: 'POST',
|
|
38
|
-
data: params,
|
|
39
|
-
encryptProps: 'password'
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
return response;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @override
|
|
47
|
-
*/
|
|
48
|
-
public async register(
|
|
49
|
-
params: UserApiRegisterTransaction['data']
|
|
50
|
-
): Promise<UserApiRegisterTransaction['response']> {
|
|
51
|
-
const response = await this.client.request<
|
|
52
|
-
UserApiRegisterTransaction['response'],
|
|
53
|
-
UserApiRegisterTransaction['request']
|
|
54
|
-
>({
|
|
55
|
-
url: '/user/register',
|
|
56
|
-
method: 'POST',
|
|
57
|
-
data: params,
|
|
58
|
-
encryptProps: 'password'
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
return response;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @override
|
|
66
|
-
*/
|
|
67
|
-
public async logout(
|
|
68
|
-
_params?: unknown
|
|
69
|
-
): Promise<UserApiLogoutTransaction['response']> {
|
|
70
|
-
return await this.client.request<
|
|
71
|
-
UserApiLogoutTransaction['response'],
|
|
72
|
-
UserApiLogoutTransaction['request']
|
|
73
|
-
>({
|
|
74
|
-
url: '/user/logout',
|
|
75
|
-
method: 'POST'
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { UserSchema } from '@migrations/schema/UserSchema';
|
|
2
|
-
import type { LoginValidatorData } from '../validators/LoginValidator';
|
|
3
|
-
|
|
4
|
-
export interface UserControllerInerface {
|
|
5
|
-
login(body: LoginValidatorData): Promise<UserSchema>;
|
|
6
|
-
register(body: LoginValidatorData): Promise<UserSchema>;
|
|
7
|
-
logout(): Promise<void>;
|
|
8
|
-
}
|