@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.
@@ -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: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
3
- id: import("zod").ZodOptional<import("zod").ZodString>;
4
- tenantId: import("zod").ZodString;
5
- ownerId: import("zod").ZodString;
6
- title: import("zod").ZodString;
7
- description: import("zod").ZodOptional<import("zod").ZodString>;
8
- }, "strip", import("zod").ZodTypeAny, {
9
- tenantId: string;
10
- ownerId: string;
11
- title: string;
12
- description?: string | undefined;
13
- id?: string | undefined;
14
- }, {
15
- tenantId: string;
16
- ownerId: string;
17
- title: string;
18
- description?: string | undefined;
19
- id?: string | undefined;
20
- }>, readonly [], {
21
- _errors?: string[];
22
- tenantId?: {
23
- _errors?: string[];
24
- };
25
- ownerId?: {
26
- _errors?: string[];
27
- };
28
- title?: {
29
- _errors?: string[];
30
- };
31
- description?: {
32
- _errors?: string[];
33
- };
34
- id?: {
35
- _errors?: string[];
36
- };
37
- }, readonly [], Project>;
38
- export declare const ListProjects: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
39
- tenantId: import("zod").ZodString;
40
- }, "strip", import("zod").ZodTypeAny, {
41
- tenantId: string;
42
- }, {
43
- tenantId: string;
44
- }>, readonly [], {
45
- _errors?: string[];
46
- tenantId?: {
47
- _errors?: string[];
48
- };
49
- }, readonly [], Project[]>;
50
- export declare const CreateTaskList: import("next-safe-action").SafeActionFn<string, import("zod").ZodObject<{
51
- id: import("zod").ZodOptional<import("zod").ZodString>;
52
- name: import("zod").ZodString;
53
- description: import("zod").ZodOptional<import("zod").ZodString>;
54
- }, "strip", import("zod").ZodTypeAny, {
55
- name: string;
56
- description?: string | undefined;
57
- id?: string | undefined;
58
- }, {
59
- name: string;
60
- description?: string | undefined;
61
- id?: string | undefined;
62
- }>, readonly [], {
63
- _errors?: string[];
64
- name?: {
65
- _errors?: string[];
66
- };
67
- description?: {
68
- _errors?: string[];
69
- };
70
- id?: {
71
- _errors?: string[];
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
- import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
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
- throw new Error('Failed to fetch CreateProject');
10
+ return { serverError: error.toString() };
15
11
  }
16
- });
17
- export const ListProjects = actionClient
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
- throw new Error('Failed to fetch ListProjects');
20
+ return { serverError: error.toString() };
27
21
  }
28
- });
29
- export const CreateTaskList = actionClient
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
- throw new Error('Failed to fetch CreateTaskList');
30
+ return { serverError: error.toString() };
39
31
  }
40
- });
41
- export const GetTaskList = actionClient
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
- throw new Error('Failed to fetch GetTaskList');
40
+ return { serverError: error.toString() };
51
41
  }
52
- });
53
- export const ListTaskLists = actionClient
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
- throw new Error('Failed to fetch ListTaskLists');
50
+ return { serverError: error.toString() };
62
51
  }
63
- });
64
- export const UpdateTaskList = actionClient
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
- throw new Error('Failed to fetch UpdateTaskList');
60
+ return { serverError: error.toString() };
74
61
  }
75
- });
76
- export const DeleteTaskList = actionClient
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
- throw new Error('Failed to fetch DeleteTaskList');
70
+ return { serverError: error.toString() };
86
71
  }
87
- });
88
- export const CreateSprint = actionClient
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
- throw new Error('Failed to fetch CreateSprint');
80
+ return { serverError: error.toString() };
98
81
  }
99
- });
100
- export const GetSprint = actionClient
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
- throw new Error('Failed to fetch GetSprint');
90
+ return { serverError: error.toString() };
110
91
  }
111
- });
112
- export const ListSprints = actionClient
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
- throw new Error('Failed to fetch ListSprints');
100
+ return { serverError: error.toString() };
121
101
  }
122
- });
123
- export const UpdateSprint = actionClient
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
- throw new Error('Failed to fetch UpdateSprint');
110
+ return { serverError: error.toString() };
133
111
  }
134
- });
135
- export const DeleteSprint = actionClient
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
- throw new Error('Failed to fetch DeleteSprint');
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.138",
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 { actionClient } from '../../actions/actionClient';
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 = actionClient
11
- .schema(CreateProjectSchema)
12
- .action(async ({ parsedInput }): Promise<Project> => {
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
- throw new Error('Failed to fetch CreateProject');
16
+ return { serverError: error.toString() };
21
17
  }
22
- });
18
+ };
23
19
 
24
- export const ListProjects = actionClient
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
- throw new Error('Failed to fetch ListProjects');
28
+ return { serverError: error.toString() };
35
29
  }
36
- });
30
+ };
37
31
 
38
- export const CreateTaskList = actionClient
39
- .schema(CreateTaskListSchema)
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
- const { task } = await getSDKForCurrentUser();
44
- return await task.CreateTaskList(parsedInput);
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
- throw new Error('Failed to fetch CreateTaskList');
40
+ return { serverError: error.toString() };
49
41
  }
50
- });
42
+ };
51
43
 
52
- export const GetTaskList = actionClient
53
- .schema(GetTaskListSchema)
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
- const { task } = await getSDKForCurrentUser();
58
- return await task.GetTaskList(parsedInput);
47
+ const { task } = await getSDKForCurrentUser();
48
+ return { data: await task.GetTaskList(parsedInput) };
59
49
 
60
- } catch (error) {
61
- console.error('Error in GetTaskList:', error);
62
- throw new Error('Failed to fetch GetTaskList');
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
- } catch (error) {
74
- console.error('Error in ListTaskLists:', error);
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
- export const UpdateTaskList = actionClient
80
- .schema(UpdateTaskListSchema)
81
- .action(async ({ parsedInput }): Promise<TaskList> => {
82
- try {
61
+ const { task } = await getSDKForCurrentUser();
62
+ return { data: await task.ListTaskLists() };
83
63
 
84
- const { task } = await getSDKForCurrentUser();
85
- return await task.UpdateTaskList(parsedInput);
64
+ } catch (error) {
65
+ console.error('Error in ListTaskLists:', error);
66
+ return { serverError: error.toString() };
67
+ }
68
+ };
86
69
 
87
- } catch (error) {
88
- console.error('Error in UpdateTaskList:', error);
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
- export const DeleteTaskList = actionClient
94
- .schema(DeleteTaskListSchema)
95
- .action(async ({ parsedInput }): Promise<void> => {
96
- try {
73
+ const { task } = await getSDKForCurrentUser();
74
+ return { data: await task.UpdateTaskList(parsedInput) };
97
75
 
98
- const { task } = await getSDKForCurrentUser();
99
- return await task.DeleteTaskList(parsedInput);
76
+ } catch (error) {
77
+ console.error('Error in UpdateTaskList:', error);
78
+ return { serverError: error.toString() };
79
+ }
80
+ };
100
81
 
101
- } catch (error) {
102
- console.error('Error in DeleteTaskList:', error);
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
- const { task } = await getSDKForCurrentUser();
114
- return await task.CreateSprint(parsedInput);
85
+ const { task } = await getSDKForCurrentUser();
86
+ return { data: await task.DeleteTaskList(parsedInput) };
115
87
 
116
- } catch (error) {
117
- console.error('Error in CreateSprint:', error);
118
- throw new Error('Failed to fetch CreateSprint');
119
- }
120
- });
88
+ } catch (error) {
89
+ console.error('Error in DeleteTaskList:', error);
90
+ return { serverError: error.toString() };
91
+ }
92
+ };
121
93
 
122
- export const GetSprint = actionClient
123
- .schema(GetSprintSchema)
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
- const { task } = await getSDKForCurrentUser();
128
- return await task.GetSprint(parsedInput);
97
+ const { task } = await getSDKForCurrentUser();
98
+ return { data: await task.CreateSprint(parsedInput) };
129
99
 
130
- } catch (error) {
131
- console.error('Error in GetSprint:', error);
132
- throw new Error('Failed to fetch GetSprint');
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
- const { task } = await getSDKForCurrentUser();
141
- return await task.ListSprints();
106
+ export const GetSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof GetSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
107
+ try {
142
108
 
143
- } catch (error) {
144
- console.error('Error in ListSprints:', error);
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
- const { task } = await getSDKForCurrentUser();
155
- return await task.UpdateSprint(parsedInput);
112
+ } catch (error) {
113
+ console.error('Error in GetSprint:', error);
114
+ return { serverError: error.toString() };
115
+ }
116
+ };
156
117
 
157
- } catch (error) {
158
- console.error('Error in UpdateSprint:', error);
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
- const { task } = await getSDKForCurrentUser();
169
- return await task.DeleteSprint(parsedInput);
121
+ const { task } = await getSDKForCurrentUser();
122
+ return { data: await task.ListSprints() };
170
123
 
171
- } catch (error) {
172
- console.error('Error in DeleteSprint:', error);
173
- throw new Error('Failed to fetch DeleteSprint');
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
+