@budibase/server 1.3.15-alpha.3 → 1.3.17

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 (268) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/builder/assets/index.8f5f192a.js +876 -0
  3. package/builder/assets/{index.ecdac070.css → index.a70e216a.css} +2 -2
  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 +254 -296
  8. package/coverage/coverage-final.json +17 -17
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  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 +13 -82
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +20 -20
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +30 -30
  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 +1 -1
  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 +12 -12
  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 +1 -1
  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 +1 -1
  74. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  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 +1 -1
  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 +28 -28
  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 +33 -33
  131. package/coverage/lcov-report/middleware/index.html +1 -1
  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 +445 -533
  159. package/dist/api/controllers/application.js +4 -5
  160. package/dist/api/controllers/component.js +1 -18
  161. package/dist/api/controllers/datasource.js +4 -4
  162. package/dist/api/controllers/integration.js +4 -4
  163. package/dist/api/controllers/row/ExternalRequest.js +3 -1
  164. package/dist/api/controllers/screen.js +2 -52
  165. package/dist/api/controllers/static/index.js +0 -1
  166. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -10
  167. package/dist/api/controllers/static/templates/preview.hbs +1 -5
  168. package/dist/api/routes/index.js +0 -2
  169. package/dist/app.js +0 -11
  170. package/dist/db/utils.js +1 -10
  171. package/dist/environment.js +2 -3
  172. package/dist/integrations/airtable.js +129 -126
  173. package/dist/integrations/arangodb.js +89 -86
  174. package/dist/integrations/base/query.js +2 -2
  175. package/dist/integrations/base/sqlTable.js +1 -3
  176. package/dist/integrations/couchdb.js +83 -80
  177. package/dist/integrations/dynamodb.js +164 -161
  178. package/dist/integrations/elasticsearch.js +138 -135
  179. package/dist/integrations/firebase.js +157 -154
  180. package/dist/integrations/googlesheets.js +327 -323
  181. package/dist/integrations/index.js +51 -93
  182. package/dist/integrations/microsoftSqlServer.js +243 -240
  183. package/dist/integrations/mongodb.js +242 -239
  184. package/dist/integrations/mysql.js +219 -215
  185. package/dist/integrations/oracle.js +322 -318
  186. package/dist/integrations/postgres.js +265 -262
  187. package/dist/integrations/redis.js +139 -134
  188. package/dist/integrations/rest.js +292 -289
  189. package/dist/integrations/s3.js +64 -61
  190. package/dist/integrations/snowflake.js +86 -83
  191. package/dist/package.json +6 -9
  192. package/dist/threads/query.js +2 -2
  193. package/dist/tsconfig.build.tsbuildinfo +1 -1
  194. package/dist/utilities/fileSystem/index.js +11 -111
  195. package/package.json +7 -10
  196. package/scripts/dev/manage.js +0 -1
  197. package/src/api/controllers/application.ts +1 -1
  198. package/src/api/controllers/component.js +2 -25
  199. package/src/api/controllers/datasource.js +4 -4
  200. package/src/api/controllers/integration.js +4 -4
  201. package/src/api/controllers/row/ExternalRequest.ts +4 -1
  202. package/src/api/controllers/screen.js +1 -66
  203. package/src/api/controllers/static/index.ts +0 -1
  204. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -10
  205. package/src/api/controllers/static/templates/preview.hbs +1 -5
  206. package/src/api/routes/index.ts +0 -2
  207. package/src/api/routes/tests/query.spec.js +25 -8
  208. package/src/app.ts +0 -14
  209. package/src/db/utils.js +0 -12
  210. package/src/environment.js +2 -3
  211. package/src/integrations/airtable.ts +118 -116
  212. package/src/integrations/arangodb.ts +89 -87
  213. package/src/integrations/base/query.ts +2 -2
  214. package/src/integrations/base/sqlTable.ts +1 -3
  215. package/src/integrations/couchdb.ts +89 -83
  216. package/src/integrations/dynamodb.ts +175 -173
  217. package/src/integrations/elasticsearch.ts +122 -120
  218. package/src/integrations/firebase.ts +159 -157
  219. package/src/integrations/googlesheets.ts +338 -328
  220. package/src/integrations/index.ts +21 -59
  221. package/src/integrations/microsoftSqlServer.ts +251 -249
  222. package/src/integrations/mongodb.ts +258 -261
  223. package/src/integrations/mysql.ts +234 -229
  224. package/src/integrations/oracle.ts +380 -373
  225. package/src/integrations/postgres.ts +268 -264
  226. package/src/integrations/redis.ts +132 -128
  227. package/src/integrations/rest.ts +329 -324
  228. package/src/integrations/s3.ts +71 -68
  229. package/src/integrations/snowflake.ts +82 -80
  230. package/src/integrations/tests/{airtable.spec.ts → airtable.spec.js} +18 -21
  231. package/src/integrations/tests/{arangodb.spec.ts → arangodb.spec.js} +9 -12
  232. package/src/integrations/tests/{couchdb.spec.ts → couchdb.spec.js} +27 -33
  233. package/src/integrations/tests/{dynamodb.spec.ts → dynamodb.spec.js} +41 -45
  234. package/src/integrations/tests/{elasticsearch.spec.ts → elasticsearch.spec.js} +21 -22
  235. package/src/integrations/tests/{firebase.spec.ts → firebase.spec.js} +28 -33
  236. package/src/integrations/tests/{microsoftSqlServer.spec.ts → microsoftSqlServer.spec.js} +11 -12
  237. package/src/integrations/tests/{mongo.spec.ts → mongo.spec.js} +35 -46
  238. package/src/integrations/tests/{mysql.spec.ts → mysql.spec.js} +15 -17
  239. package/src/integrations/tests/{oracle.spec.ts → oracle.spec.js} +17 -19
  240. package/src/integrations/tests/{postgres.spec.ts → postgres.spec.js} +17 -19
  241. package/src/integrations/tests/{redis.spec.ts → redis.spec.js} +18 -27
  242. package/src/integrations/tests/{rest.spec.ts → rest.spec.js} +14 -22
  243. package/src/integrations/tests/{s3.spec.ts → s3.spec.js} +8 -10
  244. package/src/integrations/tests/{sql.spec.ts → sql.spec.js} +177 -228
  245. package/src/module.d.ts +0 -2
  246. package/src/threads/query.ts +2 -2
  247. package/src/utilities/fileSystem/index.js +9 -130
  248. package/builder/assets/index.e1d89439.js +0 -995
  249. package/dist/api/controllers/plugin/file.js +0 -24
  250. package/dist/api/controllers/plugin/github.js +0 -69
  251. package/dist/api/controllers/plugin/index.js +0 -192
  252. package/dist/api/controllers/plugin/npm.js +0 -58
  253. package/dist/api/controllers/plugin/uploaders.js +0 -11
  254. package/dist/api/controllers/plugin/url.js +0 -24
  255. package/dist/api/controllers/plugin/utils.js +0 -26
  256. package/dist/api/routes/plugin.js +0 -39
  257. package/dist/watch.js +0 -77
  258. package/dist/websocket.js +0 -22
  259. package/src/api/controllers/plugin/file.ts +0 -15
  260. package/src/api/controllers/plugin/github.ts +0 -75
  261. package/src/api/controllers/plugin/index.ts +0 -206
  262. package/src/api/controllers/plugin/npm.ts +0 -56
  263. package/src/api/controllers/plugin/uploaders.ts +0 -4
  264. package/src/api/controllers/plugin/url.ts +0 -12
  265. package/src/api/controllers/plugin/utils.ts +0 -19
  266. package/src/api/routes/plugin.ts +0 -14
  267. package/src/watch.ts +0 -38
  268. 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
+ })