@appconda/nextjs 1.0.175 → 1.0.176

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,27 +1,16 @@
1
1
  import { z } from 'zod';
2
2
  import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
3
3
  import { Project, Sprint, TaskList } from './types';
4
- export declare const CreateProject: ({ parsedInput }: {
5
- parsedInput: z.infer<typeof CreateProjectSchema>;
6
- }) => Promise<{
4
+ export declare const CreateProject: (parsedInput: z.infer<typeof CreateProjectSchema>) => Promise<{
7
5
  data?: Project;
8
6
  serverError?: string;
9
7
  }>;
10
- export declare const ListProjects: ({ parsedInput }: {
11
- parsedInput: z.infer<typeof ListProjectsSchema>;
12
- }) => Promise<{
8
+ export declare const ListProjects: (parsedInput: z.infer<typeof ListProjectsSchema>) => Promise<{
13
9
  data?: Project[];
14
10
  serverError?: string;
15
11
  }>;
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<{
12
+ export declare const CreateTaskList: (parsedInput: z.infer<typeof CreateTaskListSchema>) => Promise<TaskList>;
13
+ export declare const GetTaskList: (parsedInput: z.infer<typeof GetTaskListSchema>) => Promise<{
25
14
  data?: TaskList;
26
15
  serverError?: string;
27
16
  }>;
@@ -29,45 +18,31 @@ export declare const ListTaskLists: () => Promise<{
29
18
  data?: TaskList[];
30
19
  serverError?: string;
31
20
  }>;
32
- export declare const UpdateTaskList: ({ parsedInput }: {
33
- parsedInput: z.infer<typeof UpdateTaskListSchema>;
34
- }) => Promise<{
21
+ export declare const UpdateTaskList: (parsedInput: z.infer<typeof UpdateTaskListSchema>) => Promise<{
35
22
  data?: TaskList;
36
23
  serverError?: string;
37
24
  }>;
38
- export declare const DeleteTaskList: ({ parsedInput }: {
39
- parsedInput: z.infer<typeof DeleteTaskListSchema>;
40
- }) => Promise<{
25
+ export declare const DeleteTaskList: (parsedInput: z.infer<typeof DeleteTaskListSchema>) => Promise<{
41
26
  data?: void;
42
27
  serverError?: string;
43
28
  }>;
44
- export declare const CreateSprint: ({ parsedInput }: {
45
- parsedInput: z.infer<typeof CreateSprintSchema>;
46
- }) => Promise<{
29
+ export declare const CreateSprint: (parsedInput: z.infer<typeof CreateSprintSchema>) => Promise<{
47
30
  data?: Sprint;
48
31
  serverError?: string;
49
32
  }>;
50
- export declare const GetSprint: ({ parsedInput }: {
51
- parsedInput: z.infer<typeof GetSprintSchema>;
52
- }) => Promise<{
33
+ export declare const GetSprint: (parsedInput: z.infer<typeof GetSprintSchema>) => Promise<{
53
34
  data?: Sprint;
54
35
  serverError?: string;
55
36
  }>;
56
- export declare const ListSprints: ({ parsedInput }: {
57
- parsedInput: z.infer<typeof ListSprintsSchema>;
58
- }) => Promise<{
37
+ export declare const ListSprints: (parsedInput: z.infer<typeof ListSprintsSchema>) => Promise<{
59
38
  data?: Sprint[];
60
39
  serverError?: string;
61
40
  }>;
62
- export declare const UpdateSprint: ({ parsedInput }: {
63
- parsedInput: z.infer<typeof UpdateSprintSchema>;
64
- }) => Promise<{
41
+ export declare const UpdateSprint: (parsedInput: z.infer<typeof UpdateSprintSchema>) => Promise<{
65
42
  data?: Sprint;
66
43
  serverError?: string;
67
44
  }>;
68
- export declare const DeleteSprint: ({ parsedInput }: {
69
- parsedInput: z.infer<typeof DeleteSprintSchema>;
70
- }) => Promise<{
45
+ export declare const DeleteSprint: (parsedInput: z.infer<typeof DeleteSprintSchema>) => Promise<{
71
46
  data?: void;
72
47
  serverError?: string;
73
48
  }>;
@@ -1,6 +1,7 @@
1
1
  'use server';
2
2
  import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
3
- export const CreateProject = async ({ parsedInput }) => {
3
+ import { AppcondaException } from '../../client';
4
+ export const CreateProject = async (parsedInput) => {
4
5
  try {
5
6
  const { task } = await getSDKForCurrentUser();
6
7
  //@ts-ignore
@@ -11,7 +12,7 @@ export const CreateProject = async ({ parsedInput }) => {
11
12
  return { serverError: error.toString() };
12
13
  }
13
14
  };
14
- export const ListProjects = async ({ parsedInput }) => {
15
+ export const ListProjects = async (parsedInput) => {
15
16
  try {
16
17
  const { task } = await getSDKForCurrentUser();
17
18
  //@ts-ignore
@@ -22,24 +23,28 @@ export const ListProjects = async ({ parsedInput }) => {
22
23
  return { serverError: error.toString() };
23
24
  }
24
25
  };
25
- export const CreateTaskList = async ({ parsedInput }) => {
26
+ export const CreateTaskList = async (parsedInput) => {
26
27
  try {
27
28
  const { task } = await getSDKForCurrentUser();
28
- return { data: await task.CreateTaskList(parsedInput) };
29
+ return await task.CreateTaskList(parsedInput);
29
30
  }
30
31
  catch (error) {
31
- console.error('Error in CreateTaskList:', error);
32
- return { serverError: error.toString() };
32
+ if (error instanceof AppcondaException) {
33
+ throw new Error(error.message);
34
+ }
35
+ throw error;
33
36
  }
34
37
  };
35
- export const GetTaskList = async ({ parsedInput }) => {
38
+ export const GetTaskList = async (parsedInput) => {
36
39
  try {
37
40
  const { task } = await getSDKForCurrentUser();
38
41
  return { data: await task.GetTaskList(parsedInput) };
39
42
  }
40
43
  catch (error) {
41
- console.error('Error in GetTaskList:', error);
42
- return { serverError: error.toString() };
44
+ if (error instanceof AppcondaException) {
45
+ throw new Error(error.message);
46
+ }
47
+ throw error;
43
48
  }
44
49
  };
45
50
  export const ListTaskLists = async () => {
@@ -48,79 +53,95 @@ export const ListTaskLists = async () => {
48
53
  return { data: await task.ListTaskLists() };
49
54
  }
50
55
  catch (error) {
51
- console.error('Error in ListTaskLists:', error);
52
- return { serverError: error.toString() };
56
+ if (error instanceof AppcondaException) {
57
+ throw new Error(error.message);
58
+ }
59
+ throw error;
53
60
  }
54
61
  };
55
- export const UpdateTaskList = async ({ parsedInput }) => {
62
+ export const UpdateTaskList = async (parsedInput) => {
56
63
  try {
57
64
  const { task } = await getSDKForCurrentUser();
58
65
  return { data: await task.UpdateTaskList(parsedInput) };
59
66
  }
60
67
  catch (error) {
61
- console.error('Error in UpdateTaskList:', error);
62
- return { serverError: error.toString() };
68
+ if (error instanceof AppcondaException) {
69
+ throw new Error(error.message);
70
+ }
71
+ throw error;
63
72
  }
64
73
  };
65
- export const DeleteTaskList = async ({ parsedInput }) => {
74
+ export const DeleteTaskList = async (parsedInput) => {
66
75
  try {
67
76
  const { task } = await getSDKForCurrentUser();
68
77
  return { data: await task.DeleteTaskList(parsedInput) };
69
78
  }
70
79
  catch (error) {
71
- console.error('Error in DeleteTaskList:', error);
72
- return { serverError: error.toString() };
80
+ if (error instanceof AppcondaException) {
81
+ throw new Error(error.message);
82
+ }
83
+ throw error;
73
84
  }
74
85
  };
75
- export const CreateSprint = async ({ parsedInput }) => {
86
+ export const CreateSprint = async (parsedInput) => {
76
87
  try {
77
88
  const { task } = await getSDKForCurrentUser();
78
89
  return { data: await task.CreateSprint(parsedInput) };
79
90
  }
80
91
  catch (error) {
81
- console.error('Error in CreateSprint:', error);
82
- return { serverError: error.toString() };
92
+ if (error instanceof AppcondaException) {
93
+ throw new Error(error.message);
94
+ }
95
+ throw error;
83
96
  }
84
97
  };
85
- export const GetSprint = async ({ parsedInput }) => {
98
+ export const GetSprint = async (parsedInput) => {
86
99
  try {
87
100
  const { task } = await getSDKForCurrentUser();
88
101
  return { data: await task.GetSprint(parsedInput) };
89
102
  }
90
103
  catch (error) {
91
- console.error('Error in GetSprint:', error);
92
- return { serverError: error.toString() };
104
+ if (error instanceof AppcondaException) {
105
+ throw new Error(error.message);
106
+ }
107
+ throw error;
93
108
  }
94
109
  };
95
110
  //@ts-ignore
96
- export const ListSprints = async ({ parsedInput }) => {
111
+ export const ListSprints = async (parsedInput) => {
97
112
  try {
98
113
  const { task } = await getSDKForCurrentUser();
99
114
  return { data: await task.ListSprints() };
100
115
  }
101
116
  catch (error) {
102
- console.error('Error in ListSprints:', error);
103
- return { serverError: error.toString() };
117
+ if (error instanceof AppcondaException) {
118
+ throw new Error(error.message);
119
+ }
120
+ throw error;
104
121
  }
105
122
  };
106
- export const UpdateSprint = async ({ parsedInput }) => {
123
+ export const UpdateSprint = async (parsedInput) => {
107
124
  try {
108
125
  const { task } = await getSDKForCurrentUser();
109
126
  return { data: await task.UpdateSprint(parsedInput) };
110
127
  }
111
128
  catch (error) {
112
- console.error('Error in UpdateSprint:', error);
113
- return { serverError: error.toString() };
129
+ if (error instanceof AppcondaException) {
130
+ throw new Error(error.message);
131
+ }
132
+ throw error;
114
133
  }
115
134
  };
116
- export const DeleteSprint = async ({ parsedInput }) => {
135
+ export const DeleteSprint = async (parsedInput) => {
117
136
  try {
118
137
  const { task } = await getSDKForCurrentUser();
119
138
  return { data: await task.DeleteSprint(parsedInput) };
120
139
  }
121
140
  catch (error) {
122
- console.error('Error in DeleteSprint:', error);
123
- return { serverError: error.toString() };
141
+ if (error instanceof AppcondaException) {
142
+ throw new Error(error.message);
143
+ }
144
+ throw error;
124
145
  }
125
146
  };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvdGFzay9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBSWIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJbEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBd0QsRUFBbUQsRUFBRTtJQUMxSixJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQzlDLFlBQVk7UUFDWixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBRXZELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUF1RCxFQUFxRCxFQUFFO0lBQzFKLElBQUksQ0FBQztRQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7UUFDOUMsWUFBWTtRQUNaLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFFMUQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FB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QyxFQUFFLENBQUM7SUFFMUQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDN0MsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJztcblxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IGdldFNES0ZvckN1cnJlbnRVc2VyIH0gZnJvbSAnLi4vLi4vZ2V0U0RLRm9yQ3VycmVudFVzZXInO1xuaW1wb3J0IHsgQ3JlYXRlUHJvamVjdFNjaGVtYSwgQ3JlYXRlU3ByaW50U2NoZW1hLCBDcmVhdGVUYXNrTGlzdFNjaGVtYSwgIERlbGV0ZVNwcmludFNjaGVtYSwgRGVsZXRlVGFza0xpc3RTY2hlbWEsIEdldFNwcmludFNjaGVtYSwgR2V0VGFza0xpc3RTY2hlbWEsIExpc3RQcm9qZWN0c1NjaGVtYSwgVXBkYXRlU3ByaW50U2NoZW1hLCBVcGRhdGVUYXNrTGlzdFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCB7IFByb2plY3QsIFNwcmludCwgVGFza0xpc3QgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVByb2plY3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBDcmVhdGVQcm9qZWN0U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFByb2plY3QsIHNlcnZlckVycm9yPzogc3RyaW5nfT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suQ3JlYXRlUHJvamVjdChwYXJzZWRJbnB1dCkgfTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ3JlYXRlUHJvamVjdDonLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGV4cG9ydCBjb25zdCBMaXN0UHJvamVjdHMgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0UHJvamVjdHNTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogUHJvamVjdFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLkxpc3RQcm9qZWN0cyhwYXJzZWRJbnB1dCkgfTtcblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdFByb2plY3RzOicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlVGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBDcmVhdGVUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suQ3JlYXRlVGFza0xpc3QocGFyc2VkSW5wdXQpIH07XG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIENyZWF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG5leHBvcnQgY29uc3QgR2V0VGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBHZXRUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suR2V0VGFza0xpc3QocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBHZXRUYXNrTGlzdDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuXG5cbmV4cG9ydCBjb25zdCBMaXN0VGFza0xpc3RzID0gYXN5bmMgKCk6IFByb21pc2U8e2RhdGE/OiBUYXNrTGlzdFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5MaXN0VGFza0xpc3RzKCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIExpc3RUYXNrTGlzdHM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVUYXNrTGlzdCA9IGFzeW5jICh7IHBhcnNlZElucHV0IH06IHsgcGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVRhc2tMaXN0U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFRhc2tMaXN0LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5VcGRhdGVUYXNrTGlzdChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIFVwZGF0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVGFza0xpc3QgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBEZWxldGVUYXNrTGlzdFNjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiB2b2lkLCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5EZWxldGVUYXNrTGlzdChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIERlbGV0ZVRhc2tMaXN0OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlU3ByaW50ID0gYXN5bmMgKHsgcGFyc2VkSW5wdXQgfTogeyBwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlU3ByaW50U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suQ3JlYXRlU3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ3JlYXRlU3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgR2V0U3ByaW50ID0gYXN5bmMgKHsgcGFyc2VkSW5wdXQgfTogeyBwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0U3ByaW50U2NoZW1hPiB9KTogUHJvbWlzZTx7ZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suR2V0U3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gR2V0U3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuLy9AdHMtaWdub3JlXG5leHBvcnQgY29uc3QgTGlzdFNwcmludHMgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0U3ByaW50c1NjaGVtYT4gfSk6IFByb21pc2U8e2RhdGE/OiBTcHJpbnRbXSwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suTGlzdFNwcmludHMoKSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gTGlzdFNwcmludHM6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVTcHJpbnQgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBVcGRhdGVTcHJpbnRTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogU3ByaW50LCBzZXJ2ZXJFcnJvcj86IHN0cmluZ30+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5VcGRhdGVTcHJpbnQocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBVcGRhdGVTcHJpbnQ6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKSB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWxldGVTcHJpbnQgPSBhc3luYyAoeyBwYXJzZWRJbnB1dCB9OiB7IHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBEZWxldGVTcHJpbnRTY2hlbWE+IH0pOiBQcm9taXNlPHtkYXRhPzogdm9pZCwgc2VydmVyRXJyb3I/OiBzdHJpbmd9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suRGVsZXRlU3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gRGVsZXRlU3ByaW50OicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHsgc2VydmVyRXJyb3I6IGVycm9yLnRvU3RyaW5nKCkgfTtcbiAgICB9XG59O1xuXG5cbiAgICAiXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvdGFzay9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBSWIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsV0FBZ0QsRUFBcUQsRUFBRTtJQUN2SSxJQUFJLENBQUM7UUFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQzlDLFlBQVk7UUFDWixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBRTNELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFdBQStDLEVBQXVELEVBQUU7SUFDdkksSUFBSSxDQUFDO1FBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztRQUM5QyxZQUFZO1FBQ1osT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0Ms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QUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHNlcnZlcic7XG5cblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gJy4uLy4uL2dldFNES0ZvckN1cnJlbnRVc2VyJztcbmltcG9ydCB7IENyZWF0ZVByb2plY3RTY2hlbWEsIENyZWF0ZVNwcmludFNjaGVtYSwgQ3JlYXRlVGFza0xpc3RTY2hlbWEsIERlbGV0ZVNwcmludFNjaGVtYSwgRGVsZXRlVGFza0xpc3RTY2hlbWEsIEdldFNwcmludFNjaGVtYSwgR2V0VGFza0xpc3RTY2hlbWEsIExpc3RQcm9qZWN0c1NjaGVtYSwgVXBkYXRlU3ByaW50U2NoZW1hLCBVcGRhdGVUYXNrTGlzdFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCB7IFByb2plY3QsIFNwcmludCwgVGFza0xpc3QgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFwcGNvbmRhRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVByb2plY3QgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVByb2plY3RTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiBQcm9qZWN0LCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5DcmVhdGVQcm9qZWN0KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ3JlYXRlUHJvamVjdDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExpc3RQcm9qZWN0cyA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgTGlzdFByb2plY3RzU2NoZW1hPik6IFByb21pc2U8eyBkYXRhPzogUHJvamVjdFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLkxpc3RQcm9qZWN0cyhwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIExpc3RQcm9qZWN0czonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IHNlcnZlckVycm9yOiBlcnJvci50b1N0cmluZygpIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVRhc2tMaXN0ID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBDcmVhdGVUYXNrTGlzdFNjaGVtYT4pID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRhc2suQ3JlYXRlVGFza0xpc3QocGFyc2VkSW5wdXQpO1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBHZXRUYXNrTGlzdCA9IGFzeW5jIChwYXJzZWRJbnB1dDogei5pbmZlcjx0eXBlb2YgR2V0VGFza0xpc3RTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiBUYXNrTGlzdCwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLkdldFRhc2tMaXN0KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cblxuXG5leHBvcnQgY29uc3QgTGlzdFRhc2tMaXN0cyA9IGFzeW5jICgpOiBQcm9taXNlPHsgZGF0YT86IFRhc2tMaXN0W10sIHNlcnZlckVycm9yPzogc3RyaW5nIH0+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5MaXN0VGFza0xpc3RzKCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwcGNvbmRhRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgVXBkYXRlVGFza0xpc3QgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVRhc2tMaXN0U2NoZW1hPik6IFByb21pc2U8eyBkYXRhPzogVGFza0xpc3QsIHNlcnZlckVycm9yPzogc3RyaW5nIH0+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5VcGRhdGVUYXNrTGlzdChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwcGNvbmRhRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVGFza0xpc3QgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIERlbGV0ZVRhc2tMaXN0U2NoZW1hPik6IFByb21pc2U8eyBkYXRhPzogdm9pZCwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLkRlbGV0ZVRhc2tMaXN0KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVTcHJpbnQgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVNwcmludFNjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLkNyZWF0ZVNwcmludChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwcGNvbmRhRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgR2V0U3ByaW50ID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBHZXRTcHJpbnRTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiBTcHJpbnQsIHNlcnZlckVycm9yPzogc3RyaW5nIH0+ID0+IHtcbiAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IHsgdGFzayB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogYXdhaXQgdGFzay5HZXRTcHJpbnQocGFyc2VkSW5wdXQpIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBcHBjb25kYUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufTtcbi8vQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IExpc3RTcHJpbnRzID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBMaXN0U3ByaW50c1NjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IFNwcmludFtdLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suTGlzdFNwcmludHMoKSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVTcHJpbnQgPSBhc3luYyAocGFyc2VkSW5wdXQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVNwcmludFNjaGVtYT4pOiBQcm9taXNlPHsgZGF0YT86IFNwcmludCwgc2VydmVyRXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgICAgY29uc3QgeyB0YXNrIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICByZXR1cm4geyBkYXRhOiBhd2FpdCB0YXNrLlVwZGF0ZVNwcmludChwYXJzZWRJbnB1dCkgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwcGNvbmRhRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRGVsZXRlU3ByaW50ID0gYXN5bmMgKHBhcnNlZElucHV0OiB6LmluZmVyPHR5cGVvZiBEZWxldGVTcHJpbnRTY2hlbWE+KTogUHJvbWlzZTx7IGRhdGE/OiB2b2lkLCBzZXJ2ZXJFcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgICBjb25zdCB7IHRhc2sgfSA9IGF3YWl0IGdldFNES0ZvckN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IGF3YWl0IHRhc2suRGVsZXRlU3ByaW50KHBhcnNlZElucHV0KSB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBwY29uZGFFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cblxuIl19
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.175",
5
+ "version": "1.0.176",
6
6
  "license": "BSD-3-Clause",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
@@ -3,155 +3,185 @@
3
3
 
4
4
  import { z } from 'zod';
5
5
  import { getSDKForCurrentUser } from '../../getSDKForCurrentUser';
6
- import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
6
+ import { CreateProjectSchema, CreateSprintSchema, CreateTaskListSchema, DeleteSprintSchema, DeleteTaskListSchema, GetSprintSchema, GetTaskListSchema, ListProjectsSchema, UpdateSprintSchema, UpdateTaskListSchema } from './schema';
7
7
  import { Project, Sprint, TaskList } from './types';
8
+ import { AppcondaException } from '../../client';
8
9
 
9
- export const CreateProject = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateProjectSchema> }): Promise<{data?: Project, serverError?: string}> => {
10
+ export const CreateProject = async (parsedInput: z.infer<typeof CreateProjectSchema>): Promise<{ data?: Project, serverError?: string }> => {
10
11
  try {
11
12
  const { task } = await getSDKForCurrentUser();
12
13
  //@ts-ignore
13
14
  return { data: await task.CreateProject(parsedInput) };
14
15
 
15
- } catch (error) {
16
- console.error('Error in CreateProject:', error);
17
- return { serverError: error.toString() };
18
- }
19
- };
16
+ } catch (error) {
17
+ console.error('Error in CreateProject:', error);
18
+ return { serverError: error.toString() };
19
+ }
20
+ };
20
21
 
21
- export const ListProjects = async ({ parsedInput }: { parsedInput: z.infer<typeof ListProjectsSchema> }): Promise<{data?: Project[], serverError?: string}> => {
22
- try {
22
+ export const ListProjects = async (parsedInput: z.infer<typeof ListProjectsSchema>): Promise<{ data?: Project[], serverError?: string }> => {
23
+ try {
23
24
 
24
- const { task } = await getSDKForCurrentUser();
25
- //@ts-ignore
26
- return { data: await task.ListProjects(parsedInput) };
25
+ const { task } = await getSDKForCurrentUser();
26
+ //@ts-ignore
27
+ return { data: await task.ListProjects(parsedInput) };
27
28
 
28
- } catch (error) {
29
- console.error('Error in ListProjects:', error);
30
- return { serverError: error.toString() };
31
- }
32
- };
29
+ } catch (error) {
30
+ console.error('Error in ListProjects:', error);
31
+ return { serverError: error.toString() };
32
+ }
33
+ };
33
34
 
34
- export const CreateTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
35
+ export const CreateTaskList = async (parsedInput: z.infer<typeof CreateTaskListSchema>) => {
35
36
  try {
36
37
 
37
38
  const { task } = await getSDKForCurrentUser();
38
- return { data: await task.CreateTaskList(parsedInput) };
39
+ return await task.CreateTaskList(parsedInput);
39
40
 
40
- } catch (error) {
41
- console.error('Error in CreateTaskList:', error);
42
- return { serverError: error.toString() };
41
+ } catch (error) {
42
+ if (error instanceof AppcondaException) {
43
+ throw new Error(error.message);
43
44
  }
44
- };
45
45
 
46
- export const GetTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof GetTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
46
+ throw error;
47
+ }
48
+ };
49
+
50
+ export const GetTaskList = async (parsedInput: z.infer<typeof GetTaskListSchema>): Promise<{ data?: TaskList, serverError?: string }> => {
47
51
  try {
48
52
 
49
53
  const { task } = await getSDKForCurrentUser();
50
54
  return { data: await task.GetTaskList(parsedInput) };
51
55
 
52
56
  } catch (error) {
53
- console.error('Error in GetTaskList:', error);
54
- return { serverError: error.toString() };
57
+ if (error instanceof AppcondaException) {
58
+ throw new Error(error.message);
59
+ }
60
+
61
+ throw error;
55
62
  }
56
63
  };
57
64
 
58
65
 
59
66
 
60
- export const ListTaskLists = async (): Promise<{data?: TaskList[], serverError?: string}> => {
67
+ export const ListTaskLists = async (): Promise<{ data?: TaskList[], serverError?: string }> => {
61
68
  try {
62
69
 
63
70
  const { task } = await getSDKForCurrentUser();
64
71
  return { data: await task.ListTaskLists() };
65
72
 
66
73
  } catch (error) {
67
- console.error('Error in ListTaskLists:', error);
68
- return { serverError: error.toString() };
74
+ if (error instanceof AppcondaException) {
75
+ throw new Error(error.message);
76
+ }
77
+
78
+ throw error;
69
79
  }
70
80
  };
71
81
 
72
- export const UpdateTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof UpdateTaskListSchema> }): Promise<{data?: TaskList, serverError?: string}> => {
82
+ export const UpdateTaskList = async (parsedInput: z.infer<typeof UpdateTaskListSchema>): Promise<{ data?: TaskList, serverError?: string }> => {
73
83
  try {
74
84
 
75
85
  const { task } = await getSDKForCurrentUser();
76
86
  return { data: await task.UpdateTaskList(parsedInput) };
77
87
 
78
88
  } catch (error) {
79
- console.error('Error in UpdateTaskList:', error);
80
- return { serverError: error.toString() };
89
+ if (error instanceof AppcondaException) {
90
+ throw new Error(error.message);
91
+ }
92
+
93
+ throw error;
81
94
  }
82
95
  };
83
96
 
84
- export const DeleteTaskList = async ({ parsedInput }: { parsedInput: z.infer<typeof DeleteTaskListSchema> }): Promise<{data?: void, serverError?: string}> => {
97
+ export const DeleteTaskList = async (parsedInput: z.infer<typeof DeleteTaskListSchema>): Promise<{ data?: void, serverError?: string }> => {
85
98
  try {
86
99
 
87
100
  const { task } = await getSDKForCurrentUser();
88
101
  return { data: await task.DeleteTaskList(parsedInput) };
89
102
 
90
103
  } catch (error) {
91
- console.error('Error in DeleteTaskList:', error);
92
- return { serverError: error.toString() };
104
+ if (error instanceof AppcondaException) {
105
+ throw new Error(error.message);
106
+ }
107
+
108
+ throw error;
93
109
  }
94
110
  };
95
111
 
96
- export const CreateSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof CreateSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
112
+ export const CreateSprint = async (parsedInput: z.infer<typeof CreateSprintSchema>): Promise<{ data?: Sprint, serverError?: string }> => {
97
113
  try {
98
114
 
99
115
  const { task } = await getSDKForCurrentUser();
100
116
  return { data: await task.CreateSprint(parsedInput) };
101
117
 
102
118
  } catch (error) {
103
- console.error('Error in CreateSprint:', error);
104
- return { serverError: error.toString() };
119
+ if (error instanceof AppcondaException) {
120
+ throw new Error(error.message);
121
+ }
122
+
123
+ throw error;
105
124
  }
106
125
  };
107
126
 
108
- export const GetSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof GetSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
127
+ export const GetSprint = async (parsedInput: z.infer<typeof GetSprintSchema>): Promise<{ data?: Sprint, serverError?: string }> => {
109
128
  try {
110
129
 
111
130
  const { task } = await getSDKForCurrentUser();
112
131
  return { data: await task.GetSprint(parsedInput) };
113
132
 
114
133
  } catch (error) {
115
- console.error('Error in GetSprint:', error);
116
- return { serverError: error.toString() };
134
+ if (error instanceof AppcondaException) {
135
+ throw new Error(error.message);
136
+ }
137
+
138
+ throw error;
117
139
  }
118
140
  };
119
141
  //@ts-ignore
120
- export const ListSprints = async ({ parsedInput }: { parsedInput: z.infer<typeof ListSprintsSchema> }): Promise<{data?: Sprint[], serverError?: string}> => {
142
+ export const ListSprints = async (parsedInput: z.infer<typeof ListSprintsSchema>): Promise<{ data?: Sprint[], serverError?: string }> => {
121
143
  try {
122
144
 
123
145
  const { task } = await getSDKForCurrentUser();
124
146
  return { data: await task.ListSprints() };
125
147
 
126
148
  } catch (error) {
127
- console.error('Error in ListSprints:', error);
128
- return { serverError: error.toString() };
149
+ if (error instanceof AppcondaException) {
150
+ throw new Error(error.message);
151
+ }
152
+
153
+ throw error;
129
154
  }
130
155
  };
131
156
 
132
- export const UpdateSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof UpdateSprintSchema> }): Promise<{data?: Sprint, serverError?: string}> => {
157
+ export const UpdateSprint = async (parsedInput: z.infer<typeof UpdateSprintSchema>): Promise<{ data?: Sprint, serverError?: string }> => {
133
158
  try {
134
159
 
135
160
  const { task } = await getSDKForCurrentUser();
136
161
  return { data: await task.UpdateSprint(parsedInput) };
137
162
 
138
163
  } catch (error) {
139
- console.error('Error in UpdateSprint:', error);
140
- return { serverError: error.toString() };
164
+ if (error instanceof AppcondaException) {
165
+ throw new Error(error.message);
166
+ }
167
+
168
+ throw error;
141
169
  }
142
170
  };
143
171
 
144
- export const DeleteSprint = async ({ parsedInput }: { parsedInput: z.infer<typeof DeleteSprintSchema> }): Promise<{data?: void, serverError?: string}> => {
172
+ export const DeleteSprint = async (parsedInput: z.infer<typeof DeleteSprintSchema>): Promise<{ data?: void, serverError?: string }> => {
145
173
  try {
146
174
 
147
175
  const { task } = await getSDKForCurrentUser();
148
176
  return { data: await task.DeleteSprint(parsedInput) };
149
177
 
150
178
  } catch (error) {
151
- console.error('Error in DeleteSprint:', error);
152
- return { serverError: error.toString() };
179
+ if (error instanceof AppcondaException) {
180
+ throw new Error(error.message);
181
+ }
182
+
183
+ throw error;
153
184
  }
154
185
  };
155
186
 
156
187
 
157
-
@@ -1,5 +0,0 @@
1
- import { z } from "zod";
2
- import { UpdateJobSchema } from "./schema";
3
- export declare const UpdateJob: (params: z.infer<typeof UpdateJobSchema>) => Promise<import("./types").ScheduledJob | {
4
- serverError: any;
5
- }>;
@@ -1,17 +0,0 @@
1
- 'use server';
2
- import { UpdateJobSchema } from "./schema";
3
- import { getSDKForCurrentUser } from "../../getSDKForCurrentUser";
4
- export const UpdateJob = async (params) => {
5
- try {
6
- const parsedInput = UpdateJobSchema.parse(params);
7
- const { scheduledJob } = await getSDKForCurrentUser();
8
- return await scheduledJob.UpdateJob(parsedInput);
9
- }
10
- catch (error) {
11
- console.error('Error in UpdateJob:', error);
12
- return {
13
- serverError: error.toString()
14
- };
15
- }
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3NjaGVkdWxlZC1qb2IvYWN0aW9uMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQyxZQUFZLENBQUM7QUFJZCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2pFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQUUsTUFBdUMsRUFBRSxFQUFFO0lBQ3BFLElBQUksQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVyRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTztZQUNILFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1NBQ2hDLENBQUE7SUFDTCxDQUFDO0FBQ0wsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiICd1c2Ugc2VydmVyJztcblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgVXBkYXRlSm9iU2NoZW1hIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gXCIuLi8uLi9nZXRTREtGb3JDdXJyZW50VXNlclwiO1xuXG5cbiBleHBvcnQgY29uc3QgVXBkYXRlSm9iID0gYXN5bmMgKHBhcmFtczogei5pbmZlcjx0eXBlb2YgVXBkYXRlSm9iU2NoZW1hPikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkSW5wdXQgPSBVcGRhdGVKb2JTY2hlbWEucGFyc2UocGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgc2NoZWR1bGVkSm9iIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHNjaGVkdWxlZEpvYi5VcGRhdGVKb2IocGFyc2VkSW5wdXQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBVcGRhdGVKb2I6JywgZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzZXJ2ZXJFcnJvcjogZXJyb3IudG9TdHJpbmcoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSJdfQ==
@@ -1,32 +0,0 @@
1
- import { Models } from "../client";
2
- import { ServiceClient } from "../service-client";
3
- export type TenantSimple = {
4
- id: string;
5
- name: string;
6
- slug: string;
7
- icon: string | null;
8
- deactivatedReason: string | null;
9
- types: any[];
10
- active: boolean;
11
- };
12
- export declare class Tenant extends ServiceClient {
13
- getServiceName(): string;
14
- get(tenantId: string): Promise<Models.Tenant>;
15
- /**
16
- * Create account
17
- *
18
- * Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).
19
- *
20
- * @param {string} tenantId
21
- * @param {string} name
22
- * @param {string} slug
23
- * @throws {AppcondaException}
24
- * @returns {Promise<Models.User<Preferences>>}
25
- */
26
- create({ $id, name, slug }: Models.Tenant): Promise<Models.Tenant>;
27
- list(queries?: string[], search?: string): Promise<Models.TenantList>;
28
- listUserTenants(userId: string, queries?: string[], search?: string): Promise<Models.TenantUserList>;
29
- listTenantUsers(tenantId: string, queries?: string[], search?: string): Promise<Models.TenantUserList>;
30
- createTenantUser({ tenantId, userId }: Models.TenantUser): Promise<Models.TenantUser>;
31
- adminGetAllTenantsIdsAndNames(): Promise<TenantSimple[]>;
32
- }
@@ -1,124 +0,0 @@
1
- import { AppcondaException } from "../client";
2
- import { ServiceClient } from "../service-client";
3
- export class Tenant extends ServiceClient {
4
- getServiceName() {
5
- return 'com.appconda.service.tenant';
6
- }
7
- async get(tenantId) {
8
- if (typeof tenantId === 'undefined') {
9
- throw new AppcondaException('Missing required parameter: "tenantId"');
10
- }
11
- const apiPath = '/tenants/{tenantId}'.replace('{tenantId}', tenantId);
12
- const payload = {};
13
- const uri = new URL(this.client.config.endpoint + apiPath);
14
- const apiHeaders = {
15
- 'content-type': 'application/json',
16
- };
17
- return await this.client.call('get', uri, apiHeaders, payload);
18
- }
19
- /**
20
- * Create account
21
- *
22
- * Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).
23
- *
24
- * @param {string} tenantId
25
- * @param {string} name
26
- * @param {string} slug
27
- * @throws {AppcondaException}
28
- * @returns {Promise<Models.User<Preferences>>}
29
- */
30
- async create({ $id, name, slug }) {
31
- if (typeof $id === 'undefined') {
32
- throw new AppcondaException('Missing required parameter: "tenantId"');
33
- }
34
- if (typeof name === 'undefined') {
35
- throw new AppcondaException('Missing required parameter: "name"');
36
- }
37
- if (typeof slug === 'undefined') {
38
- throw new AppcondaException('Missing required parameter: "slug"');
39
- }
40
- const apiPath = '/tenants';
41
- const payload = {};
42
- if (typeof $id !== 'undefined') {
43
- payload['tenantId'] = $id;
44
- }
45
- if (typeof name !== 'undefined') {
46
- payload['name'] = name;
47
- }
48
- if (typeof slug !== 'undefined') {
49
- payload['slug'] = slug;
50
- }
51
- const uri = new URL(this.client.config.endpoint + apiPath);
52
- const apiHeaders = {
53
- 'content-type': 'application/json',
54
- };
55
- return await this.client.call('post', uri, apiHeaders, payload);
56
- }
57
- async list(queries, search) {
58
- const apiPath = '/tenants';
59
- const payload = {};
60
- if (typeof queries !== 'undefined') {
61
- payload['queries'] = queries;
62
- }
63
- if (typeof search !== 'undefined') {
64
- payload['search'] = search;
65
- }
66
- const uri = new URL(this.client.config.endpoint + apiPath);
67
- const apiHeaders = {
68
- 'content-type': 'application/json',
69
- };
70
- return await this.client.call('get', uri, apiHeaders, payload);
71
- }
72
- async listUserTenants(userId, queries, search) {
73
- const apiPath = `/tenants/${userId}/tenants`;
74
- const payload = {};
75
- if (typeof queries !== 'undefined') {
76
- payload['queries'] = queries;
77
- }
78
- if (typeof search !== 'undefined') {
79
- payload['search'] = search;
80
- }
81
- const uri = new URL(this.client.config.endpoint + apiPath);
82
- const apiHeaders = {
83
- 'content-type': 'application/json',
84
- };
85
- return await this.client.call('get', uri, apiHeaders, payload);
86
- }
87
- async listTenantUsers(tenantId, queries, search) {
88
- const apiPath = `/tenants/${tenantId}/users`;
89
- const payload = {};
90
- if (typeof queries !== 'undefined') {
91
- payload['queries'] = queries;
92
- }
93
- if (typeof search !== 'undefined') {
94
- payload['search'] = search;
95
- }
96
- const uri = new URL(this.client.config.endpoint + apiPath);
97
- const apiHeaders = {
98
- 'content-type': 'application/json',
99
- };
100
- return await this.client.call('get', uri, apiHeaders, payload);
101
- }
102
- async createTenantUser({ tenantId, userId }) {
103
- if (typeof tenantId === 'undefined') {
104
- throw new AppcondaException('Missing required parameter: "tenantId"');
105
- }
106
- if (typeof userId === 'undefined') {
107
- throw new AppcondaException('Missing required parameter: "userId"');
108
- }
109
- const apiPath = `/tenants/${tenantId}/users`;
110
- const payload = {};
111
- if (typeof userId !== 'undefined') {
112
- payload['userId'] = userId;
113
- }
114
- const uri = new URL(this.client.config.endpoint + apiPath);
115
- const apiHeaders = {
116
- 'content-type': 'application/json',
117
- };
118
- return await this.client.call('post', uri, apiHeaders, payload);
119
- }
120
- async adminGetAllTenantsIdsAndNames() {
121
- const payload = {};
122
- return await this.actionCall('AdminGetAllTenantsIdsAndNames', payload);
123
- }
124
- }