@ztimson/momentum 0.50.6 → 0.50.7
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/dist/auth.d.ts +32 -5
- package/dist/auth.d.ts.map +1 -1
- package/dist/index.cjs +50 -18
- package/dist/index.mjs +50 -18
- package/package.json +2 -2
package/dist/auth.d.ts
CHANGED
|
@@ -1,13 +1,41 @@
|
|
|
1
1
|
import { Api } from './api';
|
|
2
2
|
import { PathEvent, PathEventEmitter } from '@ztimson/utils';
|
|
3
|
+
import { Meta } from './core';
|
|
3
4
|
import { User } from './users';
|
|
4
5
|
export type AuthOptions = {
|
|
5
6
|
/** Path to login page */
|
|
6
7
|
loginUrl?: string;
|
|
7
8
|
};
|
|
9
|
+
export type UserToken = Meta & {
|
|
10
|
+
name: string;
|
|
11
|
+
owner: string;
|
|
12
|
+
token: string;
|
|
13
|
+
expire: null | Date;
|
|
14
|
+
};
|
|
15
|
+
export declare class Token extends PathEventEmitter {
|
|
16
|
+
private api;
|
|
17
|
+
constructor(api: Api);
|
|
18
|
+
all(username: string): Promise<UserToken[]>;
|
|
19
|
+
create(token: {
|
|
20
|
+
name: string;
|
|
21
|
+
owner: string;
|
|
22
|
+
expire: null | Date;
|
|
23
|
+
}): Promise<UserToken>;
|
|
24
|
+
delete(id: string): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare class Totp {
|
|
27
|
+
private api;
|
|
28
|
+
constructor(api: Api);
|
|
29
|
+
disable(username: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
30
|
+
enable: (username: string) => import('@ztimson/utils').PromiseProgress<void>;
|
|
31
|
+
reset(username: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
32
|
+
setup(username: string, method?: string, totp?: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
33
|
+
}
|
|
8
34
|
export declare class Auth extends PathEventEmitter {
|
|
9
35
|
private readonly opts;
|
|
10
36
|
private readonly api;
|
|
37
|
+
token: Token;
|
|
38
|
+
totp: Totp;
|
|
11
39
|
private _permissions;
|
|
12
40
|
get permissions(): string[];
|
|
13
41
|
set permissions(perms: string[]);
|
|
@@ -21,7 +49,10 @@ export declare class Auth extends PathEventEmitter {
|
|
|
21
49
|
hasFatal: (...events: (string | PathEvent)[]) => void;
|
|
22
50
|
hasAllFatal: (...events: (string | PathEvent)[]) => void;
|
|
23
51
|
knownHost(host?: string): Promise<void>;
|
|
24
|
-
login(username: string, password: string,
|
|
52
|
+
login(username: string, password: string, opts?: {
|
|
53
|
+
totp?: string;
|
|
54
|
+
expire?: number | Date | null;
|
|
55
|
+
}): Promise<User | null>;
|
|
25
56
|
loginRedirect(host?: string): Promise<string>;
|
|
26
57
|
logout(): void;
|
|
27
58
|
register(u: Partial<User> & {
|
|
@@ -36,9 +67,5 @@ export declare class Auth extends PathEventEmitter {
|
|
|
36
67
|
permissions: string[];
|
|
37
68
|
} | null>;
|
|
38
69
|
updatePassword(username: string, password: string, oldPassword?: string): Promise<void>;
|
|
39
|
-
disableTotp(username: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
40
|
-
enableTotp: (username: string) => import('@ztimson/utils').PromiseProgress<void>;
|
|
41
|
-
resetTotp(username: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
42
|
-
setupTotp(username: string, method?: string, totp?: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
43
70
|
}
|
|
44
71
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAiB,SAAS,EAAE,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACzB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAA;AAED,qBAAa,IAAK,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1128,10 +1128,51 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
1128
1128
|
});
|
|
1129
1129
|
}
|
|
1130
1130
|
}
|
|
1131
|
+
class Token extends PathEventEmitter {
|
|
1132
|
+
constructor(api) {
|
|
1133
|
+
super();
|
|
1134
|
+
this.api = api;
|
|
1135
|
+
}
|
|
1136
|
+
all(username) {
|
|
1137
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${username}` }).then((resp) => {
|
|
1138
|
+
this.emit(PES`token/${username}:r`, resp);
|
|
1139
|
+
return resp;
|
|
1140
|
+
});
|
|
1141
|
+
}
|
|
1142
|
+
create(token) {
|
|
1143
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${token.owner}`, body: token }).then((resp) => {
|
|
1144
|
+
this.emit(PES`token/${token.owner}:c`, token);
|
|
1145
|
+
return resp;
|
|
1146
|
+
});
|
|
1147
|
+
}
|
|
1148
|
+
delete(id) {
|
|
1149
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${id}`, method: "DELETE" }).then(() => this.emit(PES`token/${id}:d`, id));
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
class Totp {
|
|
1153
|
+
constructor(api) {
|
|
1154
|
+
__publicField(this, "enable", this.reset);
|
|
1155
|
+
this.api = api;
|
|
1156
|
+
}
|
|
1157
|
+
disable(username) {
|
|
1158
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, method: "DELETE" });
|
|
1159
|
+
}
|
|
1160
|
+
reset(username) {
|
|
1161
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, method: "POST" });
|
|
1162
|
+
}
|
|
1163
|
+
setup(username, method = "app", totp) {
|
|
1164
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, body: clean({
|
|
1165
|
+
method,
|
|
1166
|
+
totp
|
|
1167
|
+
}) });
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1131
1170
|
class Auth extends PathEventEmitter {
|
|
1132
1171
|
constructor(api, opts = {}) {
|
|
1133
1172
|
super();
|
|
1134
1173
|
__publicField(this, "api");
|
|
1174
|
+
__publicField(this, "token");
|
|
1175
|
+
__publicField(this, "totp");
|
|
1135
1176
|
__publicField(this, "_permissions", []);
|
|
1136
1177
|
__publicField(this, "_user");
|
|
1137
1178
|
// Permission helpers
|
|
@@ -1140,9 +1181,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
1140
1181
|
__publicField(this, "hasAll", (...events) => PathEvent.hasAll(this.permissions, ...events));
|
|
1141
1182
|
__publicField(this, "hasFatal", (...events) => PathEvent.hasFatal(this.permissions, ...events));
|
|
1142
1183
|
__publicField(this, "hasAllFatal", (...events) => PathEvent.hasAllFatal(this.permissions, ...events));
|
|
1143
|
-
__publicField(this, "enableTotp", this.resetTotp);
|
|
1144
1184
|
this.opts = opts;
|
|
1145
1185
|
this.api = typeof api == "string" ? new Api(api) : api;
|
|
1186
|
+
this.token = new Token(this.api);
|
|
1187
|
+
this.totp = new Totp(this.api);
|
|
1188
|
+
this.relayEvents(this.token);
|
|
1146
1189
|
this.opts = {
|
|
1147
1190
|
loginUrl: this.api.url + "/ui/#/login",
|
|
1148
1191
|
...this.opts
|
|
@@ -1185,17 +1228,17 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
1185
1228
|
if (host.startsWith("/")) return Promise.resolve();
|
|
1186
1229
|
return this.api.request({ url: `/api/auth/known-host?host=${encodeURI(new URL(host).origin)}` });
|
|
1187
1230
|
}
|
|
1188
|
-
login(username, password,
|
|
1231
|
+
login(username, password, opts) {
|
|
1189
1232
|
if (!username || !password) throw new Error("Cannot login, missing username or password");
|
|
1190
1233
|
return this.api.request({
|
|
1191
1234
|
url: "/api/auth/login",
|
|
1192
1235
|
headers: { Authorization: void 0 },
|
|
1193
1236
|
method: "POST",
|
|
1194
|
-
body: {
|
|
1237
|
+
body: clean({
|
|
1195
1238
|
username: username.trim(),
|
|
1196
1239
|
password: password.trim(),
|
|
1197
|
-
|
|
1198
|
-
}
|
|
1240
|
+
...opts
|
|
1241
|
+
}, true)
|
|
1199
1242
|
}).then(async (resp) => {
|
|
1200
1243
|
this.api.token = (resp == null ? void 0 : resp.token) || null;
|
|
1201
1244
|
const user = await this.once("auth/user");
|
|
@@ -1271,19 +1314,6 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
1271
1314
|
if (resp == null ? void 0 : resp.token) this.api.token = resp.token;
|
|
1272
1315
|
});
|
|
1273
1316
|
}
|
|
1274
|
-
// TOTP ============================================================================================================
|
|
1275
|
-
disableTotp(username) {
|
|
1276
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, method: "DELETE" });
|
|
1277
|
-
}
|
|
1278
|
-
resetTotp(username) {
|
|
1279
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, method: "POST" });
|
|
1280
|
-
}
|
|
1281
|
-
setupTotp(username, method = "app", totp) {
|
|
1282
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, body: clean({
|
|
1283
|
-
method,
|
|
1284
|
-
totp
|
|
1285
|
-
}) });
|
|
1286
|
-
}
|
|
1287
1317
|
}
|
|
1288
1318
|
class Client extends PathEventEmitter {
|
|
1289
1319
|
constructor(api, settings) {
|
|
@@ -2260,6 +2290,8 @@ ${log}`;
|
|
|
2260
2290
|
exports2.Socket = Socket;
|
|
2261
2291
|
exports2.Static = Static;
|
|
2262
2292
|
exports2.Storage = Storage$1;
|
|
2293
|
+
exports2.Token = Token;
|
|
2294
|
+
exports2.Totp = Totp;
|
|
2263
2295
|
exports2.Users = Users;
|
|
2264
2296
|
Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
|
|
2265
2297
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1124,10 +1124,51 @@ class Analytics extends PathEventEmitter {
|
|
|
1124
1124
|
});
|
|
1125
1125
|
}
|
|
1126
1126
|
}
|
|
1127
|
+
class Token extends PathEventEmitter {
|
|
1128
|
+
constructor(api) {
|
|
1129
|
+
super();
|
|
1130
|
+
this.api = api;
|
|
1131
|
+
}
|
|
1132
|
+
all(username) {
|
|
1133
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${username}` }).then((resp) => {
|
|
1134
|
+
this.emit(PES`token/${username}:r`, resp);
|
|
1135
|
+
return resp;
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
create(token) {
|
|
1139
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${token.owner}`, body: token }).then((resp) => {
|
|
1140
|
+
this.emit(PES`token/${token.owner}:c`, token);
|
|
1141
|
+
return resp;
|
|
1142
|
+
});
|
|
1143
|
+
}
|
|
1144
|
+
delete(id) {
|
|
1145
|
+
return this.api.request({ url: "/" + PES`api/auth/tokens/${id}`, method: "DELETE" }).then(() => this.emit(PES`token/${id}:d`, id));
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
class Totp {
|
|
1149
|
+
constructor(api) {
|
|
1150
|
+
__publicField(this, "enable", this.reset);
|
|
1151
|
+
this.api = api;
|
|
1152
|
+
}
|
|
1153
|
+
disable(username) {
|
|
1154
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, method: "DELETE" });
|
|
1155
|
+
}
|
|
1156
|
+
reset(username) {
|
|
1157
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, method: "POST" });
|
|
1158
|
+
}
|
|
1159
|
+
setup(username, method = "app", totp) {
|
|
1160
|
+
return this.api.request({ url: "/" + PES`api/auth/totp/${username}`, body: clean({
|
|
1161
|
+
method,
|
|
1162
|
+
totp
|
|
1163
|
+
}) });
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1127
1166
|
class Auth extends PathEventEmitter {
|
|
1128
1167
|
constructor(api, opts = {}) {
|
|
1129
1168
|
super();
|
|
1130
1169
|
__publicField(this, "api");
|
|
1170
|
+
__publicField(this, "token");
|
|
1171
|
+
__publicField(this, "totp");
|
|
1131
1172
|
__publicField(this, "_permissions", []);
|
|
1132
1173
|
__publicField(this, "_user");
|
|
1133
1174
|
// Permission helpers
|
|
@@ -1136,9 +1177,11 @@ class Auth extends PathEventEmitter {
|
|
|
1136
1177
|
__publicField(this, "hasAll", (...events) => PathEvent.hasAll(this.permissions, ...events));
|
|
1137
1178
|
__publicField(this, "hasFatal", (...events) => PathEvent.hasFatal(this.permissions, ...events));
|
|
1138
1179
|
__publicField(this, "hasAllFatal", (...events) => PathEvent.hasAllFatal(this.permissions, ...events));
|
|
1139
|
-
__publicField(this, "enableTotp", this.resetTotp);
|
|
1140
1180
|
this.opts = opts;
|
|
1141
1181
|
this.api = typeof api == "string" ? new Api(api) : api;
|
|
1182
|
+
this.token = new Token(this.api);
|
|
1183
|
+
this.totp = new Totp(this.api);
|
|
1184
|
+
this.relayEvents(this.token);
|
|
1142
1185
|
this.opts = {
|
|
1143
1186
|
loginUrl: this.api.url + "/ui/#/login",
|
|
1144
1187
|
...this.opts
|
|
@@ -1181,17 +1224,17 @@ class Auth extends PathEventEmitter {
|
|
|
1181
1224
|
if (host.startsWith("/")) return Promise.resolve();
|
|
1182
1225
|
return this.api.request({ url: `/api/auth/known-host?host=${encodeURI(new URL(host).origin)}` });
|
|
1183
1226
|
}
|
|
1184
|
-
login(username, password,
|
|
1227
|
+
login(username, password, opts) {
|
|
1185
1228
|
if (!username || !password) throw new Error("Cannot login, missing username or password");
|
|
1186
1229
|
return this.api.request({
|
|
1187
1230
|
url: "/api/auth/login",
|
|
1188
1231
|
headers: { Authorization: void 0 },
|
|
1189
1232
|
method: "POST",
|
|
1190
|
-
body: {
|
|
1233
|
+
body: clean({
|
|
1191
1234
|
username: username.trim(),
|
|
1192
1235
|
password: password.trim(),
|
|
1193
|
-
|
|
1194
|
-
}
|
|
1236
|
+
...opts
|
|
1237
|
+
}, true)
|
|
1195
1238
|
}).then(async (resp) => {
|
|
1196
1239
|
this.api.token = (resp == null ? void 0 : resp.token) || null;
|
|
1197
1240
|
const user = await this.once("auth/user");
|
|
@@ -1267,19 +1310,6 @@ class Auth extends PathEventEmitter {
|
|
|
1267
1310
|
if (resp == null ? void 0 : resp.token) this.api.token = resp.token;
|
|
1268
1311
|
});
|
|
1269
1312
|
}
|
|
1270
|
-
// TOTP ============================================================================================================
|
|
1271
|
-
disableTotp(username) {
|
|
1272
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, method: "DELETE" });
|
|
1273
|
-
}
|
|
1274
|
-
resetTotp(username) {
|
|
1275
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, method: "POST" });
|
|
1276
|
-
}
|
|
1277
|
-
setupTotp(username, method = "app", totp) {
|
|
1278
|
-
return this.api.request({ url: `/api/auth/totp/${username}`, body: clean({
|
|
1279
|
-
method,
|
|
1280
|
-
totp
|
|
1281
|
-
}) });
|
|
1282
|
-
}
|
|
1283
1313
|
}
|
|
1284
1314
|
class Client extends PathEventEmitter {
|
|
1285
1315
|
constructor(api, settings) {
|
|
@@ -2257,5 +2287,7 @@ export {
|
|
|
2257
2287
|
Socket,
|
|
2258
2288
|
Static,
|
|
2259
2289
|
Storage$1 as Storage,
|
|
2290
|
+
Token,
|
|
2291
|
+
Totp,
|
|
2260
2292
|
Users
|
|
2261
2293
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ztimson/momentum",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.7",
|
|
4
4
|
"description": "Client library for momentum",
|
|
5
5
|
"keywords": ["Momentum"],
|
|
6
6
|
"author": "Zak Timson <zaktimson@gmail.com>",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"postbuild": "node -e \"const fs=require('fs');fs.cpSync('dist/index.mjs','../server/public/momentum.mjs');fs.cpSync('dist/index.cjs','../server/public/momentum.js')\""
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@ztimson/utils": "0.23.
|
|
27
|
+
"@ztimson/utils": "0.23.8",
|
|
28
28
|
"var-persist": "^1.0.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|