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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/dist/base-plugin/actions.d.ts +141 -0
  2. package/dist/base-plugin/actions.d.ts.map +1 -0
  3. package/dist/base-plugin/actions.js +551 -0
  4. package/dist/base-plugin/actions.js.map +1 -0
  5. package/dist/base-plugin/base.test.d.ts +2 -0
  6. package/dist/base-plugin/base.test.d.ts.map +1 -0
  7. package/dist/base-plugin/base.test.js +15 -0
  8. package/dist/base-plugin/base.test.js.map +1 -0
  9. package/dist/base-plugin/fieldviews.d.ts +25 -0
  10. package/dist/base-plugin/fieldviews.d.ts.map +1 -0
  11. package/dist/base-plugin/fieldviews.js +159 -0
  12. package/dist/base-plugin/fieldviews.js.map +1 -0
  13. package/dist/base-plugin/fileviews.d.ts +52 -0
  14. package/dist/base-plugin/fileviews.d.ts.map +1 -0
  15. package/dist/base-plugin/fileviews.js +59 -0
  16. package/dist/base-plugin/fileviews.js.map +1 -0
  17. package/dist/base-plugin/index.d.ts +524 -0
  18. package/dist/base-plugin/index.d.ts.map +1 -0
  19. package/{base-plugin → dist/base-plugin}/index.js +22 -24
  20. package/dist/base-plugin/index.js.map +1 -0
  21. package/dist/base-plugin/types.d.ts +383 -0
  22. package/dist/base-plugin/types.d.ts.map +1 -0
  23. package/dist/base-plugin/types.js +1080 -0
  24. package/dist/base-plugin/types.js.map +1 -0
  25. package/dist/base-plugin/viewtemplates/edit.d.ts +116 -0
  26. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -0
  27. package/dist/base-plugin/viewtemplates/edit.js +561 -0
  28. package/dist/base-plugin/viewtemplates/edit.js.map +1 -0
  29. package/dist/base-plugin/viewtemplates/feed.d.ts +73 -0
  30. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -0
  31. package/dist/base-plugin/viewtemplates/feed.js +348 -0
  32. package/dist/base-plugin/viewtemplates/feed.js.map +1 -0
  33. package/dist/base-plugin/viewtemplates/filter.d.ts +46 -0
  34. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -0
  35. package/dist/base-plugin/viewtemplates/filter.js +267 -0
  36. package/dist/base-plugin/viewtemplates/filter.js.map +1 -0
  37. package/dist/base-plugin/viewtemplates/list.d.ts +99 -0
  38. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -0
  39. package/dist/base-plugin/viewtemplates/list.js +471 -0
  40. package/dist/base-plugin/viewtemplates/list.js.map +1 -0
  41. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +41 -0
  42. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -0
  43. package/dist/base-plugin/viewtemplates/listshowlist.js +248 -0
  44. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -0
  45. package/dist/base-plugin/viewtemplates/room.d.ts +140 -0
  46. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -0
  47. package/dist/base-plugin/viewtemplates/room.js +469 -0
  48. package/dist/base-plugin/viewtemplates/room.js.map +1 -0
  49. package/dist/base-plugin/viewtemplates/show.d.ts +101 -0
  50. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -0
  51. package/dist/base-plugin/viewtemplates/show.js +562 -0
  52. package/dist/base-plugin/viewtemplates/show.js.map +1 -0
  53. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +108 -0
  54. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -0
  55. package/dist/base-plugin/viewtemplates/viewable_fields.js +563 -0
  56. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -0
  57. package/dist/contracts.d.ts +49 -0
  58. package/dist/contracts.d.ts.map +1 -0
  59. package/dist/contracts.js +212 -0
  60. package/dist/contracts.js.map +1 -0
  61. package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
  62. package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
  63. package/dist/coverage/lcov-report/block-navigation.js +66 -0
  64. package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  65. package/dist/coverage/lcov-report/prettify.d.ts +1 -0
  66. package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
  67. package/dist/coverage/lcov-report/prettify.js +478 -0
  68. package/dist/coverage/lcov-report/prettify.js.map +1 -0
  69. package/dist/coverage/lcov-report/sorter.d.ts +2 -0
  70. package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
  71. package/dist/coverage/lcov-report/sorter.js +141 -0
  72. package/dist/coverage/lcov-report/sorter.js.map +1 -0
  73. package/dist/db/connect.d.ts +40 -0
  74. package/dist/db/connect.d.ts.map +1 -0
  75. package/dist/db/connect.js +150 -0
  76. package/dist/db/connect.js.map +1 -0
  77. package/dist/db/db.test.d.ts +2 -0
  78. package/dist/db/db.test.d.ts.map +1 -0
  79. package/dist/db/db.test.js +28 -0
  80. package/dist/db/db.test.js.map +1 -0
  81. package/dist/db/fixtures.d.ts +8 -0
  82. package/dist/db/fixtures.d.ts.map +1 -0
  83. package/dist/db/fixtures.js +300 -0
  84. package/dist/db/fixtures.js.map +1 -0
  85. package/dist/db/index.d.ts +3 -0
  86. package/dist/db/index.d.ts.map +1 -0
  87. package/dist/db/index.js +41 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/reset_schema.d.ts +13 -0
  90. package/dist/db/reset_schema.d.ts.map +1 -0
  91. package/{db → dist/db}/reset_schema.js +45 -55
  92. package/dist/db/reset_schema.js.map +1 -0
  93. package/dist/db/state.d.ts +56 -0
  94. package/dist/db/state.d.ts.map +1 -0
  95. package/dist/db/state.js +610 -0
  96. package/dist/db/state.js.map +1 -0
  97. package/dist/index.d.ts +2 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/{index.js → dist/index.js} +2 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/migrate.d.ts +12 -0
  102. package/dist/migrate.d.ts.map +1 -0
  103. package/dist/migrate.js +94 -0
  104. package/dist/migrate.js.map +1 -0
  105. package/dist/migrations/202005141503.d.ts +2 -0
  106. package/dist/migrations/202005141503.d.ts.map +1 -0
  107. package/{migrations → dist/migrations}/202005141503.js +2 -1
  108. package/dist/migrations/202005141503.js.map +1 -0
  109. package/dist/migrations/202005241712.d.ts +2 -0
  110. package/dist/migrations/202005241712.d.ts.map +1 -0
  111. package/{migrations → dist/migrations}/202005241712.js +2 -1
  112. package/dist/migrations/202005241712.js.map +1 -0
  113. package/dist/migrations/202005251037.d.ts +2 -0
  114. package/dist/migrations/202005251037.d.ts.map +1 -0
  115. package/{migrations → dist/migrations}/202005251037.js +2 -1
  116. package/dist/migrations/202005251037.js.map +1 -0
  117. package/dist/migrations/202005282134.d.ts +2 -0
  118. package/dist/migrations/202005282134.d.ts.map +1 -0
  119. package/{migrations → dist/migrations}/202005282134.js +2 -1
  120. package/dist/migrations/202005282134.js.map +1 -0
  121. package/dist/migrations/202006022156.d.ts +2 -0
  122. package/dist/migrations/202006022156.d.ts.map +1 -0
  123. package/{migrations → dist/migrations}/202006022156.js +2 -1
  124. package/dist/migrations/202006022156.js.map +1 -0
  125. package/dist/migrations/202006051507.d.ts +2 -0
  126. package/dist/migrations/202006051507.d.ts.map +1 -0
  127. package/{migrations → dist/migrations}/202006051507.js +2 -1
  128. package/dist/migrations/202006051507.js.map +1 -0
  129. package/dist/migrations/202006240906.d.ts +2 -0
  130. package/dist/migrations/202006240906.d.ts.map +1 -0
  131. package/{migrations → dist/migrations}/202006240906.js +2 -1
  132. package/dist/migrations/202006240906.js.map +1 -0
  133. package/dist/migrations/202007091707.d.ts +2 -0
  134. package/dist/migrations/202007091707.d.ts.map +1 -0
  135. package/{migrations → dist/migrations}/202007091707.js +2 -1
  136. package/dist/migrations/202007091707.js.map +1 -0
  137. package/dist/migrations/202007202144.d.ts +2 -0
  138. package/dist/migrations/202007202144.d.ts.map +1 -0
  139. package/{migrations → dist/migrations}/202007202144.js +2 -1
  140. package/dist/migrations/202007202144.js.map +1 -0
  141. package/dist/migrations/202008031500.d.ts +2 -0
  142. package/dist/migrations/202008031500.d.ts.map +1 -0
  143. package/dist/migrations/202008031500.js +4 -0
  144. package/dist/migrations/202008031500.js.map +1 -0
  145. package/dist/migrations/202008051415.d.ts +2 -0
  146. package/dist/migrations/202008051415.d.ts.map +1 -0
  147. package/{migrations → dist/migrations}/202008051415.js +2 -1
  148. package/dist/migrations/202008051415.js.map +1 -0
  149. package/dist/migrations/202008121149.d.ts +3 -0
  150. package/dist/migrations/202008121149.d.ts.map +1 -0
  151. package/{migrations → dist/migrations}/202008121149.js +2 -2
  152. package/dist/migrations/202008121149.js.map +1 -0
  153. package/dist/migrations/202009112140.d.ts +3 -0
  154. package/dist/migrations/202009112140.d.ts.map +1 -0
  155. package/{migrations → dist/migrations}/202009112140.js +2 -2
  156. package/dist/migrations/202009112140.js.map +1 -0
  157. package/dist/migrations/202009181655.d.ts +2 -0
  158. package/dist/migrations/202009181655.d.ts.map +1 -0
  159. package/dist/migrations/202009181655.js +7 -0
  160. package/dist/migrations/202009181655.js.map +1 -0
  161. package/dist/migrations/202009221105.d.ts +2 -0
  162. package/dist/migrations/202009221105.d.ts.map +1 -0
  163. package/dist/migrations/202009221105.js +4 -0
  164. package/dist/migrations/202009221105.js.map +1 -0
  165. package/dist/migrations/202009231331.d.ts +2 -0
  166. package/dist/migrations/202009231331.d.ts.map +1 -0
  167. package/{migrations → dist/migrations}/202009231331.js +2 -1
  168. package/dist/migrations/202009231331.js.map +1 -0
  169. package/dist/migrations/202009301531.d.ts +2 -0
  170. package/dist/migrations/202009301531.d.ts.map +1 -0
  171. package/dist/migrations/202009301531.js +8 -0
  172. package/dist/migrations/202009301531.js.map +1 -0
  173. package/dist/migrations/202010231444.d.ts +2 -0
  174. package/dist/migrations/202010231444.d.ts.map +1 -0
  175. package/dist/migrations/202010231444.js +4 -0
  176. package/dist/migrations/202010231444.js.map +1 -0
  177. package/dist/migrations/202010251412.d.ts +2 -0
  178. package/dist/migrations/202010251412.d.ts.map +1 -0
  179. package/dist/migrations/202010251412.js +10 -0
  180. package/dist/migrations/202010251412.js.map +1 -0
  181. package/dist/migrations/202011021749.d.ts +2 -0
  182. package/dist/migrations/202011021749.d.ts.map +1 -0
  183. package/{migrations → dist/migrations}/202011021749.js +2 -1
  184. package/dist/migrations/202011021749.js.map +1 -0
  185. package/dist/migrations/202011051353.d.ts +2 -0
  186. package/dist/migrations/202011051353.d.ts.map +1 -0
  187. package/{migrations → dist/migrations}/202011051353.js +2 -1
  188. package/dist/migrations/202011051353.js.map +1 -0
  189. package/dist/migrations/202011111127.d.ts +2 -0
  190. package/dist/migrations/202011111127.d.ts.map +1 -0
  191. package/{migrations → dist/migrations}/202011111127.js +2 -1
  192. package/dist/migrations/202011111127.js.map +1 -0
  193. package/dist/migrations/202012011203.d.ts +2 -0
  194. package/dist/migrations/202012011203.d.ts.map +1 -0
  195. package/{migrations → dist/migrations}/202012011203.js +2 -1
  196. package/dist/migrations/202012011203.js.map +1 -0
  197. package/dist/migrations/202012100841.d.ts +2 -0
  198. package/dist/migrations/202012100841.d.ts.map +1 -0
  199. package/{migrations → dist/migrations}/202012100841.js +2 -1
  200. package/dist/migrations/202012100841.js.map +1 -0
  201. package/dist/migrations/202012281835.d.ts +2 -0
  202. package/dist/migrations/202012281835.d.ts.map +1 -0
  203. package/{migrations → dist/migrations}/202012281835.js +2 -1
  204. package/dist/migrations/202012281835.js.map +1 -0
  205. package/dist/migrations/202101061051.d.ts +2 -0
  206. package/dist/migrations/202101061051.d.ts.map +1 -0
  207. package/{migrations → dist/migrations}/202101061051.js +2 -1
  208. package/dist/migrations/202101061051.js.map +1 -0
  209. package/dist/migrations/202101141128.d.ts +2 -0
  210. package/dist/migrations/202101141128.d.ts.map +1 -0
  211. package/dist/migrations/202101141128.js +4 -0
  212. package/dist/migrations/202101141128.js.map +1 -0
  213. package/dist/migrations/202102091312.d.ts +3 -0
  214. package/dist/migrations/202102091312.d.ts.map +1 -0
  215. package/dist/migrations/202102091312.js +19 -0
  216. package/dist/migrations/202102091312.js.map +1 -0
  217. package/dist/migrations/202102101624.d.ts +2 -0
  218. package/dist/migrations/202102101624.d.ts.map +1 -0
  219. package/dist/migrations/202102101624.js +7 -0
  220. package/dist/migrations/202102101624.js.map +1 -0
  221. package/dist/migrations/202102172148.d.ts +2 -0
  222. package/dist/migrations/202102172148.d.ts.map +1 -0
  223. package/{migrations → dist/migrations}/202102172148.js +2 -2
  224. package/dist/migrations/202102172148.js.map +1 -0
  225. package/dist/migrations/202102261650.d.ts +2 -0
  226. package/dist/migrations/202102261650.d.ts.map +1 -0
  227. package/dist/migrations/202102261650.js +7 -0
  228. package/dist/migrations/202102261650.js.map +1 -0
  229. package/dist/migrations/202106102347.d.ts +2 -0
  230. package/dist/migrations/202106102347.d.ts.map +1 -0
  231. package/{migrations → dist/migrations}/202106102347.js +2 -3
  232. package/dist/migrations/202106102347.js.map +1 -0
  233. package/dist/migrations/202106112120.d.ts +2 -0
  234. package/dist/migrations/202106112120.d.ts.map +1 -0
  235. package/{migrations → dist/migrations}/202106112120.js +2 -3
  236. package/dist/migrations/202106112120.js.map +1 -0
  237. package/dist/migrations/202106120012.d.ts +2 -0
  238. package/dist/migrations/202106120012.d.ts.map +1 -0
  239. package/{migrations → dist/migrations}/202106120012.js +2 -3
  240. package/dist/migrations/202106120012.js.map +1 -0
  241. package/dist/migrations/202106120220.d.ts +2 -0
  242. package/dist/migrations/202106120220.d.ts.map +1 -0
  243. package/{migrations → dist/migrations}/202106120220.js +2 -4
  244. package/dist/migrations/202106120220.js.map +1 -0
  245. package/dist/migrations/202106121701.d.ts +2 -0
  246. package/dist/migrations/202106121701.d.ts.map +1 -0
  247. package/{migrations → dist/migrations}/202106121701.js +2 -3
  248. package/dist/migrations/202106121701.js.map +1 -0
  249. package/dist/migrations/202106121703.d.ts +3 -0
  250. package/dist/migrations/202106121703.d.ts.map +1 -0
  251. package/{migrations → dist/migrations}/202106121703.js +2 -3
  252. package/dist/migrations/202106121703.js.map +1 -0
  253. package/dist/migrations/202106251126.d.ts +2 -0
  254. package/dist/migrations/202106251126.d.ts.map +1 -0
  255. package/dist/migrations/202106251126.js +6 -0
  256. package/dist/migrations/202106251126.js.map +1 -0
  257. package/dist/migrations/202107281619.d.ts +2 -0
  258. package/dist/migrations/202107281619.d.ts.map +1 -0
  259. package/{migrations → dist/migrations}/202107281619.js +2 -1
  260. package/dist/migrations/202107281619.js.map +1 -0
  261. package/dist/migrations/202107302158.d.ts +3 -0
  262. package/dist/migrations/202107302158.d.ts.map +1 -0
  263. package/{migrations → dist/migrations}/202107302158.js +2 -3
  264. package/dist/migrations/202107302158.js.map +1 -0
  265. package/dist/migrations/202108022257.d.ts +2 -0
  266. package/dist/migrations/202108022257.d.ts.map +1 -0
  267. package/{migrations → dist/migrations}/202108022257.js +3 -4
  268. package/dist/migrations/202108022257.js.map +1 -0
  269. package/dist/migrations/202109201624.d.ts +2 -0
  270. package/dist/migrations/202109201624.d.ts.map +1 -0
  271. package/{migrations → dist/migrations}/202109201624.js +2 -1
  272. package/dist/migrations/202109201624.js.map +1 -0
  273. package/dist/migrations/202109301031.d.ts +3 -0
  274. package/dist/migrations/202109301031.d.ts.map +1 -0
  275. package/{migrations → dist/migrations}/202109301031.js +2 -2
  276. package/dist/migrations/202109301031.js.map +1 -0
  277. package/dist/migrations/202111290253.d.ts +3 -0
  278. package/dist/migrations/202111290253.d.ts.map +1 -0
  279. package/dist/migrations/202111290253.js +5 -0
  280. package/dist/migrations/202111290253.js.map +1 -0
  281. package/dist/models/backup.d.ts +22 -0
  282. package/dist/models/backup.d.ts.map +1 -0
  283. package/{models → dist/models}/backup.js +95 -192
  284. package/dist/models/backup.js.map +1 -0
  285. package/dist/models/config.d.ts +180 -0
  286. package/dist/models/config.d.ts.map +1 -0
  287. package/dist/models/config.js +758 -0
  288. package/dist/models/config.js.map +1 -0
  289. package/dist/models/crash.d.ts +74 -0
  290. package/dist/models/crash.d.ts.map +1 -0
  291. package/dist/models/crash.js +118 -0
  292. package/dist/models/crash.js.map +1 -0
  293. package/dist/models/discovery.d.ts +28 -0
  294. package/dist/models/discovery.d.ts.map +1 -0
  295. package/dist/models/discovery.js +163 -0
  296. package/dist/models/discovery.js.map +1 -0
  297. package/dist/models/email.d.ts +16 -0
  298. package/dist/models/email.d.ts.map +1 -0
  299. package/dist/models/email.js +90 -0
  300. package/dist/models/email.js.map +1 -0
  301. package/dist/models/eventlog.d.ts +77 -0
  302. package/dist/models/eventlog.d.ts.map +1 -0
  303. package/dist/models/eventlog.js +132 -0
  304. package/dist/models/eventlog.js.map +1 -0
  305. package/dist/models/expression.d.ts +54 -0
  306. package/dist/models/expression.d.ts.map +1 -0
  307. package/dist/models/expression.js +274 -0
  308. package/dist/models/expression.js.map +1 -0
  309. package/dist/models/field.d.ts +217 -0
  310. package/dist/models/field.d.ts.map +1 -0
  311. package/dist/models/field.js +619 -0
  312. package/dist/models/field.js.map +1 -0
  313. package/dist/models/fieldrepeat.d.ts +49 -0
  314. package/dist/models/fieldrepeat.d.ts.map +1 -0
  315. package/dist/models/fieldrepeat.js +88 -0
  316. package/dist/models/fieldrepeat.js.map +1 -0
  317. package/dist/models/file.d.ts +122 -0
  318. package/dist/models/file.d.ts.map +1 -0
  319. package/dist/models/file.js +224 -0
  320. package/dist/models/file.js.map +1 -0
  321. package/dist/models/form.d.ts +82 -0
  322. package/dist/models/form.d.ts.map +1 -0
  323. package/dist/models/form.js +163 -0
  324. package/dist/models/form.js.map +1 -0
  325. package/dist/models/index.d.ts +1 -0
  326. package/dist/models/index.d.ts.map +1 -0
  327. package/{models → dist/models}/index.js +42 -42
  328. package/dist/models/index.js.map +1 -0
  329. package/dist/models/layout.d.ts +34 -0
  330. package/dist/models/layout.d.ts.map +1 -0
  331. package/dist/models/layout.js +153 -0
  332. package/dist/models/layout.js.map +1 -0
  333. package/dist/models/library.d.ts +50 -0
  334. package/dist/models/library.d.ts.map +1 -0
  335. package/dist/models/library.js +129 -0
  336. package/dist/models/library.js.map +1 -0
  337. package/dist/models/pack.d.ts +89 -0
  338. package/dist/models/pack.d.ts.map +1 -0
  339. package/dist/models/pack.js +390 -0
  340. package/dist/models/pack.js.map +1 -0
  341. package/dist/models/page.d.ts +101 -0
  342. package/dist/models/page.d.ts.map +1 -0
  343. package/dist/models/page.js +223 -0
  344. package/dist/models/page.js.map +1 -0
  345. package/dist/models/plugin.d.ts +100 -0
  346. package/dist/models/plugin.d.ts.map +1 -0
  347. package/dist/models/plugin.js +204 -0
  348. package/dist/models/plugin.js.map +1 -0
  349. package/dist/models/random.d.ts +24 -0
  350. package/dist/models/random.d.ts.map +1 -0
  351. package/dist/models/random.js +186 -0
  352. package/dist/models/random.js.map +1 -0
  353. package/dist/models/role.d.ts +42 -0
  354. package/dist/models/role.d.ts.map +1 -0
  355. package/dist/models/role.js +64 -0
  356. package/dist/models/role.js.map +1 -0
  357. package/dist/models/scheduler.d.ts +18 -0
  358. package/dist/models/scheduler.d.ts.map +1 -0
  359. package/dist/models/scheduler.js +159 -0
  360. package/dist/models/scheduler.js.map +1 -0
  361. package/dist/models/table.d.ts +326 -0
  362. package/dist/models/table.d.ts.map +1 -0
  363. package/dist/models/table.js +1006 -0
  364. package/dist/models/table.js.map +1 -0
  365. package/dist/models/table_constraints.d.ts +69 -0
  366. package/dist/models/table_constraints.d.ts.map +1 -0
  367. package/dist/models/table_constraints.js +118 -0
  368. package/dist/models/table_constraints.js.map +1 -0
  369. package/dist/models/tenant.d.ts +55 -0
  370. package/dist/models/tenant.d.ts.map +1 -0
  371. package/{models → dist/models}/tenant.js +40 -63
  372. package/dist/models/tenant.js.map +1 -0
  373. package/dist/models/trigger.d.ts +133 -0
  374. package/dist/models/trigger.d.ts.map +1 -0
  375. package/dist/models/trigger.js +292 -0
  376. package/dist/models/trigger.js.map +1 -0
  377. package/dist/models/user.d.ts +235 -0
  378. package/dist/models/user.d.ts.map +1 -0
  379. package/dist/models/user.js +434 -0
  380. package/dist/models/user.js.map +1 -0
  381. package/dist/models/view.d.ts +204 -0
  382. package/dist/models/view.d.ts.map +1 -0
  383. package/dist/models/view.js +497 -0
  384. package/dist/models/view.js.map +1 -0
  385. package/dist/models/workflow.d.ts +48 -0
  386. package/dist/models/workflow.d.ts.map +1 -0
  387. package/dist/models/workflow.js +190 -0
  388. package/dist/models/workflow.js.map +1 -0
  389. package/dist/plugin-helper.d.ts +145 -0
  390. package/dist/plugin-helper.d.ts.map +1 -0
  391. package/dist/plugin-helper.js +1158 -0
  392. package/dist/plugin-helper.js.map +1 -0
  393. package/dist/plugin-testing.d.ts +3 -0
  394. package/dist/plugin-testing.d.ts.map +1 -0
  395. package/dist/plugin-testing.js +120 -0
  396. package/dist/plugin-testing.js.map +1 -0
  397. package/dist/tests/actions.test.d.ts +2 -0
  398. package/dist/tests/actions.test.d.ts.map +1 -0
  399. package/dist/tests/actions.test.js +205 -0
  400. package/dist/tests/actions.test.js.map +1 -0
  401. package/dist/tests/auxtest.test.d.ts +2 -0
  402. package/dist/tests/auxtest.test.d.ts.map +1 -0
  403. package/dist/tests/auxtest.test.js +48 -0
  404. package/dist/tests/auxtest.test.js.map +1 -0
  405. package/dist/tests/backup.test.d.ts +2 -0
  406. package/dist/tests/backup.test.d.ts.map +1 -0
  407. package/dist/tests/backup.test.js +88 -0
  408. package/dist/tests/backup.test.js.map +1 -0
  409. package/dist/tests/calc.test.d.ts +2 -0
  410. package/dist/tests/calc.test.d.ts.map +1 -0
  411. package/dist/tests/calc.test.js +231 -0
  412. package/dist/tests/calc.test.js.map +1 -0
  413. package/dist/tests/config.test.d.ts +2 -0
  414. package/dist/tests/config.test.d.ts.map +1 -0
  415. package/dist/tests/config.test.js +83 -0
  416. package/dist/tests/config.test.js.map +1 -0
  417. package/dist/tests/discover.test.d.ts +2 -0
  418. package/dist/tests/discover.test.d.ts.map +1 -0
  419. package/dist/tests/discover.test.js +106 -0
  420. package/dist/tests/discover.test.js.map +1 -0
  421. package/dist/tests/exact_views.test.d.ts +2 -0
  422. package/dist/tests/exact_views.test.d.ts.map +1 -0
  423. package/dist/tests/exact_views.test.js +511 -0
  424. package/dist/tests/exact_views.test.js.map +1 -0
  425. package/dist/tests/field.test.d.ts +2 -0
  426. package/dist/tests/field.test.d.ts.map +1 -0
  427. package/dist/tests/field.test.js +237 -0
  428. package/dist/tests/field.test.js.map +1 -0
  429. package/dist/tests/form.test.d.ts +2 -0
  430. package/dist/tests/form.test.d.ts.map +1 -0
  431. package/dist/tests/form.test.js +191 -0
  432. package/dist/tests/form.test.js.map +1 -0
  433. package/dist/tests/mocks.d.ts +111 -0
  434. package/dist/tests/mocks.d.ts.map +1 -0
  435. package/dist/tests/mocks.js +165 -0
  436. package/dist/tests/mocks.js.map +1 -0
  437. package/dist/tests/models.test.d.ts +2 -0
  438. package/dist/tests/models.test.d.ts.map +1 -0
  439. package/dist/tests/models.test.js +210 -0
  440. package/dist/tests/models.test.js.map +1 -0
  441. package/dist/tests/pack.test.d.ts +2 -0
  442. package/dist/tests/pack.test.d.ts.map +1 -0
  443. package/dist/tests/pack.test.js +331 -0
  444. package/dist/tests/pack.test.js.map +1 -0
  445. package/dist/tests/plugin.test.d.ts +2 -0
  446. package/dist/tests/plugin.test.d.ts.map +1 -0
  447. package/dist/tests/plugin.test.js +53 -0
  448. package/dist/tests/plugin.test.js.map +1 -0
  449. package/dist/tests/random.test.d.ts +2 -0
  450. package/dist/tests/random.test.d.ts.map +1 -0
  451. package/dist/tests/random.test.js +138 -0
  452. package/dist/tests/random.test.js.map +1 -0
  453. package/dist/tests/table.test.d.ts +2 -0
  454. package/dist/tests/table.test.d.ts.map +1 -0
  455. package/dist/tests/table.test.js +1048 -0
  456. package/dist/tests/table.test.js.map +1 -0
  457. package/dist/tests/tenant.test.d.ts +2 -0
  458. package/dist/tests/tenant.test.d.ts.map +1 -0
  459. package/dist/tests/tenant.test.js +45 -0
  460. package/dist/tests/tenant.test.js.map +1 -0
  461. package/dist/tests/user.test.d.ts +2 -0
  462. package/dist/tests/user.test.d.ts.map +1 -0
  463. package/dist/tests/user.test.js +190 -0
  464. package/dist/tests/user.test.js.map +1 -0
  465. package/dist/tests/view.test.d.ts +2 -0
  466. package/dist/tests/view.test.d.ts.map +1 -0
  467. package/dist/tests/view.test.js +238 -0
  468. package/dist/tests/view.test.js.map +1 -0
  469. package/dist/tests/workflow.test.d.ts +2 -0
  470. package/dist/tests/workflow.test.d.ts.map +1 -0
  471. package/dist/tests/workflow.test.js +115 -0
  472. package/dist/tests/workflow.test.js.map +1 -0
  473. package/dist/tsconfig.ref.tsbuildinfo +1 -0
  474. package/dist/utils.d.ts +26 -0
  475. package/dist/utils.d.ts.map +1 -0
  476. package/dist/utils.js +124 -0
  477. package/dist/utils.js.map +1 -0
  478. package/package.json +34 -8
  479. package/base-plugin/actions.js +0 -629
  480. package/base-plugin/base.test.js +0 -15
  481. package/base-plugin/fieldviews.js +0 -197
  482. package/base-plugin/fileviews.js +0 -65
  483. package/base-plugin/types.js +0 -1154
  484. package/base-plugin/viewtemplates/edit.js +0 -672
  485. package/base-plugin/viewtemplates/feed.js +0 -434
  486. package/base-plugin/viewtemplates/filter.js +0 -358
  487. package/base-plugin/viewtemplates/list.js +0 -575
  488. package/base-plugin/viewtemplates/listshowlist.js +0 -292
  489. package/base-plugin/viewtemplates/room.js +0 -652
  490. package/base-plugin/viewtemplates/show.js +0 -689
  491. package/base-plugin/viewtemplates/viewable_fields.js +0 -714
  492. package/contracts.js +0 -311
  493. package/db/connect.js +0 -151
  494. package/db/db.test.js +0 -33
  495. package/db/fixtures.js +0 -303
  496. package/db/index.js +0 -63
  497. package/db/state.js +0 -674
  498. package/migrate.js +0 -99
  499. package/migrations/202008031500.js +0 -4
  500. package/migrations/202009181655.js +0 -6
  501. package/migrations/202009221105.js +0 -4
  502. package/migrations/202009301531.js +0 -7
  503. package/migrations/202010231444.js +0 -4
  504. package/migrations/202010251412.js +0 -9
  505. package/migrations/202101141128.js +0 -4
  506. package/migrations/202102091312.js +0 -19
  507. package/migrations/202102101624.js +0 -5
  508. package/migrations/202102261650.js +0 -6
  509. package/migrations/202106251126.js +0 -5
  510. package/models/config.js +0 -680
  511. package/models/crash.js +0 -126
  512. package/models/discovery.js +0 -195
  513. package/models/email.js +0 -92
  514. package/models/eventlog.js +0 -146
  515. package/models/expression.js +0 -276
  516. package/models/field.js +0 -746
  517. package/models/fieldrepeat.js +0 -96
  518. package/models/file.js +0 -234
  519. package/models/form.js +0 -169
  520. package/models/layout.js +0 -146
  521. package/models/library.js +0 -135
  522. package/models/pack.js +0 -466
  523. package/models/page.js +0 -255
  524. package/models/plugin.js +0 -219
  525. package/models/random.js +0 -206
  526. package/models/role.js +0 -94
  527. package/models/scheduler.js +0 -163
  528. package/models/table.js +0 -1211
  529. package/models/table_constraints.js +0 -133
  530. package/models/trigger.js +0 -327
  531. package/models/user.js +0 -503
  532. package/models/view.js +0 -622
  533. package/models/workflow.js +0 -205
  534. package/plugin-helper.js +0 -1311
  535. package/plugin-testing.js +0 -124
  536. package/tests/actions.test.js +0 -232
  537. package/tests/auxtest.test.js +0 -52
  538. package/tests/backup.test.js +0 -92
  539. package/tests/calc.test.js +0 -243
  540. package/tests/config.test.js +0 -91
  541. package/tests/discover.test.js +0 -114
  542. package/tests/exact_views.test.js +0 -526
  543. package/tests/field.test.js +0 -253
  544. package/tests/form.test.js +0 -198
  545. package/tests/mocks.js +0 -173
  546. package/tests/models.test.js +0 -221
  547. package/tests/pack.test.js +0 -350
  548. package/tests/plugin.test.js +0 -59
  549. package/tests/random.test.js +0 -154
  550. package/tests/table.test.js +0 -1091
  551. package/tests/tenant.test.js +0 -56
  552. package/tests/user.test.js +0 -196
  553. package/tests/view.test.js +0 -251
  554. package/tests/workflow.test.js +0 -119
  555. package/utils.js +0 -137
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /**
3
+ * EventLog Database Access Layer
4
+ * @category saltcorn-data
5
+ * @module models/eventlog
6
+ * @subcategory models
7
+ */
8
+ const db = require("../db");
9
+ const moment = require("moment");
10
+ const { contract, is } = require("contractis");
11
+ /**
12
+ * EventLog Class
13
+ * @category saltcorn-data
14
+ */
15
+ class EventLog {
16
+ /**
17
+ * EventLog constructor
18
+ * @param {object} o
19
+ */
20
+ constructor(o) {
21
+ this.id = o.id;
22
+ this.event_type = o.event_type;
23
+ this.channel = o.channel;
24
+ this.occur_at = ["string", "number"].includes(typeof o.occur_at)
25
+ ? new Date(o.occur_at)
26
+ : o.occur_at;
27
+ this.user_id = o.user_id;
28
+ this.payload =
29
+ typeof o.payload === "string" ? JSON.parse(o.payload) : o.payload;
30
+ contract.class(this);
31
+ }
32
+ /**
33
+ * @param {object} where
34
+ * @param {object} selopts
35
+ * @returns {Promise<EventLog[]>}
36
+ */
37
+ static async find(where, selopts) {
38
+ const us = await db.select("_sc_event_log", where, selopts);
39
+ return us.map((u) => new EventLog(u));
40
+ }
41
+ /**
42
+ * @param {object} where
43
+ * @returns {Promise<EventLog>}
44
+ */
45
+ static async findOne(where) {
46
+ const u = await db.selectOne("_sc_event_log", where);
47
+ return new EventLog(u);
48
+ }
49
+ /**
50
+ * @param {string} id
51
+ * @returns {Promise<EventLog>}
52
+ */
53
+ static async findOneWithUser(id) {
54
+ const { rows, } = await db.query("select el.*, u.email from _sc_event_log el left join users u on el.user_id = u.id where el.id = $1", [id]);
55
+ const u = rows[0];
56
+ const el = new EventLog(u);
57
+ el.email = u.email;
58
+ return el;
59
+ }
60
+ /**
61
+ * @param {object} where
62
+ * @returns {Promise<number>}
63
+ */
64
+ static async count(where) {
65
+ return await db.count("_sc_event_log", where || {});
66
+ }
67
+ /**
68
+ * @type {string}
69
+ */
70
+ get reltime() {
71
+ return moment(this.occur_at).fromNow();
72
+ }
73
+ /**
74
+ * @param {object} o
75
+ * @returns {Promise<EventLog>}
76
+ */
77
+ static async create(o) {
78
+ const { getState } = require("../db/state");
79
+ const settings = getState().getConfig("event_log_settings", {});
80
+ if (!settings[o.event_type])
81
+ return;
82
+ const hasTable = EventLog.hasTable(o.event_type);
83
+ if (hasTable && !settings[`${o.event_type}_${o.channel}`])
84
+ return;
85
+ const hasChannel = EventLog.hasChannel(o.event_type);
86
+ if (hasChannel && settings[`${o.event_type}_channel`]) {
87
+ const wantChannels = settings[`${o.event_type}_channel`]
88
+ .split(",")
89
+ .map((s) => s.trim());
90
+ if (!wantChannels.includes(o.channel))
91
+ return;
92
+ }
93
+ const ev = new EventLog(o);
94
+ const { id, ...rest } = ev;
95
+ ev.id = await db.insert("_sc_event_log", rest);
96
+ return ev;
97
+ }
98
+ /**
99
+ * @param {string} evType
100
+ * @returns {boolean}
101
+ */
102
+ static hasTable(evType) {
103
+ return ["Insert", "Update", "Delete"].includes(evType);
104
+ }
105
+ /**
106
+ * @param {string} evType
107
+ * @returns {boolean}
108
+ */
109
+ static hasChannel(evType) {
110
+ const { getState } = require("../db/state");
111
+ const t = getState().eventTypes[evType];
112
+ return t && t.hasChannel;
113
+ }
114
+ }
115
+ EventLog.contract = {
116
+ variables: {
117
+ id: is.maybe(is.posint),
118
+ event_type: is.str,
119
+ channel: is.maybe(is.str),
120
+ occur_at: is.class("Date"),
121
+ user_id: is.maybe(is.posint),
122
+ payload: is.maybe(is.obj()),
123
+ },
124
+ methods: {},
125
+ static_methods: {
126
+ find: is.fun(is.obj(), is.promise(is.array(is.class("EventLog")))),
127
+ findOne: is.fun(is.obj(), is.promise(is.class("EventLog"))),
128
+ create: is.fun(is.obj(), is.promise(is.any)),
129
+ },
130
+ };
131
+ module.exports = EventLog;
132
+ //# sourceMappingURL=eventlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventlog.js","sourceRoot":"","sources":["../../models/eventlog.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @param {string} s
3
+ * @returns {boolean|void}
4
+ */
5
+ export function expressionValidator(s: string): boolean | void;
6
+ /**
7
+ * @param {object[]} rows
8
+ * @param {object[]} fields
9
+ * @returns {object[]}
10
+ */
11
+ export function apply_calculated_fields(rows: object[], fields: object[]): object[];
12
+ /**
13
+ * @param {string} expression
14
+ * @param {object[]} fields
15
+ * @param {object} [extraContext = {}]
16
+ * @returns {any}
17
+ */
18
+ export function get_async_expression_function(expression: string, fields: object[], extraContext?: object | undefined): any;
19
+ /**
20
+ * @param {string} expression
21
+ * @param {object[]} fields
22
+ * @returns {any}
23
+ */
24
+ export function get_expression_function(expression: string, fields: object[]): any;
25
+ /**
26
+ * Recalculate calculated columns that are stored in db
27
+ * @param {object} table - table object
28
+ * @returns {Promise<void>}
29
+ */
30
+ export function recalculate_for_stored(table: object): Promise<void>;
31
+ /**
32
+ * @param {string} expression
33
+ * @param {object[]} statefuns
34
+ * @returns {object}
35
+ */
36
+ export function transform_for_async(expression: string, statefuns: object[]): object;
37
+ /**
38
+ * @param {*} row
39
+ * @param {*} fields
40
+ * @returns {Promise<any>}
41
+ */
42
+ export function apply_calculated_fields_stored(row: any, fields: any): Promise<any>;
43
+ /**
44
+ * @param {string} expression
45
+ * @returns {string}
46
+ */
47
+ export function jsexprToSQL(expression: string): string;
48
+ /**
49
+ * @param {string} expression
50
+ * @throws {Error}
51
+ * @returns {object}
52
+ */
53
+ export function jsexprToWhere(expression: string, extraCtx?: {}): object;
54
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../models/expression.js"],"names":[],"mappings":"AAUA;;;GAGG;AACH,uCAHW,MAAM,GACJ,OAAO,GAAC,IAAI,CAUxB;AAyJD;;;;GAIG;AACH,8CAJW,MAAM,EAAE,UACR,MAAM,EAAE,GACN,MAAM,EAAE,CA6BpB;AApDD;;;;;GAKG;AACH,0DALW,MAAM,UACN,MAAM,EAAE,sCAEN,GAAG,CAcf;AAnCD;;;;GAIG;AACH,oDAJW,MAAM,UACN,MAAM,EAAE,GACN,GAAG,CAYf;AAyFD;;;;GAIG;AACH,8CAHW,MAAM,GACJ,QAAQ,IAAI,CAAC,CAmBzB;AAzJD;;;;GAIG;AACH,gDAJW,MAAM,aACN,MAAM,EAAE,GACN,MAAM,CAsBlB;AAyED;;;;GAIG;AACH,uEAFa,QAAQ,GAAG,CAAC,CA6BxB;AAzND;;;GAGG;AACH,wCAHW,MAAM,GACJ,MAAM,CAKlB;AAED;;;;GAIG;AACH,0CAJW,MAAM,kBAEJ,MAAM,CAyElB"}
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * @category saltcorn-data
4
+ * @module models/expression
5
+ * @subcategory models
6
+ */
7
+ const vm = require("vm");
8
+ let acorn = require("acorn");
9
+ const estraverse = require("estraverse");
10
+ const astring = require("astring");
11
+ /**
12
+ * @param {string} s
13
+ * @returns {boolean|void}
14
+ */
15
+ function expressionValidator(s) {
16
+ if (!s || s.length == 0)
17
+ return "Missing formula";
18
+ try {
19
+ const f = new vm.Script(s);
20
+ return true;
21
+ }
22
+ catch (e) {
23
+ return e.message;
24
+ }
25
+ }
26
+ /**
27
+ * @param {string} expression
28
+ * @returns {string}
29
+ */
30
+ function jsexprToSQL(expression) {
31
+ if (!expression)
32
+ return expression;
33
+ return expression.replace(/===/g, "=").replace(/==/g, "=").replace(/"/g, "'");
34
+ }
35
+ /**
36
+ * @param {string} expression
37
+ * @throws {Error}
38
+ * @returns {object}
39
+ */
40
+ function jsexprToWhere(expression, extraCtx = {}) {
41
+ if (!expression)
42
+ return {};
43
+ try {
44
+ const ast = acorn.parseExpressionAt(expression, 0, {
45
+ ecmaVersion: 2020,
46
+ locations: false,
47
+ });
48
+ //console.log(ast);
49
+ const compile = (node) => ({
50
+ BinaryExpression() {
51
+ const cleft = compile(node.left);
52
+ const cright = compile(node.right);
53
+ const cmp = typeof cleft === "string" || cleft === null
54
+ ? { eq: [cleft, cright] }
55
+ : typeof cleft === "symbol"
56
+ ? { [cleft.description]: cright }
57
+ : { [cleft]: cright };
58
+ return {
59
+ "=="() {
60
+ return cmp;
61
+ },
62
+ "==="() {
63
+ return cmp;
64
+ },
65
+ "!="() {
66
+ return { not: cmp };
67
+ },
68
+ "!=="() {
69
+ return { not: cmp };
70
+ },
71
+ }[node.operator](node);
72
+ },
73
+ UnaryExpression() {
74
+ return {
75
+ "!"({ argument }) {
76
+ return { not: compile(argument) };
77
+ },
78
+ }[node.operator](node);
79
+ },
80
+ LogicalExpression() {
81
+ return {
82
+ "&&"({ left, right }) {
83
+ const l = compile(left);
84
+ const r = compile(right);
85
+ Object.assign(l, r);
86
+ return l;
87
+ },
88
+ "||"({ left, right }) {
89
+ return { or: [compile(left), compile(right)] };
90
+ },
91
+ }[node.operator](node);
92
+ },
93
+ Identifier({ name }) {
94
+ if (name[0] === "$") {
95
+ return extraCtx[name.substring(1)] || null;
96
+ }
97
+ return Symbol(name);
98
+ },
99
+ Literal({ value }) {
100
+ return value;
101
+ },
102
+ }[node.type](node));
103
+ return compile(ast);
104
+ }
105
+ catch (e) {
106
+ console.error(e);
107
+ throw new Error(`Expression "${expression}" is too complicated, I do not understand`);
108
+ }
109
+ }
110
+ /**
111
+ * @param {string} expression
112
+ * @param {object[]} statefuns
113
+ * @returns {object}
114
+ */
115
+ function transform_for_async(expression, statefuns) {
116
+ var isAsync = false;
117
+ const ast = acorn.parseExpressionAt(expression, 0, {
118
+ ecmaVersion: 2020,
119
+ allowAwaitOutsideFunction: true,
120
+ locations: false,
121
+ });
122
+ estraverse.replace(ast, {
123
+ leave: function (node) {
124
+ if (node.type === "CallExpression") {
125
+ const sf = statefuns[node.callee.name];
126
+ if (sf && sf.isAsync) {
127
+ isAsync = true;
128
+ return { type: "AwaitExpression", argument: node };
129
+ }
130
+ }
131
+ },
132
+ });
133
+ return { isAsync, expr_string: astring.generate(ast) };
134
+ }
135
+ /**
136
+ * @param {string} expression
137
+ * @param {object[]} fields
138
+ * @returns {any}
139
+ */
140
+ function get_expression_function(expression, fields) {
141
+ const field_names = fields.map((f) => f.name);
142
+ const args = field_names.includes("user")
143
+ ? `{${field_names.join()}}`
144
+ : `{${field_names.join()}}, user`;
145
+ const { getState } = require("../db/state");
146
+ return vm.runInNewContext(`(${args})=>(${expression})`, getState().function_context);
147
+ }
148
+ /**
149
+ * @param {string} expression
150
+ * @param {object[]} fields
151
+ * @param {object} [extraContext = {}]
152
+ * @returns {any}
153
+ */
154
+ function get_async_expression_function(expression, fields, extraContext = {}) {
155
+ const field_names = fields.map((f) => f.name);
156
+ const args = field_names.includes("user")
157
+ ? `{${field_names.join()}}`
158
+ : `{${field_names.join()}}, user`;
159
+ const { getState } = require("../db/state");
160
+ const { expr_string } = transform_for_async(expression, getState().functions);
161
+ const evalStr = `async (${args})=>(${expr_string})`;
162
+ return vm.runInNewContext(evalStr, {
163
+ ...getState().function_context,
164
+ ...extraContext,
165
+ });
166
+ }
167
+ /**
168
+ * @param {object[]} rows
169
+ * @param {object[]} fields
170
+ * @returns {object[]}
171
+ */
172
+ function apply_calculated_fields(rows, fields) {
173
+ let hasExprs = false;
174
+ let transform = (x) => x;
175
+ for (const field of fields) {
176
+ if (field.calculated && !field.stored) {
177
+ hasExprs = true;
178
+ let f;
179
+ try {
180
+ f = get_expression_function(field.expression, fields);
181
+ }
182
+ catch (e) {
183
+ throw new Error(`Error in calculating "${field.name}": ${e.message}`);
184
+ }
185
+ const oldf = transform;
186
+ transform = (row) => {
187
+ try {
188
+ const x = f(row);
189
+ row[field.name] = x;
190
+ }
191
+ catch (e) {
192
+ throw new Error(`Error in calculating "${field.name}": ${e.message}`);
193
+ }
194
+ return oldf(row);
195
+ };
196
+ }
197
+ }
198
+ if (hasExprs) {
199
+ return rows.map(transform);
200
+ }
201
+ else
202
+ return rows;
203
+ }
204
+ /**
205
+ * @param {*} row
206
+ * @param {*} fields
207
+ * @returns {Promise<any>}
208
+ */
209
+ const apply_calculated_fields_stored = async (row, fields) => {
210
+ let hasExprs = false;
211
+ let transform = (x) => x;
212
+ for (const field of fields) {
213
+ if (field.calculated && field.stored) {
214
+ hasExprs = true;
215
+ let f;
216
+ try {
217
+ f = get_async_expression_function(field.expression, fields);
218
+ }
219
+ catch (e) {
220
+ throw new Error(`Error in calculating "${field.name}": ${e.message}`);
221
+ }
222
+ const oldf = transform;
223
+ transform = async (row) => {
224
+ try {
225
+ const x = await f(row);
226
+ row[field.name] = x;
227
+ }
228
+ catch (e) {
229
+ throw new Error(`Error in calculating "${field.name}": ${e.message}`);
230
+ }
231
+ return await oldf(row);
232
+ };
233
+ }
234
+ }
235
+ if (hasExprs) {
236
+ return await transform(row);
237
+ }
238
+ else
239
+ return row;
240
+ };
241
+ /**
242
+ * Recalculate calculated columns that are stored in db
243
+ * @param {object} table - table object
244
+ * @returns {Promise<void>}
245
+ */
246
+ const recalculate_for_stored = async (table) => {
247
+ let rows = [];
248
+ let maxid = 0;
249
+ do {
250
+ rows = await table.getRows({ id: { gt: maxid } }, { orderBy: "id", limit: 20 });
251
+ for (const row of rows) {
252
+ try {
253
+ await table.updateRow({}, row.id);
254
+ }
255
+ catch (e) {
256
+ console.error(e);
257
+ }
258
+ }
259
+ if (rows.length > 0)
260
+ maxid = rows[rows.length - 1].id;
261
+ } while (rows.length === 20);
262
+ };
263
+ module.exports = {
264
+ expressionValidator,
265
+ apply_calculated_fields,
266
+ get_async_expression_function,
267
+ get_expression_function,
268
+ recalculate_for_stored,
269
+ transform_for_async,
270
+ apply_calculated_fields_stored,
271
+ jsexprToSQL,
272
+ jsexprToWhere,
273
+ };
274
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../models/expression.js"],"names":[],"mappings":"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"}