@kine-design/crud 0.0.1-beta.1
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/dist/components/layout/KContent.d.ts +2 -0
- package/dist/components/layout/KHeader.d.ts +2 -0
- package/dist/components/layout/KLayout.d.ts +44 -0
- package/dist/components/layout/KSider.d.ts +2 -0
- package/dist/components/layout/index.d.ts +13 -0
- package/dist/components/login/KLoginPage.d.ts +43 -0
- package/dist/components/login/index.d.ts +10 -0
- package/dist/components/navMenu/KNavMenu.d.ts +27 -0
- package/dist/components/navMenu/index.d.ts +2 -0
- package/dist/components/pageHeader/KPageHeader.d.ts +49 -0
- package/dist/components/pageHeader/index.d.ts +9 -0
- package/dist/components/searchTable/KSearchTable.d.ts +99 -0
- package/dist/components/searchTable/index.d.ts +9 -0
- package/dist/components/upload/KFileList.d.ts +27 -0
- package/dist/components/upload/KImageUpload.d.ts +91 -0
- package/dist/components/upload/KUpload.d.ts +82 -0
- package/dist/components/upload/index.d.ts +12 -0
- package/dist/components/upload/types.d.ts +23 -0
- package/dist/composables/auth/authGuard.d.ts +67 -0
- package/dist/composables/auth/index.d.ts +14 -0
- package/dist/composables/auth/types.d.ts +90 -0
- package/dist/composables/auth/useAuth.d.ts +45 -0
- package/dist/composables/auth/vCan.d.ts +44 -0
- package/dist/composables/defineRepository.d.ts +25 -0
- package/dist/composables/error/createErrorHandler.d.ts +22 -0
- package/dist/composables/error/defaultFeedbackHandler.d.ts +3 -0
- package/dist/composables/error/dispatchError.d.ts +6 -0
- package/dist/composables/error/index.d.ts +13 -0
- package/dist/composables/error/types.d.ts +28 -0
- package/dist/composables/error/useErrorHandler.d.ts +26 -0
- package/dist/composables/index.d.ts +15 -0
- package/dist/composables/request/composables.d.ts +44 -0
- package/dist/composables/request/controlGate.d.ts +21 -0
- package/dist/composables/request/createRequest.d.ts +31 -0
- package/dist/composables/request/index.d.ts +23 -0
- package/dist/composables/request/orchestrator.d.ts +16 -0
- package/dist/composables/request/requestBuilder.d.ts +34 -0
- package/dist/composables/request/transport/fetchTransport.d.ts +4 -0
- package/dist/composables/request/transport/xhrTransport.d.ts +4 -0
- package/dist/composables/request/types.d.ts +166 -0
- package/dist/composables/request/upload.d.ts +17 -0
- package/dist/composables/router/createRouterGuard.d.ts +50 -0
- package/dist/composables/router/defineCrudRoutes.d.ts +26 -0
- package/dist/composables/router/index.d.ts +14 -0
- package/dist/composables/router/types.d.ts +110 -0
- package/dist/composables/router/useMenuFromRoutes.d.ts +30 -0
- package/dist/composables/router/useTabStore.d.ts +35 -0
- package/dist/composables/setupCrud.d.ts +17 -0
- package/dist/composables/storage/createStorageAdapter.d.ts +22 -0
- package/dist/composables/storage/index.d.ts +12 -0
- package/dist/composables/storage/types.d.ts +14 -0
- package/dist/composables/storage/useStorage.d.ts +17 -0
- package/dist/composables/store/defineUserStore.d.ts +62 -0
- package/dist/composables/store/index.d.ts +10 -0
- package/dist/composables/types.d.ts +68 -0
- package/dist/crud.css +1308 -0
- package/dist/crud.js +3046 -0
- package/dist/index.d.ts +29 -0
- package/dist/setup.d.ts +95 -0
- package/dist/vite.config.build.d.ts +2 -0
- package/package.json +33 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description @kine-design/crud 入口
|
|
3
|
+
* @author 阿怪
|
|
4
|
+
* @date 2026/2/26
|
|
5
|
+
* @version v0.0.1
|
|
6
|
+
*
|
|
7
|
+
* 江湖的业务千篇一律,复杂的代码好几百行。
|
|
8
|
+
*/
|
|
9
|
+
export * from './components/layout';
|
|
10
|
+
export { KSearchTable } from './components/searchTable';
|
|
11
|
+
export { KLoginPage } from './components/login';
|
|
12
|
+
export type { LoginForm } from './components/login';
|
|
13
|
+
export { KPageHeader } from './components/pageHeader';
|
|
14
|
+
export { defineRepository } from './composables/defineRepository';
|
|
15
|
+
export { setupCrud, createCrudApp, createQueryClient, useRequestClient, REQUEST_CLIENT_KEY } from './setup';
|
|
16
|
+
export type { CrudOptions, CrudAppOptions, EnhancedApp } from './setup';
|
|
17
|
+
export type { EntityId, ListParams, MutationOptions, Repository, RepositoryEndpoints, UseListReturn, UseDetailReturn, UseMutationReturn, } from './composables/types';
|
|
18
|
+
export { KNavMenu } from './components/navMenu';
|
|
19
|
+
export type { NavMenuData } from './components/navMenu';
|
|
20
|
+
export { KUpload, KImageUpload, KFileList } from './components/upload';
|
|
21
|
+
export type { UploadFile, UploadRequest } from './components/upload';
|
|
22
|
+
export { defineCrudRoutes, createTabStore, useTabStore, useMenuFromRoutes, createRouterGuard, addTabFromRoute, } from './composables/router';
|
|
23
|
+
export type { CrudRouteMeta, CrudRouteConfig, CrudRouteRecord, TabItem, TabStore, RouteLocationLike, RouterGuard, RouterGuardOptions, } from './composables/router';
|
|
24
|
+
export { createAuth, useAuth, createAuthGuard, createVCan, } from './composables/auth';
|
|
25
|
+
export type { Permission, PermissionScope, UserInfo, AuthState, AuthOptions, AuthReturn, AuthGuardOptions, BeforeEachGuard, CanBinding, CanBindingObject, } from './composables/auth';
|
|
26
|
+
export { createRequest, createDefaultRequest, createStrictRequest, createPermissiveRequest, createUploader, useRequest, usePolling, useBatchLoader, orchestrate, createNode, after, BusinessError, NetworkRequestError, ControlGate, FetchTransport, XhrTransport, RequestBuilder, } from './composables/request';
|
|
27
|
+
export type { RequestMethod, ControlPolicy, CachePolicy, RetryPolicy, Lifecycle, RequestConfig, WrappedResponse, NetworkError, UserFeedbackHandler, Transport, TransportRequest, TransportResponse, RequestOptions, RequestClient, RequestBuilderContext, OrchestratorNode, FailureStrategy, OrchestratorResult, UploadOptions, UploaderOptions, UploadHandle, Uploader, UsePollingReturn, BatchLoaderOptions, UseBatchLoaderReturn, } from './composables/request';
|
|
28
|
+
export { defineUserStore } from './composables/store';
|
|
29
|
+
export type { UserStoreOptions, UserStore, LoginResult } from './composables/store';
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { App, Component } from 'vue';
|
|
2
|
+
import { QueryClient, VueQueryPluginOptions } from '@tanstack/vue-query';
|
|
3
|
+
import { RequestOptions } from './composables/request/types';
|
|
4
|
+
import { RequestClient } from './composables/request/createRequest';
|
|
5
|
+
import { ErrorHandlerOptions } from './composables/error/types';
|
|
6
|
+
import { BeforeEachGuard } from './composables/auth/authGuard';
|
|
7
|
+
/** 最小化 Router 接口,只声明本文件用到的方法 */
|
|
8
|
+
interface RouterLike {
|
|
9
|
+
beforeEach(guard: BeforeEachGuard): void;
|
|
10
|
+
install(app: App): void;
|
|
11
|
+
}
|
|
12
|
+
/** setupCrud / createCrudApp 的配置选项 */
|
|
13
|
+
export interface CrudOptions {
|
|
14
|
+
/**
|
|
15
|
+
* 自定义 QueryClient 实例。
|
|
16
|
+
* 不传时内部自动创建,使用合理的默认配置。
|
|
17
|
+
*/
|
|
18
|
+
queryClient?: QueryClient;
|
|
19
|
+
/** 透传给 VueQueryPlugin 的其余选项(queryClient 字段会被覆盖)。 */
|
|
20
|
+
vueQueryOptions?: Omit<VueQueryPluginOptions, 'queryClient'>;
|
|
21
|
+
}
|
|
22
|
+
/** createCrudApp 高级版本的完整配置 */
|
|
23
|
+
export interface CrudAppOptions {
|
|
24
|
+
/** Vue Router 实例 */
|
|
25
|
+
router?: RouterLike;
|
|
26
|
+
/** Auth 配置(传入后自动 createAuth + createAuthGuard + v-can 指令) */
|
|
27
|
+
auth?: {
|
|
28
|
+
fetchUser: () => Promise<{
|
|
29
|
+
user: import('./composables/auth/types').UserInfo;
|
|
30
|
+
permissions: import('./composables/auth/types').Permission[];
|
|
31
|
+
token: string;
|
|
32
|
+
}>;
|
|
33
|
+
onUnauthorized?: () => void;
|
|
34
|
+
storage?: 'local' | 'session' | false;
|
|
35
|
+
loginPath?: string;
|
|
36
|
+
};
|
|
37
|
+
/** Request 配置(传入后自动 createRequest 并挂载到 app.provide) */
|
|
38
|
+
request?: RequestOptions;
|
|
39
|
+
/** 错误处理配置 */
|
|
40
|
+
error?: ErrorHandlerOptions;
|
|
41
|
+
/** TanStack Query 配置 */
|
|
42
|
+
query?: CrudOptions;
|
|
43
|
+
}
|
|
44
|
+
/** provide/inject 使用的唯一 symbol key */
|
|
45
|
+
export declare const REQUEST_CLIENT_KEY: symbol;
|
|
46
|
+
/**
|
|
47
|
+
* 在组件中获取通过 createCrudApp 注入的 RequestClient。
|
|
48
|
+
*
|
|
49
|
+
* @throws 若未在 createCrudApp 中配置 request 选项,抛出错误。
|
|
50
|
+
*/
|
|
51
|
+
export declare function useRequestClient(): RequestClient;
|
|
52
|
+
/**
|
|
53
|
+
* 创建一个预配置好的 QueryClient 实例(供高级场景直接使用)。
|
|
54
|
+
*/
|
|
55
|
+
export declare function createQueryClient(): QueryClient;
|
|
56
|
+
/**
|
|
57
|
+
* 在 Vue App 实例上安装 CRUD 基础设施(TanStack Query)。
|
|
58
|
+
* 推荐在 main.ts 调用一次,业务代码无需再关心 TanStack Query 安装细节。
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* // main.ts
|
|
63
|
+
* import { createApp } from 'vue';
|
|
64
|
+
* import { setupCrud } from '@kine-design/crud/setup';
|
|
65
|
+
*
|
|
66
|
+
* const app = createApp(App);
|
|
67
|
+
* setupCrud(app);
|
|
68
|
+
* app.mount('#app');
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function setupCrud(app: App, options?: CrudOptions): void;
|
|
72
|
+
/** 增强的 App 接口,mount 时自动恢复 auth 状态 */
|
|
73
|
+
export interface EnhancedApp extends Omit<App, 'mount'> {
|
|
74
|
+
mount(rootContainer: string | Element): App;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* createCrudApp — 链式风格的工厂函数,等同于 createApp + setupCrud。
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* // 基础用法
|
|
82
|
+
* createCrudApp(App).mount('#app');
|
|
83
|
+
*
|
|
84
|
+
* // 高级用法:一站式初始化
|
|
85
|
+
* createCrudApp(App, {
|
|
86
|
+
* router,
|
|
87
|
+
* auth: { fetchUser, onUnauthorized: () => router.push('/login'), storage: 'local' },
|
|
88
|
+
* request: { baseURL: '/api' },
|
|
89
|
+
* error: { unauthorizedStrategy: 'redirect' },
|
|
90
|
+
* }).mount('#app');
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function createCrudApp(rootComponent: Component, rootProps?: Record<string, unknown>, options?: CrudOptions): App;
|
|
94
|
+
export declare function createCrudApp(rootComponent: Component, options: CrudAppOptions): EnhancedApp;
|
|
95
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kine-design/crud",
|
|
3
|
+
"version": "0.0.1-beta.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/crud.js",
|
|
6
|
+
"module": "./dist/crud.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/crud.js"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@tanstack/vue-query": "^5.92.9",
|
|
21
|
+
"pinia": "^3.0.3",
|
|
22
|
+
"vue": "^3.4.0",
|
|
23
|
+
"vue-router": "^4.6.4",
|
|
24
|
+
"@kine-design/core": "0.0.1-beta.1",
|
|
25
|
+
"kine-ui": "0.0.1"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "vite build --config vite.config.build.ts"
|
|
32
|
+
}
|
|
33
|
+
}
|