@saltcorn/data 0.6.2-beta.1 → 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 +32 -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
package/models/crash.js DELETED
@@ -1,126 +0,0 @@
1
- /**
2
- * Crash Database Access Layer
3
- * @category saltcorn-data
4
- * @module models/crash
5
- * @subcategory models
6
- */
7
- const db = require("../db");
8
- const moment = require("moment");
9
- const { contract, is } = require("contractis");
10
-
11
- /**
12
- * Crash Class
13
- * @category saltcorn-data
14
- */
15
- class Crash {
16
- /**
17
- * Crash constructor
18
- * @param {object} o
19
- */
20
- constructor(o) {
21
- this.id = o.id;
22
- this.stack = o.stack;
23
- this.message = o.message;
24
- this.occur_at = ["string", "number"].includes(typeof o.occur_at)
25
- ? new Date(o.occur_at)
26
- : o.occur_at;
27
- this.tenant = o.tenant;
28
- this.user_id = o.user_id;
29
- this.body = o.body;
30
- this.url = o.url;
31
- this.headers =
32
- typeof o.headers === "string" ? JSON.parse(o.headers) : o.headers;
33
- contract.class(this);
34
- }
35
-
36
- /**
37
- * @param {object} where
38
- * @param {object} selopts
39
- * @returns {Promise<Crash[]>}
40
- */
41
- static async find(where, selopts) {
42
- const us = await db.select("_sc_errors", where, selopts);
43
- return us.map((u) => new Crash(u));
44
- }
45
-
46
- /**
47
- * @param {object} where
48
- * @returns {Promise<Crash>}
49
- */
50
- static async findOne(where) {
51
- const u = await db.selectOne("_sc_errors", where);
52
- return new Crash(u);
53
- }
54
-
55
- /**
56
- * @type {string}
57
- */
58
- get reltime() {
59
- return moment(this.occur_at).fromNow();
60
- }
61
-
62
- /**
63
- * @param {object} where
64
- * @returns {Promise<number>}
65
- */
66
- static async count(where) {
67
- return await db.count("_sc_errors", where || {});
68
- }
69
-
70
- /**
71
- * @type {string}
72
- */
73
- get msg_short() {
74
- return this.message.length > 90
75
- ? this.message.substring(0, 90)
76
- : this.message;
77
- }
78
-
79
- /**
80
- * @param {object} err
81
- * @param {object} [req = {}]
82
- * @returns {Promise<void>}
83
- */
84
- static async create(err, req = {}) {
85
- const schema = db.getTenantSchema();
86
- const payload = {
87
- stack: err.stack,
88
- message: err.message,
89
- occur_at: new Date(),
90
- tenant: schema,
91
- user_id: req.user ? req.user.id : null,
92
- body: req.body ? { body: req.body } : null,
93
- url: req.url,
94
- headers: req.headers,
95
- };
96
- await db.runWithTenant(db.connectObj.default_schema, async () => {
97
- await db.insert("_sc_errors", payload);
98
- });
99
- const Trigger = require("./trigger");
100
-
101
- Trigger.emitEvent("Error", null, req.user, payload);
102
- }
103
- }
104
-
105
- Crash.contract = {
106
- variables: {
107
- id: is.maybe(is.posint),
108
- user_id: is.maybe(is.posint),
109
- stack: is.str,
110
- message: is.str,
111
- tenant: is.str,
112
- url: is.str,
113
- occur_at: is.class("Date"),
114
- headers: is.obj(),
115
- },
116
- methods: {
117
- reltime: is.getter(is.str),
118
- },
119
- static_methods: {
120
- find: is.fun(is.obj(), is.promise(is.array(is.class("Crash")))),
121
- findOne: is.fun(is.obj(), is.promise(is.class("Crash"))),
122
- create: is.fun([is.obj(), is.obj()], is.promise(is.any)),
123
- },
124
- };
125
-
126
- module.exports = Crash;
@@ -1,195 +0,0 @@
1
- /**
2
- * DB Tables discovery to Saltcorn tables.
3
- * @category saltcorn-data
4
- * @module models/discovery
5
- * @subcategory models
6
- */
7
- const db = require("../db");
8
- const { getState } = require("../db/state");
9
- const { available_languages } = require("./config");
10
- const Table = require("./table");
11
-
12
- // create table discmetable(id serial primary key, name text, age integer not null); ALTER TABLE discmetable OWNER TO tomn;
13
- /**
14
- * List of discoverable tables.
15
- * Returns all tables that can be imported to Saltcorn from current tenant database schema.
16
- * The tables with name started with "_sc_" and tables imported to Saltcorn are ignored.
17
- * @param {string} schema0 - current tenant db schema
18
- * @returns {Promise<object[]>} all tables that can be imported to Saltcorn from current tenant database schema
19
- */
20
- const discoverable_tables = async (schema0) => {
21
- const schema = schema0 || db.getTenantSchema();
22
- const {
23
- rows,
24
- } = await db.query(
25
- "select * from information_schema.tables where table_schema=$1 order by table_name",
26
- [schema]
27
- );
28
- const myTables = await Table.find({});
29
- const myTableNames = myTables.map((t) => t.name);
30
- const discoverable = rows.filter(
31
- (t) =>
32
- !(myTableNames.includes(t.table_name) || t.table_name.startsWith("_sc_"))
33
- );
34
- return discoverable;
35
- };
36
- /**
37
- * List all views in current tenant db schema
38
- * @param {string} schema0 - current tenant db schema
39
- * @returns {Promise<object[]>} Return list of views
40
- */
41
- const get_existing_views = async (schema0) => {
42
- const schema = schema0 || db.getTenantSchema();
43
- const {
44
- rows,
45
- } = await db.query(
46
- "select * from information_schema.views where table_schema=$1",
47
- [schema]
48
- );
49
- return rows;
50
- };
51
- /**
52
- * Mapping SQL Type to Saltcorn type
53
- * @param {string} sql_name - SQL type name
54
- * @returns {string|void} return Saltcorn type
55
- */
56
- const findType = (sql_name) => {
57
- const fixed = {
58
- integer: "Integer",
59
- smallint: "Integer",
60
- bigint: "Integer",
61
- numeric: "Float", // required pres
62
- character: "String", // char - if length is not defined is 1 else length needs to be defined
63
- "character varying": "String", // varchar - this type can have length
64
- //varchar: "String",
65
- date: "Date"
66
- // TBD Implement time type in Saltcorn
67
- // "time without time zone": "Date",
68
- // TBD Implement timestamp type in Saltcorn
69
- // "timestamp without time zone": "Date",
70
- // TBD Implement time interval in Saltcorn
71
- // interval: "Date"
72
- }[sql_name];
73
- if (fixed) return fixed;
74
- const t = Object.entries(getState().types).find(
75
- ([k, v]) => v.sql_name === sql_name
76
- );
77
- if (t) {
78
- return t[0];
79
- }
80
- };
81
- /**
82
- * Discover tables definitions
83
- * @param {string[]} tableNames - list of table names
84
- * @param {string} schema0 - db schema
85
- * @returns {Promise<object>}
86
- */
87
- const discover_tables = async (tableNames, schema0) => {
88
- const schema = schema0 || db.getTenantSchema();
89
- const packTables = [];
90
-
91
- for (const tnm of tableNames) {
92
- const {
93
- rows,
94
- } = await db.query(
95
- "select * from information_schema.columns where table_schema=$1 and table_name=$2",
96
- [schema, tnm]
97
- );
98
- // TBD add logic about column length, scale, etc
99
- const fields = rows
100
- .map((c) => ({
101
- name: c.column_name,
102
- label: c.column_name,
103
- type: findType(c.data_type),
104
- required: c.is_nullable === "NO",
105
- }))
106
- .filter((f) => f.type);
107
-
108
- // try to find column name for primary key of table
109
- const pkq = await db.query(
110
- `SELECT c.column_name
111
- FROM information_schema.table_constraints tc
112
- JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
113
- JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
114
- AND tc.table_name = c.table_name AND ccu.column_name = c.column_name
115
- WHERE constraint_type = 'PRIMARY KEY' and tc.table_schema=$1 and tc.table_name = $2;`,
116
- [schema, tnm]
117
- );
118
- // set primary_key and unique attributes for column
119
- pkq.rows.forEach(({ column_name }) => {
120
- const field = fields.find((f) => f.name === column_name);
121
- field.primary_key = true;
122
- field.is_unique = true;
123
- });
124
- // try to find foreign keys
125
- const fkq = await db.query(
126
- `SELECT
127
- tc.table_schema,
128
- tc.constraint_name,
129
- tc.table_name,
130
- kcu.column_name,
131
- ccu.table_schema AS foreign_table_schema,
132
- ccu.table_name AS foreign_table_name,
133
- ccu.column_name AS foreign_column_name
134
- FROM
135
- information_schema.table_constraints AS tc
136
- JOIN information_schema.key_column_usage AS kcu
137
- ON tc.constraint_name = kcu.constraint_name
138
- AND tc.table_schema = kcu.table_schema
139
- JOIN information_schema.constraint_column_usage AS ccu
140
- ON ccu.constraint_name = tc.constraint_name
141
- AND ccu.table_schema = tc.table_schema
142
- WHERE tc.constraint_type = 'FOREIGN KEY' and tc.table_schema=$1 AND tc.table_name=$2;`,
143
- [schema, tnm]
144
- );
145
- // construct foreign key relations
146
- fkq.rows.forEach(
147
- ({ column_name, foreign_table_name, foreign_column_name }) => {
148
- const field = fields.find((f) => f.name === column_name);
149
- field.type = "Key";
150
- field.reftable_name = foreign_table_name;
151
- field.refname = foreign_column_name;
152
- }
153
- );
154
-
155
- packTables.push({ name: tnm, fields, min_role_read: 1, min_role_write: 1 });
156
- }
157
- packTables.forEach((t) => {
158
- t.fields.forEach((f) => {
159
- if (f.type === "Key") {
160
- const reftable = packTables.find(
161
- (reft) => reft.name === f.reftable_name
162
- );
163
- const refpk = reftable.fields.find((rtf) => rtf.primary_key);
164
- f.reftype = refpk.type;
165
- }
166
- });
167
- });
168
- return { tables: packTables };
169
- };
170
- /**
171
- * Add discovered tables to Saltcorn
172
- * @param {object} pack - table definition
173
- * @returns {Promise<void>}
174
- */
175
- const implement_discovery = async (pack) => {
176
- for (const table of pack.tables) {
177
- const { fields, ...tblRow } = table;
178
- const id = await db.insert("_sc_tables", tblRow);
179
- table.id = id;
180
- }
181
- for (const table of pack.tables) {
182
- for (const field of table.fields) {
183
- await db.insert("_sc_fields", { ...field, table_id: table.id });
184
- }
185
- }
186
- // refresh Saltcorn table list (in memory)
187
- await require("../db/state").getState().refresh_tables();
188
-
189
- };
190
- module.exports = {
191
- discoverable_tables,
192
- discover_tables,
193
- implement_discovery,
194
- get_existing_views,
195
- };
package/models/email.js DELETED
@@ -1,92 +0,0 @@
1
- /**
2
- * @category saltcorn-data
3
- * @module models/email
4
- * @subcategory models
5
- */
6
- const nodemailer = require("nodemailer");
7
- const { getState } = require("../db/state");
8
- const BootstrapEmail = require("bootstrap-email");
9
- const tmp = require("tmp-promise");
10
- const fs = require("fs").promises;
11
- const { div } = require("@saltcorn/markup/tags");
12
- const View = require("./view");
13
- const { v4: uuidv4 } = require("uuid");
14
- const db = require("../db");
15
- const { mockReqRes } = require("../tests/mocks");
16
-
17
- /**
18
- * @returns {Transporter}
19
- */
20
- const getMailTransport = () => {
21
- const port = getState().getConfig("smtp_port");
22
- const secure = getState().getConfig("smtp_secure", port === 465);
23
- return nodemailer.createTransport({
24
- host: getState().getConfig("smtp_host"),
25
- port,
26
- secure,
27
- auth: {
28
- user: getState().getConfig("smtp_username"),
29
- pass: getState().getConfig("smtp_password"),
30
- },
31
- });
32
- };
33
-
34
- /**
35
- * @param {object} bsHtml
36
- * @returns {object}
37
- */
38
- const transformBootstrapEmail = async (bsHtml) => {
39
- const filename = await tmp.tmpName();
40
- await fs.writeFile(filename, div({ class: "container" }, bsHtml));
41
-
42
- const template = new BootstrapEmail(filename);
43
- const email = template.compile();
44
- await fs.unlink(filename);
45
- return email;
46
- };
47
-
48
- /**
49
- * @param {object} user
50
- * @param {object} [req]
51
- * @returns {Promise<object>}
52
- */
53
- const send_verification_email = async (user, req) => {
54
- const verification_view_name = getState().getConfig("verification_view");
55
- if (verification_view_name) {
56
- const verification_view = await View.findOne({
57
- name: verification_view_name,
58
- });
59
- if (verification_view) {
60
- const verification_token = uuidv4();
61
- try {
62
- await db.update("users", { verification_token }, user.id);
63
- user.verification_token = verification_token;
64
- const htmlBs = await verification_view.run({ id: user.id }, mockReqRes);
65
- const html = await transformBootstrapEmail(htmlBs);
66
- const email = {
67
- from: getState().getConfig("email_from"),
68
- to: user.email,
69
- subject: "Please verify your email address",
70
- html,
71
- };
72
- await getMailTransport().sendMail(email);
73
- if (req)
74
- req.flash(
75
- "success",
76
- req.__("An email has been sent to %s to verify your address", user.email)
77
- );
78
- return true;
79
- } catch (e) {
80
- return { error: e.message };
81
- }
82
- } else return { error: "Verification form specified but not found" };
83
- } else {
84
- return { error: "Verification form not specified" };
85
- }
86
- };
87
-
88
- module.exports = {
89
- getMailTransport,
90
- transformBootstrapEmail,
91
- send_verification_email,
92
- };
@@ -1,146 +0,0 @@
1
- /**
2
- * EventLog Database Access Layer
3
- * @category saltcorn-data
4
- * @module models/eventlog
5
- * @subcategory models
6
- */
7
- const db = require("../db");
8
- const moment = require("moment");
9
-
10
- const { contract, is } = require("contractis");
11
-
12
- /**
13
- * EventLog Class
14
- * @category saltcorn-data
15
- */
16
- class EventLog {
17
- /**
18
- * EventLog constructor
19
- * @param {object} o
20
- */
21
- constructor(o) {
22
- this.id = o.id;
23
- this.event_type = o.event_type;
24
- this.channel = o.channel;
25
- this.occur_at = ["string", "number"].includes(typeof o.occur_at)
26
- ? new Date(o.occur_at)
27
- : o.occur_at;
28
- this.user_id = o.user_id;
29
- this.payload =
30
- typeof o.payload === "string" ? JSON.parse(o.payload) : o.payload;
31
- contract.class(this);
32
- }
33
-
34
- /**
35
- * @param {object} where
36
- * @param {object} selopts
37
- * @returns {Promise<EventLog[]>}
38
- */
39
- static async find(where, selopts) {
40
- const us = await db.select("_sc_event_log", where, selopts);
41
- return us.map((u) => new EventLog(u));
42
- }
43
-
44
- /**
45
- * @param {object} where
46
- * @returns {Promise<EventLog>}
47
- */
48
- static async findOne(where) {
49
- const u = await db.selectOne("_sc_event_log", where);
50
- return new EventLog(u);
51
- }
52
-
53
- /**
54
- * @param {string} id
55
- * @returns {Promise<EventLog>}
56
- */
57
- static async findOneWithUser(id) {
58
- const {
59
- rows,
60
- } = await db.query(
61
- "select el.*, u.email from _sc_event_log el left join users u on el.user_id = u.id where el.id = $1",
62
- [id]
63
- );
64
- const u = rows[0];
65
- const el = new EventLog(u);
66
- el.email = u.email;
67
- return el;
68
- }
69
-
70
- /**
71
- * @param {object} where
72
- * @returns {Promise<number>}
73
- */
74
- static async count(where) {
75
- return await db.count("_sc_event_log", where || {});
76
- }
77
-
78
- /**
79
- * @type {string}
80
- */
81
- get reltime() {
82
- return moment(this.occur_at).fromNow();
83
- }
84
-
85
- /**
86
- * @param {object} o
87
- * @returns {Promise<EventLog>}
88
- */
89
- static async create(o) {
90
- const { getState } = require("../db/state");
91
-
92
- const settings = getState().getConfig("event_log_settings", {});
93
- if (!settings[o.event_type]) return;
94
- const hasTable = EventLog.hasTable(o.event_type);
95
- if (hasTable && !settings[`${o.event_type}_${o.channel}`]) return;
96
- const hasChannel = EventLog.hasChannel(o.event_type);
97
- if (hasChannel && settings[`${o.event_type}_channel`]) {
98
- const wantChannels = settings[`${o.event_type}_channel`]
99
- .split(",")
100
- .map((s) => s.trim());
101
- if (!wantChannels.includes(o.channel)) return;
102
- }
103
- const ev = new EventLog(o);
104
- const { id, ...rest } = ev;
105
-
106
- ev.id = await db.insert("_sc_event_log", rest);
107
- return ev;
108
- }
109
-
110
- /**
111
- * @param {string} evType
112
- * @returns {boolean}
113
- */
114
- static hasTable(evType) {
115
- return ["Insert", "Update", "Delete"].includes(evType);
116
- }
117
-
118
- /**
119
- * @param {string} evType
120
- * @returns {boolean}
121
- */
122
- static hasChannel(evType) {
123
- const { getState } = require("../db/state");
124
- const t = getState().eventTypes[evType];
125
- return t && t.hasChannel;
126
- }
127
- }
128
-
129
- EventLog.contract = {
130
- variables: {
131
- id: is.maybe(is.posint),
132
- event_type: is.str,
133
- channel: is.maybe(is.str),
134
- occur_at: is.class("Date"),
135
- user_id: is.maybe(is.posint),
136
- payload: is.maybe(is.obj()),
137
- },
138
- methods: {},
139
- static_methods: {
140
- find: is.fun(is.obj(), is.promise(is.array(is.class("EventLog")))),
141
- findOne: is.fun(is.obj(), is.promise(is.class("EventLog"))),
142
- create: is.fun(is.obj(), is.promise(is.any)),
143
- },
144
- };
145
-
146
- module.exports = EventLog;