@saltcorn/data 0.6.2-beta.1 → 0.6.2-beta.5

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 +610 -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 +180 -0
  286. package/dist/models/config.d.ts.map +1 -0
  287. package/dist/models/config.js +758 -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 +390 -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 +34 -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 -197
  482. package/base-plugin/fileviews.js +0 -65
  483. package/base-plugin/types.js +0 -1154
  484. package/base-plugin/viewtemplates/edit.js +0 -672
  485. package/base-plugin/viewtemplates/feed.js +0 -434
  486. package/base-plugin/viewtemplates/filter.js +0 -358
  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 -652
  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 -63
  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 -276
  516. package/models/field.js +0 -746
  517. package/models/fieldrepeat.js +0 -96
  518. package/models/file.js +0 -234
  519. package/models/form.js +0 -169
  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 -255
  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 -1211
  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 -622
  533. package/models/workflow.js +0 -205
  534. package/plugin-helper.js +0 -1311
  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 -243
  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
@@ -0,0 +1,141 @@
1
+ /**
2
+ * @param {object} opts
3
+ * @param {object} opts.row
4
+ * @param {object} opts.table
5
+ * @param {object} opts.channel
6
+ * @param {object} opts.configuration
7
+ * @param {object} opts.user
8
+ * @param {...*} opts.rest
9
+ * @returns {Promise<object>}
10
+ */
11
+ declare function run_code({ row, table, channel, configuration: { code, run_where }, user, ...rest }: {
12
+ row: object;
13
+ table: object;
14
+ channel: object;
15
+ configuration: object;
16
+ user: object;
17
+ rest: any[];
18
+ }): Promise<object>;
19
+ export namespace blocks {
20
+ export const disableInBuilder: boolean;
21
+ export const disableInList: boolean;
22
+ export const configFields: {
23
+ name: string;
24
+ input_type: string;
25
+ }[];
26
+ export { run_code as run };
27
+ }
28
+ export namespace emit_event {
29
+ export function configFields_1(): object[];
30
+ export { configFields_1 as configFields };
31
+ export function run({ row, configuration: { eventType, channel, payload }, user, }: {
32
+ row: object;
33
+ configuration: object;
34
+ user: object;
35
+ }): Promise<void>;
36
+ }
37
+ export namespace webhook {
38
+ const configFields_2: ({
39
+ name: string;
40
+ label: string;
41
+ type: string;
42
+ sublabel: string;
43
+ fieldview?: undefined;
44
+ } | {
45
+ name: string;
46
+ label: string;
47
+ sublabel: string;
48
+ type: string;
49
+ fieldview: string;
50
+ })[];
51
+ export { configFields_2 as configFields };
52
+ export function run_1({ row, configuration: { url, body } }: {
53
+ url: string;
54
+ body: object;
55
+ }): Promise<object>;
56
+ export { run_1 as run };
57
+ }
58
+ export namespace find_or_create_dm_room {
59
+ export function configFields_3(): Promise<object[]>;
60
+ export { configFields_3 as configFields };
61
+ export function run_2({ row, table, configuration: { viewname }, user }: {
62
+ row: object;
63
+ table: any;
64
+ configuration: object;
65
+ user: object;
66
+ }): Promise<object>;
67
+ export { run_2 as run };
68
+ }
69
+ export namespace send_email {
70
+ export function configFields_4({ table }: {
71
+ table: object;
72
+ }): Promise<object[]>;
73
+ export { configFields_4 as configFields };
74
+ export const requireRow: boolean;
75
+ export function run_3({ row, table, configuration: { viewname, subject, to_email, to_email_field, to_email_fixed, }, user, }: {
76
+ row: object;
77
+ table: object;
78
+ configuration: object;
79
+ user: object;
80
+ }): Promise<object>;
81
+ export { run_3 as run };
82
+ }
83
+ export namespace insert_joined_row {
84
+ export function configFields_5({ table }: {
85
+ table: object;
86
+ }): Promise<object[]>;
87
+ export { configFields_5 as configFields };
88
+ const requireRow_1: boolean;
89
+ export { requireRow_1 as requireRow };
90
+ export function run_4({ row, table, configuration: { joined_table }, user }: {
91
+ row: object;
92
+ table: object;
93
+ configuration: object;
94
+ user: object;
95
+ }): Promise<object>;
96
+ export { run_4 as run };
97
+ }
98
+ export namespace duplicate_row {
99
+ export function configFields_6(): Promise<object[]>;
100
+ export { configFields_6 as configFields };
101
+ const requireRow_2: boolean;
102
+ export { requireRow_2 as requireRow };
103
+ export function run_5({ row, table, user }: {
104
+ row: object;
105
+ table: object;
106
+ user: any;
107
+ }): Promise<object>;
108
+ export { run_5 as run };
109
+ }
110
+ export namespace recalculate_stored_fields {
111
+ export function configFields_7({ table }: {
112
+ table: object;
113
+ }): Promise<object[]>;
114
+ export { configFields_7 as configFields };
115
+ export function run_6({ configuration: { table } }: {
116
+ configuration: object;
117
+ }): Promise<void>;
118
+ export { run_6 as run };
119
+ }
120
+ export namespace insert_any_row {
121
+ export function configFields_8({ table }: {
122
+ table: any;
123
+ }): Promise<object[]>;
124
+ export { configFields_8 as configFields };
125
+ export function run_7({ row, configuration: { row_expr, table }, user, ...rest }: {
126
+ row: object;
127
+ configuration: object;
128
+ user: object;
129
+ rest: any;
130
+ }): Promise<boolean | object>;
131
+ export { run_7 as run };
132
+ }
133
+ export namespace run_js_code {
134
+ export function configFields_9({ table }: {
135
+ table: object;
136
+ }): Promise<object[]>;
137
+ export { configFields_9 as configFields };
138
+ export { run_code as run };
139
+ }
140
+ export {};
141
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../base-plugin/actions.js"],"names":[],"mappings":"AA6BA;;;;;;;;;GASG;AACH;IARwB,GAAG,EAAhB,MAAM;IACO,KAAK,EAAlB,MAAM;IACO,OAAO,EAApB,MAAM;IACO,aAAa,EAA1B,MAAM;IACO,IAAI,EAAjB,MAAM;IACK,IAAI;IACb,QAAQ,MAAM,CAAC,CAqD3B;;;;;;;;;;;IAqCiB,2CAqBb;;IAQI;;;;sBAWJ;;;;;;;;;;;;;;;;;IA8BI;;;wBAMJ;;;;IAYa,oDAeb;;IAUI;;;;;wBAyCJ;;;;IAca;;0BA4Db;;;IAUI;;;;;wBAkDJ;;;;IAca;;0BAYb;;;;IAUI;;;;;wBAeJ;;;;IAYa,oDAAQ;;;;IASjB;;;;wBAMJ;;;;IAca;;0BAWb;;IAMI;;sBAGJ;;;;IAca;;0BAkBb;;IASI;;;;;kCAWJ;;;;IAca;;0BA4Bb"}
@@ -0,0 +1,551 @@
1
+ "use strict";
2
+ /**
3
+ * Action description
4
+ * @category saltcorn-data
5
+ * @module base-plugin/actions
6
+ * @subcategory base-plugin
7
+ */
8
+ const fetch = require("node-fetch");
9
+ const vm = require("vm");
10
+ const Table = require("../models/table");
11
+ const View = require("../models/view");
12
+ const { getState } = require("../db/state");
13
+ const User = require("../models/user");
14
+ const Trigger = require("../models/trigger");
15
+ const { getMailTransport, transformBootstrapEmail, } = require("../models/email");
16
+ const { mockReqRes } = require("../tests/mocks");
17
+ const { get_async_expression_function, recalculate_for_stored, } = require("../models/expression");
18
+ const { div, code } = require("@saltcorn/markup/tags");
19
+ const { sleep } = require("../utils");
20
+ const db = require("../db");
21
+ //action use cases: field modify, like/rate (insert join), notify, send row to webhook
22
+ // todo add translation
23
+ /**
24
+ * @param {object} opts
25
+ * @param {object} opts.row
26
+ * @param {object} opts.table
27
+ * @param {object} opts.channel
28
+ * @param {object} opts.configuration
29
+ * @param {object} opts.user
30
+ * @param {...*} opts.rest
31
+ * @returns {Promise<object>}
32
+ */
33
+ const run_code = async ({ row, table, channel, configuration: { code, run_where }, user, ...rest }) => {
34
+ if (run_where === "Client page")
35
+ return { eval_js: code };
36
+ const Actions = {};
37
+ Object.entries(getState().actions).forEach(([k, v]) => {
38
+ Actions[k] = (args = {}) => {
39
+ v.run({ row, table, user, configuration: args, ...rest, ...args });
40
+ };
41
+ });
42
+ const trigger_actions = await Trigger.find({
43
+ when_trigger: { or: ["API call", "Never"] },
44
+ });
45
+ for (const trigger of trigger_actions) {
46
+ const state_action = getState().actions[trigger.action];
47
+ Actions[trigger.name] = (args = {}) => {
48
+ state_action.run({
49
+ row,
50
+ table,
51
+ configuration: trigger.configuration,
52
+ user,
53
+ ...rest,
54
+ ...args,
55
+ });
56
+ };
57
+ }
58
+ const emitEvent = (eventType, channel, payload) => Trigger.emitEvent(eventType, channel, user, payload);
59
+ const fetchJSON = async (...args) => await (await fetch(...args)).json();
60
+ const f = vm.runInNewContext(`async () => {${code}}`, {
61
+ Table,
62
+ table,
63
+ row,
64
+ user,
65
+ console,
66
+ Actions,
67
+ emitEvent,
68
+ sleep,
69
+ fetchJSON,
70
+ fetch,
71
+ channel: table ? table.name : channel,
72
+ ...(row || {}),
73
+ ...getState().function_context,
74
+ ...rest,
75
+ });
76
+ return await f();
77
+ };
78
+ module.exports = {
79
+ /**
80
+ * @namespace
81
+ * @category saltcorn-data
82
+ * @subcategory actions
83
+ */
84
+ blocks: {
85
+ disableInBuilder: true,
86
+ disableInList: true,
87
+ configFields: [
88
+ {
89
+ name: "workspace",
90
+ input_type: "hidden",
91
+ },
92
+ {
93
+ name: "code",
94
+ input_type: "hidden",
95
+ },
96
+ ],
97
+ /**
98
+ * @type {base-plugin/actions~run_code}
99
+ * @see base-plugin/actions~run_code
100
+ */
101
+ run: run_code,
102
+ },
103
+ /**
104
+ * @namespace
105
+ * @category saltcorn-data
106
+ * @subcategory actions
107
+ */
108
+ emit_event: {
109
+ /**
110
+ * @returns {object[]}
111
+ */
112
+ configFields: () => [
113
+ {
114
+ name: "eventType",
115
+ label: "Event type",
116
+ required: true,
117
+ input_type: "select",
118
+ options: Trigger.when_options,
119
+ },
120
+ {
121
+ name: "channel",
122
+ label: "Channel",
123
+ type: "String",
124
+ fieldview: "textarea",
125
+ },
126
+ {
127
+ name: "payload",
128
+ label: "Payload JSON",
129
+ sublabel: "Leave blank to use row from table",
130
+ type: "String",
131
+ fieldview: "textarea",
132
+ },
133
+ ],
134
+ /**
135
+ * @param {object} opts
136
+ * @param {object} opts.row
137
+ * @param {object} opts.configuration
138
+ * @param {object} opts.user
139
+ * @returns {Promise<void>}
140
+ */
141
+ run: async ({ row, configuration: { eventType, channel, payload }, user, }) => {
142
+ return await Trigger.emitEvent(eventType, channel, user, payload ? JSON.parse(payload) : row);
143
+ },
144
+ },
145
+ /**
146
+ * @namespace
147
+ * @category saltcorn-data
148
+ * @subcategory actions
149
+ */
150
+ webhook: {
151
+ configFields: [
152
+ {
153
+ name: "url",
154
+ label: "URL",
155
+ type: "String",
156
+ sublabel: "Trigger will call specified URL",
157
+ },
158
+ {
159
+ name: "body",
160
+ label: "JSON body",
161
+ sublabel: "Leave blank to use row from table",
162
+ type: "String",
163
+ fieldview: "textarea", // I think that textarea is better
164
+ },
165
+ ],
166
+ /**
167
+ * @param {object} opts
168
+ * @param {string} opts.url
169
+ * @param {object} opts.body
170
+ * @returns {Promise<object>}
171
+ */
172
+ run: async ({ row, configuration: { url, body } }) => {
173
+ return await fetch(url, {
174
+ method: "post",
175
+ body: body || JSON.stringify(row),
176
+ headers: { "Content-Type": "application/json" },
177
+ });
178
+ },
179
+ },
180
+ /**
181
+ * @namespace
182
+ * @category saltcorn-data
183
+ * @subcategory actions
184
+ */
185
+ find_or_create_dm_room: {
186
+ /**
187
+ * @returns {Promise<object[]>}
188
+ */
189
+ configFields: async () => {
190
+ const views = await View.find_all_views_where(({ viewrow }) => viewrow.viewtemplate === "Room");
191
+ const view_opts = views.map((v) => v.name);
192
+ return [
193
+ {
194
+ name: "viewname",
195
+ label: "Room view",
196
+ sublabel: "Select a view with the Room viewtemplate",
197
+ input_type: "select",
198
+ options: view_opts,
199
+ },
200
+ ];
201
+ },
202
+ /**
203
+ * @param {object} opts
204
+ * @param {object} opts.row
205
+ * @param {*} opts.table
206
+ * @param {object} opts.configuration
207
+ * @param {object} opts.user
208
+ * @returns {Promise<object>}
209
+ */
210
+ run: async ({ row, table, configuration: { viewname }, user }) => {
211
+ const view = await View.findOne({ name: viewname });
212
+ const { participant_field } = view.configuration;
213
+ const [part_table_name, part_key_to_room, part_user_field,] = participant_field.split(".");
214
+ const roomtable = Table.findOne({ id: view.table_id });
215
+ const parttable = Table.findOne({ name: part_table_name });
216
+ //find a room that has both participants
217
+ // select id from rooms r where uid1 in (select id from participants where...) and
218
+ const { rows } = await db.query(`with my_rooms as (select "${part_key_to_room}" from "${db.getTenantSchema()}"."${db.sqlsanitize(part_table_name)}" where "${part_user_field}" = $1)
219
+ select * from "${db.getTenantSchema()}"."${db.sqlsanitize(roomtable.name)}" r where r.id in (select "${part_key_to_room}" from my_rooms)
220
+ and $2 in (select "${part_user_field}" from "${db.getTenantSchema()}"."${db.sqlsanitize(part_table_name)}" where "${part_key_to_room}" = r.id)`, [user.id, row.id]);
221
+ if (rows.length > 0) {
222
+ return { goto: `/view/${viewname}?id=${rows[0].id}` };
223
+ }
224
+ else {
225
+ //create room
226
+ const room_id = await roomtable.insertRow({});
227
+ await parttable.insertRow({
228
+ [part_user_field]: user.id,
229
+ [part_key_to_room]: room_id,
230
+ });
231
+ await parttable.insertRow({
232
+ [part_user_field]: row.id,
233
+ [part_key_to_room]: room_id,
234
+ });
235
+ return { goto: `/view/${viewname}?id=${room_id}` };
236
+ }
237
+ },
238
+ },
239
+ /**
240
+ * @namespace
241
+ * @category saltcorn-data
242
+ * @subcategory actions
243
+ */
244
+ send_email: {
245
+ /**
246
+ * @param {object} opts
247
+ * @param {object} opts.table
248
+ * @returns {Promise<object[]>}
249
+ */
250
+ configFields: async ({ table }) => {
251
+ if (!table)
252
+ return [];
253
+ const views = await View.find_table_views_where(table, ({ viewtemplate }) => viewtemplate.runMany || viewtemplate.renderRows);
254
+ const view_opts = views.map((v) => v.name);
255
+ const fields = await table.getFields();
256
+ const field_opts = fields
257
+ .filter((f) => (f.type && f.type.name === "String") || f.reftable_name === "users")
258
+ .map((f) => f.name);
259
+ return [
260
+ {
261
+ name: "viewname",
262
+ label: "View to send",
263
+ sublabel: "Select a view that can render a single record - for instance, of the Show template.",
264
+ input_type: "select",
265
+ options: view_opts,
266
+ },
267
+ {
268
+ name: "to_email",
269
+ label: "Recipient email address",
270
+ sublabel: "Select email addresses for send email. Choose option to get more information",
271
+ input_type: "select",
272
+ required: true,
273
+ options: ["Fixed", "User", "Field"],
274
+ },
275
+ {
276
+ name: "to_email_field",
277
+ label: "Field with email address",
278
+ sublabel: "Field with email address a String, or Key to user who will receive email",
279
+ input_type: "select",
280
+ options: field_opts,
281
+ showIf: { to_email: "Field" },
282
+ },
283
+ {
284
+ name: "to_email_fixed",
285
+ label: "Fixed address",
286
+ sublabel: "Email address to send emails",
287
+ type: "String",
288
+ showIf: { to_email: "Fixed" },
289
+ },
290
+ {
291
+ name: "subject",
292
+ label: "Subject",
293
+ sublabel: "Subject of email",
294
+ type: "String",
295
+ required: true,
296
+ },
297
+ ];
298
+ },
299
+ requireRow: true,
300
+ /**
301
+ * @param {object} opts
302
+ * @param {object} opts.row
303
+ * @param {object} opts.table
304
+ * @param {object} opts.configuration
305
+ * @param {object} opts.user
306
+ * @returns {Promise<object>}
307
+ */
308
+ run: async ({ row, table, configuration: { viewname, subject, to_email, to_email_field, to_email_fixed, }, user, }) => {
309
+ let to_addr;
310
+ switch (to_email) {
311
+ case "Fixed":
312
+ to_addr = to_email_fixed;
313
+ break;
314
+ case "User":
315
+ to_addr = user.email;
316
+ break;
317
+ case "Field":
318
+ const fields = await table.getFields();
319
+ const field = fields.find((f) => f.name === to_email_field);
320
+ if (field && field.type.name === "String")
321
+ to_addr = row[to_email_field];
322
+ else if (field && field.reftable_name === "users") {
323
+ const refuser = await User.findOne({ id: row[to_email_field] });
324
+ to_addr = refuser.email;
325
+ }
326
+ break;
327
+ }
328
+ const view = await View.findOne({ name: viewname });
329
+ const htmlBs = await view.run({ id: row.id }, mockReqRes);
330
+ const html = await transformBootstrapEmail(htmlBs);
331
+ console.log("Sending email from %s to %s with subject %s to_email", getState().getConfig("email_from"), to_addr, subject, to_addr);
332
+ const email = {
333
+ from: getState().getConfig("email_from"),
334
+ to: to_addr,
335
+ subject,
336
+ html,
337
+ };
338
+ //console.log(email);
339
+ await getMailTransport().sendMail(email);
340
+ return { notify: `E-mail sent to ${to_addr}` };
341
+ },
342
+ },
343
+ /**
344
+ * @namespace
345
+ * @category saltcorn-data
346
+ * @subcategory actions
347
+ */
348
+ insert_joined_row: {
349
+ /**
350
+ * @param {object} opts
351
+ * @param {object} opts.table
352
+ * @returns {Promise<object[]>}
353
+ */
354
+ configFields: async ({ table }) => {
355
+ if (!table)
356
+ return [];
357
+ const { child_field_list } = await table.get_child_relations();
358
+ return [
359
+ {
360
+ name: "joined_table",
361
+ label: "Relation",
362
+ sublabel: "Relation",
363
+ input_type: "select",
364
+ options: child_field_list,
365
+ },
366
+ ];
367
+ },
368
+ requireRow: true,
369
+ /**
370
+ * @param {object} opts
371
+ * @param {object} opts.row
372
+ * @param {object} opts.table
373
+ * @param {object} opts.configuration
374
+ * @param {object} opts.user
375
+ * @returns {Promise<object>}
376
+ */
377
+ run: async ({ row, table, configuration: { joined_table }, user }) => {
378
+ const [join_table_name, join_field] = joined_table.split(".");
379
+ const joinTable = await Table.findOne({ name: join_table_name });
380
+ const fields = await joinTable.getFields();
381
+ const newRow = { [join_field]: row.id };
382
+ for (const field of fields) {
383
+ if (field.type === "Key" &&
384
+ field.reftable_name === "users" &&
385
+ user &&
386
+ user.id)
387
+ newRow[field.name] = user.id;
388
+ }
389
+ return await joinTable.insertRow(newRow);
390
+ },
391
+ },
392
+ /**
393
+ * @namespace
394
+ * @category saltcorn-data
395
+ * @subcategory actions
396
+ */
397
+ duplicate_row: {
398
+ /**
399
+ * @returns {Promise<object[]>}
400
+ */
401
+ configFields: () => [],
402
+ requireRow: true,
403
+ /**
404
+ * @param {object} opts
405
+ * @param {object} opts.row
406
+ * @param {object} opts.table
407
+ * @param {*} opts.user
408
+ * @returns {Promise<object>}
409
+ */
410
+ run: async ({ row, table, user }) => {
411
+ const newRow = { ...row };
412
+ await table.getFields();
413
+ delete newRow[table.pk_name];
414
+ await table.insertRow(newRow);
415
+ return { reload_page: true };
416
+ },
417
+ },
418
+ /**
419
+ * @namespace
420
+ * @category saltcorn-data
421
+ * @subcategory actions
422
+ */
423
+ recalculate_stored_fields: {
424
+ /**
425
+ * @param {object} opts
426
+ * @param {object} opts.table
427
+ * @returns {Promise<object[]>}
428
+ */
429
+ configFields: async ({ table }) => {
430
+ const tables = await Table.find();
431
+ return [
432
+ {
433
+ name: "table",
434
+ label: "Table",
435
+ sublabel: "Table on which to recalculate stored calculated fields",
436
+ input_type: "select",
437
+ options: tables.map((t) => t.name),
438
+ },
439
+ ];
440
+ },
441
+ /**
442
+ * @param {object} opts
443
+ * @param {object} opts.configuration
444
+ * @returns {Promise<void>}
445
+ */
446
+ run: async ({ configuration: { table } }) => {
447
+ const table_for_recalc = await Table.findOne({ name: table });
448
+ recalculate_for_stored(table_for_recalc);
449
+ },
450
+ },
451
+ /**
452
+ * @namespace
453
+ * @category saltcorn-data
454
+ * @subcategory actions
455
+ */
456
+ insert_any_row: {
457
+ /**
458
+ * @param {object} opts
459
+ * @param {*} opts.table
460
+ * @returns {Promise<object[]>}
461
+ */
462
+ configFields: async ({ table }) => {
463
+ const tables = await Table.find();
464
+ return [
465
+ {
466
+ name: "table",
467
+ label: "Table",
468
+ sublabel: "Table to insert rows in",
469
+ input_type: "select",
470
+ options: tables.map((t) => t.name),
471
+ },
472
+ {
473
+ name: "row_expr",
474
+ label: "Row expression",
475
+ sublabel: "Expression for JavaScript object",
476
+ type: "String",
477
+ fieldview: "textarea",
478
+ },
479
+ ];
480
+ },
481
+ /**
482
+ * @param {object} opts
483
+ * @param {object} opts.row
484
+ * @param {object} opts.configuration
485
+ * @param {object} opts.user
486
+ * @param {...*} opts.rest
487
+ * @returns {Promise<object|boolean>}
488
+ */
489
+ run: async ({ row, configuration: { row_expr, table }, user, ...rest }) => {
490
+ const f = get_async_expression_function(row_expr, [], {
491
+ row: row || {},
492
+ user,
493
+ console,
494
+ });
495
+ const calcrow = await f({});
496
+ const table_for_insert = await Table.findOne({ name: table });
497
+ const res = await table_for_insert.tryInsertRow(calcrow, user && user.id);
498
+ if (res.error)
499
+ return res;
500
+ else
501
+ return true;
502
+ },
503
+ },
504
+ /**
505
+ * @namespace
506
+ * @category saltcorn-data
507
+ * @subcategory actions
508
+ */
509
+ run_js_code: {
510
+ /**
511
+ * @param {object} opts
512
+ * @param {object} opts.table
513
+ * @returns {Promise<object[]>}
514
+ */
515
+ configFields: async ({ table }) => {
516
+ const fields = table ? (await table.getFields()).map((f) => f.name) : [];
517
+ const vars = [
518
+ ...(table ? ["row"] : []),
519
+ "user",
520
+ "console",
521
+ "Actions",
522
+ "Table",
523
+ ...(table ? ["table"] : []),
524
+ ...fields,
525
+ ]
526
+ .map((f) => code(f))
527
+ .join(", ");
528
+ return [
529
+ {
530
+ name: "code",
531
+ label: "Code",
532
+ input_type: "code",
533
+ attributes: { mode: "application/javascript" },
534
+ sublabel: div("Variables in scope: ", vars),
535
+ },
536
+ {
537
+ name: "run_where",
538
+ label: "Run where",
539
+ input_type: "select",
540
+ options: ["Server", "Client page"],
541
+ },
542
+ ];
543
+ },
544
+ /**
545
+ * @type {base-plugin/actions~run_code}
546
+ * @see base-plugin/actions~run_code
547
+ **/
548
+ run: run_code,
549
+ },
550
+ };
551
+ //# sourceMappingURL=actions.js.map