@saltcorn/data 0.6.1-beta.3 → 0.6.2-beta.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 (555) hide show
  1. package/dist/base-plugin/actions.d.ts +141 -0
  2. package/dist/base-plugin/actions.d.ts.map +1 -0
  3. package/dist/base-plugin/actions.js +551 -0
  4. package/dist/base-plugin/actions.js.map +1 -0
  5. package/dist/base-plugin/base.test.d.ts +2 -0
  6. package/dist/base-plugin/base.test.d.ts.map +1 -0
  7. package/dist/base-plugin/base.test.js +15 -0
  8. package/dist/base-plugin/base.test.js.map +1 -0
  9. package/dist/base-plugin/fieldviews.d.ts +25 -0
  10. package/dist/base-plugin/fieldviews.d.ts.map +1 -0
  11. package/dist/base-plugin/fieldviews.js +159 -0
  12. package/dist/base-plugin/fieldviews.js.map +1 -0
  13. package/dist/base-plugin/fileviews.d.ts +52 -0
  14. package/dist/base-plugin/fileviews.d.ts.map +1 -0
  15. package/dist/base-plugin/fileviews.js +59 -0
  16. package/dist/base-plugin/fileviews.js.map +1 -0
  17. package/dist/base-plugin/index.d.ts +524 -0
  18. package/dist/base-plugin/index.d.ts.map +1 -0
  19. package/{base-plugin → dist/base-plugin}/index.js +22 -24
  20. package/dist/base-plugin/index.js.map +1 -0
  21. package/dist/base-plugin/types.d.ts +383 -0
  22. package/dist/base-plugin/types.d.ts.map +1 -0
  23. package/dist/base-plugin/types.js +1080 -0
  24. package/dist/base-plugin/types.js.map +1 -0
  25. package/dist/base-plugin/viewtemplates/edit.d.ts +116 -0
  26. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -0
  27. package/dist/base-plugin/viewtemplates/edit.js +561 -0
  28. package/dist/base-plugin/viewtemplates/edit.js.map +1 -0
  29. package/dist/base-plugin/viewtemplates/feed.d.ts +73 -0
  30. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -0
  31. package/dist/base-plugin/viewtemplates/feed.js +348 -0
  32. package/dist/base-plugin/viewtemplates/feed.js.map +1 -0
  33. package/dist/base-plugin/viewtemplates/filter.d.ts +46 -0
  34. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -0
  35. package/dist/base-plugin/viewtemplates/filter.js +267 -0
  36. package/dist/base-plugin/viewtemplates/filter.js.map +1 -0
  37. package/dist/base-plugin/viewtemplates/list.d.ts +99 -0
  38. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -0
  39. package/dist/base-plugin/viewtemplates/list.js +471 -0
  40. package/dist/base-plugin/viewtemplates/list.js.map +1 -0
  41. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +41 -0
  42. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -0
  43. package/dist/base-plugin/viewtemplates/listshowlist.js +248 -0
  44. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -0
  45. package/dist/base-plugin/viewtemplates/room.d.ts +140 -0
  46. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -0
  47. package/dist/base-plugin/viewtemplates/room.js +469 -0
  48. package/dist/base-plugin/viewtemplates/room.js.map +1 -0
  49. package/dist/base-plugin/viewtemplates/show.d.ts +101 -0
  50. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -0
  51. package/dist/base-plugin/viewtemplates/show.js +562 -0
  52. package/dist/base-plugin/viewtemplates/show.js.map +1 -0
  53. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +108 -0
  54. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -0
  55. package/dist/base-plugin/viewtemplates/viewable_fields.js +563 -0
  56. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -0
  57. package/dist/contracts.d.ts +49 -0
  58. package/dist/contracts.d.ts.map +1 -0
  59. package/dist/contracts.js +212 -0
  60. package/dist/contracts.js.map +1 -0
  61. package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
  62. package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
  63. package/dist/coverage/lcov-report/block-navigation.js +66 -0
  64. package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  65. package/dist/coverage/lcov-report/prettify.d.ts +1 -0
  66. package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
  67. package/dist/coverage/lcov-report/prettify.js +478 -0
  68. package/dist/coverage/lcov-report/prettify.js.map +1 -0
  69. package/dist/coverage/lcov-report/sorter.d.ts +2 -0
  70. package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
  71. package/dist/coverage/lcov-report/sorter.js +141 -0
  72. package/dist/coverage/lcov-report/sorter.js.map +1 -0
  73. package/dist/db/connect.d.ts +40 -0
  74. package/dist/db/connect.d.ts.map +1 -0
  75. package/dist/db/connect.js +150 -0
  76. package/dist/db/connect.js.map +1 -0
  77. package/dist/db/db.test.d.ts +2 -0
  78. package/dist/db/db.test.d.ts.map +1 -0
  79. package/dist/db/db.test.js +28 -0
  80. package/dist/db/db.test.js.map +1 -0
  81. package/dist/db/fixtures.d.ts +8 -0
  82. package/dist/db/fixtures.d.ts.map +1 -0
  83. package/dist/db/fixtures.js +300 -0
  84. package/dist/db/fixtures.js.map +1 -0
  85. package/dist/db/index.d.ts +3 -0
  86. package/dist/db/index.d.ts.map +1 -0
  87. package/dist/db/index.js +41 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/reset_schema.d.ts +13 -0
  90. package/dist/db/reset_schema.d.ts.map +1 -0
  91. package/{db → dist/db}/reset_schema.js +45 -55
  92. package/dist/db/reset_schema.js.map +1 -0
  93. package/dist/db/state.d.ts +56 -0
  94. package/dist/db/state.d.ts.map +1 -0
  95. package/dist/db/state.js +608 -0
  96. package/dist/db/state.js.map +1 -0
  97. package/dist/index.d.ts +2 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/{index.js → dist/index.js} +2 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/migrate.d.ts +12 -0
  102. package/dist/migrate.d.ts.map +1 -0
  103. package/dist/migrate.js +94 -0
  104. package/dist/migrate.js.map +1 -0
  105. package/dist/migrations/202005141503.d.ts +2 -0
  106. package/dist/migrations/202005141503.d.ts.map +1 -0
  107. package/{migrations → dist/migrations}/202005141503.js +2 -1
  108. package/dist/migrations/202005141503.js.map +1 -0
  109. package/dist/migrations/202005241712.d.ts +2 -0
  110. package/dist/migrations/202005241712.d.ts.map +1 -0
  111. package/{migrations → dist/migrations}/202005241712.js +2 -1
  112. package/dist/migrations/202005241712.js.map +1 -0
  113. package/dist/migrations/202005251037.d.ts +2 -0
  114. package/dist/migrations/202005251037.d.ts.map +1 -0
  115. package/{migrations → dist/migrations}/202005251037.js +2 -1
  116. package/dist/migrations/202005251037.js.map +1 -0
  117. package/dist/migrations/202005282134.d.ts +2 -0
  118. package/dist/migrations/202005282134.d.ts.map +1 -0
  119. package/{migrations → dist/migrations}/202005282134.js +2 -1
  120. package/dist/migrations/202005282134.js.map +1 -0
  121. package/dist/migrations/202006022156.d.ts +2 -0
  122. package/dist/migrations/202006022156.d.ts.map +1 -0
  123. package/{migrations → dist/migrations}/202006022156.js +2 -1
  124. package/dist/migrations/202006022156.js.map +1 -0
  125. package/dist/migrations/202006051507.d.ts +2 -0
  126. package/dist/migrations/202006051507.d.ts.map +1 -0
  127. package/{migrations → dist/migrations}/202006051507.js +2 -1
  128. package/dist/migrations/202006051507.js.map +1 -0
  129. package/dist/migrations/202006240906.d.ts +2 -0
  130. package/dist/migrations/202006240906.d.ts.map +1 -0
  131. package/{migrations → dist/migrations}/202006240906.js +2 -1
  132. package/dist/migrations/202006240906.js.map +1 -0
  133. package/dist/migrations/202007091707.d.ts +2 -0
  134. package/dist/migrations/202007091707.d.ts.map +1 -0
  135. package/{migrations → dist/migrations}/202007091707.js +2 -1
  136. package/dist/migrations/202007091707.js.map +1 -0
  137. package/dist/migrations/202007202144.d.ts +2 -0
  138. package/dist/migrations/202007202144.d.ts.map +1 -0
  139. package/{migrations → dist/migrations}/202007202144.js +2 -1
  140. package/dist/migrations/202007202144.js.map +1 -0
  141. package/dist/migrations/202008031500.d.ts +2 -0
  142. package/dist/migrations/202008031500.d.ts.map +1 -0
  143. package/dist/migrations/202008031500.js +4 -0
  144. package/dist/migrations/202008031500.js.map +1 -0
  145. package/dist/migrations/202008051415.d.ts +2 -0
  146. package/dist/migrations/202008051415.d.ts.map +1 -0
  147. package/{migrations → dist/migrations}/202008051415.js +2 -1
  148. package/dist/migrations/202008051415.js.map +1 -0
  149. package/dist/migrations/202008121149.d.ts +3 -0
  150. package/dist/migrations/202008121149.d.ts.map +1 -0
  151. package/{migrations → dist/migrations}/202008121149.js +2 -2
  152. package/dist/migrations/202008121149.js.map +1 -0
  153. package/dist/migrations/202009112140.d.ts +3 -0
  154. package/dist/migrations/202009112140.d.ts.map +1 -0
  155. package/{migrations → dist/migrations}/202009112140.js +2 -2
  156. package/dist/migrations/202009112140.js.map +1 -0
  157. package/dist/migrations/202009181655.d.ts +2 -0
  158. package/dist/migrations/202009181655.d.ts.map +1 -0
  159. package/dist/migrations/202009181655.js +7 -0
  160. package/dist/migrations/202009181655.js.map +1 -0
  161. package/dist/migrations/202009221105.d.ts +2 -0
  162. package/dist/migrations/202009221105.d.ts.map +1 -0
  163. package/dist/migrations/202009221105.js +4 -0
  164. package/dist/migrations/202009221105.js.map +1 -0
  165. package/dist/migrations/202009231331.d.ts +2 -0
  166. package/dist/migrations/202009231331.d.ts.map +1 -0
  167. package/{migrations → dist/migrations}/202009231331.js +2 -1
  168. package/dist/migrations/202009231331.js.map +1 -0
  169. package/dist/migrations/202009301531.d.ts +2 -0
  170. package/dist/migrations/202009301531.d.ts.map +1 -0
  171. package/dist/migrations/202009301531.js +8 -0
  172. package/dist/migrations/202009301531.js.map +1 -0
  173. package/dist/migrations/202010231444.d.ts +2 -0
  174. package/dist/migrations/202010231444.d.ts.map +1 -0
  175. package/dist/migrations/202010231444.js +4 -0
  176. package/dist/migrations/202010231444.js.map +1 -0
  177. package/dist/migrations/202010251412.d.ts +2 -0
  178. package/dist/migrations/202010251412.d.ts.map +1 -0
  179. package/dist/migrations/202010251412.js +10 -0
  180. package/dist/migrations/202010251412.js.map +1 -0
  181. package/dist/migrations/202011021749.d.ts +2 -0
  182. package/dist/migrations/202011021749.d.ts.map +1 -0
  183. package/{migrations → dist/migrations}/202011021749.js +2 -1
  184. package/dist/migrations/202011021749.js.map +1 -0
  185. package/dist/migrations/202011051353.d.ts +2 -0
  186. package/dist/migrations/202011051353.d.ts.map +1 -0
  187. package/{migrations → dist/migrations}/202011051353.js +2 -1
  188. package/dist/migrations/202011051353.js.map +1 -0
  189. package/dist/migrations/202011111127.d.ts +2 -0
  190. package/dist/migrations/202011111127.d.ts.map +1 -0
  191. package/{migrations → dist/migrations}/202011111127.js +2 -1
  192. package/dist/migrations/202011111127.js.map +1 -0
  193. package/dist/migrations/202012011203.d.ts +2 -0
  194. package/dist/migrations/202012011203.d.ts.map +1 -0
  195. package/{migrations → dist/migrations}/202012011203.js +2 -1
  196. package/dist/migrations/202012011203.js.map +1 -0
  197. package/dist/migrations/202012100841.d.ts +2 -0
  198. package/dist/migrations/202012100841.d.ts.map +1 -0
  199. package/{migrations → dist/migrations}/202012100841.js +2 -1
  200. package/dist/migrations/202012100841.js.map +1 -0
  201. package/dist/migrations/202012281835.d.ts +2 -0
  202. package/dist/migrations/202012281835.d.ts.map +1 -0
  203. package/{migrations → dist/migrations}/202012281835.js +2 -1
  204. package/dist/migrations/202012281835.js.map +1 -0
  205. package/dist/migrations/202101061051.d.ts +2 -0
  206. package/dist/migrations/202101061051.d.ts.map +1 -0
  207. package/{migrations → dist/migrations}/202101061051.js +2 -1
  208. package/dist/migrations/202101061051.js.map +1 -0
  209. package/dist/migrations/202101141128.d.ts +2 -0
  210. package/dist/migrations/202101141128.d.ts.map +1 -0
  211. package/dist/migrations/202101141128.js +4 -0
  212. package/dist/migrations/202101141128.js.map +1 -0
  213. package/dist/migrations/202102091312.d.ts +3 -0
  214. package/dist/migrations/202102091312.d.ts.map +1 -0
  215. package/dist/migrations/202102091312.js +19 -0
  216. package/dist/migrations/202102091312.js.map +1 -0
  217. package/dist/migrations/202102101624.d.ts +2 -0
  218. package/dist/migrations/202102101624.d.ts.map +1 -0
  219. package/dist/migrations/202102101624.js +7 -0
  220. package/dist/migrations/202102101624.js.map +1 -0
  221. package/dist/migrations/202102172148.d.ts +2 -0
  222. package/dist/migrations/202102172148.d.ts.map +1 -0
  223. package/{migrations → dist/migrations}/202102172148.js +2 -2
  224. package/dist/migrations/202102172148.js.map +1 -0
  225. package/dist/migrations/202102261650.d.ts +2 -0
  226. package/dist/migrations/202102261650.d.ts.map +1 -0
  227. package/dist/migrations/202102261650.js +7 -0
  228. package/dist/migrations/202102261650.js.map +1 -0
  229. package/dist/migrations/202106102347.d.ts +2 -0
  230. package/dist/migrations/202106102347.d.ts.map +1 -0
  231. package/{migrations → dist/migrations}/202106102347.js +2 -3
  232. package/dist/migrations/202106102347.js.map +1 -0
  233. package/dist/migrations/202106112120.d.ts +2 -0
  234. package/dist/migrations/202106112120.d.ts.map +1 -0
  235. package/{migrations → dist/migrations}/202106112120.js +2 -3
  236. package/dist/migrations/202106112120.js.map +1 -0
  237. package/dist/migrations/202106120012.d.ts +2 -0
  238. package/dist/migrations/202106120012.d.ts.map +1 -0
  239. package/{migrations → dist/migrations}/202106120012.js +2 -3
  240. package/dist/migrations/202106120012.js.map +1 -0
  241. package/dist/migrations/202106120220.d.ts +2 -0
  242. package/dist/migrations/202106120220.d.ts.map +1 -0
  243. package/{migrations → dist/migrations}/202106120220.js +2 -4
  244. package/dist/migrations/202106120220.js.map +1 -0
  245. package/dist/migrations/202106121701.d.ts +2 -0
  246. package/dist/migrations/202106121701.d.ts.map +1 -0
  247. package/{migrations → dist/migrations}/202106121701.js +2 -3
  248. package/dist/migrations/202106121701.js.map +1 -0
  249. package/dist/migrations/202106121703.d.ts +3 -0
  250. package/dist/migrations/202106121703.d.ts.map +1 -0
  251. package/{migrations → dist/migrations}/202106121703.js +2 -3
  252. package/dist/migrations/202106121703.js.map +1 -0
  253. package/dist/migrations/202106251126.d.ts +2 -0
  254. package/dist/migrations/202106251126.d.ts.map +1 -0
  255. package/dist/migrations/202106251126.js +6 -0
  256. package/dist/migrations/202106251126.js.map +1 -0
  257. package/dist/migrations/202107281619.d.ts +2 -0
  258. package/dist/migrations/202107281619.d.ts.map +1 -0
  259. package/{migrations → dist/migrations}/202107281619.js +2 -1
  260. package/dist/migrations/202107281619.js.map +1 -0
  261. package/dist/migrations/202107302158.d.ts +3 -0
  262. package/dist/migrations/202107302158.d.ts.map +1 -0
  263. package/{migrations → dist/migrations}/202107302158.js +2 -3
  264. package/dist/migrations/202107302158.js.map +1 -0
  265. package/dist/migrations/202108022257.d.ts +2 -0
  266. package/dist/migrations/202108022257.d.ts.map +1 -0
  267. package/{migrations → dist/migrations}/202108022257.js +3 -4
  268. package/dist/migrations/202108022257.js.map +1 -0
  269. package/dist/migrations/202109201624.d.ts +2 -0
  270. package/dist/migrations/202109201624.d.ts.map +1 -0
  271. package/{migrations → dist/migrations}/202109201624.js +2 -1
  272. package/dist/migrations/202109201624.js.map +1 -0
  273. package/dist/migrations/202109301031.d.ts +3 -0
  274. package/dist/migrations/202109301031.d.ts.map +1 -0
  275. package/{migrations → dist/migrations}/202109301031.js +2 -2
  276. package/dist/migrations/202109301031.js.map +1 -0
  277. package/dist/migrations/202111290253.d.ts +3 -0
  278. package/dist/migrations/202111290253.d.ts.map +1 -0
  279. package/dist/migrations/202111290253.js +5 -0
  280. package/dist/migrations/202111290253.js.map +1 -0
  281. package/dist/models/backup.d.ts +22 -0
  282. package/dist/models/backup.d.ts.map +1 -0
  283. package/{models → dist/models}/backup.js +95 -192
  284. package/dist/models/backup.js.map +1 -0
  285. package/dist/models/config.d.ts +177 -0
  286. package/dist/models/config.d.ts.map +1 -0
  287. package/dist/models/config.js +683 -0
  288. package/dist/models/config.js.map +1 -0
  289. package/dist/models/crash.d.ts +74 -0
  290. package/dist/models/crash.d.ts.map +1 -0
  291. package/dist/models/crash.js +118 -0
  292. package/dist/models/crash.js.map +1 -0
  293. package/dist/models/discovery.d.ts +28 -0
  294. package/dist/models/discovery.d.ts.map +1 -0
  295. package/dist/models/discovery.js +163 -0
  296. package/dist/models/discovery.js.map +1 -0
  297. package/dist/models/email.d.ts +16 -0
  298. package/dist/models/email.d.ts.map +1 -0
  299. package/dist/models/email.js +90 -0
  300. package/dist/models/email.js.map +1 -0
  301. package/dist/models/eventlog.d.ts +77 -0
  302. package/dist/models/eventlog.d.ts.map +1 -0
  303. package/dist/models/eventlog.js +132 -0
  304. package/dist/models/eventlog.js.map +1 -0
  305. package/dist/models/expression.d.ts +54 -0
  306. package/dist/models/expression.d.ts.map +1 -0
  307. package/dist/models/expression.js +274 -0
  308. package/dist/models/expression.js.map +1 -0
  309. package/dist/models/field.d.ts +217 -0
  310. package/dist/models/field.d.ts.map +1 -0
  311. package/dist/models/field.js +619 -0
  312. package/dist/models/field.js.map +1 -0
  313. package/dist/models/fieldrepeat.d.ts +49 -0
  314. package/dist/models/fieldrepeat.d.ts.map +1 -0
  315. package/dist/models/fieldrepeat.js +88 -0
  316. package/dist/models/fieldrepeat.js.map +1 -0
  317. package/dist/models/file.d.ts +122 -0
  318. package/dist/models/file.d.ts.map +1 -0
  319. package/dist/models/file.js +224 -0
  320. package/dist/models/file.js.map +1 -0
  321. package/dist/models/form.d.ts +82 -0
  322. package/dist/models/form.d.ts.map +1 -0
  323. package/dist/models/form.js +163 -0
  324. package/dist/models/form.js.map +1 -0
  325. package/dist/models/index.d.ts +1 -0
  326. package/dist/models/index.d.ts.map +1 -0
  327. package/{models → dist/models}/index.js +42 -42
  328. package/dist/models/index.js.map +1 -0
  329. package/dist/models/layout.d.ts +34 -0
  330. package/dist/models/layout.d.ts.map +1 -0
  331. package/dist/models/layout.js +153 -0
  332. package/dist/models/layout.js.map +1 -0
  333. package/dist/models/library.d.ts +50 -0
  334. package/dist/models/library.d.ts.map +1 -0
  335. package/dist/models/library.js +129 -0
  336. package/dist/models/library.js.map +1 -0
  337. package/dist/models/pack.d.ts +89 -0
  338. package/dist/models/pack.d.ts.map +1 -0
  339. package/dist/models/pack.js +383 -0
  340. package/dist/models/pack.js.map +1 -0
  341. package/dist/models/page.d.ts +101 -0
  342. package/dist/models/page.d.ts.map +1 -0
  343. package/dist/models/page.js +223 -0
  344. package/dist/models/page.js.map +1 -0
  345. package/dist/models/plugin.d.ts +100 -0
  346. package/dist/models/plugin.d.ts.map +1 -0
  347. package/dist/models/plugin.js +204 -0
  348. package/dist/models/plugin.js.map +1 -0
  349. package/dist/models/random.d.ts +24 -0
  350. package/dist/models/random.d.ts.map +1 -0
  351. package/dist/models/random.js +186 -0
  352. package/dist/models/random.js.map +1 -0
  353. package/dist/models/role.d.ts +42 -0
  354. package/dist/models/role.d.ts.map +1 -0
  355. package/dist/models/role.js +64 -0
  356. package/dist/models/role.js.map +1 -0
  357. package/dist/models/scheduler.d.ts +18 -0
  358. package/dist/models/scheduler.d.ts.map +1 -0
  359. package/dist/models/scheduler.js +159 -0
  360. package/dist/models/scheduler.js.map +1 -0
  361. package/dist/models/table.d.ts +326 -0
  362. package/dist/models/table.d.ts.map +1 -0
  363. package/dist/models/table.js +1006 -0
  364. package/dist/models/table.js.map +1 -0
  365. package/dist/models/table_constraints.d.ts +69 -0
  366. package/dist/models/table_constraints.d.ts.map +1 -0
  367. package/dist/models/table_constraints.js +118 -0
  368. package/dist/models/table_constraints.js.map +1 -0
  369. package/dist/models/tenant.d.ts +55 -0
  370. package/dist/models/tenant.d.ts.map +1 -0
  371. package/{models → dist/models}/tenant.js +40 -63
  372. package/dist/models/tenant.js.map +1 -0
  373. package/dist/models/trigger.d.ts +133 -0
  374. package/dist/models/trigger.d.ts.map +1 -0
  375. package/dist/models/trigger.js +292 -0
  376. package/dist/models/trigger.js.map +1 -0
  377. package/dist/models/user.d.ts +235 -0
  378. package/dist/models/user.d.ts.map +1 -0
  379. package/dist/models/user.js +434 -0
  380. package/dist/models/user.js.map +1 -0
  381. package/dist/models/view.d.ts +204 -0
  382. package/dist/models/view.d.ts.map +1 -0
  383. package/dist/models/view.js +497 -0
  384. package/dist/models/view.js.map +1 -0
  385. package/dist/models/workflow.d.ts +48 -0
  386. package/dist/models/workflow.d.ts.map +1 -0
  387. package/dist/models/workflow.js +190 -0
  388. package/dist/models/workflow.js.map +1 -0
  389. package/dist/plugin-helper.d.ts +145 -0
  390. package/dist/plugin-helper.d.ts.map +1 -0
  391. package/dist/plugin-helper.js +1158 -0
  392. package/dist/plugin-helper.js.map +1 -0
  393. package/dist/plugin-testing.d.ts +3 -0
  394. package/dist/plugin-testing.d.ts.map +1 -0
  395. package/dist/plugin-testing.js +120 -0
  396. package/dist/plugin-testing.js.map +1 -0
  397. package/dist/tests/actions.test.d.ts +2 -0
  398. package/dist/tests/actions.test.d.ts.map +1 -0
  399. package/dist/tests/actions.test.js +205 -0
  400. package/dist/tests/actions.test.js.map +1 -0
  401. package/dist/tests/auxtest.test.d.ts +2 -0
  402. package/dist/tests/auxtest.test.d.ts.map +1 -0
  403. package/dist/tests/auxtest.test.js +48 -0
  404. package/dist/tests/auxtest.test.js.map +1 -0
  405. package/dist/tests/backup.test.d.ts +2 -0
  406. package/dist/tests/backup.test.d.ts.map +1 -0
  407. package/dist/tests/backup.test.js +88 -0
  408. package/dist/tests/backup.test.js.map +1 -0
  409. package/dist/tests/calc.test.d.ts +2 -0
  410. package/dist/tests/calc.test.d.ts.map +1 -0
  411. package/dist/tests/calc.test.js +231 -0
  412. package/dist/tests/calc.test.js.map +1 -0
  413. package/dist/tests/config.test.d.ts +2 -0
  414. package/dist/tests/config.test.d.ts.map +1 -0
  415. package/dist/tests/config.test.js +83 -0
  416. package/dist/tests/config.test.js.map +1 -0
  417. package/dist/tests/discover.test.d.ts +2 -0
  418. package/dist/tests/discover.test.d.ts.map +1 -0
  419. package/dist/tests/discover.test.js +106 -0
  420. package/dist/tests/discover.test.js.map +1 -0
  421. package/dist/tests/exact_views.test.d.ts +2 -0
  422. package/dist/tests/exact_views.test.d.ts.map +1 -0
  423. package/dist/tests/exact_views.test.js +511 -0
  424. package/dist/tests/exact_views.test.js.map +1 -0
  425. package/dist/tests/field.test.d.ts +2 -0
  426. package/dist/tests/field.test.d.ts.map +1 -0
  427. package/dist/tests/field.test.js +237 -0
  428. package/dist/tests/field.test.js.map +1 -0
  429. package/dist/tests/form.test.d.ts +2 -0
  430. package/dist/tests/form.test.d.ts.map +1 -0
  431. package/dist/tests/form.test.js +191 -0
  432. package/dist/tests/form.test.js.map +1 -0
  433. package/dist/tests/mocks.d.ts +111 -0
  434. package/dist/tests/mocks.d.ts.map +1 -0
  435. package/dist/tests/mocks.js +165 -0
  436. package/dist/tests/mocks.js.map +1 -0
  437. package/dist/tests/models.test.d.ts +2 -0
  438. package/dist/tests/models.test.d.ts.map +1 -0
  439. package/dist/tests/models.test.js +210 -0
  440. package/dist/tests/models.test.js.map +1 -0
  441. package/dist/tests/pack.test.d.ts +2 -0
  442. package/dist/tests/pack.test.d.ts.map +1 -0
  443. package/dist/tests/pack.test.js +331 -0
  444. package/dist/tests/pack.test.js.map +1 -0
  445. package/dist/tests/plugin.test.d.ts +2 -0
  446. package/dist/tests/plugin.test.d.ts.map +1 -0
  447. package/dist/tests/plugin.test.js +53 -0
  448. package/dist/tests/plugin.test.js.map +1 -0
  449. package/dist/tests/random.test.d.ts +2 -0
  450. package/dist/tests/random.test.d.ts.map +1 -0
  451. package/dist/tests/random.test.js +138 -0
  452. package/dist/tests/random.test.js.map +1 -0
  453. package/dist/tests/table.test.d.ts +2 -0
  454. package/dist/tests/table.test.d.ts.map +1 -0
  455. package/dist/tests/table.test.js +1048 -0
  456. package/dist/tests/table.test.js.map +1 -0
  457. package/dist/tests/tenant.test.d.ts +2 -0
  458. package/dist/tests/tenant.test.d.ts.map +1 -0
  459. package/dist/tests/tenant.test.js +45 -0
  460. package/dist/tests/tenant.test.js.map +1 -0
  461. package/dist/tests/user.test.d.ts +2 -0
  462. package/dist/tests/user.test.d.ts.map +1 -0
  463. package/dist/tests/user.test.js +190 -0
  464. package/dist/tests/user.test.js.map +1 -0
  465. package/dist/tests/view.test.d.ts +2 -0
  466. package/dist/tests/view.test.d.ts.map +1 -0
  467. package/dist/tests/view.test.js +238 -0
  468. package/dist/tests/view.test.js.map +1 -0
  469. package/dist/tests/workflow.test.d.ts +2 -0
  470. package/dist/tests/workflow.test.d.ts.map +1 -0
  471. package/dist/tests/workflow.test.js +115 -0
  472. package/dist/tests/workflow.test.js.map +1 -0
  473. package/dist/tsconfig.ref.tsbuildinfo +1 -0
  474. package/dist/utils.d.ts +26 -0
  475. package/dist/utils.d.ts.map +1 -0
  476. package/dist/utils.js +124 -0
  477. package/dist/utils.js.map +1 -0
  478. package/package.json +37 -8
  479. package/base-plugin/actions.js +0 -629
  480. package/base-plugin/base.test.js +0 -15
  481. package/base-plugin/fieldviews.js +0 -192
  482. package/base-plugin/fileviews.js +0 -65
  483. package/base-plugin/types.js +0 -1025
  484. package/base-plugin/viewtemplates/edit.js +0 -665
  485. package/base-plugin/viewtemplates/feed.js +0 -434
  486. package/base-plugin/viewtemplates/filter.js +0 -311
  487. package/base-plugin/viewtemplates/list.js +0 -575
  488. package/base-plugin/viewtemplates/listshowlist.js +0 -292
  489. package/base-plugin/viewtemplates/room.js +0 -650
  490. package/base-plugin/viewtemplates/show.js +0 -689
  491. package/base-plugin/viewtemplates/viewable_fields.js +0 -714
  492. package/contracts.js +0 -311
  493. package/db/connect.js +0 -151
  494. package/db/db.test.js +0 -33
  495. package/db/fixtures.js +0 -303
  496. package/db/index.js +0 -60
  497. package/db/state.js +0 -674
  498. package/migrate.js +0 -99
  499. package/migrations/202008031500.js +0 -4
  500. package/migrations/202009181655.js +0 -6
  501. package/migrations/202009221105.js +0 -4
  502. package/migrations/202009301531.js +0 -7
  503. package/migrations/202010231444.js +0 -4
  504. package/migrations/202010251412.js +0 -9
  505. package/migrations/202101141128.js +0 -4
  506. package/migrations/202102091312.js +0 -19
  507. package/migrations/202102101624.js +0 -5
  508. package/migrations/202102261650.js +0 -6
  509. package/migrations/202106251126.js +0 -5
  510. package/models/config.js +0 -680
  511. package/models/crash.js +0 -126
  512. package/models/discovery.js +0 -195
  513. package/models/email.js +0 -92
  514. package/models/eventlog.js +0 -146
  515. package/models/expression.js +0 -264
  516. package/models/field.js +0 -740
  517. package/models/fieldrepeat.js +0 -96
  518. package/models/file.js +0 -227
  519. package/models/form.js +0 -168
  520. package/models/layout.js +0 -146
  521. package/models/library.js +0 -135
  522. package/models/pack.js +0 -466
  523. package/models/page.js +0 -251
  524. package/models/plugin.js +0 -219
  525. package/models/random.js +0 -206
  526. package/models/role.js +0 -94
  527. package/models/scheduler.js +0 -163
  528. package/models/table.js +0 -1203
  529. package/models/table_constraints.js +0 -133
  530. package/models/trigger.js +0 -327
  531. package/models/user.js +0 -503
  532. package/models/view.js +0 -618
  533. package/models/workflow.js +0 -205
  534. package/plugin-helper.js +0 -1291
  535. package/plugin-testing.js +0 -124
  536. package/tests/actions.test.js +0 -232
  537. package/tests/auxtest.test.js +0 -52
  538. package/tests/backup.test.js +0 -92
  539. package/tests/calc.test.js +0 -221
  540. package/tests/config.test.js +0 -91
  541. package/tests/discover.test.js +0 -114
  542. package/tests/exact_views.test.js +0 -526
  543. package/tests/field.test.js +0 -253
  544. package/tests/form.test.js +0 -198
  545. package/tests/mocks.js +0 -173
  546. package/tests/models.test.js +0 -221
  547. package/tests/pack.test.js +0 -350
  548. package/tests/plugin.test.js +0 -59
  549. package/tests/random.test.js +0 -154
  550. package/tests/table.test.js +0 -1091
  551. package/tests/tenant.test.js +0 -56
  552. package/tests/user.test.js +0 -196
  553. package/tests/view.test.js +0 -251
  554. package/tests/workflow.test.js +0 -119
  555. package/utils.js +0 -137
package/models/config.js DELETED
@@ -1,680 +0,0 @@
1
- /**
2
- * Config Variables
3
- * @category saltcorn-data
4
- * @module models/config
5
- * @subcategory models
6
- */
7
- const db = require("../db");
8
- const { contract, is } = require("contractis");
9
- const latestVersion = require("latest-version");
10
- const { getConfigFile, configFilePath } = require("../db/connect");
11
- const fs = require("fs");
12
- const moment = require("moment-timezone");
13
-
14
- const allTimezones = moment.tz.names();
15
- const defaultTimezone = moment.tz.guess();
16
-
17
- /**
18
- * Config variables types
19
- * @namespace
20
- * @category saltcorn-data
21
- */
22
- const configTypes = {
23
- /** @type {object} */
24
- site_name: {
25
- type: "String",
26
- label: "Site name",
27
- default: "Saltcorn",
28
- blurb: "A short string which is the name of your site",
29
- },
30
- /** @type {object} */
31
- timezone: {
32
- type: "String",
33
- label: "Home Timezone",
34
- default: defaultTimezone,
35
- attributes: {
36
- options: allTimezones,
37
- },
38
- },
39
- /** @type {object} */
40
- site_logo_id: {
41
- type: "File",
42
- label: "Site logo",
43
- default: 0,
44
- attributes: {
45
- select_file_where: { min_role_read: 10, mime_super: "image" },
46
- },
47
- blurb: "Select a publicly accessible image file for the menu logo",
48
- },
49
- /** @type {object} */
50
- favicon_id: {
51
- type: "File",
52
- label: "Favicon",
53
- default: 0,
54
- attributes: {
55
- select_file_where: { min_role_read: 10, mime_super: "image" },
56
- },
57
- blurb: "Select a publicly accessible image file for the browser tab icon",
58
- },
59
- /** @type {object} */
60
- base_url: {
61
- type: "String",
62
- label: "Base URL",
63
- default: "",
64
- onChange(val) {
65
- const tenant = db.getTenantSchema();
66
- const isRoot = tenant === db.connectObj.default_schema;
67
- if (!isRoot && val) {
68
- const { set_tenant_base_url } = require("../db/state");
69
- set_tenant_base_url(tenant, val);
70
- }
71
- },
72
- blurb:
73
- "The URL at which your site is available. For instance, https://example.com/",
74
- },
75
- /** @type {object} */
76
- menu_items: { type: "hidden", label: "Menu items" },
77
- /** @type {object} */
78
- globalSearch: { type: "hidden", label: "Global search" },
79
- /** @type {object} */
80
- available_packs: { type: "hidden", label: "Available packs" },
81
- /** @type {object} */
82
- available_packs_fetched_at: {
83
- type: "Date",
84
- label: "Available packs fetched",
85
- },
86
- /** @type {object} */
87
- available_plugins: { type: "hidden", label: "Available plugins" },
88
- /** @type {object} */
89
- available_plugins_fetched_at: {
90
- type: "Date",
91
- label: "Available plugins fetched",
92
- },
93
- /** @type {object} */
94
- home_page_by_role: { type: "hidden", label: "Home Page by Role" },
95
- /** @type {object} */
96
- exttables_min_role_read: {
97
- type: "hidden",
98
- label: "Home Page by Role",
99
- default: {},
100
- },
101
- /** @type {object} */
102
- public_home: { type: "String", label: "Public home page", default: "" },
103
- /** @type {object} */
104
- user_home: { type: "String", label: "User home page", default: "" },
105
- /** @type {object} */
106
- staff_home: { type: "String", label: "Staff home page", default: "" },
107
- /** @type {object} */
108
- admin_home: { type: "String", label: "Admin home page", default: "" },
109
- /** @type {object} */
110
- layout_by_role: { type: "hidden", label: "Layout by role", default: {} },
111
- /** @type {object} */
112
- allow_signup: {
113
- type: "Bool",
114
- label: "Allow signups",
115
- default: true,
116
- blurb: "Allow users to sign up for a new user account",
117
- },
118
- /** @type {object} */
119
- allow_forgot: {
120
- type: "Bool",
121
- label: "Allow password reset",
122
- default: false,
123
- blurb:
124
- "Allow users to request a password reset email. Email must be configured.",
125
- },
126
- /** @type {object} */
127
- login_menu: {
128
- type: "Bool",
129
- label: "Login in menu",
130
- default: true,
131
- blurb: "Show the login link in the menu",
132
- },
133
- /** @type {object} */
134
- cookie_sessions: {
135
- type: "Bool",
136
- label: "Cookie sessions",
137
- default: false,
138
- root_only: true,
139
- restart_required: true,
140
- blurb: "Store sessions entirely in client cookies for higher performance",
141
- },
142
- /** @type {object} */
143
- new_user_form: {
144
- type: "View users",
145
- label: "New user form",
146
- default: "",
147
- blurb: "A view to show to new users",
148
- },
149
- /** @type {object} */
150
- user_settings_form: {
151
- type: "View users",
152
- label: "User settings form",
153
- default: "",
154
- blurb: "A view for users to change their custom user fields",
155
- },
156
- /** @type {object} */
157
- login_form: {
158
- type: "View users",
159
- label: "Login view",
160
- blurb: "A view with the login form",
161
- default: "",
162
- },
163
- /** @type {object} */
164
- signup_form: {
165
- type: "View users",
166
- label: "Signup view",
167
- blurb: "A view with the signup form",
168
- default: "",
169
- },
170
- /** @type {object} */
171
- verification_view: {
172
- type: "View users",
173
- label: "Verification view",
174
- blurb:
175
- "A view with the view to be emailed to users for email address verification",
176
- default: "",
177
- },
178
- /** @type {object} */
179
- elevate_verified: {
180
- type: "Role",
181
- label: "Elevate verified to role",
182
- blurb:
183
- "Elevate users to a higher role when their email addresses have been verified",
184
- },
185
- /** @type {object} */
186
- min_role_upload: {
187
- type: "Role",
188
- label: "Role to upload files",
189
- default: "1",
190
- required: true,
191
- blurb:
192
- "User should have this role or higher to upload files with API (uploads through forms are not affected)",
193
- },
194
- /** @type {object} */
195
- email_mask: {
196
- type: "String",
197
- label: "Email mask",
198
- default: "",
199
- blurb: "Emails used for signup must end with this string",
200
- },
201
- /** @type {object} */
202
- installed_packs: { type: "String[]", label: "Installed packs", default: [] },
203
- /** @type {object} */
204
- log_sql: {
205
- type: "Bool",
206
- label: "Log SQL to stdout",
207
- default: false,
208
- onChange(val) {
209
- db.set_sql_logging(val);
210
- },
211
- blurb: "Print all SQL statements to the standard output",
212
- },
213
- /** @type {object} */
214
- multitenancy_enabled: {
215
- type: "Bool",
216
- root_only: true,
217
- restart_required: true,
218
- label: "Multitenancy enabled",
219
- default: db.is_it_multi_tenant(),
220
- onChange(val) {
221
- set_multitenancy_cfg(val);
222
- },
223
- },
224
- /** @type {object} */
225
- role_to_create_tenant: {
226
- type: "Role",
227
- label: "Role to create tenants",
228
- blurb: "Minimum user role required to create a new tenant",
229
- default: "10",
230
- },
231
- /** @type {object} */
232
- create_tenant_warning: {
233
- type: "Bool",
234
- label: "Create tenant warning",
235
- default: true,
236
- blurb:
237
- "Show a warning to users creating a tenant disclaiming warrenty of availability or security",
238
- },
239
- /** @type {object} */
240
- tenant_template: {
241
- type: "Tenant",
242
- label: "New tenant template",
243
- blurb: "Copy site structure for new tenants from this tenant",
244
- },
245
- /** @type {object} */
246
- development_mode: {
247
- type: "Bool",
248
- label: "Development mode",
249
- default: false,
250
- blurb:
251
- "Disable JS/CSS asset caching, show full error to user on crash, enable editing field type",
252
- },
253
- /** @type {object} */
254
- smtp_host: {
255
- type: "String",
256
- label: "SMTP host",
257
- default: "",
258
- blurb:
259
- "The host address of your SMTP server. For instance, smtp.postmarkapp.com",
260
- },
261
- /** @type {object} */
262
- smtp_username: {
263
- type: "String",
264
- label: "SMTP username",
265
- default: "",
266
- blurb: "The user name to access SMTP server for sending emails.",
267
- },
268
- /** @type {object} */
269
- smtp_password: {
270
- type: "String",
271
- label: "SMTP password",
272
- default: "",
273
- input_type: "password",
274
- blurb:
275
- "The user password or app password to access SMTP server for sending emails. " +
276
- "If your SMTP provider allows to create app password for using from application " +
277
- "We recommends to use app password instead of user password.",
278
- },
279
- /** @type {object} */
280
- smtp_port: {
281
- type: "Integer",
282
- label: "SMTP port",
283
- default: "25",
284
- blurb: "The port of your SMTP server",
285
- },
286
- /** @type {object} */
287
- smtp_secure: {
288
- type: "Bool",
289
- label: "Force TLS",
290
- default: false,
291
- sublabel:
292
- "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",
293
- },
294
- /** @type {object} */
295
- email_from: {
296
- type: "String",
297
- label: "Email from address",
298
- default: "",
299
- blurb:
300
- "The email address from which emails are sent. For instance, hello@saltcorn.com",
301
- },
302
- /** @type {object} */
303
- custom_ssl_certificate: {
304
- type: "String",
305
- fieldview: "textarea",
306
- label: "Custom SSL certificate",
307
- default: "",
308
- hide_value: true,
309
- },
310
- /** @type {object} */
311
- custom_ssl_private_key: {
312
- type: "String",
313
- fieldview: "textarea",
314
- label: "Custom SSL private key",
315
- hide_value: true,
316
- default: "",
317
- },
318
- /** @type {object} */
319
- letsencrypt: {
320
- label: "LetsEncrypt enabled",
321
- default: false,
322
- type: "hidden",
323
- root_only: true,
324
- blurb: "Enable SSL certificate from Let's Encrypt for HTTPS traffic",
325
- },
326
- /** @type {object} */
327
- timeout: {
328
- type: "Integer",
329
- label: "HTTP timeout (s)",
330
- default: 120,
331
- root_only: true,
332
- restart_required: true,
333
- sublabel: "Increase if you expect large uploads",
334
- },
335
- /** @type {object} */
336
- latest_npm_version: {
337
- type: "hidden",
338
- label: "Latest npm version cache",
339
- default: {},
340
- },
341
- /** @type {object} */
342
- event_log_settings: {
343
- type: "hidden",
344
- label: "Event log settings",
345
- default: {},
346
- },
347
- /** @type {object} */
348
- custom_events: {
349
- type: "hidden",
350
- label: "Custom events",
351
- default: [],
352
- },
353
- /** @type {object} */
354
- page_custom_css: {
355
- input_type: "code",
356
- label: "Custom CSS",
357
- default: "",
358
- hide_value: true,
359
- attributes: { mode: "text/css" },
360
- },
361
- /** @type {object} */
362
- page_custom_html: {
363
- input_type: "code",
364
- label: "Custom HTML",
365
- default: "",
366
- hide_value: true,
367
- attributes: { mode: "text/html" },
368
- },
369
- /** @type {object} */
370
- custom_http_headers: {
371
- input_type: "code",
372
- label: "Custom HTTP headers",
373
- blurb: "Format for each line: Header-Name: value",
374
- default: "",
375
- hide_value: true,
376
- attributes: { mode: "message/http" },
377
- },
378
- /** @type {object} */
379
- next_hourly_event: {
380
- type: "Date",
381
- label: "Next hourly event",
382
- default: null,
383
- },
384
- /** @type {object} */
385
- next_daily_event: {
386
- type: "Date",
387
- label: "Next daily event",
388
- default: null,
389
- },
390
- /** @type {object} */
391
- next_weekly_event: {
392
- type: "Date",
393
- label: "Next weekly event",
394
- default: null,
395
- },
396
- /** @type {object} */
397
- localizer_languages: {
398
- type: "hidden",
399
- label: "Localizer languages",
400
- default: {},
401
- },
402
- /** @type {object} */
403
- localizer_strings: {
404
- type: "hidden",
405
- label: "Localizer strings",
406
- default: {},
407
- },
408
- cookie_duration: {
409
- type: "Integer",
410
- label: "Cookie duration (hours)",
411
- sublabel: "Set to 0 for expration at the end of browser session",
412
- default: 0,
413
- },
414
- cookie_duration_remember: {
415
- type: "Integer",
416
- label: "Cookie duration (hours) when remember ticked",
417
- sublabel: "Set to 0 for expration at the end of browser session",
418
- default: 30 * 24,
419
- },
420
- };
421
- // TODO move list of languages from code to configuration
422
- const available_languages = {
423
- en: "English",
424
- fr: "français",
425
- de: "Deutsch",
426
- da: "dansk",
427
- es: "Español",
428
- no: "Norsk",
429
- sv: "Svenska",
430
- ru: "русский",
431
- nl: "Nederlands",
432
- pt: "Português",
433
- ar: "العربية",
434
- it: "Italiano",
435
- };
436
- /**
437
- * Get Config variable value by key (contract)
438
- * @function
439
- * @param {string} key
440
- * @param {object|undefined} def
441
- * @returns {Promise<object>}
442
- */
443
- const getConfig = contract(
444
- is.fun([is.str, is.maybe(is.any)], is.promise(is.any)),
445
- async (key, def) => {
446
- const cfg = await db.selectMaybeOne("_sc_config", { key });
447
- if (cfg && typeof cfg.value === "string") return JSON.parse(cfg.value).v;
448
- else if (cfg) return cfg.value.v;
449
- else if (def) return def;
450
- else return configTypes[key] ? configTypes[key].default : undefined;
451
- }
452
- );
453
-
454
- /**
455
- * Returns true if key is defined in fixed_configration for tenant
456
- * @param {string} key
457
- * @returns {boolean}
458
- */
459
- const isFixedConfig = (key) =>
460
- typeof db.connectObj.fixed_configuration[key] !== "undefined" ||
461
- (db.connectObj.inherit_configuration.includes(key) &&
462
- db.getTenantSchema() !== db.connectObj.default_schema);
463
-
464
- /**
465
- * Get all config variables list
466
- * @function
467
- * @returns {Promise<object>}
468
- */
469
- const getAllConfig = contract(
470
- is.fun([], is.promise(is.objVals(is.any))),
471
- async () => {
472
- const cfgs = await db.select("_sc_config");
473
- var cfg = {};
474
- cfgs.forEach(({ key, value }) => {
475
- if (key === "testMigration")
476
- //legacy invalid cfg
477
- return;
478
-
479
- try {
480
- cfg[key] = typeof value === "string" ? JSON.parse(value).v : value.v;
481
- } catch (e) {
482
- console.error(
483
- "config parsing error",
484
- e,
485
- { key, value },
486
- db.getTenantSchema()
487
- );
488
- }
489
- });
490
- return cfg;
491
- }
492
- );
493
-
494
- /**
495
- * Get all config variables list
496
- * If variable is not defined that default value is used
497
- * @function
498
- * @returns {Promise<object>}
499
- */
500
- const getAllConfigOrDefaults = contract(
501
- is.fun([], is.promise(is.objVals(is.any))),
502
- async () => {
503
- var cfgs = {};
504
- const cfgInDB = await getAllConfig();
505
-
506
- Object.entries(configTypes).forEach(([key, v]) => {
507
- const value =
508
- typeof cfgInDB[key] === "undefined" ? v.default : cfgInDB[key];
509
- if (!isFixedConfig(key)) cfgs[key] = { value, ...v };
510
- });
511
- return cfgs;
512
- }
513
- );
514
-
515
- /**
516
- * Set config variable value by key
517
- * @function
518
- * @param {string} key
519
- * @param {object} value
520
- * @returns {Promise<void>}
521
- */
522
- // TODO move db specific to pg/sqlite
523
- const setConfig = contract(
524
- is.fun([is.str, is.any], is.promise(is.undefined)),
525
- async (key, value) => {
526
- if (db.isSQLite)
527
- await db.query(
528
- `insert into ${db.getTenantSchemaPrefix()}_sc_config(key, value) values($key, json($value))
529
- on conflict (key) do update set value = json($value)`,
530
- { $key: key, $value: JSON.stringify({ v: value }) }
531
- );
532
- else
533
- await db.query(
534
- `insert into ${db.getTenantSchemaPrefix()}_sc_config(key, value) values($1, $2)
535
- on conflict (key) do update set value = $2`,
536
- [key, { v: value }]
537
- );
538
- if (configTypes[key] && configTypes[key].onChange)
539
- configTypes[key].onChange(value);
540
- }
541
- );
542
- /**
543
- * Delete config variable
544
- * @function
545
- * @param {string} key
546
- * @returns {Promise<void>}
547
- */
548
- const deleteConfig = contract(
549
- is.fun(is.str, is.promise(is.undefined)),
550
- async (key) => {
551
- await db.deleteWhere("_sc_config", { key });
552
- }
553
- );
554
-
555
- /**
556
- * Remove from menu
557
- * @function
558
- * @param {object} item
559
- * @returns {Promise<void>}
560
- */
561
- const remove_from_menu = contract(
562
- is.fun(
563
- is.obj({
564
- name: is.str,
565
- type: is.one_of(["View", "Page"]),
566
- }),
567
- is.promise(is.undefined)
568
- ),
569
- async (item) => {
570
- const { getState } = require("../db/state");
571
-
572
- const current_menu = getState().getConfigCopy("menu_items", []);
573
- const new_menu = current_menu.filter(
574
- (menuitem) =>
575
- !(
576
- item.type === menuitem.type &&
577
- (item.type === "View"
578
- ? menuitem.viewname === item.name
579
- : menuitem.pagename === item.name)
580
- )
581
- );
582
- await getState().setConfig("menu_items", new_menu);
583
- }
584
- );
585
-
586
- /**
587
- * Get latest npm version
588
- * @param {string} pkg
589
- * @returns {Promise<string>}
590
- */
591
- const get_latest_npm_version = async (pkg) => {
592
- const { getState } = require("../db/state");
593
- const { is_stale } = require("./pack");
594
- const stored = getState().getConfig("latest_npm_version", {});
595
-
596
- if (stored[pkg] && !is_stale(stored[pkg].time, 6)) {
597
- return stored[pkg].version;
598
- }
599
- try {
600
- const latest = await latestVersion(pkg);
601
- const stored1 = getState().getConfigCopy("latest_npm_version", {});
602
- await getState().setConfig("latest_npm_version", {
603
- ...stored1,
604
- [pkg]: { time: new Date(), version: latest },
605
- });
606
- return latest;
607
- } catch (e) {
608
- if (stored[pkg]) return stored[pkg].version;
609
- else return "";
610
- }
611
- };
612
-
613
- /**
614
- * Ensure that string is finished with /
615
- * @param {string} s
616
- * @returns {string}
617
- */
618
- const ensure_final_slash = (s) => (s.endsWith("/") ? s : s + "/");
619
-
620
- /**
621
- * Get base url
622
- * @param {object} req
623
- * @returns {string}
624
- */
625
- const get_base_url = (req) => {
626
- const { getState } = require("../db/state");
627
-
628
- const cfg = getState().getConfig("base_url", "");
629
- if (cfg) return ensure_final_slash(cfg);
630
- if (!req || !req.get) return "/";
631
- var ports = "";
632
- const host = req.get("host");
633
- if (typeof host === "string") {
634
- const hosts = host.split(":");
635
- if (hosts.length > 1) ports = `:${hosts[1]}`;
636
- }
637
- return `${req.protocol}://${req.hostname}${ports}/`;
638
- };
639
-
640
- /**
641
- * Check email mask
642
- * @function
643
- * @param {string} email
644
- * @returns {boolean}
645
- */
646
- const check_email_mask = contract(is.fun(is.str, is.bool), (email) => {
647
- const { getState } = require("../db/state");
648
-
649
- const cfg = getState().getConfig("email_mask", "");
650
- if (cfg) {
651
- return email.endsWith(cfg);
652
- } else return true;
653
- });
654
-
655
- /**
656
- * Set multitenancy cfg flag
657
- * @function
658
- * @param {boolean} val
659
- * @returns {void}
660
- */
661
- const set_multitenancy_cfg = contract(is.fun(is.bool, is.undefined), (val) => {
662
- const cfg = getConfigFile();
663
- cfg.multi_tenant = val;
664
- fs.writeFileSync(configFilePath, JSON.stringify(cfg, null, 2));
665
- });
666
-
667
- module.exports = {
668
- getConfig,
669
- getAllConfig,
670
- setConfig,
671
- getAllConfigOrDefaults,
672
- deleteConfig,
673
- configTypes,
674
- remove_from_menu,
675
- available_languages,
676
- isFixedConfig,
677
- get_latest_npm_version,
678
- get_base_url,
679
- check_email_mask,
680
- };