@budibase/server 1.3.21-alpha.1 → 1.3.21

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 (308) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/builder/assets/index.8d12d461.css +6 -0
  3. package/builder/assets/index.d354271c.js +879 -0
  4. package/builder/assets/vendor.5e1fe644.css +1 -0
  5. package/builder/assets/vendor.67dbd8fa.js +248 -0
  6. package/builder/index.html +4 -2
  7. package/coverage/clover.xml +390 -451
  8. package/coverage/coverage-final.json +21 -21
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +8 -41
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +11 -68
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +34 -73
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +46 -46
  18. package/coverage/lcov-report/api/controllers/integration.js.html +6 -6
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  28. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +12 -207
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  47. package/coverage/lcov-report/api/index.html +1 -1
  48. package/coverage/lcov-report/api/index.js.html +13 -13
  49. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/index.html +1 -1
  60. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  71. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/utils/index.html +9 -9
  74. package/coverage/lcov-report/api/routes/utils/validators.js.html +12 -75
  75. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  77. package/coverage/lcov-report/automations/actions.js.html +1 -1
  78. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  79. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  80. package/coverage/lcov-report/automations/index.html +1 -1
  81. package/coverage/lcov-report/automations/index.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/index.html +1 -1
  89. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  108. package/coverage/lcov-report/constants/index.html +1 -1
  109. package/coverage/lcov-report/constants/index.js.html +1 -1
  110. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  111. package/coverage/lcov-report/constants/screens.js.html +1 -1
  112. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  113. package/coverage/lcov-report/db/index.html +18 -18
  114. package/coverage/lcov-report/db/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  117. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  118. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  119. package/coverage/lcov-report/db/newid.js.html +2 -2
  120. package/coverage/lcov-report/db/utils.js.html +20 -56
  121. package/coverage/lcov-report/events/AutomationEmitter.js.html +3 -3
  122. package/coverage/lcov-report/events/index.html +1 -1
  123. package/coverage/lcov-report/events/index.js.html +1 -1
  124. package/coverage/lcov-report/events/utils.js.html +1 -1
  125. package/coverage/lcov-report/index.html +46 -46
  126. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  127. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  128. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  129. package/coverage/lcov-report/middleware/builder.js.html +12 -12
  130. package/coverage/lcov-report/middleware/currentapp.js.html +40 -46
  131. package/coverage/lcov-report/middleware/index.html +15 -15
  132. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  133. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  134. package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
  135. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  136. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  137. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  138. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  139. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  140. package/coverage/lcov-report/utilities/global.js.html +16 -16
  141. package/coverage/lcov-report/utilities/index.html +15 -15
  142. package/coverage/lcov-report/utilities/index.js.html +24 -24
  143. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  144. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  145. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  150. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  151. package/coverage/lcov-report/utilities/security.js.html +2 -2
  152. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  153. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  156. package/coverage/lcov-report/utilities/users.js.html +1 -1
  157. package/coverage/lcov-report/utilities/workerRequests.js.html +8 -32
  158. package/coverage/lcov.info +672 -798
  159. package/dist/api/controllers/application.js +5 -5
  160. package/dist/api/controllers/auth.js +0 -9
  161. package/dist/api/controllers/component.js +1 -14
  162. package/dist/api/controllers/datasource.js +8 -21
  163. package/dist/api/controllers/deploy/index.js +8 -1
  164. package/dist/api/controllers/integration.js +4 -4
  165. package/dist/api/controllers/row/external.js +1 -1
  166. package/dist/api/controllers/screen.js +2 -52
  167. package/dist/api/controllers/static/index.js +0 -1
  168. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -10
  169. package/dist/api/controllers/static/templates/preview.hbs +1 -5
  170. package/dist/api/index.js +1 -1
  171. package/dist/api/routes/application.js +2 -3
  172. package/dist/api/routes/index.js +0 -2
  173. package/dist/api/routes/public/rows.js +82 -1
  174. package/dist/api/routes/public/tables.js +1 -1
  175. package/dist/api/routes/table.js +1 -1
  176. package/dist/api/routes/utils/validators.js +2 -20
  177. package/dist/app.js +1 -16
  178. package/dist/db/utils.js +1 -10
  179. package/dist/environment.js +0 -1
  180. package/dist/integrations/airtable.js +129 -126
  181. package/dist/integrations/arangodb.js +89 -86
  182. package/dist/integrations/base/query.js +2 -2
  183. package/dist/integrations/base/sqlTable.js +1 -3
  184. package/dist/integrations/couchdb.js +83 -80
  185. package/dist/integrations/dynamodb.js +164 -161
  186. package/dist/integrations/elasticsearch.js +138 -135
  187. package/dist/integrations/firebase.js +157 -154
  188. package/dist/integrations/googlesheets.js +327 -323
  189. package/dist/integrations/index.js +51 -99
  190. package/dist/integrations/microsoftSqlServer.js +243 -240
  191. package/dist/integrations/mongodb.js +242 -239
  192. package/dist/integrations/mysql.js +219 -215
  193. package/dist/integrations/oracle.js +322 -318
  194. package/dist/integrations/postgres.js +265 -262
  195. package/dist/integrations/redis.js +139 -134
  196. package/dist/integrations/rest.js +292 -289
  197. package/dist/integrations/s3.js +64 -61
  198. package/dist/integrations/snowflake.js +86 -83
  199. package/dist/middleware/currentapp.js +0 -2
  200. package/dist/migrations/functions/backfill/global.js +3 -0
  201. package/dist/migrations/functions/developerQuota.js +49 -0
  202. package/dist/{api/routes/plugin.js → migrations/functions/publishedAppsQuota.js} +21 -13
  203. package/dist/{api/controllers/plugin/url.js → migrations/functions/usageQuotas/syncDevelopers.js} +13 -13
  204. package/dist/{api/controllers/plugin/file.js → migrations/functions/usageQuotas/syncPublishedApps.js} +15 -13
  205. package/dist/migrations/index.js +10 -0
  206. package/dist/package.json +6 -9
  207. package/dist/tests/utilities/TestConfiguration.js +1 -1
  208. package/dist/threads/query.js +2 -2
  209. package/dist/tsconfig.build.tsbuildinfo +1 -1
  210. package/dist/utilities/fileSystem/index.js +1 -111
  211. package/dist/utilities/workerRequests.js +0 -4
  212. package/package.json +7 -10
  213. package/scripts/dev/manage.js +0 -4
  214. package/scripts/localdomain.js +1 -3
  215. package/specs/openapi.json +112 -115
  216. package/specs/openapi.yaml +94 -96
  217. package/specs/resources/misc.js +0 -116
  218. package/specs/resources/query.js +1 -1
  219. package/src/api/controllers/application.ts +2 -1
  220. package/src/api/controllers/auth.js +0 -11
  221. package/src/api/controllers/component.js +2 -21
  222. package/src/api/controllers/datasource.js +8 -21
  223. package/src/api/controllers/deploy/index.ts +6 -1
  224. package/src/api/controllers/integration.js +4 -4
  225. package/src/api/controllers/public/mapping/types.ts +0 -8
  226. package/src/api/controllers/row/external.js +1 -1
  227. package/src/api/controllers/screen.js +1 -66
  228. package/src/api/controllers/static/index.ts +1 -1
  229. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -10
  230. package/src/api/controllers/static/templates/preview.hbs +1 -5
  231. package/src/api/index.js +1 -1
  232. package/src/api/routes/application.ts +2 -13
  233. package/src/api/routes/index.ts +0 -2
  234. package/src/api/routes/public/rows.ts +82 -1
  235. package/src/api/routes/public/tables.ts +1 -1
  236. package/src/api/routes/table.js +1 -1
  237. package/src/api/routes/tests/query.spec.js +25 -8
  238. package/src/api/routes/tests/user.spec.js +2 -0
  239. package/src/api/routes/utils/validators.js +5 -26
  240. package/src/app.ts +2 -25
  241. package/src/db/utils.js +0 -12
  242. package/src/definitions/openapi.ts +55 -56
  243. package/src/environment.js +0 -1
  244. package/src/integrations/airtable.ts +118 -116
  245. package/src/integrations/arangodb.ts +89 -87
  246. package/src/integrations/base/query.ts +2 -2
  247. package/src/integrations/base/sqlTable.ts +1 -3
  248. package/src/integrations/couchdb.ts +89 -83
  249. package/src/integrations/dynamodb.ts +175 -173
  250. package/src/integrations/elasticsearch.ts +122 -120
  251. package/src/integrations/firebase.ts +159 -157
  252. package/src/integrations/googlesheets.ts +338 -328
  253. package/src/integrations/index.ts +21 -64
  254. package/src/integrations/microsoftSqlServer.ts +251 -249
  255. package/src/integrations/mongodb.ts +258 -261
  256. package/src/integrations/mysql.ts +234 -229
  257. package/src/integrations/oracle.ts +380 -373
  258. package/src/integrations/postgres.ts +268 -264
  259. package/src/integrations/redis.ts +132 -128
  260. package/src/integrations/rest.ts +329 -324
  261. package/src/integrations/s3.ts +71 -68
  262. package/src/integrations/snowflake.ts +82 -80
  263. package/src/integrations/tests/{airtable.spec.ts → airtable.spec.js} +18 -21
  264. package/src/integrations/tests/{arangodb.spec.ts → arangodb.spec.js} +9 -12
  265. package/src/integrations/tests/{couchdb.spec.ts → couchdb.spec.js} +27 -33
  266. package/src/integrations/tests/{dynamodb.spec.ts → dynamodb.spec.js} +41 -45
  267. package/src/integrations/tests/{elasticsearch.spec.ts → elasticsearch.spec.js} +21 -22
  268. package/src/integrations/tests/{firebase.spec.ts → firebase.spec.js} +28 -33
  269. package/src/integrations/tests/{microsoftSqlServer.spec.ts → microsoftSqlServer.spec.js} +11 -12
  270. package/src/integrations/tests/{mongo.spec.ts → mongo.spec.js} +35 -46
  271. package/src/integrations/tests/{mysql.spec.ts → mysql.spec.js} +15 -17
  272. package/src/integrations/tests/{oracle.spec.ts → oracle.spec.js} +17 -19
  273. package/src/integrations/tests/{postgres.spec.ts → postgres.spec.js} +17 -19
  274. package/src/integrations/tests/{redis.spec.ts → redis.spec.js} +18 -27
  275. package/src/integrations/tests/{rest.spec.ts → rest.spec.js} +14 -22
  276. package/src/integrations/tests/{s3.spec.ts → s3.spec.js} +8 -10
  277. package/src/integrations/tests/{sql.spec.ts → sql.spec.js} +177 -228
  278. package/src/middleware/currentapp.js +0 -2
  279. package/src/migrations/functions/backfill/global.ts +3 -0
  280. package/src/migrations/functions/developerQuota.ts +15 -0
  281. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  282. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  283. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  284. package/src/migrations/index.ts +16 -0
  285. package/src/module.d.ts +0 -2
  286. package/src/tests/utilities/TestConfiguration.js +1 -1
  287. package/src/threads/query.ts +2 -2
  288. package/src/utilities/fileSystem/index.js +0 -130
  289. package/src/utilities/workerRequests.js +0 -8
  290. package/builder/assets/index.c9d3f9e8.js +0 -1005
  291. package/builder/assets/index.f1b70f52.css +0 -6
  292. package/dist/api/controllers/plugin/github.js +0 -69
  293. package/dist/api/controllers/plugin/index.js +0 -200
  294. package/dist/api/controllers/plugin/npm.js +0 -58
  295. package/dist/api/controllers/plugin/uploaders.js +0 -11
  296. package/dist/api/controllers/plugin/utils.js +0 -26
  297. package/dist/watch.js +0 -77
  298. package/dist/websocket.js +0 -22
  299. package/src/api/controllers/plugin/file.ts +0 -15
  300. package/src/api/controllers/plugin/github.ts +0 -75
  301. package/src/api/controllers/plugin/index.ts +0 -215
  302. package/src/api/controllers/plugin/npm.ts +0 -56
  303. package/src/api/controllers/plugin/uploaders.ts +0 -4
  304. package/src/api/controllers/plugin/url.ts +0 -12
  305. package/src/api/controllers/plugin/utils.ts +0 -19
  306. package/src/api/routes/plugin.ts +0 -14
  307. package/src/watch.ts +0 -38
  308. package/src/websocket.ts +0 -26
@@ -1,83 +1,86 @@
1
1
  import { Integration, QueryType, IntegrationBase } from "@budibase/types"
2
- const AWS = require("aws-sdk")
3
2
 
4
- interface S3Config {
5
- region: string
6
- accessKeyId: string
7
- secretAccessKey: string
8
- s3ForcePathStyle: boolean
9
- endpoint?: string
10
- }
3
+ module S3Module {
4
+ const AWS = require("aws-sdk")
11
5
 
12
- const SCHEMA: Integration = {
13
- docs: "https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html",
14
- description:
15
- "Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
16
- friendlyName: "Amazon S3",
17
- type: "Object store",
18
- datasource: {
19
- region: {
20
- type: "string",
21
- required: false,
22
- default: "us-east-1",
23
- },
24
- accessKeyId: {
25
- type: "password",
26
- required: true,
27
- },
28
- secretAccessKey: {
29
- type: "password",
30
- required: true,
31
- },
32
- endpoint: {
33
- type: "string",
34
- required: false,
35
- },
36
- signatureVersion: {
37
- type: "string",
38
- required: false,
39
- default: "v4",
6
+ interface S3Config {
7
+ region: string
8
+ accessKeyId: string
9
+ secretAccessKey: string
10
+ s3ForcePathStyle: boolean
11
+ endpoint?: string
12
+ }
13
+
14
+ const SCHEMA: Integration = {
15
+ docs: "https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html",
16
+ description:
17
+ "Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
18
+ friendlyName: "Amazon S3",
19
+ type: "Object store",
20
+ datasource: {
21
+ region: {
22
+ type: "string",
23
+ required: false,
24
+ default: "us-east-1",
25
+ },
26
+ accessKeyId: {
27
+ type: "password",
28
+ required: true,
29
+ },
30
+ secretAccessKey: {
31
+ type: "password",
32
+ required: true,
33
+ },
34
+ endpoint: {
35
+ type: "string",
36
+ required: false,
37
+ },
38
+ signatureVersion: {
39
+ type: "string",
40
+ required: false,
41
+ default: "v4",
42
+ },
40
43
  },
41
- },
42
- query: {
43
- read: {
44
- type: QueryType.FIELDS,
45
- fields: {
46
- bucket: {
47
- type: "string",
48
- required: true,
44
+ query: {
45
+ read: {
46
+ type: QueryType.FIELDS,
47
+ fields: {
48
+ bucket: {
49
+ type: "string",
50
+ required: true,
51
+ },
49
52
  },
50
53
  },
51
54
  },
52
- },
53
- }
55
+ }
54
56
 
55
- class S3Integration implements IntegrationBase {
56
- private readonly config: S3Config
57
- private client: any
57
+ class S3Integration implements IntegrationBase {
58
+ private readonly config: S3Config
59
+ private client: any
58
60
 
59
- constructor(config: S3Config) {
60
- this.config = config
61
- if (this.config.endpoint) {
62
- this.config.s3ForcePathStyle = true
63
- } else {
64
- delete this.config.endpoint
61
+ constructor(config: S3Config) {
62
+ this.config = config
63
+ if (this.config.endpoint) {
64
+ this.config.s3ForcePathStyle = true
65
+ } else {
66
+ delete this.config.endpoint
67
+ }
68
+
69
+ this.client = new AWS.S3(this.config)
65
70
  }
66
71
 
67
- this.client = new AWS.S3(this.config)
72
+ async read(query: { bucket: string }) {
73
+ const response = await this.client
74
+ .listObjects({
75
+ Bucket: query.bucket,
76
+ })
77
+ .promise()
78
+ return response.Contents
79
+ }
68
80
  }
69
81
 
70
- async read(query: { bucket: string }) {
71
- const response = await this.client
72
- .listObjects({
73
- Bucket: query.bucket,
74
- })
75
- .promise()
76
- return response.Contents
82
+ module.exports = {
83
+ schema: SCHEMA,
84
+ integration: S3Integration,
77
85
  }
78
86
  }
79
-
80
- export default {
81
- schema: SCHEMA,
82
- integration: S3Integration,
83
- }
@@ -1,97 +1,99 @@
1
1
  import { Integration, QueryType, SqlQuery } from "@budibase/types"
2
2
  import { Snowflake } from "snowflake-promise"
3
3
 
4
- interface SnowflakeConfig {
5
- account: string
6
- username: string
7
- password: string
8
- warehouse: string
9
- database: string
10
- schema: string
11
- }
4
+ module SnowflakeModule {
5
+ interface SnowflakeConfig {
6
+ account: string
7
+ username: string
8
+ password: string
9
+ warehouse: string
10
+ database: string
11
+ schema: string
12
+ }
12
13
 
13
- const SCHEMA: Integration = {
14
- docs: "https://developers.snowflake.com/",
15
- description:
16
- "Snowflake is a solution for data warehousing, data lakes, data engineering, data science, data application development, and securely sharing and consuming shared data.",
17
- friendlyName: "Snowflake",
18
- type: "Relational",
19
- datasource: {
20
- account: {
21
- type: "string",
22
- required: true,
23
- },
24
- username: {
25
- type: "string",
26
- required: true,
27
- },
28
- password: {
29
- type: "password",
30
- required: true,
31
- },
32
- warehouse: {
33
- type: "string",
34
- required: true,
35
- },
36
- database: {
37
- type: "string",
38
- required: true,
14
+ const SCHEMA: Integration = {
15
+ docs: "https://developers.snowflake.com/",
16
+ description:
17
+ "Snowflake is a solution for data warehousing, data lakes, data engineering, data science, data application development, and securely sharing and consuming shared data.",
18
+ friendlyName: "Snowflake",
19
+ type: "Relational",
20
+ datasource: {
21
+ account: {
22
+ type: "string",
23
+ required: true,
24
+ },
25
+ username: {
26
+ type: "string",
27
+ required: true,
28
+ },
29
+ password: {
30
+ type: "password",
31
+ required: true,
32
+ },
33
+ warehouse: {
34
+ type: "string",
35
+ required: true,
36
+ },
37
+ database: {
38
+ type: "string",
39
+ required: true,
40
+ },
41
+ schema: {
42
+ type: "string",
43
+ required: true,
44
+ },
39
45
  },
40
- schema: {
41
- type: "string",
42
- required: true,
46
+ query: {
47
+ create: {
48
+ type: QueryType.SQL,
49
+ },
50
+ read: {
51
+ type: QueryType.SQL,
52
+ },
53
+ update: {
54
+ type: QueryType.SQL,
55
+ },
56
+ delete: {
57
+ type: QueryType.SQL,
58
+ },
43
59
  },
44
- },
45
- query: {
46
- create: {
47
- type: QueryType.SQL,
48
- },
49
- read: {
50
- type: QueryType.SQL,
51
- },
52
- update: {
53
- type: QueryType.SQL,
54
- },
55
- delete: {
56
- type: QueryType.SQL,
57
- },
58
- },
59
- }
60
+ }
60
61
 
61
- class SnowflakeIntegration {
62
- private client: Snowflake
62
+ class SnowflakeIntegration {
63
+ private client: Snowflake
63
64
 
64
- constructor(config: SnowflakeConfig) {
65
- this.client = new Snowflake(config)
66
- }
65
+ constructor(config: SnowflakeConfig) {
66
+ this.client = new Snowflake(config)
67
+ }
67
68
 
68
- async internalQuery(query: SqlQuery) {
69
- await this.client.connect()
70
- try {
71
- return await this.client.execute(query.sql)
72
- } catch (err: any) {
73
- throw err?.message.split(":")[1] || err?.message
69
+ async internalQuery(query: SqlQuery) {
70
+ await this.client.connect()
71
+ try {
72
+ return await this.client.execute(query.sql)
73
+ } catch (err: any) {
74
+ throw err?.message.split(":")[1] || err?.message
75
+ }
74
76
  }
75
- }
76
77
 
77
- async create(query: SqlQuery) {
78
- return this.internalQuery(query)
79
- }
78
+ async create(query: SqlQuery) {
79
+ return this.internalQuery(query)
80
+ }
80
81
 
81
- async read(query: SqlQuery) {
82
- return this.internalQuery(query)
83
- }
82
+ async read(query: SqlQuery) {
83
+ return this.internalQuery(query)
84
+ }
84
85
 
85
- async update(query: SqlQuery) {
86
- return this.internalQuery(query)
87
- }
86
+ async update(query: SqlQuery) {
87
+ return this.internalQuery(query)
88
+ }
88
89
 
89
- async delete(query: SqlQuery) {
90
- return this.internalQuery(query)
90
+ async delete(query: SqlQuery) {
91
+ return this.internalQuery(query)
92
+ }
91
93
  }
92
- }
93
94
 
94
- export default {
95
- schema: SCHEMA,
96
- integration: SnowflakeIntegration,
95
+ module.exports = {
96
+ schema: SCHEMA,
97
+ integration: SnowflakeIntegration,
98
+ }
97
99
  }
@@ -1,12 +1,10 @@
1
- import { default as AirtableIntegration } from "../airtable"
1
+ const Airtable = require("airtable")
2
+ const AirtableIntegration = require("../airtable")
2
3
  jest.mock("airtable")
3
4
 
4
5
  class TestConfiguration {
5
- integration: any
6
- client: any
7
-
8
- constructor(config: any = {}) {
9
- this.integration = new AirtableIntegration.integration(config)
6
+ constructor(config = {}) {
7
+ this.integration = new AirtableIntegration.integration(config)
10
8
  this.client = {
11
9
  create: jest.fn(),
12
10
  select: jest.fn(() => ({
@@ -15,12 +13,12 @@ class TestConfiguration {
15
13
  update: jest.fn(),
16
14
  destroy: jest.fn(),
17
15
  }
18
- this.integration.client = () => this.client
16
+ this.integration.client = () => this.client
19
17
  }
20
18
  }
21
19
 
22
20
  describe("Airtable Integration", () => {
23
- let config: any
21
+ let config
24
22
 
25
23
  beforeEach(() => {
26
24
  config = new TestConfiguration()
@@ -29,23 +27,22 @@ describe("Airtable Integration", () => {
29
27
  it("calls the create method with the correct params", async () => {
30
28
  const response = await config.integration.create({
31
29
  table: "test",
32
- json: {},
30
+ json: {}
33
31
  })
34
32
  expect(config.client.create).toHaveBeenCalledWith([
35
33
  {
36
- fields: {},
37
- },
34
+ fields: {}
35
+ }
38
36
  ])
39
37
  })
40
38
 
41
39
  it("calls the read method with the correct params", async () => {
42
40
  const response = await config.integration.read({
43
41
  table: "test",
44
- view: "Grid view",
42
+ view: "Grid view"
45
43
  })
46
44
  expect(config.client.select).toHaveBeenCalledWith({
47
- maxRecords: 10,
48
- view: "Grid view",
45
+ maxRecords: 10, view: "Grid view"
49
46
  })
50
47
  })
51
48
 
@@ -54,22 +51,22 @@ describe("Airtable Integration", () => {
54
51
  table: "table",
55
52
  id: "123",
56
53
  json: {
57
- name: "test",
58
- },
54
+ name: "test"
55
+ }
59
56
  })
60
57
  expect(config.client.update).toHaveBeenCalledWith([
61
58
  {
62
59
  id: "123",
63
- fields: { name: "test" },
64
- },
60
+ fields: { name: "test" }
61
+ }
65
62
  ])
66
63
  })
67
64
 
68
65
  it("calls the delete method with the correct params", async () => {
69
- const ids = [1, 2, 3, 4]
66
+ const ids = [1,2,3,4]
70
67
  const response = await config.integration.delete({
71
- ids,
68
+ ids
72
69
  })
73
70
  expect(config.client.destroy).toHaveBeenCalledWith(ids)
74
71
  })
75
- })
72
+ })
@@ -1,16 +1,15 @@
1
- import { default as ArangoDBIntegration } from "../arangodb"
1
+ const arangodb = require("arangojs")
2
+ const ArangoDBIntegration = require("../arangodb")
2
3
  jest.mock("arangojs")
3
4
 
4
5
  class TestConfiguration {
5
- integration: any
6
-
7
- constructor(config: any = {}) {
8
- this.integration = new ArangoDBIntegration.integration(config)
6
+ constructor(config = {}) {
7
+ this.integration = new ArangoDBIntegration.integration(config)
9
8
  }
10
9
  }
11
10
 
12
11
  describe("ArangoDB Integration", () => {
13
- let config: any
12
+ let config
14
13
  let indexName = "Users"
15
14
 
16
15
  beforeEach(() => {
@@ -19,20 +18,18 @@ describe("ArangoDB Integration", () => {
19
18
 
20
19
  it("calls the create method with the correct params", async () => {
21
20
  const body = {
22
- json: "Hello",
21
+ json: "Hello"
23
22
  }
24
23
 
25
24
  const response = await config.integration.create(body)
26
- expect(config.integration.client.query).toHaveBeenCalledWith(
27
- `INSERT Hello INTO collection RETURN NEW`
28
- )
25
+ expect(config.integration.client.query).toHaveBeenCalledWith(`INSERT Hello INTO collection RETURN NEW`)
29
26
  })
30
27
 
31
28
  it("calls the read method with the correct params", async () => {
32
29
  const query = {
33
- sql: `test`,
30
+ json: `test`,
34
31
  }
35
32
  const response = await config.integration.read(query)
36
33
  expect(config.integration.client.query).toHaveBeenCalledWith(query.sql)
37
34
  })
38
- })
35
+ })
@@ -1,29 +1,23 @@
1
- jest.mock(
2
- "pouchdb",
3
- () =>
4
- function CouchDBMock(this: any) {
5
- this.post = jest.fn()
6
- this.allDocs = jest.fn(() => ({ rows: [] }))
7
- this.put = jest.fn()
8
- this.get = jest.fn()
9
- this.remove = jest.fn()
10
- this.plugin = jest.fn()
11
- this.close = jest.fn()
12
- }
13
- )
1
+ jest.mock("pouchdb", () => function CouchDBMock() {
2
+ this.post = jest.fn()
3
+ this.allDocs = jest.fn(() => ({ rows: [] }))
4
+ this.put = jest.fn()
5
+ this.get = jest.fn()
6
+ this.remove = jest.fn()
7
+ this.plugin = jest.fn()
8
+ this.close = jest.fn()
9
+ })
14
10
 
15
- import { default as CouchDBIntegration } from "../couchdb"
11
+ const CouchDBIntegration = require("../couchdb")
16
12
 
17
13
  class TestConfiguration {
18
- integration: any
19
-
20
- constructor(config: any = {}) {
21
- this.integration = new CouchDBIntegration.integration(config)
14
+ constructor(config = {}) {
15
+ this.integration = new CouchDBIntegration.integration(config)
22
16
  }
23
17
  }
24
18
 
25
19
  describe("CouchDB Integration", () => {
26
- let config: any
20
+ let config
27
21
 
28
22
  beforeEach(() => {
29
23
  config = new TestConfiguration()
@@ -31,37 +25,37 @@ describe("CouchDB Integration", () => {
31
25
 
32
26
  it("calls the create method with the correct params", async () => {
33
27
  const doc = {
34
- test: 1,
35
- }
36
- const response = await config.integration.create({
37
- json: doc,
28
+ test: 1
29
+ }
30
+ const response = await config.integration.create({
31
+ json: doc
38
32
  })
39
33
  expect(config.integration.client.post).toHaveBeenCalledWith(doc)
40
34
  })
41
35
 
42
36
  it("calls the read method with the correct params", async () => {
43
37
  const doc = {
44
- name: "search",
45
- }
38
+ name: "search"
39
+ }
46
40
 
47
- const response = await config.integration.read({
48
- json: doc,
41
+ const response = await config.integration.read({
42
+ json: doc
49
43
  })
50
44
 
51
45
  expect(config.integration.client.allDocs).toHaveBeenCalledWith({
52
46
  include_docs: true,
53
- name: "search",
47
+ name: "search"
54
48
  })
55
49
  })
56
50
 
57
51
  it("calls the update method with the correct params", async () => {
58
52
  const doc = {
59
53
  _id: "1234",
60
- name: "search",
61
- }
54
+ name: "search"
55
+ }
62
56
 
63
- const response = await config.integration.update({
64
- json: doc,
57
+ const response = await config.integration.update({
58
+ json: doc
65
59
  })
66
60
 
67
61
  expect(config.integration.client.put).toHaveBeenCalledWith(doc)
@@ -73,4 +67,4 @@ describe("CouchDB Integration", () => {
73
67
  expect(config.integration.client.get).toHaveBeenCalledWith(id)
74
68
  expect(config.integration.client.remove).toHaveBeenCalled()
75
69
  })
76
- })
70
+ })