@kevisual/api 0.0.47 → 0.0.49
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/query-ai.d.ts +40 -7
- package/dist/query-ai.js +12 -10
- package/dist/query-app.d.ts +182 -8
- package/dist/query-app.js +12 -10
- package/dist/query-config.d.ts +70 -10
- package/dist/query-config.js +11 -9
- package/dist/query-login.d.ts +7 -3
- package/dist/query-login.js +40 -29
- package/dist/query-mark.d.ts +128 -0
- package/dist/query-mark.js +342 -0
- package/dist/query-proxy.d.ts +4 -4
- package/dist/query-proxy.js +11 -9
- package/dist/query-resources.js +12 -475
- package/dist/query-secret.d.ts +27 -5
- package/dist/query-secret.js +11 -9
- package/dist/query-shop.d.ts +28 -2
- package/dist/query-shop.js +12 -10
- package/dist/store-auth.d.ts +30 -0
- package/dist/store-auth.js +43 -0
- package/dist/store-mark.d.ts +154 -0
- package/dist/store-mark.js +444 -0
- package/dist/utils.d.ts +3 -3
- package/dist/utils.js +10 -32
- package/package.json +19 -11
- package/query/query-login/login-cache.ts +4 -0
- package/query/query-login/query-login.ts +26 -19
- package/query/query-mark/index.ts +154 -0
- package/query/query-resources/utils.ts +2 -3
- package/store/store-auth/index.ts +66 -0
- package/store/store-mark/index.ts +132 -0
package/dist/query-shop.d.ts
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
import { Query, BaseQuery, DataOpts } from '@kevisual/query/query';
|
|
2
|
+
import { QueryUtil } from '@kevisual/router/define';
|
|
2
3
|
|
|
3
|
-
declare const shopDefine:
|
|
4
|
+
declare const shopDefine: QueryUtil<{
|
|
5
|
+
getRegistry: {
|
|
6
|
+
path: string;
|
|
7
|
+
key: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
listInstalled: {
|
|
11
|
+
path: string;
|
|
12
|
+
key: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
install: {
|
|
16
|
+
path: string;
|
|
17
|
+
key: string;
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
uninstall: {
|
|
21
|
+
path: string;
|
|
22
|
+
key: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
4
26
|
|
|
5
27
|
declare class QueryShop<T extends Query = Query> extends BaseQuery<T> {
|
|
6
28
|
constructor(opts?: {
|
|
7
29
|
query: T;
|
|
8
30
|
});
|
|
9
|
-
getInstall(data: any, opts?: DataOpts):
|
|
31
|
+
getInstall(data: any, opts?: DataOpts): Promise<{
|
|
32
|
+
code: number;
|
|
33
|
+
data?: any;
|
|
34
|
+
message?: string;
|
|
35
|
+
}>;
|
|
10
36
|
}
|
|
11
37
|
|
|
12
38
|
export { QueryShop, shopDefine };
|
package/dist/query-shop.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
1
|
+
// node_modules/.pnpm/@kevisual+query@0.0.40/node_modules/@kevisual/query/dist/query-browser.js
|
|
2
2
|
var isTextForContentType = (contentType) => {
|
|
3
3
|
if (!contentType)
|
|
4
4
|
return false;
|
|
@@ -27,12 +27,12 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
27
27
|
url = new URL(opts.url);
|
|
28
28
|
} else {
|
|
29
29
|
origin = window?.location?.origin || "http://localhost:51515";
|
|
30
|
-
url = new URL(opts
|
|
30
|
+
url = new URL(opts?.url || "", origin);
|
|
31
31
|
}
|
|
32
32
|
const isGet = method === "GET";
|
|
33
33
|
const oldSearchParams = url.searchParams;
|
|
34
34
|
if (isGet) {
|
|
35
|
-
let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts
|
|
35
|
+
let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts?.params, ...opts?.body });
|
|
36
36
|
url.search = searchParams.toString();
|
|
37
37
|
} else {
|
|
38
38
|
const params = {
|
|
@@ -57,11 +57,13 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
57
57
|
} else if (isPostFile) {
|
|
58
58
|
body = opts.body;
|
|
59
59
|
} else {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
if (opts.body && typeof opts.body === "object" && !(opts.body instanceof FormData)) {
|
|
61
|
+
headers = {
|
|
62
|
+
"Content-Type": "application/json",
|
|
63
|
+
...headers
|
|
64
|
+
};
|
|
65
|
+
body = JSON.stringify(opts.body);
|
|
66
|
+
}
|
|
65
67
|
}
|
|
66
68
|
return fetch(url, {
|
|
67
69
|
method: method.toUpperCase(),
|
|
@@ -131,7 +133,7 @@ class Query {
|
|
|
131
133
|
"Content-Type": "application/json"
|
|
132
134
|
};
|
|
133
135
|
this.timeout = opts?.timeout || 60000 * 3;
|
|
134
|
-
if (opts
|
|
136
|
+
if (opts?.beforeRequest) {
|
|
135
137
|
this.beforeRequest = opts.beforeRequest;
|
|
136
138
|
} else {
|
|
137
139
|
this.beforeRequest = async (opts2) => {
|
|
@@ -404,7 +406,7 @@ var shopDefine = QueryUtil.create({
|
|
|
404
406
|
}
|
|
405
407
|
});
|
|
406
408
|
|
|
407
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
409
|
+
// node_modules/.pnpm/@kevisual+query@0.0.40/node_modules/@kevisual/query/dist/query.js
|
|
408
410
|
class BaseQuery {
|
|
409
411
|
query;
|
|
410
412
|
queryDefine;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as zustand from 'zustand';
|
|
2
|
+
|
|
3
|
+
type Me = {
|
|
4
|
+
id?: string;
|
|
5
|
+
username?: string;
|
|
6
|
+
nickname?: string | null;
|
|
7
|
+
needChangePassword?: boolean;
|
|
8
|
+
role?: string;
|
|
9
|
+
description?: string | null;
|
|
10
|
+
type?: 'user' | 'org';
|
|
11
|
+
orgs?: string[];
|
|
12
|
+
avatar?: string;
|
|
13
|
+
};
|
|
14
|
+
type LayoutStore = {
|
|
15
|
+
open: boolean;
|
|
16
|
+
setOpen: (open: boolean) => void;
|
|
17
|
+
me: Me;
|
|
18
|
+
setMe: (me: Me) => void;
|
|
19
|
+
getMe: () => Promise<void>;
|
|
20
|
+
openUser: boolean;
|
|
21
|
+
setOpenUser: (openUser: boolean) => void;
|
|
22
|
+
switchOrg: (username?: string, type?: 'user' | 'org') => Promise<void>;
|
|
23
|
+
isAdmin: boolean;
|
|
24
|
+
setIsAdmin: (isAdmin: boolean) => void;
|
|
25
|
+
checkHasOrg: () => boolean;
|
|
26
|
+
};
|
|
27
|
+
declare const useLayoutStore: zustand.UseBoundStore<zustand.StoreApi<LayoutStore>>;
|
|
28
|
+
|
|
29
|
+
export { useLayoutStore };
|
|
30
|
+
export type { LayoutStore };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// store/store-auth/index.ts
|
|
2
|
+
import { create } from "zustand";
|
|
3
|
+
import { toast } from "sonner";
|
|
4
|
+
import { useContextKey } from "@kevisual/context";
|
|
5
|
+
var queryLogin = useContextKey("queryLogin");
|
|
6
|
+
var useLayoutStore = create((set, get) => ({
|
|
7
|
+
open: false,
|
|
8
|
+
setOpen: (open) => set({ open }),
|
|
9
|
+
me: {},
|
|
10
|
+
setMe: (me) => set({ me }),
|
|
11
|
+
getMe: async () => {
|
|
12
|
+
const res = await queryLogin.getMe();
|
|
13
|
+
if (res.code === 200) {
|
|
14
|
+
set({ me: res.data });
|
|
15
|
+
set({ isAdmin: res.data.orgs?.includes("admin") });
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
openUser: false,
|
|
19
|
+
setOpenUser: (openUser) => set({ openUser }),
|
|
20
|
+
switchOrg: async (username, type) => {
|
|
21
|
+
const res = await queryLogin.switchUser(username || "");
|
|
22
|
+
if (res.code === 200) {
|
|
23
|
+
toast.success("Switch success");
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
window.location.reload();
|
|
26
|
+
}, 1000);
|
|
27
|
+
} else {
|
|
28
|
+
toast.error(res.message || "Request failed");
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
isAdmin: false,
|
|
32
|
+
setIsAdmin: (isAdmin) => set({ isAdmin }),
|
|
33
|
+
checkHasOrg: () => {
|
|
34
|
+
const user = get().me || {};
|
|
35
|
+
if (!user.orgs) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return user?.orgs?.length > 0;
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
41
|
+
export {
|
|
42
|
+
useLayoutStore
|
|
43
|
+
};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import * as zustand from 'zustand';
|
|
2
|
+
import { Result, DataOpts } from '@kevisual/query/query';
|
|
3
|
+
import { Query } from '@kevisual/query';
|
|
4
|
+
|
|
5
|
+
type SimpleObject = Record<string, any>;
|
|
6
|
+
declare const markType: readonly ["simple", "md", "mdx", "wallnote", "excalidraw", "chat"];
|
|
7
|
+
type MarkType = (typeof markType)[number];
|
|
8
|
+
type MarkData = {
|
|
9
|
+
nodes?: any[];
|
|
10
|
+
edges?: any[];
|
|
11
|
+
elements?: any[];
|
|
12
|
+
permission?: any;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
type Mark = {
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
markType: MarkType;
|
|
20
|
+
link: string;
|
|
21
|
+
data?: MarkData;
|
|
22
|
+
uid: string;
|
|
23
|
+
puid: string;
|
|
24
|
+
summary: string;
|
|
25
|
+
thumbnail?: string;
|
|
26
|
+
tags: string[];
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
version: number;
|
|
30
|
+
};
|
|
31
|
+
type SearchOpts = {
|
|
32
|
+
page?: number;
|
|
33
|
+
pageSize?: number;
|
|
34
|
+
search?: string;
|
|
35
|
+
sort?: string;
|
|
36
|
+
markType?: MarkType;
|
|
37
|
+
[key: string]: any;
|
|
38
|
+
};
|
|
39
|
+
type QueryMarkOpts<T extends SimpleObject = SimpleObject> = {
|
|
40
|
+
query?: Query;
|
|
41
|
+
isBrowser?: boolean;
|
|
42
|
+
onLoad?: () => void;
|
|
43
|
+
} & T;
|
|
44
|
+
type ResultMarkList = {
|
|
45
|
+
list: Mark[];
|
|
46
|
+
pagination: {
|
|
47
|
+
pageSize: number;
|
|
48
|
+
current: number;
|
|
49
|
+
total: number;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
declare class QueryMarkBase<T extends SimpleObject = SimpleObject> {
|
|
53
|
+
query: Query;
|
|
54
|
+
isBrowser: boolean;
|
|
55
|
+
load?: boolean;
|
|
56
|
+
storage?: Storage;
|
|
57
|
+
onLoad?: () => void;
|
|
58
|
+
constructor(opts?: QueryMarkOpts<T>);
|
|
59
|
+
setQuery(query: Query): void;
|
|
60
|
+
private init;
|
|
61
|
+
post<T = Result<any>>(data: any, opts?: DataOpts): Promise<T>;
|
|
62
|
+
getMarkList(search: SearchOpts, opts?: DataOpts): Promise<{
|
|
63
|
+
code: number;
|
|
64
|
+
data?: ResultMarkList | undefined;
|
|
65
|
+
message?: string;
|
|
66
|
+
}>;
|
|
67
|
+
getMark(id: string, opts?: DataOpts): Promise<{
|
|
68
|
+
code: number;
|
|
69
|
+
data?: Mark | undefined;
|
|
70
|
+
message?: string;
|
|
71
|
+
}>;
|
|
72
|
+
getVersion(id: string, opts?: DataOpts): Promise<{
|
|
73
|
+
code: number;
|
|
74
|
+
data?: {
|
|
75
|
+
version: number;
|
|
76
|
+
id: string;
|
|
77
|
+
} | undefined;
|
|
78
|
+
message?: string;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* 检查版本
|
|
82
|
+
* 当需要更新时,返回true
|
|
83
|
+
* @param id
|
|
84
|
+
* @param version
|
|
85
|
+
* @param opts
|
|
86
|
+
* @returns
|
|
87
|
+
*/
|
|
88
|
+
checkVersion(id: string, version?: number, opts?: DataOpts): Promise<boolean>;
|
|
89
|
+
updateMark(data: any, opts?: DataOpts): Promise<{
|
|
90
|
+
code: number;
|
|
91
|
+
data?: Mark | undefined;
|
|
92
|
+
message?: string;
|
|
93
|
+
}>;
|
|
94
|
+
deleteMark(id: string, opts?: DataOpts): Promise<{
|
|
95
|
+
code: number;
|
|
96
|
+
data?: Mark | undefined;
|
|
97
|
+
message?: string;
|
|
98
|
+
}>;
|
|
99
|
+
}
|
|
100
|
+
declare class QueryMark extends QueryMarkBase<SimpleObject> {
|
|
101
|
+
markType: string;
|
|
102
|
+
constructor(opts?: QueryMarkOpts & {
|
|
103
|
+
markType?: MarkType;
|
|
104
|
+
});
|
|
105
|
+
getMarkList(search?: SearchOpts, opts?: DataOpts): Promise<{
|
|
106
|
+
code: number;
|
|
107
|
+
data?: ResultMarkList | undefined;
|
|
108
|
+
message?: string;
|
|
109
|
+
}>;
|
|
110
|
+
updateMark(data: any, opts?: DataOpts): Promise<{
|
|
111
|
+
code: number;
|
|
112
|
+
data?: Mark | undefined;
|
|
113
|
+
message?: string;
|
|
114
|
+
}>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
type ManagerStore = {
|
|
118
|
+
/** 当前选中的Mark */
|
|
119
|
+
currentMarkId: string;
|
|
120
|
+
setCurrentMarkId: (markId: string) => void;
|
|
121
|
+
markData?: Mark | undefined;
|
|
122
|
+
setMarkData: (mark?: Partial<Mark>) => void;
|
|
123
|
+
/** 获取Mark列表 */
|
|
124
|
+
getList: () => Promise<any>;
|
|
125
|
+
getMarkFromList: (markId: string) => Mark | undefined;
|
|
126
|
+
updateMark: (mark: Mark) => Promise<any>;
|
|
127
|
+
getMark: (markId: string) => Promise<Result<Mark>>;
|
|
128
|
+
deleteMark: (markId: string) => Promise<any>;
|
|
129
|
+
/** Mark列表 */
|
|
130
|
+
list: Mark[];
|
|
131
|
+
setList: (list: Mark[]) => void;
|
|
132
|
+
pagination: {
|
|
133
|
+
current: number;
|
|
134
|
+
pageSize: number;
|
|
135
|
+
total: number;
|
|
136
|
+
};
|
|
137
|
+
setPagination: (pagination: {
|
|
138
|
+
current: number;
|
|
139
|
+
pageSize: number;
|
|
140
|
+
total: number;
|
|
141
|
+
}) => void;
|
|
142
|
+
/** 搜索 */
|
|
143
|
+
search: string;
|
|
144
|
+
setSearch: (search: string) => void;
|
|
145
|
+
/** 初始化 */
|
|
146
|
+
init: (markType: MarkType) => Promise<void>;
|
|
147
|
+
queryMark?: QueryMark;
|
|
148
|
+
markType?: MarkType;
|
|
149
|
+
open: boolean;
|
|
150
|
+
setOpen: (open: boolean) => void;
|
|
151
|
+
};
|
|
152
|
+
declare const useMarkStore: zustand.UseBoundStore<zustand.StoreApi<ManagerStore>>;
|
|
153
|
+
|
|
154
|
+
export { useMarkStore };
|