@budibase/server 1.3.19-alpha.2 → 1.3.19

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 (302) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/builder/assets/index.9ce4f8c5.css +6 -0
  3. package/builder/assets/index.a1f7532b.js +876 -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 +388 -446
  8. package/coverage/coverage-final.json +20 -20
  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 +39 -39
  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 +1 -1
  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 +1 -1
  158. package/coverage/lcov.info +669 -790
  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/tables.js +1 -1
  174. package/dist/api/routes/table.js +1 -1
  175. package/dist/api/routes/utils/validators.js +2 -20
  176. package/dist/app.js +0 -11
  177. package/dist/db/utils.js +1 -10
  178. package/dist/environment.js +0 -1
  179. package/dist/integrations/airtable.js +129 -126
  180. package/dist/integrations/arangodb.js +89 -86
  181. package/dist/integrations/base/query.js +2 -2
  182. package/dist/integrations/base/sqlTable.js +1 -3
  183. package/dist/integrations/couchdb.js +83 -80
  184. package/dist/integrations/dynamodb.js +164 -161
  185. package/dist/integrations/elasticsearch.js +138 -135
  186. package/dist/integrations/firebase.js +157 -154
  187. package/dist/integrations/googlesheets.js +327 -323
  188. package/dist/integrations/index.js +51 -99
  189. package/dist/integrations/microsoftSqlServer.js +243 -240
  190. package/dist/integrations/mongodb.js +242 -239
  191. package/dist/integrations/mysql.js +219 -215
  192. package/dist/integrations/oracle.js +322 -318
  193. package/dist/integrations/postgres.js +265 -262
  194. package/dist/integrations/redis.js +139 -134
  195. package/dist/integrations/rest.js +292 -289
  196. package/dist/integrations/s3.js +64 -61
  197. package/dist/integrations/snowflake.js +86 -83
  198. package/dist/middleware/currentapp.js +0 -2
  199. package/dist/migrations/functions/backfill/global.js +3 -0
  200. package/dist/migrations/functions/developerQuota.js +49 -0
  201. package/dist/{api/routes/plugin.js → migrations/functions/publishedAppsQuota.js} +21 -13
  202. package/dist/{api/controllers/plugin/url.js → migrations/functions/usageQuotas/syncDevelopers.js} +13 -13
  203. package/dist/{api/controllers/plugin/file.js → migrations/functions/usageQuotas/syncPublishedApps.js} +15 -13
  204. package/dist/migrations/index.js +10 -0
  205. package/dist/package.json +6 -9
  206. package/dist/tests/utilities/TestConfiguration.js +1 -1
  207. package/dist/threads/query.js +2 -2
  208. package/dist/tsconfig.build.tsbuildinfo +1 -1
  209. package/dist/utilities/fileSystem/index.js +1 -110
  210. package/package.json +7 -10
  211. package/scripts/dev/manage.js +0 -1
  212. package/scripts/localdomain.js +1 -3
  213. package/specs/openapi.json +3 -3
  214. package/specs/openapi.yaml +3 -3
  215. package/specs/resources/query.js +1 -1
  216. package/src/api/controllers/application.ts +2 -1
  217. package/src/api/controllers/auth.js +0 -11
  218. package/src/api/controllers/component.js +2 -21
  219. package/src/api/controllers/datasource.js +8 -21
  220. package/src/api/controllers/deploy/index.ts +6 -1
  221. package/src/api/controllers/integration.js +4 -4
  222. package/src/api/controllers/row/external.js +1 -1
  223. package/src/api/controllers/screen.js +1 -66
  224. package/src/api/controllers/static/index.ts +1 -1
  225. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -10
  226. package/src/api/controllers/static/templates/preview.hbs +1 -5
  227. package/src/api/index.js +1 -1
  228. package/src/api/routes/application.ts +2 -13
  229. package/src/api/routes/index.ts +0 -2
  230. package/src/api/routes/public/tables.ts +1 -1
  231. package/src/api/routes/table.js +1 -1
  232. package/src/api/routes/tests/query.spec.js +25 -8
  233. package/src/api/routes/tests/user.spec.js +2 -0
  234. package/src/api/routes/utils/validators.js +5 -26
  235. package/src/app.ts +0 -14
  236. package/src/db/utils.js +0 -12
  237. package/src/definitions/openapi.ts +3 -3
  238. package/src/environment.js +0 -1
  239. package/src/integrations/airtable.ts +118 -116
  240. package/src/integrations/arangodb.ts +89 -87
  241. package/src/integrations/base/query.ts +2 -2
  242. package/src/integrations/base/sqlTable.ts +1 -3
  243. package/src/integrations/couchdb.ts +89 -83
  244. package/src/integrations/dynamodb.ts +175 -173
  245. package/src/integrations/elasticsearch.ts +122 -120
  246. package/src/integrations/firebase.ts +159 -157
  247. package/src/integrations/googlesheets.ts +338 -328
  248. package/src/integrations/index.ts +21 -64
  249. package/src/integrations/microsoftSqlServer.ts +251 -249
  250. package/src/integrations/mongodb.ts +258 -261
  251. package/src/integrations/mysql.ts +234 -229
  252. package/src/integrations/oracle.ts +380 -373
  253. package/src/integrations/postgres.ts +268 -264
  254. package/src/integrations/redis.ts +132 -128
  255. package/src/integrations/rest.ts +329 -324
  256. package/src/integrations/s3.ts +71 -68
  257. package/src/integrations/snowflake.ts +82 -80
  258. package/src/integrations/tests/{airtable.spec.ts → airtable.spec.js} +18 -21
  259. package/src/integrations/tests/{arangodb.spec.ts → arangodb.spec.js} +9 -12
  260. package/src/integrations/tests/{couchdb.spec.ts → couchdb.spec.js} +27 -33
  261. package/src/integrations/tests/{dynamodb.spec.ts → dynamodb.spec.js} +41 -45
  262. package/src/integrations/tests/{elasticsearch.spec.ts → elasticsearch.spec.js} +21 -22
  263. package/src/integrations/tests/{firebase.spec.ts → firebase.spec.js} +28 -33
  264. package/src/integrations/tests/{microsoftSqlServer.spec.ts → microsoftSqlServer.spec.js} +11 -12
  265. package/src/integrations/tests/{mongo.spec.ts → mongo.spec.js} +35 -46
  266. package/src/integrations/tests/{mysql.spec.ts → mysql.spec.js} +15 -17
  267. package/src/integrations/tests/{oracle.spec.ts → oracle.spec.js} +17 -19
  268. package/src/integrations/tests/{postgres.spec.ts → postgres.spec.js} +17 -19
  269. package/src/integrations/tests/{redis.spec.ts → redis.spec.js} +18 -27
  270. package/src/integrations/tests/{rest.spec.ts → rest.spec.js} +14 -22
  271. package/src/integrations/tests/{s3.spec.ts → s3.spec.js} +8 -10
  272. package/src/integrations/tests/{sql.spec.ts → sql.spec.js} +177 -228
  273. package/src/middleware/currentapp.js +0 -2
  274. package/src/migrations/functions/backfill/global.ts +3 -0
  275. package/src/migrations/functions/developerQuota.ts +15 -0
  276. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  277. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  278. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  279. package/src/migrations/index.ts +16 -0
  280. package/src/module.d.ts +0 -2
  281. package/src/tests/utilities/TestConfiguration.js +1 -1
  282. package/src/threads/query.ts +2 -2
  283. package/src/utilities/fileSystem/index.js +0 -129
  284. package/builder/assets/index.8f621053.css +0 -6
  285. package/builder/assets/index.bd4753ac.js +0 -1005
  286. package/dist/api/controllers/plugin/github.js +0 -69
  287. package/dist/api/controllers/plugin/index.js +0 -200
  288. package/dist/api/controllers/plugin/npm.js +0 -58
  289. package/dist/api/controllers/plugin/uploaders.js +0 -11
  290. package/dist/api/controllers/plugin/utils.js +0 -26
  291. package/dist/watch.js +0 -77
  292. package/dist/websocket.js +0 -22
  293. package/src/api/controllers/plugin/file.ts +0 -15
  294. package/src/api/controllers/plugin/github.ts +0 -75
  295. package/src/api/controllers/plugin/index.ts +0 -215
  296. package/src/api/controllers/plugin/npm.ts +0 -56
  297. package/src/api/controllers/plugin/uploaders.ts +0 -4
  298. package/src/api/controllers/plugin/url.ts +0 -12
  299. package/src/api/controllers/plugin/utils.ts +0 -19
  300. package/src/api/routes/plugin.ts +0 -14
  301. package/src/watch.ts +0 -38
  302. 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
+ })