@ecmaos/types 0.4.2 → 0.4.3
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/users.d.ts +49 -2
- package/dist/users.d.ts.map +1 -1
- package/package.json +1 -1
- package/users.ts +54 -2
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
package/dist/users.d.ts
CHANGED
|
@@ -50,6 +50,23 @@ export interface AddUserOptions {
|
|
|
50
50
|
/** Skip writing to passwd file */
|
|
51
51
|
noWrite?: boolean;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Interface representing a passkey credential
|
|
55
|
+
*/
|
|
56
|
+
export interface Passkey {
|
|
57
|
+
/** Unique identifier for this passkey */
|
|
58
|
+
id: string;
|
|
59
|
+
/** Base64-encoded credential ID from WebAuthn */
|
|
60
|
+
credentialId: string;
|
|
61
|
+
/** Public key data (COSE format) */
|
|
62
|
+
publicKey: ArrayBuffer | Uint8Array;
|
|
63
|
+
/** Timestamp when passkey was created */
|
|
64
|
+
createdAt: number;
|
|
65
|
+
/** Timestamp when passkey was last used (optional) */
|
|
66
|
+
lastUsed?: number;
|
|
67
|
+
/** User-friendly name/description (optional) */
|
|
68
|
+
name?: string;
|
|
69
|
+
}
|
|
53
70
|
/**
|
|
54
71
|
* Interface for user management functionality
|
|
55
72
|
*/
|
|
@@ -74,9 +91,11 @@ export interface Users {
|
|
|
74
91
|
/**
|
|
75
92
|
* Login with credentials
|
|
76
93
|
* @param username - Username
|
|
77
|
-
* @param password - Password
|
|
94
|
+
* @param password - Password (optional if using passkey)
|
|
95
|
+
* @param passkeyCredential - Passkey credential (optional if using password)
|
|
78
96
|
*/
|
|
79
|
-
login(username: string, password
|
|
97
|
+
login(username: string, password?: string, passkeyCredential?: PublicKeyCredential): Promise<{
|
|
98
|
+
user: User;
|
|
80
99
|
cred: {
|
|
81
100
|
uid: number;
|
|
82
101
|
gid: number;
|
|
@@ -99,5 +118,33 @@ export interface Users {
|
|
|
99
118
|
* @param updates - User properties to update
|
|
100
119
|
*/
|
|
101
120
|
update(uid: UID, updates: Partial<User>): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Get all passkeys for a user
|
|
123
|
+
* @param uid - User ID
|
|
124
|
+
*/
|
|
125
|
+
getPasskeys(uid: UID): Promise<Passkey[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Save passkeys for a user
|
|
128
|
+
* @param uid - User ID
|
|
129
|
+
* @param passkeys - Array of passkeys to save
|
|
130
|
+
*/
|
|
131
|
+
savePasskeys(uid: UID, passkeys: Passkey[]): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Add a passkey to a user's collection
|
|
134
|
+
* @param uid - User ID
|
|
135
|
+
* @param passkey - Passkey to add
|
|
136
|
+
*/
|
|
137
|
+
addPasskey(uid: UID, passkey: Passkey): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Remove a passkey by ID
|
|
140
|
+
* @param uid - User ID
|
|
141
|
+
* @param passkeyId - Passkey ID to remove
|
|
142
|
+
*/
|
|
143
|
+
removePasskey(uid: UID, passkeyId: string): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Check if a user has any registered passkeys
|
|
146
|
+
* @param uid - User ID
|
|
147
|
+
*/
|
|
148
|
+
hasPasskeys(uid: UID): Promise<boolean>;
|
|
102
149
|
}
|
|
103
150
|
//# sourceMappingURL=users.d.ts.map
|
package/dist/users.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../users.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,mBAAmB;AACnB,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AAExB,oBAAoB;AACpB,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AAExB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe;IACf,GAAG,EAAE,MAAM,CAAA;IACX,wBAAwB;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc;IACd,GAAG,EAAE,MAAM,CAAA;IACX,0CAA0C;IAC1C,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;QAChC,iBAAiB;QACjB,SAAS,EAAE,UAAU,CAAA;KACtB,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAE5B;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjE;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,CAAA;IAE/B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../users.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/users.ts
CHANGED
|
@@ -57,6 +57,24 @@ export interface AddUserOptions {
|
|
|
57
57
|
noWrite?: boolean
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Interface representing a passkey credential
|
|
62
|
+
*/
|
|
63
|
+
export interface Passkey {
|
|
64
|
+
/** Unique identifier for this passkey */
|
|
65
|
+
id: string
|
|
66
|
+
/** Base64-encoded credential ID from WebAuthn */
|
|
67
|
+
credentialId: string
|
|
68
|
+
/** Public key data (COSE format) */
|
|
69
|
+
publicKey: ArrayBuffer | Uint8Array
|
|
70
|
+
/** Timestamp when passkey was created */
|
|
71
|
+
createdAt: number
|
|
72
|
+
/** Timestamp when passkey was last used (optional) */
|
|
73
|
+
lastUsed?: number
|
|
74
|
+
/** User-friendly name/description (optional) */
|
|
75
|
+
name?: string
|
|
76
|
+
}
|
|
77
|
+
|
|
60
78
|
/**
|
|
61
79
|
* Interface for user management functionality
|
|
62
80
|
*/
|
|
@@ -85,9 +103,10 @@ export interface Users {
|
|
|
85
103
|
/**
|
|
86
104
|
* Login with credentials
|
|
87
105
|
* @param username - Username
|
|
88
|
-
* @param password - Password
|
|
106
|
+
* @param password - Password (optional if using passkey)
|
|
107
|
+
* @param passkeyCredential - Passkey credential (optional if using password)
|
|
89
108
|
*/
|
|
90
|
-
login(username: string, password
|
|
109
|
+
login(username: string, password?: string, passkeyCredential?: PublicKeyCredential): Promise<{ user: User, cred: { uid: number, gid: number } }>
|
|
91
110
|
|
|
92
111
|
/**
|
|
93
112
|
* Change a user's password
|
|
@@ -108,4 +127,37 @@ export interface Users {
|
|
|
108
127
|
* @param updates - User properties to update
|
|
109
128
|
*/
|
|
110
129
|
update(uid: UID, updates: Partial<User>): Promise<void>
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get all passkeys for a user
|
|
133
|
+
* @param uid - User ID
|
|
134
|
+
*/
|
|
135
|
+
getPasskeys(uid: UID): Promise<Passkey[]>
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Save passkeys for a user
|
|
139
|
+
* @param uid - User ID
|
|
140
|
+
* @param passkeys - Array of passkeys to save
|
|
141
|
+
*/
|
|
142
|
+
savePasskeys(uid: UID, passkeys: Passkey[]): Promise<void>
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Add a passkey to a user's collection
|
|
146
|
+
* @param uid - User ID
|
|
147
|
+
* @param passkey - Passkey to add
|
|
148
|
+
*/
|
|
149
|
+
addPasskey(uid: UID, passkey: Passkey): Promise<void>
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Remove a passkey by ID
|
|
153
|
+
* @param uid - User ID
|
|
154
|
+
* @param passkeyId - Passkey ID to remove
|
|
155
|
+
*/
|
|
156
|
+
removePasskey(uid: UID, passkeyId: string): Promise<void>
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Check if a user has any registered passkeys
|
|
160
|
+
* @param uid - User ID
|
|
161
|
+
*/
|
|
162
|
+
hasPasskeys(uid: UID): Promise<boolean>
|
|
111
163
|
}
|