@opengis/admin 0.2.43 → 0.2.44

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 (163) hide show
  1. package/README.md +97 -97
  2. package/config.js +4 -4
  3. package/dist/{add-page-D1oPRRld.js → add-page-CWDoV9kc.js} +1 -1
  4. package/dist/{admin-interface-BtWXMmFV.js → admin-interface-KnUgFCOB.js} +3 -3
  5. package/dist/{admin-view-BzAfQTu2.js → admin-view-DJz2GCsB.js} +2 -2
  6. package/dist/admin.js +1 -1
  7. package/dist/admin.umd.cjs +54 -54
  8. package/dist/assets/logo.svg +41 -41
  9. package/dist/{card-view-D4BcR3_0.js → card-view-CCxJ3jfb.js} +1 -1
  10. package/dist/{edit-page-CX3Ycne4.js → edit-page-CSEzk0Pj.js} +1 -1
  11. package/dist/{import-file-BPAh_F3y.js → import-file-CjSMt4zv.js} +4551 -4546
  12. package/dist/style.css +1 -1
  13. package/module/settings/card/admin.accounts.table/index.yml +7 -7
  14. package/module/settings/card/admin.accounts.table/rules.hbs +18 -18
  15. package/module/settings/card/admin.accounts.table/users.hbs +13 -13
  16. package/module/settings/card/admin.roles.table/access.hbs +3 -3
  17. package/module/settings/card/admin.roles.table/general_info.hbs +1 -1
  18. package/module/settings/card/admin.roles.table/index.yml +21 -21
  19. package/module/settings/card/admin.roles.table/users.hbs +6 -6
  20. package/module/settings/card/admin.routes.table/general_info.hbs +13 -13
  21. package/module/settings/card/admin.routes.table/groups.hbs +11 -11
  22. package/module/settings/card/admin.routes.table/index.yml +11 -11
  23. package/module/settings/card/admin.routes.table/users.hbs +16 -16
  24. package/module/settings/card/admin.users.table/context.hbs +14 -14
  25. package/module/settings/card/admin.users.table/general_info.hbs +12 -12
  26. package/module/settings/card/admin.users.table/index.yml +22 -22
  27. package/module/settings/card/admin.users.table/last_login.hbs +9 -9
  28. package/module/settings/card/admin.users.table/logs.hbs +10 -10
  29. package/module/settings/card/admin.users.table/routes.hbs +7 -7
  30. package/module/settings/card/admin.users.table/user_roles.hbs +12 -12
  31. package/module/settings/cls/core.actions.json +17 -17
  32. package/module/settings/cls/core.scope.json +13 -13
  33. package/module/settings/cls/properties.site_status.json +13 -13
  34. package/module/settings/cls/properties.widget_status.json +13 -13
  35. package/module/settings/cls/users.user_type.json +13 -13
  36. package/module/settings/cls/yes_no.json +11 -11
  37. package/module/settings/form/admin.accounts.form.json +13 -13
  38. package/module/settings/form/admin.custom_column.form.json +71 -71
  39. package/module/settings/form/admin.properties.form.json +15 -15
  40. package/module/settings/form/admin.roles.form.json +21 -21
  41. package/module/settings/form/admin.routes.form.json +25 -25
  42. package/module/settings/form/admin.rules.form.json +30 -30
  43. package/module/settings/form/admin.user_properties.form.json +15 -15
  44. package/module/settings/form/admin.user_roles.form.json +13 -13
  45. package/module/settings/form/admin.user_roles_card.form.json +13 -13
  46. package/module/settings/form/admin.users.form.json +153 -153
  47. package/module/settings/form/context.account_grants.form.json +23 -23
  48. package/module/settings/form/context.account_users.form.json +12 -12
  49. package/module/settings/form/user.user_roles.form.json +13 -13
  50. package/module/settings/interface/admin.properties.json +4 -4
  51. package/module/settings/interface/admin.roles.json +4 -4
  52. package/module/settings/interface/admin.routes.json +4 -4
  53. package/module/settings/interface/admin.users.json +4 -4
  54. package/module/settings/menu.json +84 -84
  55. package/module/settings/select/core.routes.sql +1 -1
  56. package/module/settings/select/core.user_mentioned.sql +1 -1
  57. package/module/settings/select/core.user_uid.sql +1 -1
  58. package/module/settings/table/admin.accounts.table.json +42 -42
  59. package/module/settings/table/admin.custom_column.table.json +99 -99
  60. package/module/settings/table/admin.properties.table.json +39 -39
  61. package/module/settings/table/admin.roles.table.json +64 -64
  62. package/module/settings/table/admin.routes.table.json +73 -73
  63. package/module/settings/table/admin.rules.table.json +76 -76
  64. package/module/settings/table/admin.user_properties.table.json +34 -34
  65. package/module/settings/table/admin.user_roles.table.json +72 -72
  66. package/module/settings/table/admin.users.table.json +132 -132
  67. package/module/settings/table/context.account_grants.table.json +67 -67
  68. package/module/settings/table/context.account_users.table.json +37 -37
  69. package/package.json +2 -2
  70. package/plugin.js +29 -29
  71. package/server/helpers/core/badge.js +16 -16
  72. package/server/helpers/core/buttonHelper.js +21 -21
  73. package/server/helpers/core/select.js +48 -48
  74. package/server/helpers/core/token.js +18 -18
  75. package/server/helpers/index.js +29 -29
  76. package/server/helpers/list/buttonHelper.js +21 -21
  77. package/server/helpers/list/tableList.js +81 -81
  78. package/server/helpers/list/utils/button.js +5 -5
  79. package/server/helpers/temp/contentList.js +58 -58
  80. package/server/helpers/temp/ifCond.js +101 -101
  81. package/server/helpers/utils/button.js +5 -5
  82. package/server/helpers/utils/buttonAdd.js +5 -5
  83. package/server/helpers/utils/buttonDel.js +5 -5
  84. package/server/helpers/utils/buttonEdit.js +5 -5
  85. package/server/plugins/access/funcs/getAdminAccess.js +12 -12
  86. package/server/plugins/access/index.mjs +6 -6
  87. package/server/plugins/adminHook.js +81 -81
  88. package/server/plugins/cron.js +10 -10
  89. package/server/plugins/docs.js +28 -28
  90. package/server/plugins/hook.js +236 -236
  91. package/server/plugins/vite.js +71 -71
  92. package/server/routes/access/controllers/access.group.js +29 -29
  93. package/server/routes/access/controllers/access.group.post.js +49 -49
  94. package/server/routes/access/index.mjs +8 -8
  95. package/server/routes/access/schema.mjs +57 -57
  96. package/server/routes/calendar/controllers/calendar.data.js +87 -87
  97. package/server/routes/calendar/index.mjs +7 -7
  98. package/server/routes/calendar/schema.js +21 -21
  99. package/server/routes/data/controllers/cardData.js +106 -106
  100. package/server/routes/data/controllers/cardTabData.js +49 -49
  101. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -92
  102. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -170
  103. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  104. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -64
  105. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  106. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  107. package/server/routes/data/controllers/tableData.js +29 -29
  108. package/server/routes/data/controllers/tableDataId.js +27 -27
  109. package/server/routes/data/controllers/tableFilter.js +68 -68
  110. package/server/routes/data/controllers/tokenInfo.js +9 -9
  111. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  112. package/server/routes/data/controllers/utils/conditions.js +20 -20
  113. package/server/routes/data/controllers/utils/getColumns.js +8 -8
  114. package/server/routes/data/index.mjs +19 -19
  115. package/server/routes/data/schema.js +54 -54
  116. package/server/routes/menu/controllers/getMenu.js +58 -58
  117. package/server/routes/menu/index.mjs +5 -5
  118. package/server/routes/notifications/controllers/readNotifications.js +27 -27
  119. package/server/routes/notifications/controllers/testEmail.js +35 -35
  120. package/server/routes/notifications/controllers/userNotifications.js +53 -53
  121. package/server/routes/notifications/funcs/addNotification.js +21 -21
  122. package/server/routes/notifications/funcs/sendNotification.js +92 -92
  123. package/server/routes/notifications/hook/onWidgetSet.js +57 -57
  124. package/server/routes/notifications/index.mjs +27 -27
  125. package/server/routes/notifications/schema.js +16 -16
  126. package/server/routes/properties/controllers/admin.properties.get.js +29 -29
  127. package/server/routes/properties/controllers/user.properties.get.js +30 -30
  128. package/server/routes/properties/controllers/user.properties.post.js +30 -30
  129. package/server/routes/properties/funcs/getSettings.js +56 -56
  130. package/server/routes/properties/funcs/setSettings.js +44 -44
  131. package/server/routes/properties/funcs/utils/dataInsert.js +26 -26
  132. package/server/routes/properties/index.mjs +14 -14
  133. package/server/routes/properties/schema.js +10 -10
  134. package/server/routes/root.mjs +3 -3
  135. package/server/routes/templates/controllers/getTemplate.js +49 -49
  136. package/server/routes/templates/index.mjs +16 -16
  137. package/server/routes/templates/schema.js +8 -8
  138. package/server/routes/user/controllers/user.cls.id.js +14 -14
  139. package/server/routes/user/controllers/user.cls.js +71 -71
  140. package/server/routes/user/controllers/user.cls.post.js +52 -52
  141. package/server/routes/user/controllers/user.info.js +17 -17
  142. package/server/routes/user/schema.js +14 -14
  143. package/server/routes/widget/controllers/utils/historyFormat.js +75 -75
  144. package/server/routes/widget/controllers/utils/obj2db.js +13 -13
  145. package/server/routes/widget/controllers/widget.del.js +41 -41
  146. package/server/routes/widget/controllers/widget.get.js +96 -96
  147. package/server/routes/widget/controllers/widget.set.js +76 -76
  148. package/server/routes/widget/index.mjs +11 -11
  149. package/server/routes/widget/schema.js +12 -12
  150. package/server/templates/cls/itree.recrzone_category.json +73 -73
  151. package/server/templates/cls/test.json +9 -9
  152. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  153. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  154. package/server/templates/form/cp_building.form.json +32 -32
  155. package/server/templates/form/form-user-pass.json +10 -10
  156. package/server/templates/form/form-user_group.json +39 -39
  157. package/server/templates/form/form-users.json +156 -156
  158. package/server/templates/form/user_group_access.form.json +22 -22
  159. package/server/templates/select/account_id.json +2 -2
  160. package/server/templates/table/gis.dataset.table.json +43 -43
  161. package/server/templates/table/management.user_group.table.json +112 -112
  162. package/server/templates/table/management.users.table.json +126 -126
  163. package/utils.js +29 -29
@@ -1,81 +1,81 @@
1
- import fp from 'fastify-plugin';
2
- import fs from 'node:fs';
3
-
4
- import config from '../../config.js';
5
-
6
- // to export the decorators to the outer scope
7
-
8
- async function plugin(fastify) {
9
- fastify.decorate('config', config);
10
-
11
- // preSerialization
12
- fastify.addHook('preSerialization', async (req, reply, payload) => {
13
- if (req.url.includes('/suggest/') && !req.query.json) {
14
- return payload?.data;
15
- }
16
- if (payload?.redirect) {
17
- return reply.redirect(payload.redirect);
18
- }
19
- if (reply.sent) {
20
- return null;
21
- }
22
-
23
- if ([200, 400, 403, 409, 404, 500].includes(payload.status)) {
24
- reply.status(payload.status);
25
- }
26
- /* if (payload.headers) {
27
- reply.headers(payload.headers);
28
- } */
29
- if (payload?.buffer) {
30
- return payload.buffer;
31
- }
32
- if (payload?.file) {
33
- // const buffer = await readFile(payload.file);
34
- // return reply.send(buffer);
35
- const stream = fs.createReadStream(payload.file);
36
- return stream;
37
- // return reply.send(stream);
38
- }
39
-
40
- if (payload?.message) {
41
- return payload.message;
42
- }
43
- return payload;
44
- });
45
-
46
- // preValidation
47
- fastify.addHook('preValidation', async (req) => {
48
- const parseRawBody = ['POST', 'PUT'].includes(req.method) && req.body && typeof req.body === 'string'
49
- && req.body.trim(/\r\n/g).startsWith('{')
50
- && req.body.trim(/\r\n/g).endsWith('}');
51
- if (parseRawBody) {
52
- try {
53
- req.body = JSON.parse(req.body || '{}');
54
- }
55
- catch (err) {
56
- // throw new Error('invalid body');
57
- // return { error: 'invalid body', status: 400 };
58
- }
59
- }
60
- });
61
-
62
- // allow upload file
63
- const kIsMultipart = Symbol.for('[FastifyMultipart.isMultipart]');
64
- fastify.addContentTypeParser('multipart', (request, _, done) => {
65
- request[kIsMultipart] = true;
66
- done(null);
67
- });
68
-
69
- // parse Body
70
- function contentParser(req, body, done) {
71
- const parseBody = decodeURIComponent(body.toString()).split('&').reduce((acc, el) => {
72
- const [key, val] = el.split('=');
73
- return { ...acc, [key]: val };
74
- }, {});
75
- done(null, parseBody);
76
- }
77
-
78
- fastify.addContentTypeParser('application/x-www-form-urlencoded', { parseAs: 'buffer' }, contentParser);
79
- }
80
-
81
- export default fp(plugin);
1
+ import fp from 'fastify-plugin';
2
+ import fs from 'node:fs';
3
+
4
+ import config from '../../config.js';
5
+
6
+ // to export the decorators to the outer scope
7
+
8
+ async function plugin(fastify) {
9
+ fastify.decorate('config', config);
10
+
11
+ // preSerialization
12
+ fastify.addHook('preSerialization', async (req, reply, payload) => {
13
+ if (req.url.includes('/suggest/') && !req.query.json) {
14
+ return payload?.data;
15
+ }
16
+ if (payload?.redirect) {
17
+ return reply.redirect(payload.redirect);
18
+ }
19
+ if (reply.sent) {
20
+ return null;
21
+ }
22
+
23
+ if ([200, 400, 403, 409, 404, 500].includes(payload.status)) {
24
+ reply.status(payload.status);
25
+ }
26
+ /* if (payload.headers) {
27
+ reply.headers(payload.headers);
28
+ } */
29
+ if (payload?.buffer) {
30
+ return payload.buffer;
31
+ }
32
+ if (payload?.file) {
33
+ // const buffer = await readFile(payload.file);
34
+ // return reply.send(buffer);
35
+ const stream = fs.createReadStream(payload.file);
36
+ return stream;
37
+ // return reply.send(stream);
38
+ }
39
+
40
+ if (payload?.message) {
41
+ return payload.message;
42
+ }
43
+ return payload;
44
+ });
45
+
46
+ // preValidation
47
+ fastify.addHook('preValidation', async (req) => {
48
+ const parseRawBody = ['POST', 'PUT'].includes(req.method) && req.body && typeof req.body === 'string'
49
+ && req.body.trim(/\r\n/g).startsWith('{')
50
+ && req.body.trim(/\r\n/g).endsWith('}');
51
+ if (parseRawBody) {
52
+ try {
53
+ req.body = JSON.parse(req.body || '{}');
54
+ }
55
+ catch (err) {
56
+ // throw new Error('invalid body');
57
+ // return { error: 'invalid body', status: 400 };
58
+ }
59
+ }
60
+ });
61
+
62
+ // allow upload file
63
+ const kIsMultipart = Symbol.for('[FastifyMultipart.isMultipart]');
64
+ fastify.addContentTypeParser('multipart', (request, _, done) => {
65
+ request[kIsMultipart] = true;
66
+ done(null);
67
+ });
68
+
69
+ // parse Body
70
+ function contentParser(req, body, done) {
71
+ const parseBody = decodeURIComponent(body.toString()).split('&').reduce((acc, el) => {
72
+ const [key, val] = el.split('=');
73
+ return { ...acc, [key]: val };
74
+ }, {});
75
+ done(null, parseBody);
76
+ }
77
+
78
+ fastify.addContentTypeParser('application/x-www-form-urlencoded', { parseAs: 'buffer' }, contentParser);
79
+ }
80
+
81
+ export default fp(plugin);
@@ -1,11 +1,11 @@
1
- //import { addCron } from '@opengis/fastify-table/utils.js';
2
-
3
- async function deleteOldNotifications({ pg }) {
4
- const { rowCount } = pg?.pk?.['crm.notifications'] ? await pg.query('delete from crm.notifications where CURRENT_DATE - \'14 days\'::interval > cdate') : {};
5
- return { rowCount };
6
- }
7
-
8
- export default async function cron(fastify) {
9
- // addCron(deleteOldNotifications, 60 * 60 * 24, fastify);
10
- // addCron(deleteOldNotifications, 60 * 1, fastify); // debug
1
+ //import { addCron } from '@opengis/fastify-table/utils.js';
2
+
3
+ async function deleteOldNotifications({ pg }) {
4
+ const { rowCount } = pg?.pk?.['crm.notifications'] ? await pg.query('delete from crm.notifications where CURRENT_DATE - \'14 days\'::interval > cdate') : {};
5
+ return { rowCount };
6
+ }
7
+
8
+ export default async function cron(fastify) {
9
+ // addCron(deleteOldNotifications, 60 * 60 * 24, fastify);
10
+ // addCron(deleteOldNotifications, 60 * 1, fastify); // debug
11
11
  }
@@ -1,28 +1,28 @@
1
- 'use strict'
2
-
3
- import path, { dirname } from 'path';
4
- import { fileURLToPath } from 'url';
5
- import fs from 'fs';
6
-
7
- const dir = dirname(fileURLToPath(import.meta.url));
8
- const root = `${dir}/../../`;
9
-
10
-
11
- async function plugin(fastify, opts) {
12
- fastify.get('/docs*', async (req, reply) => {
13
- if (!fs.existsSync(path.join(root, 'docs/.vitepress/dist/'))) {
14
- return reply.status(404).send('docs not exists');
15
- }
16
- const { params } = req;
17
- const url = params['*']
18
- const filePath = url && url[url.length - 1] !== '/' ? path.join(root, 'docs/.vitepress/dist/', url) : path.join(root, 'docs/.vitepress/dist/', url, 'index.html')
19
- const ext = path.extname(filePath);
20
- const mime = {
21
- '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg'
22
- }[ext];
23
- const stream = fs.createReadStream(filePath);
24
- return mime ? reply.type(mime).send(stream) : stream;
25
-
26
- })
27
- }
28
- export default plugin;
1
+ 'use strict'
2
+
3
+ import path, { dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import fs from 'fs';
6
+
7
+ const dir = dirname(fileURLToPath(import.meta.url));
8
+ const root = `${dir}/../../`;
9
+
10
+
11
+ async function plugin(fastify, opts) {
12
+ fastify.get('/docs*', async (req, reply) => {
13
+ if (!fs.existsSync(path.join(root, 'docs/.vitepress/dist/'))) {
14
+ return reply.status(404).send('docs not exists');
15
+ }
16
+ const { params } = req;
17
+ const url = params['*']
18
+ const filePath = url && url[url.length - 1] !== '/' ? path.join(root, 'docs/.vitepress/dist/', url) : path.join(root, 'docs/.vitepress/dist/', url, 'index.html')
19
+ const ext = path.extname(filePath);
20
+ const mime = {
21
+ '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg'
22
+ }[ext];
23
+ const stream = fs.createReadStream(filePath);
24
+ return mime ? reply.type(mime).send(stream) : stream;
25
+
26
+ })
27
+ }
28
+ export default plugin;