@appconda/nextjs 1.0.138 → 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/package.json +1 -1
- package/src/modules/task/action.ts +103 -125
@@ -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==
|
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
|
+
|