@kulkan/kulterra-api-client 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -48,9 +48,34 @@ async function getMe(http, accessToken) {
48
48
  }
49
49
 
50
50
  // src/endpoints/user.ts
51
- var AUTH_BASE2 = "/api/v1/users";
52
- async function patchUpdateRoleUserByAdmin(http, { id }, body) {
53
- await http.patch(`${AUTH_BASE2}/${id}/role`, body);
51
+ var USER_BASE = "/api/v1/users";
52
+ async function getUsers(http, accessToken, userQuery) {
53
+ const { data } = await http.get(`${USER_BASE}`, {
54
+ params: userQuery,
55
+ headers: { Authorization: `Bearer ${accessToken}` }
56
+ });
57
+ return data;
58
+ }
59
+ async function getUserById(http, accessToken, { userId }) {
60
+ const { data } = await http.get(`${USER_BASE}/${userId}`, {
61
+ headers: { Authorization: `Bearer ${accessToken}` }
62
+ });
63
+ return data;
64
+ }
65
+ async function patchUpdateMe(http, accessToken, patch) {
66
+ await http.patch(`${USER_BASE}/me`, patch, {
67
+ headers: { Authorization: `Bearer ${accessToken}` }
68
+ });
69
+ }
70
+ async function patchUpdateRoleUserByAdmin(http, accessToken, { userId }, body) {
71
+ await http.patch(`${USER_BASE}/${userId}/role`, body, {
72
+ headers: { Authorization: `Bearer ${accessToken}` }
73
+ });
74
+ }
75
+ async function patchUpdateUserBySAdmin(http, accessToken, { userId }, patch) {
76
+ await http.patch(`${USER_BASE}/${userId}`, patch, {
77
+ headers: { Authorization: `Bearer ${accessToken}` }
78
+ });
54
79
  }
55
80
 
56
81
  // src/endpoints/health-check.ts
@@ -60,6 +85,251 @@ async function fetchHealthCheck(http) {
60
85
  return body;
61
86
  }
62
87
 
88
+ // src/endpoints/company.ts
89
+ var COMPANY_BASE = "/api/v1/companies";
90
+ async function getCompanies(http, accessToken, companyQuery) {
91
+ const { data } = await http.get(`${COMPANY_BASE}`, {
92
+ params: companyQuery,
93
+ headers: { Authorization: `Bearer ${accessToken}` }
94
+ });
95
+ return data;
96
+ }
97
+ async function getMyCompany(http, accessToken) {
98
+ const { data } = await http.get(`${COMPANY_BASE}/my`, {
99
+ headers: { Authorization: `Bearer ${accessToken}` }
100
+ });
101
+ return data;
102
+ }
103
+ async function getCompanyById(http, accessToken, { companyId }) {
104
+ const { data } = await http.get(
105
+ `${COMPANY_BASE}/${companyId}`,
106
+ {
107
+ headers: { Authorization: `Bearer ${accessToken}` }
108
+ }
109
+ );
110
+ return data;
111
+ }
112
+ async function postCreateCompany(http, accessToken, newCompanyRequest) {
113
+ const { data } = await http.post(
114
+ `${COMPANY_BASE}`,
115
+ newCompanyRequest,
116
+ {
117
+ headers: { Authorization: `Bearer ${accessToken}` }
118
+ }
119
+ );
120
+ return data;
121
+ }
122
+ async function patchUpdateMyCompany(http, accessToken, patch) {
123
+ await http.patch(`${COMPANY_BASE}/my`, patch, {
124
+ headers: { Authorization: `Bearer ${accessToken}` }
125
+ });
126
+ }
127
+ async function patchUpdateCompanyBySAdmin(http, accessToken, { companyId }, patch) {
128
+ await http.patch(`${COMPANY_BASE}/${companyId}`, patch, {
129
+ headers: { Authorization: `Bearer ${accessToken}` }
130
+ });
131
+ }
132
+
133
+ // src/endpoints/project.ts
134
+ var PROJECT_BASE = "/api/v1/companies";
135
+ async function getProjects(http, accessToken, projectQuery) {
136
+ const { data } = await http.get(`${PROJECT_BASE}/projects`, {
137
+ params: projectQuery,
138
+ headers: { Authorization: `Bearer ${accessToken}` }
139
+ });
140
+ return data;
141
+ }
142
+ async function getMyProjects(http, accessToken, projectQuery) {
143
+ const { data } = await http.get(`${PROJECT_BASE}/my/projects`, {
144
+ params: projectQuery,
145
+ headers: { Authorization: `Bearer ${accessToken}` }
146
+ });
147
+ return data;
148
+ }
149
+ async function getMyProjectBySlug(http, accessToken, { projectSlug }) {
150
+ const { data } = await http.get(
151
+ `${PROJECT_BASE}/my/projects/${projectSlug}`,
152
+ {
153
+ headers: { Authorization: `Bearer ${accessToken}` }
154
+ }
155
+ );
156
+ return data;
157
+ }
158
+ async function getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }) {
159
+ const { data } = await http.get(
160
+ `${PROJECT_BASE}/${companySlug}/projects/${projectSlug}`,
161
+ {
162
+ headers: { Authorization: `Bearer ${accessToken}` }
163
+ }
164
+ );
165
+ return data;
166
+ }
167
+ async function getProjectsByCompany(http, accessToken, { companySlug }, projectQuery) {
168
+ const { data } = await http.get(`${PROJECT_BASE}/${companySlug}/projects`, {
169
+ params: projectQuery,
170
+ headers: { Authorization: `Bearer ${accessToken}` }
171
+ });
172
+ return data;
173
+ }
174
+ async function postCreateProjectByAdmin(http, accessToken, newProjectRequest) {
175
+ const { data } = await http.post(
176
+ `${PROJECT_BASE}/my/projects`,
177
+ newProjectRequest,
178
+ {
179
+ headers: { Authorization: `Bearer ${accessToken}` }
180
+ }
181
+ );
182
+ return data;
183
+ }
184
+ async function postCreateProjectBySAdmin(http, accessToken, { companySlug }, newProjectRequest) {
185
+ const { data } = await http.post(
186
+ `${PROJECT_BASE}/${companySlug}/projects`,
187
+ newProjectRequest,
188
+ {
189
+ headers: { Authorization: `Bearer ${accessToken}` }
190
+ }
191
+ );
192
+ return data;
193
+ }
194
+ async function patchUpdateProjectByAdmin(http, accessToken, { projectSlug }, patch) {
195
+ await http.patch(
196
+ `${PROJECT_BASE}/my/projects/${projectSlug}`,
197
+ patch,
198
+ {
199
+ headers: { Authorization: `Bearer ${accessToken}` }
200
+ }
201
+ );
202
+ }
203
+ async function patchUpdateProjectBySAdmin(http, accessToken, { companySlug, projectSlug }, patch) {
204
+ await http.patch(
205
+ `${PROJECT_BASE}/${companySlug}/projects/${projectSlug}`,
206
+ patch,
207
+ {
208
+ headers: { Authorization: `Bearer ${accessToken}` }
209
+ }
210
+ );
211
+ }
212
+
213
+ // src/endpoints/property.ts
214
+ var PROPERTY_BASE = "/api/v1";
215
+ async function getProperties(http, accessToken, propertyQuery) {
216
+ const { data } = await http.get(`${PROPERTY_BASE}/properties`, {
217
+ params: propertyQuery,
218
+ headers: { Authorization: `Bearer ${accessToken}` }
219
+ });
220
+ return data;
221
+ }
222
+ async function getMyProperties(http, accessToken, propertyQuery) {
223
+ const { data } = await http.get(
224
+ `${PROPERTY_BASE}/properties/my`,
225
+ {
226
+ params: propertyQuery,
227
+ headers: { Authorization: `Bearer ${accessToken}` }
228
+ }
229
+ );
230
+ return data;
231
+ }
232
+ async function getMyPropertyById(http, accessToken, { propertyId }) {
233
+ const { data } = await http.get(
234
+ `${PROPERTY_BASE}/properties/my/${propertyId}`,
235
+ {
236
+ headers: { Authorization: `Bearer ${accessToken}` }
237
+ }
238
+ );
239
+ return data;
240
+ }
241
+ async function getPropertiesByAdmin(http, accessToken, propertyQuery) {
242
+ const { data } = await http.get(
243
+ `${PROPERTY_BASE}/companies/my/projects/properties`,
244
+ {
245
+ params: propertyQuery,
246
+ headers: { Authorization: `Bearer ${accessToken}` }
247
+ }
248
+ );
249
+ return data;
250
+ }
251
+ async function getPropertiesByProjectByAdmin(http, accessToken, { projectSlug }, propertyQuery) {
252
+ const { data } = await http.get(
253
+ `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties`,
254
+ {
255
+ params: propertyQuery,
256
+ headers: { Authorization: `Bearer ${accessToken}` }
257
+ }
258
+ );
259
+ return data;
260
+ }
261
+ async function getPropertyByProjectAndCodeByAdmin(http, accessToken, { projectSlug, propertyCode }) {
262
+ const { data } = await http.get(
263
+ `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties/${propertyCode}`,
264
+ {
265
+ headers: { Authorization: `Bearer ${accessToken}` }
266
+ }
267
+ );
268
+ return data;
269
+ }
270
+ async function getPropertiesByProject(http, accessToken, { companySlug, projectSlug }, propertyQuery) {
271
+ const { data } = await http.get(`${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties`, {
272
+ params: propertyQuery,
273
+ headers: { Authorization: `Bearer ${accessToken}` }
274
+ });
275
+ return data;
276
+ }
277
+ async function getPropertyByProjectAndCode(http, accessToken, {
278
+ companySlug,
279
+ projectSlug,
280
+ propertyCode
281
+ }) {
282
+ const { data } = await http.get(
283
+ `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,
284
+ {
285
+ headers: { Authorization: `Bearer ${accessToken}` }
286
+ }
287
+ );
288
+ return data;
289
+ }
290
+ async function postCreatePropertyByAdmin(http, accessToken, { projectSlug }, newPropertyRequest) {
291
+ const { data } = await http.post(
292
+ `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties`,
293
+ newPropertyRequest,
294
+ {
295
+ headers: { Authorization: `Bearer ${accessToken}` }
296
+ }
297
+ );
298
+ return data;
299
+ }
300
+ async function postCreatePropertyBySAdmin(http, accessToken, { companySlug, projectSlug }, newPropertyRequest) {
301
+ const { data } = await http.post(
302
+ `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties`,
303
+ newPropertyRequest,
304
+ {
305
+ headers: { Authorization: `Bearer ${accessToken}` }
306
+ }
307
+ );
308
+ return data;
309
+ }
310
+ async function patchUpdatePropertyByAdmin(http, accessToken, { projectSlug, propertyCode }, patch) {
311
+ await http.patch(
312
+ `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties/${propertyCode}`,
313
+ patch,
314
+ {
315
+ headers: { Authorization: `Bearer ${accessToken}` }
316
+ }
317
+ );
318
+ }
319
+ async function patchUpdatePropertyBySAdmin(http, accessToken, {
320
+ companySlug,
321
+ projectSlug,
322
+ propertyCode
323
+ }, patch) {
324
+ await http.patch(
325
+ `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,
326
+ patch,
327
+ {
328
+ headers: { Authorization: `Bearer ${accessToken}` }
329
+ }
330
+ );
331
+ }
332
+
63
333
  // src/create-api-client.ts
64
334
  function createApiClient(options) {
65
335
  const { http } = options;
@@ -75,15 +345,93 @@ function createApiClient(options) {
75
345
  me: (accessToken) => getMe(http, accessToken)
76
346
  },
77
347
  user: {
78
- updateRoleUserByAdmin: ({ id }, body) => patchUpdateRoleUserByAdmin(http, { id }, body)
348
+ users: (accessToken, userQuery) => getUsers(http, accessToken, userQuery),
349
+ userById: (accessToken, { userId }) => getUserById(http, accessToken, { userId }),
350
+ updateMe: (accessToken, patch) => patchUpdateMe(http, accessToken, patch),
351
+ updateRoleUserByAdmin: (accessToken, { userId }, body) => patchUpdateRoleUserByAdmin(http, accessToken, { userId }, body),
352
+ updateUserBySAdmin: (accessToken, { userId }, patch) => patchUpdateUserBySAdmin(http, accessToken, { userId }, patch)
353
+ },
354
+ company: {
355
+ companies: (accessToken, companyQuery) => getCompanies(http, accessToken, companyQuery),
356
+ myCompany: (accessToken) => getMyCompany(http, accessToken),
357
+ companyById: (accessToken, { companyId }) => getCompanyById(http, accessToken, { companyId }),
358
+ createCompany: (accessToken, newCompanyRequest) => postCreateCompany(http, accessToken, newCompanyRequest),
359
+ updateMyCompany: (accessToken, patch) => patchUpdateMyCompany(http, accessToken, patch),
360
+ updateCompanyBySAdmin: (accessToken, { companyId }, patch) => patchUpdateCompanyBySAdmin(http, accessToken, { companyId }, patch)
361
+ },
362
+ project: {
363
+ projects: (accessToken, projectQuery) => getProjects(http, accessToken, projectQuery),
364
+ myProjects: (accessToken, projectQuery) => getMyProjects(http, accessToken, projectQuery),
365
+ myProjectBySlug: (accessToken, { projectSlug }) => getMyProjectBySlug(http, accessToken, { projectSlug }),
366
+ projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) => getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),
367
+ projectsByCompany: (accessToken, { companySlug }, projectQuery) => getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),
368
+ createProjectByAdmin: (accessToken, newProjectRequest) => postCreateProjectByAdmin(http, accessToken, newProjectRequest),
369
+ createProjectBySAdmin: (accessToken, { companySlug }, newProjectRequest) => postCreateProjectBySAdmin(http, accessToken, { companySlug }, newProjectRequest),
370
+ updateProjectByAdmin: (accessToken, { projectSlug }, patch) => patchUpdateProjectByAdmin(http, accessToken, { projectSlug }, patch),
371
+ updateProjectBySAdmin: (accessToken, { companySlug, projectSlug }, patch) => patchUpdateProjectBySAdmin(http, accessToken, { companySlug, projectSlug }, patch)
372
+ },
373
+ property: {
374
+ properties: (accessToken, propertyQuery) => getProperties(http, accessToken, propertyQuery),
375
+ myProperties: (accessToken, propertyQuery) => getMyProperties(http, accessToken, propertyQuery),
376
+ myPropertyById: (accessToken, { propertyId }) => getMyPropertyById(http, accessToken, { propertyId }),
377
+ propertiesByAdmin: (accessToken, propertyQuery) => getPropertiesByAdmin(http, accessToken, propertyQuery),
378
+ propertiesByProjectByAdmin: (accessToken, { projectSlug }, propertyQuery) => getPropertiesByProjectByAdmin(http, accessToken, { projectSlug }, propertyQuery),
379
+ propertyByProjectAndCodeByAdmin: (accessToken, { projectSlug, propertyCode }) => getPropertyByProjectAndCodeByAdmin(http, accessToken, { projectSlug, propertyCode }),
380
+ propertiesByProject: (accessToken, { companySlug, projectSlug }, propertyQuery) => getPropertiesByProject(http, accessToken, { companySlug, projectSlug }, propertyQuery),
381
+ propertyByProjectAndCode: (accessToken, { companySlug, projectSlug, propertyCode }) => getPropertyByProjectAndCode(http, accessToken, { companySlug, projectSlug, propertyCode }),
382
+ createPropertyByAdmin: (accessToken, { projectSlug }, newPropertyRequest) => postCreatePropertyByAdmin(http, accessToken, { projectSlug }, newPropertyRequest),
383
+ createPropertyBySAdmin: (accessToken, { companySlug, projectSlug }, newPropertyRequest) => postCreatePropertyBySAdmin(
384
+ http,
385
+ accessToken,
386
+ { companySlug, projectSlug },
387
+ newPropertyRequest
388
+ ),
389
+ updatePropertyByAdmin: (accessToken, { projectSlug, propertyCode }, patch) => patchUpdatePropertyByAdmin(http, accessToken, { projectSlug, propertyCode }, patch),
390
+ updatePropertyBySAdmin: (accessToken, { companySlug, projectSlug, propertyCode }, patch) => patchUpdatePropertyBySAdmin(
391
+ http,
392
+ accessToken,
393
+ { companySlug, projectSlug, propertyCode },
394
+ patch
395
+ )
79
396
  }
80
397
  };
81
398
  }
82
399
 
83
400
  exports.createApiClient = createApiClient;
401
+ exports.getCompanies = getCompanies;
402
+ exports.getCompanyById = getCompanyById;
84
403
  exports.getGoogleOAuthStart = getGoogleOAuthStart;
85
404
  exports.getMe = getMe;
405
+ exports.getMyCompany = getMyCompany;
406
+ exports.getMyProjectBySlug = getMyProjectBySlug;
407
+ exports.getMyProjects = getMyProjects;
408
+ exports.getMyProperties = getMyProperties;
409
+ exports.getMyPropertyById = getMyPropertyById;
410
+ exports.getProjectByCompanyAndSlug = getProjectByCompanyAndSlug;
411
+ exports.getProjects = getProjects;
412
+ exports.getProjectsByCompany = getProjectsByCompany;
413
+ exports.getProperties = getProperties;
414
+ exports.getPropertiesByAdmin = getPropertiesByAdmin;
415
+ exports.getPropertiesByProject = getPropertiesByProject;
416
+ exports.getPropertiesByProjectByAdmin = getPropertiesByProjectByAdmin;
417
+ exports.getPropertyByProjectAndCode = getPropertyByProjectAndCode;
418
+ exports.getPropertyByProjectAndCodeByAdmin = getPropertyByProjectAndCodeByAdmin;
419
+ exports.getUserById = getUserById;
420
+ exports.getUsers = getUsers;
421
+ exports.patchUpdateCompanyBySAdmin = patchUpdateCompanyBySAdmin;
422
+ exports.patchUpdateMe = patchUpdateMe;
423
+ exports.patchUpdateMyCompany = patchUpdateMyCompany;
424
+ exports.patchUpdateProjectByAdmin = patchUpdateProjectByAdmin;
425
+ exports.patchUpdateProjectBySAdmin = patchUpdateProjectBySAdmin;
426
+ exports.patchUpdatePropertyByAdmin = patchUpdatePropertyByAdmin;
427
+ exports.patchUpdatePropertyBySAdmin = patchUpdatePropertyBySAdmin;
86
428
  exports.patchUpdateRoleUserByAdmin = patchUpdateRoleUserByAdmin;
429
+ exports.patchUpdateUserBySAdmin = patchUpdateUserBySAdmin;
430
+ exports.postCreateCompany = postCreateCompany;
431
+ exports.postCreateProjectByAdmin = postCreateProjectByAdmin;
432
+ exports.postCreateProjectBySAdmin = postCreateProjectBySAdmin;
433
+ exports.postCreatePropertyByAdmin = postCreatePropertyByAdmin;
434
+ exports.postCreatePropertyBySAdmin = postCreatePropertyBySAdmin;
87
435
  exports.postGoogleOAuthCallback = postGoogleOAuthCallback;
88
436
  exports.postLogin = postLogin;
89
437
  exports.postLogout = postLogout;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/health-check.ts","../src/create-api-client.ts"],"names":["AUTH_BASE"],"mappings":";;;AAcA,IAAM,SAAA,GAAY,cAAA;AAKlB,eAAsB,YAAA,CACpB,MACA,IAAA,EAC4C;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,IAAA;AAAA,IAC1B,GAAG,SAAS,CAAA,SAAA,CAAA;AAAA,IACZ;AAAA,GACF;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,SAAA,CACpB,MACA,IAAA,EAC4C;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,IAAA;AAAA,IAC1B,GAAG,SAAS,CAAA,MAAA,CAAA;AAAA,IACZ;AAAA,GACF;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,mBAAA,CACpB,MACA,WAAA,EACiD;AACjD,EAAA,MAAM,CAAA,GAAI,IAAI,eAAA,CAAgB,EAAE,aAAa,CAAA;AAC7C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,GAAA;AAAA,IAC1B,CAAA,EAAG,SAAS,CAAA,oBAAA,EAAuB,CAAA,CAAE,UAAU,CAAA;AAAA,GACjD;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,uBAAA,CACpB,MACA,IAAA,EAC4C;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,IAAA;AAAA,IAC1B,GAAG,SAAS,CAAA,sBAAA,CAAA;AAAA,IACZ;AAAA,GACF;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,WAAA,CACpB,MACA,IAAA,EAC4C;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,IAAA;AAAA,IAC1B,GAAG,SAAS,CAAA,QAAA,CAAA;AAAA,IACZ;AAAA,GACF;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,UAAA,CAAW,MAAkB,IAAA,EAAoC;AACrF,EAAA,MAAM,IAAA,CAAK,IAAA,CAA+B,CAAA,EAAG,SAAS,WAAW,IAAI,CAAA;AACvE;AAKA,eAAsB,KAAA,CACpB,MACA,WAAA,EACyC;AACzC,EAAA,MAAM,EAAE,MAAK,GAAI,MAAM,KAAK,GAAA,CAAoC,CAAA,EAAG,SAAS,CAAA,GAAA,CAAA,EAAO;AAAA,IACjF,OAAA,EAAS,EAAE,aAAA,EAAe,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA;AAAG,GACnD,CAAA;AACD,EAAA,OAAO,IAAA;AACT;;;ACjGA,IAAMA,UAAAA,GAAY,eAAA;AAKlB,eAAsB,0BAAA,CACpB,IAAA,EACA,EAAE,EAAA,IACF,IAAA,EACe;AACf,EAAA,MAAM,KAAK,KAAA,CAA+C,CAAA,EAAGA,UAAS,CAAA,CAAA,EAAI,EAAE,SAAS,IAAI,CAAA;AAC3F;;;ACdA,IAAM,iBAAA,GAAoB,sBAAA;AAY1B,eAAsB,iBAAiB,IAAA,EAAsD;AAC3F,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,KAAS,MAAM,IAAA,CAAK,IAA+B,iBAAiB,CAAA;AAElF,EAAA,OAAO,IAAA;AACT;;;AC4BO,SAAS,gBAAgB,OAAA,EAA4C;AAC1E,EAAA,MAAM,EAAE,MAAK,GAAI,OAAA;AAEjB,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,MAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACxC,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU,CAAC,IAAA,KAAS,YAAA,CAAa,MAAM,IAAI,CAAA;AAAA,MAC3C,KAAA,EAAO,CAAC,IAAA,KAAS,SAAA,CAAU,MAAM,IAAI,CAAA;AAAA,MACrC,mBAAA,EAAqB,CAAC,WAAA,KAAgB,mBAAA,CAAoB,MAAM,WAAW,CAAA;AAAA,MAC3E,uBAAA,EAAyB,CAAC,IAAA,KAAS,uBAAA,CAAwB,MAAM,IAAI,CAAA;AAAA,MACrE,OAAA,EAAS,CAAC,IAAA,KAAS,WAAA,CAAY,MAAM,IAAI,CAAA;AAAA,MACzC,MAAA,EAAQ,CAAC,IAAA,KAAS,UAAA,CAAW,MAAM,IAAI,CAAA;AAAA,MACvC,EAAA,EAAI,CAAC,WAAA,KAAgB,KAAA,CAAM,MAAM,WAAW;AAAA,KAC9C;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,qBAAA,EAAuB,CAAC,EAAE,EAAA,EAAG,EAAG,IAAA,KAAS,0BAAA,CAA2B,IAAA,EAAM,EAAE,EAAA,EAAG,EAAG,IAAI;AAAA;AACxF,GACF;AACF","file":"index.js","sourcesContent":["import type {\n AuthSessionResponse,\n AuthUserResponse,\n IApiResponse,\n LoginRequest,\n LogoutRequest,\n OAuthGoogleCallbackRequest,\n OAuthGoogleStartResponse,\n RefreshRequest,\n RegisterRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst AUTH_BASE = '/api/v1/auth' as const;\n\n/**\n * POST /api/v1/auth/register\n */\nexport async function postRegister(\n http: HttpClient,\n body: RegisterRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, RegisterRequest>(\n `${AUTH_BASE}/register`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/login\n */\nexport async function postLogin(\n http: HttpClient,\n body: LoginRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, LoginRequest>(\n `${AUTH_BASE}/login`,\n body,\n );\n return data;\n}\n\n/**\n * GET /api/v1/auth/oauth/google/start?redirectUri=...\n */\nexport async function getGoogleOAuthStart(\n http: HttpClient,\n redirectUri: string,\n): Promise<IApiResponse<OAuthGoogleStartResponse>> {\n const q = new URLSearchParams({ redirectUri });\n const { data } = await http.get<IApiResponse<OAuthGoogleStartResponse>>(\n `${AUTH_BASE}/oauth/google/start?${q.toString()}`,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/oauth/google/callback\n */\nexport async function postGoogleOAuthCallback(\n http: HttpClient,\n body: OAuthGoogleCallbackRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, OAuthGoogleCallbackRequest>(\n `${AUTH_BASE}/oauth/google/callback`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/refresh\n */\nexport async function postRefresh(\n http: HttpClient,\n body: RefreshRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, RefreshRequest>(\n `${AUTH_BASE}/refresh`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/logout — 204 No Content (no JSON body).\n */\nexport async function postLogout(http: HttpClient, body: LogoutRequest): Promise<void> {\n await http.post<undefined, LogoutRequest>(`${AUTH_BASE}/logout`, body);\n}\n\n/**\n * GET /api/v1/auth/me — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMe(\n http: HttpClient,\n accessToken: string,\n): Promise<IApiResponse<AuthUserResponse>> {\n const { data } = await http.get<IApiResponse<AuthUserResponse>>(`${AUTH_BASE}/me`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n","import type {\n UpdateUserRoleByAdminRequest,\n updateUserRoleByAdminParams,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst AUTH_BASE = '/api/v1/users' as const;\n\n/**\n * PATCH /api/v1/users/:id/role — 204 No Content (no JSON body).\n */\nexport async function patchUpdateRoleUserByAdmin(\n http: HttpClient,\n { id }: updateUserRoleByAdminParams,\n body: UpdateUserRoleByAdminRequest,\n): Promise<void> {\n await http.patch<undefined, UpdateUserRoleByAdminRequest>(`${AUTH_BASE}/${id}/role`, body);\n}\n","import type { IApiResponse, HealthCheck } from '@kulkan/kulterra-contracts';\nimport type { HttpClient } from '../http-client';\n\n/** Same path as `/api/${v1}/health-check` on the server when `v1` is the string `'v1'`. */\nconst HEALTH_CHECK_PATH = '/api/v1/health-check' as const;\n\n/**\n * GET /api/v1/health-check — server liveness.\n *\n * Returns the full JSON the server sends (`IApiResponse<HealthCheck>`).\n *\n * **Why not `data.data` here?** Adapters like Axios wrap the HTTP body in a property also\n * called `data`. That outer `data` is the entire `res.json(...)` object. The inner\n * `IApiResponse.data` is the `HealthCheck` payload — use `.data` on the **returned** value,\n * e.g. `(await fetchHealthCheck(http)).data`.\n */\nexport async function fetchHealthCheck(http: HttpClient): Promise<IApiResponse<HealthCheck>> {\n const { data: body } = await http.get<IApiResponse<HealthCheck>>(HEALTH_CHECK_PATH);\n\n return body;\n}\n","import {\n getGoogleOAuthStart,\n getMe,\n postGoogleOAuthCallback,\n postLogin,\n postLogout,\n postRefresh,\n postRegister,\n} from './endpoints/auth';\nimport { patchUpdateRoleUserByAdmin } from './endpoints/user';\nimport { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\n\nexport interface CreateApiClientOptions {\n /**\n * Preconfigured HTTP client (e.g. Axios instance with `baseURL` set).\n * Paths in this library are relative to that base (e.g. `/api/v1/...`).\n * Both `get` and `post` are required for auth flows.\n */\n readonly http: HttpClient;\n}\n\nexport interface ApiClient {\n readonly healthCheck: () => ReturnType<typeof fetchHealthCheck>;\n readonly auth: {\n readonly register: (\n body: Parameters<typeof postRegister>[1],\n ) => ReturnType<typeof postRegister>;\n readonly login: (body: Parameters<typeof postLogin>[1]) => ReturnType<typeof postLogin>;\n readonly getGoogleOAuthStart: (redirectUri: string) => ReturnType<typeof getGoogleOAuthStart>;\n readonly postGoogleOAuthCallback: (\n body: Parameters<typeof postGoogleOAuthCallback>[1],\n ) => ReturnType<typeof postGoogleOAuthCallback>;\n readonly refresh: (body: Parameters<typeof postRefresh>[1]) => ReturnType<typeof postRefresh>;\n readonly logout: (body: Parameters<typeof postLogout>[1]) => ReturnType<typeof postLogout>;\n readonly me: (accessToken: string) => ReturnType<typeof getMe>;\n };\n readonly user: {\n readonly updateRoleUserByAdmin: (\n { id }: Parameters<typeof patchUpdateRoleUserByAdmin>[1],\n body: Parameters<typeof patchUpdateRoleUserByAdmin>[2],\n ) => ReturnType<typeof patchUpdateRoleUserByAdmin>;\n };\n}\n\n/**\n * Creates a typed API client backed by the provided HTTP implementation.\n */\nexport function createApiClient(options: CreateApiClientOptions): ApiClient {\n const { http } = options;\n\n return {\n healthCheck: () => fetchHealthCheck(http),\n auth: {\n register: (body) => postRegister(http, body),\n login: (body) => postLogin(http, body),\n getGoogleOAuthStart: (redirectUri) => getGoogleOAuthStart(http, redirectUri),\n postGoogleOAuthCallback: (body) => postGoogleOAuthCallback(http, body),\n refresh: (body) => postRefresh(http, body),\n logout: (body) => postLogout(http, body),\n me: (accessToken) => getMe(http, accessToken),\n },\n user: {\n updateRoleUserByAdmin: ({ id }, body) => patchUpdateRoleUserByAdmin(http, { id }, body),\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/health-check.ts","../src/endpoints/company.ts","../src/endpoints/project.ts","../src/endpoints/property.ts","../src/create-api-client.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type {\n AuthSessionResponse,\n AuthUserResponse,\n IApiResponse,\n LoginRequest,\n LogoutRequest,\n OAuthGoogleCallbackRequest,\n OAuthGoogleStartResponse,\n RefreshRequest,\n RegisterRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst AUTH_BASE = '/api/v1/auth' as const;\n\n/**\n * POST /api/v1/auth/register\n */\nexport async function postRegister(\n http: HttpClient,\n body: RegisterRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, RegisterRequest>(\n `${AUTH_BASE}/register`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/login\n */\nexport async function postLogin(\n http: HttpClient,\n body: LoginRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, LoginRequest>(\n `${AUTH_BASE}/login`,\n body,\n );\n return data;\n}\n\n/**\n * GET /api/v1/auth/oauth/google/start?redirectUri=...\n */\nexport async function getGoogleOAuthStart(\n http: HttpClient,\n redirectUri: string,\n): Promise<IApiResponse<OAuthGoogleStartResponse>> {\n const q = new URLSearchParams({ redirectUri });\n const { data } = await http.get<IApiResponse<OAuthGoogleStartResponse>>(\n `${AUTH_BASE}/oauth/google/start?${q.toString()}`,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/oauth/google/callback\n */\nexport async function postGoogleOAuthCallback(\n http: HttpClient,\n body: OAuthGoogleCallbackRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, OAuthGoogleCallbackRequest>(\n `${AUTH_BASE}/oauth/google/callback`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/refresh\n */\nexport async function postRefresh(\n http: HttpClient,\n body: RefreshRequest,\n): Promise<IApiResponse<AuthSessionResponse>> {\n const { data } = await http.post<IApiResponse<AuthSessionResponse>, RefreshRequest>(\n `${AUTH_BASE}/refresh`,\n body,\n );\n return data;\n}\n\n/**\n * POST /api/v1/auth/logout — 204 No Content (no JSON body).\n */\nexport async function postLogout(http: HttpClient, body: LogoutRequest): Promise<void> {\n await http.post<undefined, LogoutRequest>(`${AUTH_BASE}/logout`, body);\n}\n\n/**\n * GET /api/v1/auth/me — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMe(\n http: HttpClient,\n accessToken: string,\n): Promise<IApiResponse<AuthUserResponse>> {\n const { data } = await http.get<IApiResponse<AuthUserResponse>>(`${AUTH_BASE}/me`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n","import type {\n GetUsersQueryByTokenRequest,\n IApiResponse,\n IPaginatedByTokenResponse,\n ToAdminUsersResponse,\n ToSAdminUsersResponse,\n UpdateUserBySAdminRequest,\n UpdateUserByUserRequest,\n UpdateUserRoleByAdminRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst USER_BASE = '/api/v1/users' as const;\n\n// GET\n\n/**\n * GET /api/v1/users — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getUsers(\n http: HttpClient,\n accessToken: string,\n userQuery: GetUsersQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<ToAdminUsersResponse | ToSAdminUsersResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<ToAdminUsersResponse | ToSAdminUsersResponse>>\n >(`${USER_BASE}`, {\n params: userQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/users/:userId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getUserById(\n http: HttpClient,\n accessToken: string,\n { userId }: { userId: string },\n): Promise<IApiResponse<ToSAdminUsersResponse>> {\n const { data } = await http.get<IApiResponse<ToSAdminUsersResponse>>(`${USER_BASE}/${userId}`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n// PATCH\n\n/**\n * PATCH /api/v1/users/me — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateMe(\n http: HttpClient,\n accessToken: string,\n patch: UpdateUserByUserRequest,\n): Promise<void> {\n await http.patch<void, UpdateUserByUserRequest>(`${USER_BASE}/me`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/users/:userId/role — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateRoleUserByAdmin(\n http: HttpClient,\n accessToken: string,\n { userId }: { userId: string },\n body: UpdateUserRoleByAdminRequest,\n): Promise<void> {\n await http.patch<void, UpdateUserRoleByAdminRequest>(`${USER_BASE}/${userId}/role`, body, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/users/:userId — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateUserBySAdmin(\n http: HttpClient,\n accessToken: string,\n { userId }: { userId: string },\n patch: UpdateUserBySAdminRequest,\n): Promise<void> {\n await http.patch<void, UpdateUserBySAdminRequest>(`${USER_BASE}/${userId}`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n","import type { IApiResponse, HealthCheck } from '@kulkan/kulterra-contracts';\nimport type { HttpClient } from '../http-client';\n\n/** Same path as `/api/${v1}/health-check` on the server when `v1` is the string `'v1'`. */\nconst HEALTH_CHECK_PATH = '/api/v1/health-check' as const;\n\n/**\n * GET /api/v1/health-check — server liveness.\n *\n * Returns the full JSON the server sends (`IApiResponse<HealthCheck>`).\n *\n * **Why not `data.data` here?** Adapters like Axios wrap the HTTP body in a property also\n * called `data`. That outer `data` is the entire `res.json(...)` object. The inner\n * `IApiResponse.data` is the `HealthCheck` payload — use `.data` on the **returned** value,\n * e.g. `(await fetchHealthCheck(http)).data`.\n */\nexport async function fetchHealthCheck(http: HttpClient): Promise<IApiResponse<HealthCheck>> {\n const { data: body } = await http.get<IApiResponse<HealthCheck>>(HEALTH_CHECK_PATH);\n\n return body;\n}\n","import type {\n AdminCompanyResponse,\n CreateCompanyRequest,\n GetCompaniesQueryRequest,\n IApiResponse,\n IPaginatedResponse,\n PublicCompanyResponse,\n SAdminCompanyResponse,\n UpdateCompanyByAdminRequest,\n UpdateCompanyBySAdminRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst COMPANY_BASE = '/api/v1/companies' as const;\n\n// GET\n\n/**\n * GET /api/v1/companies — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanies(\n http: HttpClient,\n accessToken: string,\n companyQuery: GetCompaniesQueryRequest,\n): Promise<IApiResponse<IPaginatedResponse<PublicCompanyResponse | SAdminCompanyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedResponse<PublicCompanyResponse | SAdminCompanyResponse>>\n >(`${COMPANY_BASE}`, {\n params: companyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/my — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyCompany(\n http: HttpClient,\n accessToken: string,\n): Promise<IApiResponse<AdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<AdminCompanyResponse>>(`${COMPANY_BASE}/my`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companyId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanyById(\n http: HttpClient,\n accessToken: string,\n { companyId }: { companyId: string },\n): Promise<IApiResponse<SAdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<SAdminCompanyResponse>>(\n `${COMPANY_BASE}/${companyId}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n// POST\n\n/**\n * POST /api/v1/companies — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateCompany(\n http: HttpClient,\n accessToken: string,\n newCompanyRequest: CreateCompanyRequest,\n): Promise<IApiResponse<SAdminCompanyResponse>> {\n const { data } = await http.post<IApiResponse<SAdminCompanyResponse>>(\n `${COMPANY_BASE}`,\n newCompanyRequest,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n// PATCH\n\n/**\n * PATCH /api/v1/companies/my — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateMyCompany(\n http: HttpClient,\n accessToken: string,\n patch: UpdateCompanyByAdminRequest,\n): Promise<void> {\n await http.patch<void, UpdateCompanyByAdminRequest>(`${COMPANY_BASE}/my`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/companies/:id — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateCompanyBySAdmin(\n http: HttpClient,\n accessToken: string,\n { companyId }: { companyId: string },\n patch: UpdateCompanyBySAdminRequest,\n): Promise<void> {\n await http.patch<void, UpdateCompanyBySAdminRequest>(`${COMPANY_BASE}/${companyId}`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n","import type {\n CreateProjectRequest,\n GetProjectsQueryByTokenRequest,\n IApiResponse,\n IPaginatedByTokenResponse,\n OwnerProjectResponse,\n ProjectResponse,\n PublicProjectResponse,\n UpdateProjectRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst PROJECT_BASE = '/api/v1/companies' as const;\n\n// GET\n\n/**\n * GET /api/v1/companies/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<ProjectResponse | PublicProjectResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<ProjectResponse | PublicProjectResponse>>\n >(`${PROJECT_BASE}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/my/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<ProjectResponse | OwnerProjectResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<ProjectResponse | OwnerProjectResponse>>\n >(`${PROJECT_BASE}/my/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/my/projects/:projectSlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjectBySlug(\n http: HttpClient,\n accessToken: string,\n { projectSlug }: { projectSlug: string },\n): Promise<IApiResponse<ProjectResponse | OwnerProjectResponse>> {\n const { data } = await http.get<IApiResponse<ProjectResponse | OwnerProjectResponse>>(\n `${PROJECT_BASE}/my/projects/${projectSlug}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug/projects/:projectSlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getProjectByCompanyAndSlug(\n http: HttpClient,\n accessToken: string,\n { companySlug, projectSlug }: { companySlug: string; projectSlug: string },\n): Promise<IApiResponse<ProjectResponse | PublicProjectResponse>> {\n const { data } = await http.get<IApiResponse<ProjectResponse | PublicProjectResponse>>(\n `${PROJECT_BASE}/${companySlug}/projects/${projectSlug}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getProjectsByCompany(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<ProjectResponse | PublicProjectResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<ProjectResponse | PublicProjectResponse>>\n >(`${PROJECT_BASE}/${companySlug}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n// POST\n\n/**\n * POST /api/v1/companies/my/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProjectByAdmin(\n http: HttpClient,\n accessToken: string,\n newProjectRequest: CreateProjectRequest,\n): Promise<IApiResponse<ProjectResponse>> {\n const { data } = await http.post<IApiResponse<ProjectResponse>>(\n `${PROJECT_BASE}/my/projects`,\n newProjectRequest,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * POST /api/v1/companies/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProjectBySAdmin(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n newProjectRequest: CreateProjectRequest,\n): Promise<IApiResponse<ProjectResponse>> {\n const { data } = await http.post<IApiResponse<ProjectResponse>>(\n `${PROJECT_BASE}/${companySlug}/projects`,\n newProjectRequest,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n// PATCH\n\n/**\n * PATCH /api/v1/companies/my/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProjectByAdmin(\n http: HttpClient,\n accessToken: string,\n { projectSlug }: { projectSlug: string },\n patch: UpdateProjectRequest,\n): Promise<void> {\n await http.patch<void, UpdateProjectRequest>(\n `${PROJECT_BASE}/my/projects/${projectSlug}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n\n/**\n * PATCH /api/v1/companies/:companySlug/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProjectBySAdmin(\n http: HttpClient,\n accessToken: string,\n { companySlug, projectSlug }: { companySlug: string; projectSlug: string },\n patch: UpdateProjectRequest,\n): Promise<void> {\n await http.patch<void, UpdateProjectRequest>(\n `${PROJECT_BASE}/${companySlug}/projects/${projectSlug}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import type {\n BuyerPropertyResponse,\n CreatePropertyRequest,\n GetPropertiesQueryByTokenRequest,\n IApiResponse,\n IPaginatedByTokenResponse,\n PropertyResponse,\n PublicPropertyResponse,\n UpdatePropertyRequest,\n} from '@kulkan/kulterra-contracts';\n\nimport type { HttpClient } from '../http-client';\n\nconst PROPERTY_BASE = '/api/v1' as const;\n\n// GET\n\n/**\n * GET /api/v1/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getProperties(\n http: HttpClient,\n accessToken: string,\n propertyQuery: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${PROPERTY_BASE}/properties`, {\n params: propertyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/properties/my — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProperties(\n http: HttpClient,\n accessToken: string,\n propertyQuery: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>>(\n `${PROPERTY_BASE}/properties/my`,\n {\n params: propertyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/properties/my/:propertyId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyPropertyById(\n http: HttpClient,\n accessToken: string,\n { propertyId }: { propertyId: string },\n): Promise<IApiResponse<BuyerPropertyResponse>> {\n const { data } = await http.get<IApiResponse<BuyerPropertyResponse>>(\n `${PROPERTY_BASE}/properties/my/${propertyId}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/my/projects/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getPropertiesByAdmin(\n http: HttpClient,\n accessToken: string,\n propertyQuery: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<PropertyResponse>>>(\n `${PROPERTY_BASE}/companies/my/projects/properties`,\n {\n params: propertyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/my/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getPropertiesByProjectByAdmin(\n http: HttpClient,\n accessToken: string,\n { projectSlug }: { projectSlug: string },\n propertyQuery: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<PropertyResponse>>>(\n `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties`,\n {\n params: propertyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/my/projects/:projectSlug/properties/:propertyCode — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getPropertyByProjectAndCodeByAdmin(\n http: HttpClient,\n accessToken: string,\n { projectSlug, propertyCode }: { projectSlug: string; propertyCode: string },\n): Promise<IApiResponse<PropertyResponse>> {\n const { data } = await http.get<IApiResponse<PropertyResponse>>(\n `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties/${propertyCode}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getPropertiesByProject(\n http: HttpClient,\n accessToken: string,\n { companySlug, projectSlug }: { companySlug: string; projectSlug: string },\n propertyQuery: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties`, {\n params: propertyQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug/projects/:projectSlug/properties/:propertyCode — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getPropertyByProjectAndCode(\n http: HttpClient,\n accessToken: string,\n {\n companySlug,\n projectSlug,\n propertyCode,\n }: { companySlug: string; projectSlug: string; propertyCode: string },\n): Promise<IApiResponse<PropertyResponse | PublicPropertyResponse>> {\n const { data } = await http.get<IApiResponse<PropertyResponse | PublicPropertyResponse>>(\n `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n// POST\n\n/**\n * POST /api/v1/companies/my/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreatePropertyByAdmin(\n http: HttpClient,\n accessToken: string,\n { projectSlug }: { projectSlug: string },\n newPropertyRequest: CreatePropertyRequest,\n): Promise<IApiResponse<PropertyResponse>> {\n const { data } = await http.post<IApiResponse<PropertyResponse>>(\n `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties`,\n newPropertyRequest,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * POST /api/v1/companies/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreatePropertyBySAdmin(\n http: HttpClient,\n accessToken: string,\n { companySlug, projectSlug }: { companySlug: string; projectSlug: string },\n newPropertyRequest: CreatePropertyRequest,\n): Promise<IApiResponse<PropertyResponse>> {\n const { data } = await http.post<IApiResponse<PropertyResponse>>(\n `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties`,\n newPropertyRequest,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n// PATCH\n\n/**\n * PATCH /api/v1/companies/my/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdatePropertyByAdmin(\n http: HttpClient,\n accessToken: string,\n { projectSlug, propertyCode }: { projectSlug: string; propertyCode: string },\n patch: UpdatePropertyRequest,\n): Promise<void> {\n await http.patch<void, UpdatePropertyRequest>(\n `${PROPERTY_BASE}/companies/my/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n\n/**\n * PATCH /api/v1/companies/:companySlug/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdatePropertyBySAdmin(\n http: HttpClient,\n accessToken: string,\n {\n companySlug,\n projectSlug,\n propertyCode,\n }: { companySlug: string; projectSlug: string; propertyCode: string },\n patch: UpdatePropertyRequest,\n): Promise<void> {\n await http.patch<void, UpdatePropertyRequest>(\n `${PROPERTY_BASE}/companies/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import {\n getGoogleOAuthStart,\n getMe,\n postGoogleOAuthCallback,\n postLogin,\n postLogout,\n postRefresh,\n postRegister,\n} from './endpoints/auth';\nimport {\n getUserById,\n getUsers,\n patchUpdateMe,\n patchUpdateRoleUserByAdmin,\n patchUpdateUserBySAdmin,\n} from './endpoints/user';\nimport { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\nimport {\n getCompanies,\n getCompanyById,\n getMyCompany,\n patchUpdateCompanyBySAdmin,\n patchUpdateMyCompany,\n postCreateCompany,\n} from './endpoints/company';\nimport {\n getMyProjectBySlug,\n getMyProjects,\n getProjectByCompanyAndSlug,\n getProjectsByCompany,\n getProjects,\n patchUpdateProjectByAdmin,\n patchUpdateProjectBySAdmin,\n postCreateProjectByAdmin,\n postCreateProjectBySAdmin,\n} from './endpoints/project';\nimport {\n getMyProperties,\n getMyPropertyById,\n getProperties,\n getPropertiesByAdmin,\n getPropertiesByProject,\n getPropertiesByProjectByAdmin,\n getPropertyByProjectAndCode,\n getPropertyByProjectAndCodeByAdmin,\n patchUpdatePropertyByAdmin,\n patchUpdatePropertyBySAdmin,\n postCreatePropertyByAdmin,\n postCreatePropertyBySAdmin,\n} from './endpoints/property';\n\nexport interface CreateApiClientOptions {\n /**\n * Preconfigured HTTP client (e.g. Axios instance with `baseURL` set).\n * Paths in this library are relative to that base (e.g. `/api/v1/...`).\n * Both `get` and `post` are required for auth flows.\n */\n readonly http: HttpClient;\n}\n\nexport interface ApiClient {\n readonly healthCheck: () => ReturnType<typeof fetchHealthCheck>;\n readonly auth: {\n readonly register: (\n body: Parameters<typeof postRegister>[1],\n ) => ReturnType<typeof postRegister>;\n readonly login: (body: Parameters<typeof postLogin>[1]) => ReturnType<typeof postLogin>;\n readonly getGoogleOAuthStart: (redirectUri: string) => ReturnType<typeof getGoogleOAuthStart>;\n readonly postGoogleOAuthCallback: (\n body: Parameters<typeof postGoogleOAuthCallback>[1],\n ) => ReturnType<typeof postGoogleOAuthCallback>;\n readonly refresh: (body: Parameters<typeof postRefresh>[1]) => ReturnType<typeof postRefresh>;\n readonly logout: (body: Parameters<typeof postLogout>[1]) => ReturnType<typeof postLogout>;\n readonly me: (accessToken: string) => ReturnType<typeof getMe>;\n };\n readonly user: {\n readonly users: (\n accessToken: string,\n userQuery: Parameters<typeof getUsers>[2],\n ) => ReturnType<typeof getUsers>;\n readonly userById: (\n accessToken: Parameters<typeof getUserById>[1],\n { userId }: Parameters<typeof getUserById>[2],\n ) => ReturnType<typeof getUserById>;\n readonly updateMe: (\n accessToken: Parameters<typeof patchUpdateMe>[1],\n patch: Parameters<typeof patchUpdateMe>[2],\n ) => ReturnType<typeof patchUpdateMe>;\n readonly updateRoleUserByAdmin: (\n accessToken: Parameters<typeof patchUpdateRoleUserByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateRoleUserByAdmin>[2],\n body: Parameters<typeof patchUpdateRoleUserByAdmin>[3],\n ) => ReturnType<typeof patchUpdateRoleUserByAdmin>;\n readonly updateUserBySAdmin: (\n accessToken: Parameters<typeof patchUpdateUserBySAdmin>[1],\n { userId }: Parameters<typeof patchUpdateUserBySAdmin>[2],\n patch: Parameters<typeof patchUpdateUserBySAdmin>[3],\n ) => ReturnType<typeof patchUpdateUserBySAdmin>;\n };\n readonly company: {\n readonly companies: (\n accessToken: Parameters<typeof getCompanies>[1],\n companyQuery: Parameters<typeof getCompanies>[2],\n ) => ReturnType<typeof getCompanies>;\n readonly myCompany: (\n accessToken: Parameters<typeof getMyCompany>[1],\n ) => ReturnType<typeof getMyCompany>;\n readonly companyById: (\n accessToken: Parameters<typeof getCompanyById>[1],\n { companyId }: Parameters<typeof getCompanyById>[2],\n ) => ReturnType<typeof getCompanyById>;\n readonly createCompany: (\n accessToken: Parameters<typeof postCreateCompany>[1],\n newCompanyRequest: Parameters<typeof postCreateCompany>[2],\n ) => ReturnType<typeof postCreateCompany>;\n readonly updateMyCompany: (\n accessToken: Parameters<typeof patchUpdateMyCompany>[1],\n patch: Parameters<typeof patchUpdateMyCompany>[2],\n ) => ReturnType<typeof patchUpdateMyCompany>;\n readonly updateCompanyBySAdmin: (\n accessToken: Parameters<typeof patchUpdateCompanyBySAdmin>[1],\n { companyId }: Parameters<typeof patchUpdateCompanyBySAdmin>[2],\n patch: Parameters<typeof patchUpdateCompanyBySAdmin>[3],\n ) => ReturnType<typeof patchUpdateCompanyBySAdmin>;\n };\n readonly project: {\n readonly projects: (\n accessToken: Parameters<typeof getProjects>[1],\n projectQuery: Parameters<typeof getProjects>[2],\n ) => ReturnType<typeof getProjects>;\n readonly myProjects: (\n accessToken: Parameters<typeof getMyProjects>[1],\n projectQuery: Parameters<typeof getMyProjects>[2],\n ) => ReturnType<typeof getMyProjects>;\n readonly myProjectBySlug: (\n accessToken: Parameters<typeof getMyProjectBySlug>[1],\n { projectSlug }: Parameters<typeof getMyProjectBySlug>[2],\n ) => ReturnType<typeof getMyProjectBySlug>;\n readonly projectByCompanyAndSlug: (\n accessToken: Parameters<typeof getProjectByCompanyAndSlug>[1],\n { companySlug, projectSlug }: Parameters<typeof getProjectByCompanyAndSlug>[2],\n ) => ReturnType<typeof getProjectByCompanyAndSlug>;\n readonly projectsByCompany: (\n accessToken: Parameters<typeof getProjectsByCompany>[1],\n { companySlug }: Parameters<typeof getProjectsByCompany>[2],\n projectQuery: Parameters<typeof getProjectsByCompany>[3],\n ) => ReturnType<typeof getProjectsByCompany>;\n readonly createProjectByAdmin: (\n accessToken: Parameters<typeof postCreateProjectByAdmin>[1],\n newProjectRequest: Parameters<typeof postCreateProjectByAdmin>[2],\n ) => ReturnType<typeof postCreateProjectByAdmin>;\n readonly createProjectBySAdmin: (\n accessToken: Parameters<typeof postCreateProjectBySAdmin>[1],\n { companySlug }: Parameters<typeof postCreateProjectBySAdmin>[2],\n newProjectRequest: Parameters<typeof postCreateProjectBySAdmin>[3],\n ) => ReturnType<typeof postCreateProjectBySAdmin>;\n readonly updateProjectByAdmin: (\n accessToken: Parameters<typeof patchUpdateProjectByAdmin>[1],\n { projectSlug }: Parameters<typeof patchUpdateProjectByAdmin>[2],\n patch: Parameters<typeof patchUpdateProjectByAdmin>[3],\n ) => ReturnType<typeof patchUpdateProjectByAdmin>;\n readonly updateProjectBySAdmin: (\n accessToken: Parameters<typeof patchUpdateProjectBySAdmin>[1],\n { companySlug, projectSlug }: Parameters<typeof patchUpdateProjectBySAdmin>[2],\n patch: Parameters<typeof patchUpdateProjectBySAdmin>[3],\n ) => ReturnType<typeof patchUpdateProjectBySAdmin>;\n };\n readonly property: {\n readonly properties: (\n accessToken: Parameters<typeof getProperties>[1],\n propertyQuery: Parameters<typeof getProperties>[2],\n ) => ReturnType<typeof getProperties>;\n readonly myProperties: (\n accessToken: Parameters<typeof getMyProperties>[1],\n propertyQuery: Parameters<typeof getMyProperties>[2],\n ) => ReturnType<typeof getMyProperties>;\n readonly myPropertyById: (\n accessToken: Parameters<typeof getMyPropertyById>[1],\n { propertyId }: Parameters<typeof getMyPropertyById>[2],\n ) => ReturnType<typeof getMyPropertyById>;\n readonly propertiesByAdmin: (\n accessToken: Parameters<typeof getPropertiesByAdmin>[1],\n propertyQuery: Parameters<typeof getPropertiesByAdmin>[2],\n ) => ReturnType<typeof getPropertiesByAdmin>;\n readonly propertiesByProjectByAdmin: (\n accessToken: Parameters<typeof getPropertiesByProjectByAdmin>[1],\n { projectSlug }: Parameters<typeof getPropertiesByProjectByAdmin>[2],\n propertyQuery: Parameters<typeof getPropertiesByProjectByAdmin>[3],\n ) => ReturnType<typeof getPropertiesByProjectByAdmin>;\n readonly propertyByProjectAndCodeByAdmin: (\n accessToken: Parameters<typeof getPropertyByProjectAndCodeByAdmin>[1],\n { projectSlug, propertyCode }: Parameters<typeof getPropertyByProjectAndCodeByAdmin>[2],\n ) => ReturnType<typeof getPropertyByProjectAndCodeByAdmin>;\n readonly propertiesByProject: (\n accessToken: Parameters<typeof getPropertiesByProject>[1],\n { companySlug, projectSlug }: Parameters<typeof getPropertiesByProject>[2],\n propertyQuery: Parameters<typeof getPropertiesByProject>[3],\n ) => ReturnType<typeof getPropertiesByProject>;\n readonly propertyByProjectAndCode: (\n accessToken: Parameters<typeof getPropertyByProjectAndCode>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof getPropertyByProjectAndCode>[2],\n ) => ReturnType<typeof getPropertyByProjectAndCode>;\n readonly createPropertyByAdmin: (\n accessToken: Parameters<typeof postCreatePropertyByAdmin>[1],\n { projectSlug }: Parameters<typeof postCreatePropertyByAdmin>[2],\n newPropertyRequest: Parameters<typeof postCreatePropertyByAdmin>[3],\n ) => ReturnType<typeof postCreatePropertyByAdmin>;\n readonly createPropertyBySAdmin: (\n accessToken: Parameters<typeof postCreatePropertyBySAdmin>[1],\n { companySlug, projectSlug }: Parameters<typeof postCreatePropertyBySAdmin>[2],\n newPropertyRequest: Parameters<typeof postCreatePropertyBySAdmin>[3],\n ) => ReturnType<typeof postCreatePropertyBySAdmin>;\n readonly updatePropertyByAdmin: (\n accessToken: Parameters<typeof patchUpdatePropertyByAdmin>[1],\n { projectSlug, propertyCode }: Parameters<typeof patchUpdatePropertyByAdmin>[2],\n patch: Parameters<typeof patchUpdatePropertyByAdmin>[3],\n ) => ReturnType<typeof patchUpdatePropertyByAdmin>;\n readonly updatePropertyBySAdmin: (\n accessToken: Parameters<typeof patchUpdatePropertyBySAdmin>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof patchUpdatePropertyBySAdmin>[2],\n patch: Parameters<typeof patchUpdatePropertyBySAdmin>[3],\n ) => ReturnType<typeof patchUpdatePropertyBySAdmin>;\n };\n}\n\n/**\n * Creates a typed API client backed by the provided HTTP implementation.\n */\nexport function createApiClient(options: CreateApiClientOptions): ApiClient {\n const { http } = options;\n\n return {\n healthCheck: () => fetchHealthCheck(http),\n auth: {\n register: (body) => postRegister(http, body),\n login: (body) => postLogin(http, body),\n getGoogleOAuthStart: (redirectUri) => getGoogleOAuthStart(http, redirectUri),\n postGoogleOAuthCallback: (body) => postGoogleOAuthCallback(http, body),\n refresh: (body) => postRefresh(http, body),\n logout: (body) => postLogout(http, body),\n me: (accessToken) => getMe(http, accessToken),\n },\n user: {\n users: (accessToken, userQuery) => getUsers(http, accessToken, userQuery),\n userById: (accessToken, { userId }) => getUserById(http, accessToken, { userId }),\n updateMe: (accessToken, patch) => patchUpdateMe(http, accessToken, patch),\n updateRoleUserByAdmin: (accessToken, { userId }, body) =>\n patchUpdateRoleUserByAdmin(http, accessToken, { userId }, body),\n updateUserBySAdmin: (accessToken, { userId }, patch) =>\n patchUpdateUserBySAdmin(http, accessToken, { userId }, patch),\n },\n company: {\n companies: (accessToken, companyQuery) => getCompanies(http, accessToken, companyQuery),\n myCompany: (accessToken) => getMyCompany(http, accessToken),\n companyById: (accessToken, { companyId }) => getCompanyById(http, accessToken, { companyId }),\n createCompany: (accessToken, newCompanyRequest) =>\n postCreateCompany(http, accessToken, newCompanyRequest),\n updateMyCompany: (accessToken, patch) => patchUpdateMyCompany(http, accessToken, patch),\n updateCompanyBySAdmin: (accessToken, { companyId }, patch) =>\n patchUpdateCompanyBySAdmin(http, accessToken, { companyId }, patch),\n },\n project: {\n projects: (accessToken, projectQuery) => getProjects(http, accessToken, projectQuery),\n myProjects: (accessToken, projectQuery) => getMyProjects(http, accessToken, projectQuery),\n myProjectBySlug: (accessToken, { projectSlug }) =>\n getMyProjectBySlug(http, accessToken, { projectSlug }),\n projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) =>\n getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),\n projectsByCompany: (accessToken, { companySlug }, projectQuery) =>\n getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),\n createProjectByAdmin: (accessToken, newProjectRequest) =>\n postCreateProjectByAdmin(http, accessToken, newProjectRequest),\n createProjectBySAdmin: (accessToken, { companySlug }, newProjectRequest) =>\n postCreateProjectBySAdmin(http, accessToken, { companySlug }, newProjectRequest),\n updateProjectByAdmin: (accessToken, { projectSlug }, patch) =>\n patchUpdateProjectByAdmin(http, accessToken, { projectSlug }, patch),\n updateProjectBySAdmin: (accessToken, { companySlug, projectSlug }, patch) =>\n patchUpdateProjectBySAdmin(http, accessToken, { companySlug, projectSlug }, patch),\n },\n property: {\n properties: (accessToken, propertyQuery) => getProperties(http, accessToken, propertyQuery),\n myProperties: (accessToken, propertyQuery) =>\n getMyProperties(http, accessToken, propertyQuery),\n myPropertyById: (accessToken, { propertyId }) =>\n getMyPropertyById(http, accessToken, { propertyId }),\n propertiesByAdmin: (accessToken, propertyQuery) =>\n getPropertiesByAdmin(http, accessToken, propertyQuery),\n propertiesByProjectByAdmin: (accessToken, { projectSlug }, propertyQuery) =>\n getPropertiesByProjectByAdmin(http, accessToken, { projectSlug }, propertyQuery),\n propertyByProjectAndCodeByAdmin: (accessToken, { projectSlug, propertyCode }) =>\n getPropertyByProjectAndCodeByAdmin(http, accessToken, { projectSlug, propertyCode }),\n propertiesByProject: (accessToken, { companySlug, projectSlug }, propertyQuery) =>\n getPropertiesByProject(http, accessToken, { companySlug, projectSlug }, propertyQuery),\n propertyByProjectAndCode: (accessToken, { companySlug, projectSlug, propertyCode }) =>\n getPropertyByProjectAndCode(http, accessToken, { companySlug, projectSlug, propertyCode }),\n createPropertyByAdmin: (accessToken, { projectSlug }, newPropertyRequest) =>\n postCreatePropertyByAdmin(http, accessToken, { projectSlug }, newPropertyRequest),\n createPropertyBySAdmin: (accessToken, { companySlug, projectSlug }, newPropertyRequest) =>\n postCreatePropertyBySAdmin(\n http,\n accessToken,\n { companySlug, projectSlug },\n newPropertyRequest,\n ),\n updatePropertyByAdmin: (accessToken, { projectSlug, propertyCode }, patch) =>\n patchUpdatePropertyByAdmin(http, accessToken, { projectSlug, propertyCode }, patch),\n updatePropertyBySAdmin: (accessToken, { companySlug, projectSlug, propertyCode }, patch) =>\n patchUpdatePropertyBySAdmin(\n http,\n accessToken,\n { companySlug, projectSlug, propertyCode },\n patch,\n ),\n },\n };\n}\n"]}