@kulkan/kulterra-api-client 1.3.3 → 1.3.4

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/CHANGELOG.md CHANGED
@@ -19,6 +19,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
 
20
20
  ### Security
21
21
 
22
+ ## [1.3.4] - 2026-08-29
23
+
24
+ ### ADD
25
+
26
+ - **User endpoints** (`src/endpoints/user.ts`): Added and implemented `updateSellerCommissionByAdmin` function
27
+
22
28
  ## [1.3.2] - 2026-08-05
23
29
 
24
30
  ### Changed
package/README.md CHANGED
@@ -58,13 +58,14 @@ All resource endpoints below require `Authorization: Bearer <accessToken>` unles
58
58
 
59
59
  ### User routes
60
60
 
61
- | HTTP | Path | Helper |
62
- | ------- | ------------------------ | --------------------------------- |
63
- | `GET` | `/api/v1/users` | `getUsers(...)` |
64
- | `GET` | `/api/v1/users/:userId` | `getUserById(...)` |
65
- | `PATCH` | `/api/v1/users/me` | `patchUpdateMe(...)` |
66
- | `PATCH` | `/api/v1/users/:id/role` | `patchUpdateUserRoleByAdmin(...)` |
67
- | `PATCH` | `/api/v1/users/:userId` | `patchUpdateUserBySAdmin(...)` |
61
+ | HTTP | Path | Helper |
62
+ | ------- | ------------------------------ | ----------------------------------------- |
63
+ | `GET` | `/api/v1/users` | `getUsers(...)` |
64
+ | `GET` | `/api/v1/users/:userId` | `getUserById(...)` |
65
+ | `PATCH` | `/api/v1/me` | `patchUpdateMe(...)` |
66
+ | `PATCH` | `/api/v1/users/:id/role` | `patchUpdateUserRoleByAdmin(...)` |
67
+ | `PATCH` | `/api/v1/users/:id/commission` | `patchUpdateSellerCommissionByAdmin(...)` |
68
+ | `PATCH` | `/api/v1/users/:userId` | `patchUpdateUserBySAdmin(...)` |
68
69
 
69
70
  ### Company routes
70
71
 
package/dist/index.d.mts CHANGED
@@ -33,6 +33,11 @@ declare function patchUpdateMe(http: HttpClient, accessToken: string, patch: Upd
33
33
  declare function patchUpdateUserRoleByAdmin(http: HttpClient, accessToken: string, { userId }: {
34
34
  userId: string;
35
35
  }, body: UpdateUserRoleByAdminRequest): Promise<void>;
36
+ declare function patchUpdateSellerCommissionByAdmin(http: HttpClient, accessToken: string, { userId }: {
37
+ userId: string;
38
+ }, { commissionPercentage }: {
39
+ commissionPercentage: number;
40
+ }): Promise<void>;
36
41
  declare function patchUpdateUserBySAdmin(http: HttpClient, accessToken: string, { userId }: {
37
42
  userId: string;
38
43
  }, patch: UpdateUserBySAdminRequest): Promise<void>;
@@ -111,6 +116,7 @@ interface ApiClient {
111
116
  readonly userById: (accessToken: Parameters<typeof getUserById>[1], { userId }: Parameters<typeof getUserById>[2]) => ReturnType<typeof getUserById>;
112
117
  readonly updateMe: (accessToken: Parameters<typeof patchUpdateMe>[1], patch: Parameters<typeof patchUpdateMe>[2]) => ReturnType<typeof patchUpdateMe>;
113
118
  readonly updateUserRoleByAdmin: (accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1], { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2], body: Parameters<typeof patchUpdateUserRoleByAdmin>[3]) => ReturnType<typeof patchUpdateUserRoleByAdmin>;
119
+ readonly updateSellerCommissionByAdmin: (accessToken: Parameters<typeof patchUpdateSellerCommissionByAdmin>[1], { userId }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[2], { commissionPercentage }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[3]) => ReturnType<typeof patchUpdateSellerCommissionByAdmin>;
114
120
  readonly updateUserBySAdmin: (accessToken: Parameters<typeof patchUpdateUserBySAdmin>[1], { userId }: Parameters<typeof patchUpdateUserBySAdmin>[2], patch: Parameters<typeof patchUpdateUserBySAdmin>[3]) => ReturnType<typeof patchUpdateUserBySAdmin>;
115
121
  };
116
122
  readonly company: {
package/dist/index.d.ts CHANGED
@@ -33,6 +33,11 @@ declare function patchUpdateMe(http: HttpClient, accessToken: string, patch: Upd
33
33
  declare function patchUpdateUserRoleByAdmin(http: HttpClient, accessToken: string, { userId }: {
34
34
  userId: string;
35
35
  }, body: UpdateUserRoleByAdminRequest): Promise<void>;
36
+ declare function patchUpdateSellerCommissionByAdmin(http: HttpClient, accessToken: string, { userId }: {
37
+ userId: string;
38
+ }, { commissionPercentage }: {
39
+ commissionPercentage: number;
40
+ }): Promise<void>;
36
41
  declare function patchUpdateUserBySAdmin(http: HttpClient, accessToken: string, { userId }: {
37
42
  userId: string;
38
43
  }, patch: UpdateUserBySAdminRequest): Promise<void>;
@@ -111,6 +116,7 @@ interface ApiClient {
111
116
  readonly userById: (accessToken: Parameters<typeof getUserById>[1], { userId }: Parameters<typeof getUserById>[2]) => ReturnType<typeof getUserById>;
112
117
  readonly updateMe: (accessToken: Parameters<typeof patchUpdateMe>[1], patch: Parameters<typeof patchUpdateMe>[2]) => ReturnType<typeof patchUpdateMe>;
113
118
  readonly updateUserRoleByAdmin: (accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1], { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2], body: Parameters<typeof patchUpdateUserRoleByAdmin>[3]) => ReturnType<typeof patchUpdateUserRoleByAdmin>;
119
+ readonly updateSellerCommissionByAdmin: (accessToken: Parameters<typeof patchUpdateSellerCommissionByAdmin>[1], { userId }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[2], { commissionPercentage }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[3]) => ReturnType<typeof patchUpdateSellerCommissionByAdmin>;
114
120
  readonly updateUserBySAdmin: (accessToken: Parameters<typeof patchUpdateUserBySAdmin>[1], { userId }: Parameters<typeof patchUpdateUserBySAdmin>[2], patch: Parameters<typeof patchUpdateUserBySAdmin>[3]) => ReturnType<typeof patchUpdateUserBySAdmin>;
115
121
  };
116
122
  readonly company: {
package/dist/index.js CHANGED
@@ -80,6 +80,15 @@ async function patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body) {
80
80
  headers: { Authorization: `Bearer ${accessToken}` }
81
81
  });
82
82
  }
83
+ async function patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }) {
84
+ await http.patch(
85
+ `${USER_BASE}/${userId}/commission`,
86
+ { commissionPercentage },
87
+ {
88
+ headers: { Authorization: `Bearer ${accessToken}` }
89
+ }
90
+ );
91
+ }
83
92
  async function patchUpdateUserBySAdmin(http, accessToken, { userId }, patch) {
84
93
  await http.patch(`${USER_BASE}/${userId}`, patch, {
85
94
  headers: { Authorization: `Bearer ${accessToken}` }
@@ -289,6 +298,7 @@ function createApiClient(options) {
289
298
  userById: (accessToken, { userId }) => getUserById(http, accessToken, { userId }),
290
299
  updateMe: (accessToken, patch) => patchUpdateMe(http, accessToken, patch),
291
300
  updateUserRoleByAdmin: (accessToken, { userId }, body) => patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body),
301
+ updateSellerCommissionByAdmin: (accessToken, { userId }, { commissionPercentage }) => patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }),
292
302
  updateUserBySAdmin: (accessToken, { userId }, patch) => patchUpdateUserBySAdmin(http, accessToken, { userId }, patch)
293
303
  },
294
304
  company: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/endpoints/health-check.ts","../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/company.ts","../src/endpoints/project.ts","../src/endpoints/property.ts","../src/create-api-client.ts"],"names":["API_BASE","COMPANY_BASE"],"mappings":"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","file":"index.js","sourcesContent":["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 AuthSessionResponse,\n GetMeResponse,\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<GetMeResponse>> {\n const { data } = await http.get<IApiResponse<GetMeResponse>>(`${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 API_BASE = '/api/v1' as const;\nconst USER_BASE = `${API_BASE}/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/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>(`${API_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 patchUpdateUserRoleByAdmin(\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 {\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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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/me/company — 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>>(`${API_BASE}/me/company`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanyBySlug(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n): Promise<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>>(\n `${COMPANY_BASE}/${companySlug}`,\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/me/company — 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>(`${API_BASE}/me/company`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/companies/:companyId — 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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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 >(`${API_BASE}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>>(\n `${API_BASE}/me/projects`,\n {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/projects/:projectId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjectById(\n http: HttpClient,\n accessToken: string,\n { projectId }: { projectId: string },\n): Promise<IApiResponse<OwnerProjectResponse>> {\n const { data } = await http.get<IApiResponse<OwnerProjectResponse>>(\n `${API_BASE}/me/projects/${projectId}`,\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 `${COMPANY_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 >(`${COMPANY_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/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProject(\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 `${COMPANY_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/:companySlug/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProject(\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 `${COMPANY_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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` 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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${API_BASE}/properties`, {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProperties(\n http: HttpClient,\n accessToken: string,\n query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>>(\n `${API_BASE}/me/properties`,\n {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/properties/: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 `${API_BASE}/me/properties/${propertyId}`,\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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties`, {\n params: query,\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProperty(\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProperty(\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 `${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\nimport {\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 patchUpdateUserBySAdmin,\n patchUpdateUserRoleByAdmin,\n} from './endpoints/user';\nimport {\n getCompanies,\n getCompanyBySlug,\n getMyCompany,\n patchUpdateCompanyBySAdmin,\n patchUpdateMyCompany,\n postCreateCompany,\n} from './endpoints/company';\nimport {\n getMyProjectById,\n getMyProjects,\n getProjectByCompanyAndSlug,\n getProjects,\n getProjectsByCompany,\n patchUpdateProject,\n postCreateProject,\n} from './endpoints/project';\nimport {\n getMyProperties,\n getMyPropertyById,\n getProperties,\n getPropertiesByProject,\n getPropertyByProjectAndCode,\n patchUpdateProperty,\n postCreateProperty,\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 * The HTTP implementation must support the methods used by this client,\n * including GET, POST, and PATCH.\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 updateUserRoleByAdmin: (\n accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2],\n body: Parameters<typeof patchUpdateUserRoleByAdmin>[3],\n ) => ReturnType<typeof patchUpdateUserRoleByAdmin>;\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 companyBySlug: (\n accessToken: Parameters<typeof getCompanyBySlug>[1],\n { companySlug }: Parameters<typeof getCompanyBySlug>[2],\n ) => ReturnType<typeof getCompanyBySlug>;\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 myProjectById: (\n accessToken: Parameters<typeof getMyProjectById>[1],\n { projectId }: Parameters<typeof getMyProjectById>[2],\n ) => ReturnType<typeof getMyProjectById>;\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 createProject: (\n accessToken: Parameters<typeof postCreateProject>[1],\n { companySlug }: Parameters<typeof postCreateProject>[2],\n newProjectRequest: Parameters<typeof postCreateProject>[3],\n ) => ReturnType<typeof postCreateProject>;\n readonly updateProject: (\n accessToken: Parameters<typeof patchUpdateProject>[1],\n { companySlug, projectSlug }: Parameters<typeof patchUpdateProject>[2],\n patch: Parameters<typeof patchUpdateProject>[3],\n ) => ReturnType<typeof patchUpdateProject>;\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 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 createProperty: (\n accessToken: Parameters<typeof postCreateProperty>[1],\n { companySlug, projectSlug }: Parameters<typeof postCreateProperty>[2],\n newPropertyRequest: Parameters<typeof postCreateProperty>[3],\n ) => ReturnType<typeof postCreateProperty>;\n readonly updateProperty: (\n accessToken: Parameters<typeof patchUpdateProperty>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof patchUpdateProperty>[2],\n patch: Parameters<typeof patchUpdateProperty>[3],\n ) => ReturnType<typeof patchUpdateProperty>;\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 updateUserRoleByAdmin: (accessToken, { userId }, body) =>\n patchUpdateUserRoleByAdmin(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 companyBySlug: (accessToken, { companySlug }) =>\n getCompanyBySlug(http, accessToken, { companySlug }),\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 myProjectById: (accessToken, { projectId }) =>\n getMyProjectById(http, accessToken, { projectId }),\n projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) =>\n getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),\n projectsByCompany: (accessToken, { companySlug }, projectQuery) =>\n getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),\n createProject: (accessToken, { companySlug }, newProjectRequest) =>\n postCreateProject(http, accessToken, { companySlug }, newProjectRequest),\n updateProject: (accessToken, { companySlug, projectSlug }, patch) =>\n patchUpdateProject(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 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 createProperty: (accessToken, { companySlug, projectSlug }, newPropertyRequest) =>\n postCreateProperty(http, accessToken, { companySlug, projectSlug }, newPropertyRequest),\n updateProperty: (accessToken, { companySlug, projectSlug, propertyCode }, patch) =>\n patchUpdateProperty(http, accessToken, { companySlug, projectSlug, propertyCode }, patch),\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/endpoints/health-check.ts","../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/company.ts","../src/endpoints/project.ts","../src/endpoints/property.ts","../src/create-api-client.ts"],"names":["API_BASE","COMPANY_BASE"],"mappings":"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","file":"index.js","sourcesContent":["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 AuthSessionResponse,\n GetMeResponse,\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<GetMeResponse>> {\n const { data } = await http.get<IApiResponse<GetMeResponse>>(`${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 API_BASE = '/api/v1' as const;\nconst USER_BASE = `${API_BASE}/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/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>(`${API_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 patchUpdateUserRoleByAdmin(\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/commission — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateSellerCommissionByAdmin(\n http: HttpClient,\n accessToken: string,\n { userId }: { userId: string },\n { commissionPercentage }: { commissionPercentage: number },\n): Promise<void> {\n await http.patch<void, { commissionPercentage: number }>(\n `${USER_BASE}/${userId}/commission`,\n { commissionPercentage },\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\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 {\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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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/me/company — 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>>(`${API_BASE}/me/company`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanyBySlug(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n): Promise<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>>(\n `${COMPANY_BASE}/${companySlug}`,\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/me/company — 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>(`${API_BASE}/me/company`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/companies/:companyId — 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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` as const;\n\n// GET\n\n/**\n * GET /api/v1/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 >(`${API_BASE}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>>(\n `${API_BASE}/me/projects`,\n {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/projects/:projectId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjectById(\n http: HttpClient,\n accessToken: string,\n { projectId }: { projectId: string },\n): Promise<IApiResponse<OwnerProjectResponse>> {\n const { data } = await http.get<IApiResponse<OwnerProjectResponse>>(\n `${API_BASE}/me/projects/${projectId}`,\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 `${COMPANY_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 >(`${COMPANY_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/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProject(\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 `${COMPANY_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/:companySlug/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProject(\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 `${COMPANY_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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` 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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${API_BASE}/properties`, {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProperties(\n http: HttpClient,\n accessToken: string,\n query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>>(\n `${API_BASE}/me/properties`,\n {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/properties/: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 `${API_BASE}/me/properties/${propertyId}`,\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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties`, {\n params: query,\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProperty(\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProperty(\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 `${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\nimport {\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 patchUpdateSellerCommissionByAdmin,\n patchUpdateUserBySAdmin,\n patchUpdateUserRoleByAdmin,\n} from './endpoints/user';\nimport {\n getCompanies,\n getCompanyBySlug,\n getMyCompany,\n patchUpdateCompanyBySAdmin,\n patchUpdateMyCompany,\n postCreateCompany,\n} from './endpoints/company';\nimport {\n getMyProjectById,\n getMyProjects,\n getProjectByCompanyAndSlug,\n getProjects,\n getProjectsByCompany,\n patchUpdateProject,\n postCreateProject,\n} from './endpoints/project';\nimport {\n getMyProperties,\n getMyPropertyById,\n getProperties,\n getPropertiesByProject,\n getPropertyByProjectAndCode,\n patchUpdateProperty,\n postCreateProperty,\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 * The HTTP implementation must support the methods used by this client,\n * including GET, POST, and PATCH.\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 updateUserRoleByAdmin: (\n accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2],\n body: Parameters<typeof patchUpdateUserRoleByAdmin>[3],\n ) => ReturnType<typeof patchUpdateUserRoleByAdmin>;\n readonly updateSellerCommissionByAdmin: (\n accessToken: Parameters<typeof patchUpdateSellerCommissionByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[2],\n { commissionPercentage }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[3],\n ) => ReturnType<typeof patchUpdateSellerCommissionByAdmin>;\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 companyBySlug: (\n accessToken: Parameters<typeof getCompanyBySlug>[1],\n { companySlug }: Parameters<typeof getCompanyBySlug>[2],\n ) => ReturnType<typeof getCompanyBySlug>;\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 myProjectById: (\n accessToken: Parameters<typeof getMyProjectById>[1],\n { projectId }: Parameters<typeof getMyProjectById>[2],\n ) => ReturnType<typeof getMyProjectById>;\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 createProject: (\n accessToken: Parameters<typeof postCreateProject>[1],\n { companySlug }: Parameters<typeof postCreateProject>[2],\n newProjectRequest: Parameters<typeof postCreateProject>[3],\n ) => ReturnType<typeof postCreateProject>;\n readonly updateProject: (\n accessToken: Parameters<typeof patchUpdateProject>[1],\n { companySlug, projectSlug }: Parameters<typeof patchUpdateProject>[2],\n patch: Parameters<typeof patchUpdateProject>[3],\n ) => ReturnType<typeof patchUpdateProject>;\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 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 createProperty: (\n accessToken: Parameters<typeof postCreateProperty>[1],\n { companySlug, projectSlug }: Parameters<typeof postCreateProperty>[2],\n newPropertyRequest: Parameters<typeof postCreateProperty>[3],\n ) => ReturnType<typeof postCreateProperty>;\n readonly updateProperty: (\n accessToken: Parameters<typeof patchUpdateProperty>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof patchUpdateProperty>[2],\n patch: Parameters<typeof patchUpdateProperty>[3],\n ) => ReturnType<typeof patchUpdateProperty>;\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 updateUserRoleByAdmin: (accessToken, { userId }, body) =>\n patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body),\n updateSellerCommissionByAdmin: (accessToken, { userId }, { commissionPercentage }) =>\n patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }),\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 companyBySlug: (accessToken, { companySlug }) =>\n getCompanyBySlug(http, accessToken, { companySlug }),\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 myProjectById: (accessToken, { projectId }) =>\n getMyProjectById(http, accessToken, { projectId }),\n projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) =>\n getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),\n projectsByCompany: (accessToken, { companySlug }, projectQuery) =>\n getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),\n createProject: (accessToken, { companySlug }, newProjectRequest) =>\n postCreateProject(http, accessToken, { companySlug }, newProjectRequest),\n updateProject: (accessToken, { companySlug, projectSlug }, patch) =>\n patchUpdateProject(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 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 createProperty: (accessToken, { companySlug, projectSlug }, newPropertyRequest) =>\n postCreateProperty(http, accessToken, { companySlug, projectSlug }, newPropertyRequest),\n updateProperty: (accessToken, { companySlug, projectSlug, propertyCode }, patch) =>\n patchUpdateProperty(http, accessToken, { companySlug, projectSlug, propertyCode }, patch),\n },\n };\n}\n"]}
package/dist/index.mjs CHANGED
@@ -78,6 +78,15 @@ async function patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body) {
78
78
  headers: { Authorization: `Bearer ${accessToken}` }
79
79
  });
80
80
  }
81
+ async function patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }) {
82
+ await http.patch(
83
+ `${USER_BASE}/${userId}/commission`,
84
+ { commissionPercentage },
85
+ {
86
+ headers: { Authorization: `Bearer ${accessToken}` }
87
+ }
88
+ );
89
+ }
81
90
  async function patchUpdateUserBySAdmin(http, accessToken, { userId }, patch) {
82
91
  await http.patch(`${USER_BASE}/${userId}`, patch, {
83
92
  headers: { Authorization: `Bearer ${accessToken}` }
@@ -287,6 +296,7 @@ function createApiClient(options) {
287
296
  userById: (accessToken, { userId }) => getUserById(http, accessToken, { userId }),
288
297
  updateMe: (accessToken, patch) => patchUpdateMe(http, accessToken, patch),
289
298
  updateUserRoleByAdmin: (accessToken, { userId }, body) => patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body),
299
+ updateSellerCommissionByAdmin: (accessToken, { userId }, { commissionPercentage }) => patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }),
290
300
  updateUserBySAdmin: (accessToken, { userId }, patch) => patchUpdateUserBySAdmin(http, accessToken, { userId }, patch)
291
301
  },
292
302
  company: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/endpoints/health-check.ts","../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/company.ts","../src/endpoints/project.ts","../src/endpoints/property.ts","../src/create-api-client.ts"],"names":["API_BASE","COMPANY_BASE"],"mappings":"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","file":"index.mjs","sourcesContent":["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 AuthSessionResponse,\n GetMeResponse,\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<GetMeResponse>> {\n const { data } = await http.get<IApiResponse<GetMeResponse>>(`${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 API_BASE = '/api/v1' as const;\nconst USER_BASE = `${API_BASE}/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/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>(`${API_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 patchUpdateUserRoleByAdmin(\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 {\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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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/me/company — 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>>(`${API_BASE}/me/company`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanyBySlug(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n): Promise<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>>(\n `${COMPANY_BASE}/${companySlug}`,\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/me/company — 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>(`${API_BASE}/me/company`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/companies/:companyId — 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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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 >(`${API_BASE}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>>(\n `${API_BASE}/me/projects`,\n {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/projects/:projectId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjectById(\n http: HttpClient,\n accessToken: string,\n { projectId }: { projectId: string },\n): Promise<IApiResponse<OwnerProjectResponse>> {\n const { data } = await http.get<IApiResponse<OwnerProjectResponse>>(\n `${API_BASE}/me/projects/${projectId}`,\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 `${COMPANY_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 >(`${COMPANY_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/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProject(\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 `${COMPANY_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/:companySlug/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProject(\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 `${COMPANY_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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` 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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${API_BASE}/properties`, {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProperties(\n http: HttpClient,\n accessToken: string,\n query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>>(\n `${API_BASE}/me/properties`,\n {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/properties/: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 `${API_BASE}/me/properties/${propertyId}`,\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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties`, {\n params: query,\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProperty(\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProperty(\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 `${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\nimport {\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 patchUpdateUserBySAdmin,\n patchUpdateUserRoleByAdmin,\n} from './endpoints/user';\nimport {\n getCompanies,\n getCompanyBySlug,\n getMyCompany,\n patchUpdateCompanyBySAdmin,\n patchUpdateMyCompany,\n postCreateCompany,\n} from './endpoints/company';\nimport {\n getMyProjectById,\n getMyProjects,\n getProjectByCompanyAndSlug,\n getProjects,\n getProjectsByCompany,\n patchUpdateProject,\n postCreateProject,\n} from './endpoints/project';\nimport {\n getMyProperties,\n getMyPropertyById,\n getProperties,\n getPropertiesByProject,\n getPropertyByProjectAndCode,\n patchUpdateProperty,\n postCreateProperty,\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 * The HTTP implementation must support the methods used by this client,\n * including GET, POST, and PATCH.\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 updateUserRoleByAdmin: (\n accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2],\n body: Parameters<typeof patchUpdateUserRoleByAdmin>[3],\n ) => ReturnType<typeof patchUpdateUserRoleByAdmin>;\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 companyBySlug: (\n accessToken: Parameters<typeof getCompanyBySlug>[1],\n { companySlug }: Parameters<typeof getCompanyBySlug>[2],\n ) => ReturnType<typeof getCompanyBySlug>;\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 myProjectById: (\n accessToken: Parameters<typeof getMyProjectById>[1],\n { projectId }: Parameters<typeof getMyProjectById>[2],\n ) => ReturnType<typeof getMyProjectById>;\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 createProject: (\n accessToken: Parameters<typeof postCreateProject>[1],\n { companySlug }: Parameters<typeof postCreateProject>[2],\n newProjectRequest: Parameters<typeof postCreateProject>[3],\n ) => ReturnType<typeof postCreateProject>;\n readonly updateProject: (\n accessToken: Parameters<typeof patchUpdateProject>[1],\n { companySlug, projectSlug }: Parameters<typeof patchUpdateProject>[2],\n patch: Parameters<typeof patchUpdateProject>[3],\n ) => ReturnType<typeof patchUpdateProject>;\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 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 createProperty: (\n accessToken: Parameters<typeof postCreateProperty>[1],\n { companySlug, projectSlug }: Parameters<typeof postCreateProperty>[2],\n newPropertyRequest: Parameters<typeof postCreateProperty>[3],\n ) => ReturnType<typeof postCreateProperty>;\n readonly updateProperty: (\n accessToken: Parameters<typeof patchUpdateProperty>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof patchUpdateProperty>[2],\n patch: Parameters<typeof patchUpdateProperty>[3],\n ) => ReturnType<typeof patchUpdateProperty>;\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 updateUserRoleByAdmin: (accessToken, { userId }, body) =>\n patchUpdateUserRoleByAdmin(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 companyBySlug: (accessToken, { companySlug }) =>\n getCompanyBySlug(http, accessToken, { companySlug }),\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 myProjectById: (accessToken, { projectId }) =>\n getMyProjectById(http, accessToken, { projectId }),\n projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) =>\n getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),\n projectsByCompany: (accessToken, { companySlug }, projectQuery) =>\n getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),\n createProject: (accessToken, { companySlug }, newProjectRequest) =>\n postCreateProject(http, accessToken, { companySlug }, newProjectRequest),\n updateProject: (accessToken, { companySlug, projectSlug }, patch) =>\n patchUpdateProject(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 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 createProperty: (accessToken, { companySlug, projectSlug }, newPropertyRequest) =>\n postCreateProperty(http, accessToken, { companySlug, projectSlug }, newPropertyRequest),\n updateProperty: (accessToken, { companySlug, projectSlug, propertyCode }, patch) =>\n patchUpdateProperty(http, accessToken, { companySlug, projectSlug, propertyCode }, patch),\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/endpoints/health-check.ts","../src/endpoints/auth.ts","../src/endpoints/user.ts","../src/endpoints/company.ts","../src/endpoints/project.ts","../src/endpoints/property.ts","../src/create-api-client.ts"],"names":["API_BASE","COMPANY_BASE"],"mappings":"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","file":"index.mjs","sourcesContent":["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 AuthSessionResponse,\n GetMeResponse,\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<GetMeResponse>> {\n const { data } = await http.get<IApiResponse<GetMeResponse>>(`${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 API_BASE = '/api/v1' as const;\nconst USER_BASE = `${API_BASE}/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/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>(`${API_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 patchUpdateUserRoleByAdmin(\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/commission — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateSellerCommissionByAdmin(\n http: HttpClient,\n accessToken: string,\n { userId }: { userId: string },\n { commissionPercentage }: { commissionPercentage: number },\n): Promise<void> {\n await http.patch<void, { commissionPercentage: number }>(\n `${USER_BASE}/${userId}/commission`,\n { commissionPercentage },\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\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 {\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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/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/me/company — 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>>(`${API_BASE}/me/company`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/companies/:companySlug — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getCompanyBySlug(\n http: HttpClient,\n accessToken: string,\n { companySlug }: { companySlug: string },\n): Promise<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>> {\n const { data } = await http.get<IApiResponse<PublicCompanyResponse | SAdminCompanyResponse>>(\n `${COMPANY_BASE}/${companySlug}`,\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/me/company — 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>(`${API_BASE}/me/company`, patch, {\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n}\n\n/**\n * PATCH /api/v1/companies/:companyId — 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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` as const;\n\n// GET\n\n/**\n * GET /api/v1/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 >(`${API_BASE}/projects`, {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjects(\n http: HttpClient,\n accessToken: string,\n projectQuery: GetProjectsQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<OwnerProjectResponse>>>(\n `${API_BASE}/me/projects`,\n {\n params: projectQuery,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/projects/:projectId — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProjectById(\n http: HttpClient,\n accessToken: string,\n { projectId }: { projectId: string },\n): Promise<IApiResponse<OwnerProjectResponse>> {\n const { data } = await http.get<IApiResponse<OwnerProjectResponse>>(\n `${API_BASE}/me/projects/${projectId}`,\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 `${COMPANY_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 >(`${COMPANY_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/:companySlug/projects — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProject(\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 `${COMPANY_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/:companySlug/projects/:projectSlug — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProject(\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 `${COMPANY_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 API_BASE = '/api/v1' as const;\nconst COMPANY_BASE = `${API_BASE}/companies` 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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${API_BASE}/properties`, {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n });\n return data;\n}\n\n/**\n * GET /api/v1/me/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function getMyProperties(\n http: HttpClient,\n accessToken: string,\n query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>> {\n const { data } = await http.get<IApiResponse<IPaginatedByTokenResponse<BuyerPropertyResponse>>>(\n `${API_BASE}/me/properties`,\n {\n params: query,\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n return data;\n}\n\n/**\n * GET /api/v1/me/properties/: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 `${API_BASE}/me/properties/${propertyId}`,\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 query: GetPropertiesQueryByTokenRequest,\n): Promise<IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>> {\n const { data } = await http.get<\n IApiResponse<IPaginatedByTokenResponse<PropertyResponse | PublicPropertyResponse>>\n >(`${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties`, {\n params: query,\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function postCreateProperty(\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 `${COMPANY_BASE}/${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/:companySlug/projects/:projectSlug/properties/:propertyCode — 204 No Content (no JSON body) — requires `Authorization: Bearer <accessToken>`.\n */\nexport async function patchUpdateProperty(\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 `${COMPANY_BASE}/${companySlug}/projects/${projectSlug}/properties/${propertyCode}`,\n patch,\n {\n headers: { Authorization: `Bearer ${accessToken}` },\n },\n );\n}\n","import { fetchHealthCheck } from './endpoints/health-check';\nimport type { HttpClient } from './http-client';\nimport {\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 patchUpdateSellerCommissionByAdmin,\n patchUpdateUserBySAdmin,\n patchUpdateUserRoleByAdmin,\n} from './endpoints/user';\nimport {\n getCompanies,\n getCompanyBySlug,\n getMyCompany,\n patchUpdateCompanyBySAdmin,\n patchUpdateMyCompany,\n postCreateCompany,\n} from './endpoints/company';\nimport {\n getMyProjectById,\n getMyProjects,\n getProjectByCompanyAndSlug,\n getProjects,\n getProjectsByCompany,\n patchUpdateProject,\n postCreateProject,\n} from './endpoints/project';\nimport {\n getMyProperties,\n getMyPropertyById,\n getProperties,\n getPropertiesByProject,\n getPropertyByProjectAndCode,\n patchUpdateProperty,\n postCreateProperty,\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 * The HTTP implementation must support the methods used by this client,\n * including GET, POST, and PATCH.\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 updateUserRoleByAdmin: (\n accessToken: Parameters<typeof patchUpdateUserRoleByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateUserRoleByAdmin>[2],\n body: Parameters<typeof patchUpdateUserRoleByAdmin>[3],\n ) => ReturnType<typeof patchUpdateUserRoleByAdmin>;\n readonly updateSellerCommissionByAdmin: (\n accessToken: Parameters<typeof patchUpdateSellerCommissionByAdmin>[1],\n { userId }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[2],\n { commissionPercentage }: Parameters<typeof patchUpdateSellerCommissionByAdmin>[3],\n ) => ReturnType<typeof patchUpdateSellerCommissionByAdmin>;\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 companyBySlug: (\n accessToken: Parameters<typeof getCompanyBySlug>[1],\n { companySlug }: Parameters<typeof getCompanyBySlug>[2],\n ) => ReturnType<typeof getCompanyBySlug>;\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 myProjectById: (\n accessToken: Parameters<typeof getMyProjectById>[1],\n { projectId }: Parameters<typeof getMyProjectById>[2],\n ) => ReturnType<typeof getMyProjectById>;\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 createProject: (\n accessToken: Parameters<typeof postCreateProject>[1],\n { companySlug }: Parameters<typeof postCreateProject>[2],\n newProjectRequest: Parameters<typeof postCreateProject>[3],\n ) => ReturnType<typeof postCreateProject>;\n readonly updateProject: (\n accessToken: Parameters<typeof patchUpdateProject>[1],\n { companySlug, projectSlug }: Parameters<typeof patchUpdateProject>[2],\n patch: Parameters<typeof patchUpdateProject>[3],\n ) => ReturnType<typeof patchUpdateProject>;\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 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 createProperty: (\n accessToken: Parameters<typeof postCreateProperty>[1],\n { companySlug, projectSlug }: Parameters<typeof postCreateProperty>[2],\n newPropertyRequest: Parameters<typeof postCreateProperty>[3],\n ) => ReturnType<typeof postCreateProperty>;\n readonly updateProperty: (\n accessToken: Parameters<typeof patchUpdateProperty>[1],\n { companySlug, projectSlug, propertyCode }: Parameters<typeof patchUpdateProperty>[2],\n patch: Parameters<typeof patchUpdateProperty>[3],\n ) => ReturnType<typeof patchUpdateProperty>;\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 updateUserRoleByAdmin: (accessToken, { userId }, body) =>\n patchUpdateUserRoleByAdmin(http, accessToken, { userId }, body),\n updateSellerCommissionByAdmin: (accessToken, { userId }, { commissionPercentage }) =>\n patchUpdateSellerCommissionByAdmin(http, accessToken, { userId }, { commissionPercentage }),\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 companyBySlug: (accessToken, { companySlug }) =>\n getCompanyBySlug(http, accessToken, { companySlug }),\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 myProjectById: (accessToken, { projectId }) =>\n getMyProjectById(http, accessToken, { projectId }),\n projectByCompanyAndSlug: (accessToken, { companySlug, projectSlug }) =>\n getProjectByCompanyAndSlug(http, accessToken, { companySlug, projectSlug }),\n projectsByCompany: (accessToken, { companySlug }, projectQuery) =>\n getProjectsByCompany(http, accessToken, { companySlug }, projectQuery),\n createProject: (accessToken, { companySlug }, newProjectRequest) =>\n postCreateProject(http, accessToken, { companySlug }, newProjectRequest),\n updateProject: (accessToken, { companySlug, projectSlug }, patch) =>\n patchUpdateProject(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 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 createProperty: (accessToken, { companySlug, projectSlug }, newPropertyRequest) =>\n postCreateProperty(http, accessToken, { companySlug, projectSlug }, newPropertyRequest),\n updateProperty: (accessToken, { companySlug, projectSlug, propertyCode }, patch) =>\n patchUpdateProperty(http, accessToken, { companySlug, projectSlug, propertyCode }, patch),\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kulkan/kulterra-api-client",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "Client used to interact with KulTerra project API",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -38,7 +38,7 @@
38
38
  "author": "",
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
- "@kulkan/kulterra-contracts": "2.1.7",
41
+ "@kulkan/kulterra-contracts": "2.1.11",
42
42
  "@eslint/js": "^10.0.1",
43
43
  "@types/express": "^5.0.5",
44
44
  "@types/node": "^24.10.0",