@tachybase/plugin-password-policy 1.0.6

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 (77) hide show
  1. package/README.md +1 -0
  2. package/client.d.ts +2 -0
  3. package/client.js +1 -0
  4. package/dist/client/IPFilterForm.d.ts +1 -0
  5. package/dist/client/PasswordAttemptForm.d.ts +1 -0
  6. package/dist/client/PasswordStrengthSettingsForm.d.ts +2 -0
  7. package/dist/client/SignInFailsTable.d.ts +2 -0
  8. package/dist/client/UserLocksTable.d.ts +2 -0
  9. package/dist/client/collections/signInFails.d.ts +2 -0
  10. package/dist/client/collections/userLocks.d.ts +2 -0
  11. package/dist/client/hooks/usePasswordStrength.d.ts +11 -0
  12. package/dist/client/hooks/usePasswordValidator.d.ts +16 -0
  13. package/dist/client/index.d.ts +5 -0
  14. package/dist/client/index.js +4 -0
  15. package/dist/client/locale.d.ts +6 -0
  16. package/dist/constants.d.ts +11 -0
  17. package/dist/constants.js +44 -0
  18. package/dist/externalVersion.js +10 -0
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.js +39 -0
  21. package/dist/locale/en-US.json +107 -0
  22. package/dist/locale/zh-CN.json +107 -0
  23. package/dist/node_modules/geoip-lite/LICENSE +50 -0
  24. package/dist/node_modules/geoip-lite/data/city.checksum +1 -0
  25. package/dist/node_modules/geoip-lite/data/country.checksum +1 -0
  26. package/dist/node_modules/geoip-lite/data/geoip-city-names.dat +0 -0
  27. package/dist/node_modules/geoip-lite/data/geoip-city.dat +0 -0
  28. package/dist/node_modules/geoip-lite/data/geoip-city6.dat +0 -0
  29. package/dist/node_modules/geoip-lite/data/geoip-country.dat +0 -0
  30. package/dist/node_modules/geoip-lite/data/geoip-country6.dat +0 -0
  31. package/dist/node_modules/geoip-lite/lib/fsWatcher.js +83 -0
  32. package/dist/node_modules/geoip-lite/lib/geoip.js +1 -0
  33. package/dist/node_modules/geoip-lite/lib/utils.js +98 -0
  34. package/dist/node_modules/geoip-lite/node_modules/.bin/rimraf +17 -0
  35. package/dist/node_modules/geoip-lite/package.json +1 -0
  36. package/dist/node_modules/geoip-lite/scripts/updatedb.js +685 -0
  37. package/dist/node_modules/geoip-lite/test/geo-lookup.js +56 -0
  38. package/dist/node_modules/geoip-lite/test/memory_usage.js +3 -0
  39. package/dist/node_modules/geoip-lite/test/tests.js +197 -0
  40. package/dist/server/actions/IpFilterController.d.ts +7 -0
  41. package/dist/server/actions/IpFilterController.js +124 -0
  42. package/dist/server/actions/PasswordAttemptController.d.ts +7 -0
  43. package/dist/server/actions/PasswordAttemptController.js +123 -0
  44. package/dist/server/actions/PasswordStrengthController.d.ts +7 -0
  45. package/dist/server/actions/PasswordStrengthController.js +123 -0
  46. package/dist/server/actions/SignInFailsController.d.ts +5 -0
  47. package/dist/server/actions/SignInFailsController.js +156 -0
  48. package/dist/server/actions/UserLocksController.d.ts +4 -0
  49. package/dist/server/actions/UserLocksController.js +102 -0
  50. package/dist/server/collections/ipFilter.d.ts +2 -0
  51. package/dist/server/collections/ipFilter.js +51 -0
  52. package/dist/server/collections/passwordAttempt.d.ts +2 -0
  53. package/dist/server/collections/passwordAttempt.js +55 -0
  54. package/dist/server/collections/passwordHistory.d.ts +2 -0
  55. package/dist/server/collections/passwordHistory.js +46 -0
  56. package/dist/server/collections/passwordStrengthConfig.d.ts +2 -0
  57. package/dist/server/collections/passwordStrengthConfig.js +59 -0
  58. package/dist/server/collections/signInFail.d.ts +2 -0
  59. package/dist/server/collections/signInFail.js +56 -0
  60. package/dist/server/collections/userLocks.d.ts +2 -0
  61. package/dist/server/collections/userLocks.js +51 -0
  62. package/dist/server/collections/users.d.ts +2 -0
  63. package/dist/server/collections/users.js +42 -0
  64. package/dist/server/index.d.ts +1 -0
  65. package/dist/server/index.js +33 -0
  66. package/dist/server/plugin.d.ts +5 -0
  67. package/dist/server/plugin.js +129 -0
  68. package/dist/server/services/IPFilterService.d.ts +49 -0
  69. package/dist/server/services/IPFilterService.js +270 -0
  70. package/dist/server/services/PasswordAttemptService.d.ts +75 -0
  71. package/dist/server/services/PasswordAttemptService.js +595 -0
  72. package/dist/server/services/PasswordStrengthService.d.ts +28 -0
  73. package/dist/server/services/PasswordStrengthService.js +313 -0
  74. package/dist/types/geoip-lite.d.js +0 -0
  75. package/package.json +25 -0
  76. package/server.d.ts +2 -0
  77. package/server.js +1 -0
@@ -0,0 +1,156 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __typeError = (msg) => {
8
+ throw TypeError(msg);
9
+ };
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
26
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
27
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
28
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
29
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
30
+ var __runInitializers = (array, flags, self, value) => {
31
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
32
+ return value;
33
+ };
34
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
35
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
36
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
37
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
38
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
39
+ return __privateGet(this, extra);
40
+ }, set [name](x) {
41
+ return __privateSet(this, extra, x);
42
+ } }, name));
43
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
44
+ for (var i = decorators.length - 1; i >= 0; i--) {
45
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
46
+ if (k) {
47
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
48
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
49
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
50
+ }
51
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
52
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
53
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
54
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
55
+ }
56
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
57
+ };
58
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
59
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
60
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
61
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
62
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
63
+ var SignInFailsController_exports = {};
64
+ __export(SignInFailsController_exports, {
65
+ SignInFailsController: () => SignInFailsController
66
+ });
67
+ module.exports = __toCommonJS(SignInFailsController_exports);
68
+ var import_utils = require("@tachybase/utils");
69
+ var _get_dec, _list_dec, _SignInFailsController_decorators, _init;
70
+ _SignInFailsController_decorators = [(0, import_utils.Controller)("signInFails")], _list_dec = [(0, import_utils.Action)("list")], _get_dec = [(0, import_utils.Action)("get")];
71
+ class SignInFailsController {
72
+ constructor() {
73
+ __runInitializers(_init, 5, this);
74
+ }
75
+ async list(ctx, next) {
76
+ const { pageSize = 20, page = 1, sort = ["-createdAt"], filter = {} } = ctx.action.params;
77
+ try {
78
+ const repo = ctx.db.getRepository("signInFails");
79
+ if (filter.username || filter.nickname) {
80
+ const userFilter = {};
81
+ if (filter.username) {
82
+ userFilter["username"] = filter.username;
83
+ delete filter.username;
84
+ }
85
+ if (filter.nickname) {
86
+ userFilter["nickname"] = filter.nickname;
87
+ delete filter.nickname;
88
+ }
89
+ const userRepo = ctx.db.getRepository("users");
90
+ const users = await userRepo.find({
91
+ filter: userFilter,
92
+ fields: ["id"]
93
+ });
94
+ if (users.length > 0) {
95
+ filter.userId = {
96
+ $in: users.map((user) => user.get("id"))
97
+ };
98
+ } else {
99
+ ctx.body = {
100
+ count: 0,
101
+ rows: [],
102
+ page: Number(page),
103
+ pageSize: Number(pageSize),
104
+ totalPage: 0
105
+ };
106
+ return next();
107
+ }
108
+ }
109
+ const limit = Number(pageSize);
110
+ const offset = (Number(page) - 1) * limit;
111
+ const [rows, count] = await repo.findAndCount({
112
+ filter,
113
+ appends: ["user"],
114
+ limit,
115
+ offset,
116
+ sort
117
+ });
118
+ ctx.body = {
119
+ count,
120
+ rows,
121
+ page: Number(page),
122
+ pageSize: Number(pageSize),
123
+ totalPage: Math.ceil(count / Number(pageSize))
124
+ };
125
+ } catch (error) {
126
+ ctx.app.logger.error("Failed to list sign-in fails:", error);
127
+ ctx.throw(500, ctx.t("Failed to load sign-in fails history", { ns: "plugin-password-policy" }));
128
+ }
129
+ return next();
130
+ }
131
+ async get(ctx, next) {
132
+ const { db } = ctx;
133
+ const { filterByTk } = ctx.action.params;
134
+ try {
135
+ const repo = db.getRepository("signInFails");
136
+ const result = await repo.findOne({
137
+ filterByTk,
138
+ appends: ["user"]
139
+ });
140
+ ctx.body = result;
141
+ } catch (error) {
142
+ ctx.app.logger.error("Failed to get sign-in fail record:", error);
143
+ ctx.throw(500, ctx.t("Failed to load sign-in fail record", { ns: "plugin-password-policy" }));
144
+ }
145
+ return next();
146
+ }
147
+ }
148
+ _init = __decoratorStart(null);
149
+ __decorateElement(_init, 1, "list", _list_dec, SignInFailsController);
150
+ __decorateElement(_init, 1, "get", _get_dec, SignInFailsController);
151
+ SignInFailsController = __decorateElement(_init, 0, "SignInFailsController", _SignInFailsController_decorators, SignInFailsController);
152
+ __runInitializers(_init, 1, SignInFailsController);
153
+ // Annotate the CommonJS export names for ESM import in node:
154
+ 0 && (module.exports = {
155
+ SignInFailsController
156
+ });
@@ -0,0 +1,4 @@
1
+ import { Context, Next } from '@tachybase/actions';
2
+ export declare class UserLocksController {
3
+ create(ctx: Context, next: Next): Promise<void>;
4
+ }
@@ -0,0 +1,102 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __typeError = (msg) => {
8
+ throw TypeError(msg);
9
+ };
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
26
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
27
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
28
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
29
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
30
+ var __runInitializers = (array, flags, self, value) => {
31
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
32
+ return value;
33
+ };
34
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
35
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
36
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
37
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
38
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
39
+ return __privateGet(this, extra);
40
+ }, set [name](x) {
41
+ return __privateSet(this, extra, x);
42
+ } }, name));
43
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
44
+ for (var i = decorators.length - 1; i >= 0; i--) {
45
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
46
+ if (k) {
47
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
48
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
49
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
50
+ }
51
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
52
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
53
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
54
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
55
+ }
56
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
57
+ };
58
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
59
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
60
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
61
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
62
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
63
+ var UserLocksController_exports = {};
64
+ __export(UserLocksController_exports, {
65
+ UserLocksController: () => UserLocksController
66
+ });
67
+ module.exports = __toCommonJS(UserLocksController_exports);
68
+ var import_utils = require("@tachybase/utils");
69
+ var _create_dec, _UserLocksController_decorators, _init;
70
+ _UserLocksController_decorators = [(0, import_utils.Controller)("userLocks")], _create_dec = [(0, import_utils.Action)("create")];
71
+ class UserLocksController {
72
+ constructor() {
73
+ __runInitializers(_init, 5, this);
74
+ }
75
+ async create(ctx, next) {
76
+ const { db } = ctx;
77
+ const now = /* @__PURE__ */ new Date();
78
+ const userLocksRepo = db.getRepository("userLocks");
79
+ await userLocksRepo.destroy({
80
+ filter: {
81
+ expireAt: {
82
+ $lt: now
83
+ }
84
+ }
85
+ });
86
+ const result = await userLocksRepo.create({
87
+ values: ctx.action.params.values
88
+ });
89
+ ctx.body = {
90
+ success: true,
91
+ data: result
92
+ };
93
+ }
94
+ }
95
+ _init = __decoratorStart(null);
96
+ __decorateElement(_init, 1, "create", _create_dec, UserLocksController);
97
+ UserLocksController = __decorateElement(_init, 0, "UserLocksController", _UserLocksController_decorators, UserLocksController);
98
+ __runInitializers(_init, 1, UserLocksController);
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ UserLocksController
102
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var ipFilter_exports = {};
19
+ __export(ipFilter_exports, {
20
+ default: () => ipFilter_default
21
+ });
22
+ module.exports = __toCommonJS(ipFilter_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var ipFilter_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "ipFilter",
29
+ createdAt: true,
30
+ updatedAt: true,
31
+ createdBy: true,
32
+ updatedBy: true,
33
+ fields: [
34
+ {
35
+ type: "text",
36
+ name: "allowList"
37
+ //换行分割,支持cidr 比如127.0.0.1/24这样
38
+ },
39
+ {
40
+ type: "text",
41
+ name: "blockList"
42
+ //换行分割
43
+ },
44
+ {
45
+ type: "boolean",
46
+ name: "allowFirst",
47
+ //白名单优先还是黑名单优先
48
+ default: true
49
+ }
50
+ ]
51
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,55 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var passwordAttempt_exports = {};
19
+ __export(passwordAttempt_exports, {
20
+ default: () => passwordAttempt_default
21
+ });
22
+ module.exports = __toCommonJS(passwordAttempt_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var passwordAttempt_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "passwordAttempt",
29
+ createdAt: true,
30
+ updatedAt: true,
31
+ createdBy: true,
32
+ updatedBy: true,
33
+ fields: [
34
+ {
35
+ type: "integer",
36
+ name: "windowSeconds"
37
+ // 规定时间:秒
38
+ },
39
+ {
40
+ type: "integer",
41
+ name: "maxAttempts"
42
+ // 规定时间内最大尝试次数
43
+ },
44
+ {
45
+ type: "integer",
46
+ name: "lockSeconds"
47
+ // 锁定时长:秒
48
+ },
49
+ {
50
+ type: "boolean",
51
+ name: "strictLock"
52
+ // 严格锁定,被锁定后限制使用,而不仅仅是限制登录
53
+ }
54
+ ]
55
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,46 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var passwordHistory_exports = {};
19
+ __export(passwordHistory_exports, {
20
+ default: () => passwordHistory_default
21
+ });
22
+ module.exports = __toCommonJS(passwordHistory_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var passwordHistory_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "passwordHistory",
29
+ createdAt: true,
30
+ updatedAt: false,
31
+ createdBy: false,
32
+ updatedBy: false,
33
+ fields: [
34
+ {
35
+ type: "belongsTo",
36
+ name: "user",
37
+ target: "users",
38
+ foreignKey: "userId",
39
+ onDelete: "CASCADE"
40
+ },
41
+ {
42
+ type: "password",
43
+ name: "password"
44
+ }
45
+ ]
46
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var passwordStrengthConfig_exports = {};
19
+ __export(passwordStrengthConfig_exports, {
20
+ default: () => passwordStrengthConfig_default
21
+ });
22
+ module.exports = __toCommonJS(passwordStrengthConfig_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var passwordStrengthConfig_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "passwordStrengthConfig",
29
+ createdAt: true,
30
+ updatedAt: true,
31
+ createdBy: true,
32
+ updatedBy: true,
33
+ fields: [
34
+ {
35
+ type: "integer",
36
+ name: "minLength",
37
+ // 最小长度
38
+ defaultValue: 8
39
+ },
40
+ {
41
+ type: "integer",
42
+ name: "strengthLevel",
43
+ // 强度级别:0-不限制,1-字母和数字,2-字母数字符号,3-数字大小写字母,4-数字大小写字母符号,5-三种以上字符
44
+ defaultValue: 0
45
+ },
46
+ {
47
+ type: "boolean",
48
+ name: "notContainUsername",
49
+ // 不能包含用户名
50
+ defaultValue: false
51
+ },
52
+ {
53
+ type: "integer",
54
+ name: "historyCount",
55
+ // 历史密码记录数量,0表示不限制
56
+ defaultValue: 0
57
+ }
58
+ ]
59
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,56 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var signInFail_exports = {};
19
+ __export(signInFail_exports, {
20
+ default: () => signInFail_default
21
+ });
22
+ module.exports = __toCommonJS(signInFail_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var signInFail_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "signInFails",
29
+ createdAt: true,
30
+ updatedAt: false,
31
+ createdBy: false,
32
+ updatedBy: false,
33
+ fields: [
34
+ {
35
+ type: "belongsTo",
36
+ name: "user",
37
+ target: "users",
38
+ targetField: "id",
39
+ foreignKey: "userId",
40
+ onDelete: "NO ACTION"
41
+ },
42
+ {
43
+ type: "boolean",
44
+ name: "status",
45
+ default: true
46
+ },
47
+ {
48
+ type: "string",
49
+ name: "ip"
50
+ },
51
+ {
52
+ type: "string",
53
+ name: "address"
54
+ }
55
+ ]
56
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionOptions;
2
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var userLocks_exports = {};
19
+ __export(userLocks_exports, {
20
+ default: () => userLocks_default
21
+ });
22
+ module.exports = __toCommonJS(userLocks_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var userLocks_default = (0, import_database.defineCollection)({
25
+ dumpRules: {
26
+ group: "user"
27
+ },
28
+ name: "userLocks",
29
+ createdAt: true,
30
+ updatedAt: true,
31
+ createdBy: true,
32
+ updatedBy: true,
33
+ fields: [
34
+ {
35
+ type: "bigInt",
36
+ name: "userId",
37
+ unique: true
38
+ },
39
+ {
40
+ type: "date",
41
+ name: "expireAt"
42
+ },
43
+ {
44
+ type: "belongsTo",
45
+ name: "user",
46
+ target: "users",
47
+ foreignKey: "userId",
48
+ onDelete: "CASCADE"
49
+ }
50
+ ]
51
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@tachybase/database").CollectionDef;
2
+ export default _default;
@@ -0,0 +1,42 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var users_exports = {};
19
+ __export(users_exports, {
20
+ default: () => users_default
21
+ });
22
+ module.exports = __toCommonJS(users_exports);
23
+ var import_database = require("@tachybase/database");
24
+ var users_default = (0, import_database.extendCollection)({
25
+ name: "users",
26
+ fields: [
27
+ {
28
+ type: "hasMany",
29
+ name: "signInFails",
30
+ target: "signInFails",
31
+ foreignKey: "userId",
32
+ onDelete: "NO ACTION"
33
+ },
34
+ {
35
+ type: "hasOne",
36
+ name: "lock",
37
+ target: "userLocks",
38
+ foreignKey: "userId",
39
+ onDelete: "CASCADE"
40
+ }
41
+ ]
42
+ });
@@ -0,0 +1 @@
1
+ export { default } from './plugin';