@saltcorn/data 1.6.0-alpha.7 → 1.6.0-alpha.8

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 (236) hide show
  1. package/dist/base-plugin/actions.d.ts +1850 -1656
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +122 -104
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts +284 -114
  6. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  7. package/dist/base-plugin/fieldviews.js +23 -69
  8. package/dist/base-plugin/fieldviews.js.map +1 -1
  9. package/dist/base-plugin/fileviews.d.ts +15 -14
  10. package/dist/base-plugin/fileviews.d.ts.map +1 -1
  11. package/dist/base-plugin/fileviews.js +22 -18
  12. package/dist/base-plugin/fileviews.js.map +1 -1
  13. package/dist/base-plugin/index.d.ts +3369 -1293
  14. package/dist/base-plugin/index.d.ts.map +1 -1
  15. package/dist/base-plugin/index.js +39 -25
  16. package/dist/base-plugin/index.js.map +1 -1
  17. package/dist/base-plugin/types.d.ts +1438 -1029
  18. package/dist/base-plugin/types.d.ts.map +1 -1
  19. package/dist/base-plugin/types.js +3 -2
  20. package/dist/base-plugin/types.js.map +1 -1
  21. package/dist/base-plugin/viewtemplates/edit.d.ts +133 -257
  22. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  23. package/dist/base-plugin/viewtemplates/edit.js +292 -349
  24. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  25. package/dist/base-plugin/viewtemplates/feed.d.ts +30 -81
  26. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  27. package/dist/base-plugin/viewtemplates/feed.js +37 -30
  28. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  29. package/dist/base-plugin/viewtemplates/filter.d.ts +42 -64
  30. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  31. package/dist/base-plugin/viewtemplates/filter.js +86 -82
  32. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  33. package/dist/base-plugin/viewtemplates/list.d.ts +40 -115
  34. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  35. package/dist/base-plugin/viewtemplates/list.js +143 -162
  36. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  37. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +65 -49
  38. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  39. package/dist/base-plugin/viewtemplates/listshowlist.js +33 -58
  40. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  41. package/dist/base-plugin/viewtemplates/room.d.ts +102 -109
  42. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
  43. package/dist/base-plugin/viewtemplates/room.js +53 -50
  44. package/dist/base-plugin/viewtemplates/room.js.map +1 -1
  45. package/dist/base-plugin/viewtemplates/show.d.ts +72 -133
  46. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  47. package/dist/base-plugin/viewtemplates/show.js +72 -182
  48. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  49. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +2 -2
  50. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  51. package/dist/base-plugin/viewtemplates/viewable_fields.js +2 -1
  52. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  53. package/dist/base-plugin/viewtemplates/workflow-room.d.ts +37 -61
  54. package/dist/base-plugin/viewtemplates/workflow-room.d.ts.map +1 -1
  55. package/dist/base-plugin/viewtemplates/workflow-room.js +42 -65
  56. package/dist/base-plugin/viewtemplates/workflow-room.js.map +1 -1
  57. package/dist/contracts.d.ts +4 -48
  58. package/dist/contracts.d.ts.map +1 -1
  59. package/dist/contracts.js +18 -2
  60. package/dist/contracts.js.map +1 -1
  61. package/dist/db/connect.d.ts.map +1 -1
  62. package/dist/db/connect.js +1 -0
  63. package/dist/db/connect.js.map +1 -1
  64. package/dist/db/state.d.ts +31 -28
  65. package/dist/db/state.d.ts.map +1 -1
  66. package/dist/db/state.js +5 -2
  67. package/dist/db/state.js.map +1 -1
  68. package/dist/model-helper.d.ts +4 -16
  69. package/dist/model-helper.d.ts.map +1 -1
  70. package/dist/model-helper.js +3 -3
  71. package/dist/model-helper.js.map +1 -1
  72. package/dist/models/config.d.ts +5 -0
  73. package/dist/models/config.d.ts.map +1 -1
  74. package/dist/models/config.js +5 -0
  75. package/dist/models/config.js.map +1 -1
  76. package/dist/models/field.d.ts +1 -1
  77. package/dist/models/field.d.ts.map +1 -1
  78. package/dist/models/field.js +3 -2
  79. package/dist/models/field.js.map +1 -1
  80. package/dist/models/file.d.ts +1 -1
  81. package/dist/models/file.d.ts.map +1 -1
  82. package/dist/models/file.js.map +1 -1
  83. package/dist/models/form.js +1 -1
  84. package/dist/models/form.js.map +1 -1
  85. package/dist/models/index.d.ts +5 -0
  86. package/dist/models/index.d.ts.map +1 -1
  87. package/dist/models/layout.d.ts +1 -1
  88. package/dist/models/layout.d.ts.map +1 -1
  89. package/dist/models/layout.js +12 -0
  90. package/dist/models/layout.js.map +1 -1
  91. package/dist/models/plugin.d.ts +3 -2
  92. package/dist/models/plugin.d.ts.map +1 -1
  93. package/dist/models/plugin.js +7 -0
  94. package/dist/models/plugin.js.map +1 -1
  95. package/dist/models/table.d.ts.map +1 -1
  96. package/dist/models/table.js +6 -1
  97. package/dist/models/table.js.map +1 -1
  98. package/dist/plugin-testing.d.ts +3 -63
  99. package/dist/plugin-testing.d.ts.map +1 -1
  100. package/dist/plugin-testing.js +34 -15
  101. package/dist/plugin-testing.js.map +1 -1
  102. package/dist/standard-menu.d.ts.map +1 -1
  103. package/dist/standard-menu.js +15 -0
  104. package/dist/standard-menu.js.map +1 -1
  105. package/dist/tests/actions.test.d.ts +2 -0
  106. package/dist/tests/actions.test.d.ts.map +1 -0
  107. package/dist/tests/actions.test.js +936 -0
  108. package/dist/tests/actions.test.js.map +1 -0
  109. package/dist/tests/auth.test.d.ts +2 -0
  110. package/dist/tests/auth.test.d.ts.map +1 -0
  111. package/dist/tests/auth.test.js +824 -0
  112. package/dist/tests/auth.test.js.map +1 -0
  113. package/dist/tests/auxtest.test.d.ts +2 -0
  114. package/dist/tests/auxtest.test.d.ts.map +1 -0
  115. package/dist/tests/auxtest.test.js +562 -0
  116. package/dist/tests/auxtest.test.js.map +1 -0
  117. package/dist/tests/base.test.d.ts +2 -0
  118. package/dist/tests/base.test.d.ts.map +1 -0
  119. package/dist/tests/base.test.js +30 -0
  120. package/dist/tests/base.test.js.map +1 -0
  121. package/dist/tests/calc.test.d.ts +2 -0
  122. package/dist/tests/calc.test.d.ts.map +1 -0
  123. package/dist/tests/calc.test.js +1081 -0
  124. package/dist/tests/calc.test.js.map +1 -0
  125. package/dist/tests/composite_pk.test.d.ts +2 -0
  126. package/dist/tests/composite_pk.test.d.ts.map +1 -0
  127. package/dist/tests/composite_pk.test.js +98 -0
  128. package/dist/tests/composite_pk.test.js.map +1 -0
  129. package/dist/tests/config.test.d.ts +2 -0
  130. package/dist/tests/config.test.d.ts.map +1 -0
  131. package/dist/tests/config.test.js +86 -0
  132. package/dist/tests/config.test.js.map +1 -0
  133. package/dist/tests/db.test.d.ts +2 -0
  134. package/dist/tests/db.test.d.ts.map +1 -0
  135. package/dist/tests/db.test.js +178 -0
  136. package/dist/tests/db.test.js.map +1 -0
  137. package/dist/tests/discover.test.d.ts +2 -0
  138. package/dist/tests/discover.test.d.ts.map +1 -0
  139. package/dist/tests/discover.test.js +245 -0
  140. package/dist/tests/discover.test.js.map +1 -0
  141. package/dist/tests/edit.test.d.ts +2 -0
  142. package/dist/tests/edit.test.d.ts.map +1 -0
  143. package/dist/tests/edit.test.js +1161 -0
  144. package/dist/tests/edit.test.js.map +1 -0
  145. package/dist/tests/email.test.d.ts +2 -0
  146. package/dist/tests/email.test.d.ts.map +1 -0
  147. package/dist/tests/email.test.js +255 -0
  148. package/dist/tests/email.test.js.map +1 -0
  149. package/dist/tests/exact_views.test.d.ts +2 -0
  150. package/dist/tests/exact_views.test.d.ts.map +1 -0
  151. package/dist/tests/exact_views.test.js +1363 -0
  152. package/dist/tests/exact_views.test.js.map +1 -0
  153. package/dist/tests/field.test.d.ts +2 -0
  154. package/dist/tests/field.test.d.ts.map +1 -0
  155. package/dist/tests/field.test.js +588 -0
  156. package/dist/tests/field.test.js.map +1 -0
  157. package/dist/tests/fieldviews.test.d.ts +2 -0
  158. package/dist/tests/fieldviews.test.d.ts.map +1 -0
  159. package/dist/tests/fieldviews.test.js +74 -0
  160. package/dist/tests/fieldviews.test.js.map +1 -0
  161. package/dist/tests/file.test.d.ts +2 -0
  162. package/dist/tests/file.test.d.ts.map +1 -0
  163. package/dist/tests/file.test.js +148 -0
  164. package/dist/tests/file.test.js.map +1 -0
  165. package/dist/tests/filter.test.d.ts +2 -0
  166. package/dist/tests/filter.test.d.ts.map +1 -0
  167. package/dist/tests/filter.test.js +496 -0
  168. package/dist/tests/filter.test.js.map +1 -0
  169. package/dist/tests/form.test.d.ts +2 -0
  170. package/dist/tests/form.test.d.ts.map +1 -0
  171. package/dist/tests/form.test.js +264 -0
  172. package/dist/tests/form.test.js.map +1 -0
  173. package/dist/tests/list.test.d.ts +2 -0
  174. package/dist/tests/list.test.d.ts.map +1 -0
  175. package/dist/tests/list.test.js +1037 -0
  176. package/dist/tests/list.test.js.map +1 -0
  177. package/dist/tests/models.test.d.ts +2 -0
  178. package/dist/tests/models.test.d.ts.map +1 -0
  179. package/dist/tests/models.test.js +417 -0
  180. package/dist/tests/models.test.js.map +1 -0
  181. package/dist/tests/page.test.d.ts +2 -0
  182. package/dist/tests/page.test.d.ts.map +1 -0
  183. package/dist/tests/page.test.js +26 -0
  184. package/dist/tests/page.test.js.map +1 -0
  185. package/dist/tests/page_group.test.d.ts +2 -0
  186. package/dist/tests/page_group.test.d.ts.map +1 -0
  187. package/dist/tests/page_group.test.js +51 -0
  188. package/dist/tests/page_group.test.js.map +1 -0
  189. package/dist/tests/plugin.test.d.ts +2 -0
  190. package/dist/tests/plugin.test.d.ts.map +1 -0
  191. package/dist/tests/plugin.test.js +60 -0
  192. package/dist/tests/plugin.test.js.map +1 -0
  193. package/dist/tests/show.test.d.ts +2 -0
  194. package/dist/tests/show.test.d.ts.map +1 -0
  195. package/dist/tests/show.test.js +561 -0
  196. package/dist/tests/show.test.js.map +1 -0
  197. package/dist/tests/state.test.d.ts +2 -0
  198. package/dist/tests/state.test.d.ts.map +1 -0
  199. package/dist/tests/state.test.js +82 -0
  200. package/dist/tests/state.test.js.map +1 -0
  201. package/dist/tests/table.test.d.ts +2 -0
  202. package/dist/tests/table.test.d.ts.map +1 -0
  203. package/dist/tests/table.test.js +2717 -0
  204. package/dist/tests/table.test.js.map +1 -0
  205. package/dist/tests/table_history.test.d.ts +2 -0
  206. package/dist/tests/table_history.test.d.ts.map +1 -0
  207. package/dist/tests/table_history.test.js +413 -0
  208. package/dist/tests/table_history.test.js.map +1 -0
  209. package/dist/tests/tag.test.d.ts +2 -0
  210. package/dist/tests/tag.test.d.ts.map +1 -0
  211. package/dist/tests/tag.test.js +97 -0
  212. package/dist/tests/tag.test.js.map +1 -0
  213. package/dist/tests/user.test.d.ts +2 -0
  214. package/dist/tests/user.test.d.ts.map +1 -0
  215. package/dist/tests/user.test.js +441 -0
  216. package/dist/tests/user.test.js.map +1 -0
  217. package/dist/tests/view.test.d.ts +2 -0
  218. package/dist/tests/view.test.d.ts.map +1 -0
  219. package/dist/tests/view.test.js +699 -0
  220. package/dist/tests/view.test.js.map +1 -0
  221. package/dist/tests/workflow.test.d.ts +2 -0
  222. package/dist/tests/workflow.test.d.ts.map +1 -0
  223. package/dist/tests/workflow.test.js +303 -0
  224. package/dist/tests/workflow.test.js.map +1 -0
  225. package/dist/tests/workflow_run.test.d.ts +2 -0
  226. package/dist/tests/workflow_run.test.d.ts.map +1 -0
  227. package/dist/tests/workflow_run.test.js +922 -0
  228. package/dist/tests/workflow_run.test.js.map +1 -0
  229. package/dist/viewable_fields.d.ts +5 -4
  230. package/dist/viewable_fields.d.ts.map +1 -1
  231. package/dist/viewable_fields.js +12 -6
  232. package/dist/viewable_fields.js.map +1 -1
  233. package/dist/web-mobile-commons.d.ts.map +1 -1
  234. package/dist/web-mobile-commons.js +1 -0
  235. package/dist/web-mobile-commons.js.map +1 -1
  236. package/package.json +8 -8
@@ -1,28 +1,25 @@
1
1
  "use strict";
2
- /**
3
- * @category saltcorn-data
4
- * @module base-plugin/viewtemplates/show
5
- * @subcategory base-plugin
6
- */
7
- const Form = require("../../models/form");
8
- const User = require("../../models/user");
9
- const Field = require("../../models/field");
10
- const View = require("../../models/view");
11
- const File = require("../../models/file");
12
- const Table = require("../../models/table");
13
- const Page = require("../../models/page");
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const user_1 = __importDefault(require("../../models/user"));
6
+ const field_1 = __importDefault(require("../../models/field"));
7
+ const view_1 = __importDefault(require("../../models/view"));
8
+ const table_1 = __importDefault(require("../../models/table"));
9
+ const page_1 = __importDefault(require("../../models/page"));
10
+ const crash_1 = __importDefault(require("../../models/crash"));
11
+ const workflow_1 = __importDefault(require("../../models/workflow"));
12
+ const trigger_1 = __importDefault(require("../../models/trigger"));
13
+ const file_1 = __importDefault(require("../../models/file"));
14
14
  const PageGroup = require("../../models/page_group");
15
- const Crash = require("../../models/crash");
16
- const Workflow = require("../../models/workflow");
17
- const Trigger = require("../../models/trigger");
18
15
  const { Relation } = require("@saltcorn/common-code");
19
16
  const { getState } = require("../../db/state");
20
17
  const { eachView, traverse, getStringsForI18n, translateLayout, splitLayoutContainerFields, findLayoutBranchWith, } = require("../../models/layout");
21
18
  const { check_view_columns } = require("../../plugin-testing");
22
19
  const { div, text, span, a, text_attr, i, button, script, domReady, } = require("@saltcorn/markup/tags");
23
20
  const renderLayout = require("@saltcorn/markup/layout");
24
- const { stateFieldsToWhere, stateFieldsToQuery, picked_fields_to_query, initial_config_all_fields, calcfldViewOptions, calcrelViewOptions, calcfldViewConfig, getActionConfigFields, run_action_column, readState, add_free_variables_to_joinfields, stateToQueryString, pathToState, displayType, } = require("../../plugin-helper");
25
- const { action_url, view_linker, parse_view_select, action_link, splitUniques, standardBlockDispatch, standardLayoutRowVisitor, } = require("../../viewable_fields");
21
+ const plugin_helper_1 = require("../../plugin-helper");
22
+ const viewable_fields_1 = require("../../viewable_fields");
26
23
  const db = require("../../db");
27
24
  const { asyncMap, structuredClone, InvalidConfiguration, mergeIntoWhere, isWeb, hashState, getSafeBaseUrl, dollarizeObject, getSessionId, interpolate, validSqlId, renderServerSide, } = require("../../utils");
28
25
  const { traverseSync } = require("../../models/layout");
@@ -31,16 +28,12 @@ const { get_base_url } = require("../../models/config");
31
28
  const Library = require("../../models/library");
32
29
  const { extractFromLayout } = require("../../diagram/node_extract_utils");
33
30
  const _ = require("underscore");
34
- /**
35
- * @param {object} req
36
- * @returns {Workflow}
37
- */
38
- const configuration_workflow = (req) => new Workflow({
31
+ const configuration_workflow = (req) => new workflow_1.default({
39
32
  steps: [
40
33
  {
41
34
  name: req.__("Layout"),
42
35
  builder: async (context) => {
43
- const table = Table.findOne(context.table_id || context.exttable_name);
36
+ const table = table_1.default.findOne(context.table_id || context.exttable_name);
44
37
  const fields = table.getFields();
45
38
  const boolfields = fields.filter((f) => f.type && f.type.name === "Bool");
46
39
  const stateActions = Object.entries(getState().actions).filter(([k, v]) => !v.disableInBuilder && !v.disableIf?.());
@@ -49,11 +42,11 @@ const configuration_workflow = (req) => new Workflow({
49
42
  "GoBack",
50
43
  ...boolfields.map((f) => `Toggle ${f.name}`),
51
44
  ];
52
- const triggerActions = Trigger.trigger_actions({
45
+ const triggerActions = trigger_1.default.trigger_actions({
53
46
  tableTriggers: table.id,
54
47
  apiNeverTriggers: true,
55
48
  });
56
- const actions = Trigger.action_options({
49
+ const actions = trigger_1.default.action_options({
57
50
  tableTriggers: table.id,
58
51
  apiNeverTriggers: true,
59
52
  forBuilder: true,
@@ -62,7 +55,7 @@ const configuration_workflow = (req) => new Workflow({
62
55
  });
63
56
  for (const field of fields) {
64
57
  if (field.type === "Key") {
65
- field.reftable = Table.findOne({
58
+ field.reftable = table_1.default.findOne({
66
59
  name: field.reftable_name,
67
60
  });
68
61
  if (field.reftable)
@@ -90,10 +83,10 @@ const configuration_workflow = (req) => new Workflow({
90
83
  };
91
84
  for (const [name, action] of stateActions) {
92
85
  if (action.configFields) {
93
- actionConfigForms[name] = await getActionConfigFields(action, table, { mode: "show", req });
86
+ actionConfigForms[name] = await (0, plugin_helper_1.getActionConfigFields)(action, table, { mode: "show", req });
94
87
  }
95
88
  }
96
- const workflowActions = Trigger.trigger_actions({
89
+ const workflowActions = trigger_1.default.trigger_actions({
97
90
  tableTriggers: table.id,
98
91
  apiNeverTriggers: true,
99
92
  onlyWorkflows: true,
@@ -109,13 +102,13 @@ const configuration_workflow = (req) => new Workflow({
109
102
  ];
110
103
  }
111
104
  //const fieldViewConfigForms = await calcfldViewConfig(fields, false);
112
- const { field_view_options, handlesTextStyle } = calcfldViewOptions(fields, "show");
105
+ const { field_view_options, handlesTextStyle } = (0, plugin_helper_1.calcfldViewOptions)(fields, "show");
113
106
  if (table.name === "users") {
114
- fields.push(new Field({
107
+ fields.push(new field_1.default({
115
108
  name: "verification_url",
116
109
  label: "Verification URL",
117
110
  type: "String",
118
- }), new Field({
111
+ }), new field_1.default({
119
112
  name: "reset_password_url",
120
113
  label: "Reset Password URL",
121
114
  type: "String",
@@ -123,8 +116,8 @@ const configuration_workflow = (req) => new Workflow({
123
116
  field_view_options.verification_url = ["as_text", "as_link"];
124
117
  field_view_options.reset_password_url = ["as_text", "as_link"];
125
118
  }
126
- const rel_field_view_options = await calcrelViewOptions(table, "show");
127
- const roles = await User.get_roles();
119
+ const rel_field_view_options = await (0, plugin_helper_1.calcrelViewOptions)(table, "show");
120
+ const roles = await user_1.default.get_roles();
128
121
  const { parent_field_list } = await table.get_parent_relations(true, true);
129
122
  const { child_field_list, child_relations } = await table.get_child_relations(true);
130
123
  var agg_field_opts = {};
@@ -147,13 +140,13 @@ const configuration_workflow = (req) => new Workflow({
147
140
  .filter(([k, v]) => !v.isEdit && !v.isFilter)
148
141
  .map(([k, v]) => k);
149
142
  });
150
- const pages = await Page.find();
143
+ const pages = await page_1.default.find();
151
144
  const groups = (await PageGroup.find()).map((g) => ({
152
145
  name: g.name,
153
146
  }));
154
- const images = await File.find({ mime_super: "image" });
147
+ const images = await file_1.default.find({ mime_super: "image" });
155
148
  const library = (await Library.find({})).filter((l) => l.suitableFor("show"));
156
- const myviewrow = View.findOne({ name: context.viewname });
149
+ const myviewrow = view_1.default.findOne({ name: context.viewname });
157
150
  return {
158
151
  tableName: table.name,
159
152
  fields: fields.map((f) => f.toBuilder),
@@ -187,9 +180,6 @@ const configuration_workflow = (req) => new Workflow({
187
180
  },
188
181
  ],
189
182
  });
190
- /**
191
- * @returns {object[]}
192
- */
193
183
  const get_state_fields = () => [
194
184
  {
195
185
  name: "id",
@@ -198,33 +188,18 @@ const get_state_fields = () => [
198
188
  primary_key: true,
199
189
  },
200
190
  ];
201
- /** @type {function} */
202
- const initial_config = initial_config_all_fields(false);
203
- /**
204
- * @param {string} table_id
205
- * @param {string} viewname
206
- * @param {object} opts
207
- * @param {object[]} opts.columns
208
- * @param {object} opts.layout
209
- * @param {string} [opts.page_title]
210
- * @param {boolean} opts.page_title_formula
211
- * @param {object} state
212
- * @param {object} extra
213
- * @returns {Promise<string>}
214
- */
215
- const run = async (table_id, viewname, { columns, layout, page_title, page_title_formula }, state, extra, { showQuery }) => {
216
- //console.log(columns);
217
- //console.log(layout);
191
+ const initial_config = (0, plugin_helper_1.initial_config_all_fields)(false);
192
+ const run = async (table_id, viewname, { columns, layout, page_title, page_title_formula, }, state, extra, { showQuery }) => {
218
193
  if (!columns || !layout)
219
194
  return "View not yet built";
220
- const tbl = Table.findOne(table_id);
195
+ const tbl = table_1.default.findOne(table_id);
221
196
  const fields = await tbl.getFields();
222
197
  if (tbl.name === "users") {
223
- fields.push(new Field({
198
+ fields.push(new field_1.default({
224
199
  name: "verification_token",
225
200
  label: "Verification Token",
226
201
  type: "String",
227
- }), new Field({
202
+ }), new field_1.default({
228
203
  name: "reset_password_token",
229
204
  label: "Reset Password Token",
230
205
  type: "String",
@@ -249,11 +224,11 @@ const run = async (table_id, viewname, { columns, layout, page_title, page_title
249
224
  return extra.req.__("No row selected");
250
225
  if (tbl.name === "users") {
251
226
  const base = get_base_url(extra.req);
252
- fields.push(new Field({
227
+ fields.push(new field_1.default({
253
228
  name: "verification_url",
254
229
  label: "Verification URL",
255
230
  type: "String",
256
- }), new Field({
231
+ }), new field_1.default({
257
232
  name: "reset_password_url",
258
233
  label: "Reset Password URL",
259
234
  type: "String",
@@ -289,12 +264,6 @@ const run = async (table_id, viewname, { columns, layout, page_title, page_title
289
264
  return rendered;
290
265
  }
291
266
  };
292
- /**
293
- * @param {object} opts
294
- * @param {object} opts.layout
295
- * @param {object[]} opts.fields
296
- * @returns {Promise<void>}
297
- */
298
267
  const set_load_actions_join_fieldviews = async ({ table, layout, fields, req, res, row, isPreview, }) => {
299
268
  await traverse(layout, {
300
269
  join_field: async (segment) => {
@@ -322,7 +291,7 @@ const set_load_actions_join_fieldviews = async ({ table, layout, fields, req, re
322
291
  //run action
323
292
  if (isPreview)
324
293
  return;
325
- const actionResult = await run_action_column({
294
+ const actionResult = await (0, plugin_helper_1.run_action_column)({
326
295
  col: { ...segment },
327
296
  referrer: req?.get?.("Referrer"),
328
297
  req,
@@ -340,19 +309,7 @@ const set_load_actions_join_fieldviews = async ({ table, layout, fields, req, re
340
309
  },
341
310
  });
342
311
  };
343
- /**
344
- * @param {object} table
345
- * @param {string} viewname
346
- * @param {object} opts
347
- * @param {object[]} opts.columns
348
- * @param {object} opts.layout
349
- * @param {object} extra
350
- * @param {object[]} rows
351
- * @returns {Promise<string>}
352
- */
353
312
  const renderRows = async (table, viewname, { columns, layout }, extra, rows, state) => {
354
- //console.log(columns);
355
- //console.log(layout);
356
313
  if (!columns || !layout)
357
314
  return "View not yet built";
358
315
  const fields = table.getFields();
@@ -361,14 +318,14 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
361
318
  const getView = async (name, relation) => {
362
319
  if (views[name])
363
320
  return views[name];
364
- const view_select = parse_view_select(name, relation);
365
- const view = View.findOne({ name: view_select.viewname });
321
+ const view_select = (0, viewable_fields_1.parse_view_select)(name, relation);
322
+ const view = view_1.default.findOne({ name: view_select.viewname });
366
323
  if (!view)
367
324
  return false;
368
325
  if (view.table_id === table.id)
369
326
  view.table = table;
370
327
  else
371
- view.table = Table.findOne({ id: view.table_id });
328
+ view.table = table_1.default.findOne({ id: view.table_id });
372
329
  view.view_select = view_select;
373
330
  views[name] = view;
374
331
  return view;
@@ -409,9 +366,9 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
409
366
  };
410
367
  const get_user_id = () => (extra.req.user ? extra.req.user.id : 0);
411
368
  if (view.view_select.type === "RelationPath" && view.table_id) {
412
- const targetTbl = Table.findOne({ id: view.table_id });
413
- const relation = new Relation(segment.relation, targetTbl.name, displayType(await view.get_state_fields()));
414
- state1 = pathToState(relation, relation.isFixedRelation() ? get_user_id : get_row_val);
369
+ const targetTbl = table_1.default.findOne({ id: view.table_id });
370
+ const relation = new Relation(segment.relation, targetTbl.name, (0, plugin_helper_1.displayType)(await view.get_state_fields()));
371
+ state1 = (0, plugin_helper_1.pathToState)(relation, relation.isFixedRelation() ? get_user_id : get_row_val);
415
372
  }
416
373
  else {
417
374
  switch (view.view_select.type) {
@@ -448,7 +405,7 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
448
405
  //console.log(segment);
449
406
  if (segment.state === "local") {
450
407
  const state2 = { ...state1, ...extra_state };
451
- const qs = stateToQueryString(state2, true);
408
+ const qs = (0, plugin_helper_1.stateToQueryString)(state2, true);
452
409
  if (view.name === viewname &&
453
410
  JSON.stringify(state) === JSON.stringify(state2))
454
411
  throw new InvalidConfiguration(`View ${view.name} embeds itself with same state; inifinite loop detected`);
@@ -465,7 +422,7 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
465
422
  }
466
423
  else {
467
424
  const state2 = { ...outerState, ...state1, ...extra_state };
468
- const qs = stateToQueryString(state2, true);
425
+ const qs = (0, plugin_helper_1.stateToQueryString)(state2, true);
469
426
  if (view.name === viewname &&
470
427
  JSON.stringify(state) === JSON.stringify(state2))
471
428
  throw new InvalidConfiguration(`View ${view.name} embeds itself with same state; inifinite loop detected`);
@@ -481,7 +438,7 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
481
438
  }
482
439
  }
483
440
  }, state);
484
- await Page.renderEachEmbeddedPageInLayout(layout, state, extra);
441
+ await page_1.default.renderEachEmbeddedPageInLayout(layout, state, extra);
485
442
  const user_id = extra.req.user ? extra.req.user.id : null;
486
443
  const is_owner = table.ownership_formula && user_id && role > table.min_role_read
487
444
  ? await table.is_owner(extra.req.user, row)
@@ -489,18 +446,8 @@ const renderRows = async (table, viewname, { columns, layout }, extra, rows, sta
489
446
  return render(row, fields, layout, viewname, table, role, extra.req, is_owner, state, extra);
490
447
  });
491
448
  };
492
- /**
493
- * @param {number} table_id
494
- * @param {string} viewname
495
- * @param {object} opts
496
- * @param {object[]} opts.columns
497
- * @param {object} opts.layout
498
- * @param {object} state
499
- * @param {object} extra
500
- * @returns {Promise<object[]>}
501
- */
502
449
  const runMany = async (table_id, viewname, { columns, layout }, state, extra, { runManyQuery }) => {
503
- const tbl = Table.findOne({ id: table_id });
450
+ const tbl = table_1.default.findOne({ id: table_id });
504
451
  const rows = await runManyQuery(state, {
505
452
  where: extra.where,
506
453
  joinFieldsExtra: extra.joinFields,
@@ -512,25 +459,13 @@ const runMany = async (table_id, viewname, { columns, layout }, state, extra, {
512
459
  const rendered = await renderRows(tbl, viewname, { columns, layout }, extra, rows, state);
513
460
  return rendered.map((html, ix) => ({ html, row: rows[ix] }));
514
461
  };
515
- /**
516
- * @param {object} row
517
- * @param {Field[]} fields
518
- * @param {Layout} layout0
519
- * @param {string} viewname
520
- * @param {Table} table
521
- * @param {Role} role
522
- * @param {object} req
523
- * @param {object} is_owner
524
- * @throws {Error}
525
- * @returns {Layout}
526
- */
527
462
  const render = (row, fields, layout0, viewname, table, role, req, is_owner, state, extra) => {
528
463
  const locale = req.getLocale();
529
464
  const layout = structuredClone(layout0);
530
465
  translateLayout(layout, locale);
531
- traverseSync(layout, standardLayoutRowVisitor(viewname, state, table, row, req));
466
+ traverseSync(layout, (0, viewable_fields_1.standardLayoutRowVisitor)(viewname, state, table, row, req));
532
467
  return renderLayout({
533
- blockDispatch: standardBlockDispatch(viewname, state, table, extra, row),
468
+ blockDispatch: (0, viewable_fields_1.standardBlockDispatch)(viewname, state, table, extra, row),
534
469
  layout,
535
470
  role,
536
471
  is_owner,
@@ -538,28 +473,16 @@ const render = (row, fields, layout0, viewname, table, role, req, is_owner, stat
538
473
  hints: getState().getLayout(req.user).hints || {},
539
474
  });
540
475
  };
541
- /**
542
- * @param {number} table_id
543
- * @param {*} viewname
544
- * @param {object} opts
545
- * @param {object[]} opts.columns
546
- * @param {*} opts.layout
547
- * @param {*} body
548
- * @param {object} optsTwo
549
- * @param {object} optsTwo.req
550
- * @param {*} optsTwo.res
551
- * @returns {Promise<object>}
552
- */
553
476
  const run_action = async (table_id, viewname, { columns, layout }, body, { req, res }, { actionQuery }) => {
554
477
  const result = await actionQuery();
555
478
  if (result.json.error) {
556
- Crash.create({ message: result.json.error, stack: "" }, req);
479
+ crash_1.default.create({ message: result.json.error, stack: "" }, req);
557
480
  }
558
481
  return result;
559
482
  };
560
483
  const createBasicView = async ({ table, viewname, template_view, template_table, all_views_created, }) => {
561
484
  if (!template_view) {
562
- const configuration = await initial_config_all_fields(false)({
485
+ const configuration = await (0, plugin_helper_1.initial_config_all_fields)(false)({
563
486
  table_id: table.id,
564
487
  });
565
488
  return configuration;
@@ -610,13 +533,10 @@ const createBasicView = async ({ table, viewname, template_view, template_table,
610
533
  layout: outer({ above: inners }),
611
534
  columns,
612
535
  };
613
- //console.log("show cfg", cfg);
614
536
  return cfg;
615
537
  };
616
538
  module.exports = {
617
- /** @type {string} */
618
539
  name: "Show",
619
- /** @type {string} */
620
540
  description: "Show a single row, with flexible layout",
621
541
  get_state_fields,
622
542
  configuration_workflow,
@@ -626,21 +546,16 @@ module.exports = {
626
546
  initial_config,
627
547
  createBasicView,
628
548
  routes: { run_action },
629
- /**
630
- * @param {object} opts
631
- * @param {object} opts.layout
632
- * @returns {string[]}
633
- */
634
549
  getStringsForI18n({ layout }) {
635
550
  return getStringsForI18n(layout);
636
551
  },
637
552
  async interpolate_title_string(table_id, title, state) {
638
- const tbl = Table.findOne(table_id);
553
+ const tbl = table_1.default.findOne(table_id);
639
554
  if (state?.[tbl.pk_name]) {
640
555
  const freeVars = freeVariablesInInterpolation(title);
641
556
  const joinFields = {};
642
557
  const aggregations = {};
643
- add_free_variables_to_joinfields(freeVars, joinFields, tbl.fields);
558
+ (0, plugin_helper_1.add_free_variables_to_joinfields)(freeVars, joinFields, tbl.fields);
644
559
  add_free_variables_to_aggregations(freeVars, aggregations, tbl);
645
560
  const row = await tbl.getJoinedRow({
646
561
  where: { [tbl.pk_name]: state[tbl.pk_name] },
@@ -652,29 +567,26 @@ module.exports = {
652
567
  else
653
568
  return title;
654
569
  },
655
- /*authorise_get: async ({ query, table_id }, { authorizeGetQuery }) => {
656
- return await authorizeGetQuery(query, table_id);
657
- },*/
658
570
  queries: ({ table_id, exttable_name, name, // viewname
659
571
  configuration: { columns, layout }, req, res, }) => ({
660
572
  async showQuery(state) {
661
- const tbl = Table.findOne(table_id || exttable_name);
573
+ const tbl = table_1.default.findOne(table_id || exttable_name);
662
574
  const fields = tbl.getFields();
663
575
  if (tbl.name === "users") {
664
- fields.push(new Field({
576
+ fields.push(new field_1.default({
665
577
  name: "verification_token",
666
578
  label: "Verification Token",
667
579
  type: "String",
668
- }), {
580
+ }), new field_1.default({
669
581
  name: "reset_password_token",
670
582
  label: "Reset Password Token",
671
583
  type: "String",
672
- });
584
+ }));
673
585
  }
674
- const { joinFields, aggregations } = picked_fields_to_query(columns, fields, layout, req, tbl);
586
+ const { joinFields, aggregations } = (0, plugin_helper_1.picked_fields_to_query)(columns, fields, layout, req, tbl);
675
587
  const unhashed_reset_password_token = state._unhashed_reset_password_token;
676
- readState(state, fields);
677
- const qstate = stateFieldsToWhere({
588
+ (0, plugin_helper_1.readState)(state, fields);
589
+ const qstate = (0, plugin_helper_1.stateFieldsToWhere)({
678
590
  fields,
679
591
  state,
680
592
  approximate: true,
@@ -688,7 +600,7 @@ module.exports = {
688
600
  };
689
601
  if (tbl.ownership_formula) {
690
602
  const freeVars = freeVariables(tbl.ownership_formula);
691
- add_free_variables_to_joinfields(freeVars, joinFields, fields);
603
+ (0, plugin_helper_1.add_free_variables_to_joinfields)(freeVars, joinFields, fields);
692
604
  }
693
605
  const rows = await tbl.getJoinedRows({
694
606
  where: qstate,
@@ -709,19 +621,19 @@ module.exports = {
709
621
  };
710
622
  },
711
623
  async runManyQuery(state, { where, limit, offset, joinFieldsExtra, orderBy, orderDesc }) {
712
- const tbl = Table.findOne({ id: table_id });
624
+ const tbl = table_1.default.findOne({ id: table_id });
713
625
  const fields = await tbl.getFields();
714
- readState(state, fields);
715
- const { joinFields, aggregations } = picked_fields_to_query(columns, fields, layout, req, tbl);
626
+ (0, plugin_helper_1.readState)(state, fields);
627
+ const { joinFields, aggregations } = (0, plugin_helper_1.picked_fields_to_query)(columns, fields, layout, req, tbl);
716
628
  Object.assign(joinFields, joinFieldsExtra || {});
717
629
  const stateHash = hashState(state, name);
718
- const qstate = stateFieldsToWhere({
630
+ const qstate = (0, plugin_helper_1.stateFieldsToWhere)({
719
631
  fields,
720
632
  state,
721
633
  table: tbl,
722
634
  prefix: "a.",
723
635
  });
724
- const q = stateFieldsToQuery({ state, fields, stateHash });
636
+ const q = (0, plugin_helper_1.stateFieldsToQuery)({ state, fields, stateHash });
725
637
  if (where)
726
638
  mergeIntoWhere(qstate, where);
727
639
  const role = req && req.user ? req.user.role_id : 100;
@@ -737,7 +649,7 @@ module.exports = {
737
649
  }
738
650
  if (tbl.ownership_formula && role > tbl.min_role_read) {
739
651
  const freeVars = freeVariables(tbl.ownership_formula);
740
- add_free_variables_to_joinfields(freeVars, joinFields, fields);
652
+ (0, plugin_helper_1.add_free_variables_to_joinfields)(freeVars, joinFields, fields);
741
653
  }
742
654
  let rows = await tbl.getJoinedRows({
743
655
  where: qstate,
@@ -760,12 +672,12 @@ module.exports = {
760
672
  return await db.withTransaction(async () => {
761
673
  const body = req.body || {};
762
674
  const col = columns.find((c) => c.type === "Action" && c.rndid === body.rndid && body.rndid);
763
- const table = Table.findOne({ id: table_id });
675
+ const table = table_1.default.findOne({ id: table_id });
764
676
  let row;
765
677
  if (table.ownership_formula) {
766
678
  const freeVars = freeVariables(table.ownership_formula);
767
679
  const joinFields = {};
768
- add_free_variables_to_joinfields(freeVars, joinFields, table.fields);
680
+ (0, plugin_helper_1.add_free_variables_to_joinfields)(freeVars, joinFields, table.fields);
769
681
  row = await table.getJoinedRow({
770
682
  where: { [table.pk_name]: body[table.pk_name] },
771
683
  joinFields,
@@ -785,12 +697,12 @@ module.exports = {
785
697
  });
786
698
  if (!container)
787
699
  return { json: { error: "Action not found" } };
788
- const trigger = Trigger.findOne({ name: body.click_action });
700
+ const trigger = trigger_1.default.findOne({ name: body.click_action });
789
701
  if (!trigger)
790
702
  throw new Error(`View ${name}: Container click action ${body.click_action} not found`);
791
703
  const result = await trigger.runWithoutRow({
792
704
  table,
793
- Table,
705
+ Table: table_1.default,
794
706
  req,
795
707
  row,
796
708
  user: req.user,
@@ -798,7 +710,7 @@ module.exports = {
798
710
  });
799
711
  return { json: { success: "ok", ...(result || {}) } };
800
712
  }
801
- const result = await run_action_column({
713
+ const result = await (0, plugin_helper_1.run_action_column)({
802
714
  col,
803
715
  req,
804
716
  table,
@@ -811,28 +723,6 @@ module.exports = {
811
723
  return { json: { error: e.message || e } };
812
724
  });
813
725
  },
814
- /*async authorizeGetQuery(query, table_id) {
815
- let body = query || {};
816
- const user_id = req.user ? req.user.id : null;
817
-
818
- if (user_id && Object.keys(body).length == 1) {
819
- const table = Table.findOne({ id: table_id });
820
- if (table.ownership_field_id || table.ownership_formula) {
821
- const fields = table.getFields();
822
- const { uniques } = splitUniques(fields, body);
823
- if (Object.keys(uniques).length > 0) {
824
- const row = await table.getJoinedRows({
825
- where: uniques,
826
- forPublic: !req.user,
827
- forUser: req.user,
828
- });
829
- if (row.length > 0) return true;
830
- else return false;
831
- }
832
- }
833
- }
834
- return false;
835
- },*/
836
726
  }),
837
727
  configCheck: async (view) => {
838
728
  return await check_view_columns(view, view.configuration.columns);