@nexys/user-management-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +81 -0
  2. package/dist/endpoint.d.ts +51 -0
  3. package/dist/endpoint.d.ts.map +1 -0
  4. package/dist/endpoint.js +65 -0
  5. package/dist/endpoint.js.map +1 -0
  6. package/dist/endpoints/admin-audit.d.ts +38 -0
  7. package/dist/endpoints/admin-audit.d.ts.map +1 -0
  8. package/dist/endpoints/admin-audit.js +17 -0
  9. package/dist/endpoints/admin-audit.js.map +1 -0
  10. package/dist/endpoints/admin-keys.d.ts +23 -0
  11. package/dist/endpoints/admin-keys.d.ts.map +1 -0
  12. package/dist/endpoints/admin-keys.js +20 -0
  13. package/dist/endpoints/admin-keys.js.map +1 -0
  14. package/dist/endpoints/admin-users.d.ts +56 -0
  15. package/dist/endpoints/admin-users.d.ts.map +1 -0
  16. package/dist/endpoints/admin-users.js +60 -0
  17. package/dist/endpoints/admin-users.js.map +1 -0
  18. package/dist/endpoints/auth.d.ts +93 -0
  19. package/dist/endpoints/auth.d.ts.map +1 -0
  20. package/dist/endpoints/auth.js +82 -0
  21. package/dist/endpoints/auth.js.map +1 -0
  22. package/dist/endpoints/health.d.ts +33 -0
  23. package/dist/endpoints/health.d.ts.map +1 -0
  24. package/dist/endpoints/health.js +20 -0
  25. package/dist/endpoints/health.js.map +1 -0
  26. package/dist/endpoints/index.d.ts +9 -0
  27. package/dist/endpoints/index.d.ts.map +1 -0
  28. package/dist/endpoints/index.js +9 -0
  29. package/dist/endpoints/index.js.map +1 -0
  30. package/dist/endpoints/me.d.ts +17 -0
  31. package/dist/endpoints/me.d.ts.map +1 -0
  32. package/dist/endpoints/me.js +35 -0
  33. package/dist/endpoints/me.js.map +1 -0
  34. package/dist/endpoints/refresh-tokens.d.ts +13 -0
  35. package/dist/endpoints/refresh-tokens.d.ts.map +1 -0
  36. package/dist/endpoints/refresh-tokens.js +20 -0
  37. package/dist/endpoints/refresh-tokens.js.map +1 -0
  38. package/dist/endpoints/tenants.d.ts +184 -0
  39. package/dist/endpoints/tenants.d.ts.map +1 -0
  40. package/dist/endpoints/tenants.js +182 -0
  41. package/dist/endpoints/tenants.js.map +1 -0
  42. package/dist/index.d.ts +5 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +6 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/result.d.ts +36 -0
  47. package/dist/result.d.ts.map +1 -0
  48. package/dist/result.js +21 -0
  49. package/dist/result.js.map +1 -0
  50. package/dist/types.d.ts +179 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +7 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +26 -0
@@ -0,0 +1,33 @@
1
+ import type { Endpoint } from "../endpoint.js";
2
+ import type { ApiError } from "../result.js";
3
+ export declare const health: Endpoint<void, {
4
+ ok: boolean;
5
+ }, ApiError>;
6
+ export interface AuthHealth {
7
+ ok: boolean;
8
+ /** Server crate version (Cargo `version`) — baked in at compile time. */
9
+ version: string;
10
+ /** UTC ISO-8601 build timestamp seeded by CI via `BUILD_DATE`;
11
+ * `"unknown"` outside CI. */
12
+ date: string;
13
+ /** Build commit SHA. `null` in dev builds where `GIT_SHA` was unset. */
14
+ sha: string | null;
15
+ /** Release tag, set only on tagged builds. */
16
+ tag: string | null;
17
+ startedAt: string;
18
+ uptimeSeconds: number;
19
+ }
20
+ export declare const authHealth: Endpoint<void, AuthHealth, ApiError>;
21
+ export interface JwksKey {
22
+ kid: string;
23
+ kty: string;
24
+ use?: string;
25
+ alg?: string;
26
+ crv?: string;
27
+ x?: string;
28
+ [k: string]: unknown;
29
+ }
30
+ export declare const jwks: Endpoint<void, {
31
+ keys: JwksKey[];
32
+ }, ApiError>;
33
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/endpoints/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,QAAQ,CAK5D,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB;kCAC8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAK3D,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,EAAE,QAAQ,CAK9D,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { parseApiError } from "../result.js";
2
+ export const health = {
3
+ method: "GET",
4
+ path: () => "/health",
5
+ parseOutput: (data) => data,
6
+ parseError: parseApiError,
7
+ };
8
+ export const authHealth = {
9
+ method: "GET",
10
+ path: () => "/api/auth/health",
11
+ parseOutput: (data) => data,
12
+ parseError: parseApiError,
13
+ };
14
+ export const jwks = {
15
+ method: "GET",
16
+ path: () => "/api/auth/jwks",
17
+ parseOutput: (data) => data,
18
+ parseError: parseApiError,
19
+ };
20
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/endpoints/health.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,MAAM,GAA8C;IAC/D,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAuB;IAC9C,UAAU,EAAE,aAAa;CAC1B,CAAC;AAiBF,MAAM,CAAC,MAAM,UAAU,GAAyC;IAC9D,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,kBAAkB;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAkB;IACzC,UAAU,EAAE,aAAa;CAC1B,CAAC;AAaF,MAAM,CAAC,MAAM,IAAI,GAAkD;IACjE,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAA2B;IAClD,UAAU,EAAE,aAAa;CAC1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from "./auth.js";
2
+ export * from "./me.js";
3
+ export * from "./refresh-tokens.js";
4
+ export * from "./admin-users.js";
5
+ export * from "./admin-audit.js";
6
+ export * from "./admin-keys.js";
7
+ export * from "./health.js";
8
+ export * from "./tenants.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from "./auth.js";
2
+ export * from "./me.js";
3
+ export * from "./refresh-tokens.js";
4
+ export * from "./admin-users.js";
5
+ export * from "./admin-audit.js";
6
+ export * from "./admin-keys.js";
7
+ export * from "./health.js";
8
+ export * from "./tenants.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Endpoint } from "../endpoint.js";
2
+ import type { ApiError } from "../result.js";
3
+ import type { MeResponse, TokenMintResponse, TokenRefreshResponse } from "../types.js";
4
+ export declare const me: Endpoint<void, MeResponse, ApiError>;
5
+ export declare const updateProfile: Endpoint<{
6
+ name?: string;
7
+ image?: string | null;
8
+ }, {
9
+ ok: true;
10
+ }, ApiError>;
11
+ export declare const mintToken: Endpoint<void, TokenMintResponse, ApiError>;
12
+ export declare const refreshToken: Endpoint<{
13
+ refreshToken: string;
14
+ }, TokenRefreshResponse, ApiError>;
15
+ /** Cookie-based refresh — no body needed, the httpOnly cookie carries the token. */
16
+ export declare const refreshViaCookie: Endpoint<void, TokenRefreshResponse, ApiError>;
17
+ //# sourceMappingURL=me.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../src/endpoints/me.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAKnD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAClC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACxC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,EACZ,QAAQ,CAOT,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAKjE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EACxB,oBAAoB,EACpB,QAAQ,CAOT,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAMzE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { parseApiError } from "../result.js";
2
+ export const me = {
3
+ method: "GET",
4
+ path: () => "/api/me",
5
+ parseOutput: (data) => data,
6
+ parseError: parseApiError,
7
+ };
8
+ export const updateProfile = {
9
+ method: "PATCH",
10
+ path: () => "/api/me",
11
+ body: (input) => input,
12
+ parseOutput: () => ({ ok: true }),
13
+ parseError: parseApiError,
14
+ };
15
+ export const mintToken = {
16
+ method: "GET",
17
+ path: () => "/api/auth/token",
18
+ parseOutput: (data) => data,
19
+ parseError: parseApiError,
20
+ };
21
+ export const refreshToken = {
22
+ method: "POST",
23
+ path: () => "/api/auth/refresh",
24
+ body: (input) => input,
25
+ parseOutput: (data) => data,
26
+ parseError: parseApiError,
27
+ };
28
+ /** Cookie-based refresh — no body needed, the httpOnly cookie carries the token. */
29
+ export const refreshViaCookie = {
30
+ method: "POST",
31
+ path: () => "/api/auth/refresh",
32
+ parseOutput: (data) => data,
33
+ parseError: parseApiError,
34
+ };
35
+ //# sourceMappingURL=me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/endpoints/me.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO7C,MAAM,CAAC,MAAM,EAAE,GAAyC;IACtD,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAkB;IACzC,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAItB;IACF,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACjC,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAgD;IACpE,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,iBAAiB;IAC7B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAyB;IAChD,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAIrB;IACF,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,GAAG,EAAE,CAAC,mBAAmB;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACtB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAA4B;IACnD,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAC3B;IACE,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,GAAG,EAAE,CAAC,mBAAmB;IAC/B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAA4B;IACnD,UAAU,EAAE,aAAa;CAC1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Endpoint } from "../endpoint.js";
2
+ import type { ApiError } from "../result.js";
3
+ import type { RefreshToken } from "../types.js";
4
+ export declare const listRefreshTokens: Endpoint<void, RefreshToken[], ApiError>;
5
+ export declare const revokeRefreshToken: Endpoint<{
6
+ id: string;
7
+ }, {
8
+ ok: true;
9
+ }, ApiError>;
10
+ export declare const revokeAllRefreshTokens: Endpoint<void, {
11
+ revoked: number;
12
+ }, ApiError>;
13
+ //# sourceMappingURL=refresh-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-tokens.d.ts","sourceRoot":"","sources":["../../src/endpoints/refresh-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,CAKtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,EAAE,QAAQ,CAK/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,CAKhF,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { parseApiError } from "../result.js";
2
+ export const listRefreshTokens = {
3
+ method: "GET",
4
+ path: () => "/api/me/refresh-tokens",
5
+ parseOutput: (data) => (data ?? []),
6
+ parseError: parseApiError,
7
+ };
8
+ export const revokeRefreshToken = {
9
+ method: "DELETE",
10
+ path: ({ id }) => `/api/me/refresh-tokens/${encodeURIComponent(id)}`,
11
+ parseOutput: () => ({ ok: true }),
12
+ parseError: parseApiError,
13
+ };
14
+ export const revokeAllRefreshTokens = {
15
+ method: "DELETE",
16
+ path: () => "/api/me/refresh-tokens",
17
+ parseOutput: (data) => (data ?? { revoked: 0 }),
18
+ parseError: parseApiError,
19
+ };
20
+ //# sourceMappingURL=refresh-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-tokens.js","sourceRoot":"","sources":["../../src/endpoints/refresh-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,iBAAiB,GAA6C;IACzE,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB;IACpC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAmB;IACrD,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAqD;IAClF,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE;IACpE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACjC,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAkD;IACnF,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB;IACpC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAwB;IACtE,UAAU,EAAE,aAAa;CAC1B,CAAC"}
@@ -0,0 +1,184 @@
1
+ import type { Endpoint } from "../endpoint.js";
2
+ import type { ApiError } from "../result.js";
3
+ import type { FullOrganization, Invitation, MemberDetail, MyTenant, RoleRow, TenantRole, TenantRow, UserStatus } from "../types.js";
4
+ export type CheckTenantResponse = {
5
+ exists: false;
6
+ } | {
7
+ exists: true;
8
+ id: string;
9
+ name: string;
10
+ slug: string;
11
+ };
12
+ /** Public — no auth required. Check if a tenant exists by slug/name. */
13
+ export declare const checkTenant: Endpoint<{
14
+ name: string;
15
+ }, CheckTenantResponse, ApiError>;
16
+ export declare const listMyTenants: Endpoint<void, {
17
+ tenants: MyTenant[];
18
+ }, ApiError>;
19
+ export declare const adminListTenants: Endpoint<void, {
20
+ tenants: TenantRow[];
21
+ }, ApiError>;
22
+ export declare const createTenant: Endpoint<{
23
+ name: string;
24
+ slug?: string;
25
+ }, TenantRow, ApiError>;
26
+ export declare const setActiveTenant: Endpoint<{
27
+ organizationId: string | null;
28
+ }, {
29
+ session: {
30
+ activeOrganizationId: string | null;
31
+ };
32
+ }, ApiError>;
33
+ export declare const getFullTenant: Endpoint<{
34
+ organizationId?: string;
35
+ }, FullOrganization, ApiError>;
36
+ export declare const inviteMember: Endpoint<{
37
+ email: string;
38
+ role: TenantRole;
39
+ organizationId: string;
40
+ }, Invitation, ApiError>;
41
+ export declare const acceptInvitation: Endpoint<{
42
+ invitationId: string;
43
+ }, {
44
+ memberId: string;
45
+ organizationId: string;
46
+ role: TenantRole;
47
+ }, ApiError>;
48
+ export declare const updateMemberRole: Endpoint<{
49
+ memberId: string;
50
+ role: TenantRole;
51
+ organizationId: string;
52
+ }, {
53
+ ok: true;
54
+ }, ApiError>;
55
+ export declare const removeMember: Endpoint<{
56
+ memberId: string;
57
+ organizationId: string;
58
+ }, {
59
+ ok: true;
60
+ }, ApiError>;
61
+ export declare const adminDeleteTenant: Endpoint<{
62
+ id: string;
63
+ }, {
64
+ ok: true;
65
+ }, ApiError>;
66
+ export declare const deleteTenant: Endpoint<{
67
+ id: string;
68
+ }, {
69
+ ok: true;
70
+ }, ApiError>;
71
+ export declare const listTenantRoles: Endpoint<{
72
+ orgId: string;
73
+ }, {
74
+ roles: RoleRow[];
75
+ }, ApiError>;
76
+ export declare const createTenantRole: Endpoint<{
77
+ orgId: string;
78
+ name: string;
79
+ description?: string;
80
+ }, RoleRow, ApiError>;
81
+ export declare const deleteTenantRole: Endpoint<{
82
+ orgId: string;
83
+ roleId: string;
84
+ }, {
85
+ ok: true;
86
+ }, ApiError>;
87
+ export declare const addTenantMember: Endpoint<{
88
+ orgId: string;
89
+ email: string;
90
+ role?: TenantRole;
91
+ }, {
92
+ id: string;
93
+ userId: string;
94
+ email: string;
95
+ name: string;
96
+ role: TenantRole;
97
+ }, ApiError>;
98
+ export declare const getTenantMember: Endpoint<{
99
+ orgId: string;
100
+ userId: string;
101
+ }, MemberDetail, ApiError>;
102
+ export declare const getTenantMemberRoles: Endpoint<{
103
+ orgId: string;
104
+ userId: string;
105
+ }, {
106
+ roles: RoleRow[];
107
+ }, ApiError>;
108
+ export declare const getTenantMemberPermissions: Endpoint<{
109
+ orgId: string;
110
+ userId: string;
111
+ }, {
112
+ permissions: string[];
113
+ }, ApiError>;
114
+ export declare const getTenantMemberAuthMethods: Endpoint<{
115
+ orgId: string;
116
+ userId: string;
117
+ }, {
118
+ methods: {
119
+ provider: string;
120
+ createdAt: string;
121
+ }[];
122
+ }, ApiError>;
123
+ export declare const assignTenantMemberRole: Endpoint<{
124
+ orgId: string;
125
+ userId: string;
126
+ roleId: string;
127
+ }, {
128
+ ok: true;
129
+ }, ApiError>;
130
+ export declare const unassignTenantMemberRole: Endpoint<{
131
+ orgId: string;
132
+ userId: string;
133
+ roleId: string;
134
+ }, {
135
+ ok: true;
136
+ }, ApiError>;
137
+ export declare const updateMemberStatus: Endpoint<{
138
+ orgId: string;
139
+ userId: string;
140
+ status: UserStatus;
141
+ }, {
142
+ ok: true;
143
+ status: UserStatus;
144
+ }, ApiError>;
145
+ export declare const addMemberAuthMethod: Endpoint<{
146
+ orgId: string;
147
+ userId: string;
148
+ provider: string;
149
+ accountId?: string;
150
+ password?: string;
151
+ }, {
152
+ ok: true;
153
+ id: string;
154
+ }, ApiError>;
155
+ export declare const removeMemberAuthMethod: Endpoint<{
156
+ orgId: string;
157
+ userId: string;
158
+ methodId: string;
159
+ }, {
160
+ ok: true;
161
+ }, ApiError>;
162
+ export interface RefreshTokenInfo {
163
+ id: string;
164
+ ipAddress: string | null;
165
+ userAgent: string | null;
166
+ createdAt: string;
167
+ expiresAt: string;
168
+ revokedAt: string | null;
169
+ lastUsedAt: string | null;
170
+ }
171
+ export declare const listMemberTokens: Endpoint<{
172
+ orgId: string;
173
+ userId: string;
174
+ }, {
175
+ tokens: RefreshTokenInfo[];
176
+ }, ApiError>;
177
+ export declare const revokeMemberToken: Endpoint<{
178
+ orgId: string;
179
+ userId: string;
180
+ tokenId: string;
181
+ }, {
182
+ ok: true;
183
+ }, ApiError>;
184
+ //# sourceMappingURL=tenants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../../src/endpoints/tenants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ import { parseApiError } from "../result.js";
2
+ /** Public — no auth required. Check if a tenant exists by slug/name. */
3
+ export const checkTenant = {
4
+ method: "GET",
5
+ path: () => "/api/tenants/check",
6
+ query: (input) => ({ name: input.name }),
7
+ parseOutput: (data) => data,
8
+ parseError: parseApiError,
9
+ };
10
+ export const listMyTenants = {
11
+ method: "GET",
12
+ path: () => "/api/auth/organization/list",
13
+ parseOutput: (data) => data,
14
+ parseError: parseApiError,
15
+ };
16
+ export const adminListTenants = {
17
+ method: "GET",
18
+ path: () => "/api/admin/tenants",
19
+ parseOutput: (data) => data,
20
+ parseError: parseApiError,
21
+ };
22
+ export const createTenant = {
23
+ method: "POST",
24
+ path: () => "/api/auth/organization/create",
25
+ body: (input) => input,
26
+ parseOutput: (data) => data,
27
+ parseError: parseApiError,
28
+ };
29
+ export const setActiveTenant = {
30
+ method: "POST",
31
+ path: () => "/api/auth/organization/set-active",
32
+ body: (input) => input,
33
+ parseOutput: (data) => data,
34
+ parseError: parseApiError,
35
+ };
36
+ export const getFullTenant = {
37
+ method: "GET",
38
+ path: () => "/api/auth/organization/get-full-organization",
39
+ query: (input) => ({ organizationId: input.organizationId }),
40
+ parseOutput: (data) => data,
41
+ parseError: parseApiError,
42
+ };
43
+ export const inviteMember = {
44
+ method: "POST",
45
+ path: () => "/api/auth/organization/invite-member",
46
+ body: (input) => input,
47
+ parseOutput: (data) => data,
48
+ parseError: parseApiError,
49
+ };
50
+ export const acceptInvitation = {
51
+ method: "POST",
52
+ path: () => "/api/auth/organization/accept-invitation",
53
+ body: (input) => input,
54
+ parseOutput: (data) => data,
55
+ parseError: parseApiError,
56
+ };
57
+ export const updateMemberRole = {
58
+ method: "POST",
59
+ path: () => "/api/auth/organization/update-member-role",
60
+ body: (input) => input,
61
+ parseOutput: () => ({ ok: true }),
62
+ parseError: parseApiError,
63
+ };
64
+ export const removeMember = {
65
+ method: "POST",
66
+ path: () => "/api/auth/organization/remove-member",
67
+ body: (input) => input,
68
+ parseOutput: () => ({ ok: true }),
69
+ parseError: parseApiError,
70
+ };
71
+ export const adminDeleteTenant = {
72
+ method: "DELETE",
73
+ path: (input) => `/api/admin/tenants/${input.id}`,
74
+ parseOutput: () => ({ ok: true }),
75
+ parseError: parseApiError,
76
+ };
77
+ export const deleteTenant = {
78
+ method: "DELETE",
79
+ path: (input) => `/api/tenants/${input.id}`,
80
+ parseOutput: () => ({ ok: true }),
81
+ parseError: parseApiError,
82
+ };
83
+ export const listTenantRoles = {
84
+ method: "GET",
85
+ path: (input) => `/api/tenants/${input.orgId}/roles`,
86
+ parseOutput: (data) => data,
87
+ parseError: parseApiError,
88
+ };
89
+ export const createTenantRole = {
90
+ method: "POST",
91
+ path: (input) => `/api/tenants/${input.orgId}/roles`,
92
+ body: (input) => ({ name: input.name, description: input.description }),
93
+ parseOutput: (data) => data,
94
+ parseError: parseApiError,
95
+ };
96
+ export const deleteTenantRole = {
97
+ method: "DELETE",
98
+ path: (input) => `/api/tenants/${input.orgId}/roles/${input.roleId}`,
99
+ parseOutput: () => ({ ok: true }),
100
+ parseError: parseApiError,
101
+ };
102
+ export const addTenantMember = {
103
+ method: "POST",
104
+ path: (input) => `/api/tenants/${input.orgId}/members`,
105
+ body: (input) => ({ email: input.email, role: input.role ?? "member" }),
106
+ parseOutput: (data) => data,
107
+ parseError: parseApiError,
108
+ };
109
+ export const getTenantMember = {
110
+ method: "GET",
111
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}`,
112
+ parseOutput: (data) => data,
113
+ parseError: parseApiError,
114
+ };
115
+ export const getTenantMemberRoles = {
116
+ method: "GET",
117
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/roles`,
118
+ parseOutput: (data) => data,
119
+ parseError: parseApiError,
120
+ };
121
+ export const getTenantMemberPermissions = {
122
+ method: "GET",
123
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/permissions`,
124
+ parseOutput: (data) => data,
125
+ parseError: parseApiError,
126
+ };
127
+ export const getTenantMemberAuthMethods = {
128
+ method: "GET",
129
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/auth-methods`,
130
+ parseOutput: (data) => data,
131
+ parseError: parseApiError,
132
+ };
133
+ export const assignTenantMemberRole = {
134
+ method: "POST",
135
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/roles`,
136
+ body: (input) => ({ roleId: input.roleId }),
137
+ parseOutput: () => ({ ok: true }),
138
+ parseError: parseApiError,
139
+ };
140
+ export const unassignTenantMemberRole = {
141
+ method: "DELETE",
142
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/roles/${input.roleId}`,
143
+ parseOutput: () => ({ ok: true }),
144
+ parseError: parseApiError,
145
+ };
146
+ export const updateMemberStatus = {
147
+ method: "PATCH",
148
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/status`,
149
+ body: (input) => ({ status: input.status }),
150
+ parseOutput: (data) => data,
151
+ parseError: parseApiError,
152
+ };
153
+ export const addMemberAuthMethod = {
154
+ method: "POST",
155
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/auth-methods`,
156
+ body: (input) => ({
157
+ provider: input.provider,
158
+ ...(input.accountId ? { accountId: input.accountId } : {}),
159
+ ...(input.password ? { password: input.password } : {}),
160
+ }),
161
+ parseOutput: (data) => data,
162
+ parseError: parseApiError,
163
+ };
164
+ export const removeMemberAuthMethod = {
165
+ method: "DELETE",
166
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/auth-methods/${input.methodId}`,
167
+ parseOutput: () => ({ ok: true }),
168
+ parseError: parseApiError,
169
+ };
170
+ export const listMemberTokens = {
171
+ method: "GET",
172
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/tokens`,
173
+ parseOutput: (data) => data,
174
+ parseError: parseApiError,
175
+ };
176
+ export const revokeMemberToken = {
177
+ method: "DELETE",
178
+ path: (input) => `/api/tenants/${input.orgId}/members/${input.userId}/tokens/${input.tokenId}`,
179
+ parseOutput: () => ({ ok: true }),
180
+ parseError: parseApiError,
181
+ };
182
+ //# sourceMappingURL=tenants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/endpoints/tenants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { createClient, type ClientConfig, type Endpoint, type EndpointError, type EndpointInput, type EndpointOutput, type Method, type UmClient, } from "./endpoint.js";
2
+ export { err, ok, parseApiError, type ApiError, type NetworkError, type Result, } from "./result.js";
3
+ export * from "./endpoints/index.js";
4
+ export type * from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,EAAE,EACF,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,MAAM,GACZ,MAAM,aAAa,CAAC;AAGrB,cAAc,sBAAsB,CAAC;AAGrC,mBAAmB,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ // Core types & runtime
2
+ export { createClient, } from "./endpoint.js";
3
+ export { err, ok, parseApiError, } from "./result.js";
4
+ // Endpoints — all named exports, grouped by domain
5
+ export * from "./endpoints/index.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EACL,YAAY,GAQb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,EAAE,EACF,aAAa,GAId,MAAM,aAAa,CAAC;AAErB,mDAAmD;AACnD,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Result + error types. Endpoints never throw — `call` collapses
3
+ * thrown exceptions into `{ kind: "network" }` and HTTP errors into
4
+ * whatever shape `endpoint.parseError` produces.
5
+ */
6
+ export type Result<T, E> = {
7
+ ok: true;
8
+ data: T;
9
+ } | {
10
+ ok: false;
11
+ error: E;
12
+ };
13
+ export type NetworkError = {
14
+ kind: "network";
15
+ message: string;
16
+ };
17
+ /**
18
+ * Default HTTP error envelope mirroring the rust server's
19
+ * `{ code, message }` shape. Individual endpoints can narrow this
20
+ * with a discriminated union when they want callers to switch on
21
+ * specific codes (e.g. sign-in's INVALID_EMAIL_OR_PASSWORD).
22
+ */
23
+ export type ApiError = {
24
+ kind: "http";
25
+ status: number;
26
+ code: string | undefined;
27
+ message: string;
28
+ };
29
+ /**
30
+ * Lift a JSON error body into `ApiError`. Tolerates non-JSON
31
+ * (data === null) and missing fields.
32
+ */
33
+ export declare const parseApiError: (status: number, data: unknown) => ApiError;
34
+ export declare const ok: <T>(data: T) => Result<T, never>;
35
+ export declare const err: <E>(error: E) => Result<never, E>;
36
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,MAAM,OAAO,KAAG,QAQ7D,CAAC;AAEF,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAyB,CAAC;AACzE,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAA2B,CAAC"}