@mesob/auth-hono 0.3.5 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import * as hono from 'hono';
2
2
  import { OpenAPIHono } from '@hono/zod-openapi';
3
- import { D as Database } from './index-Bh3bDnP5.js';
3
+ import { PermissionTree } from '@mesob/common';
4
+ import { D as Database } from './index-zShda6U3.js';
4
5
 
5
6
  type SessionStatus = 'valid' | 'no_cookie' | 'invalid_session' | 'user_not_found' | 'error';
6
7
 
@@ -57,6 +58,14 @@ type SendVerificationOTPParams = {
57
58
  hash: string;
58
59
  type: string;
59
60
  };
61
+ type SendInvitationParams = {
62
+ email?: string;
63
+ phone?: string;
64
+ fullName: string;
65
+ identifier: string;
66
+ inviteUrl?: string;
67
+ tenantId: string;
68
+ };
60
69
  type VerificationConfig = {
61
70
  enabled: boolean;
62
71
  required: boolean;
@@ -65,6 +74,7 @@ type VerificationConfig = {
65
74
  maxAttempts: number;
66
75
  resendInterval?: string;
67
76
  sendVerificationOTP?: (params: SendVerificationOTPParams) => Promise<void> | void;
77
+ sendInvitation?: (params: SendInvitationParams) => Promise<void> | void;
68
78
  };
69
79
  type PhoneConfig = VerificationConfig & {
70
80
  phoneRegex?: RegExp | string;
@@ -103,6 +113,15 @@ type DocsConfig = {
103
113
  description?: string;
104
114
  }>;
105
115
  };
116
+ type SeedRole = {
117
+ code: string;
118
+ name: unknown;
119
+ description?: unknown;
120
+ permissionIds?: readonly string[];
121
+ isSystem?: boolean;
122
+ isEditable?: boolean;
123
+ isDeletable?: boolean;
124
+ };
106
125
  type CookieConfig = {
107
126
  prefix?: string;
108
127
  };
@@ -114,6 +133,8 @@ type AuthConfig = {
114
133
  tenant?: TenantConfig;
115
134
  docs?: DocsConfig;
116
135
  cookie?: CookieConfig;
136
+ permissions?: PermissionTree;
137
+ roles?: SeedRole[];
117
138
  session: SessionConfig;
118
139
  email: EmailConfig;
119
140
  phone: PhoneConfig;
@@ -135,4 +156,4 @@ type MesobAuth = {
135
156
  sessionMiddleware: hono.MiddlewareHandler;
136
157
  };
137
158
 
138
- export type { AuthConfig as A, MesobAuth as M, SessionStatus as S, User as U, SendVerificationOTPParams as a, Session as b, SessionConfig as c };
159
+ export type { AuthConfig as A, MesobAuth as M, SessionStatus as S, User as U, SendInvitationParams as a, SendVerificationOTPParams as b, Session as c, SeedRole as d, SessionConfig as e };
@@ -14,8 +14,8 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
14
14
  accountChangesInIam: drizzle_orm.Many<"account_changes">;
15
15
  rolePermissionsInIam: drizzle_orm.Many<"role_permissions">;
16
16
  accountsInIam: drizzle_orm.Many<"accounts">;
17
- rolesInIam: drizzle_orm.Many<"roles">;
18
17
  usersInIam: drizzle_orm.Many<"users">;
18
+ rolesInIam: drizzle_orm.Many<"roles">;
19
19
  userRolesInIam: drizzle_orm.Many<"user_roles">;
20
20
  domainsInIam: drizzle_orm.Many<"domains">;
21
21
  }>;
@@ -1010,8 +1010,8 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1010
1010
  }, {}, {
1011
1011
  length: 30;
1012
1012
  }>;
1013
- roleId: drizzle_orm_pg_core.PgColumn<{
1014
- name: "role_id";
1013
+ permissionId: drizzle_orm_pg_core.PgColumn<{
1014
+ name: "permission_id";
1015
1015
  tableName: "role_permissions";
1016
1016
  dataType: "string";
1017
1017
  columnType: "PgText";
@@ -1027,11 +1027,11 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1027
1027
  identity: undefined;
1028
1028
  generated: undefined;
1029
1029
  }, {}, {}>;
1030
- permissionId: drizzle_orm_pg_core.PgColumn<{
1031
- name: "permission_id";
1030
+ roleId: drizzle_orm_pg_core.PgColumn<{
1031
+ name: "role_id";
1032
1032
  tableName: "role_permissions";
1033
1033
  dataType: "string";
1034
- columnType: "PgText";
1034
+ columnType: "PgUUID";
1035
1035
  data: string;
1036
1036
  driverParam: string;
1037
1037
  notNull: true;
@@ -1039,7 +1039,7 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1039
1039
  isPrimaryKey: false;
1040
1040
  isAutoincrement: false;
1041
1041
  hasRuntimeDefault: false;
1042
- enumValues: [string, ...string[]];
1042
+ enumValues: undefined;
1043
1043
  baseColumn: never;
1044
1044
  identity: undefined;
1045
1045
  generated: undefined;
@@ -1403,134 +1403,6 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1403
1403
  };
1404
1404
  dialect: "pg";
1405
1405
  }>;
1406
- rolesInIam: drizzle_orm_pg_core.PgTableWithColumns<{
1407
- name: "roles";
1408
- schema: "iam";
1409
- columns: {
1410
- id: drizzle_orm_pg_core.PgColumn<{
1411
- name: "id";
1412
- tableName: "roles";
1413
- dataType: "string";
1414
- columnType: "PgText";
1415
- data: string;
1416
- driverParam: string;
1417
- notNull: true;
1418
- hasDefault: false;
1419
- isPrimaryKey: true;
1420
- isAutoincrement: false;
1421
- hasRuntimeDefault: false;
1422
- enumValues: [string, ...string[]];
1423
- baseColumn: never;
1424
- identity: undefined;
1425
- generated: undefined;
1426
- }, {}, {}>;
1427
- tenantId: drizzle_orm_pg_core.PgColumn<{
1428
- name: "tenant_id";
1429
- tableName: "roles";
1430
- dataType: "string";
1431
- columnType: "PgVarchar";
1432
- data: string;
1433
- driverParam: string;
1434
- notNull: true;
1435
- hasDefault: false;
1436
- isPrimaryKey: false;
1437
- isAutoincrement: false;
1438
- hasRuntimeDefault: false;
1439
- enumValues: [string, ...string[]];
1440
- baseColumn: never;
1441
- identity: undefined;
1442
- generated: undefined;
1443
- }, {}, {
1444
- length: 30;
1445
- }>;
1446
- createdAt: drizzle_orm_pg_core.PgColumn<{
1447
- name: "created_at";
1448
- tableName: "roles";
1449
- dataType: "string";
1450
- columnType: "PgTimestampString";
1451
- data: string;
1452
- driverParam: string;
1453
- notNull: true;
1454
- hasDefault: true;
1455
- isPrimaryKey: false;
1456
- isAutoincrement: false;
1457
- hasRuntimeDefault: false;
1458
- enumValues: undefined;
1459
- baseColumn: never;
1460
- identity: undefined;
1461
- generated: undefined;
1462
- }, {}, {}>;
1463
- updatedAt: drizzle_orm_pg_core.PgColumn<{
1464
- name: "updated_at";
1465
- tableName: "roles";
1466
- dataType: "string";
1467
- columnType: "PgTimestampString";
1468
- data: string;
1469
- driverParam: string;
1470
- notNull: true;
1471
- hasDefault: true;
1472
- isPrimaryKey: false;
1473
- isAutoincrement: false;
1474
- hasRuntimeDefault: false;
1475
- enumValues: undefined;
1476
- baseColumn: never;
1477
- identity: undefined;
1478
- generated: undefined;
1479
- }, {}, {}>;
1480
- name: drizzle_orm_pg_core.PgColumn<{
1481
- name: "name";
1482
- tableName: "roles";
1483
- dataType: "json";
1484
- columnType: "PgJsonb";
1485
- data: unknown;
1486
- driverParam: unknown;
1487
- notNull: true;
1488
- hasDefault: false;
1489
- isPrimaryKey: false;
1490
- isAutoincrement: false;
1491
- hasRuntimeDefault: false;
1492
- enumValues: undefined;
1493
- baseColumn: never;
1494
- identity: undefined;
1495
- generated: undefined;
1496
- }, {}, {}>;
1497
- description: drizzle_orm_pg_core.PgColumn<{
1498
- name: "description";
1499
- tableName: "roles";
1500
- dataType: "json";
1501
- columnType: "PgJsonb";
1502
- data: unknown;
1503
- driverParam: unknown;
1504
- notNull: true;
1505
- hasDefault: false;
1506
- isPrimaryKey: false;
1507
- isAutoincrement: false;
1508
- hasRuntimeDefault: false;
1509
- enumValues: undefined;
1510
- baseColumn: never;
1511
- identity: undefined;
1512
- generated: undefined;
1513
- }, {}, {}>;
1514
- code: drizzle_orm_pg_core.PgColumn<{
1515
- name: "code";
1516
- tableName: "roles";
1517
- dataType: "string";
1518
- columnType: "PgText";
1519
- data: string;
1520
- driverParam: string;
1521
- notNull: true;
1522
- hasDefault: false;
1523
- isPrimaryKey: false;
1524
- isAutoincrement: false;
1525
- hasRuntimeDefault: false;
1526
- enumValues: [string, ...string[]];
1527
- baseColumn: never;
1528
- identity: undefined;
1529
- generated: undefined;
1530
- }, {}, {}>;
1531
- };
1532
- dialect: "pg";
1533
- }>;
1534
1406
  usersInIam: drizzle_orm_pg_core.PgTableWithColumns<{
1535
1407
  name: "users";
1536
1408
  schema: "iam";
@@ -1821,6 +1693,185 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1821
1693
  };
1822
1694
  dialect: "pg";
1823
1695
  }>;
1696
+ rolesInIam: drizzle_orm_pg_core.PgTableWithColumns<{
1697
+ name: "roles";
1698
+ schema: "iam";
1699
+ columns: {
1700
+ tenantId: drizzle_orm_pg_core.PgColumn<{
1701
+ name: "tenant_id";
1702
+ tableName: "roles";
1703
+ dataType: "string";
1704
+ columnType: "PgVarchar";
1705
+ data: string;
1706
+ driverParam: string;
1707
+ notNull: true;
1708
+ hasDefault: false;
1709
+ isPrimaryKey: false;
1710
+ isAutoincrement: false;
1711
+ hasRuntimeDefault: false;
1712
+ enumValues: [string, ...string[]];
1713
+ baseColumn: never;
1714
+ identity: undefined;
1715
+ generated: undefined;
1716
+ }, {}, {
1717
+ length: 30;
1718
+ }>;
1719
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1720
+ name: "created_at";
1721
+ tableName: "roles";
1722
+ dataType: "string";
1723
+ columnType: "PgTimestampString";
1724
+ data: string;
1725
+ driverParam: string;
1726
+ notNull: true;
1727
+ hasDefault: true;
1728
+ isPrimaryKey: false;
1729
+ isAutoincrement: false;
1730
+ hasRuntimeDefault: false;
1731
+ enumValues: undefined;
1732
+ baseColumn: never;
1733
+ identity: undefined;
1734
+ generated: undefined;
1735
+ }, {}, {}>;
1736
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1737
+ name: "updated_at";
1738
+ tableName: "roles";
1739
+ dataType: "string";
1740
+ columnType: "PgTimestampString";
1741
+ data: string;
1742
+ driverParam: string;
1743
+ notNull: true;
1744
+ hasDefault: true;
1745
+ isPrimaryKey: false;
1746
+ isAutoincrement: false;
1747
+ hasRuntimeDefault: false;
1748
+ enumValues: undefined;
1749
+ baseColumn: never;
1750
+ identity: undefined;
1751
+ generated: undefined;
1752
+ }, {}, {}>;
1753
+ name: drizzle_orm_pg_core.PgColumn<{
1754
+ name: "name";
1755
+ tableName: "roles";
1756
+ dataType: "json";
1757
+ columnType: "PgJsonb";
1758
+ data: unknown;
1759
+ driverParam: unknown;
1760
+ notNull: true;
1761
+ hasDefault: false;
1762
+ isPrimaryKey: false;
1763
+ isAutoincrement: false;
1764
+ hasRuntimeDefault: false;
1765
+ enumValues: undefined;
1766
+ baseColumn: never;
1767
+ identity: undefined;
1768
+ generated: undefined;
1769
+ }, {}, {}>;
1770
+ description: drizzle_orm_pg_core.PgColumn<{
1771
+ name: "description";
1772
+ tableName: "roles";
1773
+ dataType: "json";
1774
+ columnType: "PgJsonb";
1775
+ data: unknown;
1776
+ driverParam: unknown;
1777
+ notNull: true;
1778
+ hasDefault: false;
1779
+ isPrimaryKey: false;
1780
+ isAutoincrement: false;
1781
+ hasRuntimeDefault: false;
1782
+ enumValues: undefined;
1783
+ baseColumn: never;
1784
+ identity: undefined;
1785
+ generated: undefined;
1786
+ }, {}, {}>;
1787
+ code: drizzle_orm_pg_core.PgColumn<{
1788
+ name: "code";
1789
+ tableName: "roles";
1790
+ dataType: "string";
1791
+ columnType: "PgText";
1792
+ data: string;
1793
+ driverParam: string;
1794
+ notNull: true;
1795
+ hasDefault: false;
1796
+ isPrimaryKey: false;
1797
+ isAutoincrement: false;
1798
+ hasRuntimeDefault: false;
1799
+ enumValues: [string, ...string[]];
1800
+ baseColumn: never;
1801
+ identity: undefined;
1802
+ generated: undefined;
1803
+ }, {}, {}>;
1804
+ id: drizzle_orm_pg_core.PgColumn<{
1805
+ name: "id";
1806
+ tableName: "roles";
1807
+ dataType: "string";
1808
+ columnType: "PgUUID";
1809
+ data: string;
1810
+ driverParam: string;
1811
+ notNull: true;
1812
+ hasDefault: true;
1813
+ isPrimaryKey: true;
1814
+ isAutoincrement: false;
1815
+ hasRuntimeDefault: false;
1816
+ enumValues: undefined;
1817
+ baseColumn: never;
1818
+ identity: undefined;
1819
+ generated: undefined;
1820
+ }, {}, {}>;
1821
+ isSystem: drizzle_orm_pg_core.PgColumn<{
1822
+ name: "is_system";
1823
+ tableName: "roles";
1824
+ dataType: "boolean";
1825
+ columnType: "PgBoolean";
1826
+ data: boolean;
1827
+ driverParam: boolean;
1828
+ notNull: true;
1829
+ hasDefault: true;
1830
+ isPrimaryKey: false;
1831
+ isAutoincrement: false;
1832
+ hasRuntimeDefault: false;
1833
+ enumValues: undefined;
1834
+ baseColumn: never;
1835
+ identity: undefined;
1836
+ generated: undefined;
1837
+ }, {}, {}>;
1838
+ isEditable: drizzle_orm_pg_core.PgColumn<{
1839
+ name: "is_editable";
1840
+ tableName: "roles";
1841
+ dataType: "boolean";
1842
+ columnType: "PgBoolean";
1843
+ data: boolean;
1844
+ driverParam: boolean;
1845
+ notNull: true;
1846
+ hasDefault: true;
1847
+ isPrimaryKey: false;
1848
+ isAutoincrement: false;
1849
+ hasRuntimeDefault: false;
1850
+ enumValues: undefined;
1851
+ baseColumn: never;
1852
+ identity: undefined;
1853
+ generated: undefined;
1854
+ }, {}, {}>;
1855
+ isDeletable: drizzle_orm_pg_core.PgColumn<{
1856
+ name: "is_deletable";
1857
+ tableName: "roles";
1858
+ dataType: "boolean";
1859
+ columnType: "PgBoolean";
1860
+ data: boolean;
1861
+ driverParam: boolean;
1862
+ notNull: true;
1863
+ hasDefault: true;
1864
+ isPrimaryKey: false;
1865
+ isAutoincrement: false;
1866
+ hasRuntimeDefault: false;
1867
+ enumValues: undefined;
1868
+ baseColumn: never;
1869
+ identity: undefined;
1870
+ generated: undefined;
1871
+ }, {}, {}>;
1872
+ };
1873
+ dialect: "pg";
1874
+ }>;
1824
1875
  userRolesInIam: drizzle_orm_pg_core.PgTableWithColumns<{
1825
1876
  name: "user_roles";
1826
1877
  schema: "iam";
@@ -1882,7 +1933,7 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1882
1933
  name: "role_id";
1883
1934
  tableName: "user_roles";
1884
1935
  dataType: "string";
1885
- columnType: "PgText";
1936
+ columnType: "PgUUID";
1886
1937
  data: string;
1887
1938
  driverParam: string;
1888
1939
  notNull: true;
@@ -1890,7 +1941,7 @@ declare const createDatabase: (connectionString: string) => drizzle_orm_node_pos
1890
1941
  isPrimaryKey: false;
1891
1942
  isAutoincrement: false;
1892
1943
  hasRuntimeDefault: false;
1893
- enumValues: [string, ...string[]];
1944
+ enumValues: undefined;
1894
1945
  baseColumn: never;
1895
1946
  identity: undefined;
1896
1947
  generated: undefined;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- import { A as AuthConfig, M as MesobAuth } from './index-BvdbhtRX.js';
2
- export { a as SendVerificationOTPParams, b as Session, S as SessionStatus, U as User } from './index-BvdbhtRX.js';
3
- import { D as Database } from './index-Bh3bDnP5.js';
4
- export { c as createDatabase } from './index-Bh3bDnP5.js';
1
+ import { A as AuthConfig, M as MesobAuth } from './index-CKOeabpa.js';
2
+ export { a as SendInvitationParams, b as SendVerificationOTPParams, c as Session, S as SessionStatus, U as User } from './index-CKOeabpa.js';
3
+ import { D as Database } from './index-zShda6U3.js';
4
+ export { c as createDatabase } from './index-zShda6U3.js';
5
5
  export { cleanupExpiredData, cleanupExpiredSessions, cleanupExpiredVerifications } from './lib/cleanup.js';
6
6
  export { hasPermission, hasPermissionThrow, hasRole, hasRoleThrow } from './lib/has-role-permission.js';
7
7
  import * as hono from 'hono';
8
8
  import '@hono/zod-openapi';
9
+ import '@mesob/common';
9
10
  import 'drizzle-orm/node-postgres';
10
11
  import 'drizzle-orm/pg-core';
11
12
  import 'drizzle-orm';