@saltcorn/data 1.1.2-beta.8 → 1.1.2

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 (276) hide show
  1. package/dist/base-plugin/actions.d.ts +47 -8
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +61 -9
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  6. package/dist/base-plugin/fieldviews.js.map +1 -1
  7. package/dist/base-plugin/fileviews.js.map +1 -1
  8. package/dist/base-plugin/index.d.ts +33 -77
  9. package/dist/base-plugin/index.d.ts.map +1 -1
  10. package/dist/base-plugin/types.d.ts +7 -8
  11. package/dist/base-plugin/types.d.ts.map +1 -1
  12. package/dist/base-plugin/types.js +1 -1
  13. package/dist/base-plugin/types.js.map +1 -1
  14. package/dist/base-plugin/viewtemplates/edit.d.ts +3 -4
  15. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  16. package/dist/base-plugin/viewtemplates/edit.js +51 -17
  17. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  18. package/dist/base-plugin/viewtemplates/feed.d.ts +2 -2
  19. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  20. package/dist/base-plugin/viewtemplates/feed.js +18 -4
  21. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  22. package/dist/base-plugin/viewtemplates/filter.d.ts +0 -1
  23. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  24. package/dist/base-plugin/viewtemplates/filter.js +1 -3
  25. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  26. package/dist/base-plugin/viewtemplates/list.d.ts +1 -2
  27. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  28. package/dist/base-plugin/viewtemplates/list.js +9 -11
  29. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  30. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +1 -12
  31. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  32. package/dist/base-plugin/viewtemplates/listshowlist.js +1 -1
  33. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  34. package/dist/base-plugin/viewtemplates/room.d.ts +1 -74
  35. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
  36. package/dist/base-plugin/viewtemplates/room.js +0 -1
  37. package/dist/base-plugin/viewtemplates/room.js.map +1 -1
  38. package/dist/base-plugin/viewtemplates/show.d.ts +0 -1
  39. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  40. package/dist/base-plugin/viewtemplates/show.js +13 -2
  41. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  42. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +6 -5
  43. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  44. package/dist/base-plugin/viewtemplates/viewable_fields.js +29 -24
  45. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  46. package/dist/base-plugin/viewtemplates/workflow-room.d.ts +0 -1
  47. package/dist/base-plugin/viewtemplates/workflow-room.d.ts.map +1 -1
  48. package/dist/base-plugin/viewtemplates/workflow-room.js +1 -3
  49. package/dist/base-plugin/viewtemplates/workflow-room.js.map +1 -1
  50. package/dist/db/connect.d.ts.map +1 -1
  51. package/dist/db/connect.js.map +1 -1
  52. package/dist/db/fixtures.d.ts.map +1 -1
  53. package/dist/db/fixtures.js +1 -1
  54. package/dist/db/fixtures.js.map +1 -1
  55. package/dist/db/index.js.map +1 -1
  56. package/dist/db/reset_schema.d.ts.map +1 -1
  57. package/dist/db/reset_schema.js.map +1 -1
  58. package/dist/db/state.d.ts +23 -16
  59. package/dist/db/state.d.ts.map +1 -1
  60. package/dist/db/state.js +13 -18
  61. package/dist/db/state.js.map +1 -1
  62. package/dist/diagram/cy_generate_utils.js +3 -2
  63. package/dist/diagram/cy_generate_utils.js.map +1 -1
  64. package/dist/diagram/cy_raster.js.map +1 -1
  65. package/dist/diagram/node_extract_utils.js +5 -4
  66. package/dist/diagram/node_extract_utils.js.map +1 -1
  67. package/dist/diagram/nodes/table_node.js.map +1 -1
  68. package/dist/index.js +7 -17
  69. package/dist/index.js.map +1 -1
  70. package/dist/migrate.d.ts.map +1 -1
  71. package/dist/migrate.js.map +1 -1
  72. package/dist/migrations/202007091707.d.ts.map +1 -1
  73. package/dist/migrations/202007202144.d.ts.map +1 -1
  74. package/dist/migrations/202008031500.d.ts.map +1 -1
  75. package/dist/migrations/202009221105.d.ts.map +1 -1
  76. package/dist/migrations/202009231331.d.ts.map +1 -1
  77. package/dist/migrations/202010231444.d.ts.map +1 -1
  78. package/dist/migrations/202011021749.d.ts.map +1 -1
  79. package/dist/migrations/202012011203.d.ts.map +1 -1
  80. package/dist/migrations/202012100841.d.ts.map +1 -1
  81. package/dist/migrations/202012281835.d.ts.map +1 -1
  82. package/dist/migrations/202101061051.d.ts.map +1 -1
  83. package/dist/migrations/202101141128.d.ts.map +1 -1
  84. package/dist/migrations/202102091312.d.ts.map +1 -1
  85. package/dist/migrations/202102091312.js.map +1 -1
  86. package/dist/migrations/202102172148.d.ts.map +1 -1
  87. package/dist/migrations/202106102347.d.ts.map +1 -1
  88. package/dist/migrations/202106112120.d.ts.map +1 -1
  89. package/dist/migrations/202106120012.d.ts.map +1 -1
  90. package/dist/migrations/202106120220.d.ts.map +1 -1
  91. package/dist/migrations/202106121701.d.ts.map +1 -1
  92. package/dist/migrations/202107281619.d.ts.map +1 -1
  93. package/dist/migrations/202109201624.d.ts.map +1 -1
  94. package/dist/migrations/202207022002.d.ts.map +1 -1
  95. package/dist/migrations/202210051058.js.map +1 -1
  96. package/dist/migrations/202210101540.js.map +1 -1
  97. package/dist/migrations/202301130917.d.ts.map +1 -1
  98. package/dist/migrations/202304281224.js.map +1 -1
  99. package/dist/migrations/202307211459.js.map +1 -1
  100. package/dist/migrations/202308211648.d.ts.map +1 -1
  101. package/dist/migrations/202402071125.d.ts.map +1 -1
  102. package/dist/migrations/202501081226.d.ts.map +1 -1
  103. package/dist/migrations/202502131103.d.ts +2 -0
  104. package/dist/migrations/202502131103.d.ts.map +1 -0
  105. package/dist/migrations/{202501181439.js → 202502131103.js} +1 -2
  106. package/dist/migrations/202502131103.js.map +1 -0
  107. package/dist/mobile-mocks/models/internal/async_json_stream.d.ts +1 -0
  108. package/dist/mobile-mocks/models/internal/async_json_stream.d.ts.map +1 -0
  109. package/dist/mobile-mocks/models/internal/async_json_stream.js +2 -0
  110. package/dist/mobile-mocks/models/internal/async_json_stream.js.map +1 -0
  111. package/dist/mobile-mocks/node/fs/promises.js +6 -5
  112. package/dist/mobile-mocks/node/fs/promises.js.map +1 -1
  113. package/dist/mobile-mocks/node/fs.js +4 -3
  114. package/dist/mobile-mocks/node/fs.js.map +1 -1
  115. package/dist/mobile-mocks/node/latest-version.js +1 -1
  116. package/dist/mobile-mocks/node/latest-version.js.map +1 -1
  117. package/dist/mobile-mocks/node/v8.js +3 -2
  118. package/dist/mobile-mocks/node/v8.js.map +1 -1
  119. package/dist/model-helper.d.ts +2 -2
  120. package/dist/model-helper.js.map +1 -1
  121. package/dist/models/config.d.ts +1 -0
  122. package/dist/models/config.d.ts.map +1 -1
  123. package/dist/models/config.js +129 -112
  124. package/dist/models/config.js.map +1 -1
  125. package/dist/models/crash.js +7 -17
  126. package/dist/models/crash.js.map +1 -1
  127. package/dist/models/discovery.d.ts +5 -5
  128. package/dist/models/discovery.d.ts.map +1 -1
  129. package/dist/models/discovery.js +9 -7
  130. package/dist/models/discovery.js.map +1 -1
  131. package/dist/models/email.d.ts +4 -2
  132. package/dist/models/email.d.ts.map +1 -1
  133. package/dist/models/email.js +15 -22
  134. package/dist/models/email.js.map +1 -1
  135. package/dist/models/eventlog.d.ts +1 -1
  136. package/dist/models/eventlog.d.ts.map +1 -1
  137. package/dist/models/eventlog.js +8 -4
  138. package/dist/models/eventlog.js.map +1 -1
  139. package/dist/models/expression.d.ts +2 -2
  140. package/dist/models/expression.d.ts.map +1 -1
  141. package/dist/models/expression.js +12 -9
  142. package/dist/models/expression.js.map +1 -1
  143. package/dist/models/field.d.ts +1 -0
  144. package/dist/models/field.d.ts.map +1 -1
  145. package/dist/models/field.js +9 -3
  146. package/dist/models/field.js.map +1 -1
  147. package/dist/models/fieldrepeat.js.map +1 -1
  148. package/dist/models/file.d.ts +4 -2
  149. package/dist/models/file.d.ts.map +1 -1
  150. package/dist/models/file.js.map +1 -1
  151. package/dist/models/form.d.ts +2 -0
  152. package/dist/models/form.d.ts.map +1 -1
  153. package/dist/models/form.js +16 -0
  154. package/dist/models/form.js.map +1 -1
  155. package/dist/models/index.d.ts +20 -23
  156. package/dist/models/index.d.ts.map +1 -1
  157. package/dist/models/index.js +7 -1
  158. package/dist/models/index.js.map +1 -1
  159. package/dist/models/internal/async_json_stream.d.ts +4 -0
  160. package/dist/models/internal/async_json_stream.d.ts.map +1 -0
  161. package/dist/models/internal/async_json_stream.js +36 -0
  162. package/dist/models/internal/async_json_stream.js.map +1 -0
  163. package/dist/models/internal/query.d.ts.map +1 -1
  164. package/dist/models/internal/query.js.map +1 -1
  165. package/dist/models/internal/table_helper.js.map +1 -1
  166. package/dist/models/layout.d.ts +1 -1
  167. package/dist/models/layout.d.ts.map +1 -1
  168. package/dist/models/layout.js.map +1 -1
  169. package/dist/models/model.d.ts +1 -1
  170. package/dist/models/model.d.ts.map +1 -1
  171. package/dist/models/model.js +2 -1
  172. package/dist/models/model.js.map +1 -1
  173. package/dist/models/model_instance.d.ts +7 -4
  174. package/dist/models/model_instance.d.ts.map +1 -1
  175. package/dist/models/model_instance.js +8 -17
  176. package/dist/models/model_instance.js.map +1 -1
  177. package/dist/models/notification.js.map +1 -1
  178. package/dist/models/page.js +7 -17
  179. package/dist/models/page.js.map +1 -1
  180. package/dist/models/page_group.js +7 -17
  181. package/dist/models/page_group.js.map +1 -1
  182. package/dist/models/page_group_member.js.map +1 -1
  183. package/dist/models/plugin.js.map +1 -1
  184. package/dist/models/random.d.ts.map +1 -1
  185. package/dist/models/random.js.map +1 -1
  186. package/dist/models/scheduler.d.ts +3 -10
  187. package/dist/models/scheduler.d.ts.map +1 -1
  188. package/dist/models/scheduler.js +1 -1
  189. package/dist/models/scheduler.js.map +1 -1
  190. package/dist/models/table.d.ts +40 -31
  191. package/dist/models/table.d.ts.map +1 -1
  192. package/dist/models/table.js +118 -60
  193. package/dist/models/table.js.map +1 -1
  194. package/dist/models/table_constraints.js.map +1 -1
  195. package/dist/models/tag.js.map +1 -1
  196. package/dist/models/trigger.js +7 -17
  197. package/dist/models/trigger.js.map +1 -1
  198. package/dist/models/user.d.ts +1 -1
  199. package/dist/models/user.d.ts.map +1 -1
  200. package/dist/models/user.js +2 -2
  201. package/dist/models/user.js.map +1 -1
  202. package/dist/models/view.d.ts +6 -2
  203. package/dist/models/view.d.ts.map +1 -1
  204. package/dist/models/view.js +27 -22
  205. package/dist/models/view.js.map +1 -1
  206. package/dist/models/workflow.js +7 -17
  207. package/dist/models/workflow.js.map +1 -1
  208. package/dist/models/workflow_run.d.ts.map +1 -1
  209. package/dist/models/workflow_run.js +13 -19
  210. package/dist/models/workflow_run.js.map +1 -1
  211. package/dist/models/workflow_step.d.ts.map +1 -1
  212. package/dist/models/workflow_step.js +18 -1
  213. package/dist/models/workflow_step.js.map +1 -1
  214. package/dist/plugin-helper.d.ts +2 -5
  215. package/dist/plugin-helper.d.ts.map +1 -1
  216. package/dist/plugin-helper.js +50 -21
  217. package/dist/plugin-helper.js.map +1 -1
  218. package/dist/plugin-testing.d.ts +1 -1
  219. package/dist/plugin-testing.d.ts.map +1 -1
  220. package/dist/plugin-testing.js.map +1 -1
  221. package/dist/tests/actions.test.js +8 -18
  222. package/dist/tests/actions.test.js.map +1 -1
  223. package/dist/tests/assertions.js +7 -6
  224. package/dist/tests/assertions.js.map +1 -1
  225. package/dist/tests/auth.test.js +51 -1
  226. package/dist/tests/auth.test.js.map +1 -1
  227. package/dist/tests/auxtest.test.js +18 -0
  228. package/dist/tests/auxtest.test.js.map +1 -1
  229. package/dist/tests/calc.test.js +6 -0
  230. package/dist/tests/calc.test.js.map +1 -1
  231. package/dist/tests/common_helpers.js +8 -7
  232. package/dist/tests/common_helpers.js.map +1 -1
  233. package/dist/tests/db.test.js.map +1 -1
  234. package/dist/tests/discover.test.js +36 -0
  235. package/dist/tests/discover.test.js.map +1 -1
  236. package/dist/tests/edit.test.js +6 -2
  237. package/dist/tests/edit.test.js.map +1 -1
  238. package/dist/tests/email.test.js +32 -43
  239. package/dist/tests/email.test.js.map +1 -1
  240. package/dist/tests/exact_views.test.js.map +1 -1
  241. package/dist/tests/field.test.js.map +1 -1
  242. package/dist/tests/fieldviews.test.js.map +1 -1
  243. package/dist/tests/file.test.js.map +1 -1
  244. package/dist/tests/filter.test.js +2 -2
  245. package/dist/tests/filter.test.js.map +1 -1
  246. package/dist/tests/list.test.js +1 -1
  247. package/dist/tests/list.test.js.map +1 -1
  248. package/dist/tests/mocks.d.ts +2 -2
  249. package/dist/tests/mocks.d.ts.map +1 -1
  250. package/dist/tests/mocks.js +2 -2
  251. package/dist/tests/mocks.js.map +1 -1
  252. package/dist/tests/page_group.test.js.map +1 -1
  253. package/dist/tests/show.test.js +1 -1
  254. package/dist/tests/show.test.js.map +1 -1
  255. package/dist/tests/table.test.js.map +1 -1
  256. package/dist/tests/table_history.test.js.map +1 -1
  257. package/dist/tests/tag.test.js.map +1 -1
  258. package/dist/tests/user.test.js +2 -0
  259. package/dist/tests/user.test.js.map +1 -1
  260. package/dist/tests/view.test.js +1 -0
  261. package/dist/tests/view.test.js.map +1 -1
  262. package/dist/tests/workflow.test.js +0 -15
  263. package/dist/tests/workflow.test.js.map +1 -1
  264. package/dist/utils.d.ts +7 -6
  265. package/dist/utils.d.ts.map +1 -1
  266. package/dist/utils.js +10 -1
  267. package/dist/utils.js.map +1 -1
  268. package/dist/web-mobile-commons.d.ts +6 -1
  269. package/dist/web-mobile-commons.d.ts.map +1 -1
  270. package/dist/web-mobile-commons.js +43 -1
  271. package/dist/web-mobile-commons.js.map +1 -1
  272. package/package.json +19 -15
  273. package/webpack.config.js +6 -0
  274. package/dist/migrations/202501181439.d.ts +0 -2
  275. package/dist/migrations/202501181439.d.ts.map +0 -1
  276. package/dist/migrations/202501181439.js.map +0 -1
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
27
  };
@@ -55,14 +45,12 @@ const defaultTimezone = moment_timezone_1.tz.guess();
55
45
  * @category saltcorn-data
56
46
  */
57
47
  const configTypes = {
58
- /** @type {object} */
59
48
  site_name: {
60
49
  type: "String",
61
50
  label: "Site name",
62
51
  default: "Saltcorn",
63
52
  blurb: "A short string which is the name of your site",
64
53
  },
65
- /** @type {object} */
66
54
  timezone: {
67
55
  type: "String",
68
56
  label: "Home Timezone",
@@ -72,7 +60,6 @@ const configTypes = {
72
60
  selectizable: true,
73
61
  },
74
62
  },
75
- /** @type {object} */
76
63
  site_logo_id: {
77
64
  type: "File",
78
65
  label: "Site logo",
@@ -82,7 +69,6 @@ const configTypes = {
82
69
  },
83
70
  blurb: "Select a publicly accessible image file for the menu logo",
84
71
  },
85
- /** @type {object} */
86
72
  favicon_id: {
87
73
  type: "File",
88
74
  label: "Favicon",
@@ -92,7 +78,6 @@ const configTypes = {
92
78
  },
93
79
  blurb: "Select a publicly accessible image file for the browser tab icon",
94
80
  },
95
- /** @type {object} */
96
81
  base_url: {
97
82
  type: "String",
98
83
  label: "Base URL",
@@ -120,75 +105,61 @@ const configTypes = {
120
105
  default: {},
121
106
  blurb: "This is an object to remember the settings of the mobile builder menu.",
122
107
  },
123
- /** @type {object} */
124
108
  menu_items: { type: "hidden", label: "Menu items" },
125
- /** @type {object} */
126
109
  unrolled_menu_items: { type: "hidden", label: "Menu items" },
127
- /** @type {object} */
128
110
  globalSearch: { type: "hidden", label: "Global search" },
129
- /** @type {object} */
130
111
  available_packs: {
131
112
  type: "hidden",
132
113
  label: "Available packs",
133
114
  excludeFromSnapshot: true,
115
+ excludeFromMobile: true,
134
116
  },
135
- /** @type {object} */
136
117
  available_packs_fetched_at: {
137
118
  type: "Date",
138
119
  label: "Available packs fetched",
139
120
  excludeFromSnapshot: true,
121
+ excludeFromMobile: true,
140
122
  },
141
- /** @type {object} */
142
123
  available_plugins: {
143
124
  type: "hidden",
144
125
  label: "Available plugins",
145
126
  excludeFromSnapshot: true,
127
+ excludeFromMobile: true,
146
128
  },
147
- /** @type {object} */
148
129
  available_plugins_fetched_at: {
149
130
  type: "Date",
150
131
  excludeFromSnapshot: true,
151
132
  label: "Available plugins fetched",
133
+ excludeFromMobile: true,
152
134
  },
153
- /** @type {object} */
154
135
  home_page_by_role: { type: "hidden", label: "Home Page by Role" },
155
- /** @type {object} */
156
136
  exttables_min_role_read: {
157
137
  type: "hidden",
158
138
  label: "Home Page by Role",
159
139
  default: {},
160
140
  },
161
- /** @type {object} */
162
141
  public_home: { type: "String", label: "Public home page", default: "" },
163
- /** @type {object} */
164
142
  user_home: { type: "String", label: "User home page", default: "" },
165
- /** @type {object} */
166
143
  staff_home: { type: "String", label: "Staff home page", default: "" },
167
- /** @type {object} */
168
144
  admin_home: { type: "String", label: "Admin home page", default: "" },
169
- /** @type {object} */
170
145
  layout_by_role: { type: "hidden", label: "Layout by role", default: {} },
171
- /** @type {object} */
172
146
  twofa_policy_by_role: {
173
147
  type: "hidden",
174
148
  label: "2FA policy by role",
175
149
  default: {},
176
150
  },
177
- /** @type {object} */
178
151
  allow_signup: {
179
152
  type: "Bool",
180
153
  label: "Allow signups",
181
154
  default: true,
182
155
  blurb: "Allow users to sign up for a new user account",
183
156
  },
184
- /** @type {object} */
185
157
  allow_forgot: {
186
158
  type: "Bool",
187
159
  label: "Allow password reset",
188
160
  default: false,
189
161
  blurb: "Allow users to request a password reset email. Email must be configured.",
190
162
  },
191
- /** @type {object} */
192
163
  login_menu: {
193
164
  type: "Bool",
194
165
  label: "Login in menu",
@@ -201,7 +172,6 @@ const configTypes = {
201
172
  default: true,
202
173
  blurb: "Show a link on the login menu to continue as public user. Only on mobile logins.",
203
174
  },
204
- /** @type {object} */
205
175
  cookie_sessions: {
206
176
  type: "Bool",
207
177
  label: "Cookie sessions",
@@ -209,41 +179,38 @@ const configTypes = {
209
179
  root_only: true,
210
180
  restart_required: true,
211
181
  blurb: "Store sessions entirely in client cookies for higher performance",
182
+ excludeFromMobile: true,
212
183
  },
213
- /** @type {object} */
214
184
  new_user_form: {
215
185
  type: "View users",
216
186
  label: "New user view",
217
187
  default: "",
218
188
  blurb: "A view to show to new users, to finalise registration (if Edit) or as a welcome view",
219
189
  },
220
- /** @type {object} */
221
190
  user_settings_form: {
222
191
  type: "View users",
223
192
  label: "User settings form",
224
193
  default: "",
225
194
  blurb: "A view for users to change their custom user fields",
226
195
  },
227
- /** @type {object} */
228
196
  login_form: {
229
197
  type: "View users",
230
198
  label: "Login view",
231
199
  blurb: "A view with the login form",
232
200
  default: "",
233
201
  },
234
- /** @type {object} */
235
202
  signup_form: {
236
203
  type: "View users",
237
204
  label: "Signup view",
238
205
  blurb: "A view with the signup form",
239
206
  default: "",
240
207
  },
241
- /** @type {object} */
242
208
  verification_view: {
243
209
  type: "View users",
244
210
  label: "Verification view",
245
211
  blurb: "A view with the view to be emailed to users for email address verification",
246
212
  default: "",
213
+ excludeFromMobile: true,
247
214
  },
248
215
  logout_url: {
249
216
  type: "String",
@@ -251,7 +218,6 @@ const configTypes = {
251
218
  blurb: "The URL to direct to after logout",
252
219
  default: "/auth/login",
253
220
  },
254
- /** @type {object} */
255
221
  elevate_verified: {
256
222
  type: "Role",
257
223
  label: "Elevate verified to role",
@@ -262,8 +228,8 @@ const configTypes = {
262
228
  label: "Plain password trigger row",
263
229
  default: false,
264
230
  blurb: "Send plaintext password changes to Users table triggers (Insert, Update and Validate).",
231
+ excludeFromMobile: true, // unsure
265
232
  },
266
- /** @type {object} */
267
233
  signup_role: {
268
234
  type: "Role",
269
235
  label: "Signup role",
@@ -271,32 +237,35 @@ const configTypes = {
271
237
  default: "80",
272
238
  required: true,
273
239
  },
274
- /** @type {object} */
275
240
  min_role_upload: {
276
241
  type: "Role",
277
242
  label: "Role to upload files",
278
243
  default: "80",
279
244
  required: true,
280
245
  blurb: "User should have this role or higher to upload files with API (uploads through forms are not affected)",
246
+ excludeFromMobile: true,
281
247
  },
282
- /** @type {object} */
283
248
  min_role_apikeygen: {
284
249
  type: "Role",
285
250
  label: "Role to generate API keys",
286
251
  default: "1",
287
252
  required: true,
288
253
  blurb: "User should have this role or higher to generate API keys in their user settings",
254
+ excludeFromMobile: true,
289
255
  },
290
- /** @type {object} */
291
256
  email_mask: {
292
257
  type: "String",
293
258
  label: "Email mask",
294
259
  default: "",
295
260
  blurb: "Emails used for signup must end with this string",
261
+ excludeFromMobile: true,
262
+ },
263
+ installed_packs: {
264
+ type: "String[]",
265
+ label: "Installed packs",
266
+ default: [],
267
+ excludeFromMobile: true,
296
268
  },
297
- /** @type {object} */
298
- installed_packs: { type: "String[]", label: "Installed packs", default: [] },
299
- /** @type {object} */
300
269
  log_sql: {
301
270
  type: "Bool",
302
271
  label: "Log SQL to stdout",
@@ -307,7 +276,6 @@ const configTypes = {
307
276
  },
308
277
  blurb: "Print all SQL statements to the standard output",
309
278
  },
310
- /** @type {object} */
311
279
  log_client_errors: {
312
280
  type: "Bool",
313
281
  label: "Log client errors",
@@ -316,7 +284,6 @@ const configTypes = {
316
284
  root_only: true,
317
285
  blurb: "Record all client errors in the crash log",
318
286
  },
319
- /** @type {object} */
320
287
  npm_available_js_code: {
321
288
  type: "String",
322
289
  label: "NPM packages in code",
@@ -330,7 +297,6 @@ const configTypes = {
330
297
  });
331
298
  },
332
299
  },
333
- /** @type {object} */
334
300
  multitenancy_enabled: {
335
301
  type: "Bool",
336
302
  root_only: true,
@@ -342,7 +308,6 @@ const configTypes = {
342
308
  set_multitenancy_cfg(val);
343
309
  },
344
310
  },
345
- /** @type {object} */
346
311
  role_to_create_tenant: {
347
312
  type: "Role",
348
313
  label: "Role to create tenants",
@@ -350,16 +315,16 @@ const configTypes = {
350
315
  default: "1",
351
316
  required: true,
352
317
  root_only: true,
318
+ excludeFromMobile: true,
353
319
  },
354
- /** @type {object} */
355
320
  create_tenant_warning: {
356
321
  type: "Bool",
357
322
  label: "Create tenant warning",
358
323
  default: true,
359
324
  root_only: true,
360
325
  blurb: "Show a warning to users creating a tenant disclaiming warranty of availability or security",
326
+ excludeFromMobile: true,
361
327
  },
362
- /** @type {object} */
363
328
  create_tenant_warning_text: {
364
329
  type: "String",
365
330
  fieldview: "textarea",
@@ -367,40 +332,46 @@ const configTypes = {
367
332
  default: "",
368
333
  root_only: true,
369
334
  blurb: "Provide your own create warning text if need",
335
+ excludeFromMobile: true,
370
336
  },
371
- /** @type {object} */
372
337
  tenant_template: {
373
338
  type: "Tenant",
374
339
  label: "New tenant template",
375
340
  blurb: "Copy site structure for new tenants from this tenant",
376
341
  root_only: true,
342
+ excludeFromMobile: true,
377
343
  },
378
344
  tenant_baseurl: {
379
345
  type: "String",
380
346
  root_only: true,
381
347
  label: "Tenant Base URL",
382
348
  blurb: "Base hostname for newly created tenants. If unset, defaults to hostname",
349
+ excludeFromMobile: true,
383
350
  },
384
351
  tenant_create_unauth_redirect: {
385
352
  type: "String",
386
353
  root_only: true,
387
354
  label: "Redirect unauthorized",
388
355
  blurb: "If tenant creation is not authorized, redirect to this URL",
356
+ excludeFromMobile: true,
389
357
  },
390
358
  tenants_install_git: {
391
359
  type: "Bool",
392
360
  root_only: true,
393
361
  label: "Install git plugins",
362
+ excludeFromMobile: true, // unsure
394
363
  },
395
364
  tenants_set_npm_modules: {
396
365
  type: "Bool",
397
366
  root_only: true,
398
367
  label: "Set available npm modules",
368
+ excludeFromMobile: true, // unsure
399
369
  },
400
370
  tenants_unsafe_plugins: {
401
371
  type: "Bool",
402
372
  root_only: true,
403
373
  label: "Unsafe modules",
374
+ excludeFromMobile: true, // unsure
404
375
  },
405
376
  tenant_inherit_cfgs: {
406
377
  type: "String",
@@ -408,15 +379,15 @@ const configTypes = {
408
379
  label: "Inherit configuration values",
409
380
  helpTopic: "Configuration keys",
410
381
  blurb: "Comma-separated list of configuration settings tenants inherit from root. Ex: <code>site_name, smtp_host, allow_signup</code>",
382
+ excludeFromMobile: true, // unsure
411
383
  },
412
- /** @type {object} */
413
384
  tenant_letsencrypt_sites: {
414
385
  type: "hidden",
415
386
  root_only: true,
416
387
  label: "Tenant LetsEncrypt sites",
417
388
  default: [],
389
+ excludeFromMobile: true,
418
390
  },
419
- /** @type {object} */
420
391
  development_mode: {
421
392
  type: "Bool",
422
393
  label: "Development mode",
@@ -424,21 +395,20 @@ const configTypes = {
424
395
  default: false,
425
396
  blurb: "Disable JS/CSS asset caching, show full error to user on crash, enable editing field type",
426
397
  },
427
- /** @type {object} */
428
398
  smtp_host: {
429
399
  type: "String",
430
400
  label: "SMTP host",
431
401
  default: "",
432
402
  blurb: "The host address of your SMTP server. For instance, smtp.postmarkapp.com",
403
+ excludeFromMobile: true,
433
404
  },
434
- /** @type {object} */
435
405
  smtp_username: {
436
406
  type: "String",
437
407
  label: "SMTP username",
438
408
  default: "",
439
409
  blurb: "The user name to access SMTP server for sending emails.",
410
+ excludeFromMobile: true,
440
411
  },
441
- /** @type {object} */
442
412
  smtp_password: {
443
413
  type: "String",
444
414
  label: "SMTP password",
@@ -447,35 +417,36 @@ const configTypes = {
447
417
  blurb: "The user password or app password to access SMTP server for sending emails. " +
448
418
  "If your SMTP provider allows to create app password for using from application " +
449
419
  "We recommends to use app password instead of user password.",
420
+ excludeFromMobile: true,
450
421
  },
451
- /** @type {object} */
452
422
  smtp_port: {
453
423
  type: "Integer",
454
424
  label: "SMTP port",
455
425
  default: "25",
456
426
  blurb: "The port of your SMTP server",
427
+ excludeFromMobile: true,
457
428
  },
458
- /** @type {object} */
459
429
  smtp_secure: {
460
430
  type: "Bool",
461
431
  label: "Force TLS",
462
432
  default: false,
463
433
  sublabel: "Always use TLS when connecting to server? If unchecked, TLS is used if server supports the STARTTLS extension. In most cases check this box if you are connecting to port 465. For port 587 or 25 keep it unchecked",
434
+ excludeFromMobile: true,
464
435
  },
465
436
  smtp_allow_self_signed: {
466
437
  type: "Bool",
467
438
  label: "Allow self-signed",
468
439
  default: false,
469
440
  sublabel: "Open a connection to TLS server with self-signed or invalid TLS certificate",
441
+ excludeFromMobile: true,
470
442
  },
471
- /** @type {object} */
472
443
  email_from: {
473
444
  type: "String",
474
445
  label: "Email from address",
475
446
  default: "",
476
447
  blurb: "The email address from which emails are sent. For instance, hello@saltcorn.com",
448
+ excludeFromMobile: true,
477
449
  },
478
- /** @type {object} */
479
450
  custom_ssl_certificate: {
480
451
  type: "String",
481
452
  fieldview: "textarea",
@@ -483,8 +454,8 @@ const configTypes = {
483
454
  default: "",
484
455
  excludeFromSnapshot: true,
485
456
  hide_value: true,
457
+ excludeFromMobile: true,
486
458
  },
487
- /** @type {object} */
488
459
  custom_ssl_private_key: {
489
460
  type: "String",
490
461
  fieldview: "textarea",
@@ -492,8 +463,8 @@ const configTypes = {
492
463
  hide_value: true,
493
464
  excludeFromSnapshot: true,
494
465
  default: "",
466
+ excludeFromMobile: true,
495
467
  },
496
- /** @type {object} */
497
468
  letsencrypt: {
498
469
  label: "LetsEncrypt enabled",
499
470
  default: false,
@@ -501,8 +472,8 @@ const configTypes = {
501
472
  root_only: true,
502
473
  excludeFromSnapshot: true,
503
474
  blurb: "Enable SSL certificate from Let's Encrypt for HTTPS traffic",
475
+ excludeFromMobile: true,
504
476
  },
505
- /** @type {object} */
506
477
  timeout: {
507
478
  type: "Integer",
508
479
  label: "HTTP timeout (s)",
@@ -511,26 +482,23 @@ const configTypes = {
511
482
  restart_required: true,
512
483
  sublabel: "Increase if you expect large uploads",
513
484
  },
514
- /** @type {object} */
515
485
  latest_npm_version: {
516
486
  type: "hidden",
517
487
  label: "Latest npm version cache",
518
488
  excludeFromSnapshot: true,
519
489
  default: {},
490
+ excludeFromMobile: true,
520
491
  },
521
- /** @type {object} */
522
492
  event_log_settings: {
523
493
  type: "hidden",
524
494
  label: "Event log settings",
525
495
  default: {},
526
496
  },
527
- /** @type {object} */
528
497
  custom_events: {
529
498
  type: "hidden",
530
499
  label: "Custom events",
531
500
  default: [],
532
501
  },
533
- /** @type {object} */
534
502
  page_custom_css: {
535
503
  input_type: "code",
536
504
  label: "Custom CSS",
@@ -538,7 +506,6 @@ const configTypes = {
538
506
  hide_value: true,
539
507
  attributes: { mode: "text/css" },
540
508
  },
541
- /** @type {object} */
542
509
  page_custom_html: {
543
510
  input_type: "code",
544
511
  label: "Custom HTML",
@@ -546,7 +513,6 @@ const configTypes = {
546
513
  hide_value: true,
547
514
  attributes: { mode: "text/html" },
548
515
  },
549
- /** @type {object} */
550
516
  custom_http_headers: {
551
517
  input_type: "code",
552
518
  label: "Custom HTTP headers",
@@ -555,21 +521,18 @@ const configTypes = {
555
521
  hide_value: true,
556
522
  attributes: { mode: "message/http" },
557
523
  },
558
- /** @type {object} */
559
524
  next_hourly_event: {
560
525
  type: "Date",
561
526
  label: "Next hourly event",
562
527
  excludeFromSnapshot: true,
563
528
  default: null,
564
529
  },
565
- /** @type {object} */
566
530
  next_daily_event: {
567
531
  type: "Date",
568
532
  label: "Next daily event",
569
533
  default: null,
570
534
  excludeFromSnapshot: true,
571
535
  },
572
- /** @type {object} */
573
536
  next_weekly_event: {
574
537
  type: "Date",
575
538
  label: "Next weekly event",
@@ -582,19 +545,16 @@ const configTypes = {
582
545
  sublabel: "Locale identifier short code, e.g. en, zh, fr, ar etc. ",
583
546
  default: "en",
584
547
  },
585
- /** @type {object} */
586
548
  localizer_languages: {
587
549
  type: "hidden",
588
550
  label: "Localizer languages",
589
551
  default: {},
590
552
  },
591
- /** @type {object} */
592
553
  localizer_strings: {
593
554
  type: "hidden",
594
555
  label: "Localizer strings",
595
556
  default: {},
596
557
  },
597
- /** @type {object} */
598
558
  legacy_file_id_locations: {
599
559
  type: "hidden",
600
560
  label: "Legacy file_id locations",
@@ -615,6 +575,7 @@ const configTypes = {
615
575
  label: "Cookie duration (hours)",
616
576
  sublabel: "Set to 0 for expiration at the end of browser session",
617
577
  default: 30 * 24,
578
+ excludeFromMobile: true,
618
579
  },
619
580
  cookie_samesite: {
620
581
  input_type: "select",
@@ -624,6 +585,7 @@ const configTypes = {
624
585
  sublabel: "Restrict use of cookie to third-party sites. Strict is more secure, but may impact authentication",
625
586
  default: "Unset",
626
587
  options: ["Unset", "None", "Lax", "Strict"],
588
+ excludeFromMobile: true,
627
589
  },
628
590
  content_security_policy: {
629
591
  input_type: "select",
@@ -632,6 +594,7 @@ const configTypes = {
632
594
  options: ["Disabled", "Enabled"],
633
595
  restart_required: true,
634
596
  root_only: true,
597
+ excludeFromMobile: true,
635
598
  },
636
599
  cors_enabled: {
637
600
  type: "Bool",
@@ -640,6 +603,7 @@ const configTypes = {
640
603
  default: true,
641
604
  restart_required: true,
642
605
  root_only: true,
606
+ excludeFromMobile: true,
643
607
  },
644
608
  public_cache_maxage: {
645
609
  type: "Integer",
@@ -652,12 +616,14 @@ const configTypes = {
652
616
  label: "Files cache TTL (minutes)",
653
617
  sublabel: "Cache-control max-age for files.",
654
618
  default: 86400,
619
+ excludeFromMobile: true,
655
620
  },
656
621
  cookie_duration_remember: {
657
622
  type: "Integer",
658
623
  label: "Cookie duration (hours) when remember ticked",
659
624
  sublabel: "Set to 0 for expiration at the end of browser session",
660
625
  default: 30 * 24,
626
+ excludeFromMobile: true,
661
627
  },
662
628
  cross_domain_iframe: {
663
629
  type: "Bool",
@@ -667,13 +633,13 @@ const configTypes = {
667
633
  sublabel: "Allow embedding in iframe on different domains. Unsets the X-Frame-Options header",
668
634
  default: false,
669
635
  },
670
- /** @type {object} */
671
636
  storage_s3_enabled: {
672
637
  type: "Bool",
673
638
  label: "Use Amazon S3",
674
639
  excludeFromSnapshot: true,
675
640
  default: false,
676
641
  sublabel: "Use Amazon S3 (or compatible) service to store files. If disabled, Saltcorn uses local disk. WARNING: Changing this may break your uploaded files!",
642
+ excludeFromMobile: true,
677
643
  },
678
644
  storage_s3_secure: {
679
645
  type: "Bool",
@@ -681,48 +647,48 @@ const configTypes = {
681
647
  excludeFromSnapshot: true,
682
648
  default: true,
683
649
  sublabel: "Connect to Amazon S3 (or compatible) securely.",
650
+ excludeFromMobile: true,
684
651
  },
685
- /** @type {object} */
686
652
  storage_s3_bucket: {
687
653
  type: "String",
688
654
  label: "Amazon S3 Bucket",
689
655
  excludeFromSnapshot: true,
690
656
  default: "",
691
657
  blurb: "Name you selected for your S3 bucket in AWS.",
658
+ excludeFromMobile: true,
692
659
  },
693
- /** @type {object} */
694
660
  storage_s3_path_prefix: {
695
661
  type: "String",
696
662
  label: "Amazon S3 Path Prefix",
697
663
  excludeFromSnapshot: true,
698
664
  default: "",
699
665
  blurb: "Prefix you selected for your S3 bucket in AWS.",
666
+ excludeFromMobile: true,
700
667
  },
701
- /** @type {object} */
702
668
  storage_s3_endpoint: {
703
669
  type: "String",
704
670
  label: "Amazon S3 Endpoint",
705
671
  excludeFromSnapshot: true,
706
672
  default: "s3.amazonaws.com",
707
673
  blurb: "Hostname of your S3 Compatible Storage provider. Defaults to 's3.amazonaws.com'.",
674
+ excludeFromMobile: true,
708
675
  },
709
- /** @type {object} */
710
676
  storage_s3_region: {
711
677
  type: "String",
712
678
  label: "Amazon S3 Region",
713
679
  excludeFromSnapshot: true,
714
680
  default: "us-east-1",
715
681
  blurb: "AWS region you selected when creating your S3 bucket. Default ti 'us-east-1'.",
682
+ excludeFromMobile: true,
716
683
  },
717
- /** @type {object} */
718
684
  storage_s3_access_key: {
719
685
  type: "String",
720
686
  label: "Amazon S3 Access Key ID",
721
687
  excludeFromSnapshot: true,
722
688
  default: "",
723
689
  blurb: "Only required if you do not want to authenticate to S3 using an IAM role. Enter the Access Key ID provided by your Amazon EC2 administrator.",
690
+ excludeFromMobile: true,
724
691
  },
725
- /** @type {object} */
726
692
  storage_s3_access_secret: {
727
693
  type: "String",
728
694
  input_type: "password",
@@ -730,8 +696,8 @@ const configTypes = {
730
696
  excludeFromSnapshot: true,
731
697
  default: "",
732
698
  blurb: "The secret access key associated with your Amazon S3 Access Key ID.",
699
+ excludeFromMobile: true,
733
700
  },
734
- /** @type {object} */
735
701
  plugins_store_endpoint: {
736
702
  type: "String",
737
703
  input_type: "String",
@@ -739,8 +705,8 @@ const configTypes = {
739
705
  default: "https://store.saltcorn.com/api/extensions",
740
706
  //root_only: true,
741
707
  blurb: "The endpoint of plugins store.",
708
+ excludeFromMobile: true,
742
709
  },
743
- /** @type {object} */
744
710
  packs_store_endpoint: {
745
711
  type: "String",
746
712
  input_type: "String",
@@ -748,54 +714,63 @@ const configTypes = {
748
714
  default: "https://store.saltcorn.com/api/packs",
749
715
  //root_only: true,
750
716
  blurb: "The endpoint of packs store.",
717
+ excludeFromMobile: true,
751
718
  },
752
719
  auto_backup_frequency: {
753
720
  type: "String",
754
721
  label: "Auto backup frequency",
755
722
  excludeFromSnapshot: true,
756
723
  default: "Never",
724
+ excludeFromMobile: true,
757
725
  },
758
726
  auto_backup_destination: {
759
727
  type: "String",
760
728
  excludeFromSnapshot: true,
761
729
  label: "Auto backup Destination",
762
730
  default: "Saltcorn files",
731
+ excludeFromMobile: true,
763
732
  },
764
733
  auto_backup_directory: {
765
734
  type: "String",
766
735
  excludeFromSnapshot: true,
767
736
  label: "Auto backup directory",
768
737
  default: "",
738
+ excludeFromMobile: true,
769
739
  },
770
740
  auto_backup_retain_local_directory: {
771
741
  type: "String",
772
742
  excludeFromSnapshot: true,
773
743
  label: "Retain auto backup local directory",
774
744
  default: "",
745
+ excludeFromMobile: true,
775
746
  },
776
747
  auto_backup_server: {
777
748
  type: "String",
778
749
  excludeFromSnapshot: true,
779
750
  label: "Auto backup server",
780
751
  default: "",
752
+ excludeFromMobile: true,
781
753
  },
782
754
  auto_backup_username: {
783
755
  type: "String",
784
756
  excludeFromSnapshot: true,
785
757
  label: "Auto backup username",
786
758
  default: "",
759
+ excludeFromMobile: true,
787
760
  },
788
761
  auto_backup_password: {
789
762
  type: "String",
790
763
  excludeFromSnapshot: true,
791
764
  label: "Auto backup password",
792
765
  default: "",
766
+ excludeFromMobile: true,
793
767
  },
794
768
  auto_backup_port: {
795
769
  type: "Integer",
796
770
  excludeFromSnapshot: true,
797
771
  label: "Auto backup port",
798
772
  default: 22,
773
+ excludeFromMobile: true,
799
774
  },
800
775
  auto_backup_tenants: {
801
776
  type: "Bool",
@@ -803,6 +778,7 @@ const configTypes = {
803
778
  label: "Auto backup tenants",
804
779
  default: false,
805
780
  root_only: true,
781
+ excludeFromMobile: true,
806
782
  },
807
783
  auto_backup_expire_days: {
808
784
  type: "Integer",
@@ -810,17 +786,20 @@ const configTypes = {
810
786
  label: "Auto backup expiration days",
811
787
  default: null,
812
788
  root_only: true,
789
+ excludeFromMobile: true,
813
790
  },
814
791
  backup_with_event_log: {
815
792
  type: "Bool",
816
793
  label: "Backup with event log",
817
794
  default: false,
795
+ excludeFromMobile: true,
818
796
  },
819
797
  backup_with_system_zip: {
820
798
  type: "Bool",
821
799
  label: "Backup with system zip",
822
800
  sublabel: "Recommended. Executable <code>zip</code> must be installed",
823
801
  default: false,
802
+ excludeFromMobile: true,
824
803
  },
825
804
  backup_system_zip_level: {
826
805
  type: "Integer",
@@ -831,6 +810,7 @@ const configTypes = {
831
810
  min: 1,
832
811
  max: 9,
833
812
  },
813
+ excludeFromMobile: true,
834
814
  },
835
815
  snapshots_enabled: {
836
816
  type: "Bool",
@@ -924,15 +904,8 @@ const configTypes = {
924
904
  label: "Log IP address",
925
905
  sublabel: "Record the request IP address in log messages",
926
906
  default: false,
907
+ excludeFromMobile: true,
927
908
  },
928
- apple_team_id: {
929
- type: "String",
930
- default: null,
931
- label: "Apple Developer Team ID",
932
- blurb: "Issued by Apple for enrolled members of the 'Apple Developer Program'." +
933
- "The team id must be set to build mobile iOS apps that can run on a device.",
934
- },
935
- /** @type {object} */
936
909
  file_accept_filter_default: {
937
910
  type: "String",
938
911
  label: "Default File accept filter",
@@ -940,7 +913,6 @@ const configTypes = {
940
913
  blurb: "Specifies a default filter for what file types the user can pick from the file input dialog box. " +
941
914
  "Example is `.doc, text/csv,audio/*,video/*,image/*`",
942
915
  },
943
- /** @type {object} */
944
916
  csv_types_detection_rows: {
945
917
  type: "Integer",
946
918
  label: "CSV types detection rows",
@@ -948,45 +920,46 @@ const configTypes = {
948
920
  blurb: "Specifies how many rows from start of CSV file will be using to determine types in created tables. " +
949
921
  "Default is 500",
950
922
  },
951
- /** @type {object} */
952
923
  csv_bool_values: {
953
924
  type: "String",
954
925
  label: "CSV bool values",
955
926
  default: "true false yes no on off y n t f",
956
927
  blurb: "Allows to redefine list of values that recognized as bool values in cvs file",
957
928
  },
958
- /** @type {object} */
959
929
  file_upload_debug: {
960
930
  type: "Bool",
961
931
  label: "File upload debug",
962
932
  default: false,
963
933
  blurb: "Turn on to debug file upload in express-fileupload.",
934
+ excludeFromMobile: true,
964
935
  },
965
- /** @type {object} */
966
936
  file_upload_timeout: {
967
937
  type: "Integer",
968
938
  label: "File upload timeout",
969
939
  default: 0,
970
940
  blurb: "Defines how long to wait for data before aborting file upload. " +
971
941
  "Set to 0 if you want to turn off timeout checks. ",
942
+ excludeFromMobile: true,
972
943
  },
973
- /** @type {object} */
974
944
  file_upload_limit: {
975
945
  type: "Integer",
976
946
  label: "Upload size limit (Kb)",
977
947
  blurb: "Maximum upload file size in kilobytes",
948
+ excludeFromMobile: true,
978
949
  },
979
950
  body_limit: {
980
951
  type: "Integer",
981
952
  label: "Body size limit (Kb)",
982
953
  root_only: true,
983
954
  blurb: "Maximum request body size in kilobytes",
955
+ excludeFromMobile: true,
984
956
  },
985
957
  url_encoded_limit: {
986
958
  type: "Integer",
987
959
  root_only: true,
988
960
  label: "URL encoded size limit (Kb)",
989
961
  blurb: "Maximum URL encoded request size in kilobytes",
962
+ excludeFromMobile: true,
990
963
  },
991
964
  min_role_inspect_tables: {
992
965
  type: "Role",
@@ -994,6 +967,7 @@ const configTypes = {
994
967
  default: 1,
995
968
  required: true,
996
969
  blurb: "Minimum role to inspect (see, without editing) tables",
970
+ excludeFromMobile: true,
997
971
  },
998
972
  min_role_edit_tables: {
999
973
  type: "Role",
@@ -1001,6 +975,7 @@ const configTypes = {
1001
975
  default: 1,
1002
976
  required: true,
1003
977
  blurb: "Minimum role to edit tables",
978
+ excludeFromMobile: true,
1004
979
  },
1005
980
  min_role_edit_views: {
1006
981
  type: "Role",
@@ -1008,6 +983,7 @@ const configTypes = {
1008
983
  default: 1,
1009
984
  required: true,
1010
985
  blurb: "Minimum role to edit views",
986
+ excludeFromMobile: true,
1011
987
  },
1012
988
  min_role_edit_pages: {
1013
989
  type: "Role",
@@ -1015,6 +991,7 @@ const configTypes = {
1015
991
  default: 1,
1016
992
  required: true,
1017
993
  blurb: "Minimum role to edit pages",
994
+ excludeFromMobile: true,
1018
995
  },
1019
996
  min_role_edit_triggers: {
1020
997
  type: "Role",
@@ -1022,6 +999,7 @@ const configTypes = {
1022
999
  default: 1,
1023
1000
  required: true,
1024
1001
  blurb: "Minimum role to edit triggers",
1002
+ excludeFromMobile: true,
1025
1003
  },
1026
1004
  min_role_edit_menu: {
1027
1005
  type: "Role",
@@ -1029,16 +1007,39 @@ const configTypes = {
1029
1007
  default: 1,
1030
1008
  required: true,
1031
1009
  blurb: "Minimum role to edit menu",
1010
+ excludeFromMobile: true,
1011
+ },
1012
+ min_role_edit_files: {
1013
+ type: "Role",
1014
+ label: "Edit files",
1015
+ default: 1,
1016
+ required: true,
1017
+ blurb: "Minimum role to edit files",
1018
+ excludeFromMobile: true,
1019
+ },
1020
+ min_role_edit_search: {
1021
+ type: "Role",
1022
+ label: "Edit search",
1023
+ default: 1,
1024
+ required: true,
1025
+ blurb: "Minimum role to edit search",
1026
+ excludeFromMobile: true,
1027
+ },
1028
+ min_role_create_snapshots: {
1029
+ type: "Role",
1030
+ label: "Create snapshot",
1031
+ default: 1,
1032
+ required: true,
1033
+ blurb: "Minimum role to create snapshot",
1034
+ excludeFromMobile: true,
1032
1035
  },
1033
- /** @type {object} */
1034
1036
  min_role_search: {
1035
1037
  type: "Role",
1036
1038
  label: "Role for search",
1037
- default: 100, // public is default
1039
+ default: 100,
1038
1040
  required: true,
1039
1041
  blurb: "Minimum role to access search page",
1040
1042
  },
1041
- /** @type {object} */
1042
1043
  search_page_size: {
1043
1044
  type: "Integer",
1044
1045
  label: "Search page size",
@@ -1065,16 +1066,19 @@ const configTypes = {
1065
1066
  type: "String",
1066
1067
  label: "Backup file prefix",
1067
1068
  default: "sc-backup-",
1069
+ excludeFromMobile: true,
1068
1070
  },
1069
1071
  backup_history: {
1070
1072
  type: "Bool",
1071
1073
  label: "Include table history in backup",
1072
1074
  default: true,
1075
+ excludeFromMobile: true,
1073
1076
  },
1074
1077
  max_relations_layer_depth: {
1075
1078
  type: "Integer",
1076
1079
  label: "Max relations layer depth",
1077
1080
  default: 6,
1081
+ excludeFromMobile: true,
1078
1082
  },
1079
1083
  missing_screen_info_strategy: {
1080
1084
  type: "String",
@@ -1097,6 +1101,7 @@ const configTypes = {
1097
1101
  type: "hidden",
1098
1102
  label: "Joined log socket ids",
1099
1103
  default: [],
1104
+ excludeFromMobile: true,
1100
1105
  },
1101
1106
  prune_session_interval: {
1102
1107
  type: "Integer",
@@ -1106,17 +1111,20 @@ const configTypes = {
1106
1111
  "0, empty or a negative number to disable",
1107
1112
  root_only: true,
1108
1113
  restart_required: true,
1114
+ excludeFromMobile: true,
1109
1115
  },
1110
1116
  engines_cache: {
1111
1117
  type: "JSON",
1112
1118
  label: "Cached plugin version infos",
1113
1119
  default: {},
1120
+ excludeFromMobile: true,
1114
1121
  },
1115
1122
  // when this is different from the current version, the engines cache is cleared
1116
1123
  engines_cache_sc_version: {
1117
1124
  type: "String",
1118
1125
  label: "Saltcorn version for engines cache",
1119
1126
  default: "",
1127
+ excludeFromMobile: true,
1120
1128
  },
1121
1129
  delete_finished_workflows_days: {
1122
1130
  type: "Integer",
@@ -1144,6 +1152,7 @@ const available_languages = {
1144
1152
  es: "Español",
1145
1153
  no: "Norsk",
1146
1154
  sv: "Svenska",
1155
+ hi: "हिन्दी",
1147
1156
  ru: "Русский",
1148
1157
  nl: "Nederlands",
1149
1158
  pt: "Português",
@@ -1324,7 +1333,7 @@ const save_menu_items = async (menu_items) => {
1324
1333
  const get_latest_npm_version = async (pkg, timeout_ms) => {
1325
1334
  const { getState } = require("../db/state");
1326
1335
  const { isStale } = (await Promise.resolve().then(() => __importStar(require("../utils")))).default;
1327
- const latestVersion = require("latest-version");
1336
+ const fetch = require("node-fetch");
1328
1337
  const stored = getState().getConfig("latest_npm_version", {});
1329
1338
  if (stored[pkg] && !isStale(stored[pkg].time, 6)) {
1330
1339
  return stored[pkg].version;
@@ -1332,7 +1341,15 @@ const get_latest_npm_version = async (pkg, timeout_ms) => {
1332
1341
  const guess = stored[pkg]?.version || ""; //default return
1333
1342
  try {
1334
1343
  const fetch_it = async () => {
1335
- const latest = await latestVersion(pkg);
1344
+ const response = await fetch(`https://registry.npmjs.org/${pkg}`);
1345
+ if (!response.ok) {
1346
+ throw new Error(`Failed to fetch data: ${response.statusText}`);
1347
+ }
1348
+ const data = await response.json();
1349
+ if (!data?.versions || data.versions.length === 0)
1350
+ throw new Error("No versions found");
1351
+ const keys = Object.keys(data.versions);
1352
+ const latest = keys[keys.length - 1];
1336
1353
  const stored1 = getState().getConfigCopy("latest_npm_version", {});
1337
1354
  await getState().setConfig("latest_npm_version", {
1338
1355
  ...stored1,