@opengis/fastify-table 2.6.2 → 2.6.4
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 +86 -86
- package/dist/functions.js +20 -20
- package/dist/module/core/cls/constraint_action.json +9 -9
- package/dist/module/core/cls/constraint_matchtype.json +5 -5
- package/dist/module/core/cls/constraint_type_full.json +17 -17
- package/dist/module/core/cls/core.user_type.json +13 -13
- package/dist/module/core/pt/schemaItem.pt.hbs +17 -17
- package/dist/module/core/select/core.user_mentioned.json +3 -0
- package/dist/module/core/select/core.user_mentioned.sql +1 -1
- package/dist/script/adduser +14 -14
- package/dist/script/dump.js +48 -48
- package/dist/script/dump.ts +216 -216
- package/dist/script/migrate.ts +23 -23
- package/dist/server/helpers/core/badge.js +1 -1
- package/dist/server/helpers/list/descriptionList.js +8 -8
- package/dist/server/helpers/list/tableList.js +4 -4
- package/dist/server/helpers/list/utils/button.js +1 -1
- package/dist/server/helpers/list/utils/buttonDel.js +3 -3
- package/dist/server/helpers/list/utils/buttonEdit.js +3 -3
- package/dist/server/helpers/utils/button.js +1 -1
- package/dist/server/helpers/utils/buttonAdd.js +15 -15
- package/dist/server/helpers/utils/buttonDel.js +11 -11
- package/dist/server/helpers/utils/buttonEdit.js +3 -3
- package/dist/server/migrations/0.sql +99 -99
- package/dist/server/migrations/1_users.sql +145 -145
- package/dist/server/migrations/cls.sql +105 -105
- package/dist/server/migrations/context.sql +136 -136
- package/dist/server/migrations/dictionaries.sql +78 -78
- package/dist/server/migrations/oauth.sql +79 -79
- package/dist/server/migrations/properties.sql +115 -115
- package/dist/server/migrations/roles.sql +201 -201
- package/dist/server/migrations/template.sql +43 -43
- package/dist/server/plugins/access/funcs/getUserPermissions.js +7 -7
- package/dist/server/plugins/auth/funcs/authorizeUser.js +4 -4
- package/dist/server/plugins/auth/funcs/getQuery.js +20 -20
- package/dist/server/plugins/auth/index.js +3 -3
- package/dist/server/plugins/crud/funcs/dataUpdate.js +7 -7
- package/dist/server/plugins/crud/funcs/getAccess.js +14 -14
- package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +6 -6
- package/dist/server/plugins/crud/funcs/utils/logChanges.js +18 -18
- package/dist/server/plugins/grpc/utils/convertp.proto +143 -143
- package/dist/server/plugins/grpc/utils/htmlTemplate.js +10 -10
- package/dist/server/plugins/grpc/utils/office2pdf.proto +13 -13
- package/dist/server/plugins/metric/loggerSystem.js +1 -1
- package/dist/server/plugins/pg/funcs/autoIndex.js +5 -5
- package/dist/server/plugins/pg/funcs/getMeta.js +15 -15
- package/dist/server/plugins/pg/funcs/init.js +36 -36
- package/dist/server/plugins/sqlite/funcs/init.js +22 -22
- package/dist/server/plugins/table/funcs/getData.js +13 -13
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +1 -1
- package/dist/server/plugins/table/funcs/getSelect.js +1 -1
- package/dist/server/plugins/table/funcs/gisIRColumn.js +3 -3
- package/dist/server/plugins/usercls/index.js +2 -2
- package/dist/server/routes/access/controllers/access.group.js +6 -6
- package/dist/server/routes/access/controllers/access.group.post.js +3 -3
- package/dist/server/routes/access/controllers/access.interface.js +14 -14
- package/dist/server/routes/access/controllers/access.user.js +6 -6
- package/dist/server/routes/auth/controllers/2factor/providers/totp.js +5 -5
- package/dist/server/routes/auth/controllers/2factor/qrcode.js +1 -1
- package/dist/server/routes/auth/controllers/2factor/recovery.js +1 -1
- package/dist/server/routes/auth/controllers/2factor/verify.js +1 -1
- package/dist/server/routes/auth/controllers/core/getUserInfo.js +33 -33
- package/dist/server/routes/auth/controllers/core/passwordRecovery.js +1 -1
- package/dist/server/routes/auth/controllers/core/registration.js +2 -2
- package/dist/server/routes/auth/controllers/page/login2faTemplate.js +1 -1
- package/dist/server/routes/crud/functions/deleteTableRelation.js +9 -9
- package/dist/server/routes/crud/functions/updateTableRelation.js +9 -9
- package/dist/server/routes/file/controllers/resizeAll.js +7 -7
- package/dist/server/routes/grpc/controllers/file2geojson.js +13 -13
- package/dist/server/routes/menu/controllers/getMenu.js +9 -9
- package/dist/server/routes/notifications/controllers/readNotifications.js +4 -4
- package/dist/server/routes/notifications/controllers/userNotifications.js +3 -3
- package/dist/server/routes/table/controllers/card.js +1 -1
- package/dist/server/routes/table/controllers/filter.js +6 -6
- package/dist/server/routes/table/controllers/form.js +1 -1
- package/dist/server/routes/table/controllers/getFormByTable.js +6 -6
- package/dist/server/routes/table/controllers/suggest.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/suggest.js +33 -22
- package/dist/server/routes/table/controllers/tableData.js +2 -2
- package/dist/server/routes/table/controllers/tableInfo.js +10 -10
- package/dist/server/routes/table/functions/getData.js +13 -13
- package/dist/server/routes/table/schema.d.ts +5 -0
- package/dist/server/routes/table/schema.d.ts.map +1 -1
- package/dist/server/routes/table/schema.js +2 -1
- package/dist/server/routes/widget/controllers/widget.get.js +33 -33
- package/dist/server/routes/widget/controllers/widget.set.js +4 -4
- package/dist/server/routes/widget/services/widget.entity.get.js +33 -33
- package/dist/server/routes/widget/services/widget.entity.set.js +4 -4
- package/dist/server/templates/page/2factor-recovery.html +101 -101
- package/dist/server/templates/page/2factor.html +140 -140
- package/dist/server/templates/page/login.html +90 -90
- package/dist/server/templates/pt/recovery-codes-email-template.hbs +12 -12
- package/dist/server/templates/pt/recovery-password-email-template.html +20 -20
- package/package.json +99 -99
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" dir="">
|
|
3
|
-
<head>
|
|
4
|
-
<!-- scripts -->
|
|
5
|
-
<script src="https://cdn.tailwindcss.com"></script>
|
|
6
|
-
</head>
|
|
7
|
-
<body class="bg-white ">
|
|
8
|
-
<main class="flex h-[90vh] justify-center items-center">
|
|
9
|
-
<div class="space-y-8 w-[385px]">
|
|
10
|
-
<div class="text-center">
|
|
11
|
-
{{#if settings.admin.logo}}
|
|
12
|
-
<img style="margin-left: auto; margin-right: auto; display: block;" src="{{settings.admin.logo}}" alt="logo">
|
|
13
|
-
{{/if}}
|
|
14
|
-
<h2 class="font-medium text-xl text-gray-800 ">
|
|
15
|
-
{{#if settings.admin.title}}
|
|
16
|
-
{{settings.admin.title}}
|
|
17
|
-
{{^}}
|
|
18
|
-
Вхід в систему
|
|
19
|
-
{{/if}}
|
|
20
|
-
</h2>
|
|
21
|
-
</div>
|
|
22
|
-
<div id="login_error" style="color: maroon;font-weight: 500;"></div>
|
|
23
|
-
<form action="/api/login" method="get" class="space-y-3">
|
|
24
|
-
<div>
|
|
25
|
-
<label for="hs-pro-shlgfem" class="sr-only">Email</label>
|
|
26
|
-
<input id="hs-pro-shlgfem" type="text" name="username"
|
|
27
|
-
class="py-3 px-4 block w-full border border-gray-200 rounded-lg sm:text-sm placeholder:text-gray-400 focus:outline-none h-[50px] focus:border-indigo-500 focus:border-2 disabled:opacity-50 disabled:pointer-events-none "
|
|
28
|
-
placeholder="Email">
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
<div>
|
|
32
|
-
<label for="hs-pro-shlgfps" class="sr-only">Password</label>
|
|
33
|
-
<div class="relative">
|
|
34
|
-
<input id="hs-pro-shlgfps" name="password" type="password"
|
|
35
|
-
class="py-3 px-4 block w-full border border-gray-200 rounded-lg sm:text-sm placeholder:text-gray-400 focus:border-indigo-500 focus:outline-none h-[50px] focus:border-indigo-500 focus:border-2 disabled:opacity-50 disabled:pointer-events-none "
|
|
36
|
-
placeholder="Password">
|
|
37
|
-
<button type="button" data-hs-toggle-password="{
|
|
38
|
-
"target": "#hs-pro-shlgfps"
|
|
39
|
-
}"
|
|
40
|
-
class="absolute inset-y-0 end-0 flex items-center z-20 px-3 cursor-pointer text-gray-400 rounded-e-md focus:outline-none">
|
|
41
|
-
<!--svg class="shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
|
42
|
-
viewBox="0 0 16 16">
|
|
43
|
-
<path class="hs-password-active:hidden"
|
|
44
|
-
d="M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z">
|
|
45
|
-
</path>
|
|
46
|
-
<path class="hs-password-active:hidden"
|
|
47
|
-
d="M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z">
|
|
48
|
-
</path>
|
|
49
|
-
<path class="hs-password-active:hidden"
|
|
50
|
-
d="M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z">
|
|
51
|
-
</path>
|
|
52
|
-
<path class="hidden hs-password-active:block"
|
|
53
|
-
d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z">
|
|
54
|
-
</path>
|
|
55
|
-
<path class="hidden hs-password-active:block"
|
|
56
|
-
d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"></path>
|
|
57
|
-
</svg-->
|
|
58
|
-
</button>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
<div class="flex flex-wrap justify-between items-center gap-3">
|
|
63
|
-
<div class="flex gap-x-1">
|
|
64
|
-
<input type="checkbox" name="keep"
|
|
65
|
-
class="shrink-0 border-gray-300 size-[18px] rounded text-indigo-600 focus:ring-indigo-600 disabled:opacity-50 disabled:pointer-events-none "
|
|
66
|
-
id="hs-pro-shlgfemch">
|
|
67
|
-
<label for="hs-pro-shlgfemch" class="text-[13px] text-gray-500 ms-1.5">
|
|
68
|
-
Remember me
|
|
69
|
-
</label>
|
|
70
|
-
</div>
|
|
71
|
-
<a class="text-[13px] text-gray-500 underline underline-offset-4 hover:text-indigo-600 focus:outline-none focus:text-indigo-600 "
|
|
72
|
-
href="#">Forgot your password?</a>
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
<div class="space-y-4">
|
|
76
|
-
<button type="submit"
|
|
77
|
-
class="py-3 px-4 w-full inline-flex justify-center items-center gap-x-2 sm:text-sm font-medium rounded-lg border border-transparent bg-indigo-600 text-white hover:bg-indigo-700 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-indigo-700">
|
|
78
|
-
Log in
|
|
79
|
-
</button>
|
|
80
|
-
</div>
|
|
81
|
-
</form>
|
|
82
|
-
</div>
|
|
83
|
-
</main>
|
|
84
|
-
</body>
|
|
85
|
-
<script>
|
|
86
|
-
const error = location.search.includes('wrong_pass')
|
|
87
|
-
if(error){
|
|
88
|
-
document.getElementById('login_error').innerHTML='Не вірний користувач або пароль';
|
|
89
|
-
}
|
|
90
|
-
</script>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" dir="">
|
|
3
|
+
<head>
|
|
4
|
+
<!-- scripts -->
|
|
5
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
6
|
+
</head>
|
|
7
|
+
<body class="bg-white ">
|
|
8
|
+
<main class="flex h-[90vh] justify-center items-center">
|
|
9
|
+
<div class="space-y-8 w-[385px]">
|
|
10
|
+
<div class="text-center">
|
|
11
|
+
{{#if settings.admin.logo}}
|
|
12
|
+
<img style="margin-left: auto; margin-right: auto; display: block;" src="{{settings.admin.logo}}" alt="logo">
|
|
13
|
+
{{/if}}
|
|
14
|
+
<h2 class="font-medium text-xl text-gray-800 ">
|
|
15
|
+
{{#if settings.admin.title}}
|
|
16
|
+
{{settings.admin.title}}
|
|
17
|
+
{{^}}
|
|
18
|
+
Вхід в систему
|
|
19
|
+
{{/if}}
|
|
20
|
+
</h2>
|
|
21
|
+
</div>
|
|
22
|
+
<div id="login_error" style="color: maroon;font-weight: 500;"></div>
|
|
23
|
+
<form action="/api/login" method="get" class="space-y-3">
|
|
24
|
+
<div>
|
|
25
|
+
<label for="hs-pro-shlgfem" class="sr-only">Email</label>
|
|
26
|
+
<input id="hs-pro-shlgfem" type="text" name="username"
|
|
27
|
+
class="py-3 px-4 block w-full border border-gray-200 rounded-lg sm:text-sm placeholder:text-gray-400 focus:outline-none h-[50px] focus:border-indigo-500 focus:border-2 disabled:opacity-50 disabled:pointer-events-none "
|
|
28
|
+
placeholder="Email">
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div>
|
|
32
|
+
<label for="hs-pro-shlgfps" class="sr-only">Password</label>
|
|
33
|
+
<div class="relative">
|
|
34
|
+
<input id="hs-pro-shlgfps" name="password" type="password"
|
|
35
|
+
class="py-3 px-4 block w-full border border-gray-200 rounded-lg sm:text-sm placeholder:text-gray-400 focus:border-indigo-500 focus:outline-none h-[50px] focus:border-indigo-500 focus:border-2 disabled:opacity-50 disabled:pointer-events-none "
|
|
36
|
+
placeholder="Password">
|
|
37
|
+
<button type="button" data-hs-toggle-password="{
|
|
38
|
+
"target": "#hs-pro-shlgfps"
|
|
39
|
+
}"
|
|
40
|
+
class="absolute inset-y-0 end-0 flex items-center z-20 px-3 cursor-pointer text-gray-400 rounded-e-md focus:outline-none">
|
|
41
|
+
<!--svg class="shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
|
42
|
+
viewBox="0 0 16 16">
|
|
43
|
+
<path class="hs-password-active:hidden"
|
|
44
|
+
d="M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z">
|
|
45
|
+
</path>
|
|
46
|
+
<path class="hs-password-active:hidden"
|
|
47
|
+
d="M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z">
|
|
48
|
+
</path>
|
|
49
|
+
<path class="hs-password-active:hidden"
|
|
50
|
+
d="M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z">
|
|
51
|
+
</path>
|
|
52
|
+
<path class="hidden hs-password-active:block"
|
|
53
|
+
d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z">
|
|
54
|
+
</path>
|
|
55
|
+
<path class="hidden hs-password-active:block"
|
|
56
|
+
d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"></path>
|
|
57
|
+
</svg-->
|
|
58
|
+
</button>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="flex flex-wrap justify-between items-center gap-3">
|
|
63
|
+
<div class="flex gap-x-1">
|
|
64
|
+
<input type="checkbox" name="keep"
|
|
65
|
+
class="shrink-0 border-gray-300 size-[18px] rounded text-indigo-600 focus:ring-indigo-600 disabled:opacity-50 disabled:pointer-events-none "
|
|
66
|
+
id="hs-pro-shlgfemch">
|
|
67
|
+
<label for="hs-pro-shlgfemch" class="text-[13px] text-gray-500 ms-1.5">
|
|
68
|
+
Remember me
|
|
69
|
+
</label>
|
|
70
|
+
</div>
|
|
71
|
+
<a class="text-[13px] text-gray-500 underline underline-offset-4 hover:text-indigo-600 focus:outline-none focus:text-indigo-600 "
|
|
72
|
+
href="#">Forgot your password?</a>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="space-y-4">
|
|
76
|
+
<button type="submit"
|
|
77
|
+
class="py-3 px-4 w-full inline-flex justify-center items-center gap-x-2 sm:text-sm font-medium rounded-lg border border-transparent bg-indigo-600 text-white hover:bg-indigo-700 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-indigo-700">
|
|
78
|
+
Log in
|
|
79
|
+
</button>
|
|
80
|
+
</div>
|
|
81
|
+
</form>
|
|
82
|
+
</div>
|
|
83
|
+
</main>
|
|
84
|
+
</body>
|
|
85
|
+
<script>
|
|
86
|
+
const error = location.search.includes('wrong_pass')
|
|
87
|
+
if(error){
|
|
88
|
+
document.getElementById('login_error').innerHTML='Не вірний користувач або пароль';
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
91
|
</html>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<div style="background:#eee;padding:30px;">
|
|
2
|
-
<div
|
|
3
|
-
style="background:#fff;padding: 15px 20px;width: 550px;border: 1px solid #e3e3e5;border-radius:3px;margin: 0 auto;font: normal 13px/19px Verdana;box-shadow: 0 3px 7px rgba(0,0,0,.1);">
|
|
4
|
-
<h2 style="font:normal 21px/48px Arial;color: #222;text-align:center">
|
|
5
|
-
Коди відновлення на випадок втрати доступу до застосунку для двофакторної аутентифікації порталу {{domain}}
|
|
6
|
-
</h2>
|
|
7
|
-
{{#each recoveryCodes}}
|
|
8
|
-
<p style="width: 400px;margin:0 auto;display: block;background: #4CAF50;color: #fff;font-weight:bold; line-height: 44px;text-align: center;text-decoration: none;border-radius: 3px;text-shadow: 0 1px 3px rgba(0,0,0,.35);border: 1px solid #388E3C;box-shadow: inset 0 1px rgba(255,255,255,.4);">
|
|
9
|
-
{{this}}<hr>
|
|
10
|
-
</p>
|
|
11
|
-
{{/each}}
|
|
12
|
-
</div>
|
|
1
|
+
<div style="background:#eee;padding:30px;">
|
|
2
|
+
<div
|
|
3
|
+
style="background:#fff;padding: 15px 20px;width: 550px;border: 1px solid #e3e3e5;border-radius:3px;margin: 0 auto;font: normal 13px/19px Verdana;box-shadow: 0 3px 7px rgba(0,0,0,.1);">
|
|
4
|
+
<h2 style="font:normal 21px/48px Arial;color: #222;text-align:center">
|
|
5
|
+
Коди відновлення на випадок втрати доступу до застосунку для двофакторної аутентифікації порталу {{domain}}
|
|
6
|
+
</h2>
|
|
7
|
+
{{#each recoveryCodes}}
|
|
8
|
+
<p style="width: 400px;margin:0 auto;display: block;background: #4CAF50;color: #fff;font-weight:bold; line-height: 44px;text-align: center;text-decoration: none;border-radius: 3px;text-shadow: 0 1px 3px rgba(0,0,0,.35);border: 1px solid #388E3C;box-shadow: inset 0 1px rgba(255,255,255,.4);">
|
|
9
|
+
{{this}}<hr>
|
|
10
|
+
</p>
|
|
11
|
+
{{/each}}
|
|
12
|
+
</div>
|
|
13
13
|
</div>
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
<div style="background:#eee;padding:30px;">
|
|
2
|
-
<div
|
|
3
|
-
style="background:#fff;padding: 15px 20px;width: 550px;border: 1px solid #e3e3e5;border-radius:3px;margin: 0 auto;font: normal 13px/19px Verdana;box-shadow: 0 3px 7px rgba(0,0,0,.1);">
|
|
4
|
-
<h2 style="font:normal 21px/48px Arial;color: #222;text-align:center">
|
|
5
|
-
Відновлення паролю
|
|
6
|
-
</h2>
|
|
7
|
-
|
|
8
|
-
<div style="padding: 15px 0;">
|
|
9
|
-
Шановний <b>{{login}}</b>. Ви зробили запит на відновлення пароля на сайті <a
|
|
10
|
-
href="{{{domain}}}/{{{url}}}">{{{domain}}}/{{{url}}}</a>. Для того, щоб отримати новий пароль, перейдіть за
|
|
11
|
-
посиланням та введіть код:
|
|
12
|
-
</div>
|
|
13
|
-
<p style="width: 400px;margin:0 auto;display: block;background: #4CAF50;color: #fff;font-weight:bold; line-height: 44px;text-align: center;text-decoration: none;border-radius: 3px;text-shadow: 0 1px 3px rgba(0,0,0,.35);border: 1px solid #388E3C;box-shadow: inset 0 1px rgba(255,255,255,.4);">
|
|
14
|
-
{{{code}}}
|
|
15
|
-
</p>
|
|
16
|
-
<div style="padding: 15px 0;">
|
|
17
|
-
Якщо ви не робили запит для отримання пароля, просто видаліть цей лист. Ваш пароль зберігається в надійному
|
|
18
|
-
місці та недоступний стороннім особам.
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
1
|
+
<div style="background:#eee;padding:30px;">
|
|
2
|
+
<div
|
|
3
|
+
style="background:#fff;padding: 15px 20px;width: 550px;border: 1px solid #e3e3e5;border-radius:3px;margin: 0 auto;font: normal 13px/19px Verdana;box-shadow: 0 3px 7px rgba(0,0,0,.1);">
|
|
4
|
+
<h2 style="font:normal 21px/48px Arial;color: #222;text-align:center">
|
|
5
|
+
Відновлення паролю
|
|
6
|
+
</h2>
|
|
7
|
+
|
|
8
|
+
<div style="padding: 15px 0;">
|
|
9
|
+
Шановний <b>{{login}}</b>. Ви зробили запит на відновлення пароля на сайті <a
|
|
10
|
+
href="{{{domain}}}/{{{url}}}">{{{domain}}}/{{{url}}}</a>. Для того, щоб отримати новий пароль, перейдіть за
|
|
11
|
+
посиланням та введіть код:
|
|
12
|
+
</div>
|
|
13
|
+
<p style="width: 400px;margin:0 auto;display: block;background: #4CAF50;color: #fff;font-weight:bold; line-height: 44px;text-align: center;text-decoration: none;border-radius: 3px;text-shadow: 0 1px 3px rgba(0,0,0,.35);border: 1px solid #388E3C;box-shadow: inset 0 1px rgba(255,255,255,.4);">
|
|
14
|
+
{{{code}}}
|
|
15
|
+
</p>
|
|
16
|
+
<div style="padding: 15px 0;">
|
|
17
|
+
Якщо ви не робили запит для отримання пароля, просто видаліть цей лист. Ваш пароль зберігається в надійному
|
|
18
|
+
місці та недоступний стороннім особам.
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
21
|
</div>
|
package/package.json
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@opengis/fastify-table",
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "core-plugins",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"fastify",
|
|
8
|
-
"table",
|
|
9
|
-
"crud",
|
|
10
|
-
"auth",
|
|
11
|
-
"pg",
|
|
12
|
-
"backend"
|
|
13
|
-
],
|
|
14
|
-
"main": "dist/index.js",
|
|
15
|
-
"exports": {
|
|
16
|
-
".": "./dist/index.js",
|
|
17
|
-
"./index.js": "./dist/index.js",
|
|
18
|
-
"./errors.js": "./dist/errors.js",
|
|
19
|
-
"./utils.js": "./dist/utils.js",
|
|
20
|
-
"./package.json": "./package.json"
|
|
21
|
-
},
|
|
22
|
-
"files": [
|
|
23
|
-
"dist/*"
|
|
24
|
-
],
|
|
25
|
-
"scripts": {
|
|
26
|
-
"dump": "bun ./script/dump.ts",
|
|
27
|
-
"migrate": "bun ./script/migrate.ts",
|
|
28
|
-
"dump1": "bun ./dist/script/dump.js",
|
|
29
|
-
"migrate1": "bun ./dist/script/migrate.js",
|
|
30
|
-
"prepublishOnly": "npm run build",
|
|
31
|
-
"clean": "tsc -b --clean",
|
|
32
|
-
"build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist && copyfiles server/templates/**/*.hbs dist && copyfiles script/* dist && copyfiles -u 2 module/core/*/* dist/module/core",
|
|
33
|
-
"prod": "NODE_ENV=production bun dist/server",
|
|
34
|
-
"patch": "npm version patch && git push && npm publish",
|
|
35
|
-
"minor": "npm version minor && git push && npm publish",
|
|
36
|
-
"major": "npm version major && git push && npm publish",
|
|
37
|
-
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
38
|
-
"test": "npx vitest run",
|
|
39
|
-
"compress": "node compress.js",
|
|
40
|
-
"dev1": "bun --hot dist/server",
|
|
41
|
-
"dev": "NODE_ENV=development bun start",
|
|
42
|
-
"start": "LOG_LEVEL=trace bun server",
|
|
43
|
-
"start1": "npx tsx server"
|
|
44
|
-
},
|
|
45
|
-
"dependencies": {
|
|
46
|
-
"@aws-sdk/client-s3": "3.1079.0",
|
|
47
|
-
"@aws-sdk/lib-storage": "3.1079.0",
|
|
48
|
-
"@fastify/cookie": "11.0.2",
|
|
49
|
-
"@fastify/http-proxy": "11.5.0",
|
|
50
|
-
"@fastify/multipart": "10.0.0",
|
|
51
|
-
"@fastify/passport": "3.0.2",
|
|
52
|
-
"@fastify/rate-limit": "11.1.0",
|
|
53
|
-
"@fastify/session": "11.1.1",
|
|
54
|
-
"@grpc/grpc-js": "1.14.5",
|
|
55
|
-
"@grpc/proto-loader": "0.8.1",
|
|
56
|
-
"apache-crypt": "1.2.6",
|
|
57
|
-
"dotenv": "17.4.2",
|
|
58
|
-
"fastify": "5.12.5",
|
|
59
|
-
"fastify-plugin": "6.0.0",
|
|
60
|
-
"fastify-session-redis-store": "7.1.2",
|
|
61
|
-
"file-type": "^22.0.1",
|
|
62
|
-
"handlebars": "4.7.9",
|
|
63
|
-
"image-size": "2.0.2",
|
|
64
|
-
"ioredis": "5.11.1",
|
|
65
|
-
"js-yaml": "5.2.1",
|
|
66
|
-
"markdown-it": "14.3.0",
|
|
67
|
-
"minio": "^8.0.7",
|
|
68
|
-
"nodemailer": "9.0.3",
|
|
69
|
-
"otplib": "13.4.1",
|
|
70
|
-
"pg": "8.22.0",
|
|
71
|
-
"pino": "10.3.1",
|
|
72
|
-
"pino-abstract-transport": "3.0.0",
|
|
73
|
-
"promised-handlebars": "2.0.1",
|
|
74
|
-
"qrcode": "1.5.4",
|
|
75
|
-
"sharp": "0.35.3",
|
|
76
|
-
"uglify-js": "3.19.3",
|
|
77
|
-
"undici": "8.6.0"
|
|
78
|
-
},
|
|
79
|
-
"devDependencies": {
|
|
80
|
-
"@stylistic/eslint-plugin": "^5.10.0",
|
|
81
|
-
"@types/bun": "^1.3.5",
|
|
82
|
-
"@types/js-yaml": "^4.0.9",
|
|
83
|
-
"@types/markdown-it": "^14.1.2",
|
|
84
|
-
"@types/node": "^26.1.0",
|
|
85
|
-
"@types/nodemailer": "^8.0.1",
|
|
86
|
-
"@types/passport": "^1.0.17",
|
|
87
|
-
"@types/passport-local": "^1.0.38",
|
|
88
|
-
"@types/pg": "^8.20.0",
|
|
89
|
-
"@types/qrcode": "^1.5.6",
|
|
90
|
-
"copyfiles": "^2.4.1",
|
|
91
|
-
"eslint": "^10.6.0",
|
|
92
|
-
"eslint-stylistic-airbnb": "^3.2.0",
|
|
93
|
-
"ts-migrate": "^0.1.35",
|
|
94
|
-
"typescript": "^6.0.2",
|
|
95
|
-
"vitest": "^4.1.2"
|
|
96
|
-
},
|
|
97
|
-
"author": "Softpro",
|
|
98
|
-
"license": "ISC"
|
|
99
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@opengis/fastify-table",
|
|
3
|
+
"version": "2.6.4",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "core-plugins",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"fastify",
|
|
8
|
+
"table",
|
|
9
|
+
"crud",
|
|
10
|
+
"auth",
|
|
11
|
+
"pg",
|
|
12
|
+
"backend"
|
|
13
|
+
],
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": "./dist/index.js",
|
|
17
|
+
"./index.js": "./dist/index.js",
|
|
18
|
+
"./errors.js": "./dist/errors.js",
|
|
19
|
+
"./utils.js": "./dist/utils.js",
|
|
20
|
+
"./package.json": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/*"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"dump": "bun ./script/dump.ts",
|
|
27
|
+
"migrate": "bun ./script/migrate.ts",
|
|
28
|
+
"dump1": "bun ./dist/script/dump.js",
|
|
29
|
+
"migrate1": "bun ./dist/script/migrate.js",
|
|
30
|
+
"prepublishOnly": "npm run build",
|
|
31
|
+
"clean": "tsc -b --clean",
|
|
32
|
+
"build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist && copyfiles server/templates/**/*.hbs dist && copyfiles script/* dist && copyfiles -u 2 module/core/*/* dist/module/core",
|
|
33
|
+
"prod": "NODE_ENV=production bun dist/server",
|
|
34
|
+
"patch": "npm version patch && git push && npm publish",
|
|
35
|
+
"minor": "npm version minor && git push && npm publish",
|
|
36
|
+
"major": "npm version major && git push && npm publish",
|
|
37
|
+
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
38
|
+
"test": "npx vitest run",
|
|
39
|
+
"compress": "node compress.js",
|
|
40
|
+
"dev1": "bun --hot dist/server",
|
|
41
|
+
"dev": "NODE_ENV=development bun start",
|
|
42
|
+
"start": "LOG_LEVEL=trace bun server",
|
|
43
|
+
"start1": "npx tsx server"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@aws-sdk/client-s3": "3.1079.0",
|
|
47
|
+
"@aws-sdk/lib-storage": "3.1079.0",
|
|
48
|
+
"@fastify/cookie": "11.0.2",
|
|
49
|
+
"@fastify/http-proxy": "11.5.0",
|
|
50
|
+
"@fastify/multipart": "10.0.0",
|
|
51
|
+
"@fastify/passport": "3.0.2",
|
|
52
|
+
"@fastify/rate-limit": "11.1.0",
|
|
53
|
+
"@fastify/session": "11.1.1",
|
|
54
|
+
"@grpc/grpc-js": "1.14.5",
|
|
55
|
+
"@grpc/proto-loader": "0.8.1",
|
|
56
|
+
"apache-crypt": "1.2.6",
|
|
57
|
+
"dotenv": "17.4.2",
|
|
58
|
+
"fastify": "5.12.5",
|
|
59
|
+
"fastify-plugin": "6.0.0",
|
|
60
|
+
"fastify-session-redis-store": "7.1.2",
|
|
61
|
+
"file-type": "^22.0.1",
|
|
62
|
+
"handlebars": "4.7.9",
|
|
63
|
+
"image-size": "2.0.2",
|
|
64
|
+
"ioredis": "5.11.1",
|
|
65
|
+
"js-yaml": "5.2.1",
|
|
66
|
+
"markdown-it": "14.3.0",
|
|
67
|
+
"minio": "^8.0.7",
|
|
68
|
+
"nodemailer": "9.0.3",
|
|
69
|
+
"otplib": "13.4.1",
|
|
70
|
+
"pg": "8.22.0",
|
|
71
|
+
"pino": "10.3.1",
|
|
72
|
+
"pino-abstract-transport": "3.0.0",
|
|
73
|
+
"promised-handlebars": "2.0.1",
|
|
74
|
+
"qrcode": "1.5.4",
|
|
75
|
+
"sharp": "0.35.3",
|
|
76
|
+
"uglify-js": "3.19.3",
|
|
77
|
+
"undici": "8.6.0"
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
81
|
+
"@types/bun": "^1.3.5",
|
|
82
|
+
"@types/js-yaml": "^4.0.9",
|
|
83
|
+
"@types/markdown-it": "^14.1.2",
|
|
84
|
+
"@types/node": "^26.1.0",
|
|
85
|
+
"@types/nodemailer": "^8.0.1",
|
|
86
|
+
"@types/passport": "^1.0.17",
|
|
87
|
+
"@types/passport-local": "^1.0.38",
|
|
88
|
+
"@types/pg": "^8.20.0",
|
|
89
|
+
"@types/qrcode": "^1.5.6",
|
|
90
|
+
"copyfiles": "^2.4.1",
|
|
91
|
+
"eslint": "^10.6.0",
|
|
92
|
+
"eslint-stylistic-airbnb": "^3.2.0",
|
|
93
|
+
"ts-migrate": "^0.1.35",
|
|
94
|
+
"typescript": "^6.0.2",
|
|
95
|
+
"vitest": "^4.1.2"
|
|
96
|
+
},
|
|
97
|
+
"author": "Softpro",
|
|
98
|
+
"license": "ISC"
|
|
99
|
+
}
|