@appconda/nextjs 1.0.137 → 1.0.139
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/modules/task/action.d.ts +72 -200
- package/dist/modules/task/action.js +47 -71
- package/dist/modules/tenant/actions.d.ts +26 -27
- package/dist/modules/tenant/actions.js +35 -24
- package/package.json +1 -1
- package/src/modules/task/action.ts +103 -125
- package/src/modules/tenant/actions.ts +26 -17
@@ -1,201 +1,73 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
|
1
3
|
import { Project, Sprint, TaskList } from './types';
|
2
|
-
export declare const CreateProject:
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
}
|
43
|
-
|
44
|
-
}
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
};
|
73
|
-
}, readonly [], TaskList>;
|
74
|
-
export declare const GetTaskList: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
75
|
-
id: import("zod").ZodString;
|
76
|
-
}, "strip", import("zod").ZodTypeAny, {
|
77
|
-
id: string;
|
78
|
-
}, {
|
79
|
-
id: string;
|
80
|
-
}>, readonly [], {
|
81
|
-
_errors?: string[];
|
82
|
-
id?: {
|
83
|
-
_errors?: string[];
|
84
|
-
};
|
85
|
-
}, readonly [], TaskList>;
|
86
|
-
export declare const ListTaskLists: import("next-safe-action").SafeActionFn<string, undefined, readonly [], {
|
87
|
-
formErrors: string[];
|
88
|
-
fieldErrors: {};
|
89
|
-
} | undefined, readonly [], TaskList[]>;
|
90
|
-
export declare const UpdateTaskList: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
91
|
-
id: import("zod").ZodString;
|
92
|
-
name: import("zod").ZodString;
|
93
|
-
description: import("zod").ZodOptional<import("zod").ZodString>;
|
94
|
-
}, "strip", import("zod").ZodTypeAny, {
|
95
|
-
name: string;
|
96
|
-
id: string;
|
97
|
-
description?: string | undefined;
|
98
|
-
}, {
|
99
|
-
name: string;
|
100
|
-
id: string;
|
101
|
-
description?: string | undefined;
|
102
|
-
}>, readonly [], {
|
103
|
-
_errors?: string[];
|
104
|
-
name?: {
|
105
|
-
_errors?: string[];
|
106
|
-
};
|
107
|
-
id?: {
|
108
|
-
_errors?: string[];
|
109
|
-
};
|
110
|
-
description?: {
|
111
|
-
_errors?: string[];
|
112
|
-
};
|
113
|
-
}, readonly [], TaskList>;
|
114
|
-
export declare const DeleteTaskList: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
115
|
-
id: import("zod").ZodString;
|
116
|
-
}, "strip", import("zod").ZodTypeAny, {
|
117
|
-
id: string;
|
118
|
-
}, {
|
119
|
-
id: string;
|
120
|
-
}>, readonly [], {
|
121
|
-
_errors?: string[];
|
122
|
-
id?: {
|
123
|
-
_errors?: string[];
|
124
|
-
};
|
125
|
-
}, readonly [], void>;
|
126
|
-
export declare const CreateSprint: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
127
|
-
id: import("zod").ZodOptional<import("zod").ZodString>;
|
128
|
-
name: import("zod").ZodString;
|
129
|
-
description: import("zod").ZodOptional<import("zod").ZodString>;
|
130
|
-
}, "strip", import("zod").ZodTypeAny, {
|
131
|
-
name: string;
|
132
|
-
description?: string | undefined;
|
133
|
-
id?: string | undefined;
|
134
|
-
}, {
|
135
|
-
name: string;
|
136
|
-
description?: string | undefined;
|
137
|
-
id?: string | undefined;
|
138
|
-
}>, readonly [], {
|
139
|
-
_errors?: string[];
|
140
|
-
name?: {
|
141
|
-
_errors?: string[];
|
142
|
-
};
|
143
|
-
description?: {
|
144
|
-
_errors?: string[];
|
145
|
-
};
|
146
|
-
id?: {
|
147
|
-
_errors?: string[];
|
148
|
-
};
|
149
|
-
}, readonly [], Sprint>;
|
150
|
-
export declare const GetSprint: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
151
|
-
id: import("zod").ZodString;
|
152
|
-
}, "strip", import("zod").ZodTypeAny, {
|
153
|
-
id: string;
|
154
|
-
}, {
|
155
|
-
id: string;
|
156
|
-
}>, readonly [], {
|
157
|
-
_errors?: string[];
|
158
|
-
id?: {
|
159
|
-
_errors?: string[];
|
160
|
-
};
|
161
|
-
}, readonly [], Sprint>;
|
162
|
-
export declare const ListSprints: import("next-safe-action").SafeActionFn<string, undefined, readonly [], {
|
163
|
-
formErrors: string[];
|
164
|
-
fieldErrors: {};
|
165
|
-
} | undefined, readonly [], Sprint[]>;
|
166
|
-
export declare const UpdateSprint: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
167
|
-
id: import("zod").ZodString;
|
168
|
-
name: import("zod").ZodString;
|
169
|
-
description: import("zod").ZodOptional<import("zod").ZodString>;
|
170
|
-
}, "strip", import("zod").ZodTypeAny, {
|
171
|
-
name: string;
|
172
|
-
id: string;
|
173
|
-
description?: string | undefined;
|
174
|
-
}, {
|
175
|
-
name: string;
|
176
|
-
id: string;
|
177
|
-
description?: string | undefined;
|
178
|
-
}>, readonly [], {
|
179
|
-
_errors?: string[];
|
180
|
-
name?: {
|
181
|
-
_errors?: string[];
|
182
|
-
};
|
183
|
-
id?: {
|
184
|
-
_errors?: string[];
|
185
|
-
};
|
186
|
-
description?: {
|
187
|
-
_errors?: string[];
|
188
|
-
};
|
189
|
-
}, readonly [], Sprint>;
|
190
|
-
export declare const DeleteSprint: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
|
191
|
-
id: import("zod").ZodString;
|
192
|
-
}, "strip", import("zod").ZodTypeAny, {
|
193
|
-
id: string;
|
194
|
-
}, {
|
195
|
-
id: string;
|
196
|
-
}>, readonly [], {
|
197
|
-
_errors?: string[];
|
198
|
-
id?: {
|
199
|
-
_errors?: string[];
|
200
|
-
};
|
201
|
-
}, readonly [], void>;
|
4
|
+
export declare const CreateProject: ({ parsedInput }: {
|
5
|
+
parsedInput: z.infer<typeof CreateProjectSchema>;
|
6
|
+
}) => Promise<{
|
7
|
+
data?: Project;
|
8
|
+
serverError?: string;
|
9
|
+
}>;
|
10
|
+
export declare const ListProjects: ({ parsedInput }: {
|
11
|
+
parsedInput: z.infer<typeof ListProjectsSchema>;
|
12
|
+
}) => Promise<{
|
13
|
+
data?: Project[];
|
14
|
+
serverError?: string;
|
15
|
+
}>;
|
16
|
+
export declare const CreateTaskList: ({ parsedInput }: {
|
17
|
+
parsedInput: z.infer<typeof CreateTaskListSchema>;
|
18
|
+
}) => Promise<{
|
19
|
+
data?: TaskList;
|
20
|
+
serverError?: string;
|
21
|
+
}>;
|
22
|
+
export declare const GetTaskList: ({ parsedInput }: {
|
23
|
+
parsedInput: z.infer<typeof GetTaskListSchema>;
|
24
|
+
}) => Promise<{
|
25
|
+
data?: TaskList;
|
26
|
+
serverError?: string;
|
27
|
+
}>;
|
28
|
+
export declare const ListTaskLists: () => Promise<{
|
29
|
+
data?: TaskList[];
|
30
|
+
serverError?: string;
|
31
|
+
}>;
|
32
|
+
export declare const UpdateTaskList: ({ parsedInput }: {
|
33
|
+
parsedInput: z.infer<typeof UpdateTaskListSchema>;
|
34
|
+
}) => Promise<{
|
35
|
+
data?: TaskList;
|
36
|
+
serverError?: string;
|
37
|
+
}>;
|
38
|
+
export declare const DeleteTaskList: ({ parsedInput }: {
|
39
|
+
parsedInput: z.infer<typeof DeleteTaskListSchema>;
|
40
|
+
}) => Promise<{
|
41
|
+
data?: void;
|
42
|
+
serverError?: string;
|
43
|
+
}>;
|
44
|
+
export declare const CreateSprint: ({ parsedInput }: {
|
45
|
+
parsedInput: z.infer<typeof CreateSprintSchema>;
|
46
|
+
}) => Promise<{
|
47
|
+
data?: Sprint;
|
48
|
+
serverError?: string;
|
49
|
+
}>;
|
50
|
+
export declare const GetSprint: ({ parsedInput }: {
|
51
|
+
parsedInput: z.infer<typeof GetSprintSchema>;
|
52
|
+
}) => Promise<{
|
53
|
+
data?: Sprint;
|
54
|
+
serverError?: string;
|
55
|
+
}>;
|
56
|
+
export declare const ListSprints: ({ parsedInput }: {
|
57
|
+
parsedInput: z.infer<typeof ListSprintsSchema>;
|
58
|
+
}) => Promise<{
|
59
|
+
data?: Sprint[];
|
60
|
+
serverError?: string;
|
61
|
+
}>;
|
62
|
+
export declare const UpdateSprint: ({ parsedInput }: {
|
63
|
+
parsedInput: z.infer<typeof UpdateSprintSchema>;
|
64
|
+
}) => Promise<{
|
65
|
+
data?: Sprint;
|
66
|
+
serverError?: string;
|
67
|
+
}>;
|
68
|
+
export declare const DeleteSprint: ({ parsedInput }: {
|
69
|
+
parsedInput: z.infer<typeof DeleteSprintSchema>;
|
70
|
+
}) => Promise<{
|
71
|
+
data?: void;
|
72
|
+
serverError?: string;
|
73
|
+
}>;
|
@@ -1,147 +1,123 @@
|
|
1
1
|
'use server';
|
2
|
-
import { actionClient } from '../../actions/actionClient';
|
3
2
|
import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
|
4
|
-
|
5
|
-
export const CreateProject = actionClient
|
6
|
-
.schema(CreateProjectSchema)
|
7
|
-
.action(async ({ parsedInput }) => {
|
3
|
+
export const CreateProject = async ({ parsedInput }) => {
|
8
4
|
try {
|
9
5
|
const { task } = await getSDKForCurrentUser();
|
10
6
|
return await task.CreateProject(parsedInput);
|
11
7
|
}
|
12
8
|
catch (error) {
|
13
9
|
console.error('Error in CreateProject:', error);
|
14
|
-
|
10
|
+
return { serverError: error.toString() };
|
15
11
|
}
|
16
|
-
}
|
17
|
-
export const ListProjects =
|
18
|
-
.schema(ListProjectsSchema)
|
19
|
-
.action(async ({ parsedInput }) => {
|
12
|
+
};
|
13
|
+
export const ListProjects = async ({ parsedInput }) => {
|
20
14
|
try {
|
21
15
|
const { task } = await getSDKForCurrentUser();
|
22
16
|
return await task.ListProjects(parsedInput);
|
23
17
|
}
|
24
18
|
catch (error) {
|
25
19
|
console.error('Error in ListProjects:', error);
|
26
|
-
|
20
|
+
return { serverError: error.toString() };
|
27
21
|
}
|
28
|
-
}
|
29
|
-
export const CreateTaskList =
|
30
|
-
.schema(CreateTaskListSchema)
|
31
|
-
.action(async ({ parsedInput }) => {
|
22
|
+
};
|
23
|
+
export const CreateTaskList = async ({ parsedInput }) => {
|
32
24
|
try {
|
33
25
|
const { task } = await getSDKForCurrentUser();
|
34
|
-
return await task.CreateTaskList(parsedInput);
|
26
|
+
return { data: await task.CreateTaskList(parsedInput) };
|
35
27
|
}
|
36
28
|
catch (error) {
|
37
29
|
console.error('Error in CreateTaskList:', error);
|
38
|
-
|
30
|
+
return { serverError: error.toString() };
|
39
31
|
}
|
40
|
-
}
|
41
|
-
export const GetTaskList =
|
42
|
-
.schema(GetTaskListSchema)
|
43
|
-
.action(async ({ parsedInput }) => {
|
32
|
+
};
|
33
|
+
export const GetTaskList = async ({ parsedInput }) => {
|
44
34
|
try {
|
45
35
|
const { task } = await getSDKForCurrentUser();
|
46
|
-
return await task.GetTaskList(parsedInput);
|
36
|
+
return { data: await task.GetTaskList(parsedInput) };
|
47
37
|
}
|
48
38
|
catch (error) {
|
49
39
|
console.error('Error in GetTaskList:', error);
|
50
|
-
|
40
|
+
return { serverError: error.toString() };
|
51
41
|
}
|
52
|
-
}
|
53
|
-
export const ListTaskLists =
|
54
|
-
.action(async ({ parsedInput }) => {
|
42
|
+
};
|
43
|
+
export const ListTaskLists = async () => {
|
55
44
|
try {
|
56
45
|
const { task } = await getSDKForCurrentUser();
|
57
|
-
return await task.ListTaskLists();
|
46
|
+
return { data: await task.ListTaskLists() };
|
58
47
|
}
|
59
48
|
catch (error) {
|
60
49
|
console.error('Error in ListTaskLists:', error);
|
61
|
-
|
50
|
+
return { serverError: error.toString() };
|
62
51
|
}
|
63
|
-
}
|
64
|
-
export const UpdateTaskList =
|
65
|
-
.schema(UpdateTaskListSchema)
|
66
|
-
.action(async ({ parsedInput }) => {
|
52
|
+
};
|
53
|
+
export const UpdateTaskList = async ({ parsedInput }) => {
|
67
54
|
try {
|
68
55
|
const { task } = await getSDKForCurrentUser();
|
69
|
-
return await task.UpdateTaskList(parsedInput);
|
56
|
+
return { data: await task.UpdateTaskList(parsedInput) };
|
70
57
|
}
|
71
58
|
catch (error) {
|
72
59
|
console.error('Error in UpdateTaskList:', error);
|
73
|
-
|
60
|
+
return { serverError: error.toString() };
|
74
61
|
}
|
75
|
-
}
|
76
|
-
export const DeleteTaskList =
|
77
|
-
.schema(DeleteTaskListSchema)
|
78
|
-
.action(async ({ parsedInput }) => {
|
62
|
+
};
|
63
|
+
export const DeleteTaskList = async ({ parsedInput }) => {
|
79
64
|
try {
|
80
65
|
const { task } = await getSDKForCurrentUser();
|
81
|
-
return await task.DeleteTaskList(parsedInput);
|
66
|
+
return { data: await task.DeleteTaskList(parsedInput) };
|
82
67
|
}
|
83
68
|
catch (error) {
|
84
69
|
console.error('Error in DeleteTaskList:', error);
|
85
|
-
|
70
|
+
return { serverError: error.toString() };
|
86
71
|
}
|
87
|
-
}
|
88
|
-
export const CreateSprint =
|
89
|
-
.schema(CreateSprintSchema)
|
90
|
-
.action(async ({ parsedInput }) => {
|
72
|
+
};
|
73
|
+
export const CreateSprint = async ({ parsedInput }) => {
|
91
74
|
try {
|
92
75
|
const { task } = await getSDKForCurrentUser();
|
93
|
-
return await task.CreateSprint(parsedInput);
|
76
|
+
return { data: await task.CreateSprint(parsedInput) };
|
94
77
|
}
|
95
78
|
catch (error) {
|
96
79
|
console.error('Error in CreateSprint:', error);
|
97
|
-
|
80
|
+
return { serverError: error.toString() };
|
98
81
|
}
|
99
|
-
}
|
100
|
-
export const GetSprint =
|
101
|
-
.schema(GetSprintSchema)
|
102
|
-
.action(async ({ parsedInput }) => {
|
82
|
+
};
|
83
|
+
export const GetSprint = async ({ parsedInput }) => {
|
103
84
|
try {
|
104
85
|
const { task } = await getSDKForCurrentUser();
|
105
|
-
return await task.GetSprint(parsedInput);
|
86
|
+
return { data: await task.GetSprint(parsedInput) };
|
106
87
|
}
|
107
88
|
catch (error) {
|
108
89
|
console.error('Error in GetSprint:', error);
|
109
|
-
|
90
|
+
return { serverError: error.toString() };
|
110
91
|
}
|
111
|
-
}
|
112
|
-
export const ListSprints =
|
113
|
-
.action(async ({ parsedInput }) => {
|
92
|
+
};
|
93
|
+
export const ListSprints = async ({ parsedInput }) => {
|
114
94
|
try {
|
115
95
|
const { task } = await getSDKForCurrentUser();
|
116
|
-
return await task.ListSprints();
|
96
|
+
return { data: await task.ListSprints() };
|
117
97
|
}
|
118
98
|
catch (error) {
|
119
99
|
console.error('Error in ListSprints:', error);
|
120
|
-
|
100
|
+
return { serverError: error.toString() };
|
121
101
|
}
|
122
|
-
}
|
123
|
-
export const UpdateSprint =
|
124
|
-
.schema(UpdateSprintSchema)
|
125
|
-
.action(async ({ parsedInput }) => {
|
102
|
+
};
|
103
|
+
export const UpdateSprint = async ({ parsedInput }) => {
|
126
104
|
try {
|
127
105
|
const { task } = await getSDKForCurrentUser();
|
128
|
-
return await task.UpdateSprint(parsedInput);
|
106
|
+
return { data: await task.UpdateSprint(parsedInput) };
|
129
107
|
}
|
130
108
|
catch (error) {
|
131
109
|
console.error('Error in UpdateSprint:', error);
|
132
|
-
|
110
|
+
return { serverError: error.toString() };
|
133
111
|
}
|
134
|
-
}
|
135
|
-
export const DeleteSprint =
|
136
|
-
.schema(DeleteSprintSchema)
|
137
|
-
.action(async ({ parsedInput }) => {
|
112
|
+
};
|
113
|
+
export const DeleteSprint = async ({ parsedInput }) => {
|
138
114
|
try {
|
139
115
|
const { task } = await getSDKForCurrentUser();
|
140
|
-
return await task.DeleteSprint(parsedInput);
|
116
|
+
return { data: await task.DeleteSprint(parsedInput) };
|
141
117
|
}
|
142
118
|
catch (error) {
|
143
119
|
console.error('Error in DeleteSprint:', error);
|
144
|
-
|
120
|
+
return { serverError: error.toString() };
|
145
121
|
}
|
146
|
-
}
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvdGFzay9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBR2IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHck8sTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVk7S0FDcEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0tBQzNCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBb0IsRUFBRTtJQUNoRCxJQUFJLENBQUM7UUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQzlDLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDckQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVk7S0FDdkMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0tBQzFCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBc0IsRUFBRTtJQUNsRCxJQUFJLENBQUM7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SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDcEQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVk7S0FDdkMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0tBQzFCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBaUIsRUFBRTtJQUM3QyxJQUFJLENBQUM7UUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQzlDLE9BQU8sTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDcEQsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzZXJ2ZXInO1xuXG5cbmltcG9ydCB7IGFjdGlvbkNsaWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvYWN0aW9uQ2xpZW50JztcbmltcG9ydCB7IGdldFNES0ZvckN1cnJlbnRVc2VyIH0gZnJvbSAnLi4vLi4vZ2V0U0RLRm9yQ3VycmVudFVzZXInO1xuaW1wb3J0IHsgZ2V0U0RLRm9yU2VydmljZSB9IGZyb20gJy4uLy4uL2dldFNES0ZvclNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlYXRlUHJvamVjdFNjaGVtYSwgQ3JlYXRlU3ByaW50U2NoZW1hLCBDcmVhdGVUYXNrTGlzdFNjaGVtYSwgRGVsZXRlU3ByaW50U2NoZW1hLCBEZWxldGVUYXNrTGlzdFNjaGVtYSwgR2V0U3ByaW50U2NoZW1hLCBHZXRUYXNrTGlzdFNjaGVtYSwgTGlzdFByb2plY3RzU2NoZW1hLCBVcGRhdGVTcHJpbnRTY2hlbWEsIFVwZGF0ZVRhc2tMaXN0U2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgUHJvamVjdCwgU3ByaW50LCBUYXNrTGlzdCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlUHJvamVjdCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoQ3JlYXRlUHJvamVjdFNjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPFByb2plY3Q+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suQ3JlYXRlUHJvamVjdChwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIENyZWF0ZVByb2plY3Q6JywgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggQ3JlYXRlUHJvamVjdCcpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleHBvcnQgY29uc3QgTGlzdFByb2plY3RzID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShMaXN0UHJvamVjdHNTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxQcm9qZWN0W10+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suTGlzdFByb2plY3RzKHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdFByb2plY3RzOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIExpc3RQcm9qZWN0cycpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVUYXNrTGlzdCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoQ3JlYXRlVGFza0xpc3RTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxUYXNrTGlzdD4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGFzay5DcmVhdGVUYXNrTGlzdChwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIENyZWF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIENyZWF0ZVRhc2tMaXN0Jyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IEdldFRhc2tMaXN0ID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShHZXRUYXNrTGlzdFNjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPFRhc2tMaXN0PiA9PiB7XG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0YXNrLkdldFRhc2tMaXN0KHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0VGFza0xpc3Q6JywgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggR2V0VGFza0xpc3QnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFRhc2tMaXN0cyA9IGFjdGlvbkNsaWVudFxuICAgIC5hY3Rpb24oYXN5bmMgKHsgcGFyc2VkSW5wdXQgfSk6IFByb21pc2U8VGFza0xpc3RbXT4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGFzay5MaXN0VGFza0xpc3RzKCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIExpc3RUYXNrTGlzdHM6JywgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggTGlzdFRhc2tMaXN0cycpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVUYXNrTGlzdCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoVXBkYXRlVGFza0xpc3RTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxUYXNrTGlzdD4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGFzay5VcGRhdGVUYXNrTGlzdChwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIFVwZGF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIFVwZGF0ZVRhc2tMaXN0Jyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVRhc2tMaXN0ID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShEZWxldGVUYXNrTGlzdFNjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suRGVsZXRlVGFza0xpc3QocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBEZWxldGVUYXNrTGlzdDonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBEZWxldGVUYXNrTGlzdCcpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgXG4gICAgZXhwb3J0IGNvbnN0IENyZWF0ZVNwcmludCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoQ3JlYXRlU3ByaW50U2NoZW1hKVxuICAgIC5hY3Rpb24oYXN5bmMgKHsgcGFyc2VkSW5wdXQgfSk6IFByb21pc2U8U3ByaW50PiA9PiB7XG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0YXNrLkNyZWF0ZVNwcmludChwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIENyZWF0ZVNwcmludDonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBDcmVhdGVTcHJpbnQnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgR2V0U3ByaW50ID0gYWN0aW9uQ2xpZW50XG4gICAgLnNjaGVtYShHZXRTcHJpbnRTY2hlbWEpXG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxTcHJpbnQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suR2V0U3ByaW50KHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0U3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIEdldFNwcmludCcpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgZXhwb3J0IGNvbnN0IExpc3RTcHJpbnRzID0gYWN0aW9uQ2xpZW50XG4gICAgLmFjdGlvbihhc3luYyAoeyBwYXJzZWRJbnB1dCB9KTogUHJvbWlzZTxTcHJpbnRbXT4gPT4ge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGFzay5MaXN0U3ByaW50cygpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBMaXN0U3ByaW50czonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBMaXN0U3ByaW50cycpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgZXhwb3J0IGNvbnN0IFVwZGF0ZVNwcmludCA9IGFjdGlvbkNsaWVudFxuICAgIC5zY2hlbWEoVXBkYXRlU3ByaW50U2NoZW1hKVxuICAgIC5hY3Rpb24oYXN5bmMgKHsgcGFyc2VkSW5wdXQgfSk6IFByb21pc2U8U3ByaW50PiA9PiB7XG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0YXNrLlVwZGF0ZVNwcmludChwYXJzZWRJbnB1dCk7XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIFVwZGF0ZVNwcmludDonLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBVcGRhdGVTcHJpbnQnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIGV4cG9ydCBjb25zdCBEZWxldGVTcHJpbnQgPSBhY3Rpb25DbGllbnRcbiAgICAuc2NoZW1hKERlbGV0ZVNwcmludFNjaGVtYSlcbiAgICAuYWN0aW9uKGFzeW5jICh7IHBhcnNlZElucHV0IH0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suRGVsZXRlU3ByaW50KHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gRGVsZXRlU3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIERlbGV0ZVNwcmludCcpO1xuICAgICAgICB9XG4gICAgfSk7Il19
|
122
|
+
};
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvdGFzay9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBSWIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJbEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBd0QsRUFBbUQsRUFBRTtJQUMxSixJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUF1RCxFQUFxRCxFQUFFO0lBQzFKLElBQUksQ0FBQztRQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7UUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDN0MsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVOLE1B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QUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzZXJ2ZXInO1xuXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgZ2V0U0RLRm9yQ3VycmVudFVzZXIgfSBmcm9tICcuLi8uLi9nZXRTREtGb3JDdXJyZW50VXNlcic7XG5pbXBvcnQgeyBDcmVhdGVQcm9qZWN0U2NoZW1hLCBDcmVhdGVTcHJpbnRTY2hlbWEsIENyZWF0ZVRhc2tMaXN0U2NoZW1hLCBEZWxldGVTcHJpbnRTY2hlbWEsIERlbGV0ZVRhc2tMaXN0U2NoZW1hLCBHZXRTcHJpbnRTY2hlbWEsIEdldFRhc2tMaXN0U2NoZW1hLCBMaXN0UHJvamVjdHNTY2hlbWEsIFVwZGF0ZVNwcmludFNjaGVtYSwgVXBkYXRlVGFza0xpc3RTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgeyBQcm9qZWN0LCBTcHJpbnQsIFRhc2tMaXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVQcm9qZWN0ID0gYXN5bmMgKHsgcGFyc2VkSW5wdXQgfTogeyBwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlUHJvamVjdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBQcm9qZWN0LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGFzay5DcmVhdGVQcm9qZWN0KHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ3JlYXRlUHJvamVjdDonLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGV4cG9ydCBjb25zdCBMaXN0UHJvamVjdHMgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0UHJvamVjdHNTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogUHJvamVjdFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suTGlzdFByb2plY3RzKHBhcnNlZElucHV0KTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdFByb2plY3RzOicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlVGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBDcmVhdGVUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suQ3JlYXRlVGFza0xpc3QocGFyc2VkSW5wdXQpIH07XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIENyZWF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG5leHBvcnQgY29uc3QgR2V0VGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBHZXRUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suR2V0VGFza0xpc3QocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBHZXRUYXNrTGlzdDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuXG5cbmV4cG9ydCBjb25zdCBMaXN0VGFza0xpc3RzID0gYXN5bmMgKCk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5MaXN0VGFza0xpc3RzKCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIExpc3RUYXNrTGlzdHM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVUYXNrTGlzdCA9IGFzeW5jICh7IHBhcnNlZElucHV0IH06IHsgcGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVRhc2tMaXN0U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFRhc2tMaXN0LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5VcGRhdGVUYXNrTGlzdChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIFVwZGF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBEZWxldGVUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiB2b2lkLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5EZWxldGVUYXNrTGlzdChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIERlbGV0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlU3ByaW50ID0gYXN5bmMgKHsgcGFyc2VkSW5wdXQgfTogeyBwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlU3ByaW50U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suQ3JlYXRlU3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ3JlYXRlU3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgR2V0U3ByaW50ID0gYXN5bmMgKHsgcGFyc2VkSW5wdXQgfTogeyBwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0U3ByaW50U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suR2V0U3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0U3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTGlzdFNwcmludHMgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0U3ByaW50c1NjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBTcHJpbnRbXSwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suTGlzdFNwcmludHMoKSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdFNwcmludHM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVTcHJpbnQgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBVcGRhdGVTcHJpbnRTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogU3ByaW50LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5VcGRhdGVTcHJpbnQocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBVcGRhdGVTcHJpbnQ6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWxldGVTcHJpbnQgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBEZWxldGVTcHJpbnRTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogdm9pZCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suRGVsZXRlU3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gRGVsZXRlU3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuICAgICJdfQ==
|
@@ -1,29 +1,32 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
-
|
2
|
+
import { Tenant } from "./types";
|
3
|
+
declare const getTenantActionSchema: z.ZodObject<{
|
3
4
|
tenantId: z.ZodString;
|
4
5
|
}, "strip", z.ZodTypeAny, {
|
5
6
|
tenantId: string;
|
6
7
|
}, {
|
7
8
|
tenantId: string;
|
8
|
-
}
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
}>;
|
10
|
+
export declare const getTenantAction: ({ parsedInput }: {
|
11
|
+
parsedInput: z.infer<typeof getTenantActionSchema>;
|
12
|
+
}) => Promise<{
|
13
|
+
data?: Tenant;
|
14
|
+
serverError?: string;
|
15
|
+
}>;
|
16
|
+
declare const listUserTenantsScheema: z.ZodObject<{
|
15
17
|
userId: z.ZodString;
|
16
18
|
}, "strip", z.ZodTypeAny, {
|
17
19
|
userId: string;
|
18
20
|
}, {
|
19
21
|
userId: string;
|
20
|
-
}
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
}>;
|
23
|
+
export declare const listUserTenantsAction: ({ parsedInput }: {
|
24
|
+
parsedInput: z.infer<typeof listUserTenantsScheema>;
|
25
|
+
}) => Promise<{
|
26
|
+
data?: Tenant[];
|
27
|
+
serverError?: string;
|
28
|
+
}>;
|
29
|
+
declare const createTenantScheema: z.ZodObject<{
|
27
30
|
id: z.ZodString;
|
28
31
|
name: z.ZodString;
|
29
32
|
slug: z.ZodString;
|
@@ -35,15 +38,11 @@ export declare const createTenantAction: import("next-safe-action").SafeActionFn
|
|
35
38
|
name: string;
|
36
39
|
id: string;
|
37
40
|
slug: string;
|
38
|
-
}
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
slug?: {
|
47
|
-
_errors?: string[];
|
48
|
-
};
|
49
|
-
}, readonly [], import("../..").Models.Tenant>;
|
41
|
+
}>;
|
42
|
+
export declare const createTenantAction: ({ parsedInput }: {
|
43
|
+
parsedInput: z.infer<typeof createTenantScheema>;
|
44
|
+
}) => Promise<{
|
45
|
+
data?: Tenant;
|
46
|
+
serverError?: string;
|
47
|
+
}>;
|
48
|
+
export {};
|
@@ -1,38 +1,49 @@
|
|
1
1
|
'use server';
|
2
2
|
import { z } from "zod";
|
3
|
-
import { actionClient } from "../../actions/actionClient";
|
4
3
|
import { getSDKForCurrentUser } from "../../getSDKForCurrentUser";
|
5
4
|
const getTenantActionSchema = z.object({
|
6
5
|
tenantId: z.string()
|
7
6
|
});
|
8
|
-
export const getTenantAction =
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
export const getTenantAction = async ({ parsedInput }) => {
|
8
|
+
try {
|
9
|
+
const { tenantId } = parsedInput;
|
10
|
+
const { tenants } = await getSDKForCurrentUser();
|
11
|
+
return { data: await tenants.get(tenantId) };
|
12
|
+
}
|
13
|
+
catch (error) {
|
14
|
+
console.error('Error in getTenantAction:', error);
|
15
|
+
return { serverError: error.toString() };
|
16
|
+
}
|
17
|
+
};
|
15
18
|
const listUserTenantsScheema = z.object({
|
16
19
|
userId: z.string()
|
17
20
|
});
|
18
|
-
export const listUserTenantsAction =
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
export const listUserTenantsAction = async ({ parsedInput }) => {
|
22
|
+
try {
|
23
|
+
const { userId } = parsedInput;
|
24
|
+
const { tenants } = await getSDKForCurrentUser();
|
25
|
+
return { data: await tenants.listUserTenants(userId) };
|
26
|
+
}
|
27
|
+
catch (error) {
|
28
|
+
console.error('Error in listUserTenantsAction:', error);
|
29
|
+
return { serverError: error.toString() };
|
30
|
+
}
|
31
|
+
};
|
25
32
|
const createTenantScheema = z.object({
|
26
33
|
id: z.string(),
|
27
34
|
name: z.string(),
|
28
35
|
slug: z.string()
|
29
36
|
});
|
30
|
-
export const createTenantAction =
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
37
|
+
export const createTenantAction = async ({ parsedInput }) => {
|
38
|
+
try {
|
39
|
+
const { id, name, slug } = parsedInput;
|
40
|
+
const { tenants } = await getSDKForCurrentUser();
|
41
|
+
//@ts-ignore
|
42
|
+
return { data: await tenants.create({ $id: id, name: name, slug: slug }) };
|
43
|
+
}
|
44
|
+
catch (error) {
|
45
|
+
console.error('Error in createTenantAction:', error);
|
46
|
+
return { serverError: error.toString() };
|
47
|
+
}
|
48
|
+
};
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3RlbmFudC9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUNiLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHbEUsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQTBELEVBQWtELEVBQUU7SUFDN0osSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFdBQVcsQ0FBQztRQUNqQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDN0MsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUlGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNyQixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQTJELEVBQW9ELEVBQUU7SUFDdEssSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDN0MsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUdGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNkLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ25CLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBd0QsRUFBa0QsRUFBRTtJQUM5SixJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDdkMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztRQUNqRCxZQUFZO1FBQ1osT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzZXJ2ZXInO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IGdldFNES0ZvckN1cnJlbnRVc2VyIH0gZnJvbSBcIi4uLy4uL2dldFNES0ZvckN1cnJlbnRVc2VyXCI7XG5pbXBvcnQgeyBUZW5hbnQgfSBmcm9tIFwiLi90eXBlc1wiO1xuICAgIFxuY29uc3QgZ2V0VGVuYW50QWN0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IGdldFRlbmFudEFjdGlvbiA9IGFzeW5jICh7IHBhcnNlZElucHV0IH06IHsgcGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIGdldFRlbmFudEFjdGlvblNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBUZW5hbnQsIHNlcnZlckVycm9yPzogc3RyaW5nfT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgdGVuYW50SWQgfSA9IHBhcnNlZElucHV0O1xuICAgICAgICBjb25zdCB7IHRlbmFudHMgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRlbmFudHMuZ2V0KHRlbmFudElkKSB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGdldFRlbmFudEFjdGlvbjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuXG5cbmNvbnN0IGxpc3RVc2VyVGVuYW50c1NjaGVlbWEgPSB6Lm9iamVjdCh7XG4gICAgdXNlcklkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IGxpc3RVc2VyVGVuYW50c0FjdGlvbiA9IGFzeW5jICh7IHBhcnNlZElucHV0IH06IHsgcGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIGxpc3RVc2VyVGVuYW50c1NjaGVlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogVGVuYW50W10sIHNlcnZlckVycm9yPzogc3RyaW5nfT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgdXNlcklkIH0gPSBwYXJzZWRJbnB1dDtcbiAgICAgICAgY29uc3QgeyB0ZW5hbnRzIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0ZW5hbnRzLmxpc3RVc2VyVGVuYW50cyh1c2VySWQpIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbGlzdFVzZXJUZW5hbnRzQWN0aW9uOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5cbmNvbnN0IGNyZWF0ZVRlbmFudFNjaGVlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBzbHVnOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRlbmFudEFjdGlvbiA9IGFzeW5jICh7IHBhcnNlZElucHV0IH06IHsgcGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIGNyZWF0ZVRlbmFudFNjaGVlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogVGVuYW50LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGlkLCBuYW1lLCBzbHVnIH0gPSBwYXJzZWRJbnB1dDtcbiAgICAgICAgY29uc3QgeyB0ZW5hbnRzIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGVuYW50cy5jcmVhdGUoeyAkaWQ6IGlkLCBuYW1lOiBuYW1lLCBzbHVnOiBzbHVnIH0pIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gY3JlYXRlVGVuYW50QWN0aW9uOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59OyJdfQ==
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@appconda/nextjs",
|
3
3
|
"homepage": "https://appconda.io/support",
|
4
4
|
"description": "Appconda is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
5
|
-
"version": "1.0.
|
5
|
+
"version": "1.0.139",
|
6
6
|
"license": "BSD-3-Clause",
|
7
7
|
"main": "dist/index.js",
|
8
8
|
"types": "dist/index.d.ts",
|
@@ -1,29 +1,23 @@
|
|
1
1
|
'use server';
|
2
2
|
|
3
3
|
|
4
|
-
import {
|
4
|
+
import { z } from 'zod';
|
5
5
|
import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
|
6
|
-
import { getSDKForService } from '../../getSDKForService';
|
7
6
|
import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
|
8
7
|
import { Project, Sprint, TaskList } from './types';
|
9
8
|
|
10
|
-
export const CreateProject =
|
11
|
-
|
12
|
-
|
13
|
-
try {
|
14
|
-
|
15
|
-
const { task } = await getSDKForCurrentUser();
|
9
|
+
export const CreateProject = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateProjectSchema> }): Promise<{data?: Project, serverError?: string}> => {
|
10
|
+
try {
|
11
|
+
const { task } = await getSDKForCurrentUser();
|
16
12
|
return await task.CreateProject(parsedInput);
|
17
13
|
|
18
14
|
} catch (error) {
|
19
15
|
console.error('Error in CreateProject:', error);
|
20
|
-
|
16
|
+
return { serverError: error.toString() };
|
21
17
|
}
|
22
|
-
}
|
18
|
+
};
|
23
19
|
|
24
|
-
export const ListProjects =
|
25
|
-
.schema(ListProjectsSchema)
|
26
|
-
.action(async ({ parsedInput }): Promise<Project[]> => {
|
20
|
+
export const ListProjects = async ({ parsedInput }: { parsedInput: z.infer<typeof ListProjectsSchema> }): Promise<{data?: Project[], serverError?: string}> => {
|
27
21
|
try {
|
28
22
|
|
29
23
|
const { task } = await getSDKForCurrentUser();
|
@@ -31,145 +25,129 @@ export const CreateProject = actionClient
|
|
31
25
|
|
32
26
|
} catch (error) {
|
33
27
|
console.error('Error in ListProjects:', error);
|
34
|
-
|
28
|
+
return { serverError: error.toString() };
|
35
29
|
}
|
36
|
-
}
|
30
|
+
};
|
37
31
|
|
38
|
-
export const CreateTaskList =
|
39
|
-
|
40
|
-
.action(async ({ parsedInput }): Promise<TaskList> => {
|
41
|
-
try {
|
32
|
+
export const CreateTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
|
33
|
+
try {
|
42
34
|
|
43
|
-
|
44
|
-
|
35
|
+
const { task } = await getSDKForCurrentUser();
|
36
|
+
return { data: await task.CreateTaskList(parsedInput) };
|
45
37
|
|
46
38
|
} catch (error) {
|
47
39
|
console.error('Error in CreateTaskList:', error);
|
48
|
-
|
40
|
+
return { serverError: error.toString() };
|
49
41
|
}
|
50
|
-
}
|
42
|
+
};
|
51
43
|
|
52
|
-
export const GetTaskList =
|
53
|
-
|
54
|
-
.action(async ({ parsedInput }): Promise<TaskList> => {
|
55
|
-
try {
|
44
|
+
export const GetTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof GetTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
|
45
|
+
try {
|
56
46
|
|
57
|
-
|
58
|
-
|
47
|
+
const { task } = await getSDKForCurrentUser();
|
48
|
+
return { data: await task.GetTaskList(parsedInput) };
|
59
49
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
50
|
+
} catch (error) {
|
51
|
+
console.error('Error in GetTaskList:', error);
|
52
|
+
return { serverError: error.toString() };
|
53
|
+
}
|
54
|
+
};
|
65
55
|
|
66
|
-
export const ListTaskLists = actionClient
|
67
|
-
.action(async ({ parsedInput }): Promise<TaskList[]> => {
|
68
|
-
try {
|
69
56
|
|
70
|
-
const { task } = await getSDKForCurrentUser();
|
71
|
-
return await task.ListTaskLists();
|
72
57
|
|
73
|
-
|
74
|
-
|
75
|
-
throw new Error('Failed to fetch ListTaskLists');
|
76
|
-
}
|
77
|
-
});
|
58
|
+
export const ListTaskLists = async (): Promise<{data?: TaskList[], serverError?: string}> => {
|
59
|
+
try {
|
78
60
|
|
79
|
-
|
80
|
-
|
81
|
-
.action(async ({ parsedInput }): Promise<TaskList> => {
|
82
|
-
try {
|
61
|
+
const { task } = await getSDKForCurrentUser();
|
62
|
+
return { data: await task.ListTaskLists() };
|
83
63
|
|
84
|
-
|
85
|
-
|
64
|
+
} catch (error) {
|
65
|
+
console.error('Error in ListTaskLists:', error);
|
66
|
+
return { serverError: error.toString() };
|
67
|
+
}
|
68
|
+
};
|
86
69
|
|
87
|
-
|
88
|
-
|
89
|
-
throw new Error('Failed to fetch UpdateTaskList');
|
90
|
-
}
|
91
|
-
});
|
70
|
+
export const UpdateTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof UpdateTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
|
71
|
+
try {
|
92
72
|
|
93
|
-
|
94
|
-
|
95
|
-
.action(async ({ parsedInput }): Promise<void> => {
|
96
|
-
try {
|
73
|
+
const { task } = await getSDKForCurrentUser();
|
74
|
+
return { data: await task.UpdateTaskList(parsedInput) };
|
97
75
|
|
98
|
-
|
99
|
-
|
76
|
+
} catch (error) {
|
77
|
+
console.error('Error in UpdateTaskList:', error);
|
78
|
+
return { serverError: error.toString() };
|
79
|
+
}
|
80
|
+
};
|
100
81
|
|
101
|
-
|
102
|
-
|
103
|
-
throw new Error('Failed to fetch DeleteTaskList');
|
104
|
-
}
|
105
|
-
});
|
106
|
-
|
107
|
-
|
108
|
-
export const CreateSprint = actionClient
|
109
|
-
.schema(CreateSprintSchema)
|
110
|
-
.action(async ({ parsedInput }): Promise<Sprint> => {
|
111
|
-
try {
|
82
|
+
export const DeleteTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof DeleteTaskListSchema> }): Promise<{data?: void, serverError?: string}> => {
|
83
|
+
try {
|
112
84
|
|
113
|
-
|
114
|
-
|
85
|
+
const { task } = await getSDKForCurrentUser();
|
86
|
+
return { data: await task.DeleteTaskList(parsedInput) };
|
115
87
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
88
|
+
} catch (error) {
|
89
|
+
console.error('Error in DeleteTaskList:', error);
|
90
|
+
return { serverError: error.toString() };
|
91
|
+
}
|
92
|
+
};
|
121
93
|
|
122
|
-
export const
|
123
|
-
|
124
|
-
.action(async ({ parsedInput }): Promise<Sprint> => {
|
125
|
-
try {
|
94
|
+
export const CreateSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
|
95
|
+
try {
|
126
96
|
|
127
|
-
|
128
|
-
|
97
|
+
const { task } = await getSDKForCurrentUser();
|
98
|
+
return { data: await task.CreateSprint(parsedInput) };
|
129
99
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
export const ListSprints = actionClient
|
137
|
-
.action(async ({ parsedInput }): Promise<Sprint[]> => {
|
138
|
-
try {
|
100
|
+
} catch (error) {
|
101
|
+
console.error('Error in CreateSprint:', error);
|
102
|
+
return { serverError: error.toString() };
|
103
|
+
}
|
104
|
+
};
|
139
105
|
|
140
|
-
|
141
|
-
|
106
|
+
export const GetSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof GetSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
|
107
|
+
try {
|
142
108
|
|
143
|
-
}
|
144
|
-
|
145
|
-
throw new Error('Failed to fetch ListSprints');
|
146
|
-
}
|
147
|
-
});
|
148
|
-
|
149
|
-
export const UpdateSprint = actionClient
|
150
|
-
.schema(UpdateSprintSchema)
|
151
|
-
.action(async ({ parsedInput }): Promise<Sprint> => {
|
152
|
-
try {
|
109
|
+
const { task } = await getSDKForCurrentUser();
|
110
|
+
return { data: await task.GetSprint(parsedInput) };
|
153
111
|
|
154
|
-
|
155
|
-
|
112
|
+
} catch (error) {
|
113
|
+
console.error('Error in GetSprint:', error);
|
114
|
+
return { serverError: error.toString() };
|
115
|
+
}
|
116
|
+
};
|
156
117
|
|
157
|
-
|
158
|
-
|
159
|
-
throw new Error('Failed to fetch UpdateSprint');
|
160
|
-
}
|
161
|
-
});
|
162
|
-
|
163
|
-
export const DeleteSprint = actionClient
|
164
|
-
.schema(DeleteSprintSchema)
|
165
|
-
.action(async ({ parsedInput }): Promise<void> => {
|
166
|
-
try {
|
118
|
+
export const ListSprints = async ({ parsedInput }: { parsedInput: z.infer<typeof ListSprintsSchema> }): Promise<{data?: Sprint[], serverError?: string}> => {
|
119
|
+
try {
|
167
120
|
|
168
|
-
|
169
|
-
|
121
|
+
const { task } = await getSDKForCurrentUser();
|
122
|
+
return { data: await task.ListSprints() };
|
170
123
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
124
|
+
} catch (error) {
|
125
|
+
console.error('Error in ListSprints:', error);
|
126
|
+
return { serverError: error.toString() };
|
127
|
+
}
|
128
|
+
};
|
129
|
+
|
130
|
+
export const UpdateSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof UpdateSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
|
131
|
+
try {
|
132
|
+
|
133
|
+
const { task } = await getSDKForCurrentUser();
|
134
|
+
return { data: await task.UpdateSprint(parsedInput) };
|
135
|
+
|
136
|
+
} catch (error) {
|
137
|
+
console.error('Error in UpdateSprint:', error);
|
138
|
+
return { serverError: error.toString() };
|
139
|
+
}
|
140
|
+
};
|
141
|
+
|
142
|
+
export const DeleteSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof DeleteSprintSchema> }): Promise<{data?: void, serverError?: string}> => {
|
143
|
+
try {
|
144
|
+
|
145
|
+
const { task } = await getSDKForCurrentUser();
|
146
|
+
return { data: await task.DeleteSprint(parsedInput) };
|
147
|
+
|
148
|
+
} catch (error) {
|
149
|
+
console.error('Error in DeleteSprint:', error);
|
150
|
+
return { serverError: error.toString() };
|
151
|
+
}
|
152
|
+
};
|
153
|
+
|
@@ -1,19 +1,22 @@
|
|
1
1
|
'use server';
|
2
2
|
import { z } from "zod";
|
3
|
-
import { actionClient } from "../../actions/actionClient";
|
4
3
|
import { getSDKForCurrentUser } from "../../getSDKForCurrentUser";
|
5
|
-
|
4
|
+
import { Tenant } from "./types";
|
5
|
+
|
6
6
|
const getTenantActionSchema = z.object({
|
7
7
|
tenantId: z.string()
|
8
8
|
});
|
9
9
|
|
10
|
-
export const getTenantAction =
|
11
|
-
|
12
|
-
.action(async ({ parsedInput }) => {
|
10
|
+
export const getTenantAction = async ({ parsedInput }: { parsedInput: z.infer<typeof getTenantActionSchema> }): Promise<{data?: Tenant, serverError?: string}> => {
|
11
|
+
try {
|
13
12
|
const { tenantId } = parsedInput;
|
14
13
|
const { tenants } = await getSDKForCurrentUser();
|
15
|
-
return await tenants.get(tenantId);
|
16
|
-
})
|
14
|
+
return { data: await tenants.get(tenantId) };
|
15
|
+
} catch (error) {
|
16
|
+
console.error('Error in getTenantAction:', error);
|
17
|
+
return { serverError: error.toString() };
|
18
|
+
}
|
19
|
+
};
|
17
20
|
|
18
21
|
|
19
22
|
|
@@ -21,13 +24,16 @@ const listUserTenantsScheema = z.object({
|
|
21
24
|
userId: z.string()
|
22
25
|
});
|
23
26
|
|
24
|
-
export const listUserTenantsAction =
|
25
|
-
|
26
|
-
.action(async ({ parsedInput }) => {
|
27
|
+
export const listUserTenantsAction = async ({ parsedInput }: { parsedInput: z.infer<typeof listUserTenantsScheema> }): Promise<{data?: Tenant[], serverError?: string}> => {
|
28
|
+
try {
|
27
29
|
const { userId } = parsedInput;
|
28
30
|
const { tenants } = await getSDKForCurrentUser();
|
29
|
-
return await tenants.listUserTenants(userId);
|
30
|
-
})
|
31
|
+
return { data: await tenants.listUserTenants(userId) };
|
32
|
+
} catch (error) {
|
33
|
+
console.error('Error in listUserTenantsAction:', error);
|
34
|
+
return { serverError: error.toString() };
|
35
|
+
}
|
36
|
+
};
|
31
37
|
|
32
38
|
|
33
39
|
const createTenantScheema = z.object({
|
@@ -36,11 +42,14 @@ const createTenantScheema = z.object({
|
|
36
42
|
slug: z.string()
|
37
43
|
});
|
38
44
|
|
39
|
-
export const createTenantAction =
|
40
|
-
|
41
|
-
.action(async ({ parsedInput }) => {
|
45
|
+
export const createTenantAction = async ({ parsedInput }: { parsedInput: z.infer<typeof createTenantScheema> }): Promise<{data?: Tenant, serverError?: string}> => {
|
46
|
+
try {
|
42
47
|
const { id, name, slug } = parsedInput;
|
43
48
|
const { tenants } = await getSDKForCurrentUser();
|
44
49
|
//@ts-ignore
|
45
|
-
return await tenants.create({ $id: id, name: name, slug: slug });
|
46
|
-
})
|
50
|
+
return { data: await tenants.create({ $id: id, name: name, slug: slug }) };
|
51
|
+
} catch (error) {
|
52
|
+
console.error('Error in createTenantAction:', error);
|
53
|
+
return { serverError: error.toString() };
|
54
|
+
}
|
55
|
+
};
|