@saltcorn/data 0.7.4-beta.3 → 0.8.0-beta.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 (203) hide show
  1. package/dist/base-plugin/actions.d.ts.map +1 -1
  2. package/dist/base-plugin/actions.js +3 -0
  3. package/dist/base-plugin/actions.js.map +1 -1
  4. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  5. package/dist/base-plugin/fieldviews.js +23 -4
  6. package/dist/base-plugin/fieldviews.js.map +1 -1
  7. package/dist/base-plugin/fileviews.d.ts +29 -7
  8. package/dist/base-plugin/fileviews.d.ts.map +1 -1
  9. package/dist/base-plugin/fileviews.js +54 -20
  10. package/dist/base-plugin/fileviews.js.map +1 -1
  11. package/dist/base-plugin/index.d.ts +20 -9
  12. package/dist/base-plugin/index.d.ts.map +1 -1
  13. package/dist/base-plugin/types.d.ts +142 -130
  14. package/dist/base-plugin/types.d.ts.map +1 -1
  15. package/dist/base-plugin/types.js +33 -8
  16. package/dist/base-plugin/types.js.map +1 -1
  17. package/dist/base-plugin/viewtemplates/edit.d.ts +7 -3
  18. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  19. package/dist/base-plugin/viewtemplates/edit.js +107 -21
  20. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  21. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  22. package/dist/base-plugin/viewtemplates/feed.js +71 -57
  23. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  24. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  25. package/dist/base-plugin/viewtemplates/filter.js +13 -7
  26. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  27. package/dist/base-plugin/viewtemplates/list.d.ts +3 -3
  28. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  29. package/dist/base-plugin/viewtemplates/list.js +134 -120
  30. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  31. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +0 -2
  32. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  33. package/dist/base-plugin/viewtemplates/listshowlist.js +4 -23
  34. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  35. package/dist/base-plugin/viewtemplates/show.d.ts +2 -2
  36. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  37. package/dist/base-plugin/viewtemplates/show.js +30 -11
  38. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  39. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +1 -1
  40. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  41. package/dist/base-plugin/viewtemplates/viewable_fields.js +34 -11
  42. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  43. package/dist/contracts.d.ts.map +1 -1
  44. package/dist/contracts.js +0 -1
  45. package/dist/contracts.js.map +1 -1
  46. package/dist/db/state.d.ts +1 -0
  47. package/dist/db/state.d.ts.map +1 -1
  48. package/dist/db/state.js +3 -1
  49. package/dist/db/state.js.map +1 -1
  50. package/dist/diagram/cy_generate_utils.d.ts +11 -4
  51. package/dist/diagram/cy_generate_utils.d.ts.map +1 -1
  52. package/dist/diagram/cy_generate_utils.js +42 -6
  53. package/dist/diagram/cy_generate_utils.js.map +1 -1
  54. package/dist/diagram/cy_raster.d.ts +4 -2
  55. package/dist/diagram/cy_raster.d.ts.map +1 -1
  56. package/dist/diagram/cy_raster.js +146 -32
  57. package/dist/diagram/cy_raster.js.map +1 -1
  58. package/dist/diagram/node.d.ts +3 -2
  59. package/dist/diagram/node.d.ts.map +1 -1
  60. package/dist/diagram/node.js +2 -1
  61. package/dist/diagram/node.js.map +1 -1
  62. package/dist/diagram/node_extract_utils.d.ts +19 -3
  63. package/dist/diagram/node_extract_utils.d.ts.map +1 -1
  64. package/dist/diagram/node_extract_utils.js +165 -35
  65. package/dist/diagram/node_extract_utils.js.map +1 -1
  66. package/dist/diagram/nodes/dummy_node.d.ts +6 -0
  67. package/dist/diagram/nodes/dummy_node.d.ts.map +1 -0
  68. package/dist/diagram/nodes/dummy_node.js +17 -0
  69. package/dist/diagram/nodes/dummy_node.js.map +1 -0
  70. package/dist/diagram/nodes/node.d.ts +33 -0
  71. package/dist/diagram/nodes/node.d.ts.map +1 -0
  72. package/dist/diagram/nodes/node.js +42 -0
  73. package/dist/diagram/nodes/node.js.map +1 -0
  74. package/dist/diagram/nodes/page_node.d.ts +9 -0
  75. package/dist/diagram/nodes/page_node.d.ts.map +1 -0
  76. package/dist/diagram/nodes/page_node.js +20 -0
  77. package/dist/diagram/nodes/page_node.js.map +1 -0
  78. package/dist/diagram/nodes/table_node.d.ts +9 -0
  79. package/dist/diagram/nodes/table_node.d.ts.map +1 -0
  80. package/dist/diagram/nodes/table_node.js +24 -0
  81. package/dist/diagram/nodes/table_node.js.map +1 -0
  82. package/dist/diagram/nodes/trigger_node.d.ts +9 -0
  83. package/dist/diagram/nodes/trigger_node.d.ts.map +1 -0
  84. package/dist/diagram/nodes/trigger_node.js +19 -0
  85. package/dist/diagram/nodes/trigger_node.js.map +1 -0
  86. package/dist/diagram/nodes/view_node.d.ts +9 -0
  87. package/dist/diagram/nodes/view_node.d.ts.map +1 -0
  88. package/dist/diagram/nodes/view_node.js +23 -0
  89. package/dist/diagram/nodes/view_node.js.map +1 -0
  90. package/dist/migrate.js +1 -1
  91. package/dist/migrate.js.map +1 -1
  92. package/dist/migrations/202210051058.d.ts +2 -0
  93. package/dist/migrations/202210051058.d.ts.map +1 -0
  94. package/dist/migrations/202210051058.js +121 -0
  95. package/dist/migrations/202210051058.js.map +1 -0
  96. package/dist/migrations/202210101540.d.ts +2 -0
  97. package/dist/migrations/202210101540.d.ts.map +1 -0
  98. package/dist/migrations/202210101540.js +47 -0
  99. package/dist/migrations/202210101540.js.map +1 -0
  100. package/dist/migrations/202211040031.d.ts +2 -0
  101. package/dist/migrations/202211040031.d.ts.map +1 -0
  102. package/dist/migrations/202211040031.js +7 -0
  103. package/dist/migrations/202211040031.js.map +1 -0
  104. package/dist/mobile-mocks/npm/fs-xattr.d.ts +1 -0
  105. package/dist/mobile-mocks/npm/fs-xattr.d.ts.map +1 -0
  106. package/dist/mobile-mocks/npm/fs-xattr.js +2 -0
  107. package/dist/mobile-mocks/npm/fs-xattr.js.map +1 -0
  108. package/dist/models/config.d.ts.map +1 -1
  109. package/dist/models/config.js +14 -0
  110. package/dist/models/config.js.map +1 -1
  111. package/dist/models/discovery.d.ts.map +1 -1
  112. package/dist/models/discovery.js +6 -1
  113. package/dist/models/discovery.js.map +1 -1
  114. package/dist/models/disk_file.d.ts +138 -0
  115. package/dist/models/disk_file.d.ts.map +1 -0
  116. package/dist/models/disk_file.js +255 -0
  117. package/dist/models/disk_file.js.map +1 -0
  118. package/dist/models/email.d.ts +3 -1
  119. package/dist/models/email.d.ts.map +1 -1
  120. package/dist/models/email.js +14 -4
  121. package/dist/models/email.js.map +1 -1
  122. package/dist/models/expression.d.ts +1 -1
  123. package/dist/models/expression.d.ts.map +1 -1
  124. package/dist/models/expression.js +33 -7
  125. package/dist/models/expression.js.map +1 -1
  126. package/dist/models/field.d.ts +1 -0
  127. package/dist/models/field.d.ts.map +1 -1
  128. package/dist/models/field.js +56 -15
  129. package/dist/models/field.js.map +1 -1
  130. package/dist/models/file.d.ts +19 -14
  131. package/dist/models/file.d.ts.map +1 -1
  132. package/dist/models/file.js +264 -52
  133. package/dist/models/file.js.map +1 -1
  134. package/dist/models/form.d.ts +6 -3
  135. package/dist/models/form.d.ts.map +1 -1
  136. package/dist/models/form.js +7 -3
  137. package/dist/models/form.js.map +1 -1
  138. package/dist/models/index.d.ts +4 -2
  139. package/dist/models/index.d.ts.map +1 -1
  140. package/dist/models/page.d.ts +2 -0
  141. package/dist/models/page.d.ts.map +1 -1
  142. package/dist/models/page.js +27 -0
  143. package/dist/models/page.js.map +1 -1
  144. package/dist/models/scheduler.d.ts.map +1 -1
  145. package/dist/models/scheduler.js +9 -4
  146. package/dist/models/scheduler.js.map +1 -1
  147. package/dist/models/table.d.ts +8 -5
  148. package/dist/models/table.d.ts.map +1 -1
  149. package/dist/models/table.js +68 -28
  150. package/dist/models/table.js.map +1 -1
  151. package/dist/models/tag.d.ts +4 -2
  152. package/dist/models/tag.d.ts.map +1 -1
  153. package/dist/models/tag.js +11 -4
  154. package/dist/models/tag.js.map +1 -1
  155. package/dist/models/tag_entry.d.ts +2 -2
  156. package/dist/models/tag_entry.d.ts.map +1 -1
  157. package/dist/models/tag_entry.js +2 -2
  158. package/dist/models/tag_entry.js.map +1 -1
  159. package/dist/models/trigger.d.ts +12 -3
  160. package/dist/models/trigger.d.ts.map +1 -1
  161. package/dist/models/trigger.js +57 -10
  162. package/dist/models/trigger.js.map +1 -1
  163. package/dist/models/user.d.ts.map +1 -1
  164. package/dist/models/user.js +13 -1
  165. package/dist/models/user.js.map +1 -1
  166. package/dist/models/view.d.ts +2 -7
  167. package/dist/models/view.d.ts.map +1 -1
  168. package/dist/models/view.js +17 -51
  169. package/dist/models/view.js.map +1 -1
  170. package/dist/models/workflow.d.ts +2 -0
  171. package/dist/models/workflow.d.ts.map +1 -1
  172. package/dist/models/workflow.js +4 -0
  173. package/dist/models/workflow.js.map +1 -1
  174. package/dist/plugin-helper.d.ts +5 -3
  175. package/dist/plugin-helper.d.ts.map +1 -1
  176. package/dist/plugin-helper.js +144 -32
  177. package/dist/plugin-helper.js.map +1 -1
  178. package/dist/plugin-testing.js +1 -1
  179. package/dist/plugin-testing.js.map +1 -1
  180. package/dist/tests/calc.test.js +13 -0
  181. package/dist/tests/calc.test.js.map +1 -1
  182. package/dist/tests/discover.test.js +3 -0
  183. package/dist/tests/discover.test.js.map +1 -1
  184. package/dist/tests/email.test.js +156 -13
  185. package/dist/tests/email.test.js.map +1 -1
  186. package/dist/tests/exact_views.test.js +26 -34
  187. package/dist/tests/exact_views.test.js.map +1 -1
  188. package/dist/tests/field.test.js +67 -1
  189. package/dist/tests/field.test.js.map +1 -1
  190. package/dist/tests/models.test.js +10 -7
  191. package/dist/tests/models.test.js.map +1 -1
  192. package/dist/tests/table.test.js +88 -2
  193. package/dist/tests/table.test.js.map +1 -1
  194. package/dist/tests/user.test.js +56 -0
  195. package/dist/tests/user.test.js.map +1 -1
  196. package/dist/tests/view.test.js +1 -11
  197. package/dist/tests/view.test.js.map +1 -1
  198. package/dist/utils.d.ts +3 -1
  199. package/dist/utils.d.ts.map +1 -1
  200. package/dist/utils.js +27 -0
  201. package/dist/utils.js.map +1 -1
  202. package/package.json +8 -7
  203. package/webpack.config.js +1 -0
@@ -0,0 +1,138 @@
1
+ /**
2
+ * File Database Access Layer
3
+ * @category saltcorn-data
4
+ * @module models/file
5
+ * @subcategory models
6
+ */
7
+ import type { Where, SelectOptions, Row } from "@saltcorn/db-common/internal";
8
+ /**
9
+ * File Descriptor class
10
+ *
11
+ * Architecture tips:
12
+ * 1. Physically Saltcorn stores files on local filesystem of the server, where Saltcorn runs.
13
+ * 2. The path to file store is defined in db.connectObj.file_store.
14
+ * 3. List of files stored in _sc_files table in Saltcorn database.
15
+ * 4. Each tenant has own file list and file storage.
16
+ * 5. This class provides file descriptor and basic functions to manipulate with files.
17
+ * @category saltcorn-data
18
+ */
19
+ declare class File {
20
+ filename: string;
21
+ folder?: string;
22
+ location: string;
23
+ mime_super: string;
24
+ mime_sub: string;
25
+ uploaded_at: Date;
26
+ size_kb: number;
27
+ id?: number;
28
+ user_id?: number;
29
+ min_role_read: number;
30
+ s3_store: boolean;
31
+ /**
32
+ * Constructor
33
+ * @param o {object}
34
+ */
35
+ constructor(o: FileCfg);
36
+ /**
37
+ * Select list of file descriptors
38
+ * @param where
39
+ * @param selectopts
40
+ * @returns {Promise<*>}
41
+ */
42
+ static find(where?: Where, selectopts?: SelectOptions): Promise<Array<File>>;
43
+ /**
44
+ * Select one file descriptor
45
+ *
46
+ * @param where
47
+ * @returns {Promise<File|null>}
48
+ */
49
+ static findOne(where: Where): Promise<File | null>;
50
+ /**
51
+ * Update File descriptor
52
+ *
53
+ * @param id - primary key
54
+ * @param row - row data
55
+ * @returns {Promise<void>} no returns
56
+ */
57
+ static update(id: number, row: Row): Promise<void>;
58
+ /**
59
+ * Get absolute path to new file in db.connectObj.file_store.
60
+ *
61
+ * @param suggest - path to file inside file store. If undefined that autogenerated uudv4 is used.
62
+ * @returns {string} - path to file
63
+ */
64
+ static get_new_path(suggest?: string): string;
65
+ /**
66
+ * Ensure that file_store path is physically exists in file system.
67
+ * In reality just recursively creates full absolute path to db.connectObj.file_store.
68
+ *
69
+ * @returns {Promise<void>}
70
+ */
71
+ static ensure_file_store(): Promise<void>;
72
+ /**
73
+ * Create new file
74
+ * @param file
75
+ * @param user_id
76
+ * @param min_role_read
77
+ * @returns
78
+ */
79
+ static from_req_files(file: {
80
+ mimetype: string;
81
+ name: string;
82
+ mv: Function;
83
+ size: number;
84
+ s3object?: boolean;
85
+ }, user_id: number, min_role_read?: number): Promise<File>;
86
+ /**
87
+ * create a '_sc_files' entry from an existing file.
88
+ * The old file will be moved to a new location.
89
+ *
90
+ * @param directory directory of existing file
91
+ * @param name name of existing file
92
+ * @param userId id of creating user
93
+ * @returns the new File object
94
+ */
95
+ static from_existing_file(directory: string, name: string, userId: number): Promise<File | null>;
96
+ /**
97
+ * Delete file
98
+ * @returns {Promise<{error}>}
99
+ */
100
+ delete(unlinker?: (arg0: File) => Promise<void>): Promise<{
101
+ error: string;
102
+ } | void>;
103
+ /**
104
+ * MIME type of the file
105
+ * @type {string}
106
+ */
107
+ get mimetype(): string;
108
+ /**
109
+ * Create file
110
+ * @param f
111
+ * @returns {Promise<File>}
112
+ */
113
+ static create(f: FileCfg): Promise<File>;
114
+ /**
115
+ * This is a mobile-app function, it uploads a file to the saltcorn server.
116
+ * @param f file to upload
117
+ * @returns JSON response from POST 'file/upload'
118
+ */
119
+ static upload(f: any): Promise<any>;
120
+ }
121
+ declare namespace File {
122
+ type FileCfg = {
123
+ filename: string;
124
+ location: string;
125
+ folder?: string;
126
+ uploaded_at: string | number | Date;
127
+ size_kb: number;
128
+ id?: number;
129
+ user_id?: number;
130
+ mime_super: string;
131
+ mime_sub: string;
132
+ min_role_read: number;
133
+ s3_store?: boolean;
134
+ };
135
+ }
136
+ declare type FileCfg = File.FileCfg;
137
+ export = File;
138
+ //# sourceMappingURL=disk_file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk_file.d.ts","sourceRoot":"","sources":["../../models/disk_file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAQ9E;;;;;;;;;;GAUG;AACH,cAAM,IAAI;IACR,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;gBACS,CAAC,EAAE,OAAO;IAkBtB;;;;;OAKG;WACU,IAAI,CACf,KAAK,CAAC,EAAE,KAAK,EACb,UAAU,GAAE,aAAkB,GAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAqBvB;;;;;OAKG;WACU,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAUxD;;;;;;OAMG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAY7C;;;;;OAKG;WAEU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/C;;;;;;OAMG;WACU,cAAc,CACzB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,QAAQ,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,EACD,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,MAAU,GACxB,OAAO,CAAC,IAAI,CAAC;IA2BhB;;;;;;;;OAQG;WACU,kBAAkB,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;IAehB;;;OAGG;IAEG,MAAM,CACV,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GACvC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAepC;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;;OAIG;WACU,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C;;;;OAIG;WACU,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAiB1C;AAED,kBAAU,IAAI,CAAC;IACb,KAAY,OAAO,GAAG;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AACD,aAAK,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAE5B,SAAS,IAAI,CAAC"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ /**
3
+ * File Database Access Layer
4
+ * @category saltcorn-data
5
+ * @module models/file
6
+ * @subcategory models
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ const db_1 = __importDefault(require("../db"));
12
+ const uuid_1 = require("uuid");
13
+ const path_1 = require("path");
14
+ const { asyncMap } = require("../utils");
15
+ const promises_1 = require("fs/promises");
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const form_data_1 = __importDefault(require("form-data"));
18
+ const fs_1 = require("fs");
19
+ const mime_types_1 = require("mime-types");
20
+ /**
21
+ * File Descriptor class
22
+ *
23
+ * Architecture tips:
24
+ * 1. Physically Saltcorn stores files on local filesystem of the server, where Saltcorn runs.
25
+ * 2. The path to file store is defined in db.connectObj.file_store.
26
+ * 3. List of files stored in _sc_files table in Saltcorn database.
27
+ * 4. Each tenant has own file list and file storage.
28
+ * 5. This class provides file descriptor and basic functions to manipulate with files.
29
+ * @category saltcorn-data
30
+ */
31
+ class File {
32
+ /**
33
+ * Constructor
34
+ * @param o {object}
35
+ */
36
+ constructor(o) {
37
+ this.filename = o.filename;
38
+ this.location = o.location;
39
+ this.folder = o.folder || "/";
40
+ this.uploaded_at =
41
+ typeof o.uploaded_at === "string" || typeof o.uploaded_at === "number"
42
+ ? new Date(o.uploaded_at)
43
+ : o.uploaded_at;
44
+ this.size_kb = o.size_kb;
45
+ this.id = o.id;
46
+ this.user_id = o.user_id;
47
+ this.mime_super = o.mime_super;
48
+ this.mime_sub = o.mime_sub;
49
+ this.min_role_read = o.min_role_read;
50
+ this.s3_store = !!o.s3_store;
51
+ // TBD add checksum this.checksum = o.checksum;
52
+ }
53
+ /**
54
+ * Select list of file descriptors
55
+ * @param where
56
+ * @param selectopts
57
+ * @returns {Promise<*>}
58
+ */
59
+ static async find(where, selectopts = {}) {
60
+ const { getState } = require("../db/state");
61
+ const useS3 = getState().getConfig("storage_s3_enabled");
62
+ if (useS3 || where?.inDB) {
63
+ if (selectopts.cached) {
64
+ const { getState } = require("../db/state");
65
+ // TODO ch migrate State and replace any
66
+ const files = Object.values(getState().files).sort((a, b) => a.filename > b.filename ? 1 : -1);
67
+ return files.map((t) => new File(t));
68
+ }
69
+ const db_flds = await db_1.default.select("_sc_files", where, selectopts);
70
+ return db_flds.map((dbf) => new File(dbf));
71
+ }
72
+ else {
73
+ const searchFolder = where?.folder || "/";
74
+ return [];
75
+ }
76
+ }
77
+ /**
78
+ * Select one file descriptor
79
+ *
80
+ * @param where
81
+ * @returns {Promise<File|null>}
82
+ */
83
+ static async findOne(where) {
84
+ if (where.id) {
85
+ const { getState } = require("../db/state");
86
+ const cf = getState().files[+where.id];
87
+ if (cf)
88
+ return new File(cf);
89
+ }
90
+ const f = await db_1.default.selectMaybeOne("_sc_files", where);
91
+ return f ? new File(f) : null;
92
+ }
93
+ /**
94
+ * Update File descriptor
95
+ *
96
+ * @param id - primary key
97
+ * @param row - row data
98
+ * @returns {Promise<void>} no returns
99
+ */
100
+ static async update(id, row) {
101
+ await db_1.default.update("_sc_files", row, id);
102
+ await require("../db/state").getState().refresh_files();
103
+ }
104
+ /**
105
+ * Get absolute path to new file in db.connectObj.file_store.
106
+ *
107
+ * @param suggest - path to file inside file store. If undefined that autogenerated uudv4 is used.
108
+ * @returns {string} - path to file
109
+ */
110
+ static get_new_path(suggest) {
111
+ const { getState } = require("../db/state");
112
+ // Check if it uses S3, then use a default "saltcorn" folder
113
+ const useS3 = getState().getConfig("storage_s3_enabled");
114
+ const file_store = !useS3 ? db_1.default.connectObj.file_store : "saltcorn/";
115
+ const newFnm = suggest || (0, uuid_1.v4)();
116
+ const newPath = (0, path_1.join)(file_store, newFnm);
117
+ return newPath;
118
+ }
119
+ /**
120
+ * Ensure that file_store path is physically exists in file system.
121
+ * In reality just recursively creates full absolute path to db.connectObj.file_store.
122
+ *
123
+ * @returns {Promise<void>}
124
+ */
125
+ // TBD fs errors handling
126
+ static async ensure_file_store() {
127
+ const { getState } = require("../db/state");
128
+ if (!getState().getConfig("storage_s3_enabled")) {
129
+ const file_store = db_1.default.connectObj.file_store;
130
+ await (0, promises_1.mkdir)(file_store, { recursive: true });
131
+ }
132
+ }
133
+ /**
134
+ * Create new file
135
+ * @param file
136
+ * @param user_id
137
+ * @param min_role_read
138
+ * @returns
139
+ */
140
+ static async from_req_files(file, user_id, min_role_read = 1) {
141
+ if (Array.isArray(file)) {
142
+ return await asyncMap(file, (f) => File.from_req_files(f, user_id, min_role_read));
143
+ }
144
+ else {
145
+ // get path to file
146
+ const newPath = File.get_new_path();
147
+ // set mime type
148
+ const [mime_super, mime_sub] = file.mimetype.split("/");
149
+ // move file in file system to newPath
150
+ await file.mv(newPath);
151
+ // create file
152
+ return await File.create({
153
+ filename: file.name,
154
+ location: newPath,
155
+ uploaded_at: new Date(),
156
+ size_kb: Math.round(file.size / 1024),
157
+ user_id,
158
+ mime_super,
159
+ mime_sub,
160
+ min_role_read,
161
+ s3_store: !!file.s3object,
162
+ });
163
+ }
164
+ }
165
+ /**
166
+ * create a '_sc_files' entry from an existing file.
167
+ * The old file will be moved to a new location.
168
+ *
169
+ * @param directory directory of existing file
170
+ * @param name name of existing file
171
+ * @param userId id of creating user
172
+ * @returns the new File object
173
+ */
174
+ static async from_existing_file(directory, name, userId) {
175
+ const fullPath = (0, path_1.join)(directory, name);
176
+ if (!(0, fs_1.existsSync)(fullPath))
177
+ return null;
178
+ const file = {
179
+ mimetype: (0, mime_types_1.lookup)(fullPath),
180
+ name: name,
181
+ mv: (newPath) => {
182
+ (0, fs_1.renameSync)(fullPath, newPath);
183
+ },
184
+ size: (0, fs_1.statSync)(fullPath).size,
185
+ };
186
+ return await File.from_req_files(file, userId);
187
+ }
188
+ /**
189
+ * Delete file
190
+ * @returns {Promise<{error}>}
191
+ */
192
+ async delete(unlinker) {
193
+ try {
194
+ // delete file from database
195
+ await db_1.default.deleteWhere("_sc_files", { id: this.id });
196
+ // delete name and possible file from file system
197
+ if (unlinker)
198
+ await unlinker(this);
199
+ else
200
+ await (0, promises_1.unlink)(this.location);
201
+ if (db_1.default.reset_sequence)
202
+ await db_1.default.reset_sequence("_sc_files");
203
+ // reload file list cache
204
+ await require("../db/state").getState().refresh_files();
205
+ }
206
+ catch (e) {
207
+ return { error: e.message };
208
+ }
209
+ }
210
+ /**
211
+ * MIME type of the file
212
+ * @type {string}
213
+ */
214
+ get mimetype() {
215
+ return `${this.mime_super}/${this.mime_sub}`;
216
+ }
217
+ /**
218
+ * Create file
219
+ * @param f
220
+ * @returns {Promise<File>}
221
+ */
222
+ static async create(f) {
223
+ const file = new File(f);
224
+ const { id, ...rest } = file;
225
+ // insert file descriptor row to database
226
+ file.id = await db_1.default.insert("_sc_files", rest);
227
+ // refresh file list cache
228
+ await require("../db/state").getState().refresh_files();
229
+ return file;
230
+ }
231
+ /**
232
+ * This is a mobile-app function, it uploads a file to the saltcorn server.
233
+ * @param f file to upload
234
+ * @returns JSON response from POST 'file/upload'
235
+ */
236
+ static async upload(f) {
237
+ const { getState } = require("../db/state");
238
+ const base_url = getState().getConfig("base_url") || "http://10.0.2.2:3000";
239
+ const url = `${base_url}/files/upload`;
240
+ const token = window.localStorage.getItem("auth_jwt");
241
+ const formData = new form_data_1.default();
242
+ formData.append("file", f);
243
+ const response = await axios_1.default.post(url, formData, {
244
+ headers: {
245
+ "Content-Type": "multipart/form-data",
246
+ Authorization: `jwt ${token}`,
247
+ "X-Requested-With": "XMLHttpRequest",
248
+ "X-Saltcorn-Client": "mobile-app",
249
+ },
250
+ });
251
+ return response.data.success;
252
+ }
253
+ }
254
+ module.exports = File;
255
+ //# sourceMappingURL=disk_file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk_file.js","sourceRoot":"","sources":["../../models/disk_file.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,9 @@ import { Transporter } from "nodemailer";
7
7
  import User from "./user";
8
8
  declare const _default: {
9
9
  getMailTransport: () => Transporter<any>;
10
- send_verification_email: (user: User, req: any) => Promise<any>;
10
+ send_verification_email: (user: User, req: any, opts?: {
11
+ new_verification_token?: string | undefined;
12
+ } | undefined) => Promise<any>;
11
13
  emailMockReqRes: {
12
14
  req: {
13
15
  generate_email: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ1D,OAAO,IAAI,MAAM,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8F1B,kBAME"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ1D,OAAO,IAAI,MAAM,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4G1B,kBAME"}
@@ -42,8 +42,18 @@ const getMailTransport = () => {
42
42
  });
43
43
  };
44
44
  const viewToMjml = async (view, state) => {
45
- const htmlBs = await view.run(state, emailMockReqRes);
46
- return mjml_tags_1.default.mjml(mjml_tags_1.default.body(htmlBs));
45
+ const result = await view.run(state, emailMockReqRes);
46
+ const allStyles = result.styles.map((style) => mjml_tags_1.default.style(`
47
+ .${style.className} div {
48
+ ${style.style}
49
+ }
50
+ `));
51
+ const bsCss = `
52
+ <link
53
+ href="https://stackpath.bootstrapcdn.com/bootswatch/4.5.0/flatly/bootstrap.min.css"
54
+ rel="stylesheet"
55
+ />`;
56
+ return mjml_tags_1.default.mjml(mjml_tags_1.default.head(mjml_tags_1.default.raw(bsCss) + allStyles.join(" ")) + mjml_tags_1.default.body(result.markup));
47
57
  };
48
58
  const viewToEmailHtml = async (view, state) => {
49
59
  const mjmlMarkup = await viewToMjml(view, state);
@@ -60,14 +70,14 @@ const viewToEmailHtml = async (view, state) => {
60
70
  * @param {object} [req]
61
71
  * @returns {Promise<object>}
62
72
  */
63
- const send_verification_email = async (user, req) => {
73
+ const send_verification_email = async (user, req, opts) => {
64
74
  const verification_view_name = getState().getConfig("verification_view");
65
75
  if (verification_view_name) {
66
76
  const verification_view = await view_1.default.findOne({
67
77
  name: verification_view_name,
68
78
  });
69
79
  if (verification_view) {
70
- const verification_token = (0, uuid_1.v4)();
80
+ const verification_token = opts?.new_verification_token || (0, uuid_1.v4)();
71
81
  try {
72
82
  await user.update({ verification_token });
73
83
  user.verification_token = verification_token;
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":";;;;AAAA;;;;GAIG;AACH,2CAA0D;AAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5C,2CAA2C;AAC3C,2EAA8C;AAC9C,uBAAuB;AACvB,kDAA0B;AAC1B,+BAAoC;AAGpC,2DAAmC;AACnC,gDAA6B;AAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,eAAK,CAAC;AAE7B,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE;QACH,GAAG,UAAU,CAAC,GAAG;QACjB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;KACrD;IACD,GAAG,EAAE,UAAU,CAAC,GAAG;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,GAAgB,EAAE;IACzC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IACjE,OAAO,IAAA,4BAAe,EAAC;QACrB,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;QACvC,IAAI;QACJ,MAAM;QACN,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC;YAC3C,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC;SAC5C;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAS,EAAE,KAAU,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACtD,OAAO,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,IAAS,EAAE,KAAU,EAAE,EAAE;IACtD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAA,cAAS,EAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,mCAAmC;QACrC,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,KAAK,EACnC,IAAU,EACV,GAAQ,EACgB,EAAE;IAC1B,MAAM,sBAAsB,GAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACzE,IAAI,sBAAsB,EAAE;QAC1B,MAAM,iBAAiB,GAAG,MAAM,cAAI,CAAC,OAAO,CAAC;YAC3C,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;QACH,IAAI,iBAAiB,EAAE;YACrB,MAAM,kBAAkB,GAAG,IAAA,SAAM,GAAE,CAAC;YACpC,IAAI;gBACF,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBAE7C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG;oBACZ,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC;oBACxC,EAAE,EAAE,IAAI,CAAC,KAAK;oBACd,OAAO,EAAE,kCAAkC;oBAC3C,IAAI;iBACL,CAAC;gBACF,MAAM,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,GAAG;oBACL,GAAG,CAAC,KAAK,CACP,SAAS,EACT,GAAG,CAAC,EAAE,CACJ,qDAAqD,EACrD,IAAI,CAAC,KAAK,CACX,CACF,CAAC;gBACJ,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,CAAM,EAAE;gBACf,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC7B;SACF;;YAAM,OAAO,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;KACtE;SAAM;QACL,OAAO,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;KACrD;AACH,CAAC,CAAC;AAEF,iBAAS;IACP,gBAAgB;IAChB,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ declare function jsexprToSQL(expression: string, extraCtx?: any): String;
19
19
  * @throws {Error}
20
20
  * @returns {object}
21
21
  */
22
- declare function jsexprToWhere(expression: string, extraCtx?: any): Where;
22
+ declare function jsexprToWhere(expression: string, extraCtx?: any, fields?: Field[]): Where;
23
23
  declare function freeVariables(expression: string): Set<string>;
24
24
  /**
25
25
  * @param {string} expression
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQrD;AAED,iBAAS,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAGrE;AASD;;;;GAIG;AACH,iBAAS,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAQ,GAAG,MAAM,CA+CnE;AAED;;;;GAIG;AACH,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAQ,GAAG,KAAK,CAqFpE;AAED,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA2DtD;AAMD;;;;GAIG;AACH,iBAAS,mBAAmB,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;;;EAuB1C;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,QAAQ,CAUV;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAUtE;AAED;;;;;GAKG;AACH,iBAAS,6BAA6B,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EACpB,YAAY,KAAK,GAChB,GAAG,CAYL;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,KAAK,CAAC,GAAG,CAAC,CA4BZ;;;;;;;;;;;;;;;AA+DD,kBAaE"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQrD;AAED,iBAAS,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAGrE;AAWD;;;;GAIG;AACH,iBAAS,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAQ,GAAG,MAAM,CA+CnE;AAED;;;;GAIG;AACH,iBAAS,aAAa,CACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,GAAQ,EAClB,MAAM,GAAE,KAAK,EAAO,GACnB,KAAK,CA6GP;AAED,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA2DtD;AAMD;;;;GAIG;AACH,iBAAS,mBAAmB,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;;;EAuB1C;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,QAAQ,CAUV;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAUtE;AAED;;;;;GAKG;AACH,iBAAS,6BAA6B,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EACpB,YAAY,KAAK,GAChB,GAAG,CAYL;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,KAAK,CAAC,GAAG,CAAC,CA4BZ;;;;;;;;;;;;;;;AA+DD,kBAaE"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  /**
3
6
  * @category saltcorn-data
4
7
  * @module models/expression
@@ -8,6 +11,7 @@ const vm_1 = require("vm");
8
11
  const acorn_1 = require("acorn");
9
12
  const estraverse_1 = require("estraverse");
10
13
  const astring_1 = require("astring");
14
+ const db_1 = __importDefault(require("../db"));
11
15
  /**
12
16
  * @param {string} s
13
17
  * @returns {boolean|void}
@@ -80,7 +84,7 @@ function jsexprToSQL(expression, extraCtx = {}) {
80
84
  * @throws {Error}
81
85
  * @returns {object}
82
86
  */
83
- function jsexprToWhere(expression, extraCtx = {}) {
87
+ function jsexprToWhere(expression, extraCtx = {}, fields = []) {
84
88
  if (!expression)
85
89
  return {};
86
90
  try {
@@ -94,9 +98,13 @@ function jsexprToWhere(expression, extraCtx = {}) {
94
98
  const cleft = compile(node.left);
95
99
  const cleftName = typeof cleft === "symbol" ? cleft.description : cleft;
96
100
  const cright = compile(node.right);
97
- const cmp = typeof cleft === "string" || cleft === null
98
- ? { eq: [cleft, cright] }
99
- : { [cleftName]: cright };
101
+ const cmp = typeof cright === "function"
102
+ ? cright(cleft)
103
+ : typeof cleft === "function"
104
+ ? cleft(cright)
105
+ : typeof cleft === "string" || cleft === null
106
+ ? { eq: [cleft, cright] }
107
+ : { [cleftName]: cright };
100
108
  const operators = {
101
109
  "=="() {
102
110
  return cmp;
@@ -125,6 +133,24 @@ function jsexprToWhere(expression, extraCtx = {}) {
125
133
  };
126
134
  return operators[node.operator](node);
127
135
  },
136
+ MemberExpression() {
137
+ const cleft = compile(node.object);
138
+ const cleftName = typeof cleft === "symbol" ? cleft.description : cleft;
139
+ const cright = compile(node.property);
140
+ const crightName = typeof cright === "symbol" ? cright.description : cright;
141
+ const field = fields.find((f) => f.name === cleftName);
142
+ if (!field)
143
+ throw new Error(`Field not found: ${cleftName}`);
144
+ return (val) => ({
145
+ [cleftName]: {
146
+ inSelect: {
147
+ table: `${db_1.default.getTenantSchemaPrefix()}"${field.reftable_name}"`,
148
+ field: "id",
149
+ where: { [crightName]: val },
150
+ },
151
+ },
152
+ });
153
+ },
128
154
  UnaryExpression() {
129
155
  return {
130
156
  "!"({ argument }) {
@@ -264,10 +290,10 @@ function get_expression_function(expression, fields) {
264
290
  function eval_expression(expression, row, user) {
265
291
  const field_names = Object.keys(row);
266
292
  const args = field_names.includes("user")
267
- ? `{${field_names.join()}}`
268
- : `{${field_names.join()}}, user`;
293
+ ? `row, {${field_names.join()}}`
294
+ : `row, {${field_names.join()}}, user`;
269
295
  const { getState } = require("../db/state");
270
- return (0, vm_1.runInNewContext)(`(${args})=>(${expression})`, getState().function_context)(row, user);
296
+ return (0, vm_1.runInNewContext)(`(${args})=>(${expression})`, getState().function_context)(row, row, user);
271
297
  }
272
298
  /**
273
299
  * @param {string} expression
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,7 @@ declare class Field implements AbstractField {
70
70
  * @returns {string}
71
71
  */
72
72
  get form_name(): string;
73
+ static select_options_query(table_name: string, where: string, attributes: any): Promise<any>;
73
74
  /**
74
75
  * Fills 'this.options' with values available via foreign key
75
76
  * Could be used for <options /> in a <select/> to select a user