najm-auth 2.0.11 → 2.0.12
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/README.md +41 -2
- package/dist/index.d.ts +83 -2
- package/dist/index.js +301 -12
- package/dist/schema/pg.d.ts +328 -1
- package/dist/schema/pg.js +14 -0
- package/dist/schema/sqlite.d.ts +364 -1
- package/dist/schema/sqlite.js +14 -0
- package/package.json +1 -1
package/dist/schema/pg.d.ts
CHANGED
|
@@ -822,6 +822,171 @@ declare const tokensTable: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
822
822
|
};
|
|
823
823
|
dialect: "pg";
|
|
824
824
|
}>;
|
|
825
|
+
/**
|
|
826
|
+
* Short-lived, purpose-bound browser sessions for sensitive credential setup.
|
|
827
|
+
* Only a SHA-256 token hash is persisted; the opaque token lives in an
|
|
828
|
+
* HttpOnly browser-session cookie and can be consumed exactly once.
|
|
829
|
+
*/
|
|
830
|
+
declare const credentialSetupSessionsTable: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
831
|
+
name: "credential_setup_sessions";
|
|
832
|
+
schema: undefined;
|
|
833
|
+
columns: {
|
|
834
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
835
|
+
name: "user_id";
|
|
836
|
+
tableName: "credential_setup_sessions";
|
|
837
|
+
dataType: "string";
|
|
838
|
+
columnType: "PgText";
|
|
839
|
+
data: string;
|
|
840
|
+
driverParam: string;
|
|
841
|
+
notNull: true;
|
|
842
|
+
hasDefault: false;
|
|
843
|
+
isPrimaryKey: false;
|
|
844
|
+
isAutoincrement: false;
|
|
845
|
+
hasRuntimeDefault: false;
|
|
846
|
+
enumValues: [string, ...string[]];
|
|
847
|
+
baseColumn: never;
|
|
848
|
+
identity: undefined;
|
|
849
|
+
generated: undefined;
|
|
850
|
+
}, {}, {}>;
|
|
851
|
+
purpose: drizzle_orm_pg_core.PgColumn<{
|
|
852
|
+
name: "purpose";
|
|
853
|
+
tableName: "credential_setup_sessions";
|
|
854
|
+
dataType: "string";
|
|
855
|
+
columnType: "PgText";
|
|
856
|
+
data: string;
|
|
857
|
+
driverParam: string;
|
|
858
|
+
notNull: true;
|
|
859
|
+
hasDefault: false;
|
|
860
|
+
isPrimaryKey: false;
|
|
861
|
+
isAutoincrement: false;
|
|
862
|
+
hasRuntimeDefault: false;
|
|
863
|
+
enumValues: [string, ...string[]];
|
|
864
|
+
baseColumn: never;
|
|
865
|
+
identity: undefined;
|
|
866
|
+
generated: undefined;
|
|
867
|
+
}, {}, {}>;
|
|
868
|
+
tokenHash: drizzle_orm_pg_core.PgColumn<{
|
|
869
|
+
name: "token_hash";
|
|
870
|
+
tableName: "credential_setup_sessions";
|
|
871
|
+
dataType: "string";
|
|
872
|
+
columnType: "PgText";
|
|
873
|
+
data: string;
|
|
874
|
+
driverParam: string;
|
|
875
|
+
notNull: true;
|
|
876
|
+
hasDefault: false;
|
|
877
|
+
isPrimaryKey: false;
|
|
878
|
+
isAutoincrement: false;
|
|
879
|
+
hasRuntimeDefault: false;
|
|
880
|
+
enumValues: [string, ...string[]];
|
|
881
|
+
baseColumn: never;
|
|
882
|
+
identity: undefined;
|
|
883
|
+
generated: undefined;
|
|
884
|
+
}, {}, {}>;
|
|
885
|
+
expiresAt: drizzle_orm_pg_core.PgColumn<{
|
|
886
|
+
name: "expires_at";
|
|
887
|
+
tableName: "credential_setup_sessions";
|
|
888
|
+
dataType: "string";
|
|
889
|
+
columnType: "PgTimestampString";
|
|
890
|
+
data: string;
|
|
891
|
+
driverParam: string;
|
|
892
|
+
notNull: true;
|
|
893
|
+
hasDefault: false;
|
|
894
|
+
isPrimaryKey: false;
|
|
895
|
+
isAutoincrement: false;
|
|
896
|
+
hasRuntimeDefault: false;
|
|
897
|
+
enumValues: undefined;
|
|
898
|
+
baseColumn: never;
|
|
899
|
+
identity: undefined;
|
|
900
|
+
generated: undefined;
|
|
901
|
+
}, {}, {}>;
|
|
902
|
+
consumedAt: drizzle_orm_pg_core.PgColumn<{
|
|
903
|
+
name: "consumed_at";
|
|
904
|
+
tableName: "credential_setup_sessions";
|
|
905
|
+
dataType: "string";
|
|
906
|
+
columnType: "PgTimestampString";
|
|
907
|
+
data: string;
|
|
908
|
+
driverParam: string;
|
|
909
|
+
notNull: false;
|
|
910
|
+
hasDefault: false;
|
|
911
|
+
isPrimaryKey: false;
|
|
912
|
+
isAutoincrement: false;
|
|
913
|
+
hasRuntimeDefault: false;
|
|
914
|
+
enumValues: undefined;
|
|
915
|
+
baseColumn: never;
|
|
916
|
+
identity: undefined;
|
|
917
|
+
generated: undefined;
|
|
918
|
+
}, {}, {}>;
|
|
919
|
+
revokedAt: drizzle_orm_pg_core.PgColumn<{
|
|
920
|
+
name: "revoked_at";
|
|
921
|
+
tableName: "credential_setup_sessions";
|
|
922
|
+
dataType: "string";
|
|
923
|
+
columnType: "PgTimestampString";
|
|
924
|
+
data: string;
|
|
925
|
+
driverParam: string;
|
|
926
|
+
notNull: false;
|
|
927
|
+
hasDefault: false;
|
|
928
|
+
isPrimaryKey: false;
|
|
929
|
+
isAutoincrement: false;
|
|
930
|
+
hasRuntimeDefault: false;
|
|
931
|
+
enumValues: undefined;
|
|
932
|
+
baseColumn: never;
|
|
933
|
+
identity: undefined;
|
|
934
|
+
generated: undefined;
|
|
935
|
+
}, {}, {}>;
|
|
936
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
937
|
+
name: "id";
|
|
938
|
+
tableName: "credential_setup_sessions";
|
|
939
|
+
dataType: "string";
|
|
940
|
+
columnType: "PgText";
|
|
941
|
+
data: string;
|
|
942
|
+
driverParam: string;
|
|
943
|
+
notNull: true;
|
|
944
|
+
hasDefault: true;
|
|
945
|
+
isPrimaryKey: true;
|
|
946
|
+
isAutoincrement: false;
|
|
947
|
+
hasRuntimeDefault: true;
|
|
948
|
+
enumValues: [string, ...string[]];
|
|
949
|
+
baseColumn: never;
|
|
950
|
+
identity: undefined;
|
|
951
|
+
generated: undefined;
|
|
952
|
+
}, {}, {}>;
|
|
953
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
954
|
+
name: "created_at";
|
|
955
|
+
tableName: "credential_setup_sessions";
|
|
956
|
+
dataType: "string";
|
|
957
|
+
columnType: "PgTimestampString";
|
|
958
|
+
data: string;
|
|
959
|
+
driverParam: string;
|
|
960
|
+
notNull: false;
|
|
961
|
+
hasDefault: true;
|
|
962
|
+
isPrimaryKey: false;
|
|
963
|
+
isAutoincrement: false;
|
|
964
|
+
hasRuntimeDefault: false;
|
|
965
|
+
enumValues: undefined;
|
|
966
|
+
baseColumn: never;
|
|
967
|
+
identity: undefined;
|
|
968
|
+
generated: undefined;
|
|
969
|
+
}, {}, {}>;
|
|
970
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
971
|
+
name: "updated_at";
|
|
972
|
+
tableName: "credential_setup_sessions";
|
|
973
|
+
dataType: "string";
|
|
974
|
+
columnType: "PgTimestampString";
|
|
975
|
+
data: string;
|
|
976
|
+
driverParam: string;
|
|
977
|
+
notNull: false;
|
|
978
|
+
hasDefault: true;
|
|
979
|
+
isPrimaryKey: false;
|
|
980
|
+
isAutoincrement: false;
|
|
981
|
+
hasRuntimeDefault: false;
|
|
982
|
+
enumValues: undefined;
|
|
983
|
+
baseColumn: never;
|
|
984
|
+
identity: undefined;
|
|
985
|
+
generated: undefined;
|
|
986
|
+
}, {}, {}>;
|
|
987
|
+
};
|
|
988
|
+
dialect: "pg";
|
|
989
|
+
}>;
|
|
825
990
|
/**
|
|
826
991
|
* Junction table for many-to-many relationship between roles and permissions
|
|
827
992
|
*/
|
|
@@ -1466,6 +1631,166 @@ declare const authSchema: {
|
|
|
1466
1631
|
};
|
|
1467
1632
|
dialect: "pg";
|
|
1468
1633
|
}>;
|
|
1634
|
+
readonly credentialSetupSessions: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1635
|
+
name: "credential_setup_sessions";
|
|
1636
|
+
schema: undefined;
|
|
1637
|
+
columns: {
|
|
1638
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
1639
|
+
name: "user_id";
|
|
1640
|
+
tableName: "credential_setup_sessions";
|
|
1641
|
+
dataType: "string";
|
|
1642
|
+
columnType: "PgText";
|
|
1643
|
+
data: string;
|
|
1644
|
+
driverParam: string;
|
|
1645
|
+
notNull: true;
|
|
1646
|
+
hasDefault: false;
|
|
1647
|
+
isPrimaryKey: false;
|
|
1648
|
+
isAutoincrement: false;
|
|
1649
|
+
hasRuntimeDefault: false;
|
|
1650
|
+
enumValues: [string, ...string[]];
|
|
1651
|
+
baseColumn: never;
|
|
1652
|
+
identity: undefined;
|
|
1653
|
+
generated: undefined;
|
|
1654
|
+
}, {}, {}>;
|
|
1655
|
+
purpose: drizzle_orm_pg_core.PgColumn<{
|
|
1656
|
+
name: "purpose";
|
|
1657
|
+
tableName: "credential_setup_sessions";
|
|
1658
|
+
dataType: "string";
|
|
1659
|
+
columnType: "PgText";
|
|
1660
|
+
data: string;
|
|
1661
|
+
driverParam: string;
|
|
1662
|
+
notNull: true;
|
|
1663
|
+
hasDefault: false;
|
|
1664
|
+
isPrimaryKey: false;
|
|
1665
|
+
isAutoincrement: false;
|
|
1666
|
+
hasRuntimeDefault: false;
|
|
1667
|
+
enumValues: [string, ...string[]];
|
|
1668
|
+
baseColumn: never;
|
|
1669
|
+
identity: undefined;
|
|
1670
|
+
generated: undefined;
|
|
1671
|
+
}, {}, {}>;
|
|
1672
|
+
tokenHash: drizzle_orm_pg_core.PgColumn<{
|
|
1673
|
+
name: "token_hash";
|
|
1674
|
+
tableName: "credential_setup_sessions";
|
|
1675
|
+
dataType: "string";
|
|
1676
|
+
columnType: "PgText";
|
|
1677
|
+
data: string;
|
|
1678
|
+
driverParam: string;
|
|
1679
|
+
notNull: true;
|
|
1680
|
+
hasDefault: false;
|
|
1681
|
+
isPrimaryKey: false;
|
|
1682
|
+
isAutoincrement: false;
|
|
1683
|
+
hasRuntimeDefault: false;
|
|
1684
|
+
enumValues: [string, ...string[]];
|
|
1685
|
+
baseColumn: never;
|
|
1686
|
+
identity: undefined;
|
|
1687
|
+
generated: undefined;
|
|
1688
|
+
}, {}, {}>;
|
|
1689
|
+
expiresAt: drizzle_orm_pg_core.PgColumn<{
|
|
1690
|
+
name: "expires_at";
|
|
1691
|
+
tableName: "credential_setup_sessions";
|
|
1692
|
+
dataType: "string";
|
|
1693
|
+
columnType: "PgTimestampString";
|
|
1694
|
+
data: string;
|
|
1695
|
+
driverParam: string;
|
|
1696
|
+
notNull: true;
|
|
1697
|
+
hasDefault: false;
|
|
1698
|
+
isPrimaryKey: false;
|
|
1699
|
+
isAutoincrement: false;
|
|
1700
|
+
hasRuntimeDefault: false;
|
|
1701
|
+
enumValues: undefined;
|
|
1702
|
+
baseColumn: never;
|
|
1703
|
+
identity: undefined;
|
|
1704
|
+
generated: undefined;
|
|
1705
|
+
}, {}, {}>;
|
|
1706
|
+
consumedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1707
|
+
name: "consumed_at";
|
|
1708
|
+
tableName: "credential_setup_sessions";
|
|
1709
|
+
dataType: "string";
|
|
1710
|
+
columnType: "PgTimestampString";
|
|
1711
|
+
data: string;
|
|
1712
|
+
driverParam: string;
|
|
1713
|
+
notNull: false;
|
|
1714
|
+
hasDefault: false;
|
|
1715
|
+
isPrimaryKey: false;
|
|
1716
|
+
isAutoincrement: false;
|
|
1717
|
+
hasRuntimeDefault: false;
|
|
1718
|
+
enumValues: undefined;
|
|
1719
|
+
baseColumn: never;
|
|
1720
|
+
identity: undefined;
|
|
1721
|
+
generated: undefined;
|
|
1722
|
+
}, {}, {}>;
|
|
1723
|
+
revokedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1724
|
+
name: "revoked_at";
|
|
1725
|
+
tableName: "credential_setup_sessions";
|
|
1726
|
+
dataType: "string";
|
|
1727
|
+
columnType: "PgTimestampString";
|
|
1728
|
+
data: string;
|
|
1729
|
+
driverParam: string;
|
|
1730
|
+
notNull: false;
|
|
1731
|
+
hasDefault: false;
|
|
1732
|
+
isPrimaryKey: false;
|
|
1733
|
+
isAutoincrement: false;
|
|
1734
|
+
hasRuntimeDefault: false;
|
|
1735
|
+
enumValues: undefined;
|
|
1736
|
+
baseColumn: never;
|
|
1737
|
+
identity: undefined;
|
|
1738
|
+
generated: undefined;
|
|
1739
|
+
}, {}, {}>;
|
|
1740
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1741
|
+
name: "id";
|
|
1742
|
+
tableName: "credential_setup_sessions";
|
|
1743
|
+
dataType: "string";
|
|
1744
|
+
columnType: "PgText";
|
|
1745
|
+
data: string;
|
|
1746
|
+
driverParam: string;
|
|
1747
|
+
notNull: true;
|
|
1748
|
+
hasDefault: true;
|
|
1749
|
+
isPrimaryKey: true;
|
|
1750
|
+
isAutoincrement: false;
|
|
1751
|
+
hasRuntimeDefault: true;
|
|
1752
|
+
enumValues: [string, ...string[]];
|
|
1753
|
+
baseColumn: never;
|
|
1754
|
+
identity: undefined;
|
|
1755
|
+
generated: undefined;
|
|
1756
|
+
}, {}, {}>;
|
|
1757
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1758
|
+
name: "created_at";
|
|
1759
|
+
tableName: "credential_setup_sessions";
|
|
1760
|
+
dataType: "string";
|
|
1761
|
+
columnType: "PgTimestampString";
|
|
1762
|
+
data: string;
|
|
1763
|
+
driverParam: string;
|
|
1764
|
+
notNull: false;
|
|
1765
|
+
hasDefault: true;
|
|
1766
|
+
isPrimaryKey: false;
|
|
1767
|
+
isAutoincrement: false;
|
|
1768
|
+
hasRuntimeDefault: false;
|
|
1769
|
+
enumValues: undefined;
|
|
1770
|
+
baseColumn: never;
|
|
1771
|
+
identity: undefined;
|
|
1772
|
+
generated: undefined;
|
|
1773
|
+
}, {}, {}>;
|
|
1774
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1775
|
+
name: "updated_at";
|
|
1776
|
+
tableName: "credential_setup_sessions";
|
|
1777
|
+
dataType: "string";
|
|
1778
|
+
columnType: "PgTimestampString";
|
|
1779
|
+
data: string;
|
|
1780
|
+
driverParam: string;
|
|
1781
|
+
notNull: false;
|
|
1782
|
+
hasDefault: true;
|
|
1783
|
+
isPrimaryKey: false;
|
|
1784
|
+
isAutoincrement: false;
|
|
1785
|
+
hasRuntimeDefault: false;
|
|
1786
|
+
enumValues: undefined;
|
|
1787
|
+
baseColumn: never;
|
|
1788
|
+
identity: undefined;
|
|
1789
|
+
generated: undefined;
|
|
1790
|
+
}, {}, {}>;
|
|
1791
|
+
};
|
|
1792
|
+
dialect: "pg";
|
|
1793
|
+
}>;
|
|
1469
1794
|
readonly roles: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1470
1795
|
name: "roles";
|
|
1471
1796
|
schema: undefined;
|
|
@@ -1753,7 +2078,9 @@ type Permission = typeof permissionsTable.$inferSelect;
|
|
|
1753
2078
|
type NewPermission = typeof permissionsTable.$inferInsert;
|
|
1754
2079
|
type Token = typeof tokensTable.$inferSelect;
|
|
1755
2080
|
type NewToken = typeof tokensTable.$inferInsert;
|
|
2081
|
+
type CredentialSetupSession = typeof credentialSetupSessionsTable.$inferSelect;
|
|
2082
|
+
type NewCredentialSetupSession = typeof credentialSetupSessionsTable.$inferInsert;
|
|
1756
2083
|
type RolePermission = typeof rolePermissionsTable.$inferSelect;
|
|
1757
2084
|
type NewRolePermission = typeof rolePermissionsTable.$inferInsert;
|
|
1758
2085
|
|
|
1759
|
-
export { type NewOAuthAccount, type NewPermission, type NewRoleEntity, type NewRolePermission, type NewToken, type NewUser, type OAuthAccount, type Permission, type RoleEntity, type RolePermission, type Token, type User, authSchema, baseFields, oauthAccountsTable, permissionsTable, rolePermissionsTable, rolesTable, tokenStatusEnum, tokenTypeEnum, tokensTable, userStatusEnum, usersTable };
|
|
2086
|
+
export { type CredentialSetupSession, type NewCredentialSetupSession, type NewOAuthAccount, type NewPermission, type NewRoleEntity, type NewRolePermission, type NewToken, type NewUser, type OAuthAccount, type Permission, type RoleEntity, type RolePermission, type Token, type User, authSchema, baseFields, credentialSetupSessionsTable, oauthAccountsTable, permissionsTable, rolePermissionsTable, rolesTable, tokenStatusEnum, tokenTypeEnum, tokensTable, userStatusEnum, usersTable };
|
package/dist/schema/pg.js
CHANGED
|
@@ -74,6 +74,18 @@ var tokensTable = pgTable("tokens", {
|
|
|
74
74
|
userIdIdx: index("tokens_user_id_idx").on(table.userId),
|
|
75
75
|
expiresAtIdx: index("tokens_expires_at_idx").on(table.expiresAt)
|
|
76
76
|
}));
|
|
77
|
+
var credentialSetupSessionsTable = pgTable("credential_setup_sessions", {
|
|
78
|
+
...baseFields(16),
|
|
79
|
+
userId: text("user_id").references(() => usersTable.id, { onDelete: "cascade" }).notNull(),
|
|
80
|
+
purpose: text("purpose").notNull(),
|
|
81
|
+
tokenHash: text("token_hash").notNull().unique(),
|
|
82
|
+
expiresAt: timestamp("expires_at", { mode: "string" }).notNull(),
|
|
83
|
+
consumedAt: timestamp("consumed_at", { mode: "string" }),
|
|
84
|
+
revokedAt: timestamp("revoked_at", { mode: "string" })
|
|
85
|
+
}, (table) => ({
|
|
86
|
+
userPurposeIdx: index("credential_setup_sessions_user_purpose_idx").on(table.userId, table.purpose),
|
|
87
|
+
expiresAtIdx: index("credential_setup_sessions_expires_at_idx").on(table.expiresAt)
|
|
88
|
+
}));
|
|
77
89
|
var rolePermissionsTable = pgTable("role_permissions", {
|
|
78
90
|
roleId: text("role_id").notNull().references(() => rolesTable.id, { onDelete: "cascade" }),
|
|
79
91
|
permissionId: text("permission_id").notNull().references(() => permissionsTable.id, { onDelete: "cascade" }),
|
|
@@ -85,6 +97,7 @@ var authSchema = {
|
|
|
85
97
|
users: usersTable,
|
|
86
98
|
oauthAccounts: oauthAccountsTable,
|
|
87
99
|
tokens: tokensTable,
|
|
100
|
+
credentialSetupSessions: credentialSetupSessionsTable,
|
|
88
101
|
roles: rolesTable,
|
|
89
102
|
permissions: permissionsTable,
|
|
90
103
|
rolePermissions: rolePermissionsTable
|
|
@@ -92,6 +105,7 @@ var authSchema = {
|
|
|
92
105
|
export {
|
|
93
106
|
authSchema,
|
|
94
107
|
baseFields,
|
|
108
|
+
credentialSetupSessionsTable,
|
|
95
109
|
oauthAccountsTable,
|
|
96
110
|
permissionsTable,
|
|
97
111
|
rolePermissionsTable,
|