hola-server 1.0.11 → 3.0.0

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 (204) hide show
  1. package/README.md +382 -1
  2. package/dist/config/index.d.ts +46 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +55 -0
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/core/array.d.ts +27 -0
  7. package/dist/core/array.d.ts.map +1 -0
  8. package/dist/core/array.js +66 -0
  9. package/dist/core/array.js.map +1 -0
  10. package/dist/core/bash.d.ts +51 -0
  11. package/dist/core/bash.d.ts.map +1 -0
  12. package/dist/core/bash.js +161 -0
  13. package/dist/core/bash.js.map +1 -0
  14. package/dist/core/chart.d.ts +11 -0
  15. package/dist/core/chart.d.ts.map +1 -0
  16. package/dist/core/chart.js +35 -0
  17. package/dist/core/chart.js.map +1 -0
  18. package/dist/core/date.d.ts +11 -0
  19. package/dist/core/date.d.ts.map +1 -0
  20. package/dist/core/date.js +18 -0
  21. package/dist/core/date.js.map +1 -0
  22. package/dist/core/encrypt.d.ts +18 -0
  23. package/dist/core/encrypt.d.ts.map +1 -0
  24. package/dist/core/encrypt.js +50 -0
  25. package/dist/core/encrypt.js.map +1 -0
  26. package/dist/core/file.d.ts +22 -0
  27. package/dist/core/file.d.ts.map +1 -0
  28. package/dist/core/file.js +21 -0
  29. package/dist/core/file.js.map +1 -0
  30. package/dist/core/lhs.d.ts +17 -0
  31. package/dist/core/lhs.d.ts.map +1 -0
  32. package/dist/core/lhs.js +30 -0
  33. package/dist/core/lhs.js.map +1 -0
  34. package/dist/core/meta.d.ts +200 -0
  35. package/dist/core/meta.d.ts.map +1 -0
  36. package/dist/core/meta.js +336 -0
  37. package/dist/core/meta.js.map +1 -0
  38. package/dist/core/number.d.ts +37 -0
  39. package/dist/core/number.d.ts.map +1 -0
  40. package/dist/core/number.js +99 -0
  41. package/dist/core/number.js.map +1 -0
  42. package/dist/core/obj.d.ts +9 -0
  43. package/dist/core/obj.d.ts.map +1 -0
  44. package/dist/core/obj.js +15 -0
  45. package/dist/core/obj.js.map +1 -0
  46. package/dist/core/random.d.ts +7 -0
  47. package/dist/core/random.d.ts.map +1 -0
  48. package/dist/core/random.js +7 -0
  49. package/dist/core/random.js.map +1 -0
  50. package/dist/core/role.d.ts +42 -0
  51. package/dist/core/role.d.ts.map +1 -0
  52. package/dist/core/role.js +81 -0
  53. package/dist/core/role.js.map +1 -0
  54. package/dist/core/thread.d.ts +7 -0
  55. package/dist/core/thread.d.ts.map +1 -0
  56. package/dist/core/thread.js +7 -0
  57. package/dist/core/thread.js.map +1 -0
  58. package/dist/core/type.d.ts +46 -0
  59. package/dist/core/type.d.ts.map +1 -0
  60. package/dist/core/type.js +281 -0
  61. package/dist/core/type.js.map +1 -0
  62. package/dist/core/url.d.ts +20 -0
  63. package/dist/core/url.d.ts.map +1 -0
  64. package/dist/core/url.js +24 -0
  65. package/dist/core/url.js.map +1 -0
  66. package/dist/core/validate.d.ts +11 -0
  67. package/dist/core/validate.d.ts.map +1 -0
  68. package/dist/core/validate.js +19 -0
  69. package/dist/core/validate.js.map +1 -0
  70. package/dist/db/db.d.ts +72 -0
  71. package/dist/db/db.d.ts.map +1 -0
  72. package/dist/db/db.js +225 -0
  73. package/dist/db/db.js.map +1 -0
  74. package/dist/db/entity.d.ts +77 -0
  75. package/dist/db/entity.d.ts.map +1 -0
  76. package/dist/db/entity.js +671 -0
  77. package/dist/db/entity.js.map +1 -0
  78. package/dist/db/gridfs.d.ts +29 -0
  79. package/dist/db/gridfs.d.ts.map +1 -0
  80. package/dist/db/gridfs.js +125 -0
  81. package/dist/db/gridfs.js.map +1 -0
  82. package/dist/db/index.d.ts +8 -0
  83. package/dist/db/index.d.ts.map +1 -0
  84. package/dist/db/index.js +8 -0
  85. package/dist/db/index.js.map +1 -0
  86. package/dist/errors/auth.d.ts +15 -0
  87. package/dist/errors/auth.d.ts.map +1 -0
  88. package/dist/errors/auth.js +21 -0
  89. package/dist/errors/auth.js.map +1 -0
  90. package/dist/errors/http.d.ts +15 -0
  91. package/dist/errors/http.d.ts.map +1 -0
  92. package/dist/errors/http.js +21 -0
  93. package/dist/errors/http.js.map +1 -0
  94. package/dist/errors/index.d.ts +18 -0
  95. package/dist/errors/index.d.ts.map +1 -0
  96. package/dist/errors/index.js +18 -0
  97. package/dist/errors/index.js.map +1 -0
  98. package/dist/errors/validation.d.ts +11 -0
  99. package/dist/errors/validation.d.ts.map +1 -0
  100. package/dist/errors/validation.js +15 -0
  101. package/dist/errors/validation.js.map +1 -0
  102. package/dist/http/code.d.ts +21 -0
  103. package/dist/http/code.d.ts.map +1 -0
  104. package/dist/http/code.js +27 -0
  105. package/dist/http/code.js.map +1 -0
  106. package/dist/index.d.ts +57 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +61 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/meta/index.d.ts +9 -0
  111. package/dist/meta/index.d.ts.map +1 -0
  112. package/dist/meta/index.js +11 -0
  113. package/dist/meta/index.js.map +1 -0
  114. package/dist/meta/router.d.ts +26 -0
  115. package/dist/meta/router.d.ts.map +1 -0
  116. package/dist/meta/router.js +258 -0
  117. package/dist/meta/router.js.map +1 -0
  118. package/dist/meta/schema.d.ts +41 -0
  119. package/dist/meta/schema.d.ts.map +1 -0
  120. package/dist/meta/schema.js +69 -0
  121. package/dist/meta/schema.js.map +1 -0
  122. package/dist/plugins/auth.d.ts +248 -0
  123. package/dist/plugins/auth.d.ts.map +1 -0
  124. package/dist/plugins/auth.js +121 -0
  125. package/dist/plugins/auth.js.map +1 -0
  126. package/dist/plugins/body.d.ts +47 -0
  127. package/dist/plugins/body.d.ts.map +1 -0
  128. package/dist/plugins/body.js +36 -0
  129. package/dist/plugins/body.js.map +1 -0
  130. package/dist/plugins/cors.d.ts +62 -0
  131. package/dist/plugins/cors.d.ts.map +1 -0
  132. package/dist/plugins/cors.js +17 -0
  133. package/dist/plugins/cors.js.map +1 -0
  134. package/dist/plugins/error.d.ts +51 -0
  135. package/dist/plugins/error.d.ts.map +1 -0
  136. package/dist/plugins/error.js +51 -0
  137. package/dist/plugins/error.js.map +1 -0
  138. package/dist/plugins/index.d.ts +9 -0
  139. package/dist/plugins/index.d.ts.map +1 -0
  140. package/dist/plugins/index.js +9 -0
  141. package/dist/plugins/index.js.map +1 -0
  142. package/dist/setting.d.ts +66 -0
  143. package/dist/setting.d.ts.map +1 -0
  144. package/dist/setting.js +27 -0
  145. package/dist/setting.js.map +1 -0
  146. package/dist/tool/gen_i18n.d.ts +10 -0
  147. package/dist/tool/gen_i18n.d.ts.map +1 -0
  148. package/dist/tool/gen_i18n.js +51 -0
  149. package/dist/tool/gen_i18n.js.map +1 -0
  150. package/dist/tool/vector_store.d.ts +72 -0
  151. package/dist/tool/vector_store.d.ts.map +1 -0
  152. package/dist/tool/vector_store.js +203 -0
  153. package/dist/tool/vector_store.js.map +1 -0
  154. package/package.json +38 -23
  155. package/core/array.js +0 -187
  156. package/core/bash.js +0 -345
  157. package/core/chart.js +0 -36
  158. package/core/cron.js +0 -10
  159. package/core/date.js +0 -55
  160. package/core/encrypt.js +0 -16
  161. package/core/file.js +0 -38
  162. package/core/lhs.js +0 -27
  163. package/core/meta.js +0 -359
  164. package/core/msg.js +0 -11
  165. package/core/number.js +0 -179
  166. package/core/obj.js +0 -22
  167. package/core/random.js +0 -9
  168. package/core/role.js +0 -116
  169. package/core/thread.js +0 -3
  170. package/core/type.js +0 -329
  171. package/core/url.js +0 -22
  172. package/core/validate.js +0 -32
  173. package/db/db.js +0 -376
  174. package/db/entity.js +0 -1252
  175. package/db/gridfs.js +0 -221
  176. package/http/code.js +0 -18
  177. package/http/context.js +0 -17
  178. package/http/cors.js +0 -15
  179. package/http/error.js +0 -21
  180. package/http/express.js +0 -75
  181. package/http/params.js +0 -57
  182. package/http/router.js +0 -72
  183. package/http/session.js +0 -50
  184. package/index.js +0 -36
  185. package/router/clone.js +0 -73
  186. package/router/create.js +0 -59
  187. package/router/delete.js +0 -53
  188. package/router/read.js +0 -177
  189. package/router/update.js +0 -107
  190. package/setting.js +0 -51
  191. package/test/core/date.js +0 -37
  192. package/test/core/encrypt.js +0 -14
  193. package/test/core/meta.js +0 -594
  194. package/test/core/number.js +0 -17
  195. package/test/crud/router.js +0 -99
  196. package/test/db/db.js +0 -72
  197. package/test/entity/create.js +0 -442
  198. package/test/entity/delete.js +0 -480
  199. package/test/entity/read.js +0 -285
  200. package/test/entity/update.js +0 -252
  201. package/test/router/role.js +0 -15
  202. package/test/router/user.js +0 -17
  203. package/tool/gen_i18n.js +0 -30
  204. package/tool/test.json +0 -25
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Number manipulation and mathematical utility functions.
3
+ * @module core/number
4
+ */
5
+ import { has_value } from './validate.js';
6
+ import { is_object } from './obj.js';
7
+ /** Parse string value to number, returns 0 if invalid. */
8
+ export const parse_num = (str) => {
9
+ const value = parseFloat(String(str));
10
+ return value ? value : 0;
11
+ };
12
+ /** Parse string value to number with 2 decimal places. */
13
+ export const to_fixed2 = (str) => {
14
+ const value = parse_num(str);
15
+ return value ? parseFloat(value.toFixed(2)) : 0;
16
+ };
17
+ /** Round number to 2 decimal places. */
18
+ export const round_to_fixed2 = (num) => Math.round(num * 100) / 100;
19
+ /** Generate range array. Example: range(3) = [0,1,2], range(1,5) = [1,2,3,4,5] */
20
+ export const range = (start, end, step = 1) => {
21
+ if (end === undefined)
22
+ return Array.from({ length: start }, (_, key) => key);
23
+ return [...Array(Math.floor((end - start) / step) + 1)].map((_, i) => start + i * step);
24
+ };
25
+ /** Generate scale array with exponential growth. Example: scale(2,10) = [2,4,8] */
26
+ export const scale = (start, end, ratio = 2) => {
27
+ const length = Math.floor(Math.log(end / start) / Math.log(ratio)) + 1;
28
+ return [...Array(length)].map((_, i) => start * Math.pow(ratio, i));
29
+ };
30
+ /** Create a space object representing a min-max range. */
31
+ export const space = (min, max) => {
32
+ if (!has_value(min) || !has_value(max))
33
+ throw new Error("min and max not provided for space");
34
+ return { min, max };
35
+ };
36
+ /** Check if value is a space object (has min and max properties). */
37
+ export const is_space = (value) => {
38
+ if (!is_object(value))
39
+ return false;
40
+ const obj = value;
41
+ return has_value(obj.min) && has_value(obj.max);
42
+ };
43
+ /** Check if value is an integer. */
44
+ export const is_integer = (value) => /^-?[0-9]+$/.test(String(value));
45
+ /** Check if object contains any space objects as property values. */
46
+ export const contains_space = (obj) => {
47
+ for (const key in obj) {
48
+ if (is_space(obj[key]))
49
+ return true;
50
+ }
51
+ return false;
52
+ };
53
+ /** Generate random number between min and max. */
54
+ export const random_number = (min, max) => {
55
+ const random = Math.random() * (max - min) + min;
56
+ return is_integer(min) && is_integer(max) ? Math.floor(random) : to_fixed2(random);
57
+ };
58
+ /** Generate Latin Hypercube Sampling ranges for a given range. */
59
+ export const lhs_samples = (min, max, n) => {
60
+ const all_int = is_integer(min) && is_integer(max);
61
+ const interval = (max - min) / n;
62
+ const ranges = [];
63
+ for (let i = 0; i < n; i++) {
64
+ const start = i * interval + min;
65
+ const end = (i === n - 1) ? max : start + interval;
66
+ const min_val = Math.min(start, end);
67
+ const max_val = Math.max(start, end);
68
+ ranges.push(all_int
69
+ ? { min: Math.floor(min_val), max: Math.floor(max_val) }
70
+ : { min: to_fixed2(min_val), max: to_fixed2(max_val) });
71
+ }
72
+ return ranges;
73
+ };
74
+ /** Create random sample object from configuration with arrays or space objects. */
75
+ export const random_sample = (obj) => {
76
+ const sample_obj = {};
77
+ for (const key in obj) {
78
+ const value = obj[key];
79
+ if (Array.isArray(value)) {
80
+ sample_obj[key] = value[Math.floor(random_number(0, value.length))];
81
+ }
82
+ else if (is_space(value)) {
83
+ sample_obj[key] = random_number(value.min, value.max);
84
+ }
85
+ else {
86
+ sample_obj[key] = value;
87
+ }
88
+ }
89
+ return sample_obj;
90
+ };
91
+ /** Extract numeric value from string containing numbers. */
92
+ export const extract_number = (value) => {
93
+ const numbers = value.match(/([+\-0-9\\.]+)/g);
94
+ if (!numbers)
95
+ return 0;
96
+ const values = numbers.map(Number).filter((v) => has_value(v));
97
+ return values.length === 1 ? values[0] : 0;
98
+ };
99
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/core/number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Object manipulation utility functions.
3
+ * @module core/obj
4
+ */
5
+ /** Create a new object by copying specified attributes from source object. */
6
+ export declare const copy_obj: <T extends Record<string, unknown>>(obj: T, attrs: (keyof T)[]) => Partial<T>;
7
+ /** Check if a value is a plain object (not null, not array). */
8
+ export declare const is_object: (obj: unknown) => obj is Record<string, unknown>;
9
+ //# sourceMappingURL=obj.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj.d.ts","sourceRoot":"","sources":["../../src/core/obj.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,CAIjG,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAErE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Object manipulation utility functions.
3
+ * @module core/obj
4
+ */
5
+ /** Create a new object by copying specified attributes from source object. */
6
+ export const copy_obj = (obj, attrs) => {
7
+ const copied = {};
8
+ attrs.forEach((attr) => { copied[attr] = obj[attr]; });
9
+ return copied;
10
+ };
11
+ /** Check if a value is a plain object (not null, not array). */
12
+ export const is_object = (obj) => {
13
+ return typeof obj === 'object' && obj !== null && !Array.isArray(obj);
14
+ };
15
+ //# sourceMappingURL=obj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../src/core/obj.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAoC,GAAM,EAAE,KAAkB,EAAc,EAAE;IAClG,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAkC,EAAE;IACtE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Random generation utility functions.
3
+ * @module core/random
4
+ */
5
+ /** Generate random 6-digit code. */
6
+ export declare const random_code: () => number;
7
+ //# sourceMappingURL=random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/core/random.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC;AACpC,eAAO,MAAM,WAAW,QAAO,MAA6C,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Random generation utility functions.
3
+ * @module core/random
4
+ */
5
+ /** Generate random 6-digit code. */
6
+ export const random_code = () => Math.floor(Math.random() * 1000000);
7
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/core/random.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Role-based access control utility functions.
3
+ * @module core/role
4
+ */
5
+ /** Session user data value types. */
6
+ type SessionValue = string | number | boolean | null | undefined | SessionValue[] | {
7
+ [key: string]: SessionValue;
8
+ };
9
+ interface SessionUser {
10
+ role: string;
11
+ [key: string]: SessionValue;
12
+ }
13
+ interface SessionCookie {
14
+ session_id?: {
15
+ value: string;
16
+ };
17
+ [key: string]: SessionValue | {
18
+ value: string;
19
+ } | undefined;
20
+ }
21
+ interface MetaWithRoles {
22
+ mode: string;
23
+ roles?: string[];
24
+ }
25
+ /** Set the session store reference for role checking. */
26
+ export declare const set_session_store: (store: Map<string, {
27
+ user?: SessionUser;
28
+ }>) => void;
29
+ /** Validate role name exists in settings configuration. */
30
+ export declare const validate_meta_role: (role_name: string) => boolean;
31
+ /** Check if role has root/admin privileges. */
32
+ export declare const is_root_role: (role_name: string | null) => boolean;
33
+ /** Get user object from session. */
34
+ export declare const get_session_user: (cookie: SessionCookie) => SessionUser | null;
35
+ /** Check if current user has root privileges. */
36
+ export declare const is_root_user: (cookie: SessionCookie) => boolean;
37
+ /** Get user's role permissions for a meta entity. Returns [mode, view] permissions. */
38
+ export declare const get_user_role_right: (cookie: SessionCookie, meta: MetaWithRoles) => [string, string];
39
+ /** Check if user has required mode permission on meta. */
40
+ export declare const check_user_role: (cookie: SessionCookie, meta: MetaWithRoles, mode: string, view: string) => boolean;
41
+ export {};
42
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/core/role.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qCAAqC;AACrC,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAEpH,UAAU,WAAW;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC/B;AAED,UAAU,aAAa;IACnB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC/D;AAED,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAKD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,GAAI,OAAO,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,KAAG,IAE9E,CAAC;AAQF,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,OAItD,CAAC;AAKF,+CAA+C;AAC/C,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,GAAG,IAAI,KAAG,OAIvD,CAAC;AAYF,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa,KAAG,WAAW,GAAG,IAMtE,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,KAAG,OAAsD,CAAC;AAE5G,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,aAAa,EAAE,MAAM,aAAa,KAAG,CAAC,MAAM,EAAE,MAAM,CAiB/F,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,eAAe,GAAI,QAAQ,aAAa,EAAE,MAAM,aAAa,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAGxG,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Role-based access control utility functions.
3
+ * @module core/role
4
+ */
5
+ import { get_settings } from '../setting.js';
6
+ // In-memory session store reference (imported from session module at runtime)
7
+ let session_store = null;
8
+ /** Set the session store reference for role checking. */
9
+ export const set_session_store = (store) => {
10
+ session_store = store;
11
+ };
12
+ /** Find a role by name from settings. */
13
+ const find_role = (role_name) => {
14
+ const settings = get_settings();
15
+ return settings.roles ? settings.roles.find((role) => role.name === role_name) : undefined;
16
+ };
17
+ /** Validate role name exists in settings configuration. */
18
+ export const validate_meta_role = (role_name) => {
19
+ const settings = get_settings();
20
+ if (!settings.roles)
21
+ return false;
22
+ return find_role(role_name) !== undefined;
23
+ };
24
+ /** Check if role name exists in settings. */
25
+ const is_valid_role = (role_name) => find_role(role_name) !== undefined;
26
+ /** Check if role has root/admin privileges. */
27
+ export const is_root_role = (role_name) => {
28
+ if (!role_name)
29
+ return true;
30
+ const role = find_role(role_name);
31
+ return role ? role.root === true : true;
32
+ };
33
+ /** Get user role from session cookie. */
34
+ const get_session_user_role = (cookie) => {
35
+ if (!session_store)
36
+ return null;
37
+ const session_id = cookie?.session_id?.value;
38
+ if (!session_id)
39
+ return null;
40
+ const session = session_store.get(session_id);
41
+ const user = session?.user;
42
+ return user ? user.role : null;
43
+ };
44
+ /** Get user object from session. */
45
+ export const get_session_user = (cookie) => {
46
+ if (!session_store)
47
+ return null;
48
+ const session_id = cookie?.session_id?.value;
49
+ if (!session_id)
50
+ return null;
51
+ const session = session_store.get(session_id);
52
+ return session?.user ?? null;
53
+ };
54
+ /** Check if current user has root privileges. */
55
+ export const is_root_user = (cookie) => is_root_role(get_session_user_role(cookie));
56
+ /** Get user's role permissions for a meta entity. Returns [mode, view] permissions. */
57
+ export const get_user_role_right = (cookie, meta) => {
58
+ const settings = get_settings();
59
+ if (!settings.roles || !meta.roles)
60
+ return [meta.mode, "*"];
61
+ const user_role = get_session_user_role(cookie);
62
+ if (!user_role)
63
+ return ["", ""];
64
+ if (!is_valid_role(user_role))
65
+ return ["", ""];
66
+ for (const role of meta.roles) {
67
+ const role_settings = role.split(":");
68
+ const [role_name, role_mode] = role_settings;
69
+ const role_view = role_settings.length === 3 ? role_settings[2] : "*";
70
+ if (user_role === role_name) {
71
+ return role_mode === "*" ? [meta.mode, role_view] : [role_mode, role_view];
72
+ }
73
+ }
74
+ return ["", ""];
75
+ };
76
+ /** Check if user has required mode permission on meta. */
77
+ export const check_user_role = (cookie, meta, mode, view) => {
78
+ const [role_mode, role_view] = get_user_role_right(cookie, meta);
79
+ return role_mode.includes(mode) && (role_view === "*" || role_view.includes(view));
80
+ };
81
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/core/role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Threading and async utility functions.
3
+ * @module core/thread
4
+ */
5
+ /** Sleep for specified milliseconds using Bun's native sleep. */
6
+ export declare const snooze: (ms: number) => Promise<void>;
7
+ //# sourceMappingURL=thread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../src/core/thread.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iEAAiE;AACjE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Threading and async utility functions.
3
+ * @module core/thread
4
+ */
5
+ /** Sleep for specified milliseconds using Bun's native sleep. */
6
+ export const snooze = (ms) => Bun.sleep(ms);
7
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/core/thread.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Type conversion and validation system.
3
+ * @module core/type
4
+ */
5
+ import type { FieldValue } from "./meta.js";
6
+ export interface TypeResult<T = unknown> {
7
+ value?: T;
8
+ err?: string;
9
+ }
10
+ export interface TypeDefinition {
11
+ name: string;
12
+ convert: (value: unknown) => TypeResult;
13
+ }
14
+ export interface Field {
15
+ name: string;
16
+ type?: string;
17
+ default?: FieldValue;
18
+ }
19
+ /** Create success result. */
20
+ export declare const ok: <T>(value: T) => TypeResult<T>;
21
+ /** Create error result. */
22
+ export declare const err: (type: string, value: unknown) => TypeResult;
23
+ /** Check if value is an integer. */
24
+ export declare const is_int: (value: unknown) => boolean;
25
+ /** Create a regex validation type. */
26
+ export declare const regex_type: (name: string, pattern: RegExp) => TypeDefinition;
27
+ /** Create an integer enum validation type. */
28
+ export declare const int_enum_type: (name: string, valid_values: number[]) => TypeDefinition;
29
+ /** Create an integer range validation type. */
30
+ export declare const int_range_type: (name: string, min: number, max: number) => TypeDefinition;
31
+ /** Create a passthrough string type. */
32
+ export declare const string_type: (name: string) => TypeDefinition;
33
+ /** Register a custom type with conversion function. */
34
+ export declare const register_type: (type: TypeDefinition) => void;
35
+ /** Get registered type by name. */
36
+ export declare const get_type: (name: string) => TypeDefinition;
37
+ interface ConvertResult {
38
+ obj: Record<string, FieldValue>;
39
+ error_field_names: string[];
40
+ }
41
+ /** Convert object fields to their defined types. */
42
+ export declare const convert_type: (obj: Record<string, unknown>, fields: Field[]) => ConvertResult;
43
+ /** Convert object fields for update operation (preserves empty values). */
44
+ export declare const convert_update_type: (obj: Record<string, unknown>, fields: Field[]) => ConvertResult;
45
+ export {};
46
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/core/type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC;CACzC;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAQD,6BAA6B;AAC7B,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,CAAgB,CAAC;AAE9D,2BAA2B;AAC3B,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,UAAmD,CAAC;AAWvG,oCAAoC;AACpC,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,KAAG,OAAgE,CAAC;AAEzG,sCAAsC;AACtC,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,cAAuH,CAAC;AAEnL,8CAA8C;AAC9C,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,cAAc,MAAM,EAAE,KAAG,cAOnE,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,cAOtE,CAAC;AAEH,wCAAwC;AACxC,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,cAAyE,CAAC;AAMrH,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAI,MAAM,cAAc,KAAG,IAEpD,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,cAIvC,CAAC;AAuNF,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AA+BD,oDAAoD;AACpD,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,EAAE,KAAG,aAAmD,CAAC;AAEjI,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,EAAE,KAAG,aAAkD,CAAC"}