@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
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * View Database Access Layer
4
+ * @category saltcorn-data
5
+ * @module models/random
6
+ * @subcategory models
7
+ */
8
+ const View = require("./view");
9
+ const Field = require("./field");
10
+ const Table = require("./table");
11
+ const { getState } = require("../db/state");
12
+ const { generate_attributes } = require("../plugin-testing");
13
+ const { initial_config_all_fields } = require("../plugin-helper");
14
+ const { contract, is } = require("contractis");
15
+ const db = require("../db");
16
+ /**
17
+ * @param {object} [opts = {}]
18
+ * @returns {Promise<Table>}
19
+ */
20
+ const random_table = async (opts = {}) => {
21
+ const name = is
22
+ .and(is.sat((s) => db.sqlsanitize(s).length > 2), is.str)
23
+ .generate();
24
+ const table = await Table.create(name);
25
+ if (Math.random() < 0.3 && !opts.force_int_pk && !db.isSQLite) {
26
+ const [pk] = await table.getFields();
27
+ await pk.update({ type: "UUID" });
28
+ table.fields = null;
29
+ }
30
+ //fields
31
+ const nfields = is.integer({ gte: 2, lte: 10 }).generate();
32
+ const existing_field_names = ["id"];
33
+ for (let index = 0; index < nfields; index++) {
34
+ const field = await random_field(existing_field_names, table);
35
+ existing_field_names.push(field.label);
36
+ await Field.create(field);
37
+ }
38
+ //fill rows
39
+ for (let index = 0; index < 20; index++) {
40
+ await fill_table_row(table);
41
+ }
42
+ const fields = await table.getFields();
43
+ const userFields = fields.filter((f) => f.reftable_name === "users");
44
+ if (userFields.length > 0 && Math.random() > 0.5)
45
+ await table.update({ ownership_field_id: userFields[0].id });
46
+ return table;
47
+ };
48
+ /**
49
+ * @param {Table} table
50
+ * @returns {Promise<*>}
51
+ */
52
+ const fill_table_row = async (table) => {
53
+ const fields = await table.getFields();
54
+ const row = {};
55
+ for (const f of fields) {
56
+ if (!f.calculated && (f.required || is.bool.generate()) && !f.primary_key)
57
+ row[f.name] = await f.generate();
58
+ }
59
+ //console.log(fields, row);
60
+ await table.tryInsertRow(row);
61
+ };
62
+ /**
63
+ * @param {string} type
64
+ * @param {string[]} existing_fields
65
+ * @throws {Error}
66
+ * @returns {string}
67
+ */
68
+ const random_expression = (type, existing_fields) => {
69
+ const numField = existing_fields.find((f) => ["Integer", "Float"].includes(f.type));
70
+ switch (type) {
71
+ case "Bool":
72
+ if (numField)
73
+ return `${numField.name}>0`;
74
+ else
75
+ return is.one_of(["true", "false"]).generate();
76
+ case "Float":
77
+ if (numField)
78
+ return `${numField.name}+1.5`;
79
+ else
80
+ return "1.3";
81
+ case "Integer":
82
+ if (numField)
83
+ return `${numField.name}+3`;
84
+ else
85
+ return "7";
86
+ default:
87
+ throw new Error("random_expression: unknown type " + type);
88
+ }
89
+ };
90
+ /**
91
+ * @param {string[]} existing_field_names
92
+ * @param {Table} table
93
+ * @returns {Promise<Field>}
94
+ */
95
+ const random_field = async (existing_field_names, table) => {
96
+ const tables = await Table.find({});
97
+ const tables_with_data = [];
98
+ for (const t of tables) {
99
+ const n = await t.countRows();
100
+ if (n > 0)
101
+ tables_with_data.push(t);
102
+ }
103
+ const fkey_opts = [
104
+ ...tables_with_data.map((t) => `Key to ${t.name}`),
105
+ "Key to users",
106
+ "File",
107
+ ];
108
+ const type_options = getState().type_names.concat(fkey_opts || []);
109
+ const label = is
110
+ .and(is.sat((s) => s.length > 2 && !existing_field_names.includes(Field.labelToName(s))), is.str)
111
+ .generate();
112
+ const type = is.one_of(type_options).generate();
113
+ if (Math.random() < 0.2 && ["Integer", "Float", "Bool"].includes(type)) {
114
+ const stored = Math.random() < 0.5;
115
+ const existing_fields = await Field.find({
116
+ table_id: table.id,
117
+ calculated: false,
118
+ }, {
119
+ orderBy: "RANDOM()",
120
+ });
121
+ const expression = random_expression(type, existing_fields);
122
+ const f = new Field({ type, label, calculated: true, stored, expression });
123
+ f.table_id = table.id;
124
+ return f;
125
+ }
126
+ const f = new Field({ type, label });
127
+ f.table_id = table.id;
128
+ if (f.type.attributes)
129
+ f.attributes = generate_attributes(f.type.attributes, f.type.validate_attributes, table.id);
130
+ if (f.is_fkey) {
131
+ if (f.reftable_name === "users") {
132
+ f.attributes.summary_field = "email";
133
+ }
134
+ else if (f.reftable_name === "_sc_files") {
135
+ f.attributes.summary_field = "email";
136
+ }
137
+ else {
138
+ const reftable = await Table.findOne({ name: f.reftable_name });
139
+ const reffields = (await reftable.getFields()).filter((f) => !f.calculated || f.stored);
140
+ if (reffields.length > 0) {
141
+ const reff = is.one_of(reffields).generate();
142
+ f.attributes.summary_field = reff.name;
143
+ }
144
+ else {
145
+ f.attributes.summary_field = "id";
146
+ }
147
+ }
148
+ }
149
+ // unique?
150
+ if (Math.random() < 0.25 && type !== "Bool")
151
+ f.is_unique = true;
152
+ // required?
153
+ if (is.bool.generate())
154
+ f.required = true;
155
+ return f;
156
+ };
157
+ /**
158
+ * @param {Table} table
159
+ * @param {string} viewtemplate
160
+ * @returns {Promise<View>}
161
+ */
162
+ const initial_view = async (table, viewtemplate) => {
163
+ const configuration = await initial_config_all_fields(viewtemplate === "Edit")({ table_id: table.id });
164
+ //console.log(configuration);
165
+ const name = is.str.generate();
166
+ const view = await View.create({
167
+ name,
168
+ configuration,
169
+ viewtemplate,
170
+ table_id: table.id,
171
+ min_role: 10,
172
+ });
173
+ return view;
174
+ };
175
+ /**
176
+ * @param {Table} table
177
+ * @returns {Promise<object[]>}
178
+ */
179
+ const all_views = async (table) => {
180
+ const list = await initial_view(table, "List");
181
+ const edit = await initial_view(table, "Edit");
182
+ const show = await initial_view(table, "Show");
183
+ return { list, show, edit };
184
+ };
185
+ module.exports = { random_table, fill_table_row, initial_view, all_views };
186
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../models/random.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ declare type ConstructorParams = {
2
+ id: number;
3
+ role: any;
4
+ };
5
+ declare class Role {
6
+ id: number;
7
+ role: Role;
8
+ /**
9
+ * Role constructor
10
+ * @param {object} o
11
+ */
12
+ constructor(o: ConstructorParams);
13
+ /**
14
+ * @param {*} uo
15
+ * @returns {Role}
16
+ */
17
+ static create(uo: any): Promise<Role | {
18
+ error: string;
19
+ }>;
20
+ /**
21
+ * @param {*} where
22
+ * @param {*} selectopts
23
+ * @returns {Promise<Role[]>}
24
+ */
25
+ static find(where: any, selectopts: any): Promise<any>;
26
+ /**
27
+ * @param {*} where
28
+ * @returns {Promise<Role>}
29
+ */
30
+ static findOne(where: any): Promise<any>;
31
+ /**
32
+ * @returns {Promise<void>}
33
+ */
34
+ delete(): Promise<void>;
35
+ /**
36
+ * @param {*} row
37
+ * @returns {Promise<void>}
38
+ */
39
+ update(row: any): Promise<void>;
40
+ }
41
+ export = Role;
42
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../models/role.ts"],"names":[],"mappings":"AAEA,aAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAMF,cAAM,IAAI;IACR,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IAEX;;;OAGG;gBACS,CAAC,EAAE,iBAAiB;IAKhC;;;OAGG;WACiB,MAAM,CAAC,EAAE,EAAE,GAAG;;;IAYlC;;;;OAIG;WACiB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAKpD;;;OAGG;WACiB,OAAO,CAAC,KAAK,EAAE,GAAG;IAKtC;;OAEG;IACU,MAAM;IAKnB;;;OAGG;IACU,MAAM,CAAC,GAAG,EAAE,GAAG;CAG7B;AAED,SAAS,IAAI,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ const db = require("../db");
3
+ /*
4
+ * Role class
5
+ * @category saltcorn-data
6
+ */
7
+ class Role {
8
+ /**
9
+ * Role constructor
10
+ * @param {object} o
11
+ */
12
+ constructor(o) {
13
+ this.id = o.id;
14
+ this.role = o.role;
15
+ }
16
+ /**
17
+ * @param {*} uo
18
+ * @returns {Role}
19
+ */
20
+ static async create(uo) {
21
+ const u = new Role(uo);
22
+ const ex = await Role.findOne({ id: u.id });
23
+ if (ex)
24
+ return { error: `Role with this id already exists` };
25
+ await db.insert("_sc_roles", {
26
+ id: u.id,
27
+ role: u.role,
28
+ });
29
+ return u;
30
+ }
31
+ /**
32
+ * @param {*} where
33
+ * @param {*} selectopts
34
+ * @returns {Promise<Role[]>}
35
+ */
36
+ static async find(where, selectopts) {
37
+ const us = await db.select("_sc_roles", where, selectopts);
38
+ return us.map((u) => new Role(u));
39
+ }
40
+ /**
41
+ * @param {*} where
42
+ * @returns {Promise<Role>}
43
+ */
44
+ static async findOne(where) {
45
+ const u = await db.selectMaybeOne("_sc_roles", where);
46
+ return u ? new Role(u) : u;
47
+ }
48
+ /**
49
+ * @returns {Promise<void>}
50
+ */
51
+ async delete() {
52
+ const schema = db.getTenantSchemaPrefix();
53
+ await db.query(`delete FROM ${schema}_sc_roles WHERE id = $1`, [this.id]);
54
+ }
55
+ /**
56
+ * @param {*} row
57
+ * @returns {Promise<void>}
58
+ */
59
+ async update(row) {
60
+ await db.update("_sc_roles", row, this.id);
61
+ }
62
+ }
63
+ module.exports = Role;
64
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../models/role.ts"],"names":[],"mappings":";AAAA,4BAA6B;AAO7B;;;GAGG;AACH,MAAM,IAAI;IAIR;;;OAGG;IACH,YAAY,CAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAO;QAChC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;QAC7D,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAU,EAAE,UAAe;QAClD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAU;QACpC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,MAAM,yBAAyB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CAAC,GAAQ;QAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,iBAAS,IAAI,CAAC"}
@@ -0,0 +1,18 @@
1
+ export = runScheduler;
2
+ /**
3
+ * @param {object} opts
4
+ * @param {function} [opts.stop_when]
5
+ * @param {number} [opts.number]
6
+ * @param {boolean} opts.watchReaper
7
+ * @param {string} opts.port
8
+ * @param {boolean} opts.disableScheduler
9
+ * @returns {Promise<void>}
10
+ */
11
+ declare function runScheduler({ stop_when, tickSeconds, watchReaper, port, disableScheduler, }?: {
12
+ stop_when?: Function | undefined;
13
+ number?: number | undefined;
14
+ watchReaper: boolean;
15
+ port: string;
16
+ disableScheduler: boolean;
17
+ }): Promise<void>;
18
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../models/scheduler.js"],"names":[],"mappings":";AA6FA;;;;;;;;GAQG;AACH;IAP2B,SAAS;IACX,MAAM;IACN,WAAW,EAAzB,OAAO;IACM,IAAI,EAAjB,MAAM;IACQ,gBAAgB,EAA9B,OAAO;IACL,QAAQ,IAAI,CAAC,CA4DzB"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * @category saltcorn-data
4
+ * @module models/scheduler
5
+ * @subcategory models
6
+ */
7
+ const Crash = require("./crash");
8
+ const { eachTenant } = require("./tenant");
9
+ const Trigger = require("./trigger");
10
+ const db = require("../db");
11
+ const { getState } = require("../db/state");
12
+ const fetch = require("node-fetch");
13
+ const EventLog = require("./eventlog");
14
+ /**
15
+ * @param {Date} date
16
+ * @param {number} plusSeconds
17
+ * @returns {Promise<void>}
18
+ */
19
+ const sleepUntil = (date, plusSeconds) => {
20
+ const waitTill = new Date();
21
+ waitTill.setTime(date.getTime() + 1000 * plusSeconds);
22
+ const now = new Date();
23
+ const ms = waitTill.getTime() - now.getTime();
24
+ return new Promise((resolve) => setTimeout(resolve, ms));
25
+ };
26
+ /**
27
+ * @param {string} name
28
+ * @param {number} hours
29
+ * @returns {Promise<Trigger[]>}
30
+ */
31
+ const getIntervalTriggersDueNow = async (name, hours) => {
32
+ const state = getState();
33
+ const cfgField = `next_${name.toLowerCase()}_event`;
34
+ const now = new Date();
35
+ let due = state.getConfigCopy(cfgField, false);
36
+ //console.log({due, name, now});
37
+ if (!due) {
38
+ //first run, set rnd due
39
+ const due_in_hrs = Math.random() * hours;
40
+ if (hours < 4)
41
+ now.setMinutes(now.getMinutes() + due_in_hrs * 60);
42
+ else
43
+ now.setHours(now.getHours() + due_in_hrs);
44
+ await state.setConfig(cfgField, now);
45
+ return [];
46
+ }
47
+ due = new Date(due);
48
+ if (due > now)
49
+ return [];
50
+ //console.log("after check", {due, name, now});
51
+ const triggers = await Trigger.find({ when_trigger: name });
52
+ due.setHours(due.getHours() + hours);
53
+ if (now > due) {
54
+ // we must have skipped events, e.g. if not running continuously
55
+ due = now;
56
+ due.setHours(due.getHours() + hours);
57
+ }
58
+ await state.setConfig(cfgField, due);
59
+ EventLog.create({
60
+ event_type: name,
61
+ channel: null,
62
+ user_id: null,
63
+ payload: null,
64
+ occur_at: new Date(),
65
+ });
66
+ return triggers;
67
+ };
68
+ let availabilityPassed = false;
69
+ /**
70
+ * @param {string} port
71
+ * @returns {Promise<void>}
72
+ */
73
+ const checkAvailability = async (port) => {
74
+ try {
75
+ const response = await fetch(`http://127.0.0.1:${port}/auth/login`);
76
+ const pass = response.status < 400;
77
+ if (pass)
78
+ availabilityPassed = true;
79
+ else if (availabilityPassed) {
80
+ console.error("Availability check failed, restarting...");
81
+ try {
82
+ await Crash.create(new Error("Availability check failed"), {
83
+ url: "/",
84
+ headers: {},
85
+ });
86
+ }
87
+ catch { }
88
+ process.exit(1);
89
+ }
90
+ }
91
+ catch (e) {
92
+ console.error("Error in availability check", e);
93
+ if (availabilityPassed)
94
+ process.exit(1);
95
+ }
96
+ };
97
+ /**
98
+ * @param {object} opts
99
+ * @param {function} [opts.stop_when]
100
+ * @param {number} [opts.number]
101
+ * @param {boolean} opts.watchReaper
102
+ * @param {string} opts.port
103
+ * @param {boolean} opts.disableScheduler
104
+ * @returns {Promise<void>}
105
+ */
106
+ const runScheduler = async ({ stop_when = () => false, tickSeconds = 60 * 5, watchReaper, port, disableScheduler, } = {}) => {
107
+ let stopit;
108
+ const run = async () => {
109
+ if (watchReaper)
110
+ await checkAvailability(port);
111
+ if (disableScheduler)
112
+ return;
113
+ stopit = await stop_when();
114
+ if (stopit)
115
+ return;
116
+ await eachTenant(async () => {
117
+ const isRoot = db.getTenantSchema() === db.connectObj.default_schema;
118
+ EventLog.create({
119
+ event_type: "Often",
120
+ channel: null,
121
+ user_id: null,
122
+ payload: null,
123
+ occur_at: new Date(),
124
+ });
125
+ const triggers = await Trigger.find({ when_trigger: "Often" });
126
+ const trsHourly = await getIntervalTriggersDueNow("Hourly", 1);
127
+ const trsDaily = await getIntervalTriggersDueNow("Daily", 24);
128
+ const trsWeekly = await getIntervalTriggersDueNow("Weekly", 24 * 7);
129
+ const allTriggers = [
130
+ ...triggers,
131
+ ...trsHourly,
132
+ ...trsDaily,
133
+ ...trsWeekly,
134
+ ];
135
+ for (const trigger of allTriggers) {
136
+ try {
137
+ await trigger.runWithoutRow();
138
+ }
139
+ catch (e) {
140
+ if (isRoot)
141
+ await Crash.create(e, {
142
+ url: `trigger: action ${trigger.action} id ${trigger.id}`,
143
+ headers: {},
144
+ });
145
+ }
146
+ }
147
+ });
148
+ };
149
+ let i = 0;
150
+ const firstrun = new Date();
151
+ await run();
152
+ while (!stopit) {
153
+ i += 1;
154
+ await sleepUntil(firstrun, tickSeconds * i);
155
+ await run();
156
+ }
157
+ };
158
+ module.exports = runScheduler;
159
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../models/scheduler.js"],"names":[],"mappings":"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"}