@budibase/server 1.3.18 → 1.3.19-alpha.0

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 (282) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/builder/assets/{index.a70e216a.css → index.3850883f.css} +2 -2
  3. package/builder/assets/index.fdade753.js +995 -0
  4. package/builder/index.html +2 -4
  5. package/coverage/clover.xml +409 -361
  6. package/coverage/coverage-final.json +18 -18
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +68 -11
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +73 -34
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +38 -38
  16. package/coverage/lcov-report/api/controllers/integration.js.html +6 -6
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  26. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/screen.js.html +207 -12
  32. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +12 -12
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/index.html +1 -1
  58. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/index.html +5 -5
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +9 -6
  73. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  75. package/coverage/lcov-report/automations/actions.js.html +1 -1
  76. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  77. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +1 -1
  110. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +18 -18
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  117. package/coverage/lcov-report/db/newid.js.html +2 -2
  118. package/coverage/lcov-report/db/utils.js.html +56 -20
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +1 -1
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +30 -30
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  127. package/coverage/lcov-report/middleware/builder.js.html +12 -12
  128. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  129. package/coverage/lcov-report/middleware/index.html +1 -1
  130. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  131. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  132. package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  135. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  136. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  137. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  138. package/coverage/lcov-report/utilities/global.js.html +16 -16
  139. package/coverage/lcov-report/utilities/index.html +1 -1
  140. package/coverage/lcov-report/utilities/index.js.html +24 -24
  141. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  142. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  143. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  148. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  149. package/coverage/lcov-report/utilities/security.js.html +2 -2
  150. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  152. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  153. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  154. package/coverage/lcov-report/utilities/users.js.html +1 -1
  155. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  156. package/coverage/lcov.info +725 -623
  157. package/dist/api/controllers/application.js +5 -4
  158. package/dist/api/controllers/component.js +14 -1
  159. package/dist/api/controllers/datasource.js +21 -8
  160. package/dist/api/controllers/integration.js +4 -4
  161. package/dist/api/controllers/plugin/file.js +24 -0
  162. package/dist/api/controllers/plugin/github.js +69 -0
  163. package/dist/api/controllers/plugin/index.js +197 -0
  164. package/dist/api/controllers/plugin/npm.js +58 -0
  165. package/dist/api/controllers/plugin/uploaders.js +11 -0
  166. package/dist/api/controllers/plugin/url.js +24 -0
  167. package/dist/api/controllers/plugin/utils.js +26 -0
  168. package/dist/api/controllers/row/external.js +1 -1
  169. package/dist/api/controllers/screen.js +52 -2
  170. package/dist/api/controllers/static/index.js +1 -0
  171. package/dist/api/controllers/static/templates/BudibaseApp.svelte +10 -0
  172. package/dist/api/controllers/static/templates/preview.hbs +5 -1
  173. package/dist/api/routes/application.js +3 -2
  174. package/dist/api/routes/index.js +2 -0
  175. package/dist/api/routes/plugin.js +39 -0
  176. package/dist/api/routes/public/tables.js +1 -1
  177. package/dist/api/routes/table.js +1 -1
  178. package/dist/api/routes/utils/validators.js +2 -1
  179. package/dist/app.js +11 -0
  180. package/dist/db/utils.js +10 -1
  181. package/dist/environment.js +1 -0
  182. package/dist/integrations/airtable.js +126 -129
  183. package/dist/integrations/arangodb.js +86 -89
  184. package/dist/integrations/base/query.js +2 -2
  185. package/dist/integrations/base/sqlTable.js +3 -1
  186. package/dist/integrations/couchdb.js +80 -83
  187. package/dist/integrations/dynamodb.js +161 -164
  188. package/dist/integrations/elasticsearch.js +135 -138
  189. package/dist/integrations/firebase.js +154 -157
  190. package/dist/integrations/googlesheets.js +323 -327
  191. package/dist/integrations/index.js +99 -51
  192. package/dist/integrations/microsoftSqlServer.js +240 -243
  193. package/dist/integrations/mongodb.js +239 -242
  194. package/dist/integrations/mysql.js +215 -219
  195. package/dist/integrations/oracle.js +318 -322
  196. package/dist/integrations/postgres.js +262 -265
  197. package/dist/integrations/redis.js +134 -139
  198. package/dist/integrations/rest.js +289 -292
  199. package/dist/integrations/s3.js +61 -64
  200. package/dist/integrations/snowflake.js +83 -86
  201. package/dist/package.json +9 -6
  202. package/dist/tests/utilities/TestConfiguration.js +1 -1
  203. package/dist/threads/query.js +2 -2
  204. package/dist/tsconfig.build.tsbuildinfo +1 -1
  205. package/dist/utilities/fileSystem/index.js +110 -1
  206. package/dist/watch.js +77 -0
  207. package/dist/websocket.js +22 -0
  208. package/package.json +10 -7
  209. package/scripts/dev/manage.js +1 -0
  210. package/specs/openapi.json +3 -3
  211. package/specs/openapi.yaml +3 -3
  212. package/specs/resources/query.js +1 -1
  213. package/src/api/controllers/application.ts +1 -1
  214. package/src/api/controllers/component.js +21 -2
  215. package/src/api/controllers/datasource.js +21 -8
  216. package/src/api/controllers/integration.js +4 -4
  217. package/src/api/controllers/plugin/file.ts +15 -0
  218. package/src/api/controllers/plugin/github.ts +75 -0
  219. package/src/api/controllers/plugin/index.ts +212 -0
  220. package/src/api/controllers/plugin/npm.ts +56 -0
  221. package/src/api/controllers/plugin/uploaders.ts +4 -0
  222. package/src/api/controllers/plugin/url.ts +12 -0
  223. package/src/api/controllers/plugin/utils.ts +19 -0
  224. package/src/api/controllers/row/external.js +1 -1
  225. package/src/api/controllers/screen.js +66 -1
  226. package/src/api/controllers/static/index.ts +1 -0
  227. package/src/api/controllers/static/templates/BudibaseApp.svelte +10 -0
  228. package/src/api/controllers/static/templates/preview.hbs +5 -1
  229. package/src/api/routes/application.ts +13 -2
  230. package/src/api/routes/index.ts +2 -0
  231. package/src/api/routes/plugin.ts +14 -0
  232. package/src/api/routes/public/tables.ts +1 -1
  233. package/src/api/routes/table.js +1 -1
  234. package/src/api/routes/tests/query.spec.js +8 -25
  235. package/src/api/routes/utils/validators.js +2 -1
  236. package/src/app.ts +14 -0
  237. package/src/db/utils.js +12 -0
  238. package/src/definitions/openapi.ts +3 -3
  239. package/src/environment.js +1 -0
  240. package/src/integrations/airtable.ts +116 -118
  241. package/src/integrations/arangodb.ts +87 -89
  242. package/src/integrations/base/query.ts +2 -2
  243. package/src/integrations/base/sqlTable.ts +3 -1
  244. package/src/integrations/couchdb.ts +83 -89
  245. package/src/integrations/dynamodb.ts +173 -175
  246. package/src/integrations/elasticsearch.ts +120 -122
  247. package/src/integrations/firebase.ts +157 -159
  248. package/src/integrations/googlesheets.ts +328 -338
  249. package/src/integrations/index.ts +64 -21
  250. package/src/integrations/microsoftSqlServer.ts +249 -251
  251. package/src/integrations/mongodb.ts +261 -258
  252. package/src/integrations/mysql.ts +229 -234
  253. package/src/integrations/oracle.ts +373 -380
  254. package/src/integrations/postgres.ts +264 -268
  255. package/src/integrations/redis.ts +128 -132
  256. package/src/integrations/rest.ts +324 -329
  257. package/src/integrations/s3.ts +68 -71
  258. package/src/integrations/snowflake.ts +80 -82
  259. package/src/integrations/tests/{airtable.spec.js → airtable.spec.ts} +21 -18
  260. package/src/integrations/tests/{arangodb.spec.js → arangodb.spec.ts} +12 -9
  261. package/src/integrations/tests/{couchdb.spec.js → couchdb.spec.ts} +33 -27
  262. package/src/integrations/tests/{dynamodb.spec.js → dynamodb.spec.ts} +45 -41
  263. package/src/integrations/tests/{elasticsearch.spec.js → elasticsearch.spec.ts} +22 -21
  264. package/src/integrations/tests/{firebase.spec.js → firebase.spec.ts} +33 -28
  265. package/src/integrations/tests/{microsoftSqlServer.spec.js → microsoftSqlServer.spec.ts} +12 -11
  266. package/src/integrations/tests/{mongo.spec.js → mongo.spec.ts} +46 -35
  267. package/src/integrations/tests/{mysql.spec.js → mysql.spec.ts} +17 -15
  268. package/src/integrations/tests/{oracle.spec.js → oracle.spec.ts} +19 -17
  269. package/src/integrations/tests/{postgres.spec.js → postgres.spec.ts} +19 -17
  270. package/src/integrations/tests/{redis.spec.js → redis.spec.ts} +27 -18
  271. package/src/integrations/tests/{rest.spec.js → rest.spec.ts} +22 -14
  272. package/src/integrations/tests/{s3.spec.js → s3.spec.ts} +10 -8
  273. package/src/integrations/tests/{sql.spec.js → sql.spec.ts} +228 -177
  274. package/src/module.d.ts +2 -0
  275. package/src/tests/utilities/TestConfiguration.js +1 -1
  276. package/src/threads/query.ts +2 -2
  277. package/src/utilities/fileSystem/index.js +129 -0
  278. package/src/watch.ts +38 -0
  279. package/src/websocket.ts +26 -0
  280. package/builder/assets/index.a934251d.js +0 -876
  281. package/builder/assets/vendor.5e1fe644.css +0 -1
  282. package/builder/assets/vendor.67dbd8fa.js +0 -248
@@ -10,95 +10,92 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const types_1 = require("@budibase/types");
13
- var ArangoModule;
14
- (function (ArangoModule) {
15
- const { Database, aql } = require("arangojs");
16
- const SCHEMA = {
17
- docs: "https://github.com/arangodb/arangojs",
18
- friendlyName: "ArangoDB",
19
- type: "Non-relational",
20
- description: "ArangoDB is a scalable open-source multi-model database natively supporting graph, document and search. All supported data models & access patterns can be combined in queries allowing for maximal flexibility. ",
21
- datasource: {
22
- url: {
23
- type: types_1.DatasourceFieldType.STRING,
24
- default: "http://localhost:8529",
25
- required: true,
26
- },
27
- username: {
28
- type: types_1.DatasourceFieldType.STRING,
29
- default: "root",
30
- required: true,
31
- },
32
- password: {
33
- type: types_1.DatasourceFieldType.PASSWORD,
34
- required: true,
35
- },
36
- databaseName: {
37
- type: types_1.DatasourceFieldType.STRING,
38
- default: "_system",
39
- required: true,
40
- },
41
- collection: {
42
- type: types_1.DatasourceFieldType.STRING,
43
- required: true,
44
- },
13
+ const { Database, aql } = require("arangojs");
14
+ const SCHEMA = {
15
+ docs: "https://github.com/arangodb/arangojs",
16
+ friendlyName: "ArangoDB",
17
+ type: "Non-relational",
18
+ description: "ArangoDB is a scalable open-source multi-model database natively supporting graph, document and search. All supported data models & access patterns can be combined in queries allowing for maximal flexibility. ",
19
+ datasource: {
20
+ url: {
21
+ type: types_1.DatasourceFieldType.STRING,
22
+ default: "http://localhost:8529",
23
+ required: true,
45
24
  },
46
- query: {
47
- read: {
48
- type: types_1.QueryType.SQL,
49
- },
50
- create: {
51
- type: types_1.QueryType.JSON,
52
- },
25
+ username: {
26
+ type: types_1.DatasourceFieldType.STRING,
27
+ default: "root",
28
+ required: true,
29
+ },
30
+ password: {
31
+ type: types_1.DatasourceFieldType.PASSWORD,
32
+ required: true,
33
+ },
34
+ databaseName: {
35
+ type: types_1.DatasourceFieldType.STRING,
36
+ default: "_system",
37
+ required: true,
53
38
  },
54
- };
55
- class ArangoDBIntegration {
56
- constructor(config) {
57
- const newConfig = {
58
- auth: {
59
- username: config.username,
60
- password: config.password,
61
- },
62
- };
63
- this.config = config;
64
- this.client = new Database(newConfig);
65
- }
66
- read(query) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- try {
69
- const result = yield this.client.query(query.sql);
70
- return result.all();
71
- }
72
- catch (err) {
73
- // @ts-ignore
74
- console.error("Error querying arangodb", err.message);
75
- throw err;
76
- }
77
- finally {
78
- this.client.close();
79
- }
80
- });
81
- }
82
- create(query) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- const clc = this.client.collection(this.config.collection);
85
- try {
86
- const result = yield this.client.query(aql `INSERT ${query.json} INTO ${clc} RETURN NEW`);
87
- return result.all();
88
- }
89
- catch (err) {
90
- // @ts-ignore
91
- console.error("Error querying arangodb", err.message);
92
- throw err;
93
- }
94
- finally {
95
- this.client.close();
96
- }
97
- });
98
- }
39
+ collection: {
40
+ type: types_1.DatasourceFieldType.STRING,
41
+ required: true,
42
+ },
43
+ },
44
+ query: {
45
+ read: {
46
+ type: types_1.QueryType.SQL,
47
+ },
48
+ create: {
49
+ type: types_1.QueryType.JSON,
50
+ },
51
+ },
52
+ };
53
+ class ArangoDBIntegration {
54
+ constructor(config) {
55
+ const newConfig = {
56
+ auth: {
57
+ username: config.username,
58
+ password: config.password,
59
+ },
60
+ };
61
+ this.config = config;
62
+ this.client = new Database(newConfig);
63
+ }
64
+ read(query) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ try {
67
+ const result = yield this.client.query(query.sql);
68
+ return result.all();
69
+ }
70
+ catch (err) {
71
+ // @ts-ignore
72
+ console.error("Error querying arangodb", err.message);
73
+ throw err;
74
+ }
75
+ finally {
76
+ this.client.close();
77
+ }
78
+ });
99
79
  }
100
- module.exports = {
101
- schema: SCHEMA,
102
- integration: ArangoDBIntegration,
103
- };
104
- })(ArangoModule || (ArangoModule = {}));
80
+ create(query) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const clc = this.client.collection(this.config.collection);
83
+ try {
84
+ const result = yield this.client.query(aql `INSERT ${query.json} INTO ${clc} RETURN NEW`);
85
+ return result.all();
86
+ }
87
+ catch (err) {
88
+ // @ts-ignore
89
+ console.error("Error querying arangodb", err.message);
90
+ throw err;
91
+ }
92
+ finally {
93
+ this.client.close();
94
+ }
95
+ });
96
+ }
97
+ }
98
+ exports.default = {
99
+ schema: SCHEMA,
100
+ integration: ArangoDBIntegration,
101
+ };
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.makeExternalQuery = void 0;
13
- const { integrations } = require("../index");
13
+ const { getIntegration } = require("../index");
14
14
  function makeExternalQuery(datasource, json) {
15
15
  return __awaiter(this, void 0, void 0, function* () {
16
- const Integration = integrations[datasource.source];
16
+ const Integration = yield getIntegration(datasource.source);
17
17
  // query is the opinionated function
18
18
  if (Integration.prototype.query) {
19
19
  const integration = new Integration(datasource.config);
@@ -82,7 +82,9 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
82
82
  // need to check if any columns have been deleted
83
83
  if (oldTable) {
84
84
  const deletedColumns = Object.entries(oldTable.schema)
85
- .filter(([key, schema]) => schema.type !== FieldTypes.LINK && table.schema[key] == null)
85
+ .filter(([key, schema]) => schema.type !== FieldTypes.LINK &&
86
+ schema.type !== FieldTypes.FORMULA &&
87
+ table.schema[key] == null)
86
88
  .map(([key]) => key);
87
89
  deletedColumns.forEach(key => {
88
90
  if ((renamed === null || renamed === void 0 ? void 0 : renamed.old) === key) {
@@ -10,93 +10,90 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const types_1 = require("@budibase/types");
13
- var CouchDBModule;
14
- (function (CouchDBModule) {
15
- const PouchDB = require("pouchdb");
16
- const SCHEMA = {
17
- docs: "https://docs.couchdb.org/en/stable/",
18
- friendlyName: "CouchDB",
19
- type: "Non-relational",
20
- description: "Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.",
21
- datasource: {
22
- url: {
23
- type: types_1.DatasourceFieldType.STRING,
24
- required: true,
25
- default: "http://localhost:5984",
26
- },
27
- database: {
28
- type: types_1.DatasourceFieldType.STRING,
29
- required: true,
30
- },
13
+ const PouchDB = require("pouchdb");
14
+ const SCHEMA = {
15
+ docs: "https://docs.couchdb.org/en/stable/",
16
+ friendlyName: "CouchDB",
17
+ type: "Non-relational",
18
+ description: "Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.",
19
+ datasource: {
20
+ url: {
21
+ type: types_1.DatasourceFieldType.STRING,
22
+ required: true,
23
+ default: "http://localhost:5984",
31
24
  },
32
- query: {
33
- create: {
34
- type: types_1.QueryType.JSON,
35
- },
36
- read: {
37
- type: types_1.QueryType.JSON,
38
- },
39
- update: {
40
- type: types_1.QueryType.JSON,
41
- },
42
- delete: {
43
- type: types_1.QueryType.FIELDS,
44
- fields: {
45
- id: {
46
- type: types_1.DatasourceFieldType.STRING,
47
- required: true,
48
- },
25
+ database: {
26
+ type: types_1.DatasourceFieldType.STRING,
27
+ required: true,
28
+ },
29
+ },
30
+ query: {
31
+ create: {
32
+ type: types_1.QueryType.JSON,
33
+ },
34
+ read: {
35
+ type: types_1.QueryType.JSON,
36
+ },
37
+ update: {
38
+ type: types_1.QueryType.JSON,
39
+ },
40
+ delete: {
41
+ type: types_1.QueryType.FIELDS,
42
+ fields: {
43
+ id: {
44
+ type: types_1.DatasourceFieldType.STRING,
45
+ required: true,
49
46
  },
50
47
  },
51
48
  },
52
- };
53
- class CouchDBIntegration {
54
- constructor(config) {
55
- this.config = config;
56
- this.client = new PouchDB(`${config.url}/${config.database}`);
57
- }
58
- query(command, errorMsg, query) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- try {
61
- const response = yield this.client[command](query.id || query.json);
62
- yield this.client.close();
63
- return response;
64
- }
65
- catch (err) {
66
- console.error(errorMsg, err);
67
- throw err;
68
- }
69
- });
70
- }
71
- create(query) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- return this.query("post", "Error writing to couchDB", query);
74
- });
75
- }
76
- read(query) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- const result = yield this.query("allDocs", "Error querying couchDB", {
79
- json: Object.assign({ include_docs: true }, query.json),
80
- });
81
- return result.rows.map((row) => row.doc);
82
- });
83
- }
84
- update(query) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- return this.query("put", "Error updating couchDB document", query);
49
+ },
50
+ };
51
+ class CouchDBIntegration {
52
+ constructor(config) {
53
+ this.config = config;
54
+ this.client = new PouchDB(`${config.url}/${config.database}`);
55
+ }
56
+ query(command, errorMsg, query) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ try {
59
+ const response = yield this.client[command](query.id || query.json);
60
+ yield this.client.close();
61
+ return response;
62
+ }
63
+ catch (err) {
64
+ console.error(errorMsg, err);
65
+ throw err;
66
+ }
67
+ });
68
+ }
69
+ create(query) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ return this.query("post", "Error writing to couchDB", query);
72
+ });
73
+ }
74
+ read(query) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const result = yield this.query("allDocs", "Error querying couchDB", {
77
+ json: Object.assign({ include_docs: true }, query.json),
87
78
  });
88
- }
89
- delete(query) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- const doc = yield this.query("get", "Cannot find doc to be deleted", query);
92
- return this.query("remove", "Error deleting couchDB document", {
93
- json: doc,
94
- });
79
+ return result.rows.map((row) => row.doc);
80
+ });
81
+ }
82
+ update(query) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ return this.query("put", "Error updating couchDB document", query);
85
+ });
86
+ }
87
+ delete(query) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ const doc = yield this.query("get", "Cannot find doc to be deleted", query);
90
+ return this.query("remove", "Error deleting couchDB document", {
91
+ json: doc,
95
92
  });
96
- }
93
+ });
97
94
  }
98
- module.exports = {
99
- schema: SCHEMA,
100
- integration: CouchDBIntegration,
101
- };
102
- })(CouchDBModule || (CouchDBModule = {}));
95
+ }
96
+ exports.default = {
97
+ schema: SCHEMA,
98
+ integration: CouchDBIntegration,
99
+ };