@budibase/server 2.6.19-alpha.5 → 2.6.19-alpha.51

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 (414) hide show
  1. package/.dockerignore +7 -6
  2. package/Dockerfile +16 -8
  3. package/builder/assets/index.4f47d591.js +1869 -0
  4. package/builder/assets/index.6ebb99b3.css +6 -0
  5. package/builder/index.html +2 -2
  6. package/client/manifest.json +5229 -0
  7. package/dist/automation.js +32566 -0
  8. package/dist/automation.js.map +7 -0
  9. package/dist/index.js +45038 -13
  10. package/dist/index.js.map +7 -0
  11. package/dist/query.js +24454 -0
  12. package/dist/query.js.map +7 -0
  13. package/jest.config.ts +3 -0
  14. package/nodemon.json +1 -1
  15. package/package.json +33 -15
  16. package/pm2.config.js +1 -1
  17. package/scripts/build.js +48 -0
  18. package/src/api/controllers/application.ts +21 -22
  19. package/src/api/controllers/automation.ts +37 -9
  20. package/src/api/controllers/datasource.ts +25 -15
  21. package/src/api/controllers/deploy/index.ts +1 -0
  22. package/src/api/controllers/plugin/index.ts +1 -1
  23. package/src/api/controllers/row/external.ts +39 -15
  24. package/src/api/controllers/row/index.ts +18 -24
  25. package/src/api/controllers/row/internal.ts +1 -1
  26. package/src/api/controllers/row/staticFormula.ts +6 -1
  27. package/src/api/controllers/row/utils.ts +12 -0
  28. package/src/api/controllers/static/index.ts +3 -3
  29. package/src/api/controllers/table/index.ts +3 -0
  30. package/src/api/controllers/table/internal.ts +2 -6
  31. package/src/api/controllers/table/utils.ts +32 -1
  32. package/src/api/controllers/view/index.ts +5 -5
  33. package/src/api/controllers/webhook.ts +33 -9
  34. package/src/api/routes/application.ts +5 -0
  35. package/src/api/routes/automation.ts +0 -1
  36. package/src/api/routes/datasource.ts +2 -2
  37. package/src/api/routes/static.ts +3 -1
  38. package/src/api/routes/tests/{automation.spec.js → automation.spec.ts} +106 -31
  39. package/src/api/routes/tests/view.spec.js +4 -3
  40. package/src/api/routes/tests/{webhook.spec.js → webhook.spec.ts} +33 -11
  41. package/src/app.ts +0 -1
  42. package/src/automations/actions.ts +8 -0
  43. package/src/automations/logging/index.ts +21 -0
  44. package/src/automations/steps/bash.ts +4 -0
  45. package/src/automations/steps/collect.ts +58 -0
  46. package/src/automations/steps/createRow.ts +4 -0
  47. package/src/automations/steps/delay.ts +1 -0
  48. package/src/automations/steps/deleteRow.ts +4 -0
  49. package/src/automations/steps/discord.ts +4 -0
  50. package/src/automations/steps/executeQuery.ts +4 -0
  51. package/src/automations/steps/executeScript.ts +4 -0
  52. package/src/automations/steps/filter.ts +1 -0
  53. package/src/automations/steps/loop.ts +1 -0
  54. package/src/automations/steps/make.ts +4 -0
  55. package/src/automations/steps/openai.ts +106 -0
  56. package/src/automations/steps/outgoingWebhook.ts +4 -0
  57. package/src/automations/steps/queryRows.ts +4 -0
  58. package/src/automations/steps/sendSmtpEmail.ts +4 -0
  59. package/src/automations/steps/serverLog.ts +4 -0
  60. package/src/automations/steps/slack.ts +4 -0
  61. package/src/automations/steps/updateRow.ts +4 -0
  62. package/src/automations/steps/zapier.ts +4 -0
  63. package/src/automations/tests/openai.spec.ts +86 -0
  64. package/src/automations/triggers.ts +3 -2
  65. package/src/constants/index.ts +17 -16
  66. package/src/db/inMemoryView.ts +1 -0
  67. package/src/db/linkedRows/index.ts +5 -3
  68. package/src/environment.ts +3 -0
  69. package/src/integration-test/postgres.spec.ts +5 -5
  70. package/src/integrations/airtable.ts +3 -1
  71. package/src/integrations/arangodb.ts +3 -1
  72. package/src/integrations/base/sqlTable.ts +0 -1
  73. package/src/integrations/couchdb.ts +3 -1
  74. package/src/integrations/dynamodb.ts +3 -1
  75. package/src/integrations/elasticsearch.ts +3 -1
  76. package/src/integrations/firebase.ts +3 -1
  77. package/src/integrations/googlesheets.ts +37 -13
  78. package/src/integrations/microsoftSqlServer.ts +4 -4
  79. package/src/integrations/mongodb.ts +3 -1
  80. package/src/integrations/mysql.ts +4 -4
  81. package/src/integrations/oracle.ts +4 -4
  82. package/src/integrations/postgres.ts +4 -4
  83. package/src/integrations/redis.ts +10 -2
  84. package/src/integrations/s3.ts +3 -1
  85. package/src/integrations/snowflake.ts +3 -1
  86. package/src/middleware/builder.ts +26 -18
  87. package/src/sdk/app/automations/index.ts +2 -0
  88. package/src/sdk/app/automations/utils.ts +7 -0
  89. package/src/sdk/plugins/plugins.ts +1 -1
  90. package/src/startup.ts +2 -0
  91. package/src/tests/utilities/TestConfiguration.ts +4 -2
  92. package/src/tests/utilities/structures.ts +42 -0
  93. package/src/threads/automation.ts +91 -23
  94. package/src/threads/index.ts +9 -3
  95. package/src/threads/utils.ts +2 -0
  96. package/src/utilities/fileSystem/app.ts +14 -4
  97. package/src/utilities/fileSystem/clientLibrary.ts +8 -3
  98. package/src/utilities/fileSystem/filesystem.ts +3 -1
  99. package/src/utilities/redis.ts +25 -3
  100. package/src/utilities/rowProcessor/index.ts +4 -1
  101. package/src/utilities/rowProcessor/map.ts +1 -1
  102. package/src/websockets/builder.ts +77 -0
  103. package/src/websockets/client.ts +2 -2
  104. package/src/websockets/grid.ts +44 -44
  105. package/src/websockets/index.ts +13 -6
  106. package/src/websockets/websocket.ts +207 -7
  107. package/tsconfig.build.json +9 -1
  108. package/tsconfig.json +1 -14
  109. package/builder/assets/index.07382a47.css +0 -6
  110. package/builder/assets/index.3d5c50fb.js +0 -1786
  111. package/dist/api/controllers/analytics.js +0 -46
  112. package/dist/api/controllers/apikeys.js +0 -72
  113. package/dist/api/controllers/application.js +0 -574
  114. package/dist/api/controllers/auth.js +0 -80
  115. package/dist/api/controllers/automation.js +0 -303
  116. package/dist/api/controllers/backup.js +0 -37
  117. package/dist/api/controllers/component.js +0 -59
  118. package/dist/api/controllers/datasource.js +0 -352
  119. package/dist/api/controllers/deploy/Deployment.js +0 -53
  120. package/dist/api/controllers/deploy/index.js +0 -198
  121. package/dist/api/controllers/dev.js +0 -146
  122. package/dist/api/controllers/integration.js +0 -28
  123. package/dist/api/controllers/layout.js +0 -49
  124. package/dist/api/controllers/metadata.js +0 -63
  125. package/dist/api/controllers/migrations.js +0 -29
  126. package/dist/api/controllers/ops.js +0 -40
  127. package/dist/api/controllers/permission.js +0 -162
  128. package/dist/api/controllers/plugin/file.js +0 -24
  129. package/dist/api/controllers/plugin/github.js +0 -69
  130. package/dist/api/controllers/plugin/index.js +0 -112
  131. package/dist/api/controllers/plugin/npm.js +0 -58
  132. package/dist/api/controllers/plugin/uploaders.js +0 -11
  133. package/dist/api/controllers/plugin/url.js +0 -24
  134. package/dist/api/controllers/plugin/utils.js +0 -27
  135. package/dist/api/controllers/public/applications.js +0 -146
  136. package/dist/api/controllers/public/mapping/applications.js +0 -29
  137. package/dist/api/controllers/public/mapping/index.js +0 -11
  138. package/dist/api/controllers/public/mapping/queries.js +0 -36
  139. package/dist/api/controllers/public/mapping/rows.js +0 -24
  140. package/dist/api/controllers/public/mapping/tables.js +0 -23
  141. package/dist/api/controllers/public/mapping/types.js +0 -2
  142. package/dist/api/controllers/public/mapping/users.js +0 -29
  143. package/dist/api/controllers/public/metrics.js +0 -113
  144. package/dist/api/controllers/public/queries.js +0 -58
  145. package/dist/api/controllers/public/rows.js +0 -120
  146. package/dist/api/controllers/public/tables.js +0 -95
  147. package/dist/api/controllers/public/users.js +0 -93
  148. package/dist/api/controllers/public/utils.js +0 -56
  149. package/dist/api/controllers/query/import/index.js +0 -87
  150. package/dist/api/controllers/query/import/sources/base/index.js +0 -75
  151. package/dist/api/controllers/query/import/sources/base/openapi.js +0 -42
  152. package/dist/api/controllers/query/import/sources/curl.js +0 -99
  153. package/dist/api/controllers/query/import/sources/openapi2.js +0 -145
  154. package/dist/api/controllers/query/import/sources/openapi3.js +0 -177
  155. package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
  156. package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
  157. package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
  158. package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
  159. package/dist/api/controllers/query/index.js +0 -299
  160. package/dist/api/controllers/query/validation.js +0 -53
  161. package/dist/api/controllers/role.js +0 -109
  162. package/dist/api/controllers/routing.js +0 -105
  163. package/dist/api/controllers/row/ExternalRequest.js +0 -683
  164. package/dist/api/controllers/row/external.js +0 -339
  165. package/dist/api/controllers/row/index.js +0 -203
  166. package/dist/api/controllers/row/internal.js +0 -509
  167. package/dist/api/controllers/row/internalSearch.js +0 -28
  168. package/dist/api/controllers/row/staticFormula.js +0 -165
  169. package/dist/api/controllers/row/utils.js +0 -183
  170. package/dist/api/controllers/screen.js +0 -110
  171. package/dist/api/controllers/script.js +0 -30
  172. package/dist/api/controllers/static/index.js +0 -268
  173. package/dist/api/controllers/table/bulkFormula.js +0 -173
  174. package/dist/api/controllers/table/external.js +0 -279
  175. package/dist/api/controllers/table/index.js +0 -179
  176. package/dist/api/controllers/table/internal.js +0 -197
  177. package/dist/api/controllers/table/utils.js +0 -379
  178. package/dist/api/controllers/templates.js +0 -56
  179. package/dist/api/controllers/user.js +0 -124
  180. package/dist/api/controllers/view/exporters.js +0 -46
  181. package/dist/api/controllers/view/index.js +0 -193
  182. package/dist/api/controllers/view/utils.js +0 -177
  183. package/dist/api/controllers/view/viewBuilder.js +0 -158
  184. package/dist/api/controllers/webhook.js +0 -134
  185. package/dist/api/index.js +0 -55
  186. package/dist/api/routes/analytics.js +0 -34
  187. package/dist/api/routes/apikeys.js +0 -37
  188. package/dist/api/routes/application.js +0 -48
  189. package/dist/api/routes/auth.js +0 -33
  190. package/dist/api/routes/automation.js +0 -50
  191. package/dist/api/routes/backup.js +0 -35
  192. package/dist/api/routes/component.js +0 -35
  193. package/dist/api/routes/datasource.js +0 -45
  194. package/dist/api/routes/deploy.js +0 -37
  195. package/dist/api/routes/dev.js +0 -49
  196. package/dist/api/routes/index.js +0 -75
  197. package/dist/api/routes/integration.js +0 -37
  198. package/dist/api/routes/layout.js +0 -37
  199. package/dist/api/routes/metadata.js +0 -40
  200. package/dist/api/routes/migrations.js +0 -36
  201. package/dist/api/routes/ops.js +0 -52
  202. package/dist/api/routes/permission.js +0 -44
  203. package/dist/api/routes/plugin.js +0 -39
  204. package/dist/api/routes/public/applications.js +0 -174
  205. package/dist/api/routes/public/index.js +0 -140
  206. package/dist/api/routes/public/metrics.js +0 -30
  207. package/dist/api/routes/public/middleware/mapper.js +0 -97
  208. package/dist/api/routes/public/queries.js +0 -72
  209. package/dist/api/routes/public/rows.js +0 -158
  210. package/dist/api/routes/public/tables.js +0 -152
  211. package/dist/api/routes/public/users.js +0 -135
  212. package/dist/api/routes/public/utils/Endpoint.js +0 -36
  213. package/dist/api/routes/query.js +0 -47
  214. package/dist/api/routes/role.js +0 -40
  215. package/dist/api/routes/routing.js +0 -39
  216. package/dist/api/routes/row.js +0 -239
  217. package/dist/api/routes/screen.js +0 -39
  218. package/dist/api/routes/script.js +0 -35
  219. package/dist/api/routes/static.js +0 -80
  220. package/dist/api/routes/table.js +0 -163
  221. package/dist/api/routes/templates.js +0 -37
  222. package/dist/api/routes/user.js +0 -43
  223. package/dist/api/routes/utils/validators.js +0 -238
  224. package/dist/api/routes/view.js +0 -42
  225. package/dist/api/routes/webhook.js +0 -43
  226. package/dist/app.js +0 -132
  227. package/dist/automations/actions.js +0 -137
  228. package/dist/automations/automationUtils.js +0 -173
  229. package/dist/automations/bullboard.js +0 -71
  230. package/dist/automations/index.js +0 -43
  231. package/dist/automations/logging/index.js +0 -53
  232. package/dist/automations/steps/bash.js +0 -111
  233. package/dist/automations/steps/createRow.js +0 -108
  234. package/dist/automations/steps/delay.js +0 -53
  235. package/dist/automations/steps/deleteRow.js +0 -96
  236. package/dist/automations/steps/discord.js +0 -116
  237. package/dist/automations/steps/executeQuery.js +0 -134
  238. package/dist/automations/steps/executeScript.js +0 -106
  239. package/dist/automations/steps/filter.js +0 -112
  240. package/dist/automations/steps/loop.js +0 -54
  241. package/dist/automations/steps/make.js +0 -134
  242. package/dist/automations/steps/outgoingWebhook.js +0 -166
  243. package/dist/automations/steps/queryRows.js +0 -216
  244. package/dist/automations/steps/sendSmtpEmail.js +0 -115
  245. package/dist/automations/steps/serverLog.js +0 -65
  246. package/dist/automations/steps/slack.js +0 -98
  247. package/dist/automations/steps/updateRow.js +0 -144
  248. package/dist/automations/steps/utils.js +0 -56
  249. package/dist/automations/steps/zapier.js +0 -130
  250. package/dist/automations/triggerInfo/app.js +0 -36
  251. package/dist/automations/triggerInfo/cron.js +0 -35
  252. package/dist/automations/triggerInfo/index.js +0 -40
  253. package/dist/automations/triggerInfo/rowDeleted.js +0 -36
  254. package/dist/automations/triggerInfo/rowSaved.js +0 -44
  255. package/dist/automations/triggerInfo/rowUpdated.js +0 -44
  256. package/dist/automations/triggerInfo/webhook.js +0 -40
  257. package/dist/automations/triggers.js +0 -181
  258. package/dist/automations/utils.js +0 -275
  259. package/dist/constants/definitions.js +0 -2
  260. package/dist/constants/index.js +0 -181
  261. package/dist/constants/layouts.js +0 -148
  262. package/dist/constants/screens.js +0 -51
  263. package/dist/db/defaultData/datasource_bb_default.js +0 -574
  264. package/dist/db/defaultData/employeeImport.js +0 -155
  265. package/dist/db/defaultData/expensesImport.js +0 -117
  266. package/dist/db/defaultData/inventoryImport.js +0 -109
  267. package/dist/db/defaultData/jobsImport.js +0 -152
  268. package/dist/db/dynamoClient.js +0 -124
  269. package/dist/db/inMemoryView.js +0 -62
  270. package/dist/db/index.js +0 -43
  271. package/dist/db/linkedRows/LinkController.js +0 -392
  272. package/dist/db/linkedRows/LinkDocument.js +0 -33
  273. package/dist/db/linkedRows/index.js +0 -206
  274. package/dist/db/linkedRows/linkUtils.js +0 -131
  275. package/dist/db/newid.js +0 -7
  276. package/dist/db/utils.js +0 -248
  277. package/dist/db/views/staticViews.js +0 -144
  278. package/dist/ddApm.js +0 -11
  279. package/dist/definitions/automations.js +0 -8
  280. package/dist/definitions/common.js +0 -2
  281. package/dist/definitions/datasource.js +0 -7
  282. package/dist/definitions/openapi.js +0 -6
  283. package/dist/environment.js +0 -109
  284. package/dist/events/AutomationEmitter.js +0 -53
  285. package/dist/events/BudibaseEmitter.js +0 -25
  286. package/dist/events/docUpdates/index.js +0 -17
  287. package/dist/events/docUpdates/processors.js +0 -18
  288. package/dist/events/docUpdates/syncUsers.js +0 -49
  289. package/dist/events/index.js +0 -11
  290. package/dist/events/utils.js +0 -43
  291. package/dist/integrations/airtable.js +0 -173
  292. package/dist/integrations/arangodb.js +0 -119
  293. package/dist/integrations/base/query.js +0 -32
  294. package/dist/integrations/base/sql.js +0 -600
  295. package/dist/integrations/base/sqlTable.js +0 -167
  296. package/dist/integrations/base/types.js +0 -2
  297. package/dist/integrations/couchdb.js +0 -140
  298. package/dist/integrations/dynamodb.js +0 -210
  299. package/dist/integrations/elasticsearch.js +0 -201
  300. package/dist/integrations/firebase.js +0 -189
  301. package/dist/integrations/googlesheets.js +0 -493
  302. package/dist/integrations/index.js +0 -138
  303. package/dist/integrations/microsoftSqlServer.js +0 -308
  304. package/dist/integrations/mongodb.js +0 -630
  305. package/dist/integrations/mysql.js +0 -291
  306. package/dist/integrations/oracle.js +0 -415
  307. package/dist/integrations/postgres.js +0 -335
  308. package/dist/integrations/queries/sql.js +0 -84
  309. package/dist/integrations/redis.js +0 -187
  310. package/dist/integrations/rest.js +0 -400
  311. package/dist/integrations/s3.js +0 -256
  312. package/dist/integrations/snowflake.js +0 -114
  313. package/dist/integrations/utils.js +0 -295
  314. package/dist/middleware/appInfo.js +0 -22
  315. package/dist/middleware/authorized.js +0 -112
  316. package/dist/middleware/builder.js +0 -93
  317. package/dist/middleware/currentapp.js +0 -103
  318. package/dist/middleware/joi-validator.js +0 -43
  319. package/dist/middleware/publicApi.js +0 -25
  320. package/dist/middleware/resourceId.js +0 -59
  321. package/dist/middleware/selfhost.js +0 -24
  322. package/dist/middleware/utils.js +0 -8
  323. package/dist/migrations/functions/appUrls.js +0 -42
  324. package/dist/migrations/functions/backfill/app/automations.js +0 -31
  325. package/dist/migrations/functions/backfill/app/datasources.js +0 -28
  326. package/dist/migrations/functions/backfill/app/layouts.js +0 -33
  327. package/dist/migrations/functions/backfill/app/queries.js +0 -49
  328. package/dist/migrations/functions/backfill/app/roles.js +0 -28
  329. package/dist/migrations/functions/backfill/app/screens.js +0 -28
  330. package/dist/migrations/functions/backfill/app/tables.js +0 -37
  331. package/dist/migrations/functions/backfill/app.js +0 -176
  332. package/dist/migrations/functions/backfill/global/configs.js +0 -67
  333. package/dist/migrations/functions/backfill/global/quotas.js +0 -60
  334. package/dist/migrations/functions/backfill/global/users.js +0 -50
  335. package/dist/migrations/functions/backfill/global.js +0 -205
  336. package/dist/migrations/functions/backfill/index.js +0 -32
  337. package/dist/migrations/functions/backfill/installation.js +0 -80
  338. package/dist/migrations/functions/syncQuotas.js +0 -52
  339. package/dist/migrations/functions/tableSettings.js +0 -130
  340. package/dist/migrations/functions/usageQuotas/index.js +0 -16
  341. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -24
  342. package/dist/migrations/functions/usageQuotas/syncPlugins.js +0 -23
  343. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  344. package/dist/migrations/functions/usageQuotas/syncUsers.js +0 -21
  345. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  346. package/dist/migrations/index.js +0 -111
  347. package/dist/migrations/tests/helpers.js +0 -72
  348. package/dist/migrations/tests/structures.js +0 -37
  349. package/dist/sdk/app/applications/index.js +0 -28
  350. package/dist/sdk/app/applications/sync.js +0 -164
  351. package/dist/sdk/app/applications/utils.js +0 -21
  352. package/dist/sdk/app/automations/index.js +0 -29
  353. package/dist/sdk/app/automations/webhook.js +0 -54
  354. package/dist/sdk/app/backups/constants.js +0 -6
  355. package/dist/sdk/app/backups/exports.js +0 -160
  356. package/dist/sdk/app/backups/imports.js +0 -170
  357. package/dist/sdk/app/backups/index.js +0 -29
  358. package/dist/sdk/app/backups/statistics.js +0 -73
  359. package/dist/sdk/app/datasources/datasources.js +0 -173
  360. package/dist/sdk/app/datasources/index.js +0 -27
  361. package/dist/sdk/app/queries/index.js +0 -27
  362. package/dist/sdk/app/queries/queries.js +0 -60
  363. package/dist/sdk/app/rows/attachments.js +0 -61
  364. package/dist/sdk/app/rows/index.js +0 -28
  365. package/dist/sdk/app/rows/rows.js +0 -30
  366. package/dist/sdk/app/tables/index.js +0 -65
  367. package/dist/sdk/index.js +0 -27
  368. package/dist/sdk/plugins/index.js +0 -27
  369. package/dist/sdk/plugins/plugins.js +0 -53
  370. package/dist/sdk/users/index.js +0 -27
  371. package/dist/sdk/users/utils.js +0 -87
  372. package/dist/sdk/utils/index.js +0 -29
  373. package/dist/startup.js +0 -158
  374. package/dist/threads/automation.js +0 -450
  375. package/dist/threads/definitions.js +0 -2
  376. package/dist/threads/index.js +0 -140
  377. package/dist/threads/query.js +0 -265
  378. package/dist/threads/utils.js +0 -120
  379. package/dist/tsconfig.build.tsbuildinfo +0 -1
  380. package/dist/utilities/appDirectoryTemplate/package.json +0 -10
  381. package/dist/utilities/budibaseDir.js +0 -5
  382. package/dist/utilities/centralPath.js +0 -27
  383. package/dist/utilities/csv.js +0 -33
  384. package/dist/utilities/fileSystem/app.js +0 -88
  385. package/dist/utilities/fileSystem/clientLibrary.js +0 -138
  386. package/dist/utilities/fileSystem/filesystem.js +0 -180
  387. package/dist/utilities/fileSystem/index.js +0 -21
  388. package/dist/utilities/fileSystem/plugin.js +0 -76
  389. package/dist/utilities/fileSystem/processor.js +0 -34
  390. package/dist/utilities/fileSystem/template.js +0 -47
  391. package/dist/utilities/global.js +0 -149
  392. package/dist/utilities/index.js +0 -143
  393. package/dist/utilities/redis.js +0 -117
  394. package/dist/utilities/retry.js +0 -30
  395. package/dist/utilities/routing/index.js +0 -39
  396. package/dist/utilities/rowProcessor/index.js +0 -282
  397. package/dist/utilities/rowProcessor/map.js +0 -116
  398. package/dist/utilities/rowProcessor/utils.js +0 -87
  399. package/dist/utilities/schema.js +0 -112
  400. package/dist/utilities/scriptRunner.js +0 -26
  401. package/dist/utilities/security.js +0 -57
  402. package/dist/utilities/statusCodes.js +0 -9
  403. package/dist/utilities/usageQuota/rows.js +0 -88
  404. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  405. package/dist/utilities/users.js +0 -57
  406. package/dist/utilities/workerRequests.js +0 -171
  407. package/dist/watch.js +0 -53
  408. package/dist/websockets/client.js +0 -14
  409. package/dist/websockets/grid.js +0 -60
  410. package/dist/websockets/index.js +0 -17
  411. package/dist/websockets/websocket.js +0 -78
  412. /package/dist/{api/controllers/static/templates/BudibaseApp.svelte → BudibaseApp-Y5NZEDTC.svelte} +0 -0
  413. /package/dist/{api/controllers/static/templates/app.hbs → app.hbs} +0 -0
  414. /package/dist/{api/controllers/static/templates/preview.hbs → preview.hbs} +0 -0
@@ -1,339 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __rest = (this && this.__rest) || function (s, e) {
35
- var t = {};
36
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
- t[p] = s[p];
38
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
- t[p[i]] = s[p[i]];
42
- }
43
- return t;
44
- };
45
- var __importDefault = (this && this.__importDefault) || function (mod) {
46
- return (mod && mod.__esModule) ? mod : { "default": mod };
47
- };
48
- Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.fetchEnrichedRow = exports.exportRows = exports.search = exports.bulkDestroy = exports.destroy = exports.find = exports.fetch = exports.fetchView = exports.save = exports.patch = exports.handleRequest = void 0;
50
- const constants_1 = require("../../../constants");
51
- const utils_1 = require("../../../integrations/utils");
52
- const ExternalRequest_1 = require("./ExternalRequest");
53
- const exporters = __importStar(require("../view/exporters"));
54
- const fileSystem_1 = require("../../../utilities/fileSystem");
55
- const types_1 = require("@budibase/types");
56
- const sdk_1 = __importDefault(require("../../../sdk"));
57
- const utils = __importStar(require("./utils"));
58
- const { cleanExportRows } = require("./utils");
59
- function handleRequest(operation, tableId, opts) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
62
- if (opts && opts.filters) {
63
- for (let filterField of constants_1.NoEmptyFilterStrings) {
64
- if (!opts.filters[filterField]) {
65
- continue;
66
- }
67
- // @ts-ignore
68
- for (let [key, value] of Object.entries(opts.filters[filterField])) {
69
- if (!value || value === "") {
70
- // @ts-ignore
71
- delete opts.filters[filterField][key];
72
- }
73
- }
74
- }
75
- }
76
- return new ExternalRequest_1.ExternalRequest(operation, tableId, opts === null || opts === void 0 ? void 0 : opts.datasource).run(opts || {});
77
- });
78
- }
79
- exports.handleRequest = handleRequest;
80
- function patch(ctx) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const inputs = ctx.request.body;
83
- const tableId = ctx.params.tableId;
84
- const id = inputs._id;
85
- // don't save the ID to db
86
- delete inputs._id;
87
- const validateResult = yield utils.validate({
88
- row: inputs,
89
- tableId,
90
- });
91
- if (!validateResult.valid) {
92
- throw { validation: validateResult.errors };
93
- }
94
- return handleRequest(types_1.Operation.UPDATE, tableId, {
95
- id: (0, utils_1.breakRowIdField)(id),
96
- row: inputs,
97
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
98
- });
99
- });
100
- }
101
- exports.patch = patch;
102
- function save(ctx) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const inputs = ctx.request.body;
105
- const tableId = ctx.params.tableId;
106
- const validateResult = yield utils.validate({
107
- row: inputs,
108
- tableId,
109
- });
110
- if (!validateResult.valid) {
111
- throw { validation: validateResult.errors };
112
- }
113
- return handleRequest(types_1.Operation.CREATE, tableId, {
114
- row: inputs,
115
- includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
116
- });
117
- });
118
- }
119
- exports.save = save;
120
- function fetchView(ctx) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- // there are no views in external datasources, shouldn't ever be called
123
- // for now just fetch
124
- const split = ctx.params.viewName.split("all_");
125
- ctx.params.tableId = split[1] ? split[1] : split[0];
126
- return fetch(ctx);
127
- });
128
- }
129
- exports.fetchView = fetchView;
130
- function fetch(ctx) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const tableId = ctx.params.tableId;
133
- return handleRequest(types_1.Operation.READ, tableId, {
134
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
135
- });
136
- });
137
- }
138
- exports.fetch = fetch;
139
- function find(ctx) {
140
- return __awaiter(this, void 0, void 0, function* () {
141
- const id = ctx.params.rowId;
142
- const tableId = ctx.params.tableId;
143
- const response = (yield handleRequest(types_1.Operation.READ, tableId, {
144
- id: (0, utils_1.breakRowIdField)(id),
145
- includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
146
- }));
147
- return response ? response[0] : response;
148
- });
149
- }
150
- exports.find = find;
151
- function destroy(ctx) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- const tableId = ctx.params.tableId;
154
- const id = ctx.request.body._id;
155
- const { row } = (yield handleRequest(types_1.Operation.DELETE, tableId, {
156
- id: (0, utils_1.breakRowIdField)(id),
157
- includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
158
- }));
159
- return { response: { ok: true }, row };
160
- });
161
- }
162
- exports.destroy = destroy;
163
- function bulkDestroy(ctx) {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- const { rows } = ctx.request.body;
166
- const tableId = ctx.params.tableId;
167
- let promises = [];
168
- for (let row of rows) {
169
- promises.push(handleRequest(types_1.Operation.DELETE, tableId, {
170
- id: (0, utils_1.breakRowIdField)(row._id),
171
- includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
172
- }));
173
- }
174
- const responses = (yield Promise.all(promises));
175
- return { response: { ok: true }, rows: responses.map(resp => resp.row) };
176
- });
177
- }
178
- exports.bulkDestroy = bulkDestroy;
179
- function search(ctx) {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- const tableId = ctx.params.tableId;
182
- const _a = ctx.request.body, { paginate, query } = _a, params = __rest(_a, ["paginate", "query"]);
183
- let { bookmark, limit } = params;
184
- if (!bookmark && paginate) {
185
- bookmark = 1;
186
- }
187
- let paginateObj = {};
188
- if (paginate) {
189
- paginateObj = {
190
- // add one so we can track if there is another page
191
- limit: limit,
192
- page: bookmark,
193
- };
194
- }
195
- else if (params && limit) {
196
- paginateObj = {
197
- limit: limit,
198
- };
199
- }
200
- let sort;
201
- if (params.sort) {
202
- const direction = params.sortOrder === "descending"
203
- ? constants_1.SortDirection.DESCENDING
204
- : constants_1.SortDirection.ASCENDING;
205
- sort = {
206
- [params.sort]: { direction },
207
- };
208
- }
209
- try {
210
- const rows = (yield handleRequest(types_1.Operation.READ, tableId, {
211
- filters: query,
212
- sort,
213
- paginate: paginateObj,
214
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
215
- }));
216
- let hasNextPage = false;
217
- if (paginate && rows.length === limit) {
218
- const nextRows = (yield handleRequest(types_1.Operation.READ, tableId, {
219
- filters: query,
220
- sort,
221
- paginate: {
222
- limit: 1,
223
- page: bookmark * limit + 1,
224
- },
225
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
226
- }));
227
- hasNextPage = nextRows.length > 0;
228
- }
229
- // need wrapper object for bookmarks etc when paginating
230
- return { rows, hasNextPage, bookmark: bookmark + 1 };
231
- }
232
- catch (err) {
233
- if (err.message && err.message.includes("does not exist")) {
234
- throw new Error(`Table updated externally, please re-fetch - ${err.message}`);
235
- }
236
- else {
237
- throw err;
238
- }
239
- }
240
- });
241
- }
242
- exports.search = search;
243
- function exportRows(ctx) {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- const { datasourceId, tableName } = (0, utils_1.breakExternalTableId)(ctx.params.tableId);
246
- const format = ctx.query.format;
247
- const { columns } = ctx.request.body;
248
- const datasource = yield sdk_1.default.datasources.get(datasourceId);
249
- if (!datasource || !datasource.entities) {
250
- ctx.throw(400, "Datasource has not been configured for plus API.");
251
- }
252
- if (ctx.request.body.rows) {
253
- ctx.request.body = {
254
- query: {
255
- oneOf: {
256
- _id: ctx.request.body.rows.map((row) => JSON.parse(decodeURI(row))[0]),
257
- },
258
- },
259
- };
260
- }
261
- let result = yield search(ctx);
262
- let rows = [];
263
- // Filter data to only specified columns if required
264
- if (columns && columns.length) {
265
- for (let i = 0; i < result.rows.length; i++) {
266
- rows[i] = {};
267
- for (let column of columns) {
268
- rows[i][column] = result.rows[i][column];
269
- }
270
- }
271
- }
272
- else {
273
- rows = result.rows;
274
- }
275
- if (!tableName) {
276
- ctx.throw(400, "Could not find table name.");
277
- }
278
- let schema = datasource.entities[tableName].schema;
279
- let exportRows = cleanExportRows(rows, schema, format, columns);
280
- let headers = Object.keys(schema);
281
- // @ts-ignore
282
- const exporter = exporters[format];
283
- const filename = `export.${format}`;
284
- // send down the file
285
- ctx.attachment(filename);
286
- return (0, fileSystem_1.apiFileReturn)(exporter(headers, exportRows));
287
- });
288
- }
289
- exports.exportRows = exportRows;
290
- function fetchEnrichedRow(ctx) {
291
- var _a;
292
- return __awaiter(this, void 0, void 0, function* () {
293
- const id = ctx.params.rowId;
294
- const tableId = ctx.params.tableId;
295
- const { datasourceId, tableName } = (0, utils_1.breakExternalTableId)(tableId);
296
- const datasource = yield sdk_1.default.datasources.get(datasourceId);
297
- if (!tableName) {
298
- ctx.throw(400, "Unable to find table.");
299
- }
300
- if (!datasource || !datasource.entities) {
301
- ctx.throw(400, "Datasource has not been configured for plus API.");
302
- }
303
- const tables = datasource.entities;
304
- const response = (yield handleRequest(types_1.Operation.READ, tableId, {
305
- id,
306
- datasource,
307
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
308
- }));
309
- const table = tables[tableName];
310
- const row = response[0];
311
- // this seems like a lot of work, but basically we need to dig deeper for the enrich
312
- // for a single row, there is probably a better way to do this with some smart multi-layer joins
313
- for (let [fieldName, field] of Object.entries(table.schema)) {
314
- if (field.type !== constants_1.FieldTypes.LINK ||
315
- !row[fieldName] ||
316
- row[fieldName].length === 0) {
317
- continue;
318
- }
319
- const links = row[fieldName];
320
- const linkedTableId = field.tableId;
321
- const linkedTableName = (0, utils_1.breakExternalTableId)(linkedTableId).tableName;
322
- const linkedTable = tables[linkedTableName];
323
- // don't support composite keys right now
324
- const linkedIds = links.map((link) => (0, utils_1.breakRowIdField)(link._id)[0]);
325
- const primaryLink = (_a = linkedTable.primary) === null || _a === void 0 ? void 0 : _a[0];
326
- row[fieldName] = yield handleRequest(types_1.Operation.READ, linkedTableId, {
327
- tables,
328
- filters: {
329
- oneOf: {
330
- [primaryLink]: linkedIds,
331
- },
332
- },
333
- includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
334
- });
335
- }
336
- return row;
337
- });
338
- }
339
- exports.fetchEnrichedRow = fetchEnrichedRow;
@@ -1,203 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.exportRows = exports.fetchEnrichedRow = exports.validate = exports.search = exports.destroy = exports.find = exports.fetch = exports.fetchView = exports.save = exports.patch = void 0;
36
- const pro_1 = require("@budibase/pro");
37
- const internal = __importStar(require("./internal"));
38
- const external = __importStar(require("./external"));
39
- const utils_1 = require("../../../integrations/utils");
40
- const utils = __importStar(require("./utils"));
41
- function pickApi(tableId) {
42
- if ((0, utils_1.isExternalTable)(tableId)) {
43
- return external;
44
- }
45
- return internal;
46
- }
47
- function getTableId(ctx) {
48
- if (ctx.request.body && ctx.request.body.tableId) {
49
- return ctx.request.body.tableId;
50
- }
51
- if (ctx.params && ctx.params.tableId) {
52
- return ctx.params.tableId;
53
- }
54
- if (ctx.params && ctx.params.viewName) {
55
- return ctx.params.viewName;
56
- }
57
- }
58
- function patch(ctx) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- const appId = ctx.appId;
61
- const tableId = getTableId(ctx);
62
- const body = ctx.request.body;
63
- // if it doesn't have an _id then its save
64
- if (body && !body._id) {
65
- return (0, exports.save)(ctx);
66
- }
67
- try {
68
- const { row, table } = yield pro_1.quotas.addQuery(() => pickApi(tableId).patch(ctx), {
69
- datasourceId: tableId,
70
- });
71
- if (!row) {
72
- ctx.throw(404, "Row not found");
73
- }
74
- ctx.status = 200;
75
- ctx.eventEmitter &&
76
- ctx.eventEmitter.emitRow(`row:update`, appId, row, table);
77
- ctx.message = `${table.name} updated successfully.`;
78
- ctx.body = row;
79
- }
80
- catch (err) {
81
- ctx.throw(400, err);
82
- }
83
- });
84
- }
85
- exports.patch = patch;
86
- const save = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
87
- const appId = ctx.appId;
88
- const tableId = getTableId(ctx);
89
- const body = ctx.request.body;
90
- // if it has an ID already then its a patch
91
- if (body && body._id) {
92
- return patch(ctx);
93
- }
94
- const { row, table } = yield pro_1.quotas.addRow(() => pro_1.quotas.addQuery(() => pickApi(tableId).save(ctx), {
95
- datasourceId: tableId,
96
- }));
97
- ctx.status = 200;
98
- ctx.eventEmitter && ctx.eventEmitter.emitRow(`row:save`, appId, row, table);
99
- ctx.message = `${table.name} saved successfully`;
100
- ctx.body = row;
101
- });
102
- exports.save = save;
103
- function fetchView(ctx) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- const tableId = getTableId(ctx);
106
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).fetchView(ctx), {
107
- datasourceId: tableId,
108
- });
109
- });
110
- }
111
- exports.fetchView = fetchView;
112
- function fetch(ctx) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- const tableId = getTableId(ctx);
115
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).fetch(ctx), {
116
- datasourceId: tableId,
117
- });
118
- });
119
- }
120
- exports.fetch = fetch;
121
- function find(ctx) {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- const tableId = getTableId(ctx);
124
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).find(ctx), {
125
- datasourceId: tableId,
126
- });
127
- });
128
- }
129
- exports.find = find;
130
- function destroy(ctx) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const appId = ctx.appId;
133
- const inputs = ctx.request.body;
134
- const tableId = getTableId(ctx);
135
- let response, row;
136
- if (inputs.rows) {
137
- let { rows } = yield pro_1.quotas.addQuery(() => pickApi(tableId).bulkDestroy(ctx), {
138
- datasourceId: tableId,
139
- });
140
- yield pro_1.quotas.removeRows(rows.length);
141
- response = rows;
142
- for (let row of rows) {
143
- ctx.eventEmitter && ctx.eventEmitter.emitRow(`row:delete`, appId, row);
144
- }
145
- }
146
- else {
147
- let resp = yield pro_1.quotas.addQuery(() => pickApi(tableId).destroy(ctx), {
148
- datasourceId: tableId,
149
- });
150
- yield pro_1.quotas.removeRow();
151
- response = resp.response;
152
- row = resp.row;
153
- ctx.eventEmitter && ctx.eventEmitter.emitRow(`row:delete`, appId, row);
154
- }
155
- ctx.status = 200;
156
- // for automations include the row that was deleted
157
- ctx.row = row || {};
158
- ctx.body = response;
159
- });
160
- }
161
- exports.destroy = destroy;
162
- function search(ctx) {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- const tableId = getTableId(ctx);
165
- ctx.status = 200;
166
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).search(ctx), {
167
- datasourceId: tableId,
168
- });
169
- });
170
- }
171
- exports.search = search;
172
- function validate(ctx) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- const tableId = getTableId(ctx);
175
- // external tables are hard to validate currently
176
- if ((0, utils_1.isExternalTable)(tableId)) {
177
- ctx.body = { valid: true };
178
- }
179
- else {
180
- ctx.body = yield utils.validate({
181
- row: ctx.request.body,
182
- tableId,
183
- });
184
- }
185
- });
186
- }
187
- exports.validate = validate;
188
- function fetchEnrichedRow(ctx) {
189
- return __awaiter(this, void 0, void 0, function* () {
190
- const tableId = getTableId(ctx);
191
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).fetchEnrichedRow(ctx), {
192
- datasourceId: tableId,
193
- });
194
- });
195
- }
196
- exports.fetchEnrichedRow = fetchEnrichedRow;
197
- const exportRows = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
198
- const tableId = getTableId(ctx);
199
- ctx.body = yield pro_1.quotas.addQuery(() => pickApi(tableId).exportRows(ctx), {
200
- datasourceId: tableId,
201
- });
202
- });
203
- exports.exportRows = exportRows;